Chromium Code Reviews| Index: chrome/browser/prerender/prerender_histograms.cc |
| diff --git a/chrome/browser/prerender/prerender_histograms.cc b/chrome/browser/prerender/prerender_histograms.cc |
| index 3e4b4bfa1915016af5bb4cf47d24037264b2f2f0..5b17d6bcbb10fc6dbb3f4b3cc28cbe44d2822ebc 100644 |
| --- a/chrome/browser/prerender/prerender_histograms.cc |
| +++ b/chrome/browser/prerender/prerender_histograms.cc |
| @@ -19,6 +19,19 @@ namespace prerender { |
| namespace { |
| +// This enum is used to define the buckets for the |
| +// "Prerender.NoStatePrefetchResourceCount" histogram family. |
| +// Hence, existing enumerated constants should never be deleted or reordered, |
| +// and new constants should only be appended at the end of the enumeration. |
| +enum NoStatePrefetchResourceType { |
| + kMainResourceCacheable = 0, |
|
pasko
2016/08/30 13:41:04
I think chromium style prefers MACRO_STYLE constan
droger
2016/08/30 14:31:41
changed the naming style, however I need these to
|
| + kMainResourceNoStore = 1, |
| + kSubResourceCacheable = 2, |
| + kSubResourceNoStore = 3, |
| + |
| + kNoStatePrefetchResourceTypeCount // Must be the last. |
| +}; |
| + |
| // 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 |
| @@ -383,6 +396,27 @@ void PrerenderHistograms::RecordNetworkBytes(Origin origin, |
| } |
| } |
| +void PrerenderHistograms::RecordResourcePrefetch(Origin origin, |
| + bool is_main_resource, |
| + bool is_no_store) { |
| + NoStatePrefetchResourceType type = |
| + is_main_resource |
| + ? (is_no_store ? kMainResourceNoStore : kMainResourceCacheable) |
| + : (is_no_store ? kSubResourceNoStore : kSubResourceCacheable); |
| + DCHECK_LT(type, kNoStatePrefetchResourceTypeCount); |
| + |
| + std::string histogram_name = |
| + GetHistogramName(origin, IsOriginWash(), "NoStatePrefetchResourceCount"); |
| + |
| + // Unrolls UMA_HISTOGRAM_ENUMERATION, required to support dynamic histogram |
|
pasko
2016/08/30 13:41:04
Would it be possible to DCHECK_CURRENTLY_ON(Browse
droger
2016/08/30 14:31:41
Done (using a thread checker).
|
| + // name. |
| + base::HistogramBase* histogram_pointer = base::LinearHistogram::FactoryGet( |
| + histogram_name, 1, kNoStatePrefetchResourceTypeCount, |
| + kNoStatePrefetchResourceTypeCount + 1, |
| + base::HistogramBase::kUmaTargetedHistogramFlag); |
| + histogram_pointer->Add(type); |
| +} |
| + |
| bool PrerenderHistograms::IsOriginWash() const { |
| if (!WithinWindow()) |
| return false; |