Title: [241778] trunk/Source/WebKit
Revision
241778
Author
[email protected]
Date
2019-02-19 14:51:29 -0800 (Tue, 19 Feb 2019)

Log Message

Reduce use of LegacySync IPC messages
https://bugs.webkit.org/show_bug.cgi?id=194783

Reviewed by Geoffrey Garen.

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::handleSynchronousMessage):
* UIProcess/WebProcessPool.h:
* UIProcess/WebProcessPool.messages.in:
* UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::getPlugins):
(WebKit::WebProcessProxy::shouldTerminate):
* UIProcess/WebProcessProxy.h:
* UIProcess/WebProcessProxy.messages.in:
* WebProcess/Plugins/PluginProcessConnection.cpp:
(WebKit::PluginProcessConnection::setException):
* WebProcess/Plugins/PluginProcessConnection.h:
* WebProcess/Plugins/PluginProcessConnection.messages.in:
* WebProcess/Plugins/PluginProxy.cpp:
(WebKit::PluginProxy::didCreatePlugin):
(WebKit::PluginProxy::didFailToCreatePlugin):
(WebKit::PluginProxy::proxiesForURL):
(WebKit::PluginProxy::cookiesForURL):
(WebKit::PluginProxy::getAuthenticationInfo):
(WebKit::PluginProxy::getPluginElementNPObject):
(WebKit::PluginProxy::evaluate):
(WebKit::PluginProxy::createPluginContainer):
* WebProcess/Plugins/PluginProxy.h:
* WebProcess/Plugins/PluginProxy.messages.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (241777 => 241778)


--- trunk/Source/WebKit/ChangeLog	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/ChangeLog	2019-02-19 22:51:29 UTC (rev 241778)
@@ -1,5 +1,37 @@
 2019-02-19  Alex Christensen  <[email protected]>
 
+        Reduce use of LegacySync IPC messages
+        https://bugs.webkit.org/show_bug.cgi?id=194783
+
+        Reviewed by Geoffrey Garen.
+
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::handleSynchronousMessage):
+        * UIProcess/WebProcessPool.h:
+        * UIProcess/WebProcessPool.messages.in:
+        * UIProcess/WebProcessProxy.cpp:
+        (WebKit::WebProcessProxy::getPlugins):
+        (WebKit::WebProcessProxy::shouldTerminate):
+        * UIProcess/WebProcessProxy.h:
+        * UIProcess/WebProcessProxy.messages.in:
+        * WebProcess/Plugins/PluginProcessConnection.cpp:
+        (WebKit::PluginProcessConnection::setException):
+        * WebProcess/Plugins/PluginProcessConnection.h:
+        * WebProcess/Plugins/PluginProcessConnection.messages.in:
+        * WebProcess/Plugins/PluginProxy.cpp:
+        (WebKit::PluginProxy::didCreatePlugin):
+        (WebKit::PluginProxy::didFailToCreatePlugin):
+        (WebKit::PluginProxy::proxiesForURL):
+        (WebKit::PluginProxy::cookiesForURL):
+        (WebKit::PluginProxy::getAuthenticationInfo):
+        (WebKit::PluginProxy::getPluginElementNPObject):
+        (WebKit::PluginProxy::evaluate):
+        (WebKit::PluginProxy::createPluginContainer):
+        * WebProcess/Plugins/PluginProxy.h:
+        * WebProcess/Plugins/PluginProxy.messages.in:
+
+2019-02-19  Alex Christensen  <[email protected]>
+
         Remove assertion introduced in r229683
         https://bugs.webkit.org/show_bug.cgi?id=194825
         <rdar://problem/47628258>

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.cpp (241777 => 241778)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.cpp	2019-02-19 22:51:29 UTC (rev 241778)
@@ -1788,15 +1788,15 @@
     m_injectedBundleClient->didReceiveMessageFromInjectedBundle(*this, messageName, webProcessProxy->transformHandlesToObjects(messageBody.object()).get());
 }
 
-void WebProcessPool::handleSynchronousMessage(IPC::Connection& connection, const String& messageName, const UserData& messageBody, UserData& returnUserData)
+void WebProcessPool::handleSynchronousMessage(IPC::Connection& connection, const String& messageName, const UserData& messageBody, CompletionHandler<void(UserData&&)>&& completionHandler)
 {
     auto* webProcessProxy = webProcessProxyFromConnection(connection, m_processes);
     if (!webProcessProxy)
-        return;
+        return completionHandler({ });
 
     RefPtr<API::Object> returnData;
     m_injectedBundleClient->didReceiveSynchronousMessageFromInjectedBundle(*this, messageName, webProcessProxy->transformHandlesToObjects(messageBody.object()).get(), returnData);
-    returnUserData = UserData(webProcessProxy->transformObjectsToHandles(returnData.get()));
+    completionHandler(UserData(webProcessProxy->transformObjectsToHandles(returnData.get())));
 }
 
 void WebProcessPool::didGetStatistics(const StatisticsData& statisticsData, uint64_t requestID)

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.h (241777 => 241778)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.h	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.h	2019-02-19 22:51:29 UTC (rev 241778)
@@ -512,7 +512,7 @@
     void platformInitializeNetworkProcess(NetworkProcessCreationParameters&);
 
     void handleMessage(IPC::Connection&, const String& messageName, const UserData& messageBody);
-    void handleSynchronousMessage(IPC::Connection&, const String& messageName, const UserData& messageBody, UserData& returnUserData);
+    void handleSynchronousMessage(IPC::Connection&, const String& messageName, const UserData& messageBody, CompletionHandler<void(UserData&&)>&&);
 
     void didGetStatistics(const StatisticsData&, uint64_t callbackID);
 

Modified: trunk/Source/WebKit/UIProcess/WebProcessPool.messages.in (241777 => 241778)


--- trunk/Source/WebKit/UIProcess/WebProcessPool.messages.in	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/UIProcess/WebProcessPool.messages.in	2019-02-19 22:51:29 UTC (rev 241778)
@@ -22,7 +22,7 @@
 
 messages -> WebProcessPool {
     HandleMessage(String messageName, WebKit::UserData messageBody) WantsConnection
-    HandleSynchronousMessage(String messageName, WebKit::UserData messageBody) -> (WebKit::UserData returnData) LegacySync WantsConnection
+    HandleSynchronousMessage(String messageName, WebKit::UserData messageBody) -> (WebKit::UserData returnData) Delayed WantsConnection
 
     DidGetStatistics(struct WebKit::StatisticsData statisticsData, uint64_t callbackID)
 

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp (241777 => 241778)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.cpp	2019-02-19 22:51:29 UTC (rev 241778)
@@ -532,17 +532,19 @@
 }
 
 #if ENABLE(NETSCAPE_PLUGIN_API)
-void WebProcessProxy::getPlugins(bool refresh, Vector<PluginInfo>& plugins, Vector<PluginInfo>& applicationPlugins, Optional<Vector<WebCore::SupportedPluginIdentifier>>& supportedPluginIdentifiers)
+void WebProcessProxy::getPlugins(bool refresh, CompletionHandler<void(Vector<PluginInfo>&& plugins, Vector<PluginInfo>&& applicationPlugins, Optional<Vector<WebCore::SupportedPluginIdentifier>>&& supportedPluginIdentifiers)>&& completionHandler)
 {
     if (refresh)
         m_processPool->pluginInfoStore().refresh();
 
-    supportedPluginIdentifiers = m_processPool->pluginInfoStore().supportedPluginIdentifiers();
+    auto supportedPluginIdentifiers = m_processPool->pluginInfoStore().supportedPluginIdentifiers();
 
+    Vector<PluginInfo> plugins;
     Vector<PluginModuleInfo> pluginModules = m_processPool->pluginInfoStore().plugins();
     for (size_t i = 0; i < pluginModules.size(); ++i)
         plugins.append(pluginModules[i].info);
 
+    Vector<PluginInfo> applicationPlugins;
 #if ENABLE(PDFKIT_PLUGIN)
     // Add built-in PDF last, so that it's not used when a real plug-in is installed.
     if (!m_processPool->omitPDFSupport()) {
@@ -549,9 +551,8 @@
         plugins.append(PDFPlugin::pluginInfo());
         applicationPlugins.append(PDFPlugin::pluginInfo());
     }
-#else
-    UNUSED_PARAM(applicationPlugins);
 #endif
+    completionHandler(WTFMove(plugins), WTFMove(applicationPlugins), WTFMove(supportedPluginIdentifiers));
 }
 #endif // ENABLE(NETSCAPE_PLUGIN_API)
 
@@ -855,13 +856,14 @@
     return true;
 }
 
-void WebProcessProxy::shouldTerminate(bool& shouldTerminate)
+void WebProcessProxy::shouldTerminate(CompletionHandler<void(bool)>&& completionHandler)
 {
-    shouldTerminate = canTerminateAuxiliaryProcess();
+    bool shouldTerminate = canTerminateAuxiliaryProcess();
     if (shouldTerminate) {
         // We know that the web process is going to terminate so start shutting it down in the UI process.
         shutDown();
     }
+    completionHandler(shouldTerminate);
 }
 
 void WebProcessProxy::updateTextCheckerState()

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.h (241777 => 241778)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.h	2019-02-19 22:51:29 UTC (rev 241778)
@@ -282,7 +282,7 @@
     void didDestroyUserGestureToken(uint64_t);
 
     bool canBeAddedToWebProcessCache() const;
-    void shouldTerminate(bool& shouldTerminate);
+    void shouldTerminate(CompletionHandler<void(bool)>&&);
 
     void createNewMessagePortChannel(const WebCore::MessagePortIdentifier& port1, const WebCore::MessagePortIdentifier& port2);
     void entangleLocalPortInThisProcessToRemote(const WebCore::MessagePortIdentifier& local, const WebCore::MessagePortIdentifier& remote);
@@ -299,7 +299,7 @@
 
     // Plugins
 #if ENABLE(NETSCAPE_PLUGIN_API)
-    void getPlugins(bool refresh, Vector<WebCore::PluginInfo>& plugins, Vector<WebCore::PluginInfo>& applicationPlugins, Optional<Vector<WebCore::SupportedPluginIdentifier>>&);
+    void getPlugins(bool refresh, CompletionHandler<void(Vector<WebCore::PluginInfo>&& plugins, Vector<WebCore::PluginInfo>&& applicationPlugins, Optional<Vector<WebCore::SupportedPluginIdentifier>>&&)>&&);
 #endif // ENABLE(NETSCAPE_PLUGIN_API)
 #if ENABLE(NETSCAPE_PLUGIN_API)
     void getPluginProcessConnection(uint64_t pluginProcessToken, Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply&&);

Modified: trunk/Source/WebKit/UIProcess/WebProcessProxy.messages.in (241777 => 241778)


--- trunk/Source/WebKit/UIProcess/WebProcessProxy.messages.in	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/UIProcess/WebProcessProxy.messages.in	2019-02-19 22:51:29 UTC (rev 241778)
@@ -26,7 +26,7 @@
 
     DidDestroyUserGestureToken(uint64_t userGestureTokenID) 
 
-    ShouldTerminate() -> (bool shouldTerminate) LegacySync
+    ShouldTerminate() -> (bool shouldTerminate) Delayed
 
     EnableSuddenTermination()
     DisableSuddenTermination()
@@ -33,7 +33,7 @@
 
     # Plugin messages.
 #if ENABLE(NETSCAPE_PLUGIN_API)
-    GetPlugins(bool refresh) -> (Vector<WebCore::PluginInfo> plugins, Vector<WebCore::PluginInfo> applicationPlugins, struct Optional<Vector<WebCore::SupportedPluginIdentifier>> supportedPluginIdentifiers) LegacySync
+    GetPlugins(bool refresh) -> (Vector<WebCore::PluginInfo> plugins, Vector<WebCore::PluginInfo> applicationPlugins, struct Optional<Vector<WebCore::SupportedPluginIdentifier>> supportedPluginIdentifiers) Delayed
     GetPluginProcessConnection(uint64_t pluginProcessToken) -> (IPC::Attachment connectionHandle, bool supportsAsynchronousInitialization) Delayed
 #endif
     GetNetworkProcessConnection() -> (IPC::Attachment connectionHandle) Delayed

Modified: trunk/Source/WebKit/WebProcess/Plugins/PluginProcessConnection.cpp (241777 => 241778)


--- trunk/Source/WebKit/WebProcess/Plugins/PluginProcessConnection.cpp	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/WebProcess/Plugins/PluginProcessConnection.cpp	2019-02-19 22:51:29 UTC (rev 241778)
@@ -132,9 +132,10 @@
 {
 }
 
-void PluginProcessConnection::setException(const String& exceptionString)
+void PluginProcessConnection::setException(const String& exceptionString, CompletionHandler<void()>&& completionHandler)
 {
     NPRuntimeObjectMap::setGlobalException(exceptionString);
+    completionHandler();
 }
     
 } // namespace WebKit

Modified: trunk/Source/WebKit/WebProcess/Plugins/PluginProcessConnection.h (241777 => 241778)


--- trunk/Source/WebKit/WebProcess/Plugins/PluginProcessConnection.h	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/WebProcess/Plugins/PluginProcessConnection.h	2019-02-19 22:51:29 UTC (rev 241778)
@@ -70,7 +70,7 @@
 
     // Message handlers.
     void didReceiveSyncPluginProcessConnectionMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&);
-    void setException(const String&);
+    void setException(const String&, CompletionHandler<void()>&&);
 
     PluginProcessConnectionManager* m_pluginProcessConnectionManager;
     uint64_t m_pluginProcessToken;

Modified: trunk/Source/WebKit/WebProcess/Plugins/PluginProcessConnection.messages.in (241777 => 241778)


--- trunk/Source/WebKit/WebProcess/Plugins/PluginProcessConnection.messages.in	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/WebProcess/Plugins/PluginProcessConnection.messages.in	2019-02-19 22:51:29 UTC (rev 241778)
@@ -24,7 +24,7 @@
 
 messages -> PluginProcessConnection LegacyReceiver {
     # Set a global _javascript_ exception.
-    SetException(String exceptionString) -> () LegacySync
+    SetException(String exceptionString) -> () Delayed
 }
 
 #endif

Modified: trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.cpp (241777 => 241778)


--- trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.cpp	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.cpp	2019-02-19 22:51:29 UTC (rev 241778)
@@ -141,24 +141,26 @@
     return result;
 }
 
-void PluginProxy::didCreatePlugin(bool wantsWheelEvents, uint32_t remoteLayerClientID)
+void PluginProxy::didCreatePlugin(bool wantsWheelEvents, uint32_t remoteLayerClientID, CompletionHandler<void()>&& completionHandler)
 {
     // We might have tried to create the plug-in sychronously while waiting on the asynchronous reply,
     // in which case we should ignore this message.
     if (!m_waitingOnAsynchronousInitialization)
-        return;
+        return completionHandler();
 
     didCreatePluginInternal(wantsWheelEvents, remoteLayerClientID);
+    completionHandler();
 }
 
-void PluginProxy::didFailToCreatePlugin()
+void PluginProxy::didFailToCreatePlugin(CompletionHandler<void()>&& completionHandler)
 {
     // We might have tried to create the plug-in sychronously while waiting on the asynchronous reply,
     // in which case we should ignore this message.
     if (!m_waitingOnAsynchronousInitialization)
-        return;
+        return completionHandler();
 
     didFailToCreatePluginInternal();
+    completionHandler();
 }
 
 void PluginProxy::didCreatePluginInternal(bool wantsWheelEvents, uint32_t remoteLayerClientID)
@@ -574,14 +576,14 @@
     controller()->loadURL(requestID, method, urlString, target, headerFields, httpBody, allowPopups);
 }
 
-void PluginProxy::proxiesForURL(const String& urlString, String& proxyString)
+void PluginProxy::proxiesForURL(const String& urlString, CompletionHandler<void(String)>&& completionHandler)
 {
-    proxyString = controller()->proxiesForURL(urlString);
+    completionHandler(controller()->proxiesForURL(urlString));
 }
 
-void PluginProxy::cookiesForURL(const String& urlString, String& cookieString)
+void PluginProxy::cookiesForURL(const String& urlString, CompletionHandler<void(String)>&& completionHandler)
 {
-    cookieString = controller()->cookiesForURL(urlString);
+    completionHandler(controller()->cookiesForURL(urlString));
 }
 
 void PluginProxy::setCookiesForURL(const String& urlString, const String& cookieString)
@@ -589,9 +591,12 @@
     controller()->setCookiesForURL(urlString, cookieString);
 }
 
-void PluginProxy::getAuthenticationInfo(const ProtectionSpace& protectionSpace, bool& returnValue, String& username, String& password)
+void PluginProxy::getAuthenticationInfo(const ProtectionSpace& protectionSpace, CompletionHandler<void(bool returnValue, String username, String password)>&& completionHandler)
 {
-    returnValue = controller()->getAuthenticationInfo(protectionSpace, username, password);
+    String username;
+    String password;
+    bool returnValue = controller()->getAuthenticationInfo(protectionSpace, username, password);
+    completionHandler(returnValue, username, password);
 }
 
 float PluginProxy::contentsScaleFactor()
@@ -634,40 +639,38 @@
     return IntRect(IntPoint(), m_pluginSize);
 }
 
-void PluginProxy::getPluginElementNPObject(uint64_t& pluginElementNPObjectID)
+void PluginProxy::getPluginElementNPObject(CompletionHandler<void(uint64_t)>&& completionHandler)
 {
     NPObject* pluginElementNPObject = controller()->pluginElementNPObject();
-    if (!pluginElementNPObject) {
-        pluginElementNPObjectID = 0;
-        return;
-    }
+    if (!pluginElementNPObject)
+        return completionHandler(0);
 
-    pluginElementNPObjectID = m_connection->npRemoteObjectMap()->registerNPObject(pluginElementNPObject, this);
+    uint64_t pluginElementNPObjectID = m_connection->npRemoteObjectMap()->registerNPObject(pluginElementNPObject, this);
     releaseNPObject(pluginElementNPObject);
+    completionHandler(pluginElementNPObjectID);
 }
 
-void PluginProxy::evaluate(const NPVariantData& npObjectAsVariantData, const String& scriptString, bool allowPopups, bool& returnValue, NPVariantData& resultData)
+void PluginProxy::evaluate(const NPVariantData& npObjectAsVariantData, const String& scriptString, bool allowPopups, CompletionHandler<void(bool returnValue, NPVariantData&& resultData)>&& completionHandler)
 {
     PluginController::PluginDestructionProtector protector(controller());
 
     NPVariant npObjectAsVariant = m_connection->npRemoteObjectMap()->npVariantDataToNPVariant(npObjectAsVariantData, this);
-    if (!NPVARIANT_IS_OBJECT(npObjectAsVariant) || !(NPVARIANT_TO_OBJECT(npObjectAsVariant))) {
-        returnValue = false;
-        return;
-    }
-        
+    if (!NPVARIANT_IS_OBJECT(npObjectAsVariant) || !(NPVARIANT_TO_OBJECT(npObjectAsVariant)))
+        return completionHandler(false, { });
+
     NPVariant result;
-    returnValue = controller()->evaluate(NPVARIANT_TO_OBJECT(npObjectAsVariant), scriptString, &result, allowPopups);
+    bool returnValue = controller()->evaluate(NPVARIANT_TO_OBJECT(npObjectAsVariant), scriptString, &result, allowPopups);
     if (!returnValue)
-        return;
+        return completionHandler(false, { });
 
     // Convert the NPVariant to an NPVariantData.
-    resultData = m_connection->npRemoteObjectMap()->npVariantToNPVariantData(result, this);
+    NPVariantData resultData = m_connection->npRemoteObjectMap()->npVariantToNPVariantData(result, this);
     
     // And release the result.
     releaseNPVariantValue(&result);
-
     releaseNPVariantValue(&npObjectAsVariant);
+    
+    completionHandler(returnValue, WTFMove(resultData));
 }
 
 void PluginProxy::setPluginIsPlayingAudio(bool pluginIsPlayingAudio)
@@ -696,9 +699,9 @@
 }
 
 #if PLATFORM(X11)
-void PluginProxy::createPluginContainer(uint64_t& windowID)
+void PluginProxy::createPluginContainer(CompletionHandler<void(uint64_t windowID)>&& completionHandler)
 {
-    windowID = controller()->createPluginContainer();
+    completionHandler(controller()->createPluginContainer());
 }
 
 void PluginProxy::windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID)

Modified: trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.h (241777 => 241778)


--- trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.h	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.h	2019-02-19 22:51:29 UTC (rev 241778)
@@ -156,12 +156,12 @@
     // Message handlers.
     void loadURL(uint64_t requestID, const String& method, const String& urlString, const String& target, const WebCore::HTTPHeaderMap& headerFields, const Vector<uint8_t>& httpBody, bool allowPopups);
     void update(const WebCore::IntRect& paintedRect);
-    void proxiesForURL(const String& urlString, String& proxyString);
-    void cookiesForURL(const String& urlString, String& cookieString);
+    void proxiesForURL(const String& urlString, CompletionHandler<void(String)>&&);
+    void cookiesForURL(const String& urlString, CompletionHandler<void(String)>&&);
     void setCookiesForURL(const String& urlString, const String& cookieString);
-    void getAuthenticationInfo(const WebCore::ProtectionSpace&, bool& returnValue, String& username, String& password);
-    void getPluginElementNPObject(uint64_t& pluginElementNPObjectID);
-    void evaluate(const NPVariantData& npObjectAsVariantData, const String& scriptString, bool allowPopups, bool& returnValue, NPVariantData& resultData);
+    void getAuthenticationInfo(const WebCore::ProtectionSpace&, CompletionHandler<void(bool returnValue, String username, String password)>&&);
+    void getPluginElementNPObject(CompletionHandler<void(uint64_t)>&&);
+    void evaluate(const NPVariantData& npObjectAsVariantData, const String& scriptString, bool allowPopups, CompletionHandler<void(bool returnValue, NPVariantData&& resultData)>&&);
     void setPluginIsPlayingAudio(bool);
     void continueStreamLoad(uint64_t streamID);
     void cancelStreamLoad(uint64_t streamID);
@@ -173,7 +173,7 @@
     void setLayerHostingContextID(uint32_t);
 #endif
 #if PLATFORM(X11)
-    void createPluginContainer(uint64_t& windowID);
+    void createPluginContainer(CompletionHandler<void(uint64_t windowID)>&&);
     void windowedPluginGeometryDidChange(const WebCore::IntRect& frameRect, const WebCore::IntRect& clipRect, uint64_t windowID);
     void windowedPluginVisibilityDidChange(bool isVisible, uint64_t windowID);
 #endif
@@ -180,8 +180,8 @@
 
     bool canInitializeAsynchronously() const;
 
-    void didCreatePlugin(bool wantsWheelEvents, uint32_t remoteLayerClientID);
-    void didFailToCreatePlugin();
+    void didCreatePlugin(bool wantsWheelEvents, uint32_t remoteLayerClientID, CompletionHandler<void()>&&);
+    void didFailToCreatePlugin(CompletionHandler<void()>&&);
 
     void didCreatePluginInternal(bool wantsWheelEvents, uint32_t remoteLayerClientID);
     void didFailToCreatePluginInternal();

Modified: trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.messages.in (241777 => 241778)


--- trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.messages.in	2019-02-19 22:49:13 UTC (rev 241777)
+++ trunk/Source/WebKit/WebProcess/Plugins/PluginProxy.messages.in	2019-02-19 22:51:29 UTC (rev 241778)
@@ -30,22 +30,22 @@
     Update(WebCore::IntRect paintedRect)
 
     # Returns a PAC style string with proxies for the given URL.
-    ProxiesForURL(String urlString) -> (String proxiesString) LegacySync
+    ProxiesForURL(String urlString) -> (String proxiesString) Delayed
 
     # Returns the cookies for the given URL.
-    CookiesForURL(String urlString) -> (String cookieString) LegacySync
+    CookiesForURL(String urlString) -> (String cookieString) Delayed
 
     # Sets the cookies for the given URL.
     SetCookiesForURL(String urlString, String cookieString)
 
     # Gets the authentication info for the given protection space.
-    GetAuthenticationInfo(WebCore::ProtectionSpace protectionSpace) -> (bool returnValue, String username, String password) LegacySync
+    GetAuthenticationInfo(WebCore::ProtectionSpace protectionSpace) -> (bool returnValue, String username, String password) Delayed
 
     # Gets a reference to the plug-in element NPObject.
-    GetPluginElementNPObject() -> (uint64_t pluginElementNPObjectID) LegacySync
+    GetPluginElementNPObject() -> (uint64_t pluginElementNPObjectID) Delayed
 
     # Evaluates the given _javascript_ string.
-    Evaluate(WebKit::NPVariantData npObjectAsVariantData, String scriptString, bool allowPopups) -> (bool returnValue, WebKit::NPVariantData resultData) LegacySync
+    Evaluate(WebKit::NPVariantData npObjectAsVariantData, String scriptString, bool allowPopups) -> (bool returnValue, WebKit::NPVariantData resultData) Delayed
 
     # Cancels the given stream load.
     CancelStreamLoad(uint64_t streamID)
@@ -72,7 +72,7 @@
 
 #if PLATFORM(X11)
     # Create the plugin container for windowed plugins
-    CreatePluginContainer() -> (uint64_t windowID) LegacySync
+    CreatePluginContainer() -> (uint64_t windowID) Delayed
 
     # Update geometry of windowed plugin widget
     WindowedPluginGeometryDidChange(WebCore::IntRect frameRect, WebCore::IntRect clipRect, uint64_t windowID)
@@ -82,10 +82,10 @@
 #endif
 
     # Tells the WebProcess that the plug-in was successfully initialized asynchronously
-    DidCreatePlugin(bool wantsWheelEvents, uint32_t remoteLayerClientID) -> () LegacySync
+    DidCreatePlugin(bool wantsWheelEvents, uint32_t remoteLayerClientID) -> () Delayed
     
     # Tells the WebProcess that the plug-in failed to initialize.
-    DidFailToCreatePlugin() -> () LegacySync
+    DidFailToCreatePlugin() -> () Delayed
 
     # Tells the WebProcess that the plug-in has started or stopped playing audio.
     SetPluginIsPlayingAudio(bool pluginIsPlayingAudio)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to