| 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 60be8217a562339ebdfb4827bf32c39beb0d5d00..74a7ffb6c52657ebd2e6c7e727a95f2436e89975 100644
|
| --- a/content/browser/frame_host/render_frame_host_manager.cc
|
| +++ b/content/browser/frame_host/render_frame_host_manager.cc
|
| @@ -972,6 +972,36 @@ 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. This is only currently needed for the allowFullscreen property,
|
| + // since that can be queried on RemoteFrame ancestors.
|
| + //
|
| + // 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) {
|
|
|