| 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 30846b4b26e92107e453b4a8dfde977405a489f5..ec6d2ac9cbbbd1bc2a80dc84c46df29319d4bd1c 100644
|
| --- a/chrome/browser/prerender/prerender_link_manager.cc
|
| +++ b/chrome/browser/prerender/prerender_link_manager.cc
|
| @@ -12,6 +12,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"
|
| @@ -42,7 +43,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();
|
|
|
| @@ -55,6 +56,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 {
|
| + 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);
|
| @@ -163,6 +189,7 @@ void PrerenderLinkManager::OnAddPrerender(int launcher_child_id,
|
| render_view_route_id, manager_->GetCurrentTimeTicks(),
|
| prerender_contents);
|
| prerenders_.push_back(prerender);
|
| + RecordLinkManagerAdded(rel_types);
|
| if (prerender_contents)
|
| pending_prerender_manager_->ObserveLauncher(prerender_contents);
|
| else
|
| @@ -360,6 +387,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);
|
|
|