| 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 transfer_url_chain(transfer_url_chain), | 50 transfer_url_chain(transfer_url_chain), |
| 51 referrer(referrer), | 51 referrer(referrer), |
| 52 page_transition(page_transition), | 52 page_transition(page_transition), |
| 53 frame_id(frame_id), | 53 frame_id(frame_id), |
| 54 should_replace_current_entry(should_replace_current_entry) { | 54 should_replace_current_entry(should_replace_current_entry) { |
| 55 } | 55 } |
| 56 | 56 |
| 57 RenderFrameHostManager::PendingNavigationParams::~PendingNavigationParams() {} | 57 RenderFrameHostManager::PendingNavigationParams::~PendingNavigationParams() {} |
| 58 | 58 |
| 59 RenderFrameHostManager::RenderFrameHostManager( | 59 RenderFrameHostManager::RenderFrameHostManager( |
| 60 RenderFrameHostDelegate* render_frame_delegate, |
| 60 RenderViewHostDelegate* render_view_delegate, | 61 RenderViewHostDelegate* render_view_delegate, |
| 61 RenderWidgetHostDelegate* render_widget_delegate, | 62 RenderWidgetHostDelegate* render_widget_delegate, |
| 62 Delegate* delegate) | 63 Delegate* delegate) |
| 63 : delegate_(delegate), | 64 : delegate_(delegate), |
| 64 cross_navigation_pending_(false), | 65 cross_navigation_pending_(false), |
| 66 render_frame_delegate_(render_frame_delegate), |
| 65 render_view_delegate_(render_view_delegate), | 67 render_view_delegate_(render_view_delegate), |
| 66 render_widget_delegate_(render_widget_delegate), | 68 render_widget_delegate_(render_widget_delegate), |
| 67 render_view_host_(NULL), | 69 render_view_host_(NULL), |
| 68 pending_render_view_host_(NULL), | 70 pending_render_view_host_(NULL), |
| 69 interstitial_page_(NULL) { | 71 interstitial_page_(NULL) { |
| 70 } | 72 } |
| 71 | 73 |
| 72 RenderFrameHostManager::~RenderFrameHostManager() { | 74 RenderFrameHostManager::~RenderFrameHostManager() { |
| 73 if (pending_render_view_host_) | 75 if (pending_render_view_host_) |
| 74 CancelPending(); | 76 CancelPending(); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 91 SiteInstance* site_instance, | 93 SiteInstance* site_instance, |
| 92 int routing_id, | 94 int routing_id, |
| 93 int main_frame_routing_id) { | 95 int main_frame_routing_id) { |
| 94 // Create a RenderViewHost, once we have an instance. It is important to | 96 // Create a RenderViewHost, once we have an instance. It is important to |
| 95 // immediately give this SiteInstance to a RenderViewHost so that it is | 97 // immediately give this SiteInstance to a RenderViewHost so that it is |
| 96 // ref counted. | 98 // ref counted. |
| 97 if (!site_instance) | 99 if (!site_instance) |
| 98 site_instance = SiteInstance::Create(browser_context); | 100 site_instance = SiteInstance::Create(browser_context); |
| 99 render_view_host_ = static_cast<RenderViewHostImpl*>( | 101 render_view_host_ = static_cast<RenderViewHostImpl*>( |
| 100 RenderViewHostFactory::Create( | 102 RenderViewHostFactory::Create( |
| 101 site_instance, render_view_delegate_, render_widget_delegate_, | 103 site_instance, render_view_delegate_, render_frame_delegate_, |
| 102 routing_id, main_frame_routing_id, false, | 104 render_widget_delegate_, routing_id, main_frame_routing_id, false, |
| 103 delegate_->IsHidden())); | 105 delegate_->IsHidden())); |
| 104 render_view_host_->AttachToFrameTree(); | 106 render_view_host_->AttachToFrameTree(); |
| 105 | 107 |
| 106 // Keep track of renderer processes as they start to shut down or are | 108 // Keep track of renderer processes as they start to shut down or are |
| 107 // crashed/killed. | 109 // crashed/killed. |
| 108 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSED, | 110 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSED, |
| 109 NotificationService::AllSources()); | 111 NotificationService::AllSources()); |
| 110 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSING, | 112 registrar_.Add(this, NOTIFICATION_RENDERER_PROCESS_CLOSING, |
| 111 NotificationService::AllSources()); | 113 NotificationService::AllSources()); |
| 112 } | 114 } |
| (...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 738 GetSwappedOutRenderViewHost(instance)); | 740 GetSwappedOutRenderViewHost(instance)); |
| 739 if (new_render_view_host) { | 741 if (new_render_view_host) { |
| 740 // Prevent the process from exiting while we're trying to use it. | 742 // Prevent the process from exiting while we're trying to use it. |
| 741 if (!swapped_out) | 743 if (!swapped_out) |
| 742 new_render_view_host->GetProcess()->AddPendingView(); | 744 new_render_view_host->GetProcess()->AddPendingView(); |
| 743 } else { | 745 } else { |
| 744 // Create a new RenderViewHost if we don't find an existing one. | 746 // Create a new RenderViewHost if we don't find an existing one. |
| 745 new_render_view_host = static_cast<RenderViewHostImpl*>( | 747 new_render_view_host = static_cast<RenderViewHostImpl*>( |
| 746 RenderViewHostFactory::Create(instance, | 748 RenderViewHostFactory::Create(instance, |
| 747 render_view_delegate_, | 749 render_view_delegate_, |
| 750 render_frame_delegate_, |
| 748 render_widget_delegate_, | 751 render_widget_delegate_, |
| 749 MSG_ROUTING_NONE, | 752 MSG_ROUTING_NONE, |
| 750 MSG_ROUTING_NONE, | 753 MSG_ROUTING_NONE, |
| 751 swapped_out, | 754 swapped_out, |
| 752 hidden)); | 755 hidden)); |
| 753 | 756 |
| 754 // If the new RVH is swapped out already, store it. Otherwise prevent the | 757 // If the new RVH is swapped out already, store it. Otherwise prevent the |
| 755 // process from exiting while we're trying to navigate in it. | 758 // process from exiting while we're trying to navigate in it. |
| 756 if (swapped_out) { | 759 if (swapped_out) { |
| 757 swapped_out_hosts_[instance->GetId()] = new_render_view_host; | 760 swapped_out_hosts_[instance->GetId()] = new_render_view_host; |
| (...skipping 385 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1143 RenderViewHostImpl* RenderFrameHostManager::GetSwappedOutRenderViewHost( | 1146 RenderViewHostImpl* RenderFrameHostManager::GetSwappedOutRenderViewHost( |
| 1144 SiteInstance* instance) { | 1147 SiteInstance* instance) { |
| 1145 RenderViewHostMap::iterator iter = swapped_out_hosts_.find(instance->GetId()); | 1148 RenderViewHostMap::iterator iter = swapped_out_hosts_.find(instance->GetId()); |
| 1146 if (iter != swapped_out_hosts_.end()) | 1149 if (iter != swapped_out_hosts_.end()) |
| 1147 return iter->second; | 1150 return iter->second; |
| 1148 | 1151 |
| 1149 return NULL; | 1152 return NULL; |
| 1150 } | 1153 } |
| 1151 | 1154 |
| 1152 } // namespace content | 1155 } // namespace content |
| OLD | NEW |