165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# Copyright (C) 2010 Apple Inc. All rights reserved. 265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# 365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# Redistribution and use in source and binary forms, with or without 465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# modification, are permitted provided that the following conditions 565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# are met: 665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# 1. Redistributions of source code must retain the above copyright 765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# notice, this list of conditions and the following disclaimer. 865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# 2. Redistributions in binary form must reproduce the above copyright 965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# notice, this list of conditions and the following disclaimer in the 1065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# documentation and/or other materials provided with the distribution. 1165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# 1265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND 1365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 1465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 1565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR 1665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 1765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 1865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 1965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 2065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochimport unittest 2465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochfrom StringIO import StringIO 2565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochimport messages 2765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 2865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch_messages_file_contents = """# Copyright (C) 2010 Apple Inc. All rights reserved. 2965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# 3065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# Redistribution and use in source and binary forms, with or without 3165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# modification, are permitted provided that the following conditions 3265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# are met: 3365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# 1. Redistributions of source code must retain the above copyright 3465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# notice, this list of conditions and the following disclaimer. 3565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# 2. Redistributions in binary form must reproduce the above copyright 3665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# notice, this list of conditions and the following disclaimer in the 3765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# documentation and/or other materials provided with the distribution. 3865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# 3965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND 4065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 4165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 4265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR 4365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 4465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 4565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 4665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 4765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 4865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 4965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 502fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include "config.h" 512fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 5265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(WEBKIT2) 5365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochmessages -> WebPage { 5565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch LoadURL(WTF::String url) 5665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(TOUCH_EVENTS) 5765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch TouchEvent(WebKit::WebTouchEvent event) 5865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 5965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch DidReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, uint32_t policyAction) 6065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch Close() 6165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PreferencesDidChange(WebKit::WebPreferencesStore store) 6365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch SendDoubleAndFloat(double d, float f) 6465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch SendInts(Vector<uint64_t> ints, Vector<Vector<uint64_t> > intVectors) 6565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CreatePlugin(uint64_t pluginInstanceID, WebKit::Plugin::Parameters parameters) -> (bool result) 6765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch RunJavaScriptAlert(uint64_t frameID, WTF::String message) -> () 682daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch GetPlugins(bool refresh) -> (Vector<WebCore::PluginInfo> plugins) DispatchOnConnectionQueue 692daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch GetPluginProcessConnection(WTF::String pluginPath) -> (CoreIPC::Connection::Handle connectionHandle) Delayed 702daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 712daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch TestMultipleAttributes() -> () DispatchOnConnectionQueue Delayed 7265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 732bde8e466a4451c7319e3a072d118917957d6554Steve Block#if PLATFORM(MAC) 7465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch DidCreateWebProcessConnection(CoreIPC::MachPort connectionIdentifier) 752bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 7665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 7765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC) 7865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch # Keyboard support 7965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch InterpretKeyEvent(uint32_t type) -> (Vector<WebCore::KeypressCommand> commandName) 8065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 8165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 8265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 8365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 8465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch""" 8565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 8665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch_expected_results = { 8765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'WebPage', 8865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': 'ENABLE(WEBKIT2)', 8965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'messages': ( 9065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 9165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'LoadURL', 9265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 9365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('WTF::String', 'url'), 9465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 9565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 9665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 9765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 9865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'TouchEvent', 9965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 10065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('WebKit::WebTouchEvent', 'event'), 10165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 10265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': 'ENABLE(TOUCH_EVENTS)', 10365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 10465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 10565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'DidReceivePolicyDecision', 10665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 10765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('uint64_t', 'frameID'), 10865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('uint64_t', 'listenerID'), 10965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('uint32_t', 'policyAction'), 11065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 11165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 11265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 11365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 11465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'Close', 11565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': (), 11665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 11765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 11865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 11965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'PreferencesDidChange', 12065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 12165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('WebKit::WebPreferencesStore', 'store'), 12265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 12365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 12465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 12565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 12665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'SendDoubleAndFloat', 12765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 12865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('double', 'd'), 12965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('float', 'f'), 13065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 13165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 13265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 13365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 13465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'SendInts', 13565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 13665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('Vector<uint64_t>', 'ints'), 13765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('Vector<Vector<uint64_t> >', 'intVectors') 13865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 13965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 14065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 14165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 14265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'CreatePlugin', 14365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 14465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('uint64_t', 'pluginInstanceID'), 14565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('WebKit::Plugin::Parameters', 'parameters') 14665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 14765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'reply_parameters': ( 14865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('bool', 'result'), 14965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 15065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 15165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 15265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 15365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'RunJavaScriptAlert', 15465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 15565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('uint64_t', 'frameID'), 15665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('WTF::String', 'message') 15765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 15865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'reply_parameters': (), 15965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 16065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 16165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 16265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'GetPlugins', 16365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 16465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('bool', 'refresh'), 16565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 16665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'reply_parameters': ( 16765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('Vector<WebCore::PluginInfo>', 'plugins'), 16865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 16965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 17065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 17165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 17265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'GetPluginProcessConnection', 17365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 17465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('WTF::String', 'pluginPath'), 17565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 17665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'reply_parameters': ( 17765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('CoreIPC::Connection::Handle', 'connectionHandle'), 17865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 17965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': None, 18065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 18165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 1822daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 'name': 'TestMultipleAttributes', 1832daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 'parameters': ( 1842daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ), 1852daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 'reply_parameters': ( 1862daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ), 1872daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 'condition': None, 1882daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch }, 1892daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch { 19065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'DidCreateWebProcessConnection', 19165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 19265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('CoreIPC::MachPort', 'connectionIdentifier'), 19365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 1942bde8e466a4451c7319e3a072d118917957d6554Steve Block 'condition': 'PLATFORM(MAC)', 19565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 19665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 19765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'name': 'InterpretKeyEvent', 19865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'parameters': ( 19965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('uint32_t', 'type'), 20065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 20165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'reply_parameters': ( 20265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ('Vector<WebCore::KeypressCommand>', 'commandName'), 20365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 20465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 'condition': 'PLATFORM(MAC)', 20565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }, 20665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ), 20765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 20865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 20965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 21065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass MessagesTest(unittest.TestCase): 21165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch def setUp(self): 21265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.receiver = messages.MessageReceiver.parse(StringIO(_messages_file_contents)) 21365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 21465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 21565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass ParsingTest(MessagesTest): 21665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch def check_message(self, message, expected_message): 21765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(message.name, expected_message['name']) 21865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(len(message.parameters), len(expected_message['parameters'])) 21965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch for index, parameter in enumerate(message.parameters): 22065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(parameter.type, expected_message['parameters'][index][0]) 22165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(parameter.name, expected_message['parameters'][index][1]) 22265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch if message.reply_parameters != None: 22365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch for index, parameter in enumerate(message.reply_parameters): 22465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(parameter.type, expected_message['reply_parameters'][index][0]) 22565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(parameter.name, expected_message['reply_parameters'][index][1]) 22665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch else: 22765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertFalse('reply_parameters' in expected_message) 22865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(message.condition, expected_message['condition']) 22965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 23065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch def test_receiver(self): 23165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch """Receiver should be parsed as expected""" 23265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(self.receiver.name, _expected_results['name']) 23365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(self.receiver.condition, _expected_results['condition']) 23465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(len(self.receiver.messages), len(_expected_results['messages'])) 23565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch for index, message in enumerate(self.receiver.messages): 23665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.check_message(message, _expected_results['messages'][index]) 23765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 23865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch_expected_header = """/* 23965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Copyright (C) 2010 Apple Inc. All rights reserved. 24065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 24165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Redistribution and use in source and binary forms, with or without 24265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * modification, are permitted provided that the following conditions 24365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * are met: 24465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 1. Redistributions of source code must retain the above copyright 24565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * notice, this list of conditions and the following disclaimer. 24665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright 24765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * notice, this list of conditions and the following disclaimer in the 24865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * documentation and/or other materials provided with the distribution. 24965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 25065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND 25165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 25265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 25365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR 25465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 25665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 25765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 25865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 25965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch */ 26165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 26265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#ifndef WebPageMessages_h 26365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#define WebPageMessages_h 26465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 26565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(WEBKIT2) 26665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 26765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "Arguments.h" 26865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "Connection.h" 26965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "MessageID.h" 27065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "Plugin.h" 27165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebCore/KeyboardEvent.h> 27265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <WebCore/PluginData.h> 2732daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch#include <wtf/ThreadSafeRefCounted.h> 27465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include <wtf/Vector.h> 27565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 27665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace CoreIPC { 2772daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch class ArgumentEncoder; 2782daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch class Connection; 27965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch class MachPort; 28065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 28165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 28265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WTF { 28365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch class String; 28465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 28565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 28665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WebKit { 28765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch struct WebPreferencesStore; 28865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch class WebTouchEvent; 28965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 29065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 29165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace Messages { 29265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 29365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WebPage { 29465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 29565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochenum Kind { 29665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch LoadURLID, 29765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(TOUCH_EVENTS) 29865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch TouchEventID, 29965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 30065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch DidReceivePolicyDecisionID, 30165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CloseID, 30265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch PreferencesDidChangeID, 30365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch SendDoubleAndFloatID, 30465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch SendIntsID, 30565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CreatePluginID, 30665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch RunJavaScriptAlertID, 30765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch GetPluginsID, 30865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch GetPluginProcessConnectionID, 3092daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch TestMultipleAttributesID, 3102bde8e466a4451c7319e3a072d118917957d6554Steve Block#if PLATFORM(MAC) 31165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch DidCreateWebProcessConnectionID, 3122bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 31365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC) 31465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch InterpretKeyEventID, 31565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 31665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 31765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 31865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct LoadURL : CoreIPC::Arguments1<const WTF::String&> { 31965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = LoadURLID; 32065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<const WTF::String&> DecodeType; 32165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch explicit LoadURL(const WTF::String& url) 32265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments1<const WTF::String&>(url) 32365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 32465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 32565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 32665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 32765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(TOUCH_EVENTS) 32865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct TouchEvent : CoreIPC::Arguments1<const WebKit::WebTouchEvent&> { 32965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = TouchEventID; 33065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<const WebKit::WebTouchEvent&> DecodeType; 33165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch explicit TouchEvent(const WebKit::WebTouchEvent& event) 33265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments1<const WebKit::WebTouchEvent&>(event) 33365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 33465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 33565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 33665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 33765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 33865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct DidReceivePolicyDecision : CoreIPC::Arguments3<uint64_t, uint64_t, uint32_t> { 33965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = DidReceivePolicyDecisionID; 34065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments3<uint64_t, uint64_t, uint32_t> DecodeType; 34165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch DidReceivePolicyDecision(uint64_t frameID, uint64_t listenerID, uint32_t policyAction) 34265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments3<uint64_t, uint64_t, uint32_t>(frameID, listenerID, policyAction) 34365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 34465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 34565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 34665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 34765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct Close : CoreIPC::Arguments0 { 34865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = CloseID; 34965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments0 DecodeType; 35065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 35165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 35265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct PreferencesDidChange : CoreIPC::Arguments1<const WebKit::WebPreferencesStore&> { 35365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = PreferencesDidChangeID; 35465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<const WebKit::WebPreferencesStore&> DecodeType; 35565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch explicit PreferencesDidChange(const WebKit::WebPreferencesStore& store) 35665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments1<const WebKit::WebPreferencesStore&>(store) 35765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 35865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 35965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 36065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 36165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct SendDoubleAndFloat : CoreIPC::Arguments2<double, float> { 36265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = SendDoubleAndFloatID; 36365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments2<double, float> DecodeType; 36465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch SendDoubleAndFloat(double d, float f) 36565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments2<double, float>(d, f) 36665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 36765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 36865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 36965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 37065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct SendInts : CoreIPC::Arguments2<const Vector<uint64_t>&, const Vector<Vector<uint64_t> >&> { 37165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = SendIntsID; 37265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments2<const Vector<uint64_t>&, const Vector<Vector<uint64_t> >&> DecodeType; 37365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch SendInts(const Vector<uint64_t>& ints, const Vector<Vector<uint64_t> >& intVectors) 37465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments2<const Vector<uint64_t>&, const Vector<Vector<uint64_t> >&>(ints, intVectors) 37565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 37665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 37765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 37865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 37965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct CreatePlugin : CoreIPC::Arguments2<uint64_t, const WebKit::Plugin::Parameters&> { 38065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = CreatePluginID; 38165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<bool&> Reply; 38265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments2<uint64_t, const WebKit::Plugin::Parameters&> DecodeType; 38365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CreatePlugin(uint64_t pluginInstanceID, const WebKit::Plugin::Parameters& parameters) 38465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments2<uint64_t, const WebKit::Plugin::Parameters&>(pluginInstanceID, parameters) 38565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 38665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 38765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 38865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 38965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct RunJavaScriptAlert : CoreIPC::Arguments2<uint64_t, const WTF::String&> { 39065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = RunJavaScriptAlertID; 39165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments0 Reply; 39265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments2<uint64_t, const WTF::String&> DecodeType; 39365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch RunJavaScriptAlert(uint64_t frameID, const WTF::String& message) 39465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments2<uint64_t, const WTF::String&>(frameID, message) 39565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 39665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 39765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 39865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 39965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct GetPlugins : CoreIPC::Arguments1<bool> { 40065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = GetPluginsID; 40165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<Vector<WebCore::PluginInfo>&> Reply; 40265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<bool> DecodeType; 40365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch explicit GetPlugins(bool refresh) 40465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments1<bool>(refresh) 40565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 40665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 40765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 40865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 40965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct GetPluginProcessConnection : CoreIPC::Arguments1<const WTF::String&> { 41065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = GetPluginProcessConnectionID; 4112daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch struct DelayedReply : public ThreadSafeRefCounted<DelayedReply> { 4122daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch DelayedReply(PassRefPtr<CoreIPC::Connection>, PassOwnPtr<CoreIPC::ArgumentEncoder>); 4132daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ~DelayedReply(); 41465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4152daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch bool send(const CoreIPC::Connection::Handle& connectionHandle); 41665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 41765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch private: 41865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch RefPtr<CoreIPC::Connection> m_connection; 4192daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch OwnPtr<CoreIPC::ArgumentEncoder> m_arguments; 42065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch }; 42165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4222daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch typedef CoreIPC::Arguments1<CoreIPC::Connection::Handle&> Reply; 42365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<const WTF::String&> DecodeType; 42465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch explicit GetPluginProcessConnection(const WTF::String& pluginPath) 42565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments1<const WTF::String&>(pluginPath) 42665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 42765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 42865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 42965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 4302daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochstruct TestMultipleAttributes : CoreIPC::Arguments0 { 4312daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch static const Kind messageID = TestMultipleAttributesID; 4322daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch struct DelayedReply : public ThreadSafeRefCounted<DelayedReply> { 4332daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch DelayedReply(PassRefPtr<CoreIPC::Connection>, PassOwnPtr<CoreIPC::ArgumentEncoder>); 4342daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ~DelayedReply(); 4352daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 4362daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch bool send(); 4372daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 4382daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch private: 4392daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch RefPtr<CoreIPC::Connection> m_connection; 4402daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch OwnPtr<CoreIPC::ArgumentEncoder> m_arguments; 4412daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch }; 4422daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 4432daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch typedef CoreIPC::Arguments0 Reply; 4442daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch typedef CoreIPC::Arguments0 DecodeType; 4452daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch}; 4462daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 4472bde8e466a4451c7319e3a072d118917957d6554Steve Block#if PLATFORM(MAC) 44865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct DidCreateWebProcessConnection : CoreIPC::Arguments1<const CoreIPC::MachPort&> { 44965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = DidCreateWebProcessConnectionID; 45065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<const CoreIPC::MachPort&> DecodeType; 45165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch explicit DidCreateWebProcessConnection(const CoreIPC::MachPort& connectionIdentifier) 45265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments1<const CoreIPC::MachPort&>(connectionIdentifier) 45365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 45465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 45565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 4562bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 45765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 45865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC) 45965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochstruct InterpretKeyEvent : CoreIPC::Arguments1<uint32_t> { 46065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const Kind messageID = InterpretKeyEventID; 46165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<Vector<WebCore::KeypressCommand>&> Reply; 46265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch typedef CoreIPC::Arguments1<uint32_t> DecodeType; 46365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch explicit InterpretKeyEvent(uint32_t type) 46465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch : CoreIPC::Arguments1<uint32_t>(type) 46565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch { 46665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 46765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 46865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 46965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 47065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace WebPage 47165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 47265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace Messages 47365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 47465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace CoreIPC { 47565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 47665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochtemplate<> struct MessageKindTraits<Messages::WebPage::Kind> { 47765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch static const MessageClass messageClass = MessageClassWebPage; 47865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch}; 47965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 48065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace CoreIPC 48165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 48265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif // ENABLE(WEBKIT2) 48365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 48465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif // WebPageMessages_h 48565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch""" 48665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 48765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch_expected_receiver_implementation = """/* 48865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Copyright (C) 2010 Apple Inc. All rights reserved. 48965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 49065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * Redistribution and use in source and binary forms, with or without 49165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * modification, are permitted provided that the following conditions 49265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * are met: 49365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 1. Redistributions of source code must retain the above copyright 49465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * notice, this list of conditions and the following disclaimer. 49565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright 49665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * notice, this list of conditions and the following disclaimer in the 49765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * documentation and/or other materials provided with the distribution. 49865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * 49965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND 50065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 50165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 50265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR 50365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 50465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 50565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 50665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 50765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 50865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 50965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch */ 51065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5112fc2651226baac27029e38c9d6ef883fa32084dbSteve Block#include "config.h" 5122fc2651226baac27029e38c9d6ef883fa32084dbSteve Block 51365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(WEBKIT2) 51465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 51565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebPage.h" 51665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5172bde8e466a4451c7319e3a072d118917957d6554Steve Block#if PLATFORM(MAC) 51865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "ArgumentCoders.h" 5192bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 52065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "ArgumentDecoder.h" 52165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "Connection.h" 52265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "HandleMessage.h" 5232bde8e466a4451c7319e3a072d118917957d6554Steve Block#if PLATFORM(MAC) 52465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "MachPort.h" 5252bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 52665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "Plugin.h" 5272bde8e466a4451c7319e3a072d118917957d6554Steve Block#if PLATFORM(MAC) 52865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebCoreArgumentCoders.h" 5292bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 5302bde8e466a4451c7319e3a072d118917957d6554Steve Block#if ENABLE(TOUCH_EVENTS) 53165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebEvent.h" 5322bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 53365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebPageMessages.h" 53465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#include "WebPreferencesStore.h" 53565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 5362daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochnamespace Messages { 5372daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5382daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochnamespace WebPage { 5392daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5402daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochGetPluginProcessConnection::DelayedReply::DelayedReply(PassRefPtr<CoreIPC::Connection> connection, PassOwnPtr<CoreIPC::ArgumentEncoder> arguments) 5412daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch : m_connection(connection) 5422daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch , m_arguments(arguments) 5432daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 5442daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 5452daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5462daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochGetPluginProcessConnection::DelayedReply::~DelayedReply() 5472daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 5482daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ASSERT(!m_connection); 5492daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 5502daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5512daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochbool GetPluginProcessConnection::DelayedReply::send(const CoreIPC::Connection::Handle& connectionHandle) 5522daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 5532daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ASSERT(m_arguments); 5542daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch m_arguments->encode(connectionHandle); 5552daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch bool result = m_connection->sendSyncReply(m_arguments.release()); 5562daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch m_connection = nullptr; 5572daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch return result; 5582daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 5592daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5602daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochTestMultipleAttributes::DelayedReply::DelayedReply(PassRefPtr<CoreIPC::Connection> connection, PassOwnPtr<CoreIPC::ArgumentEncoder> arguments) 5612daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch : m_connection(connection) 5622daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch , m_arguments(arguments) 5632daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 5642daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 5652daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5662daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochTestMultipleAttributes::DelayedReply::~DelayedReply() 5672daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 5682daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ASSERT(!m_connection); 5692daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 5702daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5712daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdochbool TestMultipleAttributes::DelayedReply::send() 5722daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch{ 5732daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch ASSERT(m_arguments); 5742daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch bool result = m_connection->sendSyncReply(m_arguments.release()); 5752daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch m_connection = nullptr; 5762daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch return result; 5772daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} 5782daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5792daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} // namespace WebPage 5802daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 5812daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch} // namespace Messages 5822daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch 58365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochnamespace WebKit { 58465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 58565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochvoid WebPage::didReceiveWebPageMessage(CoreIPC::Connection*, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments) 58665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 58765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch switch (messageID.get<Messages::WebPage::Kind>()) { 58865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::LoadURLID: 58965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::LoadURL>(arguments, this, &WebPage::loadURL); 59065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return; 59165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if ENABLE(TOUCH_EVENTS) 59265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::TouchEventID: 59365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::TouchEvent>(arguments, this, &WebPage::touchEvent); 59465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return; 59565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 59665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::DidReceivePolicyDecisionID: 59765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::DidReceivePolicyDecision>(arguments, this, &WebPage::didReceivePolicyDecision); 59865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return; 59965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::CloseID: 60065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::Close>(arguments, this, &WebPage::close); 60165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return; 60265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::PreferencesDidChangeID: 60365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::PreferencesDidChange>(arguments, this, &WebPage::preferencesDidChange); 60465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return; 60565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::SendDoubleAndFloatID: 60665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::SendDoubleAndFloat>(arguments, this, &WebPage::sendDoubleAndFloat); 60765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return; 60865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::SendIntsID: 60965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::SendInts>(arguments, this, &WebPage::sendInts); 61065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return; 6112bde8e466a4451c7319e3a072d118917957d6554Steve Block#if PLATFORM(MAC) 61265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::DidCreateWebProcessConnectionID: 61365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::DidCreateWebProcessConnection>(arguments, this, &WebPage::didCreateWebProcessConnection); 61465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return; 6152bde8e466a4451c7319e3a072d118917957d6554Steve Block#endif 61665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch default: 61765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 61865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 61965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 62065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ASSERT_NOT_REACHED(); 62165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 62265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 6232daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben MurdochCoreIPC::SyncReplyMode WebPage::didReceiveSyncWebPageMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments, CoreIPC::ArgumentEncoder* reply) 62465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch{ 62565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch switch (messageID.get<Messages::WebPage::Kind>()) { 62665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::CreatePluginID: 62765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::CreatePlugin>(arguments, reply, this, &WebPage::createPlugin); 62865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return CoreIPC::AutomaticReply; 62965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::RunJavaScriptAlertID: 63065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::RunJavaScriptAlert>(arguments, reply, this, &WebPage::runJavaScriptAlert); 63165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return CoreIPC::AutomaticReply; 63265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::GetPluginsID: 63365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::GetPlugins>(arguments, reply, this, &WebPage::getPlugins); 63465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return CoreIPC::AutomaticReply; 63565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::GetPluginProcessConnectionID: 6362daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch CoreIPC::handleMessageDelayed<Messages::WebPage::GetPluginProcessConnection>(connection, arguments, reply, this, &WebPage::getPluginProcessConnection); 6372daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch return CoreIPC::ManualReply; 6382daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch case Messages::WebPage::TestMultipleAttributesID: 6392daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch CoreIPC::handleMessageDelayed<Messages::WebPage::TestMultipleAttributes>(connection, arguments, reply, this, &WebPage::testMultipleAttributes); 6402daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch return CoreIPC::ManualReply; 64165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#if PLATFORM(MAC) 64265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch case Messages::WebPage::InterpretKeyEventID: 64365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch CoreIPC::handleMessage<Messages::WebPage::InterpretKeyEvent>(arguments, reply, this, &WebPage::interpretKeyEvent); 64465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return CoreIPC::AutomaticReply; 64565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif 64665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch default: 64765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch break; 64865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch } 64965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 65065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch ASSERT_NOT_REACHED(); 65165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch return CoreIPC::AutomaticReply; 65265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} 65365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 65465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch} // namespace WebKit 65565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 65665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch#endif // ENABLE(WEBKIT2) 65765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch""" 65865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 65965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 66065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass GeneratedFileContentsTest(unittest.TestCase): 66165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch def assertGeneratedFileContentsEqual(self, first, second): 66265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch first_list = first.split('\n') 66365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch second_list = second.split('\n') 66465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 66565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch for index, first_line in enumerate(first_list): 66665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(first_line, second_list[index]) 66765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 66865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertEquals(len(first_list), len(second_list)) 66965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 67065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 67165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass HeaderTest(GeneratedFileContentsTest): 67265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch def test_header(self): 67365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch file_contents = messages.generate_messages_header(StringIO(_messages_file_contents)) 67465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertGeneratedFileContentsEqual(file_contents, _expected_header) 67565f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 67665f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 67765f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochclass ReceiverImplementationTest(GeneratedFileContentsTest): 67865f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch def test_receiver_implementation(self): 67965f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch file_contents = messages.generate_message_handler(StringIO(_messages_file_contents)) 68065f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch self.assertGeneratedFileContentsEqual(file_contents, _expected_receiver_implementation) 68165f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 68265f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch 68365f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdochif __name__ == '__main__': 68465f03d4f644ce73618e5f4f50dd694b26f55ae12Ben Murdoch unittest.main() 685