blob: 5d82004a9f3abd9dfbd8c6cfbd2a63cee268cbf3 [file] [log] [blame]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/no_state_prefetch/browser/no_state_prefetch_histograms.h"
#include <string>
#include "base/check_op.h"
#include "base/metrics/histogram.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "base/notreached.h"
#include "components/no_state_prefetch/common/no_state_prefetch_utils.h"
namespace prerender {
namespace {
std::string GetHistogramName(Origin origin, const std::string& name) {
return ComposeHistogramName(
NoStatePrefetchHistograms::GetHistogramPrefix(origin), name);
}
} // namespace
std::string NoStatePrefetchHistograms::GetHistogramPrefix(Origin origin) {
switch (origin) {
case ORIGIN_NONE:
return "none";
case ORIGIN_LINK_REL_PRERENDER_SAMEDOMAIN:
return "websame";
case ORIGIN_LINK_REL_PRERENDER_CROSSDOMAIN:
return "webcross";
case ORIGIN_LINK_REL_NEXT:
return "webnext";
case ORIGIN_GWS_PRERENDER:
return "gws";
case ORIGIN_NAVIGATION_PREDICTOR:
return "navigationpredictor";
case ORIGIN_SAME_ORIGIN_SPECULATION:
return "sameoriginspeculation";
case ORIGIN_MAX:
NOTREACHED();
}
// Dummy return value to make the compiler happy.
return "none";
}
void NoStatePrefetchHistograms::RecordFinalStatus(
Origin origin,
FinalStatus final_status) const {
DCHECK(final_status != FINAL_STATUS_MAX);
base::UmaHistogramEnumeration(GetHistogramName(origin, "FinalStatus"),
final_status, FINAL_STATUS_MAX);
base::UmaHistogramEnumeration(ComposeHistogramName("", "FinalStatus"),
final_status, FINAL_STATUS_MAX);
}
} // namespace prerender