Title: [143262] trunk/Source/WebKit2
Revision
143262
Author
[email protected]
Date
2013-02-18 13:52:34 -0800 (Mon, 18 Feb 2013)

Log Message

StorageManager message handlers should take the connection
https://bugs.webkit.org/show_bug.cgi?id=110151

Reviewed by Andreas Kling.

* Platform/CoreIPC/HandleMessage.h:
(CoreIPC):
(CoreIPC::callMemberFunction):
(CoreIPC::handleMessage):
* Scripts/webkit2/messages.py:
(sync_message_statement):
(generate_message_handler):
* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::createStorageArea):
(WebKit::StorageManager::destroyStorageArea):
(WebKit::StorageManager::getValues):
* UIProcess/Storage/StorageManager.h:
(StorageManager):
* UIProcess/Storage/StorageManager.messages.in:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (143261 => 143262)


--- trunk/Source/WebKit2/ChangeLog	2013-02-18 21:52:00 UTC (rev 143261)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-18 21:52:34 UTC (rev 143262)
@@ -1,3 +1,25 @@
+2013-02-18  Anders Carlsson  <[email protected]>
+
+        StorageManager message handlers should take the connection
+        https://bugs.webkit.org/show_bug.cgi?id=110151
+
+        Reviewed by Andreas Kling.
+
+        * Platform/CoreIPC/HandleMessage.h:
+        (CoreIPC):
+        (CoreIPC::callMemberFunction):
+        (CoreIPC::handleMessage):
+        * Scripts/webkit2/messages.py:
+        (sync_message_statement):
+        (generate_message_handler):
+        * UIProcess/Storage/StorageManager.cpp:
+        (WebKit::StorageManager::createStorageArea):
+        (WebKit::StorageManager::destroyStorageArea):
+        (WebKit::StorageManager::getValues):
+        * UIProcess/Storage/StorageManager.h:
+        (StorageManager):
+        * UIProcess/Storage/StorageManager.messages.in:
+
 2013-02-18  Christophe Dumez  <[email protected]>
 
         [EFL][WK2] Use C API inside ewk_security_origin

Modified: trunk/Source/WebKit2/Platform/CoreIPC/HandleMessage.h (143261 => 143262)


--- trunk/Source/WebKit2/Platform/CoreIPC/HandleMessage.h	2013-02-18 21:52:00 UTC (rev 143261)
+++ trunk/Source/WebKit2/Platform/CoreIPC/HandleMessage.h	2013-02-18 21:52:34 UTC (rev 143262)
@@ -247,6 +247,12 @@
     (object->*function)(connection, args.argument1, args.argument2, args.argument3, args.argument4);
 }
 
+template<typename C, typename MF, typename P1, typename R1>
+void callMemberFunction(Connection* connection, const Arguments1<P1>& args, Arguments1<R1>& replyArgs, C* object, MF function)
+{
+    (object->*function)(connection, args.argument1, replyArgs.argument1);
+}
+
 // Variadic dispatch functions.
 
 template<typename C, typename MF>
@@ -341,6 +347,18 @@
 }
 
 template<typename T, typename C, typename MF>
+void handleMessage(Connection* connection, MessageDecoder& decoder, MessageEncoder& replyEncoder, C* object, MF function)
+{
+    typename T::DecodeType::ValueType arguments;
+    if (!decoder.decode(arguments))
+        return;
+
+    typename T::Reply::ValueType replyArguments;
+    callMemberFunction(connection, arguments, replyArguments, object, function);
+    replyEncoder << replyArguments;
+}
+
+template<typename T, typename C, typename MF>
 void handleMessage(Connection* connection, MessageDecoder& decoder, C* object, MF function)
 {
     typename T::DecodeType::ValueType arguments;

Modified: trunk/Source/WebKit2/Scripts/webkit2/messages.py (143261 => 143262)


--- trunk/Source/WebKit2/Scripts/webkit2/messages.py	2013-02-18 21:52:00 UTC (rev 143261)
+++ trunk/Source/WebKit2/Scripts/webkit2/messages.py	2013-02-18 21:52:34 UTC (rev 143262)
@@ -328,9 +328,11 @@
     if message.has_attribute(VARIADIC_ATTRIBUTE):
         dispatch_function += 'Variadic'
 
+    wants_connection = message.has_attribute(DELAYED_ATTRIBUTE) or message.has_attribute(WANTS_CONNECTION_ATTRIBUTE)
+
     result = []
     result.append('    if (decoder.messageName() == Messages::%s::%s::name()) {\n' % (receiver.name, message.name))
-    result.append('        CoreIPC::%s<Messages::%s::%s>(%sdecoder, %sreplyEncoder, this, &%s);\n' % (dispatch_function, receiver.name, message.name, 'connection, ' if message.has_attribute(DELAYED_ATTRIBUTE) else '', '' if message.has_attribute(DELAYED_ATTRIBUTE) else '*', handler_function(receiver, message)))
+    result.append('        CoreIPC::%s<Messages::%s::%s>(%sdecoder, %sreplyEncoder, this, &%s);\n' % (dispatch_function, receiver.name, message.name, 'connection, ' if wants_connection else '', '' if message.has_attribute(DELAYED_ATTRIBUTE) else '*', handler_function(receiver, message)))
     result.append('        return;\n')
     result.append('    }\n')
     return surround_in_condition(''.join(result), message.condition)
@@ -572,7 +574,7 @@
         if receiver.has_attribute(LEGACY_RECEIVER_ATTRIBUTE):
             result.append('void %s::didReceiveSync%sMessage(CoreIPC::Connection*%s, CoreIPC::MessageDecoder& decoder, OwnPtr<CoreIPC::MessageEncoder>& replyEncoder)\n' % (receiver.name, receiver.name, ' connection' if sync_delayed_messages else ''))
         else:
-            result.append('void %s::didReceiveSyncMessage(CoreIPC::Connection*%s, CoreIPC::MessageDecoder& decoder, OwnPtr<CoreIPC::MessageEncoder>& replyEncoder)\n' % (receiver.name, ' connection' if sync_delayed_messages else ''))
+            result.append('void %s::didReceiveSyncMessage(CoreIPC::Connection* connection, CoreIPC::MessageDecoder& decoder, OwnPtr<CoreIPC::MessageEncoder>& replyEncoder)\n' % (receiver.name))
         result.append('{\n')
         result += [sync_message_statement(receiver, message) for message in sync_messages]
         result.append('    ASSERT_NOT_REACHED();\n')

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (143261 => 143262)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-02-18 21:52:00 UTC (rev 143261)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2013-02-18 21:52:34 UTC (rev 143262)
@@ -56,17 +56,17 @@
     webProcessProxy->connection()->removeWorkQueueMessageReceiver(Messages::StorageManager::messageReceiverName());
 }
 
-void StorageManager::createStorageArea(uint64_t storageAreaID, uint64_t storageNamespaceID, const SecurityOriginData&)
+void StorageManager::createStorageArea(CoreIPC::Connection*, uint64_t storageAreaID, uint64_t storageNamespaceID, const SecurityOriginData&)
 {
     UNUSED_PARAM(storageAreaID);
     UNUSED_PARAM(storageNamespaceID);
 }
 
-void StorageManager::destroyStorageArea(uint64_t)
+void StorageManager::destroyStorageArea(CoreIPC::Connection*, uint64_t)
 {
 }
 
-void StorageManager::getValues(uint64_t, HashMap<String, String>&)
+void StorageManager::getValues(CoreIPC::Connection*, uint64_t, HashMap<String, String>&)
 {
     // FIXME: Implement this.
 }

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h (143261 => 143262)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2013-02-18 21:52:00 UTC (rev 143261)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2013-02-18 21:52:34 UTC (rev 143262)
@@ -54,9 +54,9 @@
     virtual void didReceiveSyncMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&, OwnPtr<CoreIPC::MessageEncoder>& replyEncoder) OVERRIDE;
 
     // Message handlers.
-    void createStorageArea(uint64_t storageAreaID, uint64_t storageNamespaceID, const SecurityOriginData&);
-    void destroyStorageArea(uint64_t storageAreaID);
-    void getValues(uint64_t storageAreaID, HashMap<String, String>& values);
+    void createStorageArea(CoreIPC::Connection*, uint64_t storageAreaID, uint64_t storageNamespaceID, const SecurityOriginData&);
+    void destroyStorageArea(CoreIPC::Connection*, uint64_t storageAreaID);
+    void getValues(CoreIPC::Connection*, uint64_t storageAreaID, HashMap<String, String>& values);
 
     RefPtr<WorkQueue> m_queue;
 };

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.messages.in (143261 => 143262)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.messages.in	2013-02-18 21:52:00 UTC (rev 143261)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.messages.in	2013-02-18 21:52:34 UTC (rev 143262)
@@ -21,8 +21,8 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 messages -> StorageManager {
-    CreateStorageArea(uint64_t storageAreaID, uint64_t storageNamespaceID, WebKit::SecurityOriginData securityOriginData)
-    DestroyStorageArea(uint64_t storageAreaID)
+    CreateStorageArea(uint64_t storageAreaID, uint64_t storageNamespaceID, WebKit::SecurityOriginData securityOriginData) WantsConnection
+    DestroyStorageArea(uint64_t storageAreaID) WantsConnection
 
-    GetValues(uint64_t storageAreaID) -> (WTF::HashMap<WTF::String, WTF::String> values)
+    GetValues(uint64_t storageAreaID) -> (WTF::HashMap<WTF::String, WTF::String> values) WantsConnection
 }
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to