OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/frame_host/render_frame_host_manager.h" | 5 #include "content/browser/frame_host/render_frame_host_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <utility> | 10 #include <utility> |
(...skipping 954 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
965 bool should_enforce) { | 965 bool should_enforce) { |
966 if (!SiteIsolationPolicy::AreCrossProcessFramesPossible()) | 966 if (!SiteIsolationPolicy::AreCrossProcessFramesPossible()) |
967 return; | 967 return; |
968 | 968 |
969 for (const auto& pair : proxy_hosts_) { | 969 for (const auto& pair : proxy_hosts_) { |
970 pair.second->Send(new FrameMsg_EnforceStrictMixedContentChecking( | 970 pair.second->Send(new FrameMsg_EnforceStrictMixedContentChecking( |
971 pair.second->GetRoutingID(), should_enforce)); | 971 pair.second->GetRoutingID(), should_enforce)); |
972 } | 972 } |
973 } | 973 } |
974 | 974 |
| 975 void RenderFrameHostManager::OnDidUpdateFrameOwnerProperties( |
| 976 const blink::WebFrameOwnerProperties& properties) { |
| 977 if (!SiteIsolationPolicy::AreCrossProcessFramesPossible()) |
| 978 return; |
| 979 |
| 980 // WebFrameOwnerProperties exist only for frames that have a parent. |
| 981 CHECK(frame_tree_node_->parent()); |
| 982 SiteInstance* parent_instance = |
| 983 frame_tree_node_->parent()->current_frame_host()->GetSiteInstance(); |
| 984 |
| 985 // Notify the RenderFrame if it lives in a different process from its parent. |
| 986 if (render_frame_host_->GetSiteInstance() != parent_instance) { |
| 987 render_frame_host_->Send(new FrameMsg_SetFrameOwnerProperties( |
| 988 render_frame_host_->GetRoutingID(), properties)); |
| 989 } |
| 990 |
| 991 // Notify this frame's proxies if they live in a different process from its |
| 992 // parent. This is only currently needed for the allowFullscreen property, |
| 993 // since that can be queried on RemoteFrame ancestors. |
| 994 // |
| 995 // TODO(alexmos): It would be sufficient to only send this update to proxies |
| 996 // in the current FrameTree. |
| 997 for (const auto& pair : proxy_hosts_) { |
| 998 if (pair.second->GetSiteInstance() != parent_instance) { |
| 999 pair.second->Send(new FrameMsg_SetFrameOwnerProperties( |
| 1000 pair.second->GetRoutingID(), properties)); |
| 1001 } |
| 1002 } |
| 1003 } |
| 1004 |
975 void RenderFrameHostManager::OnDidUpdateOrigin( | 1005 void RenderFrameHostManager::OnDidUpdateOrigin( |
976 const url::Origin& origin, | 1006 const url::Origin& origin, |
977 bool is_potentially_trustworthy_unique_origin) { | 1007 bool is_potentially_trustworthy_unique_origin) { |
978 for (const auto& pair : proxy_hosts_) { | 1008 for (const auto& pair : proxy_hosts_) { |
979 pair.second->Send( | 1009 pair.second->Send( |
980 new FrameMsg_DidUpdateOrigin(pair.second->GetRoutingID(), origin, | 1010 new FrameMsg_DidUpdateOrigin(pair.second->GetRoutingID(), origin, |
981 is_potentially_trustworthy_unique_origin)); | 1011 is_potentially_trustworthy_unique_origin)); |
982 } | 1012 } |
983 } | 1013 } |
984 | 1014 |
(...skipping 1582 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2567 resolved_url)) { | 2597 resolved_url)) { |
2568 DCHECK(!dest_instance || | 2598 DCHECK(!dest_instance || |
2569 dest_instance == render_frame_host_->GetSiteInstance()); | 2599 dest_instance == render_frame_host_->GetSiteInstance()); |
2570 return false; | 2600 return false; |
2571 } | 2601 } |
2572 | 2602 |
2573 return true; | 2603 return true; |
2574 } | 2604 } |
2575 | 2605 |
2576 } // namespace content | 2606 } // namespace content |
OLD | NEW |