Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(45)

Unified Diff: chrome/browser/prerender/prerender_manager.h

Issue 6677005: Limit prerender by only allowing one every X ms (X currently set to 500). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix license header Created 9 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/prerender/prerender_final_status.h ('k') | chrome/browser/prerender/prerender_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
« no previous file with comments | « chrome/browser/prerender/prerender_final_status.h ('k') | chrome/browser/prerender/prerender_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698