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

Side by Side Diff: chrome/browser/prerender/prerender_local_predictor.cc

Issue 11028037: Fix prerender histograms for multiple prerender case. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ... whitespace Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/prerender/prerender_local_predictor.h" 5 #include "chrome/browser/prerender/prerender_local_predictor.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <ctype.h> 8 #include <ctype.h>
9 #include <map> 9 #include <map>
10 #include <set> 10 #include <set>
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 visit_history_->push_back(info); 194 visit_history_->push_back(info);
195 if (static_cast<int>(visit_history_->size()) > kVisitHistoryPruneThreshold) { 195 if (static_cast<int>(visit_history_->size()) > kVisitHistoryPruneThreshold) {
196 visit_history_->erase(visit_history_->begin(), 196 visit_history_->erase(visit_history_->begin(),
197 visit_history_->begin() + kVisitHistoryPruneAmount); 197 visit_history_->begin() + kVisitHistoryPruneAmount);
198 } 198 }
199 RecordEvent(EVENT_ADD_VISIT_INITIALIZED); 199 RecordEvent(EVENT_ADD_VISIT_INITIALIZED);
200 if (current_prerender_.get() && 200 if (current_prerender_.get() &&
201 current_prerender_->url_id == info.url_id && 201 current_prerender_->url_id == info.url_id &&
202 IsPrerenderStillValid(current_prerender_.get())) { 202 IsPrerenderStillValid(current_prerender_.get())) {
203 prerender_manager_->histograms()->RecordLocalPredictorTimeUntilUsed( 203 prerender_manager_->histograms()->RecordLocalPredictorTimeUntilUsed(
204 ORIGIN_LOCAL_PREDICTOR,
204 GetCurrentTime() - current_prerender_->actual_start_time, 205 GetCurrentTime() - current_prerender_->actual_start_time,
205 base::TimeDelta::FromMilliseconds(kMaxLocalPredictionTimeMs)); 206 base::TimeDelta::FromMilliseconds(kMaxLocalPredictionTimeMs));
206 last_swapped_in_prerender_.reset(current_prerender_.release()); 207 last_swapped_in_prerender_.reset(current_prerender_.release());
207 RecordEvent(EVENT_ADD_VISIT_PRERENDER_IDENTIFIED); 208 RecordEvent(EVENT_ADD_VISIT_PRERENDER_IDENTIFIED);
208 } 209 }
209 if (ShouldExcludeTransitionForPrediction(info.transition)) 210 if (ShouldExcludeTransitionForPrediction(info.transition))
210 return; 211 return;
211 RecordEvent(EVENT_ADD_VISIT_RELEVANT_TRANSITION); 212 RecordEvent(EVENT_ADD_VISIT_RELEVANT_TRANSITION);
212 base::TimeDelta max_age = 213 base::TimeDelta max_age =
213 base::TimeDelta::FromMilliseconds(kMaxLocalPredictionTimeMs); 214 base::TimeDelta::FromMilliseconds(kMaxLocalPredictionTimeMs);
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
365 } 366 }
366 if (DoesPrerenderMatchPLTRecord(current_prerender_.get(), 367 if (DoesPrerenderMatchPLTRecord(current_prerender_.get(),
367 url, page_load_time)) { 368 url, page_load_time)) {
368 prerender.reset(current_prerender_.release()); 369 prerender.reset(current_prerender_.release());
369 } 370 }
370 if (!prerender.get()) 371 if (!prerender.get())
371 return; 372 return;
372 if (IsPrerenderStillValid(prerender.get())) { 373 if (IsPrerenderStillValid(prerender.get())) {
373 base::TimeDelta prerender_age = GetCurrentTime() - prerender->start_time; 374 base::TimeDelta prerender_age = GetCurrentTime() - prerender->start_time;
374 prerender_manager_->histograms()->RecordSimulatedLocalBrowsingBaselinePLT( 375 prerender_manager_->histograms()->RecordSimulatedLocalBrowsingBaselinePLT(
375 page_load_time, url); 376 ORIGIN_LOCAL_PREDICTOR, page_load_time, url);
376 if (prerender_age > page_load_time) { 377 if (prerender_age > page_load_time) {
377 base::TimeDelta new_plt; 378 base::TimeDelta new_plt;
378 if (prerender_age < 2 * page_load_time) 379 if (prerender_age < 2 * page_load_time)
379 new_plt = 2 * page_load_time - prerender_age; 380 new_plt = 2 * page_load_time - prerender_age;
380 prerender_manager_->histograms()->RecordSimulatedLocalBrowsingPLT( 381 prerender_manager_->histograms()->RecordSimulatedLocalBrowsingPLT(
381 new_plt, url); 382 ORIGIN_LOCAL_PREDICTOR, new_plt, url);
382 } 383 }
383
384 } 384 }
385 } 385 }
386 386
387 bool PrerenderLocalPredictor::IsPrerenderStillValid( 387 bool PrerenderLocalPredictor::IsPrerenderStillValid(
388 PrerenderLocalPredictor::PrerenderData* prerender) const { 388 PrerenderLocalPredictor::PrerenderData* prerender) const {
389 return (prerender && 389 return (prerender &&
390 (prerender->start_time + 390 (prerender->start_time +
391 base::TimeDelta::FromMilliseconds(kMaxLocalPredictionTimeMs)) 391 base::TimeDelta::FromMilliseconds(kMaxLocalPredictionTimeMs))
392 > GetCurrentTime()); 392 > GetCurrentTime());
393 } 393 }
(...skipping 17 matching lines...) Expand all
411 bool PrerenderLocalPredictor::ShouldReplaceCurrentPrerender( 411 bool PrerenderLocalPredictor::ShouldReplaceCurrentPrerender(
412 double priority) const { 412 double priority) const {
413 base::TimeDelta max_age = 413 base::TimeDelta max_age =
414 base::TimeDelta::FromMilliseconds(kMaxLocalPredictionTimeMs); 414 base::TimeDelta::FromMilliseconds(kMaxLocalPredictionTimeMs);
415 return (!current_prerender_.get()) || 415 return (!current_prerender_.get()) ||
416 current_prerender_->priority < priority || 416 current_prerender_->priority < priority ||
417 current_prerender_->start_time < GetCurrentTime() - max_age; 417 current_prerender_->start_time < GetCurrentTime() - max_age;
418 } 418 }
419 419
420 } // namespace prerender 420 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698