Index: chrome/browser/prerender/prerender_manager.cc |
diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc |
index 5d3bf457b1d8d35ac5971e504204f4255e9980a2..5aec206c98c4fbf341f515b23a9a1d5f75d7a6e8 100644 |
--- a/chrome/browser/prerender/prerender_manager.cc |
+++ b/chrome/browser/prerender/prerender_manager.cc |
@@ -165,9 +165,6 @@ struct PrerenderManager::NavigationRecord { |
PrerenderManager::PrerenderManager(Profile* profile) |
: profile_(profile), |
prerender_contents_factory_(PrerenderContents::CreateFactory()), |
- last_prerender_start_time_( |
- GetCurrentTimeTicks() - |
- base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs)), |
prerender_history_(new PrerenderHistory(kHistoryLength)), |
histograms_(new PrerenderHistograms()), |
profile_network_bytes_(0), |
@@ -175,6 +172,10 @@ PrerenderManager::PrerenderManager(Profile* profile) |
weak_factory_(this) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
+ last_prerender_start_time_ = |
+ GetCurrentTimeTicks() - |
+ base::TimeDelta::FromMilliseconds(kMinTimeBetweenPrerendersMs); |
+ |
// Certain experiments override our default config_ values. |
switch (PrerenderManager::GetMode()) { |
case PrerenderManager::PRERENDER_MODE_EXPERIMENT_MULTI_PRERENDER_GROUP: |
@@ -1094,13 +1095,23 @@ void PrerenderManager::DeleteOldEntries() { |
} |
base::Time PrerenderManager::GetCurrentTime() const { |
+ if (time_override_) { |
+ return time_override_->GetCurrentTime(); |
+ } |
return base::Time::Now(); |
} |
base::TimeTicks PrerenderManager::GetCurrentTimeTicks() const { |
+ if (time_override_) { |
+ return time_override_->GetCurrentTimeTicks(); |
+ } |
return base::TimeTicks::Now(); |
} |
+void PrerenderManager::SetTimeOverride(std::unique_ptr<TimeOverride> override) { |
+ time_override_ = std::move(override); |
+} |
+ |
std::unique_ptr<PrerenderContents> PrerenderManager::CreatePrerenderContents( |
const GURL& url, |
const content::Referrer& referrer, |