[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc
andersca at apple.com
andersca at apple.com
Wed Dec 22 13:41:41 UTC 2010
The following commit has been merged in the debian/experimental branch:
commit 9778964f215ce7486e5b234ca4495dadd3f5df8d
Author: andersca at apple.com <andersca at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Thu Sep 23 17:27:36 2010 +0000
It should be possible to conditionally define an entire group of messages
https://bugs.webkit.org/show_bug.cgi?id=46368
Reviewed by Adam Roben.
* Scripts/webkit2/messages.py:
Check for a condition when parsing the "messages -> " string and set it as the
message receiver condition.
* Scripts/webkit2/messages_unittest.py:
Add test.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@68159 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 78395fd..b5a90a2 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -17,6 +17,20 @@
Reviewed by Adam Roben.
+ It should be possible to conditionally define an entire group of messages
+ https://bugs.webkit.org/show_bug.cgi?id=46368
+
+ * Scripts/webkit2/messages.py:
+ Check for a condition when parsing the "messages -> " string and set it as the
+ message receiver condition.
+
+ * Scripts/webkit2/messages_unittest.py:
+ Add test.
+
+2010-09-23 Anders Carlsson <andersca at apple.com>
+
+ Reviewed by Adam Roben.
+
Message autogeneration script should parse sync message syntax
https://bugs.webkit.org/show_bug.cgi?id=46359
diff --git a/WebKit2/Scripts/webkit2/messages.py b/WebKit2/Scripts/webkit2/messages.py
index ab3f389..7195575 100644
--- a/WebKit2/Scripts/webkit2/messages.py
+++ b/WebKit2/Scripts/webkit2/messages.py
@@ -50,9 +50,10 @@ _license_header = """/*
"""
class MessageReceiver(object):
- def __init__(self, name, messages):
+ def __init__(self, name, messages, condition):
self.name = name
self.messages = messages
+ self.condition = condition
def iterparameters(self):
return (parameter for message in self.messages for parameter in message.parameters)
@@ -62,9 +63,13 @@ class MessageReceiver(object):
destination = None
messages = []
condition = None
+ master_condition = None
for line in file:
match = re.search(r'messages -> ([A-Za-z_0-9]+) {', line)
if match:
+ if condition:
+ master_condition = condition
+ condition = None
destination = match.group(1)
continue
if line.startswith('#'):
@@ -91,7 +96,7 @@ class MessageReceiver(object):
reply_parameters = None
messages.append(Message(name, parameters, reply_parameters, delayed, condition))
- return MessageReceiver(destination, messages)
+ return MessageReceiver(destination, messages, master_condition)
class Message(object):
@@ -139,6 +144,8 @@ def function_parameter_type(type):
# Don't use references for built-in types.
builtin_types = frozenset([
'bool',
+ 'float',
+ 'double',
'uint8_t',
'uint16_t',
'uint32_t',
@@ -232,6 +239,9 @@ def generate_messages_header(file):
result.append('#ifndef %s\n' % header_guard)
result.append('#define %s\n\n' % header_guard)
+ if receiver.condition:
+ result.append('#if %s\n\n' % receiver.condition)
+
result += ['#include %s\n' % header for header in sorted(headers)]
result.append('\n')
@@ -250,7 +260,11 @@ def generate_messages_header(file):
result.append('};\n')
result.append('\n} // namespace CoreIPC\n')
+ if receiver.condition:
+ result.append('\n#endif // %s\n' % receiver.condition)
+
result.append('\n#endif // %s\n' % header_guard)
+
return ''.join(result)
@@ -301,6 +315,9 @@ def generate_message_handler(file):
result.append(_license_header)
result.append('\n')
+ if receiver.condition:
+ result.append('#if %s\n\n' % receiver.condition)
+
result.append('#include "%s.h"\n\n' % receiver.name)
result += ['#include %s\n' % header for header in sorted(headers)]
result.append('\n')
@@ -317,4 +334,7 @@ def generate_message_handler(file):
result.append('\n} // namespace WebKit\n')
+ if receiver.condition:
+ result.append('\n#endif // %s\n' % receiver.condition)
+
return ''.join(result)
diff --git a/WebKit2/Scripts/webkit2/messages_unittest.py b/WebKit2/Scripts/webkit2/messages_unittest.py
index 0dfea52..54bcbbf 100644
--- a/WebKit2/Scripts/webkit2/messages_unittest.py
+++ b/WebKit2/Scripts/webkit2/messages_unittest.py
@@ -47,6 +47,8 @@ _messages_file_contents = """# Copyright (C) 2010 Apple Inc. All rights reserved
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#if ENABLE(WEBKIT2)
+
messages -> WebPage {
LoadURL(WTF::String url)
#if ENABLE(TOUCH_EVENTS)
@@ -55,16 +57,20 @@ messages -> WebPage {
DidReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, uint32_t policyAction)
Close()
+ SendDoubleAndFloat(double d, float f)
SendInts(Vector<uint64_t> ints)
RunJavaScriptAlert(uint64_t frameID, WTF::String message) -> ()
GetPlugins(bool refresh) -> (Vector<WebCore::PluginInfo> plugins)
GetPluginProcessConnection(WTF::String pluginPath) -> (CoreIPC::Connection::Handle connectionHandle) delayed
}
+
+#endif
"""
_expected_results = {
'name': 'WebPage',
+ 'condition': 'ENABLE(WEBKIT2)',
'messages': (
{
'name': 'LoadURL',
@@ -99,6 +105,15 @@ _expected_results = {
'base_class': 'CoreIPC::Arguments0',
},
{
+ 'name': 'SendDoubleAndFloat',
+ 'parameters': (
+ ('double', 'd'),
+ ('float', 'f'),
+ ),
+ 'condition': None,
+ 'base_class': 'CoreIPC::Arguments2<double, float>',
+ },
+ {
'name': 'SendInts',
'parameters': (
('Vector<uint64_t>', 'ints'),
@@ -169,6 +184,7 @@ class ParsingTest(MessagesTest):
def test_receiver(self):
"""Receiver should be parsed as expected"""
self.assertEquals(self.receiver.name, _expected_results['name'])
+ self.assertEquals(self.receiver.condition, _expected_results['condition'])
self.assertEquals(len(self.receiver.messages), len(_expected_results['messages']))
for index, message in enumerate(self.receiver.messages):
self.check_message(message, _expected_results['messages'][index])
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list