| 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 |