Title: [110743] trunk/Source/WebKit2
Revision
110743
Author
[email protected]
Date
2012-03-14 13:59:53 -0700 (Wed, 14 Mar 2012)

Log Message

        WebProcess sometimes hits an assertion in SandboxExtensionTracker::didCommitProvisionalLoad after running regression tests
        https://bugs.webkit.org/show_bug.cgi?id=81150
        <rdar://problem/11002254>

        Reviewed by Anders Carlsson.

        * WebProcess/WebPage/WebPage.cpp:
        (WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad):
        (WebKit::WebPage::SandboxExtensionTracker::didFailProvisionalLoad):
        It's not great, but for now we need to handle this case. Hopefully, some day we'll make
        both WebKit2 processes better aware of what's going on with loading in WebCore.

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (110742 => 110743)


--- trunk/Source/WebKit2/ChangeLog	2012-03-14 20:57:36 UTC (rev 110742)
+++ trunk/Source/WebKit2/ChangeLog	2012-03-14 20:59:53 UTC (rev 110743)
@@ -1,3 +1,17 @@
+2012-03-14  Alexey Proskuryakov  <[email protected]>
+
+        WebProcess sometimes hits an assertion in SandboxExtensionTracker::didCommitProvisionalLoad after running regression tests
+        https://bugs.webkit.org/show_bug.cgi?id=81150
+        <rdar://problem/11002254>
+
+        Reviewed by Anders Carlsson.
+
+        * WebProcess/WebPage/WebPage.cpp:
+        (WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad):
+        (WebKit::WebPage::SandboxExtensionTracker::didFailProvisionalLoad):
+        It's not great, but for now we need to handle this case. Hopefully, some day we'll make
+        both WebKit2 processes better aware of what's going on with loading in WebCore.
+
 2012-03-14  Anders Carlsson  <[email protected]>
 
         Fix UI process crash when a plug-in process crashes with a modal dialog showing

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (110742 => 110743)


--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-03-14 20:57:36 UTC (rev 110742)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp	2012-03-14 20:59:53 UTC (rev 110743)
@@ -2617,9 +2617,14 @@
 {
     if (!frame->isMainFrame())
         return;
-    
-    ASSERT(!m_pendingProvisionalSandboxExtension);
 
+    // Generally, there should be no pending extension at this stage, but we can have one if UI process
+    // has an out of date idea of WebProcess state, and initiates a load or reload without stopping an existing one.
+    if (m_pendingProvisionalSandboxExtension) {
+        m_pendingProvisionalSandboxExtension->invalidate();
+        m_pendingProvisionalSandboxExtension = nullptr;
+    }
+
     // The provisional load has been committed. Invalidate the currently committed sandbox
     // extension and make the provisional sandbox extension the committed sandbox extension.
     if (m_committedSandboxExtension)
@@ -2633,6 +2638,13 @@
     if (!frame->isMainFrame())
         return;
 
+    // Generally, there should be no pending extension at this stage, but we can have one if UI process
+    // has an out of date idea of WebProcess state, and initiates a load or reload without stopping an existing one.
+    if (m_pendingProvisionalSandboxExtension) {
+        m_pendingProvisionalSandboxExtension->invalidate();
+        m_pendingProvisionalSandboxExtension = nullptr;
+    }
+
     if (!m_provisionalSandboxExtension)
         return;
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to