diff options
Diffstat (limited to 'chrome/browser/prerender/prerender_manager.cc')
-rw-r--r-- | chrome/browser/prerender/prerender_manager.cc | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc index ba2795e..7cf72fc 100644 --- a/chrome/browser/prerender/prerender_manager.cc +++ b/chrome/browser/prerender/prerender_manager.cc @@ -21,6 +21,7 @@ #include "chrome/browser/prerender/prerender_histograms.h" #include "chrome/browser/prerender/prerender_history.h" #include "chrome/browser/prerender/prerender_tab_helper.h" +#include "chrome/browser/prerender/prerender_manager_factory.h" #include "chrome/browser/prerender/prerender_tracker.h" #include "chrome/browser/prerender/prerender_util.h" #include "chrome/browser/profiles/profile.h" @@ -249,8 +250,10 @@ PrerenderManager::PrerenderManager(Profile* profile, } PrerenderManager::~PrerenderManager() { - DestroyAllContents(FINAL_STATUS_MANAGER_SHUTDOWN); - STLDeleteElements(&prerender_conditions_); +} + +void PrerenderManager::Shutdown() { + DoShutdown(); } void PrerenderManager::SetPrerenderContentsFactory( @@ -677,9 +680,9 @@ void PrerenderManager::RecordPerceivedPageLoadTime( TabContents* tab_contents, const GURL& url) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); - Profile* profile = - Profile::FromBrowserContext(tab_contents->browser_context()); - PrerenderManager* prerender_manager = profile->GetPrerenderManager(); + PrerenderManager* prerender_manager = + PrerenderManagerFactory::GetForProfile( + Profile::FromBrowserContext(tab_contents->browser_context())); if (!prerender_manager) return; if (!prerender_manager->is_enabled()) @@ -729,6 +732,12 @@ PrerenderContents* PrerenderManager::FindEntry(const GURL& url) { return NULL; } +void PrerenderManager::DoShutdown() { + DestroyAllContents(FINAL_STATUS_MANAGER_SHUTDOWN); + STLDeleteElements(&prerender_conditions_); + profile_ = NULL; +} + bool PrerenderManager::DoesRateLimitAllowPrerender() const { DCHECK(CalledOnValidThread()); base::TimeDelta elapsed_time = |