summaryrefslogtreecommitdiffstats
path: root/chrome/browser/prerender/prerender_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/prerender/prerender_manager.h')
-rw-r--r--chrome/browser/prerender/prerender_manager.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h
index 4d12020..dd238c2 100644
--- a/chrome/browser/prerender/prerender_manager.h
+++ b/chrome/browser/prerender/prerender_manager.h
@@ -21,6 +21,7 @@
#include "chrome/browser/prerender/prerender_contents.h"
#include "chrome/browser/prerender/prerender_final_status.h"
#include "chrome/browser/prerender/prerender_origin.h"
+#include "chrome/browser/profiles/profile_keyed_service.h"
#include "googleurl/src/gurl.h"
class Profile;
@@ -54,7 +55,8 @@ class PrerenderTracker;
// views of webpages. All methods must be called on the UI thread unless
// indicated otherwise.
class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
- public base::NonThreadSafe {
+ public base::NonThreadSafe,
+ public ProfileKeyedService {
public:
// PrerenderManagerMode is used in a UMA_HISTOGRAM, so please do not
// add in the middle.
@@ -82,6 +84,9 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
virtual ~PrerenderManager();
+ // ProfileKeyedService implementation.
+ virtual void Shutdown() OVERRIDE;
+
// Entry points for adding prerenders.
// Adds a prerender for |url| if valid. |process_id| and |route_id| identify
@@ -219,6 +224,11 @@ class PrerenderManager : public base::SupportsWeakPtr<PrerenderManager>,
void SetPrerenderContentsFactory(
PrerenderContents::Factory* prerender_contents_factory);
+ // Utility method that is called from the virtual Shutdown method on this
+ // class but is called directly from the TestPrerenderManager in the unit
+ // tests.
+ void DoShutdown();
+
private:
// Needs access to AddPrerender.
friend class PrerenderContents;