Title: [241519] releases/WebKitGTK/webkit-2.24/Source/WebKit
Revision
241519
Author
carlo...@webkit.org
Date
2019-02-14 03:26:50 -0800 (Thu, 14 Feb 2019)

Log Message

Merge r241441 - Remove legacy sync messaging in some IPC code
https://bugs.webkit.org/show_bug.cgi?id=194561

Reviewed by Geoffrey Garen.

Changing some LegacySync messages to Delayed messages.  We should probably rename Delayed to Sync.
There are too many ways to send messages.  Let's work to get rid of the old one.

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::setAllowsAnySSLCertificateForWebSocket):
(WebKit::NetworkProcess::processWillSuspendImminently):
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* PluginProcess/PluginControllerProxy.cpp:
(WebKit::PluginControllerProxy::handleWheelEvent):
(WebKit::PluginControllerProxy::handleMouseEnterEvent):
(WebKit::PluginControllerProxy::handleMouseLeaveEvent):
(WebKit::PluginControllerProxy::handleKeyboardEvent):
(WebKit::PluginControllerProxy::handleEditingCommand):
(WebKit::PluginControllerProxy::isEditingCommandEnabled):
(WebKit::PluginControllerProxy::handlesPageScaleFactor):
(WebKit::PluginControllerProxy::requiresUnifiedScaleFactor):
(WebKit::PluginControllerProxy::paintEntirePlugin):
(WebKit::PluginControllerProxy::supportsSnapshotting):
(WebKit::PluginControllerProxy::snapshot):
(WebKit::PluginControllerProxy::getPluginScriptableNPObject):
(WebKit::PluginControllerProxy::getFormValue):
* PluginProcess/PluginControllerProxy.h:
* PluginProcess/PluginControllerProxy.messages.in:
* Shared/Plugins/NPObjectMessageReceiver.cpp:
(WebKit::NPObjectMessageReceiver::deallocate):
(WebKit::NPObjectMessageReceiver::hasMethod):
(WebKit::NPObjectMessageReceiver::invoke):
(WebKit::NPObjectMessageReceiver::invokeDefault):
(WebKit::NPObjectMessageReceiver::hasProperty):
(WebKit::NPObjectMessageReceiver::getProperty):
(WebKit::NPObjectMessageReceiver::setProperty):
(WebKit::NPObjectMessageReceiver::removeProperty):
(WebKit::NPObjectMessageReceiver::enumerate):
(WebKit::NPObjectMessageReceiver::construct):
* Shared/Plugins/NPObjectMessageReceiver.h:
* Shared/Plugins/NPObjectMessageReceiver.messages.in:
* UIProcess/mac/SecItemShimProxy.cpp:
(WebKit::SecItemShimProxy::secItemRequest):
* UIProcess/mac/SecItemShimProxy.h:
* UIProcess/mac/SecItemShimProxy.messages.in:

Modified Paths

Diff

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/ChangeLog (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/ChangeLog	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/ChangeLog	2019-02-14 11:26:50 UTC (rev 241519)
@@ -1,3 +1,52 @@
+2019-02-13  Alex Christensen  <achristen...@webkit.org>
+
+        Remove legacy sync messaging in some IPC code
+        https://bugs.webkit.org/show_bug.cgi?id=194561
+
+        Reviewed by Geoffrey Garen.
+
+        Changing some LegacySync messages to Delayed messages.  We should probably rename Delayed to Sync.
+        There are too many ways to send messages.  Let's work to get rid of the old one.
+
+        * NetworkProcess/NetworkProcess.cpp:
+        (WebKit::NetworkProcess::setAllowsAnySSLCertificateForWebSocket):
+        (WebKit::NetworkProcess::processWillSuspendImminently):
+        * NetworkProcess/NetworkProcess.h:
+        * NetworkProcess/NetworkProcess.messages.in:
+        * PluginProcess/PluginControllerProxy.cpp:
+        (WebKit::PluginControllerProxy::handleWheelEvent):
+        (WebKit::PluginControllerProxy::handleMouseEnterEvent):
+        (WebKit::PluginControllerProxy::handleMouseLeaveEvent):
+        (WebKit::PluginControllerProxy::handleKeyboardEvent):
+        (WebKit::PluginControllerProxy::handleEditingCommand):
+        (WebKit::PluginControllerProxy::isEditingCommandEnabled):
+        (WebKit::PluginControllerProxy::handlesPageScaleFactor):
+        (WebKit::PluginControllerProxy::requiresUnifiedScaleFactor):
+        (WebKit::PluginControllerProxy::paintEntirePlugin):
+        (WebKit::PluginControllerProxy::supportsSnapshotting):
+        (WebKit::PluginControllerProxy::snapshot):
+        (WebKit::PluginControllerProxy::getPluginScriptableNPObject):
+        (WebKit::PluginControllerProxy::getFormValue):
+        * PluginProcess/PluginControllerProxy.h:
+        * PluginProcess/PluginControllerProxy.messages.in:
+        * Shared/Plugins/NPObjectMessageReceiver.cpp:
+        (WebKit::NPObjectMessageReceiver::deallocate):
+        (WebKit::NPObjectMessageReceiver::hasMethod):
+        (WebKit::NPObjectMessageReceiver::invoke):
+        (WebKit::NPObjectMessageReceiver::invokeDefault):
+        (WebKit::NPObjectMessageReceiver::hasProperty):
+        (WebKit::NPObjectMessageReceiver::getProperty):
+        (WebKit::NPObjectMessageReceiver::setProperty):
+        (WebKit::NPObjectMessageReceiver::removeProperty):
+        (WebKit::NPObjectMessageReceiver::enumerate):
+        (WebKit::NPObjectMessageReceiver::construct):
+        * Shared/Plugins/NPObjectMessageReceiver.h:
+        * Shared/Plugins/NPObjectMessageReceiver.messages.in:
+        * UIProcess/mac/SecItemShimProxy.cpp:
+        (WebKit::SecItemShimProxy::secItemRequest):
+        * UIProcess/mac/SecItemShimProxy.h:
+        * UIProcess/mac/SecItemShimProxy.messages.in:
+
 2019-02-13  Ryosuke Niwa  <rn...@webkit.org>
 
         Crash in Page::setActivityState because m_page is null

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/NetworkProcess.cpp (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/NetworkProcess.cpp	2019-02-14 11:26:50 UTC (rev 241519)
@@ -1774,9 +1774,10 @@
     parentProcessConnection()->send(Messages::WebProcessPool::DidGetStatistics(data, callbackID), 0);
 }
 
-void NetworkProcess::setAllowsAnySSLCertificateForWebSocket(bool allows)
+void NetworkProcess::setAllowsAnySSLCertificateForWebSocket(bool allows, CompletionHandler<void()>&& completionHandler)
 {
     DeprecatedGlobalSettings::setAllowsAnySSLCertificate(allows);
+    completionHandler();
 }
 
 void NetworkProcess::logDiagnosticMessage(uint64_t webPageID, const String& message, const String& description, ShouldSample shouldSample)
@@ -1849,10 +1850,10 @@
         connection->cleanupForSuspension([delayedTaskCounter] { });
 }
 
-void NetworkProcess::processWillSuspendImminently(bool& handled)
+void NetworkProcess::processWillSuspendImminently(CompletionHandler<void(bool)>&& completionHandler)
 {
     actualPrepareToSuspend(ShouldAcknowledgeWhenReadyToSuspend::No);
-    handled = true;
+    completionHandler(true);
 }
 
 void NetworkProcess::prepareToSuspend()

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/NetworkProcess.h (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/NetworkProcess.h	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/NetworkProcess.h	2019-02-14 11:26:50 UTC (rev 241519)
@@ -154,7 +154,7 @@
 
     bool canHandleHTTPSServerTrustEvaluation() const { return m_canHandleHTTPSServerTrustEvaluation; }
 
-    void processWillSuspendImminently(bool& handled);
+    void processWillSuspendImminently(CompletionHandler<void(bool)>&&);
     void prepareToSuspend();
     void cancelPrepareToSuspend();
     void processDidResume();
@@ -363,7 +363,7 @@
     void setCanHandleHTTPSServerTrustEvaluation(bool);
     void getNetworkProcessStatistics(uint64_t callbackID);
     void clearCacheForAllOrigins(uint32_t cachesToClear);
-    void setAllowsAnySSLCertificateForWebSocket(bool);
+    void setAllowsAnySSLCertificateForWebSocket(bool, CompletionHandler<void()>&&);
     
     void syncAllCookies();
     void didSyncAllCookies();

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/NetworkProcess.messages.in (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/NetworkProcess.messages.in	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/NetworkProcess/NetworkProcess.messages.in	2019-02-14 11:26:50 UTC (rev 241519)
@@ -60,7 +60,7 @@
     SetQOS(int latencyQOS, int throughputQOS)
     SetStorageAccessAPIEnabled(bool enabled)
 #endif
-    SetAllowsAnySSLCertificateForWebSocket(bool enabled) -> () LegacySync
+    SetAllowsAnySSLCertificateForWebSocket(bool enabled) -> () Delayed
 
     SyncAllCookies()
 
@@ -75,7 +75,7 @@
     ProcessDidTransitionToBackground()
     ProcessDidTransitionToForeground()
 
-    ProcessWillSuspendImminently() -> (bool handled) LegacySync
+    ProcessWillSuspendImminently() -> (bool handled) Delayed
     PrepareToSuspend()
     CancelPrepareToSuspend()
     ProcessDidResume()

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/PluginProcess/PluginControllerProxy.cpp (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/PluginProcess/PluginControllerProxy.cpp	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/PluginProcess/PluginControllerProxy.cpp	2019-02-14 11:26:50 UTC (rev 241519)
@@ -529,68 +529,71 @@
     m_plugin->handleMouseEvent(mouseEvent);
 }
 
-void PluginControllerProxy::handleWheelEvent(const WebWheelEvent& wheelEvent, bool& handled)
+void PluginControllerProxy::handleWheelEvent(const WebWheelEvent& wheelEvent, CompletionHandler<void(bool)>&& completionHandler)
 {
-    handled = m_plugin->handleWheelEvent(wheelEvent);
+    completionHandler(m_plugin->handleWheelEvent(wheelEvent));
 }
 
-void PluginControllerProxy::handleMouseEnterEvent(const WebMouseEvent& mouseEnterEvent, bool& handled)
+void PluginControllerProxy::handleMouseEnterEvent(const WebMouseEvent& mouseEnterEvent, CompletionHandler<void(bool)>&& completionHandler)
 {
-    handled = m_plugin->handleMouseEnterEvent(mouseEnterEvent);
+    completionHandler(m_plugin->handleMouseEnterEvent(mouseEnterEvent));
 }
 
-void PluginControllerProxy::handleMouseLeaveEvent(const WebMouseEvent& mouseLeaveEvent, bool& handled)
+void PluginControllerProxy::handleMouseLeaveEvent(const WebMouseEvent& mouseLeaveEvent, CompletionHandler<void(bool)>&& completionHandler)
 {
-    handled = m_plugin->handleMouseLeaveEvent(mouseLeaveEvent);
+    completionHandler(m_plugin->handleMouseLeaveEvent(mouseLeaveEvent));
 }
 
-void PluginControllerProxy::handleKeyboardEvent(const WebKeyboardEvent& keyboardEvent, bool& handled)
+void PluginControllerProxy::handleKeyboardEvent(const WebKeyboardEvent& keyboardEvent, CompletionHandler<void(bool)>&& completionHandler)
 {
-    handled = m_plugin->handleKeyboardEvent(keyboardEvent);
+    completionHandler(m_plugin->handleKeyboardEvent(keyboardEvent));
 }
 
-void PluginControllerProxy::handleEditingCommand(const String& commandName, const String& argument, bool& handled)
+void PluginControllerProxy::handleEditingCommand(const String& commandName, const String& argument, CompletionHandler<void(bool)>&& completionHandler)
 {
-    handled = m_plugin->handleEditingCommand(commandName, argument);
+    completionHandler(m_plugin->handleEditingCommand(commandName, argument));
 }
     
-void PluginControllerProxy::isEditingCommandEnabled(const String& commandName, bool& enabled)
+void PluginControllerProxy::isEditingCommandEnabled(const String& commandName, CompletionHandler<void(bool)>&& completionHandler)
 {
-    enabled = m_plugin->isEditingCommandEnabled(commandName);
+    completionHandler(m_plugin->isEditingCommandEnabled(commandName));
 }
     
-void PluginControllerProxy::handlesPageScaleFactor(bool& isHandled)
+void PluginControllerProxy::handlesPageScaleFactor(CompletionHandler<void(bool)>&& completionHandler)
 {
-    isHandled = m_plugin->handlesPageScaleFactor();
+    completionHandler(m_plugin->handlesPageScaleFactor());
 }
 
-void PluginControllerProxy::requiresUnifiedScaleFactor(bool& required)
+void PluginControllerProxy::requiresUnifiedScaleFactor(CompletionHandler<void(bool)>&& completionHandler)
 {
-    required = m_plugin->requiresUnifiedScaleFactor();
+    completionHandler(m_plugin->requiresUnifiedScaleFactor());
 }
 
-void PluginControllerProxy::paintEntirePlugin()
+void PluginControllerProxy::paintEntirePlugin(CompletionHandler<void()>&& completionHandler)
 {
     if (m_pluginSize.isEmpty())
-        return;
+        return completionHandler();
 
     m_dirtyRect = IntRect(IntPoint(), m_pluginSize);
     paint();
+    completionHandler();
 }
 
-void PluginControllerProxy::supportsSnapshotting(bool& isSupported)
+void PluginControllerProxy::supportsSnapshotting(CompletionHandler<void(bool)>&& completionHandler)
 {
-    isSupported = m_plugin->supportsSnapshotting();
+    completionHandler(m_plugin->supportsSnapshotting());
 }
 
-void PluginControllerProxy::snapshot(ShareableBitmap::Handle& backingStoreHandle)
+void PluginControllerProxy::snapshot(CompletionHandler<void(ShareableBitmap::Handle&&)> completionHandler)
 {
     ASSERT(m_plugin);
     RefPtr<ShareableBitmap> bitmap = m_plugin->snapshot();
     if (!bitmap)
-        return;
+        return completionHandler({ });
 
+    ShareableBitmap::Handle backingStoreHandle;
     bitmap->createHandle(backingStoreHandle);
+    completionHandler(WTFMove(backingStoreHandle));
 }
 
 void PluginControllerProxy::setFocus(bool hasFocus)
@@ -604,16 +607,15 @@
     startPaintTimer();
 }
 
-void PluginControllerProxy::getPluginScriptableNPObject(uint64_t& pluginScriptableNPObjectID)
+void PluginControllerProxy::getPluginScriptableNPObject(CompletionHandler<void(uint64_t)>&& completionHandler)
 {
     NPObject* pluginScriptableNPObject = m_plugin->pluginScriptableNPObject();
-    if (!pluginScriptableNPObject) {
-        pluginScriptableNPObjectID = 0;
-        return;
-    }
+    if (!pluginScriptableNPObject)
+        return completionHandler(0);
     
-    pluginScriptableNPObjectID = m_connection->npRemoteObjectMap()->registerNPObject(pluginScriptableNPObject, m_plugin.get());
+    uint64_t pluginScriptableNPObjectID = m_connection->npRemoteObjectMap()->registerNPObject(pluginScriptableNPObject, m_plugin.get());
     releaseNPObject(pluginScriptableNPObject);
+    completionHandler(pluginScriptableNPObjectID);
 }
 
 void PluginControllerProxy::storageBlockingStateChanged(bool isStorageBlockingEnabled)
@@ -640,9 +642,11 @@
     m_plugin->mutedStateChanged(isMuted);
 }
 
-void PluginControllerProxy::getFormValue(bool& returnValue, String& formValue)
+void PluginControllerProxy::getFormValue(CompletionHandler<void(bool, String&&)>&& completionHandler)
 {
-    returnValue = m_plugin->getFormValue(formValue);
+    String formValue;
+    bool returnValue = m_plugin->getFormValue(formValue);
+    completionHandler(returnValue, WTFMove(formValue));
 }
 
 #if PLATFORM(X11)

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/PluginProcess/PluginControllerProxy.h (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/PluginProcess/PluginControllerProxy.h	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/PluginProcess/PluginControllerProxy.h	2019-02-14 11:26:50 UTC (rev 241519)
@@ -135,20 +135,20 @@
     void manualStreamDidFinishLoading();
     void manualStreamDidFail(bool wasCancelled);
     void handleMouseEvent(const WebMouseEvent&);
-    void handleWheelEvent(const WebWheelEvent&, bool& handled);
-    void handleMouseEnterEvent(const WebMouseEvent&, bool& handled);
-    void handleMouseLeaveEvent(const WebMouseEvent&, bool& handled);
-    void handleKeyboardEvent(const WebKeyboardEvent&, bool& handled);
-    void handleEditingCommand(const String&, const String&, bool&);
-    void isEditingCommandEnabled(const String&, bool&);
-    void handlesPageScaleFactor(bool&);
-    void requiresUnifiedScaleFactor(bool&);
-    void paintEntirePlugin();
-    void supportsSnapshotting(bool&);
-    void snapshot(ShareableBitmap::Handle& backingStoreHandle);
+    void handleWheelEvent(const WebWheelEvent&, CompletionHandler<void(bool handled)>&&);
+    void handleMouseEnterEvent(const WebMouseEvent&, CompletionHandler<void(bool handled)>&&);
+    void handleMouseLeaveEvent(const WebMouseEvent&, CompletionHandler<void(bool handled)>&&);
+    void handleKeyboardEvent(const WebKeyboardEvent&, CompletionHandler<void(bool handled)>&&);
+    void handleEditingCommand(const String&, const String&, CompletionHandler<void(bool handled)>&&);
+    void isEditingCommandEnabled(const String&, CompletionHandler<void(bool)>&&);
+    void handlesPageScaleFactor(CompletionHandler<void(bool)>&&);
+    void requiresUnifiedScaleFactor(CompletionHandler<void(bool)>&&);
+    void paintEntirePlugin(CompletionHandler<void()>&&);
+    void supportsSnapshotting(CompletionHandler<void(bool)>&&);
+    void snapshot(CompletionHandler<void(ShareableBitmap::Handle&&)>);
     void setFocus(bool);
     void didUpdate();
-    void getPluginScriptableNPObject(uint64_t& pluginScriptableNPObjectID);
+    void getPluginScriptableNPObject(CompletionHandler<void(uint64_t pluginScriptableNPObjectID)>&&);
 
     void windowFocusChanged(bool);
     void windowVisibilityChanged(bool);
@@ -165,7 +165,7 @@
     void storageBlockingStateChanged(bool);
     void privateBrowsingStateChanged(bool);
     void mutedStateChanged(bool);
-    void getFormValue(bool& returnValue, String& formValue);
+    void getFormValue(CompletionHandler<void(bool returnValue, String&& formValue)>&&);
 
     void platformInitialize(const PluginCreationParameters&);
     void platformDestroy();

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/PluginProcess/PluginControllerProxy.messages.in (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/PluginProcess/PluginControllerProxy.messages.in	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/PluginProcess/PluginControllerProxy.messages.in	2019-02-14 11:26:50 UTC (rev 241519)
@@ -69,28 +69,28 @@
     HandleMouseEvent(WebKit::WebMouseEvent mouseEvent)
     
     # Sent when a mouse wheel event should be processed.
-    HandleWheelEvent(WebKit::WebWheelEvent wheelEvent) -> (bool handled) LegacySync
+    HandleWheelEvent(WebKit::WebWheelEvent wheelEvent) -> (bool handled) Delayed
 
     # Sent when a mouse enter event should be processed.
-    HandleMouseEnterEvent(WebKit::WebMouseEvent mouseEvent) -> (bool handled) LegacySync
+    HandleMouseEnterEvent(WebKit::WebMouseEvent mouseEvent) -> (bool handled) Delayed
     
     # Sent when a mouse leave event should be processed.
-    HandleMouseLeaveEvent(WebKit::WebMouseEvent mouseEvent) -> (bool handled) LegacySync
+    HandleMouseLeaveEvent(WebKit::WebMouseEvent mouseEvent) -> (bool handled) Delayed
 
     # Sent when a keyboard should be processed.
-    HandleKeyboardEvent(WebKit::WebKeyboardEvent keyboardEvent) -> (bool handled) LegacySync
+    HandleKeyboardEvent(WebKit::WebKeyboardEvent keyboardEvent) -> (bool handled) Delayed
     
     # Sent when an editing command should be processed.
-    HandleEditingCommand(String commandName, String argument) -> (bool handled) LegacySync
+    HandleEditingCommand(String commandName, String argument) -> (bool handled) Delayed
     
     # Return whether or not a plugin wants to enable the given editing command.
-    IsEditingCommandEnabled(String commandName) -> (bool enabled) LegacySync
+    IsEditingCommandEnabled(String commandName) -> (bool enabled) Delayed
     
     # Return whether or not a plugin wants to handle page scale factor itself.
-    HandlesPageScaleFactor() -> (bool enabled) LegacySync
+    HandlesPageScaleFactor() -> (bool enabled) Delayed
 
     # Return whether or not a plugin wants page scale, page zoom, and text zoom all to affect page scale.
-    RequiresUnifiedScaleFactor() -> (bool required) LegacySync
+    RequiresUnifiedScaleFactor() -> (bool required) Delayed
 
     # Sent when the plug-in focus changes.
     SetFocus(bool isFocused)
@@ -99,10 +99,10 @@
     DidUpdate()
 
     # Paint the entire plug-in.
-    PaintEntirePlugin() -> () LegacySync
+    PaintEntirePlugin() -> () Delayed
 
     # Get a reference to the plug-in's scriptable NPObject.
-    GetPluginScriptableNPObject() -> (uint64_t pluginScriptableNPObjectID) LegacySync
+    GetPluginScriptableNPObject() -> (uint64_t pluginScriptableNPObjectID) Delayed
 
     # Sent when the containing NSWindow's focus changes
     WindowFocusChanged(bool hasFocus)
@@ -122,10 +122,10 @@
 #endif
 
     # Does the plugin support snapshotting?
-    SupportsSnapshotting() -> (bool isSupported) LegacySync
+    SupportsSnapshotting() -> (bool isSupported) Delayed
 
     # Return a snapshot of the plugin.
-    Snapshot() -> (WebKit::ShareableBitmap::Handle backingStoreHandle) LegacySync
+    Snapshot() -> (WebKit::ShareableBitmap::Handle backingStoreHandle) Delayed
 
     # Sent when storage blocking policy changes
     StorageBlockingStateChanged(bool storageBlockingEnabled)
@@ -134,7 +134,7 @@
     PrivateBrowsingStateChanged(bool isPrivateBrowsingEnabled)
 
     # Gets the string representating the form value of the plug-in
-    GetFormValue() -> (bool returnValue, String formValue) LegacySync
+    GetFormValue() -> (bool returnValue, String formValue) Delayed
 
     # Sent when the browser wants to mute or unmute the plugin.
     MutedStateChanged(bool muted)

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/Shared/Plugins/NPObjectMessageReceiver.cpp (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/Shared/Plugins/NPObjectMessageReceiver.cpp	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/Shared/Plugins/NPObjectMessageReceiver.cpp	2019-02-14 11:26:50 UTC (rev 241519)
@@ -53,27 +53,24 @@
     releaseNPObject(m_npObject);
 }
 
-void NPObjectMessageReceiver::deallocate()
+void NPObjectMessageReceiver::deallocate(CompletionHandler<void()>&& completionHandler)
 {
     delete this;
+    completionHandler();
 }
 
-void NPObjectMessageReceiver::hasMethod(const NPIdentifierData& methodNameData, bool& returnValue)
+void NPObjectMessageReceiver::hasMethod(const NPIdentifierData& methodNameData, CompletionHandler<void(bool)>&& completionHandler)
 {
-    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->hasMethod) {
-        returnValue = false;
-        return;
-    }
-    
-    returnValue = m_npObject->_class->hasMethod(m_npObject, methodNameData.createNPIdentifier());
+    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->hasMethod)
+        return completionHandler(false);
+
+    completionHandler(m_npObject->_class->hasMethod(m_npObject, methodNameData.createNPIdentifier()));
 }
 
-void NPObjectMessageReceiver::invoke(const NPIdentifierData& methodNameData, const Vector<NPVariantData>& argumentsData, bool& returnValue, NPVariantData& resultData)
+void NPObjectMessageReceiver::invoke(const NPIdentifierData& methodNameData, const Vector<NPVariantData>& argumentsData, CompletionHandler<void(bool, NPVariantData&&)>&& completionHandler)
 {
-    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->invoke) {
-        returnValue = false;
-        return;
-    }
+    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->invoke)
+        return completionHandler(false, { });
 
     Vector<NPVariant> arguments;
     for (size_t i = 0; i < argumentsData.size(); ++i)
@@ -84,7 +81,8 @@
 
     PluginController::PluginDestructionProtector protector(m_plugin->controller());
 
-    returnValue = m_npObject->_class->invoke(m_npObject, methodNameData.createNPIdentifier(), arguments.data(), arguments.size(), &result);
+    NPVariantData resultData;
+    bool returnValue = m_npObject->_class->invoke(m_npObject, methodNameData.createNPIdentifier(), arguments.data(), arguments.size(), &result);
     if (returnValue) {
         // Convert the NPVariant to an NPVariantData.
         resultData = m_npRemoteObjectMap->npVariantToNPVariantData(result, m_plugin);
@@ -96,14 +94,13 @@
     
     // And release the result.
     releaseNPVariantValue(&result);
+    completionHandler(returnValue, WTFMove(resultData));
 }
 
-void NPObjectMessageReceiver::invokeDefault(const Vector<NPVariantData>& argumentsData, bool& returnValue, NPVariantData& resultData)
+void NPObjectMessageReceiver::invokeDefault(const Vector<NPVariantData>& argumentsData, CompletionHandler<void(bool, NPVariantData&&)>&& completionHandler)
 {
-    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->invokeDefault) {
-        returnValue = false;
-        return;
-    }
+    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->invokeDefault)
+        return completionHandler(false, { });
 
     Vector<NPVariant> arguments;
     for (size_t i = 0; i < argumentsData.size(); ++i)
@@ -114,7 +111,8 @@
 
     PluginController::PluginDestructionProtector protector(m_plugin->controller());
 
-    returnValue = m_npObject->_class->invokeDefault(m_npObject, arguments.data(), arguments.size(), &result);
+    NPVariantData resultData;
+    bool returnValue = m_npObject->_class->invokeDefault(m_npObject, arguments.data(), arguments.size(), &result);
     if (returnValue) {
         // Convert the NPVariant to an NPVariantData.
         resultData = m_npRemoteObjectMap->npVariantToNPVariantData(result, m_plugin);
@@ -126,24 +124,21 @@
     
     // And release the result.
     releaseNPVariantValue(&result);
+    completionHandler(returnValue, WTFMove(resultData));
 }
 
-void NPObjectMessageReceiver::hasProperty(const NPIdentifierData& propertyNameData, bool& returnValue)
+void NPObjectMessageReceiver::hasProperty(const NPIdentifierData& propertyNameData, CompletionHandler<void(bool)>&& completionHandler)
 {
-    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->hasProperty) {
-        returnValue = false;
-        return;
-    }
+    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->hasProperty)
+        return completionHandler(false);
 
-    returnValue = m_npObject->_class->hasProperty(m_npObject, propertyNameData.createNPIdentifier());
+    completionHandler(m_npObject->_class->hasProperty(m_npObject, propertyNameData.createNPIdentifier()));
 }
 
-void NPObjectMessageReceiver::getProperty(const NPIdentifierData& propertyNameData, bool& returnValue, NPVariantData& resultData)
+void NPObjectMessageReceiver::getProperty(const NPIdentifierData& propertyNameData, CompletionHandler<void(bool, NPVariantData&&)>&& completionHandler)
 {
-    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->getProperty) {
-        returnValue = false;
-        return;
-    }
+    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->getProperty)
+        return completionHandler(false, { });
 
     NPVariant result;
     VOID_TO_NPVARIANT(result);
@@ -150,68 +145,64 @@
 
     PluginController::PluginDestructionProtector protector(m_plugin->controller());
 
-    returnValue = m_npObject->_class->getProperty(m_npObject, propertyNameData.createNPIdentifier(), &result);
+    bool returnValue = m_npObject->_class->getProperty(m_npObject, propertyNameData.createNPIdentifier(), &result);
     if (!returnValue)
-        return;
+        return completionHandler(false, { });
 
 
-    resultData = m_npRemoteObjectMap->npVariantToNPVariantData(result, m_plugin);
+    NPVariantData resultData = m_npRemoteObjectMap->npVariantToNPVariantData(result, m_plugin);
 
     releaseNPVariantValue(&result);
+    completionHandler(true, WTFMove(resultData));
 }
 
-void NPObjectMessageReceiver::setProperty(const NPIdentifierData& propertyNameData, const NPVariantData& propertyValueData, bool& returnValue)
+void NPObjectMessageReceiver::setProperty(const NPIdentifierData& propertyNameData, const NPVariantData& propertyValueData, CompletionHandler<void(bool)>&& completionHandler)
 {
-    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->setProperty) {
-        returnValue = false;
-        return;
-    }
+    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->setProperty)
+        return completionHandler(false);
 
     NPVariant propertyValue = m_npRemoteObjectMap->npVariantDataToNPVariant(propertyValueData, m_plugin);
 
     PluginController::PluginDestructionProtector protector(m_plugin->controller());
 
-    returnValue = m_npObject->_class->setProperty(m_npObject, propertyNameData.createNPIdentifier(), &propertyValue);
+    bool returnValue = m_npObject->_class->setProperty(m_npObject, propertyNameData.createNPIdentifier(), &propertyValue);
 
     releaseNPVariantValue(&propertyValue);
+    completionHandler(returnValue);
 }
 
-void NPObjectMessageReceiver::removeProperty(const NPIdentifierData& propertyNameData, bool& returnValue)
+void NPObjectMessageReceiver::removeProperty(const NPIdentifierData& propertyNameData, CompletionHandler<void(bool)>&& completionHandler)
 {
-    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->removeProperty) {
-        returnValue = false;
-        return;
-    }
+    if (m_plugin->isBeingDestroyed() || !m_npObject->_class->removeProperty)
+        return completionHandler(false);
 
-    returnValue = m_npObject->_class->removeProperty(m_npObject, propertyNameData.createNPIdentifier());
+    completionHandler(m_npObject->_class->removeProperty(m_npObject, propertyNameData.createNPIdentifier()));
 }
 
-void NPObjectMessageReceiver::enumerate(bool& returnValue, Vector<NPIdentifierData>& identifiersData)
+void NPObjectMessageReceiver::enumerate(CompletionHandler<void(bool, Vector<NPIdentifierData>&&)>&& completionHandler)
 {
-    if (m_plugin->isBeingDestroyed() || !NP_CLASS_STRUCT_VERSION_HAS_ENUM(m_npObject->_class) || !m_npObject->_class->enumerate) {
-        returnValue = false;
-        return;
-    }
+    if (m_plugin->isBeingDestroyed() || !NP_CLASS_STRUCT_VERSION_HAS_ENUM(m_npObject->_class) || !m_npObject->_class->enumerate)
+        return completionHandler(false, { });
 
     NPIdentifier* identifiers = 0;
     uint32_t identifierCount = 0;
 
-    returnValue = m_npObject->_class->enumerate(m_npObject, &identifiers, &identifierCount);
+    bool returnValue = m_npObject->_class->enumerate(m_npObject, &identifiers, &identifierCount);
     if (!returnValue)
-        return;
+        return completionHandler(false, { });
 
+    Vector<WebKit::NPIdentifierData> identifiersData;
     for (uint32_t i = 0; i < identifierCount; ++i)
         identifiersData.append(NPIdentifierData::fromNPIdentifier(identifiers[i]));
 
     npnMemFree(identifiers);
+    completionHandler(true, WTFMove(identifiersData));
 }
 
-void NPObjectMessageReceiver::construct(const Vector<NPVariantData>& argumentsData, bool& returnValue, NPVariantData& resultData)
+void NPObjectMessageReceiver::construct(const Vector<NPVariantData>& argumentsData, CompletionHandler<void(bool, NPVariantData&&)>&& completionHandler)
 {
-    if (m_plugin->isBeingDestroyed() || !NP_CLASS_STRUCT_VERSION_HAS_CTOR(m_npObject->_class) || !m_npObject->_class->construct) {
-        returnValue = false;
-        return;
-    }
+    if (m_plugin->isBeingDestroyed() || !NP_CLASS_STRUCT_VERSION_HAS_CTOR(m_npObject->_class) || !m_npObject->_class->construct)
+        return completionHandler(false, { });
 
     Vector<NPVariant> arguments;
     for (size_t i = 0; i < argumentsData.size(); ++i)
@@ -222,7 +213,8 @@
 
     PluginController::PluginDestructionProtector protector(m_plugin->controller());
 
-    returnValue = m_npObject->_class->construct(m_npObject, arguments.data(), arguments.size(), &result);
+    bool returnValue = m_npObject->_class->construct(m_npObject, arguments.data(), arguments.size(), &result);
+    NPVariantData resultData;
     if (returnValue)
         resultData = m_npRemoteObjectMap->npVariantToNPVariantData(result, m_plugin);
 
@@ -230,6 +222,7 @@
         releaseNPVariantValue(&arguments[i]);
     
     releaseNPVariantValue(&result);
+    completionHandler(returnValue, WTFMove(resultData));
 }
 
 } // namespace WebKit

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/Shared/Plugins/NPObjectMessageReceiver.h (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/Shared/Plugins/NPObjectMessageReceiver.h	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/Shared/Plugins/NPObjectMessageReceiver.h	2019-02-14 11:26:50 UTC (rev 241519)
@@ -23,8 +23,7 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef NPObjectMessageReceiver_h
-#define NPObjectMessageReceiver_h
+#pragma once
 
 #if ENABLE(NETSCAPE_PLUGIN_API)
 
@@ -53,16 +52,16 @@
     
 private:
     // Message handlers.
-    void deallocate();
-    void hasMethod(const NPIdentifierData&, bool& returnValue);
-    void invoke(const NPIdentifierData&, const Vector<NPVariantData>& argumentsData, bool& returnValue, NPVariantData& resultData);
-    void invokeDefault(const Vector<NPVariantData>& argumentsData, bool& returnValue, NPVariantData& resultData);
-    void hasProperty(const NPIdentifierData&, bool& returnValue);
-    void getProperty(const NPIdentifierData&, bool& returnValue, NPVariantData& resultData);
-    void setProperty(const NPIdentifierData&, const NPVariantData& propertyValueData, bool& returnValue);
-    void removeProperty(const NPIdentifierData&, bool& returnValue);
-    void enumerate(bool& returnValue, Vector<NPIdentifierData>& identifiersData);
-    void construct(const Vector<NPVariantData>& argumentsData, bool& returnValue, NPVariantData& resultData);
+    void deallocate(CompletionHandler<void()>&&);
+    void hasMethod(const NPIdentifierData&, CompletionHandler<void(bool)>&&);
+    void invoke(const NPIdentifierData&, const Vector<NPVariantData>& argumentsData, CompletionHandler<void(bool, NPVariantData&&)>&&);
+    void invokeDefault(const Vector<NPVariantData>& argumentsData, CompletionHandler<void(bool, NPVariantData&&)>&&);
+    void hasProperty(const NPIdentifierData&, CompletionHandler<void(bool)>&&);
+    void getProperty(const NPIdentifierData&, CompletionHandler<void(bool, NPVariantData&&)>&&);
+    void setProperty(const NPIdentifierData&, const NPVariantData& propertyValueData, CompletionHandler<void(bool)>&&);
+    void removeProperty(const NPIdentifierData&, CompletionHandler<void(bool)>&&);
+    void enumerate(CompletionHandler<void(bool, Vector<NPIdentifierData>&&)>&&);
+    void construct(const Vector<NPVariantData>& argumentsData, CompletionHandler<void(bool, NPVariantData&&)>&&);
 
     NPRemoteObjectMap* m_npRemoteObjectMap;
     Plugin* m_plugin;
@@ -73,6 +72,3 @@
 } // namespace WebKit
 
 #endif // ENABLE(NETSCAPE_PLUGIN_API)
-
-
-#endif // NPObjectMessageReceiver_h

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/Shared/Plugins/NPObjectMessageReceiver.messages.in (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/Shared/Plugins/NPObjectMessageReceiver.messages.in	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/Shared/Plugins/NPObjectMessageReceiver.messages.in	2019-02-14 11:26:50 UTC (rev 241519)
@@ -23,16 +23,16 @@
 #if ENABLE(NETSCAPE_PLUGIN_API)
 
 messages -> NPObjectMessageReceiver LegacyReceiver {
-    Deallocate() -> () LegacySync
-    HasMethod(WebKit::NPIdentifierData methodName) -> (bool returnValue) LegacySync
-    Invoke(WebKit::NPIdentifierData methodName, Vector<WebKit::NPVariantData> argumentsData) -> (bool returnValue, WebKit::NPVariantData resultData) LegacySync
-    InvokeDefault(Vector<WebKit::NPVariantData> argumentsData) -> (bool returnValue, WebKit::NPVariantData resultData) LegacySync
-    HasProperty(WebKit::NPIdentifierData propertyName) -> (bool returnValue) LegacySync
-    GetProperty(WebKit::NPIdentifierData propertyName) -> (bool returnValue, WebKit::NPVariantData resultData) LegacySync
-    SetProperty(WebKit::NPIdentifierData propertyName, WebKit::NPVariantData propertyValueData) -> (bool returnValue) LegacySync
-    RemoveProperty(WebKit::NPIdentifierData propertyName) -> (bool returnValue) LegacySync
-    Enumerate() -> (bool returnValue, Vector<WebKit::NPIdentifierData> identifiersData) LegacySync
-    Construct(Vector<WebKit::NPVariantData> argumentsData) -> (bool returnValue, WebKit::NPVariantData resultData) LegacySync
+    Deallocate() -> () Delayed
+    HasMethod(WebKit::NPIdentifierData methodName) -> (bool returnValue) Delayed
+    Invoke(WebKit::NPIdentifierData methodName, Vector<WebKit::NPVariantData> argumentsData) -> (bool returnValue, WebKit::NPVariantData resultData) Delayed
+    InvokeDefault(Vector<WebKit::NPVariantData> argumentsData) -> (bool returnValue, WebKit::NPVariantData resultData) Delayed
+    HasProperty(WebKit::NPIdentifierData propertyName) -> (bool returnValue) Delayed
+    GetProperty(WebKit::NPIdentifierData propertyName) -> (bool returnValue, WebKit::NPVariantData resultData) Delayed
+    SetProperty(WebKit::NPIdentifierData propertyName, WebKit::NPVariantData propertyValueData) -> (bool returnValue) Delayed
+    RemoveProperty(WebKit::NPIdentifierData propertyName) -> (bool returnValue) Delayed
+    Enumerate() -> (bool returnValue, Vector<WebKit::NPIdentifierData> identifiersData) Delayed
+    Construct(Vector<WebKit::NPVariantData> argumentsData) -> (bool returnValue, WebKit::NPVariantData resultData) Delayed
 }
 
 #endif

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/UIProcess/mac/SecItemShimProxy.cpp (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/UIProcess/mac/SecItemShimProxy.cpp	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/UIProcess/mac/SecItemShimProxy.cpp	2019-02-14 11:26:50 UTC (rev 241519)
@@ -60,18 +60,18 @@
 {
 }
 
-void SecItemShimProxy::secItemRequest(const SecItemRequestData& request, SecItemResponseData& response)
+void SecItemShimProxy::secItemRequest(const SecItemRequestData& request, CompletionHandler<void(SecItemResponseData&&)>&& response)
 {
     switch (request.type()) {
     case SecItemRequestData::Invalid:
         LOG_ERROR("SecItemShimProxy::secItemRequest received an invalid data request. Please file a bug if you know how you caused this.");
-        response = SecItemResponseData(errSecParam, nullptr);
+        response(SecItemResponseData(errSecParam, nullptr));
         break;
 
     case SecItemRequestData::CopyMatching: {
         CFTypeRef resultObject = 0;
         OSStatus resultCode = SecItemCopyMatching(request.query(), &resultObject);
-        response = SecItemResponseData(resultCode, adoptCF(resultObject).get());
+        response(SecItemResponseData(resultCode, adoptCF(resultObject).get()));
         break;
     }
 
@@ -79,19 +79,19 @@
         // Return value of SecItemAdd is often ignored. Even if it isn't, we don't have the ability to
         // serialize SecKeychainItemRef.
         OSStatus resultCode = SecItemAdd(request.query(), nullptr);
-        response = SecItemResponseData(resultCode, nullptr);
+        response(SecItemResponseData(resultCode, nullptr));
         break;
     }
 
     case SecItemRequestData::Update: {
         OSStatus resultCode = SecItemUpdate(request.query(), request.attributesToMatch());
-        response = SecItemResponseData(resultCode, 0);
+        response(SecItemResponseData(resultCode, 0));
         break;
     }
 
     case SecItemRequestData::Delete: {
         OSStatus resultCode = SecItemDelete(request.query());
-        response = SecItemResponseData(resultCode, 0);
+        response(SecItemResponseData(resultCode, 0));
         break;
     }
     }

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/UIProcess/mac/SecItemShimProxy.h (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/UIProcess/mac/SecItemShimProxy.h	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/UIProcess/mac/SecItemShimProxy.h	2019-02-14 11:26:50 UTC (rev 241519)
@@ -48,7 +48,7 @@
     void didReceiveMessage(IPC::Connection&, IPC::Decoder&) override;
     void didReceiveSyncMessage(IPC::Connection&, IPC::Decoder&, std::unique_ptr<IPC::Encoder>&) override;
 
-    void secItemRequest(const SecItemRequestData&, SecItemResponseData&);
+    void secItemRequest(const SecItemRequestData&, CompletionHandler<void(SecItemResponseData&&)>&&);
 
     Ref<WorkQueue> m_queue;
 };

Modified: releases/WebKitGTK/webkit-2.24/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in (241518 => 241519)


--- releases/WebKitGTK/webkit-2.24/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in	2019-02-14 11:26:41 UTC (rev 241518)
+++ releases/WebKitGTK/webkit-2.24/Source/WebKit/UIProcess/mac/SecItemShimProxy.messages.in	2019-02-14 11:26:50 UTC (rev 241519)
@@ -23,7 +23,7 @@
 messages -> SecItemShimProxy {
 
 #if ENABLE(SEC_ITEM_SHIM)
-    SecItemRequest(WebKit::SecItemRequestData request) -> (WebKit::SecItemResponseData response) LegacySync
+    SecItemRequest(WebKit::SecItemRequestData request) -> (WebKit::SecItemResponseData response) Delayed
 #endif
 
 }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to