summaryrefslogtreecommitdiff
path: root/Source/WebKit2/Scripts/webkit2/messages.py
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-11-07 11:22:47 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2012-11-07 11:22:47 +0100
commitcfd86b747d32ac22246a1aa908eaa720c63a88c1 (patch)
tree24d68c6f61c464ecba1e05670b80390ea3b0e50c /Source/WebKit2/Scripts/webkit2/messages.py
parent69d7c744c9de19d152dbe2d8e46eb7dfd4511d1a (diff)
downloadqtwebkit-cfd86b747d32ac22246a1aa908eaa720c63a88c1.tar.gz
Imported WebKit commit 20271caf2e2c016d5cef40184cddeefeac4f1876 (http://svn.webkit.org/repository/webkit/trunk@133733)
New snapshot that contains all previous fixes as well as build fix for latest QtMultimedia API changes.
Diffstat (limited to 'Source/WebKit2/Scripts/webkit2/messages.py')
-rw-r--r--Source/WebKit2/Scripts/webkit2/messages.py38
1 files changed, 14 insertions, 24 deletions
diff --git a/Source/WebKit2/Scripts/webkit2/messages.py b/Source/WebKit2/Scripts/webkit2/messages.py
index f1cd50389..69a9e352e 100644
--- a/Source/WebKit2/Scripts/webkit2/messages.py
+++ b/Source/WebKit2/Scripts/webkit2/messages.py
@@ -131,6 +131,7 @@ def message_to_struct_declaration(message):
result.append(' static const Kind messageID = %s;\n' % message.id())
result.append(' static CoreIPC::StringReference receiverName() { return messageReceiverName(); }\n')
result.append(' static CoreIPC::StringReference name() { return CoreIPC::StringReference("%s"); }\n' % message.name)
+ result.append(' static const bool isSync = %s;\n' % ('false', 'true')[message.reply_parameters != None])
result.append('\n')
if message.reply_parameters != None:
if message.has_attribute(DELAYED_ATTRIBUTE):
@@ -317,7 +318,7 @@ def handler_function(receiver, message):
return '%s::%s' % (receiver.name, message.name[0].lower() + message.name[1:])
-def async_case_statement(receiver, message):
+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):
@@ -327,16 +328,16 @@ def async_case_statement(receiver, message):
dispatch_function_args.insert(0, 'connection')
result = []
- result.append(' case Messages::%s::%s:\n' % (receiver.name, message.id()))
-
+ 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)
-def sync_case_statement(receiver, message):
+def sync_message_statement(receiver, message):
dispatch_function = 'handleMessage'
if message.has_attribute(DELAYED_ATTRIBUTE):
dispatch_function += 'Delayed'
@@ -344,10 +345,10 @@ def sync_case_statement(receiver, message):
dispatch_function += 'Variadic'
result = []
- result.append(' case Messages::%s::%s:\n' % (receiver.name, message.id()))
+ 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(' return;\n')
-
+ result.append(' }\n')
return surround_in_condition(''.join(result), message.condition)
@@ -387,6 +388,7 @@ def headers_for_type(type):
'WTF::String': ['<wtf/text/WTFString.h>'],
'WebCore::CompositionUnderline': ['<WebCore/Editor.h>'],
'WebCore::GrammarDetail': ['<WebCore/TextCheckerClient.h>'],
+ 'WebCore::GraphicsLayerAnimations': ['<WebCore/GraphicsLayerAnimation.h>'],
'WebCore::KeyframeValueList': ['<WebCore/GraphicsLayer.h>'],
'WebCore::KeypressCommand': ['<WebCore/KeyboardEvent.h>'],
'WebCore::FileChooserSettings': ['<WebCore/FileChooser.h>'],
@@ -545,42 +547,30 @@ def generate_message_handler(file):
async_messages.append(message)
if async_dispatch_on_connection_queue_messages:
- result.append('void %s::didReceive%sMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::MessageDecoder& decoder, bool& didHandleMessage)\n' % (receiver.name, receiver.name))
+ result.append('void %s::didReceive%sMessageOnConnectionWorkQueue(CoreIPC::Connection* connection, CoreIPC::MessageID, CoreIPC::MessageDecoder& decoder, bool& didHandleMessage)\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.append(' switch (messageID.get<Messages::%s::Kind>()) {\n' % receiver.name)
- result += [async_case_statement(receiver, message) for message in async_dispatch_on_connection_queue_messages]
- result.append(' default:\n')
- result.append(' return;\n')
- result.append(' }\n')
+ result += [async_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')
result.append('}\n\n')
if async_messages:
- result.append('void %s::didReceive%sMessage(CoreIPC::Connection*, CoreIPC::MessageID messageID, CoreIPC::MessageDecoder& decoder)\n' % (receiver.name, receiver.name))
+ result.append('void %s::didReceive%sMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder& decoder)\n' % (receiver.name, receiver.name))
result.append('{\n')
- result.append(' switch (messageID.get<Messages::%s::Kind>()) {\n' % receiver.name)
- result += [async_case_statement(receiver, message) for message in async_messages]
- result.append(' default:\n')
- result.append(' break;\n')
- result.append(' }\n\n')
+ result += [async_message_statement(receiver, message) for message in async_messages]
result.append(' ASSERT_NOT_REACHED();\n')
result.append('}\n')
if sync_messages:
result.append('\n')
- result.append('void %s::didReceiveSync%sMessage(CoreIPC::Connection*%s, CoreIPC::MessageID messageID, CoreIPC::MessageDecoder& decoder, OwnPtr<CoreIPC::MessageEncoder>& replyEncoder)\n' % (receiver.name, receiver.name, ' connection' if sync_delayed_messages else ''))
+ result.append('void %s::didReceiveSync%sMessage(CoreIPC::Connection*%s, CoreIPC::MessageID, CoreIPC::MessageDecoder& decoder, OwnPtr<CoreIPC::MessageEncoder>& replyEncoder)\n' % (receiver.name, receiver.name, ' connection' if sync_delayed_messages else ''))
result.append('{\n')
- result.append(' switch (messageID.get<Messages::%s::Kind>()) {\n' % receiver.name)
- result += [sync_case_statement(receiver, message) for message in sync_messages]
- result.append(' default:\n')
- result.append(' break;\n')
- result.append(' }\n\n')
+ result += [sync_message_statement(receiver, message) for message in sync_messages]
result.append(' ASSERT_NOT_REACHED();\n')
result.append('}\n')