Diff
Modified: trunk/Source/WebKit2/ChangeLog (141819 => 141820)
--- trunk/Source/WebKit2/ChangeLog 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/ChangeLog 2013-02-04 23:07:46 UTC (rev 141820)
@@ -1,3 +1,41 @@
+2013-02-04 Anders Carlsson <[email protected]>
+
+ Update message generation to use the new queue client semantics
+ https://bugs.webkit.org/show_bug.cgi?id=108865
+
+ Reviewed by Andreas Kling.
+
+ * Scripts/webkit2/messages.py:
+ (connection_work_queue_message_statement):
+ (async_message_statement):
+ (generate_message_handler):
+ * Scripts/webkit2/messages_unittest.py:
+ * Shared/mac/SecItemShim.cpp:
+ (WebKit::SecItemShim::didReceiveMessageOnConnectionWorkQueue):
+ * Shared/mac/SecItemShim.h:
+ (SecItemShim):
+ * UIProcess/Storage/StorageManager.cpp:
+ (WebKit::StorageManager::didReceiveMessageOnConnectionWorkQueue):
+ * UIProcess/Storage/StorageManager.h:
+ (StorageManager):
+ * UIProcess/WebProcessProxy.cpp:
+ (WebKit::WebProcessProxy::didReceiveMessageOnConnectionWorkQueue):
+ * UIProcess/WebProcessProxy.h:
+ (WebProcessProxy):
+ * UIProcess/mac/SecItemShimProxy.cpp:
+ (WebKit::SecItemShimProxy::didReceiveMessageOnConnectionWorkQueue):
+ * UIProcess/mac/SecItemShimProxy.h:
+ (SecItemShimProxy):
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/WebPage/EventDispatcher.cpp:
+ (WebKit::EventDispatcher::didReceiveMessageOnConnectionWorkQueue):
+ * WebProcess/WebPage/EventDispatcher.h:
+ (EventDispatcher):
+ * WebProcess/WebProcess.cpp:
+ (WebKit::WebProcess::didReceiveMessageOnConnectionWorkQueue):
+ * WebProcess/WebProcess.h:
+ (WebProcess):
+
2013-02-04 Abhishek Arya <[email protected]>
Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
Modified: trunk/Source/WebKit2/Scripts/webkit2/messages.py (141819 => 141820)
--- trunk/Source/WebKit2/Scripts/webkit2/messages.py 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/Scripts/webkit2/messages.py 2013-02-04 23:07:46 UTC (rev 141820)
@@ -302,20 +302,25 @@
return '%s::%s' % (receiver.name, message.name[0].lower() + message.name[1:])
+def connection_work_queue_message_statement(receiver, message):
+ dispatch_function_args = ['connection', '*decoder', 'this', '&%s' % handler_function(receiver, message)]
+ result = []
+ result.append(' if (decoder->messageName() == Messages::%s::%s::name()) {\n' % (receiver.name, message.name))
+ result.append(' CoreIPC::handleMessageOnConnectionQueue<Messages::%s::%s>(%s);\n' % (receiver.name, message.name, ', '.join(dispatch_function_args)))
+ result.append(' decoder = nullptr;\n')
+ result.append(' return;\n')
+ result.append(' }\n')
+ return surround_in_condition(''.join(result), message.condition)
+
def async_message_statement(receiver, message):
dispatch_function_args = ['decoder', 'this', '&%s' % handler_function(receiver, message)]
dispatch_function = 'handleMessage'
if message.has_attribute(VARIADIC_ATTRIBUTE):
dispatch_function += 'Variadic'
- if message.has_attribute(DISPATCH_ON_CONNECTION_QUEUE_ATTRIBUTE):
- dispatch_function += 'OnConnectionQueue'
- dispatch_function_args.insert(0, 'connection')
-
+
result = []
result.append(' if (decoder.messageName() == Messages::%s::%s::name()) {\n' % (receiver.name, message.name))
result.append(' CoreIPC::%s<Messages::%s::%s>(%s);\n' % (dispatch_function, receiver.name, message.name, ', '.join(dispatch_function_args)))
- if message.has_attribute(DISPATCH_ON_CONNECTION_QUEUE_ATTRIBUTE):
- result.append(' didHandleMessage = true;\n')
result.append(' return;\n')
result.append(' }\n')
return surround_in_condition(''.join(result), message.condition)
@@ -530,13 +535,13 @@
async_messages.append(message)
if async_dispatch_on_connection_queue_messages:
- result.append('void %s::didReceive%sMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, CoreIPC::MessageDecoder& decoder, bool& didHandleMessage)\n' % (receiver.name, receiver.name))
+ result.append('void %s::didReceive%sMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, OwnPtr<CoreIPC::MessageDecoder>& decoder)\n' % (receiver.name, receiver.name))
result.append('{\n')
result.append('#if COMPILER(MSVC)\n')
result.append('#pragma warning(push)\n')
result.append('#pragma warning(disable: 4065)\n')
result.append('#endif\n')
- result += [async_message_statement(receiver, message) for message in async_dispatch_on_connection_queue_messages]
+ result += [connection_work_queue_message_statement(receiver, message) for message in async_dispatch_on_connection_queue_messages]
result.append('#if COMPILER(MSVC)\n')
result.append('#pragma warning(pop)\n')
result.append('#endif\n')
Modified: trunk/Source/WebKit2/Scripts/webkit2/messages_unittest.py (141819 => 141820)
--- trunk/Source/WebKit2/Scripts/webkit2/messages_unittest.py 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/Scripts/webkit2/messages_unittest.py 2013-02-04 23:07:46 UTC (rev 141820)
@@ -703,15 +703,15 @@
namespace WebKit {
-void WebPage::didReceiveWebPageMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, CoreIPC::MessageDecoder& decoder, bool& didHandleMessage)
+void WebPage::didReceiveWebPageMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, OwnPtr<CoreIPC::MessageDecoder>& decoder)
{
#if COMPILER(MSVC)
#pragma warning(push)
#pragma warning(disable: 4065)
#endif
- if (decoder.messageName() == Messages::WebPage::TestConnectionQueue::name()) {
- CoreIPC::handleMessageOnConnectionQueue<Messages::WebPage::TestConnectionQueue>(connection, decoder, this, &WebPage::testConnectionQueue);
- didHandleMessage = true;
+ if (decoder->messageName() == Messages::WebPage::TestConnectionQueue::name()) {
+ CoreIPC::handleMessageOnConnectionQueue<Messages::WebPage::TestConnectionQueue>(connection, *decoder, this, &WebPage::testConnectionQueue);
+ decoder = nullptr;
return;
}
#if COMPILER(MSVC)
Modified: trunk/Source/WebKit2/Shared/mac/SecItemShim.cpp (141819 => 141820)
--- trunk/Source/WebKit2/Shared/mac/SecItemShim.cpp 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/Shared/mac/SecItemShim.cpp 2013-02-04 23:07:46 UTC (rev 141820)
@@ -135,10 +135,7 @@
void SecItemShim::didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, OwnPtr<CoreIPC::MessageDecoder>& decoder)
{
if (decoder->messageReceiverName() == Messages::SecItemShim::messageReceiverName()) {
- bool didHandleMessage = false;
- didReceiveSecItemShimMessageOnConnectionWorkQueue(connection, *decoder, didHandleMessage);
- if (didHandleMessage)
- decoder = nullptr;
+ didReceiveSecItemShimMessageOnConnectionWorkQueue(connection, decoder);
return;
}
}
Modified: trunk/Source/WebKit2/Shared/mac/SecItemShim.h (141819 => 141820)
--- trunk/Source/WebKit2/Shared/mac/SecItemShim.h 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/Shared/mac/SecItemShim.h 2013-02-04 23:07:46 UTC (rev 141820)
@@ -50,7 +50,7 @@
virtual void didCloseOnConnectionWorkQueue(CoreIPC::Connection*) OVERRIDE;
// Implemented in generated SecItemShimMessageReceiver.cpp.
- void didReceiveSecItemShimMessageOnConnectionWorkQueue(CoreIPC::Connection*, CoreIPC::MessageDecoder&, bool& didHandleMessage);
+ void didReceiveSecItemShimMessageOnConnectionWorkQueue(CoreIPC::Connection*, OwnPtr<CoreIPC::MessageDecoder>&);
void secItemResponse(CoreIPC::Connection*, uint64_t requestID, const SecItemResponseData&);
};
Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (141819 => 141820)
--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp 2013-02-04 23:07:46 UTC (rev 141820)
@@ -48,10 +48,7 @@
void StorageManager::didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, OwnPtr<CoreIPC::MessageDecoder>& decoder)
{
if (decoder->messageReceiverName() == Messages::StorageManager::messageReceiverName()) {
- bool didHandleMessage = false;
- didReceiveStorageManagerMessageOnConnectionWorkQueue(connection, *decoder, didHandleMessage);
- if (didHandleMessage)
- decoder = nullptr;
+ didReceiveStorageManagerMessageOnConnectionWorkQueue(connection, decoder);
return;
}
}
Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h (141819 => 141820)
--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h 2013-02-04 23:07:46 UTC (rev 141820)
@@ -48,7 +48,7 @@
virtual void didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection*, OwnPtr<CoreIPC::MessageDecoder>&) OVERRIDE;
virtual void didCloseOnConnectionWorkQueue(CoreIPC::Connection*) OVERRIDE;
- void didReceiveStorageManagerMessageOnConnectionWorkQueue(CoreIPC::Connection*, CoreIPC::MessageDecoder&, bool& didHandleMessage);
+ void didReceiveStorageManagerMessageOnConnectionWorkQueue(CoreIPC::Connection*, OwnPtr<CoreIPC::MessageDecoder>&);
// Message handlers.
void createStorageArea(CoreIPC::Connection*, uint64_t storageAreaID, uint64_t storageNamespaceID, const SecurityOriginData&);
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp (141819 => 141820)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp 2013-02-04 23:07:46 UTC (rev 141820)
@@ -458,10 +458,7 @@
void WebProcessProxy::didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, OwnPtr<CoreIPC::MessageDecoder>& decoder)
{
if (decoder->messageReceiverName() == Messages::WebProcessProxy::messageReceiverName()) {
- bool didHandleMessage = false;
- didReceiveWebProcessProxyMessageOnConnectionWorkQueue(connection, *decoder, didHandleMessage);
- if (didHandleMessage)
- decoder = nullptr;
+ didReceiveWebProcessProxyMessageOnConnectionWorkQueue(connection, decoder);
return;
}
}
Modified: trunk/Source/WebKit2/UIProcess/WebProcessProxy.h (141819 => 141820)
--- trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/UIProcess/WebProcessProxy.h 2013-02-04 23:07:46 UTC (rev 141820)
@@ -184,7 +184,7 @@
// Implemented in generated WebProcessProxyMessageReceiver.cpp
void didReceiveWebProcessProxyMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&);
void didReceiveSyncWebProcessProxyMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&, OwnPtr<CoreIPC::MessageEncoder>&);
- void didReceiveWebProcessProxyMessageOnConnectionWorkQueue(CoreIPC::Connection*, CoreIPC::MessageDecoder&, bool& didHandleMessage);
+ void didReceiveWebProcessProxyMessageOnConnectionWorkQueue(CoreIPC::Connection*, OwnPtr<CoreIPC::MessageDecoder>&);
ResponsivenessTimer m_responsivenessTimer;
Modified: trunk/Source/WebKit2/UIProcess/mac/SecItemShimProxy.cpp (141819 => 141820)
--- trunk/Source/WebKit2/UIProcess/mac/SecItemShimProxy.cpp 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/UIProcess/mac/SecItemShimProxy.cpp 2013-02-04 23:07:46 UTC (rev 141820)
@@ -109,10 +109,7 @@
void SecItemShimProxy::didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, OwnPtr<CoreIPC::MessageDecoder>& decoder)
{
if (decoder->messageReceiverName() == Messages::SecItemShimProxy::messageReceiverName()) {
- bool didHandleMessage = false;
- didReceiveSecItemShimProxyMessageOnConnectionWorkQueue(connection, *decoder, didHandleMessage);
- if (didHandleMessage)
- decoder = nullptr;
+ didReceiveSecItemShimProxyMessageOnConnectionWorkQueue(connection, decoder);
return;
}
}
Modified: trunk/Source/WebKit2/UIProcess/mac/SecItemShimProxy.h (141819 => 141820)
--- trunk/Source/WebKit2/UIProcess/mac/SecItemShimProxy.h 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/UIProcess/mac/SecItemShimProxy.h 2013-02-04 23:07:46 UTC (rev 141820)
@@ -47,7 +47,7 @@
virtual void didCloseOnConnectionWorkQueue(CoreIPC::Connection*) OVERRIDE;
// Implemented in generated SecItemShimProxyMessageReceiver.cpp.
- void didReceiveSecItemShimProxyMessageOnConnectionWorkQueue(CoreIPC::Connection*, CoreIPC::MessageDecoder&, bool& didHandleMessage);
+ void didReceiveSecItemShimProxyMessageOnConnectionWorkQueue(CoreIPC::Connection*, OwnPtr<CoreIPC::MessageDecoder>&);
void secItemRequest(CoreIPC::Connection*, uint64_t requestID, const SecItemRequestData&);
};
Modified: trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp (141819 => 141820)
--- trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp 2013-02-04 23:07:46 UTC (rev 141820)
@@ -76,10 +76,7 @@
void EventDispatcher::didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, OwnPtr<CoreIPC::MessageDecoder>& decoder)
{
if (decoder->messageReceiverName() == Messages::EventDispatcher::messageReceiverName()) {
- bool didHandleMessage = false;
- didReceiveEventDispatcherMessageOnConnectionWorkQueue(connection, *decoder, didHandleMessage);
- if (didHandleMessage)
- decoder = nullptr;
+ didReceiveEventDispatcherMessageOnConnectionWorkQueue(connection, decoder);
return;
}
}
Modified: trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.h (141819 => 141820)
--- trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.h 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/WebProcess/WebPage/EventDispatcher.h 2013-02-04 23:07:46 UTC (rev 141820)
@@ -64,7 +64,7 @@
virtual void didCloseOnConnectionWorkQueue(CoreIPC::Connection*) OVERRIDE;
// Implemented in generated EventDispatcherMessageReceiver.cpp
- void didReceiveEventDispatcherMessageOnConnectionWorkQueue(CoreIPC::Connection*, CoreIPC::MessageDecoder&, bool& didHandleMessage);
+ void didReceiveEventDispatcherMessageOnConnectionWorkQueue(CoreIPC::Connection*, OwnPtr<CoreIPC::MessageDecoder>&);
// Message handlers
void wheelEvent(CoreIPC::Connection*, uint64_t pageID, const WebWheelEvent&, bool canGoBack, bool canGoForward);
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.cpp (141819 => 141820)
--- trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.cpp 2013-02-04 23:07:46 UTC (rev 141820)
@@ -637,10 +637,7 @@
void WebProcess::didReceiveMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, OwnPtr<CoreIPC::MessageDecoder>& decoder)
{
if (decoder->messageReceiverName() == Messages::WebProcess::messageReceiverName()) {
- bool didHandleMessage = false;
- didReceiveWebProcessMessageOnConnectionWorkQueue(connection, *decoder, didHandleMessage);
- if (didHandleMessage)
- decoder = nullptr;
+ didReceiveWebProcessMessageOnConnectionWorkQueue(connection, decoder);
return;
}
}
Modified: trunk/Source/WebKit2/WebProcess/WebProcess.h (141819 => 141820)
--- trunk/Source/WebKit2/WebProcess/WebProcess.h 2013-02-04 23:01:03 UTC (rev 141819)
+++ trunk/Source/WebKit2/WebProcess/WebProcess.h 2013-02-04 23:07:46 UTC (rev 141820)
@@ -277,7 +277,7 @@
// Implemented in generated WebProcessMessageReceiver.cpp
void didReceiveWebProcessMessage(CoreIPC::Connection*, CoreIPC::MessageDecoder&);
- void didReceiveWebProcessMessageOnConnectionWorkQueue(CoreIPC::Connection*, CoreIPC::MessageDecoder&, bool& didHandleMessage);
+ void didReceiveWebProcessMessageOnConnectionWorkQueue(CoreIPC::Connection*, OwnPtr<CoreIPC::MessageDecoder>&);
#if ENABLE(NETSCAPE_PLUGIN_API)
void didGetPlugins(CoreIPC::Connection*, uint64_t requestID, const Vector<WebCore::PluginInfo>&);