Chromium Code Reviews| 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; |
| } |