Title: [236492] trunk/Source/WebKit
- Revision
- 236492
- Author
- [email protected]
- Date
- 2018-09-25 18:27:54 -0700 (Tue, 25 Sep 2018)
Log Message
Unreviewed, rolling out r236471 and r236480.
Seems to be causing some flaky crashes
Reverted changesets:
"UIProcess should process incoming sync IPC from WebProcess
when waiting for a sync IPC reply from it"
https://bugs.webkit.org/show_bug.cgi?id=189927
https://trac.webkit.org/changeset/236471
"Revert some of the changes in r236471"
https://bugs.webkit.org/show_bug.cgi?id=189973
https://trac.webkit.org/changeset/236480
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (236491 => 236492)
--- trunk/Source/WebKit/ChangeLog 2018-09-26 01:18:53 UTC (rev 236491)
+++ trunk/Source/WebKit/ChangeLog 2018-09-26 01:27:54 UTC (rev 236492)
@@ -1,3 +1,20 @@
+2018-09-25 Chris Dumez <[email protected]>
+
+ Unreviewed, rolling out r236471 and r236480.
+
+ Seems to be causing some flaky crashes
+
+ Reverted changesets:
+
+ "UIProcess should process incoming sync IPC from WebProcess
+ when waiting for a sync IPC reply from it"
+ https://bugs.webkit.org/show_bug.cgi?id=189927
+ https://trac.webkit.org/changeset/236471
+
+ "Revert some of the changes in r236471"
+ https://bugs.webkit.org/show_bug.cgi?id=189973
+ https://trac.webkit.org/changeset/236480
+
2018-09-25 Conrad Shultz <[email protected]>
Enable customization of the file upload panel
Modified: trunk/Source/WebKit/UIProcess/WebPageProxy.cpp (236491 => 236492)
--- trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-09-26 01:18:53 UTC (rev 236491)
+++ trunk/Source/WebKit/UIProcess/WebPageProxy.cpp 2018-09-26 01:27:54 UTC (rev 236492)
@@ -4013,7 +4013,7 @@
if (!fromAPI)
m_pageLoadState.clearPendingAPIRequestURL(transaction);
- auto* frame = m_process->webFrame(frameID);
+ WebFrameProxy* frame = m_process->webFrame(frameID);
MESSAGE_CHECK(frame);
MESSAGE_CHECK_URL(request.url());
MESSAGE_CHECK_URL(originalRequest.url());
Modified: trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp (236491 => 236492)
--- trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2018-09-26 01:18:53 UTC (rev 236491)
+++ trunk/Source/WebKit/WebProcess/WebPage/WebFrame.cpp 2018-09-26 01:27:54 UTC (rev 236492)
@@ -111,8 +111,6 @@
Ref<WebFrame> WebFrame::createWithCoreMainFrame(WebPage* page, WebCore::Frame* coreFrame)
{
auto frame = create(std::unique_ptr<WebFrameLoaderClient>(static_cast<WebFrameLoaderClient*>(&coreFrame->loader().client())));
- // DispatchMessageEvenWhenWaitingForSyncReply SendOption is needed to ensure that this IPC always gets received before the DecidePolicyForNavigationSync synchronous
- // IPC for this frame.
page->send(Messages::WebPageProxy::DidCreateMainFrame(frame->frameID()), page->pageID(), IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply);
frame->m_coreFrame = coreFrame;
@@ -124,8 +122,6 @@
Ref<WebFrame> WebFrame::createSubframe(WebPage* page, const String& frameName, HTMLFrameOwnerElement* ownerElement)
{
auto frame = create(std::make_unique<WebFrameLoaderClient>());
- // DispatchMessageEvenWhenWaitingForSyncReply SendOption is needed to ensure that this IPC always gets received before the DecidePolicyForNavigationSync synchronous
- // IPC for this frame.
page->send(Messages::WebPageProxy::DidCreateSubframe(frame->frameID()), page->pageID(), IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply);
auto coreFrame = Frame::create(page->corePage(), ownerElement, frame->m_frameLoaderClient.get());
Modified: trunk/Source/WebKit/WebProcess/WebProcess.cpp (236491 => 236492)
--- trunk/Source/WebKit/WebProcess/WebProcess.cpp 2018-09-26 01:18:53 UTC (rev 236491)
+++ trunk/Source/WebKit/WebProcess/WebProcess.cpp 2018-09-26 01:27:54 UTC (rev 236492)
@@ -251,6 +251,12 @@
supplement->initializeConnection(connection);
m_webConnection = WebConnectionToUIProcess::create(this);
+
+ // In order to ensure that the asynchronous messages that are used for notifying the UI process
+ // about when WebFrame objects come and go are always delivered before the synchronous policy messages,
+ // use this flag to force synchronous messages to be treated as asynchronous messages in the UI process
+ // unless when doing so would lead to a deadlock.
+ connection->setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage(true);
}
void WebProcess::initializeWebProcess(WebProcessCreationParameters&& parameters)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes