Title: [222674] trunk/Source/WebKit
- Revision
- 222674
- Author
- [email protected]
- Date
- 2017-09-29 17:54:22 -0700 (Fri, 29 Sep 2017)
Log Message
REGRESSION: ASSERTION FAILED: m_provisionalURL.isEmpty() in WebKit::FrameLoadState::didStartProvisionalLoad
https://bugs.webkit.org/show_bug.cgi?id=177491
Patch by Alex Christensen <[email protected]> on 2017-09-29
Reviewed by Andy Estes.
* WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::setUpWillSubmitFormListener):
(WebKit::WebFrame::continueWillSubmitForm):
(WebKit::WebFrame::invalidatePolicyListener):
Speculative fix for a flaky assertion.
Restore the clearing of the policy listeners we used to have when form submission was treated as a policy.
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (222673 => 222674)
--- trunk/Source/WebKit/ChangeLog 2017-09-30 00:35:24 UTC (rev 222673)
+++ trunk/Source/WebKit/ChangeLog 2017-09-30 00:54:22 UTC (rev 222674)
@@ -1,3 +1,17 @@
+2017-09-29 Alex Christensen <[email protected]>
+
+ REGRESSION: ASSERTION FAILED: m_provisionalURL.isEmpty() in WebKit::FrameLoadState::didStartProvisionalLoad
+ https://bugs.webkit.org/show_bug.cgi?id=177491
+
+ Reviewed by Andy Estes.
+
+ * WebProcess/WebPage/WebFrame.cpp:
+ (WebKit::WebFrame::setUpWillSubmitFormListener):
+ (WebKit::WebFrame::continueWillSubmitForm):
+ (WebKit::WebFrame::invalidatePolicyListener):
+ Speculative fix for a flaky assertion.
+ Restore the clearing of the policy listeners we used to have when form submission was treated as a policy.
+
2017-09-29 Chris Dumez <[email protected]>
http/tests/preconnect/link-rel-preconnect-https.html is flaky
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp (222673 => 222674)
--- trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2017-09-30 00:35:24 UTC (rev 222673)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2017-09-30 00:54:22 UTC (rev 222674)
@@ -223,6 +223,7 @@
uint64_t WebFrame::setUpWillSubmitFormListener(WTF::Function<void(void)>&& completionHandler)
{
uint64_t identifier = generateListenerID();
+ invalidatePolicyListener();
m_willSubmitFormCompletionHandlers.set(identifier, WTFMove(completionHandler));
return identifier;
}
@@ -231,6 +232,7 @@
{
if (auto completionHandler = m_willSubmitFormCompletionHandlers.take(listenerID))
completionHandler();
+ invalidatePolicyListener();
}
void WebFrame::invalidatePolicyListener()
@@ -242,6 +244,9 @@
m_policyListenerID = 0;
if (auto function = std::exchange(m_policyFunction, nullptr))
function(PolicyAction::Ignore);
+ for (auto& function : m_willSubmitFormCompletionHandlers.values())
+ function();
+ m_willSubmitFormCompletionHandlers.clear();
}
void WebFrame::didReceivePolicyDecision(uint64_t listenerID, PolicyAction action, uint64_t navigationID, DownloadID downloadID)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes