Title: [244130] branches/safari-607-branch/Source/WebKit
Revision
244130
Author
[email protected]
Date
2019-04-10 10:11:23 -0700 (Wed, 10 Apr 2019)

Log Message

Cherry-pick r243562. rdar://problem/49725686

    [ iOS Sim ] REGRESSION (r242277) Layout Test http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load.php is a flaky timeout
    https://bugs.webkit.org/show_bug.cgi?id=195425
    <rdar://problem/48682403>

    Reviewed by Alex Christensen.

    When process-swapping on history navigation, we lookup the WebProcessProxy we'd like to use from the
    process identifier that is saved on the WebBackForwardListItem, to try and load the item in the process
    in which it was previously loaded. However, we were failing to check if the WebProcess in question was
    still running so we could potentially try to use a process that's already exited.

    * UIProcess/WebProcessPool.cpp:
    (WebKit::WebProcessPool::processForNavigationInternal):

    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243562 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Modified Paths

Diff

Modified: branches/safari-607-branch/Source/WebKit/ChangeLog (244129 => 244130)


--- branches/safari-607-branch/Source/WebKit/ChangeLog	2019-04-10 17:11:21 UTC (rev 244129)
+++ branches/safari-607-branch/Source/WebKit/ChangeLog	2019-04-10 17:11:23 UTC (rev 244130)
@@ -1,5 +1,41 @@
 2019-04-09  Alan Coon  <[email protected]>
 
+        Cherry-pick r243562. rdar://problem/49725686
+
+    [ iOS Sim ] REGRESSION (r242277) Layout Test http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load.php is a flaky timeout
+    https://bugs.webkit.org/show_bug.cgi?id=195425
+    <rdar://problem/48682403>
+    
+    Reviewed by Alex Christensen.
+    
+    When process-swapping on history navigation, we lookup the WebProcessProxy we'd like to use from the
+    process identifier that is saved on the WebBackForwardListItem, to try and load the item in the process
+    in which it was previously loaded. However, we were failing to check if the WebProcess in question was
+    still running so we could potentially try to use a process that's already exited.
+    
+    * UIProcess/WebProcessPool.cpp:
+    (WebKit::WebProcessPool::processForNavigationInternal):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243562 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-03-27  Chris Dumez  <[email protected]>
+
+            [ iOS Sim ] REGRESSION (r242277) Layout Test http/tests/cookies/same-site/lax-samesite-cookie-after-cross-site-history-load.php is a flaky timeout
+            https://bugs.webkit.org/show_bug.cgi?id=195425
+            <rdar://problem/48682403>
+
+            Reviewed by Alex Christensen.
+
+            When process-swapping on history navigation, we lookup the WebProcessProxy we'd like to use from the
+            process identifier that is saved on the WebBackForwardListItem, to try and load the item in the process
+            in which it was previously loaded. However, we were failing to check if the WebProcess in question was
+            still running so we could potentially try to use a process that's already exited.
+
+            * UIProcess/WebProcessPool.cpp:
+            (WebKit::WebProcessPool::processForNavigationInternal):
+
+2019-04-09  Alan Coon  <[email protected]>
+
         Cherry-pick r243848. rdar://problem/49725697
 
     The page's focusedFrame / frameSetLargestFrame do not get cleared on process swap or crash

Modified: branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessPool.cpp (244129 => 244130)


--- branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessPool.cpp	2019-04-10 17:11:21 UTC (rev 244129)
+++ branches/safari-607-branch/Source/WebKit/UIProcess/WebProcessPool.cpp	2019-04-10 17:11:23 UTC (rev 244130)
@@ -2226,18 +2226,20 @@
         }
 
         if (RefPtr<WebProcessProxy> process = WebProcessProxy::processForIdentifier(targetItem->lastProcessIdentifier())) {
-            // FIXME: Architecturally we do not currently support multiple WebPage's with the same ID in a given WebProcess.
-            // In the case where this WebProcess has a SuspendedPageProxy for this WebPage, we can throw it away to support
-            // WebProcess re-use.
-            removeAllSuspendedPagesForPage(page, process.get());
+            if (process->state() != WebProcessProxy::State::Terminated) {
+                // FIXME: Architecturally we do not currently support multiple WebPage's with the same ID in a given WebProcess.
+                // In the case where this WebProcess has a SuspendedPageProxy for this WebPage, we can throw it away to support
+                // WebProcess re-use.
+                removeAllSuspendedPagesForPage(page, process.get());
 
-            // Make sure we remove the process from the cache if it is in there since we're about to use it.
-            if (process->isInProcessCache()) {
-                auto removedProcess = webProcessCache().takeProcess(process->registrableDomain(), process->websiteDataStore());
-                ASSERT_UNUSED(removedProcess, removedProcess.get() == process.get());
+                // Make sure we remove the process from the cache if it is in there since we're about to use it.
+                if (process->isInProcessCache()) {
+                    auto removedProcess = webProcessCache().takeProcess(process->registrableDomain(), process->websiteDataStore());
+                    ASSERT_UNUSED(removedProcess, removedProcess.get() == process.get());
+                }
+
+                return completionHandler(process.releaseNonNull(), nullptr, "Using target back/forward item's process"_s);
             }
-
-            return completionHandler(process.releaseNonNull(), nullptr, "Using target back/forward item's process"_s);
         }
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to