Chromium Code Reviews| 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..ca7b824be9310e40e9f5b2b512032345e70bdc0d 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 frames as well. |
|
nasko
2016/05/06 15:35:27
nit: s/frames/frame/ as it can't send to more than
|
| + 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(), |