Index: chrome/browser/prerender/prerender_manager.h |
diff --git a/chrome/browser/prerender/prerender_manager.h b/chrome/browser/prerender/prerender_manager.h |
index 22675dc154b3a1cefc19160f6bd2fb7bc86c8c37..4d15e381e13e3f8f91f2f3d8e385a953c0e0b828 100644 |
--- a/chrome/browser/prerender/prerender_manager.h |
+++ b/chrome/browser/prerender/prerender_manager.h |
@@ -106,6 +106,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. |
@@ -126,6 +127,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, |
@@ -140,6 +142,8 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
static void RecordPrefetchTagObservedOnUIThread(); |
+ bool DoesRateLimitAllowPrerender() const; |
+ |
Profile* profile_; |
base::TimeDelta max_prerender_age_; |
@@ -168,6 +172,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_; |
@@ -182,6 +189,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); |
}; |