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

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

Issue 10933065: Separate same domain and cross domain <link rel=...> prerenders for reporting. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: fix rebase... Created 8 years, 3 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_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/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 return ComposeHistogramName("exp" + std::string(1, experiment_id + '0'), 43 return ComposeHistogramName("exp" + std::string(1, experiment_id + '0'),
44 name); 44 name);
45 } 45 }
46 46
47 if (experiment_id != kNoExperiment) 47 if (experiment_id != kNoExperiment)
48 return ComposeHistogramName("wash", name); 48 return ComposeHistogramName("wash", name);
49 49
50 switch (origin) { 50 switch (origin) {
51 case ORIGIN_OMNIBOX: 51 case ORIGIN_OMNIBOX:
52 return ComposeHistogramName("omnibox", name); 52 return ComposeHistogramName("omnibox", name);
53 case ORIGIN_LINK_REL_PRERENDER: 53 case ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN:
54 return ComposeHistogramName("web", name); 54 return ComposeHistogramName("websame", name);
55 case ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN:
56 return ComposeHistogramName("webcross", name);
55 case ORIGIN_GWS_PRERENDER: // Handled above. 57 case ORIGIN_GWS_PRERENDER: // Handled above.
56 default: 58 default:
57 NOTREACHED(); 59 NOTREACHED();
58 break; 60 break;
59 }; 61 };
60 62
61 // Dummy return value to make the compiler happy. 63 // Dummy return value to make the compiler happy.
62 NOTREACHED(); 64 NOTREACHED();
63 return ComposeHistogramName("wash", name); 65 return ComposeHistogramName("wash", name);
64 } 66 }
(...skipping 29 matching lines...) Expand all
94 std::string name = GetHistogramName(origin, experiment, wash, \ 96 std::string name = GetHistogramName(origin, experiment, wash, \
95 histogram_name); \ 97 histogram_name); \
96 static uint8 recording_experiment = kNoExperiment; \ 98 static uint8 recording_experiment = kNoExperiment; \
97 if (recording_experiment == kNoExperiment && experiment != kNoExperiment) \ 99 if (recording_experiment == kNoExperiment && experiment != kNoExperiment) \
98 recording_experiment = experiment; \ 100 recording_experiment = experiment; \
99 if (wash) { \ 101 if (wash) { \
100 HISTOGRAM; \ 102 HISTOGRAM; \
101 } else if (experiment != kNoExperiment && \ 103 } else if (experiment != kNoExperiment && \
102 (origin != ORIGIN_GWS_PRERENDER || \ 104 (origin != ORIGIN_GWS_PRERENDER || \
103 experiment != recording_experiment)) { \ 105 experiment != recording_experiment)) { \
104 } else if (origin == ORIGIN_LINK_REL_PRERENDER) { \ 106 } else if (origin == ORIGIN_OMNIBOX) { \
105 HISTOGRAM; \ 107 HISTOGRAM; \
106 } else if (origin == ORIGIN_OMNIBOX) { \ 108 } else if (origin == ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN) { \
109 HISTOGRAM; \
110 } else if (origin == ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN) { \
107 HISTOGRAM; \ 111 HISTOGRAM; \
108 } else if (experiment != kNoExperiment) { \ 112 } else if (experiment != kNoExperiment) { \
109 HISTOGRAM; \ 113 HISTOGRAM; \
110 } else { \ 114 } else { \
111 HISTOGRAM; \ 115 HISTOGRAM; \
112 } \ 116 } \
113 } 117 }
114 118
115 PrerenderHistograms::PrerenderHistograms() 119 PrerenderHistograms::PrerenderHistograms()
116 : last_experiment_id_(kNoExperiment), 120 : last_experiment_id_(kNoExperiment),
117 last_origin_(ORIGIN_LINK_REL_PRERENDER), 121 last_origin_(ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN),
118 origin_experiment_wash_(false), 122 origin_experiment_wash_(false),
119 seen_any_pageload_(true), 123 seen_any_pageload_(true),
120 seen_pageload_started_after_prerender_(true) { 124 seen_pageload_started_after_prerender_(true) {
121 } 125 }
122 126
123 void PrerenderHistograms::RecordPrerender(Origin origin, const GURL& url) { 127 void PrerenderHistograms::RecordPrerender(Origin origin, const GURL& url) {
124 // Check if we are doing an experiment. 128 // Check if we are doing an experiment.
125 uint8 experiment = GetQueryStringBasedExperiment(url); 129 uint8 experiment = GetQueryStringBasedExperiment(url);
126 130
127 // We need to update last_experiment_id_, last_origin_, and 131 // We need to update last_experiment_id_, last_origin_, and
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 } 388 }
385 389
386 uint8 PrerenderHistograms::GetCurrentExperimentId() const { 390 uint8 PrerenderHistograms::GetCurrentExperimentId() const {
387 if (!WithinWindow()) 391 if (!WithinWindow())
388 return kNoExperiment; 392 return kNoExperiment;
389 return last_experiment_id_; 393 return last_experiment_id_;
390 } 394 }
391 395
392 Origin PrerenderHistograms::GetCurrentOrigin() const { 396 Origin PrerenderHistograms::GetCurrentOrigin() const {
393 if (!WithinWindow()) 397 if (!WithinWindow())
394 return ORIGIN_LINK_REL_PRERENDER; 398 return ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN;
dominich 2012/09/13 20:03:36 why is this the default here?
gavinp 2012/09/14 02:00:42 Why was ORIGIN_LINK_REL_PRERENDER the default befo
dominich 2012/09/14 14:40:45 I have no idea, but it seems very wrong to me. We
gavinp 2012/09/14 21:10:47 I'm adding Timo to this review to explain, since I
mmenke 2012/09/17 20:39:27 I'm not Timo (Though I've always wanted to play hi
gavinp 2012/09/20 04:18:10 Oh boy, I've now reviewed this code, and these his
395 return last_origin_; 399 return last_origin_;
396 } 400 }
397 401
398 bool PrerenderHistograms::IsOriginExperimentWash() const { 402 bool PrerenderHistograms::IsOriginExperimentWash() const {
399 if (!WithinWindow()) 403 if (!WithinWindow())
400 return false; 404 return false;
401 return origin_experiment_wash_; 405 return origin_experiment_wash_;
402 } 406 }
403 407
404 void PrerenderHistograms::RecordLocalPredictorEvent( 408 void PrerenderHistograms::RecordLocalPredictorEvent(
(...skipping 11 matching lines...) Expand all
416 "LocalPredictorTimeUntilUsed", 420 "LocalPredictorTimeUntilUsed",
417 UMA_HISTOGRAM_CUSTOM_TIMES( 421 UMA_HISTOGRAM_CUSTOM_TIMES(
418 name, 422 name,
419 time_until_used, 423 time_until_used,
420 base::TimeDelta::FromMilliseconds(10), 424 base::TimeDelta::FromMilliseconds(10),
421 max_age, 425 max_age,
422 50)); 426 50));
423 } 427 }
424 428
425 } // namespace prerender 429 } // namespace prerender
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698