diff options
author | nasko@chromium.org <nasko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-11 06:18:31 +0000 |
---|---|---|
committer | nasko@chromium.org <nasko@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-11 06:18:31 +0000 |
commit | f439d425af53b4726cbeda1a401e35ef613ec9f5 (patch) | |
tree | 55111071c73a28e123686437119b22f85faa5784 /content/browser/frame_host | |
parent | d7c294245305dc329424ed50358fdcf6235e66b3 (diff) | |
download | chromium_src-f439d425af53b4726cbeda1a401e35ef613ec9f5.zip chromium_src-f439d425af53b4726cbeda1a401e35ef613ec9f5.tar.gz chromium_src-f439d425af53b4726cbeda1a401e35ef613ec9f5.tar.bz2 |
Convert RFH pointers to scoped_ptr inside RFHM.
BUG=
Review URL: https://codereview.chromium.org/191703002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@256146 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/frame_host')
-rw-r--r-- | content/browser/frame_host/render_frame_host_manager.cc | 41 | ||||
-rw-r--r-- | content/browser/frame_host/render_frame_host_manager.h | 8 |
2 files changed, 21 insertions, 28 deletions
diff --git a/content/browser/frame_host/render_frame_host_manager.cc b/content/browser/frame_host/render_frame_host_manager.cc index 3fb633f..5794781 100644 --- a/content/browser/frame_host/render_frame_host_manager.cc +++ b/content/browser/frame_host/render_frame_host_manager.cc @@ -75,8 +75,6 @@ RenderFrameHostManager::RenderFrameHostManager( render_frame_delegate_(render_frame_delegate), render_view_delegate_(render_view_delegate), render_widget_delegate_(render_widget_delegate), - render_frame_host_(NULL), - pending_render_frame_host_(NULL), interstitial_page_(NULL), cross_process_frame_connector_(NULL), weak_factory_(this) {} @@ -89,13 +87,10 @@ RenderFrameHostManager::~RenderFrameHostManager() { delete cross_process_frame_connector_; // We should always have a current RenderFrameHost except in some tests. - // TODO(creis): Now that we aren't using Shutdown, make render_frame_host_ and - // RenderFrameHostMap use scoped_ptrs. - RenderFrameHostImpl* render_frame_host = render_frame_host_; - render_frame_host_ = NULL; - if (render_frame_host) - delete render_frame_host; + render_frame_host_.reset(); + // TODO(creis): Now that we aren't using Shutdown, make RenderFrameHostMap + // use scoped_ptrs. // Delete any swapped out RenderFrameHosts. for (RenderFrameHostMap::iterator iter = swapped_out_hosts_.begin(); iter != swapped_out_hosts_.end(); @@ -114,10 +109,9 @@ void RenderFrameHostManager::Init(BrowserContext* browser_context, if (!site_instance) site_instance = SiteInstance::Create(browser_context); - // TODO(creis): Make render_frame_host_ a scoped_ptr. - render_frame_host_ = CreateRenderFrameHost(site_instance, view_routing_id, - frame_routing_id, false, - delegate_->IsHidden()); + render_frame_host_ = make_scoped_ptr( + CreateRenderFrameHost(site_instance, view_routing_id, frame_routing_id, + false, delegate_->IsHidden())); // Keep track of renderer processes as they start to shut down or are // crashed/killed. @@ -559,7 +553,7 @@ void RenderFrameHostManager::SwapOutOldPage() { // TODO(kenrb): This will change when RenderFrameProxyHost is created. if (!cross_process_frame_connector_) { cross_process_frame_connector_ = - new CrossProcessFrameConnector(render_frame_host_); + new CrossProcessFrameConnector(render_frame_host_.get()); } render_frame_host_->SwapOut(); } @@ -989,7 +983,7 @@ int RenderFrameHostManager::CreateRenderFrame( // Use this as our new pending RFH if it isn't swapped out. if (!swapped_out) - pending_render_frame_host_ = new_render_frame_host; + pending_render_frame_host_.reset(new_render_frame_host); return new_render_frame_host->render_view_host()->GetRoutingID(); } @@ -1068,9 +1062,8 @@ void RenderFrameHostManager::CommitPending() { // Swap in the pending frame and make it active. Also ensure the FrameTree // stays in sync. - RenderFrameHostImpl* old_render_frame_host = render_frame_host_; - render_frame_host_ = pending_render_frame_host_; - pending_render_frame_host_ = NULL; + RenderFrameHostImpl* old_render_frame_host = render_frame_host_.release(); + render_frame_host_ = pending_render_frame_host_.Pass(); if (is_main_frame) render_frame_host_->render_view_host()->AttachToFrameTree(); @@ -1288,10 +1281,10 @@ RenderFrameHostImpl* RenderFrameHostManager::UpdateRendererStateForNavigate( // cross-navigating (Note that we don't care about on{before}unload // handlers if the current RFH isn't live.) CommitPending(); - return render_frame_host_; + return render_frame_host_.get(); } else { NOTREACHED(); - return render_frame_host_; + return render_frame_host_.get(); } } // Otherwise, it's safe to treat this as a pending cross-site transition. @@ -1340,7 +1333,7 @@ RenderFrameHostImpl* RenderFrameHostManager::UpdateRendererStateForNavigate( if (!is_transfer) render_frame_host_->render_view_host()->FirePageBeforeUnload(true); - return pending_render_frame_host_; + return pending_render_frame_host_.get(); } // Otherwise the same SiteInstance can be used. Navigate render_frame_host_. @@ -1372,12 +1365,12 @@ RenderFrameHostImpl* RenderFrameHostManager::UpdateRendererStateForNavigate( render_frame_host_->render_view_host()->GetRoutingID())); } - return render_frame_host_; + return render_frame_host_.get(); } void RenderFrameHostManager::CancelPending() { - RenderFrameHostImpl* pending_render_frame_host = pending_render_frame_host_; - pending_render_frame_host_ = NULL; + RenderFrameHostImpl* pending_render_frame_host = + pending_render_frame_host_.release(); RenderViewDevToolsAgentHost::OnCancelPendingNavigation( pending_render_frame_host->render_view_host(), @@ -1416,7 +1409,7 @@ void RenderFrameHostManager::RenderViewDeleted(RenderViewHost* rvh) { // happened (navigating to a new page, closing a tab...) and if you can // reproduce. NOTREACHED(); - pending_render_frame_host_ = NULL; + pending_render_frame_host_.reset(); } // Make sure deleted RVHs are not kept in the swapped out list while we are diff --git a/content/browser/frame_host/render_frame_host_manager.h b/content/browser/frame_host/render_frame_host_manager.h index e324937..d518457 100644 --- a/content/browser/frame_host/render_frame_host_manager.h +++ b/content/browser/frame_host/render_frame_host_manager.h @@ -145,7 +145,7 @@ class CONTENT_EXPORT RenderFrameHostManager // check it in many cases, however. Windows can send us messages during the // destruction process after it has been shut down. RenderFrameHostImpl* current_frame_host() const { - return render_frame_host_; + return render_frame_host_.get(); } // TODO(creis): Remove this when we no longer use RVH for navigation. @@ -157,7 +157,7 @@ class CONTENT_EXPORT RenderFrameHostManager // Returns the pending RenderFrameHost, or NULL if there is no pending one. RenderFrameHostImpl* pending_frame_host() const { - return pending_render_frame_host_; + return pending_render_frame_host_.get(); } // TODO(creis): Remove this when we no longer use RVH for navigation. @@ -425,7 +425,7 @@ class CONTENT_EXPORT RenderFrameHostManager // a child RenderFrame instance. // For now, RenderFrameHost keeps a RenderViewHost in its SiteInstance alive. // Eventually, RenderViewHost will be replaced with a page context. - RenderFrameHostImpl* render_frame_host_; + scoped_ptr<RenderFrameHostImpl> render_frame_host_; scoped_ptr<WebUIImpl> web_ui_; // A RenderFrameHost used to load a cross-site page. This remains hidden @@ -438,7 +438,7 @@ class CONTENT_EXPORT RenderFrameHostManager // transitioning between two Web UI pages: the RFH won't be swapped, so the // pending pointer will be unused, but there will be a pending Web UI // associated with the navigation. - RenderFrameHostImpl* pending_render_frame_host_; + scoped_ptr<RenderFrameHostImpl> pending_render_frame_host_; // Tracks information about any current pending cross-process navigation. scoped_ptr<PendingNavigationParams> pending_nav_params_; |