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..44764b9df73b5d38dc8e5aaaa43b3cdde0e46644 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. |
@@ -122,6 +123,7 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
bool IsPrerenderElementFresh(const base::Time start) const; |
void DeleteOldEntries(); |
virtual base::Time GetCurrentTime() const; |
+ virtual base::TimeTicks GetCurrentTimeTicks() const; |
virtual PrerenderContents* CreatePrerenderContents( |
const GURL& url, |
const std::vector<GURL>& alias_urls, |
@@ -136,6 +138,8 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
static void RecordPrefetchTagObservedOnUIThread(); |
+ bool DoesRateLimitAllowPrerender() const; |
+ |
Profile* profile_; |
base::TimeDelta max_prerender_age_; |
@@ -160,6 +164,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 +181,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); |
}; |