void WebUserContentControllerProxy::didPostMessage(IPC::Connection& connection, uint64_t pageID, uint64_t frameID, const WebCore::SecurityOriginData& securityOrigin, uint64_t messageHandlerID, const IPC::DataReference& dataReference) { WebPageProxy* page = WebProcessProxy::webPage(pageID); if (!page) return; WebProcessProxy* webProcess = WebProcessProxy::fromConnection(&connection); WebFrameProxy* frame = webProcess->webFrame(frameID); if (!frame) return; if (!HashMap<uint64_t, RefPtr<WebScriptMessageHandler>>::isValidKey(messageHandlerID)) return; RefPtr<WebScriptMessageHandler> handler = m_scriptMessageHandlers.get(messageHandlerID); if (!handler) return; auto buffer = dataReference.vector(); RefPtr<WebCore::SerializedScriptValue> value = WebCore::SerializedScriptValue::adopt(buffer); handler->client().didPostMessage(*page, *frame, securityOrigin, *value); }