[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