Changeset 247822 in webkit
- Timestamp:
- Jul 25, 2019, 8:42:11 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 20 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply-expected.txt (added)
-
LayoutTests/fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/page/ChromeClient.h (modified) (1 diff)
-
Source/WebCore/testing/Internals.cpp (modified) (1 diff)
-
Source/WebCore/testing/Internals.h (modified) (1 diff)
-
Source/WebCore/testing/Internals.idl (modified) (1 diff)
-
Source/WebKit/ChangeLog (modified) (1 diff)
-
Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp (modified) (2 diffs)
-
Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h (modified) (1 diff)
-
Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in (modified) (1 diff)
-
Source/WebKit/Platform/IPC/Connection.cpp (modified) (4 diffs)
-
Source/WebKit/Platform/IPC/Connection.h (modified) (1 diff)
-
Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp (modified) (3 diffs)
-
Source/WebKit/UIProcess/Network/NetworkProcessProxy.h (modified) (2 diffs)
-
Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in (modified) (1 diff)
-
Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp (modified) (5 diffs)
-
Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h (modified) (1 diff)
-
Source/WebKit/WebProcess/WebPage/WebPage.cpp (modified) (1 diff)
-
Source/WebKit/WebProcess/WebPage/WebPage.h (modified) (3 diffs)
-
Source/WebKit/WebProcess/WebPage/WebPage.messages.in (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r247821 r247822 1 2019-07-25 Chris Dumez <cdumez@apple.com> 2 3 Avoid UI Process hangs when the WebContent process is showing JS prompts / alerts 4 https://bugs.webkit.org/show_bug.cgi?id=200107 5 <rdar://problem/53034592> 6 7 Reviewed by Geoffrey Garen. 8 9 Add layout test coverage for SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply. 10 Without the flag on the sendSync from the WebContent process of the 11 NetworkConnectionToWebProcess::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply IPC, the 12 test would hang. This is because the WebContent process sends a sync IPC to the network process, 13 which in turns sends one to the UIProcess, which itself sends one back to the WebContent process. 14 This would attempt to re-enter the WebContent process which is currently sending a sync IPC, which 15 is not allowed by default. 16 17 * fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply-expected.txt: Added. 18 * fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply.html: Added. 19 1 20 2019-07-25 Rob Buis <rbuis@igalia.com> 2 21 -
trunk/Source/WebCore/ChangeLog
r247821 r247822 1 2019-07-25 Chris Dumez <cdumez@apple.com> 2 3 Avoid UI Process hangs when the WebContent process is showing JS prompts / alerts 4 https://bugs.webkit.org/show_bug.cgi?id=200107 5 <rdar://problem/53034592> 6 7 Reviewed by Geoffrey Garen. 8 9 Add testing infrastructure for SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply. 10 11 Test: fast/misc/testProcessIncomingSyncMessagesWhenWaitingForSyncReply.html 12 13 * page/ChromeClient.h: 14 * testing/Internals.cpp: 15 (WebCore::Internals::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): 16 * testing/Internals.h: 17 * testing/Internals.idl: 18 1 19 2019-07-25 Rob Buis <rbuis@igalia.com> 2 20 -
trunk/Source/WebCore/page/ChromeClient.h
r246285 r247822 382 382 #endif 383 383 384 virtual bool testProcessIncomingSyncMessagesWhenWaitingForSyncReply() { return true; } 385 384 386 #if PLATFORM(IOS_FAMILY) 385 387 // FIXME: Come up with a more descriptive name for this function and make it platform independent (if possible). -
trunk/Source/WebCore/testing/Internals.cpp
r247821 r247822 2276 2276 } 2277 2277 2278 bool Internals::testProcessIncomingSyncMessagesWhenWaitingForSyncReply() 2279 { 2280 ASSERT(contextDocument()); 2281 ASSERT(contextDocument()->page()); 2282 return contextDocument()->page()->chrome().client().testProcessIncomingSyncMessagesWhenWaitingForSyncReply(); 2283 } 2284 2278 2285 void Internals::setAutomaticDashSubstitutionEnabled(bool enabled) 2279 2286 { -
trunk/Source/WebCore/testing/Internals.h
r247821 r247822 332 332 void toggleOverwriteModeEnabled(); 333 333 334 bool testProcessIncomingSyncMessagesWhenWaitingForSyncReply(); 335 334 336 ExceptionOr<RefPtr<Range>> rangeOfString(const String&, RefPtr<Range>&&, const Vector<String>& findOptions); 335 337 ExceptionOr<unsigned> countMatchesForText(const String&, const Vector<String>& findOptions, const String& markMatches); -
trunk/Source/WebCore/testing/Internals.idl
r247821 r247822 383 383 [MayThrowException] double svgAnimationsInterval(SVGSVGElement element); 384 384 385 boolean testProcessIncomingSyncMessagesWhenWaitingForSyncReply(); 386 385 387 // Flags for layerTreeAsText. 386 388 const unsigned short LAYER_TREE_INCLUDES_VISIBLE_RECTS = 1; -
trunk/Source/WebKit/ChangeLog
r247821 r247822 1 2019-07-25 Chris Dumez <cdumez@apple.com> 2 3 Avoid UI Process hangs when the WebContent process is showing JS prompts / alerts 4 https://bugs.webkit.org/show_bug.cgi?id=200107 5 <rdar://problem/53034592> 6 7 Reviewed by Geoffrey Garen. 8 9 * Platform/IPC/Connection.cpp: 10 (IPC::Connection::SyncMessageState::incrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount): 11 (IPC::Connection::SyncMessageState::decrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount): 12 (IPC::Connection::SyncMessageState::processIncomingMessage): 13 (IPC::Connection::sendSyncMessage): 14 * Platform/IPC/Connection.h: 15 Add support for new SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply flag 16 to allow processing incoming sync messages while sending a particular sync IPC. This is the 17 default behavior in all processes except in the WebContent process, where we try to avoid 18 re-entering to prevent bugs. This flag allows the WebContent process to change its default 19 behavior for some specific IPCs, where we know it is safe to re-enter and where it benefits 20 performance to re-renter. 21 22 * NetworkProcess/NetworkConnectionToWebProcess.cpp: 23 (WebKit::NetworkConnectionToWebProcess::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): 24 * NetworkProcess/NetworkConnectionToWebProcess.h: 25 * NetworkProcess/NetworkConnectionToWebProcess.messages.in: 26 * UIProcess/Network/NetworkProcessProxy.cpp: 27 (WebKit::NetworkProcessProxy::didReceiveSyncMessage): 28 (WebKit::NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): 29 * UIProcess/Network/NetworkProcessProxy.h: 30 * UIProcess/Network/NetworkProcessProxy.messages.in: 31 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 32 (WebKit::WebChromeClient::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): 33 * WebProcess/WebCoreSupport/WebChromeClient.h: 34 * WebProcess/WebPage/WebPage.cpp: 35 (WebKit::WebPage::testProcessIncomingSyncMessagesWhenWaitingForSyncReply): 36 * WebProcess/WebPage/WebPage.h: 37 (WebKit::WebPage::sendSyncWithDelayedReply): 38 * WebProcess/WebPage/WebPage.messages.in: 39 SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply 40 Add testing infrastructure for SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply 41 flag. 42 43 * WebProcess/WebCoreSupport/WebChromeClient.cpp: 44 (WebKit::WebChromeClient::runJavaScriptAlert): 45 (WebKit::WebChromeClient::runJavaScriptConfirm): 46 (WebKit::WebChromeClient::runJavaScriptPrompt): 47 Use new SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply flag when sending 48 the synchronous IPC for JS alerts / prompt / confirm. This allows the WebProcess to process 49 incoming synchronous IPC for other processes (in particular the UIProcess) while it is blocked 50 on those synchronous IPCs. It is safe to re-enter the WebContent process on these sync IPCs 51 since they are triggered by JS and we return to JS right after. This should avoid UIProcess 52 hangs when the UIProcess is sending a sync IPC to the WebContent process, which is itself 53 stuck on the sync IPC to show a JS alert. 54 1 55 2019-07-25 Rob Buis <rbuis@igalia.com> 2 56 -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
r247558 r247822 35 35 #include "NetworkProcessConnectionMessages.h" 36 36 #include "NetworkProcessMessages.h" 37 #include "NetworkProcessProxyMessages.h" 37 38 #include "NetworkRTCMonitorMessages.h" 38 39 #include "NetworkRTCProviderMessages.h" … … 412 413 } 413 414 415 void NetworkConnectionToWebProcess::testProcessIncomingSyncMessagesWhenWaitingForSyncReply(WebCore::PageIdentifier webPageID, Messages::NetworkConnectionToWebProcess::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply::DelayedReply&& reply) 416 { 417 bool handled = false; 418 if (!m_networkProcess->parentProcessConnection()->sendSync(Messages::NetworkProcessProxy::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply(webPageID), Messages::NetworkProcessProxy::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply::Reply(handled), 0)) 419 return reply(false); 420 reply(handled); 421 } 422 414 423 void NetworkConnectionToWebProcess::loadPing(NetworkResourceLoadParameters&& loadParameters) 415 424 { -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
r246452 r247822 166 166 void scheduleResourceLoad(NetworkResourceLoadParameters&&); 167 167 void performSynchronousLoad(NetworkResourceLoadParameters&&, Messages::NetworkConnectionToWebProcess::PerformSynchronousLoad::DelayedReply&&); 168 void testProcessIncomingSyncMessagesWhenWaitingForSyncReply(WebCore::PageIdentifier, Messages::NetworkConnectionToWebProcess::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply::DelayedReply&&); 168 169 void loadPing(NetworkResourceLoadParameters&&); 169 170 void prefetchDNS(const String&); -
trunk/Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
r246452 r247822 25 25 ScheduleResourceLoad(WebKit::NetworkResourceLoadParameters resourceLoadParameters) 26 26 PerformSynchronousLoad(WebKit::NetworkResourceLoadParameters resourceLoadParameters) -> (WebCore::ResourceError error, WebCore::ResourceResponse response, Vector<char> data) Synchronous 27 TestProcessIncomingSyncMessagesWhenWaitingForSyncReply(WebCore::PageIdentifier webPageID) -> (bool handled) Synchronous 27 28 LoadPing(WebKit::NetworkResourceLoadParameters resourceLoadParameters) 28 29 RemoveLoadIdentifier(uint64_t resourceLoadIdentifier) -
trunk/Source/WebKit/Platform/IPC/Connection.cpp
r247486 r247822 99 99 void dispatchMessages(Connection* allowedConnection); 100 100 101 void incrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount() { ++m_processIncomingSyncMessagesWhenWaitingForSyncReplyCount; } 102 void decrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount() { --m_processIncomingSyncMessagesWhenWaitingForSyncReplyCount; } 103 101 104 private: 102 105 void dispatchMessageAndResetDidScheduleDispatchMessagesForConnection(Connection&); … … 115 118 }; 116 119 Vector<ConnectionAndIncomingMessage> m_messagesToDispatchWhileWaitingForSyncReply; 120 121 std::atomic<unsigned> m_processIncomingSyncMessagesWhenWaitingForSyncReplyCount { 0 }; 117 122 }; 118 123 … … 135 140 bool Connection::SyncMessageState::processIncomingMessage(Connection& connection, std::unique_ptr<Decoder>& message) 136 141 { 137 if (!message->shouldDispatchMessageWhenWaitingForSyncReply()) 142 bool shouldDispatchMessageWhenWaitingForSyncReply = message->shouldDispatchMessageWhenWaitingForSyncReply(); 143 144 // We dispatch synchronous messages even if shouldDispatchMessageWhenWaitingForSyncReply returns false if the 145 // sendSync() used SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply. This is used for some messages 146 // in the WebContent process (which normally does not dispatch messages when waiting for a sync reply), to avoid 147 // hangs. 148 if (!shouldDispatchMessageWhenWaitingForSyncReply && message->isSyncMessage() && m_processIncomingSyncMessagesWhenWaitingForSyncReplyCount.load()) 149 shouldDispatchMessageWhenWaitingForSyncReply = true; 150 151 if (!shouldDispatchMessageWhenWaitingForSyncReply) 138 152 return false; 139 153 … … 566 580 sendMessage(WTFMove(encoder), IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply); 567 581 582 if (sendSyncOptions.contains(SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply)) 583 SyncMessageState::singleton().incrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount(); 584 568 585 // Then wait for a reply. Waiting for a reply could involve dispatching incoming sync messages, so 569 586 // keep an extra reference to the connection here in case it's invalidated. 570 587 Ref<Connection> protect(*this); 571 588 std::unique_ptr<Decoder> reply = waitForSyncReply(syncRequestID, timeout, sendSyncOptions); 589 590 if (sendSyncOptions.contains(SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply)) 591 SyncMessageState::singleton().decrementProcessIncomingSyncMessagesWhenWaitingForSyncReplyCount(); 572 592 573 593 --m_inSendSyncCount; -
trunk/Source/WebKit/Platform/IPC/Connection.h
r247486 r247822 69 69 InformPlatformProcessWillSuspend = 1 << 0, 70 70 UseFullySynchronousModeForTesting = 1 << 1, 71 ProcessIncomingSyncMessagesWhenWaitingForSyncReply = 1 << 2, 71 72 }; 72 73 -
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
r245796 r247822 41 41 #include "StorageAccessStatus.h" 42 42 #include "WebCompiledContentRuleList.h" 43 #include "WebPageMessages.h" 43 44 #include "WebPageProxy.h" 44 45 #include "WebProcessMessages.h" … … 269 270 return; 270 271 271 ASSERT_NOT_REACHED();272 didReceiveSyncNetworkProcessProxyMessage(connection, decoder, replyEncoder); 272 273 } 273 274 … … 1204 1205 } 1205 1206 1207 void NetworkProcessProxy::testProcessIncomingSyncMessagesWhenWaitingForSyncReply(WebCore::PageIdentifier webPageID, Messages::NetworkProcessProxy::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply::DelayedReply&& reply) 1208 { 1209 auto* page = WebProcessProxy::webPage(webPageID); 1210 if (!page) 1211 return reply(false); 1212 1213 bool handled = false; 1214 if (!page->sendSync(Messages::WebPage::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply(), Messages::WebPage::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply::Reply(handled))) 1215 return reply(false); 1216 reply(handled); 1217 } 1218 1206 1219 #if ENABLE(INDEXED_DATABASE) 1207 1220 void NetworkProcessProxy::createSymLinkForFileUpgrade(const String& indexedDatabaseDirectory) -
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
r245796 r247822 164 164 void didSyncAllCookies(); 165 165 166 void testProcessIncomingSyncMessagesWhenWaitingForSyncReply(WebCore::PageIdentifier, Messages::NetworkProcessProxy::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply::DelayedReply&&); 167 166 168 ProcessThrottler& throttler() { return m_throttler; } 167 169 WebProcessPool& processPool() { return m_processPool; } … … 204 206 void didClose(IPC::Connection&) override; 205 207 void didReceiveInvalidMessage(IPC::Connection&, IPC::StringReference messageReceiverName, IPC::StringReference messageName) override; 208 void didReceiveSyncNetworkProcessProxyMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&); 206 209 207 210 // Message handlers -
trunk/Source/WebKit/UIProcess/Network/NetworkProcessProxy.messages.in
r245796 r247822 31 31 32 32 DidSyncAllCookies() 33 34 TestProcessIncomingSyncMessagesWhenWaitingForSyncReply(WebCore::PageIdentifier webPageID) -> (bool handled) Synchronous 33 35 34 36 ProcessReadyToSuspend() -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
r246285 r247822 37 37 #include "InjectedBundleNodeHandle.h" 38 38 #include "NavigationActionData.h" 39 #include "NetworkConnectionToWebProcessMessages.h" 40 #include "NetworkProcessConnection.h" 39 41 #include "PageBanner.h" 40 42 #include "UserData.h" … … 304 306 } 305 307 308 bool WebChromeClient::testProcessIncomingSyncMessagesWhenWaitingForSyncReply() 309 { 310 bool handled = false; 311 if (!WebProcess::singleton().ensureNetworkProcessConnection().connection().sendSync(Messages::NetworkConnectionToWebProcess::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply(m_page.pageID()), Messages::NetworkConnectionToWebProcess::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply::Reply(handled), 0, Seconds::infinity(), IPC::SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply)) 312 return false; 313 return handled; 314 } 315 306 316 void WebChromeClient::show() 307 317 { … … 459 469 HangDetectionDisabler hangDetectionDisabler; 460 470 461 m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), SecurityOriginData::fromFrame(&frame), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply() );471 m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptAlert(webFrame->frameID(), SecurityOriginData::fromFrame(&frame), alertText), Messages::WebPageProxy::RunJavaScriptAlert::Reply(), IPC::SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply); 462 472 } 463 473 … … 476 486 477 487 bool result = false; 478 if (!m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), SecurityOriginData::fromFrame(&frame), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result) ))488 if (!m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptConfirm(webFrame->frameID(), SecurityOriginData::fromFrame(&frame), message), Messages::WebPageProxy::RunJavaScriptConfirm::Reply(result), IPC::SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply)) 479 489 return false; 480 490 … … 495 505 HangDetectionDisabler hangDetectionDisabler; 496 506 497 if (!m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame->frameID(), SecurityOriginData::fromFrame(&frame), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result) ))507 if (!m_page.sendSyncWithDelayedReply(Messages::WebPageProxy::RunJavaScriptPrompt(webFrame->frameID(), SecurityOriginData::fromFrame(&frame), message, defaultValue), Messages::WebPageProxy::RunJavaScriptPrompt::Reply(result), IPC::SendSyncOption::ProcessIncomingSyncMessagesWhenWaitingForSyncReply)) 498 508 return false; 499 509 -
trunk/Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
r246285 r247822 223 223 void contentRuleListNotification(const URL&, const WebCore::ContentRuleListResults&) final; 224 224 225 bool testProcessIncomingSyncMessagesWhenWaitingForSyncReply() final; 226 225 227 #if PLATFORM(WIN) 226 228 void setLastSetCursorToCurrentCursor() final { } -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp
r247820 r247822 5886 5886 } 5887 5887 5888 void WebPage::testProcessIncomingSyncMessagesWhenWaitingForSyncReply(Messages::WebPage::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply::DelayedReply&& reply) 5889 { 5890 reply(true); 5891 } 5892 5888 5893 #if ENABLE(PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC) 5889 5894 static const int primarySnapshottedPlugInSearchLimit = 3000; -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.h
r247820 r247822 50 50 #include "UserData.h" 51 51 #include "WebBackForwardListProxy.h" 52 #include "WebPageMessages.h" 52 53 #include "WebURLSchemeHandler.h" 53 54 #include "WebUndoStepID.h" … … 1167 1168 1168 1169 template<typename T> 1169 bool sendSyncWithDelayedReply(T&& message, typename T::Reply&& reply )1170 bool sendSyncWithDelayedReply(T&& message, typename T::Reply&& reply, OptionSet<IPC::SendSyncOption> sendSyncOptions = { }) 1170 1171 { 1171 1172 cancelGesturesBlockedOnSynchronousReplies(); 1172 return sendSync(WTFMove(message), WTFMove(reply), Seconds::infinity(), IPC::SendSyncOption::InformPlatformProcessWillSuspend);1173 return sendSync(WTFMove(message), WTFMove(reply), Seconds::infinity(), sendSyncOptions | IPC::SendSyncOption::InformPlatformProcessWillSuspend); 1173 1174 } 1174 1175 … … 1291 1292 bool executeKeypressCommandsInternal(const Vector<WebCore::KeypressCommand>&, WebCore::KeyboardEvent*); 1292 1293 #endif 1294 1295 void testProcessIncomingSyncMessagesWhenWaitingForSyncReply(Messages::WebPage::TestProcessIncomingSyncMessagesWhenWaitingForSyncReply::DelayedReply&&); 1293 1296 1294 1297 void updateDrawingAreaLayerTreeFreezeState(); -
trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in
r247820 r247822 31 31 SendCSPViolationReport(uint64_t frameID, URL reportURL, IPC::FormDataReference reportData) 32 32 EnqueueSecurityPolicyViolationEvent(uint64_t frameID, WebCore::SecurityPolicyViolationEvent::Init eventInit) 33 34 TestProcessIncomingSyncMessagesWhenWaitingForSyncReply() -> (bool handled) Synchronous 33 35 34 36 #if PLATFORM(COCOA)
Note:
See TracChangeset
for help on using the changeset viewer.