diff options
Diffstat (limited to 'Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp')
| -rw-r--r-- | Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp index 127715c7a..1e8310729 100644 --- a/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp +++ b/Source/WebKit2/WebProcess/InjectedBundle/InjectedBundle.cpp @@ -478,6 +478,11 @@ void InjectedBundle::didReceiveMessage(const String& messageName, APIObject* mes m_client.didReceiveMessage(this, messageName, messageBody); } +void InjectedBundle::didReceiveMessageToPage(WebPage* page, const String& messageName, APIObject* messageBody) +{ + m_client.didReceiveMessageToPage(this, page, messageName, messageBody); +} + void InjectedBundle::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::ArgumentDecoder* arguments) { switch (messageID.get<InjectedBundleMessage::Kind>()) { @@ -491,6 +496,25 @@ void InjectedBundle::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC: didReceiveMessage(messageName, messageBody.get()); return; } + + case InjectedBundleMessage::PostMessageToPage: { + uint64_t pageID = arguments->destinationID(); + if (!pageID) + return; + + WebPage* page = WebProcess::shared().webPage(pageID); + if (!page) + return; + + String messageName; + RefPtr<APIObject> messageBody; + InjectedBundleUserMessageDecoder messageDecoder(messageBody); + if (!arguments->decode(CoreIPC::Out(messageName, messageDecoder))) + return; + + didReceiveMessageToPage(page, messageName, messageBody.get()); + return; + } } ASSERT_NOT_REACHED(); |
