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