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

Unified Diff: chrome/browser/prerender/prerender_link_manager.cc

Issue 98603015: Add histograms for prerender rel types. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: move enumeration closer to first use Created 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/prerender/prerender_link_manager.cc
diff --git a/chrome/browser/prerender/prerender_link_manager.cc b/chrome/browser/prerender/prerender_link_manager.cc
index 787a8116836bade0505a3eb202a23a71907d22c8..8fae9e73c48bc6d776d7eb130ca1218ac1356e38 100644
--- a/chrome/browser/prerender/prerender_link_manager.cc
+++ b/chrome/browser/prerender/prerender_link_manager.cc
@@ -11,6 +11,7 @@
#include "base/memory/scoped_ptr.h"
#include "base/metrics/field_trial.h"
+#include "base/metrics/histogram.h"
#include "chrome/browser/prerender/prerender_contents.h"
#include "chrome/browser/prerender/prerender_handle.h"
#include "chrome/browser/prerender/prerender_manager.h"
@@ -41,7 +42,7 @@ bool ShouldStartRelNextPrerenders() {
return experiment_name.find("Yes") != std::string::npos;
}
-bool ShouldStartPrerender(uint32 rel_types) {
+bool ShouldStartPrerender(const uint32 rel_types) {
const bool should_start_rel_next_prerenders =
ShouldStartRelNextPrerenders();
@@ -54,6 +55,31 @@ bool ShouldStartPrerender(uint32 rel_types) {
return false;
}
+COMPILE_ASSERT(PrerenderRelTypePrerender == 0x1,
+ RelTypeHistogramEnum_must_match_PrerenderRelType);
+COMPILE_ASSERT(PrerenderRelTypeNext == 0x2,
+ RelTypeHistogramEnum_must_match_PrerenderRelType);
+enum RelTypeHistogramEnum {
gavinp 2013/12/20 19:56:43 Our coding standard doesn't define an order for tr
+ RelTypeHistogramEnumNone = 0,
+ RelTypeHistogramEnumPrerender = PrerenderRelTypePrerender,
+ RelTypeHistogramEnumNext = PrerenderRelTypeNext,
+ RelTypeHistogramEnumPrerenderAndNext =
+ PrerenderRelTypePrerender | PrerenderRelTypeNext,
+ RelTypeHistogramEnumMax,
+};
+
+void RecordLinkManagerAdded(const uint32 rel_types) {
+ const uint32 enum_value = rel_types & (RelTypeHistogramEnumMax - 1);
+ UMA_HISTOGRAM_ENUMERATION("Prerender.RelTypesLinkAdded", enum_value,
+ RelTypeHistogramEnumMax);
+}
+
+void RecordLinkManagerStarting(const uint32 rel_types) {
+ const uint32 enum_value = rel_types & (RelTypeHistogramEnumMax - 1);
+ UMA_HISTOGRAM_ENUMERATION("Prerender.RelTypesLinkStarted", enum_value,
+ RelTypeHistogramEnumMax);
+}
+
void Send(int child_id, IPC::Message* raw_message) {
using content::RenderProcessHost;
scoped_ptr<IPC::Message> own_message(raw_message);
@@ -105,6 +131,7 @@ void PrerenderLinkManager::OnAddPrerender(int launcher_child_id,
prerender(launcher_child_id, prerender_id, url, rel_types, referrer, size,
render_view_route_id, manager_->GetCurrentTimeTicks());
prerenders_.push_back(prerender);
+ RecordLinkManagerAdded(rel_types);
StartPrerenders();
}
@@ -293,6 +320,7 @@ void PrerenderLinkManager::StartPrerenders() {
handle->SetObserver(this);
if (handle->IsPrerendering())
OnPrerenderStart(handle);
+ RecordLinkManagerStarting((*i)->rel_types);
running_launcher_and_render_view_routes.insert(
launcher_and_render_view_route);
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698