Chromium Code Reviews| OLD | NEW |
|---|---|
| 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/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 162 PREFIXED_HISTOGRAM( \ | 162 PREFIXED_HISTOGRAM( \ |
| 163 base::FieldTrial::MakeName(tag, "Prerender"), \ | 163 base::FieldTrial::MakeName(tag, "Prerender"), \ |
| 164 UMA_HISTOGRAM_CUSTOM_TIMES( \ | 164 UMA_HISTOGRAM_CUSTOM_TIMES( \ |
| 165 name, \ | 165 name, \ |
| 166 perceived_page_load_time, \ | 166 perceived_page_load_time, \ |
| 167 base::TimeDelta::FromMilliseconds(10), \ | 167 base::TimeDelta::FromMilliseconds(10), \ |
| 168 base::TimeDelta::FromSeconds(60), \ | 168 base::TimeDelta::FromSeconds(60), \ |
| 169 100)); \ | 169 100)); \ |
| 170 } | 170 } |
| 171 | 171 |
| 172 // Summary of all histograms Perceived PLT histograms: | |
|
cbentzel
2012/01/24 14:55:46
Thanks for adding this description, it's very help
tburkard
2012/01/24 19:15:54
Done.
| |
| 173 // (all prefixed PerceivedPLT) | |
| 174 // PerceivedPLT -- Perceived Pageloadtimes (PPLT) for all pages in the group. | |
| 175 // ...Windowed -- PPLT for pages in the 30s after a prerender. | |
|
cbentzel
2012/01/24 14:55:46
Nit: after a prerender is created?
tburkard
2012/01/24 19:15:54
Done.
| |
| 176 // ...Matched -- A prerendered page that was swapped in. | |
|
cbentzel
2012/01/24 14:55:46
Nit: perhaps this should discuss how this is recor
tburkard
2012/01/24 19:15:54
Done.
| |
| 177 // ...MatchedComplete -- A prerendered page that was swapped in + a few | |
| 178 // that were not swapped in so that the set of pages lines up more closely with | |
| 179 // the control group. | |
| 180 // ...FirstAfterMiss -- First page to finish loading after a prerender, which | |
| 181 // is different from the page that was prerendered. | |
| 182 // ...FirstAfterMissNonOverlapping -- Same as FirstAfterMiss, but only | |
| 183 // triggering for the first page to finish after the prerender that also started | |
| 184 // after the prerender started. | |
| 185 // ...FirstAfterMissBoth -- pages meeting | |
| 186 // FirstAfterMiss AND FirstAfterMissNonOverlapping | |
| 187 // ...FirstAfterMissAnyOnly -- pages meeting | |
| 188 // FirstAfterMiss but NOT FirstAfterMissNonOverlapping | |
| 189 // ..FirstAfterMissNonOverlappingOnly -- pages meeting | |
| 190 // FirstAfterMissNonOverlapping but NOT FirstAfterMiss | |
| 191 | |
| 172 void PrerenderHistograms::RecordPerceivedPageLoadTime( | 192 void PrerenderHistograms::RecordPerceivedPageLoadTime( |
| 173 base::TimeDelta perceived_page_load_time, bool was_prerender, | 193 base::TimeDelta perceived_page_load_time, bool was_prerender, |
| 174 bool was_complete_prerender, const GURL& url) { | 194 bool was_complete_prerender, const GURL& url) { |
| 175 if (!IsWebURL(url)) | 195 if (!IsWebURL(url)) |
| 176 return; | 196 return; |
| 177 bool within_window = WithinWindow(); | 197 bool within_window = WithinWindow(); |
| 178 bool is_google_url = IsGoogleDomain(url); | 198 bool is_google_url = IsGoogleDomain(url); |
| 179 RECORD_PLT("PerceivedPLT", perceived_page_load_time); | 199 RECORD_PLT("PerceivedPLT", perceived_page_load_time); |
| 180 if (within_window) | 200 if (within_window) |
| 181 RECORD_PLT("PerceivedPLTWindowed", perceived_page_load_time); | 201 RECORD_PLT("PerceivedPLTWindowed", perceived_page_load_time); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 249 UMA_HISTOGRAM_COUNTS(name, count)); | 269 UMA_HISTOGRAM_COUNTS(name, count)); |
| 250 } | 270 } |
| 251 | 271 |
| 252 void PrerenderHistograms::RecordTimeBetweenPrerenderRequests( | 272 void PrerenderHistograms::RecordTimeBetweenPrerenderRequests( |
| 253 base::TimeDelta time) const { | 273 base::TimeDelta time) const { |
| 254 PREFIXED_HISTOGRAM( | 274 PREFIXED_HISTOGRAM( |
| 255 "TimeBetweenPrerenderRequests", | 275 "TimeBetweenPrerenderRequests", |
| 256 UMA_HISTOGRAM_TIMES(name, time)); | 276 UMA_HISTOGRAM_TIMES(name, time)); |
| 257 } | 277 } |
| 258 | 278 |
| 259 void PrerenderHistograms::RecordFinalStatus(Origin origin, | 279 void PrerenderHistograms::RecordFinalStatus( |
| 260 uint8 experiment_id, | 280 Origin origin, |
| 261 FinalStatus final_status) const { | 281 uint8 experiment_id, |
| 282 PrerenderContents::MatchCompleteStatus mc_status, | |
| 283 FinalStatus final_status) const { | |
| 262 DCHECK(final_status != FINAL_STATUS_MAX); | 284 DCHECK(final_status != FINAL_STATUS_MAX); |
| 263 PREFIXED_HISTOGRAM_ORIGIN_EXPERIMENT( | 285 if (mc_status != PrerenderContents::MATCH_COMPLETE_REPLACEMENT) { |
|
cbentzel
2012/01/24 14:55:46
Do you want this to get triggered when mc_status =
tburkard
2012/01/24 19:15:54
No, also in the MATCH_COMPLETE_DEFAULT case.
The M
| |
| 264 base::FieldTrial::MakeName("FinalStatus", "Prerender"), | 286 PREFIXED_HISTOGRAM_ORIGIN_EXPERIMENT( |
| 265 origin, experiment_id, | 287 base::FieldTrial::MakeName("FinalStatus", "Prerender"), |
| 266 UMA_HISTOGRAM_ENUMERATION(name, final_status, FINAL_STATUS_MAX)); | 288 origin, experiment_id, |
| 289 UMA_HISTOGRAM_ENUMERATION(name, final_status, FINAL_STATUS_MAX)); | |
| 290 } | |
| 291 if (mc_status != PrerenderContents::MATCH_COMPLETE_REPLACED) { | |
| 292 PREFIXED_HISTOGRAM_ORIGIN_EXPERIMENT( | |
| 293 base::FieldTrial::MakeName("FinalStatusMatchComplete", "Prerender"), | |
| 294 origin, experiment_id, | |
| 295 UMA_HISTOGRAM_ENUMERATION(name, final_status, FINAL_STATUS_MAX)); | |
| 296 } | |
| 267 } | 297 } |
| 268 | 298 |
| 269 uint8 PrerenderHistograms::GetCurrentExperimentId() const { | 299 uint8 PrerenderHistograms::GetCurrentExperimentId() const { |
| 270 if (!WithinWindow()) | 300 if (!WithinWindow()) |
| 271 return kNoExperiment; | 301 return kNoExperiment; |
| 272 return last_experiment_id_; | 302 return last_experiment_id_; |
| 273 } | 303 } |
| 274 | 304 |
| 275 Origin PrerenderHistograms::GetCurrentOrigin() const { | 305 Origin PrerenderHistograms::GetCurrentOrigin() const { |
| 276 if (!WithinWindow()) | 306 if (!WithinWindow()) |
| 277 return ORIGIN_LINK_REL_PRERENDER; | 307 return ORIGIN_LINK_REL_PRERENDER; |
| 278 return last_origin_; | 308 return last_origin_; |
| 279 } | 309 } |
| 280 | 310 |
| 281 bool PrerenderHistograms::IsOriginExperimentWash() const { | 311 bool PrerenderHistograms::IsOriginExperimentWash() const { |
| 282 if (!WithinWindow()) | 312 if (!WithinWindow()) |
| 283 return false; | 313 return false; |
| 284 return origin_experiment_wash_; | 314 return origin_experiment_wash_; |
| 285 } | 315 } |
| 286 | 316 |
| 287 } // namespace prerender | 317 } // namespace prerender |
| OLD | NEW |