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 <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 945 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
956 cross_process_frame_connector_ = NULL; | 956 cross_process_frame_connector_ = NULL; |
957 } | 957 } |
958 } | 958 } |
959 } else { | 959 } else { |
960 // Create a new RenderFrameHost if we don't find an existing one. | 960 // Create a new RenderFrameHost if we don't find an existing one. |
961 new_render_frame_host = CreateRenderFrameHost( | 961 new_render_frame_host = CreateRenderFrameHost( |
962 instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE, swapped_out, hidden); | 962 instance, MSG_ROUTING_NONE, MSG_ROUTING_NONE, swapped_out, hidden); |
963 RenderViewHostImpl* render_view_host = | 963 RenderViewHostImpl* render_view_host = |
964 new_render_frame_host->render_view_host(); | 964 new_render_frame_host->render_view_host(); |
965 int proxy_routing_id = MSG_ROUTING_NONE; | 965 int proxy_routing_id = MSG_ROUTING_NONE; |
966 frame_to_announce = new_render_frame_host.get(); | |
967 | 966 |
968 // Prevent the process from exiting while we're trying to navigate in it. | 967 // Prevent the process from exiting while we're trying to navigate in it. |
969 // Otherwise, if the new RFH is swapped out already, store it. | 968 // Otherwise, if the new RFH is swapped out already, store it. |
970 if (!swapped_out) { | 969 if (!swapped_out) { |
971 new_render_frame_host->GetProcess()->AddPendingView(); | 970 new_render_frame_host->GetProcess()->AddPendingView(); |
972 } else { | 971 } else { |
973 proxy = new RenderFrameProxyHost( | 972 proxy = new RenderFrameProxyHost( |
974 new_render_frame_host->GetSiteInstance(), frame_tree_node_); | 973 new_render_frame_host->GetSiteInstance(), frame_tree_node_); |
975 proxy_hosts_[instance->GetId()] = proxy; | 974 proxy_hosts_[instance->GetId()] = proxy; |
976 proxy->TakeFrameHostOwnership(new_render_frame_host.Pass()); | 975 proxy->TakeFrameHostOwnership(new_render_frame_host.Pass()); |
977 proxy_routing_id = proxy->GetRoutingID(); | 976 proxy_routing_id = proxy->GetRoutingID(); |
978 } | 977 } |
979 | 978 |
980 bool success = InitRenderView( | 979 bool success = InitRenderView( |
981 render_view_host, opener_route_id, proxy_routing_id, | 980 render_view_host, opener_route_id, proxy_routing_id, |
982 frame_tree_node_->IsMainFrame()); | 981 frame_tree_node_->IsMainFrame()); |
983 if (success && frame_tree_node_->IsMainFrame()) { | 982 if (success && frame_tree_node_->IsMainFrame()) { |
984 // Don't show the main frame's view until we get a DidNavigate from it. | 983 // Don't show the main frame's view until we get a DidNavigate from it. |
985 render_view_host->GetView()->Hide(); | 984 render_view_host->GetView()->Hide(); |
986 } else if (!swapped_out && pending_render_frame_host_) { | 985 } else if (!swapped_out && pending_render_frame_host_) { |
987 CancelPending(); | 986 CancelPending(); |
988 } | 987 } |
989 routing_id = render_view_host->GetRoutingID(); | 988 routing_id = render_view_host->GetRoutingID(); |
| 989 frame_to_announce = new_render_frame_host.get(); |
990 } | 990 } |
991 | 991 |
992 // Use this as our new pending RFH if it isn't swapped out. | 992 // Use this as our new pending RFH if it isn't swapped out. |
993 if (!swapped_out) | 993 if (!swapped_out) |
994 pending_render_frame_host_ = new_render_frame_host.Pass(); | 994 pending_render_frame_host_ = new_render_frame_host.Pass(); |
995 | 995 |
996 // If a brand new RFH was created, announce it to observers. | 996 // If a brand new RFH was created, announce it to observers. |
997 if (frame_to_announce) | 997 if (frame_to_announce) |
998 render_frame_delegate_->RenderFrameCreated(frame_to_announce); | 998 render_frame_delegate_->RenderFrameCreated(frame_to_announce); |
999 | 999 |
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1480 SiteInstance* instance) const { | 1480 SiteInstance* instance) const { |
1481 RenderFrameProxyHostMap::const_iterator iter = | 1481 RenderFrameProxyHostMap::const_iterator iter = |
1482 proxy_hosts_.find(instance->GetId()); | 1482 proxy_hosts_.find(instance->GetId()); |
1483 if (iter != proxy_hosts_.end()) | 1483 if (iter != proxy_hosts_.end()) |
1484 return iter->second; | 1484 return iter->second; |
1485 | 1485 |
1486 return NULL; | 1486 return NULL; |
1487 } | 1487 } |
1488 | 1488 |
1489 } // namespace content | 1489 } // namespace content |
OLD | NEW |