Index: chrome/browser/prerender/prerender_manager.h |
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h |
index fa53ae79abb3395633baf76926cf30513bda4845..a932ecfbbc2a7b99df739fa1cfe22cd2b327410b 100644 |
--- a/chrome/browser/prerender/prerender_manager.h |
+++ b/chrome/browser/prerender/prerender_manager.h |
@@ -102,6 +102,7 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
void SetPrerenderContentsFactory( |
PrerenderContents::Factory* prerender_contents_factory); |
+ bool rate_limit_enabled_; |
private: |
// Test that needs needs access to internal functions. |
@@ -136,6 +137,8 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
static void RecordPrefetchTagObservedOnUIThread(); |
+ bool DoesRateLimitAllowPrerender() const; |
+ |
Profile* profile_; |
base::TimeDelta max_prerender_age_; |
@@ -160,6 +163,9 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
// Time interval at which periodic cleanups are performed. |
static const int kPeriodicCleanupIntervalMs = 1000; |
+ // Time interval before a new prerender is allowed. |
+ static const int kMinTimeBetweenPrerendersMs = 500; |
+ |
scoped_ptr<PrerenderContents::Factory> prerender_contents_factory_; |
static PrerenderManagerMode mode_; |
@@ -174,6 +180,9 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
// pages. |
base::RepeatingTimer<PrerenderManager> repeating_timer_; |
+ // Track time of last prerender to limit prerender spam. |
+ base::TimeTicks last_prerender_start_time_; |
+ |
DISALLOW_COPY_AND_ASSIGN(PrerenderManager); |
}; |