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 930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
941 bool should_enforce) { | 941 bool should_enforce) { |
942 if (!SiteIsolationPolicy::AreCrossProcessFramesPossible()) | 942 if (!SiteIsolationPolicy::AreCrossProcessFramesPossible()) |
943 return; | 943 return; |
944 | 944 |
945 for (const auto& pair : proxy_hosts_) { | 945 for (const auto& pair : proxy_hosts_) { |
946 pair.second->Send(new FrameMsg_EnforceStrictMixedContentChecking( | 946 pair.second->Send(new FrameMsg_EnforceStrictMixedContentChecking( |
947 pair.second->GetRoutingID(), should_enforce)); | 947 pair.second->GetRoutingID(), should_enforce)); |
948 } | 948 } |
949 } | 949 } |
950 | 950 |
| 951 void RenderFrameHostManager::OnDidUpdateFrameOwnerProperties( |
| 952 const blink::WebFrameOwnerProperties& properties) { |
| 953 if (!SiteIsolationPolicy::AreCrossProcessFramesPossible()) |
| 954 return; |
| 955 |
| 956 // WebFrameOwnerProperties exist only for frames that have a parent. |
| 957 CHECK(frame_tree_node_->parent()); |
| 958 SiteInstance* parent_instance = |
| 959 frame_tree_node_->parent()->current_frame_host()->GetSiteInstance(); |
| 960 |
| 961 // Notify the RenderFrame if it lives in a different process from its parent. |
| 962 if (render_frame_host_->GetSiteInstance() != parent_instance) { |
| 963 render_frame_host_->Send(new FrameMsg_SetFrameOwnerProperties( |
| 964 render_frame_host_->GetRoutingID(), properties)); |
| 965 } |
| 966 |
| 967 // Notify this frame's proxies if they live in a different process from its |
| 968 // parent. |
| 969 // |
| 970 // TODO(alexmos): It would be sufficient to only send this update to proxies |
| 971 // in the current FrameTree. |
| 972 for (const auto& pair : proxy_hosts_) { |
| 973 if (pair.second->GetSiteInstance() != parent_instance) { |
| 974 pair.second->Send(new FrameMsg_SetFrameOwnerProperties( |
| 975 pair.second->GetRoutingID(), properties)); |
| 976 } |
| 977 } |
| 978 } |
| 979 |
951 void RenderFrameHostManager::OnDidUpdateOrigin( | 980 void RenderFrameHostManager::OnDidUpdateOrigin( |
952 const url::Origin& origin, | 981 const url::Origin& origin, |
953 bool is_potentially_trustworthy_unique_origin) { | 982 bool is_potentially_trustworthy_unique_origin) { |
954 for (const auto& pair : proxy_hosts_) { | 983 for (const auto& pair : proxy_hosts_) { |
955 pair.second->Send( | 984 pair.second->Send( |
956 new FrameMsg_DidUpdateOrigin(pair.second->GetRoutingID(), origin, | 985 new FrameMsg_DidUpdateOrigin(pair.second->GetRoutingID(), origin, |
957 is_potentially_trustworthy_unique_origin)); | 986 is_potentially_trustworthy_unique_origin)); |
958 } | 987 } |
959 } | 988 } |
960 | 989 |
(...skipping 1586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2547 resolved_url)) { | 2576 resolved_url)) { |
2548 DCHECK(!dest_instance || | 2577 DCHECK(!dest_instance || |
2549 dest_instance == render_frame_host_->GetSiteInstance()); | 2578 dest_instance == render_frame_host_->GetSiteInstance()); |
2550 return false; | 2579 return false; |
2551 } | 2580 } |
2552 | 2581 |
2553 return true; | 2582 return true; |
2554 } | 2583 } |
2555 | 2584 |
2556 } // namespace content | 2585 } // namespace content |
OLD | NEW |