Commit 53634656 authored by Doug Arnett's avatar Doug Arnett Committed by Commit Bot

[Previews] Records overall counts for 3 Previews histograms

Records preview-type-agnostic counts for: Previews.OptOut.UserOptedOut,
Previews.PageEndReason, and Previews.EligibilityReason

Bug: 904009
Change-Id: I13506b3b002a83a78d38a79006a02afa13a1c29f
Reviewed-on: https://chromium-review.googlesource.com/c/1354564Reviewed-by: default avatarRyan Sturm <ryansturm@chromium.org>
Commit-Queue: Doug Arnett <dougarnett@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612226}
parent 232d4987
......@@ -5,6 +5,7 @@
#include "chrome/browser/page_load_metrics/observers/previews_ukm_observer.h"
#include "base/metrics/histogram_functions.h"
#include "base/metrics/histogram_macros.h"
#include "base/optional.h"
#include "base/time/time.h"
#include "chrome/browser/browser_process.h"
......@@ -109,6 +110,9 @@ void PreviewsUKMObserver::OnComplete(
void PreviewsUKMObserver::RecordPreviewsTypes(
const page_load_metrics::PageLoadExtraInfo& info) {
// Record the page end reason in UMA.
UMA_HISTOGRAM_ENUMERATION(
"Previews.PageEndReason", info.page_end_reason,
page_load_metrics::PageEndReason::PAGE_END_REASON_COUNT);
base::UmaHistogramExactLinear(
base::StringPrintf(
"Previews.PageEndReason.%s",
......
......@@ -872,6 +872,9 @@ TEST_F(PreviewsUKMObserverTest, TestPageEndReasonUMA) {
NavigateToUntrackedUrl();
tester.ExpectUniqueSample(
"Previews.PageEndReason",
page_load_metrics::PageEndReason::END_NEW_NAVIGATION, 1);
tester.ExpectUniqueSample(
"Previews.PageEndReason." + GetStringNameForType(type),
page_load_metrics::PageEndReason::END_NEW_NAVIGATION, 1);
......
......@@ -13,6 +13,7 @@
#include "base/files/file_path.h"
#include "base/location.h"
#include "base/metrics/histogram.h"
#include "base/metrics/histogram_macros.h"
#include "base/sequenced_task_runner.h"
#include "base/stl_util.h"
#include "base/strings/stringprintf.h"
......@@ -30,6 +31,8 @@ namespace {
void LogPreviewsEligibilityReason(PreviewsEligibilityReason status,
PreviewsType type) {
UMA_HISTOGRAM_ENUMERATION("Previews.EligibilityReason", status,
PreviewsEligibilityReason::LAST);
int32_t max_limit = static_cast<int32_t>(PreviewsEligibilityReason::LAST);
base::LinearHistogram::FactoryGet(
base::StringPrintf("Previews.EligibilityReason.%s",
......
......@@ -444,6 +444,10 @@ TEST_F(PreviewsDeciderImplTest, TestDisallowPreviewBecauseOfBlackListState) {
EXPECT_FALSE(previews_decider_impl()->ShouldAllowPreviewAtNavigationStart(
&user_data, GURL("https://www.google.com"), false,
PreviewsType::OFFLINE));
histogram_tester.ExpectBucketCount(
"Previews.EligibilityReason",
static_cast<int>(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED),
1);
histogram_tester.ExpectBucketCount(
"Previews.EligibilityReason.Offline",
static_cast<int>(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED),
......@@ -465,6 +469,10 @@ TEST_F(PreviewsDeciderImplTest, TestDisallowPreviewBecauseOfBlackListState) {
"Previews.EligibilityReason.Offline",
static_cast<int>(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED),
2);
histogram_tester.ExpectBucketCount(
"Previews.EligibilityReason",
static_cast<int>(PreviewsEligibilityReason::BLACKLIST_DATA_NOT_LOADED),
2);
histogram_tester.ExpectTotalCount("Previews.EligibilityReason.NoScript", 0);
variations::testing::ClearAllVariationParams();
......@@ -507,6 +515,10 @@ TEST_F(PreviewsDeciderImplTest,
"Previews.EligibilityReason.Offline",
static_cast<int>(PreviewsEligibilityReason::NETWORK_QUALITY_UNAVAILABLE),
1);
histogram_tester.ExpectUniqueSample(
"Previews.EligibilityReason",
static_cast<int>(PreviewsEligibilityReason::NETWORK_QUALITY_UNAVAILABLE),
1);
}
TEST_F(PreviewsDeciderImplTest, TestAllowLitePageWhenNetworkQualityFast) {
......@@ -556,6 +568,9 @@ TEST_F(PreviewsDeciderImplTest, TestDisallowOfflineOnReload) {
base::HistogramTester histogram_tester;
EXPECT_FALSE(previews_decider_impl()->ShouldAllowPreviewAtNavigationStart(
&user_data, GURL("https://www.google.com"), true, PreviewsType::OFFLINE));
histogram_tester.ExpectUniqueSample(
"Previews.EligibilityReason",
static_cast<int>(PreviewsEligibilityReason::RELOAD_DISALLOWED), 1);
histogram_tester.ExpectUniqueSample(
"Previews.EligibilityReason.Offline",
static_cast<int>(PreviewsEligibilityReason::RELOAD_DISALLOWED), 1);
......@@ -900,6 +915,9 @@ TEST_F(PreviewsDeciderImplTest,
&user_data, GURL("https://www.google.com"), false,
PreviewsType::LITE_PAGE_REDIRECT));
histogram_tester.ExpectUniqueSample(
"Previews.EligibilityReason",
static_cast<int>(PreviewsEligibilityReason::ALLOWED), 1);
histogram_tester.ExpectUniqueSample(
"Previews.EligibilityReason.LitePageRedirect",
static_cast<int>(PreviewsEligibilityReason::ALLOWED), 1);
......@@ -930,6 +948,10 @@ TEST_F(PreviewsDeciderImplTest, LitePageRedirectDisallowedByServerBlacklist) {
&user_data, GURL("https://blacklisted.example.com"), false,
PreviewsType::LITE_PAGE_REDIRECT));
histogram_tester.ExpectBucketCount(
"Previews.EligibilityReason",
static_cast<int>(PreviewsEligibilityReason::HOST_BLACKLISTED_BY_SERVER),
1);
histogram_tester.ExpectBucketCount(
"Previews.EligibilityReason.LitePageRedirect",
static_cast<int>(PreviewsEligibilityReason::HOST_BLACKLISTED_BY_SERVER),
......@@ -962,6 +984,11 @@ TEST_F(PreviewsDeciderImplTest,
EXPECT_FALSE(previews_decider_impl()->ShouldAllowPreviewAtNavigationStart(
&user_data, GURL("https://whitelisted.example.com"), false,
PreviewsType::RESOURCE_LOADING_HINTS));
histogram_tester.ExpectUniqueSample(
"Previews.EligibilityReason",
static_cast<int>(
PreviewsEligibilityReason::HOST_NOT_WHITELISTED_BY_SERVER),
1);
histogram_tester.ExpectUniqueSample(
"Previews.EligibilityReason.ResourceLoadingHints",
static_cast<int>(
......
......@@ -7,6 +7,7 @@
#include "base/bind.h"
#include "base/memory/ptr_util.h"
#include "base/metrics/histogram.h"
#include "base/metrics/histogram_macros.h"
#include "base/optional.h"
#include "base/strings/stringprintf.h"
#include "base/time/clock.h"
......@@ -95,7 +96,7 @@ base::Time PreviewsBlackList::AddPreviewNavigation(const GURL& url,
bool opt_out,
PreviewsType type) {
DCHECK(url.has_host());
UMA_HISTOGRAM_BOOLEAN("Previews.OptOut.UserOptedOut", opt_out);
base::BooleanHistogram::FactoryGet(
base::StringPrintf("Previews.OptOut.UserOptedOut.%s",
GetStringNameForType(type).c_str()),
......
......@@ -177,9 +177,11 @@ TEST_F(PreviewsBlackListTest, AddPreviewUMA) {
black_list_->AddPreviewNavigation(url, false, PreviewsType::OFFLINE);
histogram_tester.ExpectUniqueSample("Previews.OptOut.UserOptedOut.Offline", 0,
1);
histogram_tester.ExpectUniqueSample("Previews.OptOut.UserOptedOut", 0, 1);
black_list_->AddPreviewNavigation(url, true, PreviewsType::OFFLINE);
histogram_tester.ExpectBucketCount("Previews.OptOut.UserOptedOut.Offline", 1,
1);
histogram_tester.ExpectBucketCount("Previews.OptOut.UserOptedOut", 1, 1);
}
TEST_F(PreviewsBlackListTest, SessionParams) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment