Changeset 83350 in webkit


Ignore:
Timestamp:
Apr 8, 2011 3:39:00 PM (13 years ago)
Author:
andersca@apple.com
Message:

2011-04-08 Anders Carlsson <andersca@apple.com>

Reviewed by Adam Roben.

Parse 'DispatchOnConnectionQueue' in messages.in files
https://bugs.webkit.org/show_bug.cgi?id=58168

Handle parsing multiple, space-separated attributes in .messages.in files. Keep track of
'DispatchOnConnectionQueue' and rename 'delayed' to 'Delayed'.

  • Scripts/webkit2/messages.py:
  • Scripts/webkit2/messages_unittest.py:
Location:
trunk/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r83342 r83350  
     12011-04-08  Anders Carlsson  <andersca@apple.com>
     2
     3        Reviewed by Adam Roben.
     4
     5        Parse 'DispatchOnConnectionQueue' in messages.in files
     6        https://bugs.webkit.org/show_bug.cgi?id=58168
     7
     8        Handle parsing multiple, space-separated attributes in .messages.in files. Keep track of
     9        'DispatchOnConnectionQueue' and rename 'delayed' to 'Delayed'.
     10
     11        * Scripts/webkit2/messages.py:
     12        * Scripts/webkit2/messages_unittest.py:
     13
    1142011-04-08  Alpha Lam  <hclam@chromium.org>
    215
  • trunk/Source/WebKit2/Scripts/webkit2/messages.py

    r83232 r83350  
    8282                    condition = None
    8383                continue
    84             match = re.search(r'([A-Za-z_0-9]+)\((.*?)\)(?:(?:\s+->\s+)\((.*?)\)(?:\s+(delayed))?)?', line)
     84            match = re.search(r'([A-Za-z_0-9]+)\((.*?)\)(?:(?:\s+->\s+)\((.*?)\)(?:\s+(.*))?)?', line)
    8585            if match:
    86                 name, parameters_string, reply_parameters_string, delayed_string = match.groups()
     86                name, parameters_string, reply_parameters_string, attributes_string = match.groups()
    8787                if parameters_string:
    8888                    parameters = parse_parameter_string(parameters_string)
     
    9393                    parameter.condition = condition
    9494
    95                 delayed = delayed_string == 'delayed'
     95                if attributes_string:
     96                    attributes = frozenset(attributes_string.split())
     97                    delayed = "Delayed" in attributes
     98                    dispatch_on_connection_queue = "DispatchOnConnectionQueue" in attributes
     99                else:
     100                    delayed = False
     101                    dispatch_on_connection_queue = False
    96102
    97103                if reply_parameters_string:
     
    102108                    reply_parameters = None
    103109
    104                 messages.append(Message(name, parameters, reply_parameters, delayed, condition))
     110                messages.append(Message(name, parameters, reply_parameters, delayed, dispatch_on_connection_queue, condition))
    105111        return MessageReceiver(destination, messages, master_condition)
    106112
    107113
    108114class Message(object):
    109     def __init__(self, name, parameters, reply_parameters, delayed, condition):
     115    def __init__(self, name, parameters, reply_parameters, delayed, dispatch_on_connection_queue, condition):
    110116        self.name = name
    111117        self.parameters = parameters
     
    113119        if self.reply_parameters is not None:
    114120            self.delayed = delayed
     121        self.dispatch_on_connection_queue = dispatch_on_connection_queue
    115122        self.condition = condition
    116123        if len(self.parameters) != 0:
  • trunk/Source/WebKit2/Scripts/webkit2/messages_unittest.py

    r81362 r83350  
    6666    CreatePlugin(uint64_t pluginInstanceID, WebKit::Plugin::Parameters parameters) -> (bool result)
    6767    RunJavaScriptAlert(uint64_t frameID, WTF::String message) -> ()
    68     GetPlugins(bool refresh) -> (Vector<WebCore::PluginInfo> plugins)
    69     GetPluginProcessConnection(WTF::String pluginPath) -> (CoreIPC::Connection::Handle connectionHandle) delayed
     68    GetPlugins(bool refresh) -> (Vector<WebCore::PluginInfo> plugins) DispatchOnConnectionQueue
     69    GetPluginProcessConnection(WTF::String pluginPath) -> (CoreIPC::Connection::Handle connectionHandle) Delayed
     70
     71    TestMultipleAttributes() -> () DispatchOnConnectionQueue Delayed
    7072
    7173#if PLATFORM(MAC)
     
    174176            'reply_parameters': (
    175177                ('CoreIPC::Connection::Handle', 'connectionHandle'),
     178            ),
     179            'condition': None,
     180        },
     181        {
     182            'name': 'TestMultipleAttributes',
     183            'parameters': (
     184            ),
     185            'reply_parameters': (
    176186            ),
    177187            'condition': None,
     
    294304    GetPluginsID,
    295305    GetPluginProcessConnectionID,
     306    TestMultipleAttributesID,
    296307#if PLATFORM(MAC)
    297308    DidCreateWebProcessConnectionID,
     
    421432    {
    422433    }
     434};
     435
     436struct TestMultipleAttributes : CoreIPC::Arguments0 {
     437    static const Kind messageID = TestMultipleAttributesID;
     438    struct DelayedReply {
     439        DelayedReply(PassRefPtr<CoreIPC::Connection> connection, PassOwnPtr<CoreIPC::ArgumentDecoder> arguments)
     440            : m_connection(connection)
     441            , m_arguments(arguments)
     442        {
     443        }
     444
     445        bool send()
     446        {
     447            ASSERT(m_arguments);
     448            bool result = m_connection->sendSyncReply(m_arguments.release());
     449            m_connection = nullptr;
     450            return result;
     451        }
     452
     453    private:
     454        RefPtr<CoreIPC::Connection> m_connection;
     455        OwnPtr<CoreIPC::ArgumentDecoder> m_arguments;
     456    };
     457
     458    typedef CoreIPC::Arguments0 DecodeType;
    423459};
    424460
     
    567603        CoreIPC::handleMessage<Messages::WebPage::GetPluginProcessConnection>(arguments, reply, this, &WebPage::getPluginProcessConnection);
    568604        return CoreIPC::AutomaticReply;
     605    case Messages::WebPage::TestMultipleAttributesID:
     606        CoreIPC::handleMessage<Messages::WebPage::TestMultipleAttributes>(arguments, reply, this, &WebPage::testMultipleAttributes);
     607        return CoreIPC::AutomaticReply;
    569608#if PLATFORM(MAC)
    570609    case Messages::WebPage::InterpretKeyEventID:
Note: See TracChangeset for help on using the changeset viewer.