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

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

Issue 2423383002: [Prerender] first contentful paint histograms. (Closed)
Patch Set: comments Created 4 years 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
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_histograms.h" 5 #include "chrome/browser/prerender/prerender_histograms.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 perceived_page_load_time); 303 perceived_page_load_time);
304 } else if (recorded_non_overlapping) { 304 } else if (recorded_non_overlapping) {
305 RECORD_PLT("PerceivedPLTFirstAfterMissNonOverlappingOnly", 305 RECORD_PLT("PerceivedPLTFirstAfterMissNonOverlappingOnly",
306 perceived_page_load_time); 306 perceived_page_load_time);
307 } 307 }
308 } 308 }
309 } 309 }
310 } 310 }
311 } 311 }
312 312
313 void PrerenderHistograms::RecordPerceivedFirstContentfulPaintTime(
314 Origin origin,
315 base::TimeDelta perceived_first_contentful_paint,
316 bool was_hidden) {
317 RecordHistogramTime(GetPerceivedFirstContentfulPaintHistogramName(
318 origin, IsOriginWash(), was_hidden),
319 base::TimeDelta::FromMilliseconds(10),
320 base::TimeDelta::FromMinutes(2),
321 perceived_first_contentful_paint, 50);
322 }
323
324 void PrerenderHistograms::RecordPerceivedFirstContentfulPaintStatus(
325 Origin origin,
326 bool successful,
327 bool was_hidden) {
328 RecordHistogramEnum(
329 GetHistogramName(origin, IsOriginWash(), "PerceivedTTFCPRecorded") +
droger 2016/11/24 13:03:43 If we want to compare NoStatePrefetch vs Prerender
330 FirstContentfulPaintHiddenName(was_hidden),
331 successful ? 1 : 0, 2);
332 }
333
313 void PrerenderHistograms::RecordPageLoadTimeNotSwappedIn( 334 void PrerenderHistograms::RecordPageLoadTimeNotSwappedIn(
314 Origin origin, 335 Origin origin,
315 base::TimeDelta page_load_time, 336 base::TimeDelta page_load_time,
316 const GURL& url) const { 337 const GURL& url) const {
317 // If the URL to be prerendered is not a http[s] URL, or is a Google URL, 338 // If the URL to be prerendered is not a http[s] URL, or is a Google URL,
318 // do not record. 339 // do not record.
319 if (!url.SchemeIsHTTPOrHTTPS() || IsGoogleDomain(url)) 340 if (!url.SchemeIsHTTPOrHTTPS() || IsGoogleDomain(url))
320 return; 341 return;
321 RECORD_PLT("PrerenderNotSwappedInPLT", page_load_time); 342 RECORD_PLT("PrerenderNotSwappedInPLT", page_load_time);
322 } 343 }
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 DCHECK(thread_checker_.CalledOnValidThread()); 466 DCHECK(thread_checker_.CalledOnValidThread());
446 467
447 const int kMaxRedirectCount = 10; 468 const int kMaxRedirectCount = 10;
448 std::string histogram_base_name = base::StringPrintf( 469 std::string histogram_base_name = base::StringPrintf(
449 "NoStatePrefetch%sResourceRedirects", is_main_resource ? "Main" : "Sub"); 470 "NoStatePrefetch%sResourceRedirects", is_main_resource ? "Main" : "Sub");
450 std::string histogram_name = 471 std::string histogram_name =
451 GetHistogramName(origin, IsOriginWash(), histogram_base_name); 472 GetHistogramName(origin, IsOriginWash(), histogram_base_name);
452 RecordHistogramEnum(histogram_name, redirect_count, kMaxRedirectCount); 473 RecordHistogramEnum(histogram_name, redirect_count, kMaxRedirectCount);
453 } 474 }
454 475
455 void PrerenderHistograms::RecordFirstContentfulPaint( 476 void PrerenderHistograms::RecordNoStateFirstContentfulPaint(
456 Origin origin, 477 Origin origin,
457 bool is_no_store, 478 bool is_no_store,
458 base::TimeDelta time, 479 base::TimeDelta time,
459 base::TimeDelta prefetch_age) { 480 base::TimeDelta prefetch_age) {
460 DCHECK(thread_checker_.CalledOnValidThread()); 481 DCHECK(thread_checker_.CalledOnValidThread());
461 482
462 if (!prefetch_age.is_zero()) { 483 if (!prefetch_age.is_zero()) {
463 DCHECK_NE(origin, ORIGIN_NONE); 484 DCHECK_NE(origin, ORIGIN_NONE);
464 RecordHistogramTime(GetHistogramName(origin, IsOriginWash(), 485 RecordHistogramTime(GetHistogramName(origin, IsOriginWash(),
465 "Prerender.NoStatePrefetchAge"), 486 "Prerender.NoStatePrefetchAge"),
466 base::TimeDelta::FromMilliseconds(10), 487 base::TimeDelta::FromMilliseconds(10),
467 base::TimeDelta::FromMinutes(30), prefetch_age, 50); 488 base::TimeDelta::FromMinutes(30), prefetch_age, 50);
468 } 489 }
469 490
470 RecordHistogramTime(GetFirstContentfulPaintHistogramName( 491 RecordHistogramTime(GetNoStateFirstContentfulPaintHistogramName(
471 origin, IsOriginWash(), is_no_store, prefetch_age), 492 origin, IsOriginWash(), is_no_store, prefetch_age),
472 base::TimeDelta::FromMilliseconds(10), 493 base::TimeDelta::FromMilliseconds(10),
473 base::TimeDelta::FromMinutes(2), time, 50); 494 base::TimeDelta::FromMinutes(2), time, 50);
474 } 495 }
475 496
476 bool PrerenderHistograms::IsOriginWash() const { 497 bool PrerenderHistograms::IsOriginWash() const {
477 if (!WithinWindow()) 498 if (!WithinWindow())
478 return false; 499 return false;
479 return origin_wash_; 500 return origin_wash_;
480 } 501 }
481 502
482 // static 503 // static
483 std::string PrerenderHistograms::GetFirstContentfulPaintHistogramName( 504 std::string PrerenderHistograms::GetNoStateFirstContentfulPaintHistogramName(
484 Origin origin, 505 Origin origin,
485 bool is_wash, 506 bool is_wash,
486 bool is_no_store, 507 bool is_no_store,
487 base::TimeDelta prefetch_age) { 508 base::TimeDelta prefetch_age) {
488 std::string histogram_base_name; 509 std::string histogram_base_name;
489 if (prefetch_age.is_zero()) { 510 if (prefetch_age.is_zero()) {
490 histogram_base_name = "NoStatePrefetchTTFCP.Reference"; 511 histogram_base_name = "NoStatePrefetchTTFCP.Reference";
491 } else { 512 } else {
492 histogram_base_name = prefetch_age < base::TimeDelta::FromMinutes( 513 histogram_base_name = prefetch_age < base::TimeDelta::FromMinutes(
493 net::HttpCache::kPrefetchReuseMins) 514 net::HttpCache::kPrefetchReuseMins)
494 ? "NoStatePrefetchTTFCP.Warm" 515 ? "NoStatePrefetchTTFCP.Warm"
495 : "NoStatePrefetchTTFCP.Cold"; 516 : "NoStatePrefetchTTFCP.Cold";
496 } 517 }
497 518
498 histogram_base_name += is_no_store ? ".NoStore" : ".Cacheable"; 519 histogram_base_name += is_no_store ? ".NoStore" : ".Cacheable";
499 return GetHistogramName(origin, is_wash, histogram_base_name); 520 return GetHistogramName(origin, is_wash, histogram_base_name);
500 } 521 }
501 522
523 // static
524 std::string PrerenderHistograms::GetPerceivedFirstContentfulPaintHistogramName(
525 Origin origin,
526 bool is_wash,
527 bool was_hidden) {
528 return GetHistogramName(origin, is_wash, "PerceivedTTFCP") +
529 FirstContentfulPaintHiddenName(was_hidden);
530 }
531
532 std::string PrerenderHistograms::FirstContentfulPaintHiddenName(
533 bool was_hidden) {
534 return was_hidden ? ".Hidden" : ".Visible";
535 }
536
502 } // namespace prerender 537 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698