void WebContext::didReceiveSyncMessage(IPC::Connection* connection, IPC::MessageDecoder& decoder, std::unique_ptr<IPC::MessageEncoder>& replyEncoder) { if (decoder.messageReceiverName() == Messages::WebContext::messageReceiverName()) { didReceiveSyncWebContextMessage(connection, decoder, replyEncoder); return; } if (decoder.messageReceiverName() == WebContextLegacyMessages::messageReceiverName() && decoder.messageName() == WebContextLegacyMessages::postSynchronousMessageMessageName()) { // FIXME: We should probably encode something in the case that the arguments do not decode correctly. WebProcessProxy* process = WebProcessProxy::fromConnection(connection); String messageName; RefPtr<API::Object> messageBody; WebContextUserMessageDecoder messageBodyDecoder(messageBody, *process); if (!decoder.decode(messageName)) return; if (!decoder.decode(messageBodyDecoder)) return; RefPtr<API::Object> returnData; didReceiveSynchronousMessageFromInjectedBundle(messageName, messageBody.get(), returnData); replyEncoder->encode(WebContextUserMessageEncoder(returnData.get(), *process)); return; } ASSERT_NOT_REACHED(); }
void WebPage::didReceiveSyncMessage(IPC::Connection* connection, IPC::MessageDecoder& decoder, std::unique_ptr<IPC::MessageEncoder>& replyEncoder) { if (decoder.messageName() == Messages::WebPage::CreatePlugin::name()) { IPC::handleMessage<Messages::WebPage::CreatePlugin>(decoder, *replyEncoder, this, &WebPage::createPlugin); return; } if (decoder.messageName() == Messages::WebPage::RunJavaScriptAlert::name()) { IPC::handleMessage<Messages::WebPage::RunJavaScriptAlert>(decoder, *replyEncoder, this, &WebPage::runJavaScriptAlert); return; } if (decoder.messageName() == Messages::WebPage::GetPlugins::name()) { IPC::handleMessage<Messages::WebPage::GetPlugins>(decoder, *replyEncoder, this, &WebPage::getPlugins); return; } if (decoder.messageName() == Messages::WebPage::GetPluginProcessConnection::name()) { IPC::handleMessageDelayed<Messages::WebPage::GetPluginProcessConnection>(connection, decoder, replyEncoder, this, &WebPage::getPluginProcessConnection); return; } if (decoder.messageName() == Messages::WebPage::TestMultipleAttributes::name()) { IPC::handleMessageDelayed<Messages::WebPage::TestMultipleAttributes>(connection, decoder, replyEncoder, this, &WebPage::testMultipleAttributes); return; } #if PLATFORM(MAC) if (decoder.messageName() == Messages::WebPage::InterpretKeyEvent::name()) { IPC::handleMessage<Messages::WebPage::InterpretKeyEvent>(decoder, *replyEncoder, this, &WebPage::interpretKeyEvent); return; } #endif UNUSED_PARAM(connection); ASSERT_NOT_REACHED(); }
void WebContext::didReceiveMessage(IPC::Connection* connection, IPC::MessageDecoder& decoder) { if (decoder.messageReceiverName() == Messages::WebContext::messageReceiverName()) { didReceiveWebContextMessage(connection, decoder); return; } if (decoder.messageReceiverName() == WebContextLegacyMessages::messageReceiverName() && decoder.messageName() == WebContextLegacyMessages::postMessageMessageName()) { String messageName; RefPtr<API::Object> messageBody; WebContextUserMessageDecoder messageBodyDecoder(messageBody, *WebProcessProxy::fromConnection(connection)); if (!decoder.decode(messageName)) return; if (!decoder.decode(messageBodyDecoder)) return; didReceiveMessageFromInjectedBundle(messageName, messageBody.get()); return; } ASSERT_NOT_REACHED(); }
void WebPage::didReceiveMessage(IPC::Connection* connection, IPC::MessageDecoder& decoder) { if (decoder.messageName() == Messages::WebPage::LoadURL::name()) { IPC::handleMessage<Messages::WebPage::LoadURL>(decoder, this, &WebPage::loadURL); return; } #if ENABLE(TOUCH_EVENTS) if (decoder.messageName() == Messages::WebPage::LoadSomething::name()) { IPC::handleMessage<Messages::WebPage::LoadSomething>(decoder, this, &WebPage::loadSomething); return; } #endif #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION || SOME_OTHER_MESSAGE_CONDITION)) if (decoder.messageName() == Messages::WebPage::TouchEvent::name()) { IPC::handleMessage<Messages::WebPage::TouchEvent>(decoder, this, &WebPage::touchEvent); return; } #endif #if (ENABLE(TOUCH_EVENTS) && (NESTED_MESSAGE_CONDITION && SOME_OTHER_MESSAGE_CONDITION)) if (decoder.messageName() == Messages::WebPage::AddEvent::name()) { IPC::handleMessage<Messages::WebPage::AddEvent>(decoder, this, &WebPage::addEvent); return; } #endif #if ENABLE(TOUCH_EVENTS) if (decoder.messageName() == Messages::WebPage::LoadSomethingElse::name()) { IPC::handleMessage<Messages::WebPage::LoadSomethingElse>(decoder, this, &WebPage::loadSomethingElse); return; } #endif if (decoder.messageName() == Messages::WebPage::DidReceivePolicyDecision::name()) { IPC::handleMessage<Messages::WebPage::DidReceivePolicyDecision>(decoder, this, &WebPage::didReceivePolicyDecision); return; } if (decoder.messageName() == Messages::WebPage::Close::name()) { IPC::handleMessage<Messages::WebPage::Close>(decoder, this, &WebPage::close); return; } if (decoder.messageName() == Messages::WebPage::PreferencesDidChange::name()) { IPC::handleMessage<Messages::WebPage::PreferencesDidChange>(decoder, this, &WebPage::preferencesDidChange); return; } if (decoder.messageName() == Messages::WebPage::SendDoubleAndFloat::name()) { IPC::handleMessage<Messages::WebPage::SendDoubleAndFloat>(decoder, this, &WebPage::sendDoubleAndFloat); return; } if (decoder.messageName() == Messages::WebPage::SendInts::name()) { IPC::handleMessage<Messages::WebPage::SendInts>(decoder, this, &WebPage::sendInts); return; } if (decoder.messageName() == Messages::WebPage::TestParameterAttributes::name()) { IPC::handleMessage<Messages::WebPage::TestParameterAttributes>(decoder, this, &WebPage::testParameterAttributes); return; } if (decoder.messageName() == Messages::WebPage::TemplateTest::name()) { IPC::handleMessage<Messages::WebPage::TemplateTest>(decoder, this, &WebPage::templateTest); return; } #if PLATFORM(MAC) if (decoder.messageName() == Messages::WebPage::DidCreateWebProcessConnection::name()) { IPC::handleMessage<Messages::WebPage::DidCreateWebProcessConnection>(decoder, this, &WebPage::didCreateWebProcessConnection); return; } #endif #if ENABLE(DEPRECATED_FEATURE) if (decoder.messageName() == Messages::WebPage::DeprecatedOperation::name()) { IPC::handleMessage<Messages::WebPage::DeprecatedOperation>(decoder, this, &WebPage::deprecatedOperation); return; } #endif #if ENABLE(EXPERIMENTAL_FEATURE) if (decoder.messageName() == Messages::WebPage::ExperimentalOperation::name()) { IPC::handleMessage<Messages::WebPage::ExperimentalOperation>(decoder, this, &WebPage::experimentalOperation); return; } #endif UNUSED_PARAM(connection); ASSERT_NOT_REACHED(); }
void WebProcess::didReceiveMessage(IPC::Connection& connection, IPC::MessageDecoder& decoder) { if (messageReceiverMap().dispatchMessage(connection, decoder)) return; if (decoder.messageReceiverName() == Messages::WebProcess::messageReceiverName()) { didReceiveWebProcessMessage(connection, decoder); return; } if (decoder.messageReceiverName() == Messages::WebPageGroupProxy::messageReceiverName()) { uint64_t pageGroupID = decoder.destinationID(); if (!pageGroupID) return; WebPageGroupProxy* pageGroupProxy = webPageGroup(pageGroupID); if (!pageGroupProxy) return; pageGroupProxy->didReceiveMessage(connection, decoder); return; } if (decoder.messageReceiverName() == Messages::ChildProcess::messageReceiverName()) { ChildProcess::didReceiveMessage(connection, decoder); return; } LOG_ERROR("Unhandled web process message '%s:%s'", decoder.messageReceiverName().toString().data(), decoder.messageName().toString().data()); }