Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Side by Side Diff: content/browser/frame_host/render_frame_host_manager.cc

Issue 301973006: Move frame_to_announce to be assigned later in CreateRenderFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698