| Index: content/browser/frame_host/render_frame_host_impl.cc
|
| diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
|
| index e6cc05197d3a25613468d2938787f3f54da90757..d6659ad5c453d9fadf3300306464fd561c82e8a3 100644
|
| --- a/content/browser/frame_host/render_frame_host_impl.cc
|
| +++ b/content/browser/frame_host/render_frame_host_impl.cc
|
| @@ -373,6 +373,7 @@ bool RenderFrameHostImpl::OnMessageReceived(const IPC::Message &msg) {
|
| IPC_MESSAGE_HANDLER(FrameHostMsg_UpdateEncoding, OnUpdateEncoding)
|
| IPC_MESSAGE_HANDLER(FrameHostMsg_BeginNavigation,
|
| OnBeginNavigation)
|
| + IPC_MESSAGE_HANDLER(FrameHostMsg_DispatchLoad, OnDispatchLoad)
|
| IPC_MESSAGE_HANDLER(FrameHostMsg_TextSurroundingSelectionResponse,
|
| OnTextSurroundingSelectionResponse)
|
| IPC_MESSAGE_HANDLER(AccessibilityHostMsg_Events, OnAccessibilityEvents)
|
| @@ -1215,6 +1216,23 @@ void RenderFrameHostImpl::OnBeginNavigation(
|
| frame_tree_node(), common_params, begin_params, body);
|
| }
|
|
|
| +void RenderFrameHostImpl::OnDispatchLoad() {
|
| + CHECK(base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| + switches::kSitePerProcess));
|
| + // Only frames with an out-of-process parent frame should be sending this
|
| + // message.
|
| + FrameTreeNode* parent = frame_tree_node()->parent();
|
| + if (!parent ||
|
| + parent->current_frame_host()->GetSiteInstance() == GetSiteInstance()) {
|
| + GetProcess()->ReceivedBadMessage();
|
| + return;
|
| + }
|
| +
|
| + RenderFrameHostImpl* parent_rfh = parent->current_frame_host();
|
| + parent_rfh->Send(
|
| + new FrameMsg_DispatchLoad(parent_rfh->GetRoutingID(), routing_id_));
|
| +}
|
| +
|
| void RenderFrameHostImpl::OnAccessibilityEvents(
|
| const std::vector<AccessibilityHostMsg_EventParams>& params,
|
| int reset_token) {
|
|
|