| Index: content/browser/frame_host/render_frame_host_manager.cc
|
| diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc
|
| index 58c17d54c34798e0e070878e4e572a594f41a3a3..4bad0637251136b0ac365578dee2fa2a11daab92 100644
|
| --- a/content/browser/frame_host/render_frame_host_manager.cc
|
| +++ b/content/browser/frame_host/render_frame_host_manager.cc
|
| @@ -2503,8 +2503,14 @@ void RenderFrameHostManager::SendPageMessage(IPC::Message* msg) {
|
| sender->Send(copy);
|
| };
|
|
|
| - for (const auto& pair : proxy_hosts_)
|
| - send_msg(pair.second.get(), pair.second->GetRoutingID(), msg);
|
| + // When sending a PageMessage for an inner WebContents, we don't want to also
|
| + // send it to the outer WebContent's frame as well.
|
| + RenderFrameProxyHost* outer_delegate_proxy =
|
| + ForInnerDelegate() ? GetProxyToOuterDelegate() : nullptr;
|
| + for (const auto& pair : proxy_hosts_) {
|
| + if (outer_delegate_proxy != pair.second.get())
|
| + send_msg(pair.second.get(), pair.second->GetRoutingID(), msg);
|
| + }
|
|
|
| if (speculative_render_frame_host_) {
|
| send_msg(speculative_render_frame_host_.get(),
|
|
|