Index: chrome/browser/prerender/prerender_histograms.cc |
diff --git a/chrome/browser/prerender/prerender_histograms.cc b/chrome/browser/prerender/prerender_histograms.cc |
index 8c6c1105125af5512bc547042ec54d01582117b8..fabba4f5826023d91f540cf478726c0f1cee0798 100644 |
--- a/chrome/browser/prerender/prerender_histograms.cc |
+++ b/chrome/browser/prerender/prerender_histograms.cc |
@@ -36,12 +36,6 @@ int GetResourceType(bool is_main_resource, bool is_redirect, bool is_no_store) { |
(is_main_resource * MAIN_RESOURCE); |
} |
-// Time window for which we will record windowed PLTs from the last observed |
-// link rel=prefetch tag. This is not intended to be the same as the prerender |
-// ttl, it's just intended to be a window during which a prerender has likely |
-// affected performance. |
-const int kWindowDurationSeconds = 30; |
- |
std::string ComposeHistogramName(const std::string& prefix_type, |
const std::string& name) { |
if (prefix_type.empty()) |
@@ -127,17 +121,7 @@ const char* FirstContentfulPaintHiddenName(bool was_hidden) { |
} \ |
} while (0) |
-PrerenderHistograms::PrerenderHistograms() |
- : seen_any_pageload_(true), seen_pageload_started_after_prerender_(true) {} |
- |
-void PrerenderHistograms::RecordPrerender() { |
- // If we observe multiple tags within the 30 second window, we will still |
- // reset the window to begin at the most recent occurrence, so that we will |
- // always be in a window in the 30 seconds from each occurrence. |
- last_prerender_seen_time_ = GetCurrentTimeTicks(); |
- seen_any_pageload_ = false; |
- seen_pageload_started_after_prerender_ = false; |
-} |
+PrerenderHistograms::PrerenderHistograms() {} |
void PrerenderHistograms::RecordPrerenderStarted(Origin origin) const { |
if (OriginIsOmnibox(origin)) { |
@@ -146,15 +130,6 @@ void PrerenderHistograms::RecordPrerenderStarted(Origin origin) const { |
} |
} |
-void PrerenderHistograms::RecordConcurrency(size_t prerender_count) const { |
- static const size_t kMaxRecordableConcurrency = 20; |
- DCHECK_GE(kMaxRecordableConcurrency, Config().max_link_concurrency); |
- UMA_HISTOGRAM_ENUMERATION( |
- base::StringPrintf("Prerender.PrerenderCountOf%" PRIuS "Max", |
- kMaxRecordableConcurrency), |
- prerender_count, kMaxRecordableConcurrency + 1); |
-} |
- |
void PrerenderHistograms::RecordUsedPrerender(Origin origin) const { |
if (OriginIsOmnibox(origin)) { |
UMA_HISTOGRAM_ENUMERATION( |
@@ -170,110 +145,15 @@ void PrerenderHistograms::RecordTimeSinceLastRecentVisit( |
UMA_HISTOGRAM_TIMES(name, delta)); |
} |
-base::TimeTicks PrerenderHistograms::GetCurrentTimeTicks() const { |
- return base::TimeTicks::Now(); |
-} |
- |
-// Helper macro for histograms. |
-#define RECORD_PLT(tag, perceived_page_load_time) \ |
- PREFIXED_HISTOGRAM( \ |
- tag, origin, \ |
- UMA_HISTOGRAM_CUSTOM_TIMES( \ |
- name, \ |
- perceived_page_load_time, \ |
- base::TimeDelta::FromMilliseconds(10), \ |
- base::TimeDelta::FromSeconds(60), \ |
- 100)) |
- |
-// Summary of all histograms Perceived PLT histograms: |
-// (all prefixed PerceivedPLT) |
-// PerceivedPLT -- Perceived Pageloadtimes (PPLT) for all pages in the group. |
-// ...Windowed -- PPLT for pages in the 30s after a prerender is created. |
-// ...FirstAfterMiss -- First page to finish loading after a prerender, which |
-// is different from the page that was prerendered. |
-// ...FirstAfterMissNonOverlapping -- Same as FirstAfterMiss, but only |
-// triggering for the first page to finish after the prerender that also started |
-// after the prerender started. |
-// ...FirstAfterMissBoth -- pages meeting |
-// FirstAfterMiss AND FirstAfterMissNonOverlapping |
-// ...FirstAfterMissAnyOnly -- pages meeting |
-// FirstAfterMiss but NOT FirstAfterMissNonOverlapping |
-// ..FirstAfterMissNonOverlappingOnly -- pages meeting |
-// FirstAfterMissNonOverlapping but NOT FirstAfterMiss |
- |
-void PrerenderHistograms::RecordPerceivedPageLoadTime( |
- Origin origin, |
- base::TimeDelta perceived_page_load_time, |
- NavigationType navigation_type, |
- const GURL& url) { |
- if (!url.SchemeIsHTTPOrHTTPS()) |
- return; |
- bool within_window = WithinWindow(); |
- bool is_google_url = |
- google_util::IsGoogleDomainUrl(url, google_util::DISALLOW_SUBDOMAIN, |
- google_util::ALLOW_NON_STANDARD_PORTS); |
- RECORD_PLT("PerceivedPLT", perceived_page_load_time); |
- if (within_window) |
- RECORD_PLT("PerceivedPLTWindowed", perceived_page_load_time); |
- if (navigation_type != NAVIGATION_TYPE_NORMAL) { |
- DCHECK(navigation_type == NAVIGATION_TYPE_PRERENDERED); |
- seen_any_pageload_ = true; |
- seen_pageload_started_after_prerender_ = true; |
- } else if (within_window) { |
- if (!is_google_url) { |
- bool recorded_any = false; |
- bool recorded_non_overlapping = false; |
- if (!seen_any_pageload_) { |
- seen_any_pageload_ = true; |
- RECORD_PLT("PerceivedPLTFirstAfterMiss", perceived_page_load_time); |
- recorded_any = true; |
- } |
- if (!seen_pageload_started_after_prerender_ && |
- perceived_page_load_time <= GetTimeSinceLastPrerender()) { |
- seen_pageload_started_after_prerender_ = true; |
- RECORD_PLT("PerceivedPLTFirstAfterMissNonOverlapping", |
- perceived_page_load_time); |
- recorded_non_overlapping = true; |
- } |
- if (recorded_any || recorded_non_overlapping) { |
- if (recorded_any && recorded_non_overlapping) { |
- RECORD_PLT("PerceivedPLTFirstAfterMissBoth", |
- perceived_page_load_time); |
- } else if (recorded_any) { |
- RECORD_PLT("PerceivedPLTFirstAfterMissAnyOnly", |
- perceived_page_load_time); |
- } else if (recorded_non_overlapping) { |
- RECORD_PLT("PerceivedPLTFirstAfterMissNonOverlappingOnly", |
- perceived_page_load_time); |
- } |
- } |
- } |
- } |
-} |
- |
void PrerenderHistograms::RecordPerceivedFirstContentfulPaintStatus( |
Origin origin, |
bool successful, |
- bool was_hidden) { |
+ bool was_hidden) const { |
base::UmaHistogramBoolean(GetHistogramName(origin, "PerceivedTTFCPRecorded") + |
FirstContentfulPaintHiddenName(was_hidden), |
successful); |
} |
-void PrerenderHistograms::RecordPageLoadTimeNotSwappedIn( |
- Origin origin, |
- base::TimeDelta page_load_time, |
- const GURL& url) const { |
- // If the URL to be prerendered is not a http[s] URL, or is a Google URL, |
- // do not record. |
- if (!url.SchemeIsHTTPOrHTTPS() || |
- google_util::IsGoogleDomainUrl(url, google_util::DISALLOW_SUBDOMAIN, |
- google_util::ALLOW_NON_STANDARD_PORTS)) { |
- return; |
- } |
- RECORD_PLT("PrerenderNotSwappedInPLT", page_load_time); |
-} |
- |
void PrerenderHistograms::RecordPercentLoadDoneAtSwapin(Origin origin, |
double fraction) const { |
if (fraction < 0.0 || fraction > 1.0) |
@@ -285,17 +165,6 @@ void PrerenderHistograms::RecordPercentLoadDoneAtSwapin(Origin origin, |
origin, UMA_HISTOGRAM_PERCENTAGE(name, percentage)); |
} |
-base::TimeDelta PrerenderHistograms::GetTimeSinceLastPrerender() const { |
- return base::TimeTicks::Now() - last_prerender_seen_time_; |
-} |
- |
-bool PrerenderHistograms::WithinWindow() const { |
- if (last_prerender_seen_time_.is_null()) |
- return false; |
- return GetTimeSinceLastPrerender() <= |
- base::TimeDelta::FromSeconds(kWindowDurationSeconds); |
-} |
- |
void PrerenderHistograms::RecordTimeUntilUsed( |
Origin origin, |
base::TimeDelta time_until_used) const { |
@@ -410,7 +279,7 @@ void PrerenderHistograms::RecordPrefetchFirstContentfulPaintTime( |
bool is_no_store, |
bool was_hidden, |
base::TimeDelta time, |
- base::TimeDelta prefetch_age) { |
+ base::TimeDelta prefetch_age) const { |
DCHECK(thread_checker_.CalledOnValidThread()); |
if (!prefetch_age.is_zero()) { |