Index: chrome/browser/prerender/prerender_manager.cc |
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc |
index 6eee18a1182ec0649edf7d5c864de602fed8d9fc..5cdeccdcf82806e04abc277ede9785db19a274a8 100644 |
--- a/chrome/browser/prerender/prerender_manager.cc |
+++ b/chrome/browser/prerender/prerender_manager.cc |
@@ -69,9 +69,6 @@ const int kWindowDurationSeconds = 30; |
// Time interval at which periodic cleanups are performed. |
const int kPeriodicCleanupIntervalMs = 1000; |
-// Time interval before a new prerender is allowed. |
-const int kMinTimeBetweenPrerendersMs = 500; |
- |
// Valid HTTP methods for prerendering. |
const char* const kValidHttpMethods[] = { |
"GET", |
@@ -196,6 +193,10 @@ PrerenderManager::PrerenderManager(Profile* profile, |
// Any other checks simply make sure that the PrerenderManager is accessed on |
// the same thread that it was created on. |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
+ |
+ if (GetMode() == PRERENDER_MODE_EXPERIMENT_ONE_PRERENDER_GROUP) { |
+ config_.max_concurrency = 1; |
+ } |
} |
PrerenderManager::~PrerenderManager() { |
@@ -559,6 +560,8 @@ const char* PrerenderManager::GetModeString() { |
return "_5MinTTL"; |
case PRERENDER_MODE_EXPERIMENT_NO_USE_GROUP: |
return "_NoUse"; |
+ case PRERENDER_MODE_EXPERIMENT_ONE_PRERENDER_GROUP: |
+ return "_One"; |
case PRERENDER_MODE_MAX: |
NOTREACHED() << "Invalid PrerenderManager mode."; |
break; |
@@ -928,8 +931,6 @@ PrerenderHandle* PrerenderManager::AddPrerender( |
if (!prerender_contents || !prerender_contents->Init()) |
return NULL; |
- histograms_->RecordPrerenderStarted(origin); |
- |
// TODO(cbentzel): Move invalid checks here instead of PrerenderContents? |
active_prerender_list_.push_back( |
linked_ptr<PrerenderData>(new PrerenderData(this, prerender_contents))); |
@@ -945,12 +946,14 @@ PrerenderHandle* PrerenderManager::AddPrerender( |
session_storage_namespace, |
control_group_behavior); |
- while (active_prerender_list_.size() > config_.max_elements) { |
+ while (active_prerender_list_.size() > config_.max_concurrency) { |
prerender_contents = active_prerender_list_.front()->contents_; |
DCHECK(prerender_contents); |
prerender_contents->Destroy(FINAL_STATUS_EVICTED); |
} |
+ histograms_->RecordPrerenderStarted(origin, active_prerender_list_.size()); |
dominich
2012/07/19 16:04:38
changing this is bad - we'll have a mismatch betwe
gavinp
2012/07/23 18:35:21
Done.
|
+ |
StartSchedulingPeriodicCleanups(); |
return prerender_handle; |
} |