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..65a245fcccdbcb9cd9c82bb3e157ed3f7479330a 100644 |
--- a/chrome/browser/prerender/prerender_manager.h |
+++ b/chrome/browser/prerender/prerender_manager.h |
@@ -97,6 +97,10 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
void MarkTabContentsAsNotPrerendered(TabContents* tc); |
bool IsTabContentsPrerendered(TabContents* tc) const; |
+ static void set_rate_limit_enabled(bool enable) { |
+ rate_limit_enabled_ = enable; |
+ } |
+ |
protected: |
virtual ~PrerenderManager(); |
@@ -136,6 +140,8 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
static void RecordPrefetchTagObservedOnUIThread(); |
+ static bool DoesRateLimitAllowPrerender(); |
+ |
Profile* profile_; |
base::TimeDelta max_prerender_age_; |
@@ -160,6 +166,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; |
tburkard
2011/03/11 22:57:40
I think we should set this to 1s.
dominich
2011/03/11 23:14:57
I originally had it at 1s but felt it was too long
|
+ |
scoped_ptr<PrerenderContents::Factory> prerender_contents_factory_; |
static PrerenderManagerMode mode_; |
@@ -174,6 +183,11 @@ class PrerenderManager : public base::RefCounted<PrerenderManager> { |
// pages. |
base::RepeatingTimer<PrerenderManager> repeating_timer_; |
+ // Track time of last prerender to limit prerender spam. |
+ // TODO(dominich): This could be an average rate instead of a single time |
+ static base::TimeTicks last_prerender_start_time_; |
+ static bool rate_limit_enabled_; |
+ |
DISALLOW_COPY_AND_ASSIGN(PrerenderManager); |
}; |