summaryrefslogtreecommitdiffstats
path: root/chrome/browser/prerender/prerender_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/prerender/prerender_manager.cc')
-rw-r--r--chrome/browser/prerender/prerender_manager.cc19
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 =