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 2b8794e052f62f6ae570f704ad6d84722e3bf149..dfa3882cf858cb8f2e655980fcb19056fb4f297e 100644 |
| --- a/content/browser/frame_host/render_frame_host_manager.cc |
| +++ b/content/browser/frame_host/render_frame_host_manager.cc |
| @@ -946,6 +946,35 @@ void RenderFrameHostManager::OnEnforceStrictMixedContentChecking( |
| } |
| } |
| +void RenderFrameHostManager::OnDidUpdateFrameOwnerProperties( |
| + const blink::WebFrameOwnerProperties& properties) { |
| + if (!SiteIsolationPolicy::AreCrossProcessFramesPossible()) |
| + return; |
| + |
| + // WebFrameOwnerProperties exist only for frames that have a parent. |
| + CHECK(frame_tree_node_->parent()); |
| + SiteInstance* parent_instance = |
| + frame_tree_node_->parent()->current_frame_host()->GetSiteInstance(); |
| + |
| + // Notify the RenderFrame if it lives in a different process from its parent. |
| + if (render_frame_host_->GetSiteInstance() != parent_instance) { |
| + render_frame_host_->Send(new FrameMsg_SetFrameOwnerProperties( |
| + render_frame_host_->GetRoutingID(), properties)); |
| + } |
| + |
| + // Notify this frame's proxies if they live in a different process from its |
| + // parent. |
|
Charlie Reis
2016/05/13 21:18:42
Maybe it's worth mentioning that this is only curr
alexmos
2016/05/14 01:12:37
Done.
|
| + // |
| + // TODO(alexmos): It would be sufficient to only send this update to proxies |
| + // in the current FrameTree. |
| + for (const auto& pair : proxy_hosts_) { |
| + if (pair.second->GetSiteInstance() != parent_instance) { |
| + pair.second->Send(new FrameMsg_SetFrameOwnerProperties( |
| + pair.second->GetRoutingID(), properties)); |
| + } |
| + } |
| +} |
| + |
| void RenderFrameHostManager::OnDidUpdateOrigin( |
| const url::Origin& origin, |
| bool is_potentially_trustworthy_unique_origin) { |