Commit abee7caa authored by Robert Ogden's avatar Robert Ogden Committed by Commit Bot

Move NavThrottle enums to a common place in //chrome/browser

Bug: 1005295
Change-Id: Icc50d85dc809eec07391039c079dfaa89f47a42a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1811869Reviewed-by: default avatarTarun Bansal <tbansal@chromium.org>
Commit-Queue: Robert Ogden <robertogden@chromium.org>
Cr-Commit-Position: refs/heads/master@{#698607}
parent b4b172fa
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include "chrome/browser/previews/previews_lite_page_decider.h" #include "chrome/browser/previews/previews_lite_page_decider.h"
#include "chrome/browser/previews/previews_lite_page_navigation_throttle.h" #include "chrome/browser/previews/previews_lite_page_navigation_throttle.h"
#include "chrome/browser/previews/previews_lite_page_navigation_throttle_manager.h" #include "chrome/browser/previews/previews_lite_page_navigation_throttle_manager.h"
#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
#include "chrome/browser/previews/previews_offline_helper.h" #include "chrome/browser/previews/previews_offline_helper.h"
#include "chrome/browser/previews/previews_service.h" #include "chrome/browser/previews/previews_service.h"
#include "chrome/browser/previews/previews_service_factory.h" #include "chrome/browser/previews/previews_service_factory.h"
...@@ -82,17 +83,16 @@ bool ShouldAllowRedirectPreview(content::NavigationHandle* navigation_handle) { ...@@ -82,17 +83,16 @@ bool ShouldAllowRedirectPreview(content::NavigationHandle* navigation_handle) {
PreviewsLitePageDecider* decider = PreviewsLitePageDecider* decider =
previews_service->previews_lite_page_decider(); previews_service->previews_lite_page_decider();
std::vector<PreviewsLitePageNavigationThrottle::IneligibleReason> std::vector<previews::LitePageRedirectIneligibleReason> ineligible_reasons;
ineligible_reasons;
if (!url.SchemeIs(url::kHttpsScheme)) { if (!url.SchemeIs(url::kHttpsScheme)) {
ineligible_reasons.push_back( ineligible_reasons.push_back(
PreviewsLitePageNavigationThrottle::IneligibleReason::kNonHttpsScheme); previews::LitePageRedirectIneligibleReason::kNonHttpsScheme);
} }
if (decider->IsServerUnavailable()) { if (decider->IsServerUnavailable()) {
ineligible_reasons.push_back(PreviewsLitePageNavigationThrottle:: ineligible_reasons.push_back(
IneligibleReason::kServerUnavailable); previews::LitePageRedirectIneligibleReason::kServerUnavailable);
} }
content_settings::CookieSettings* cookie_settings = content_settings::CookieSettings* cookie_settings =
...@@ -106,51 +106,46 @@ bool ShouldAllowRedirectPreview(content::NavigationHandle* navigation_handle) { ...@@ -106,51 +106,46 @@ bool ShouldAllowRedirectPreview(content::NavigationHandle* navigation_handle) {
&setting); &setting);
if (!content_settings::CookieSettingsBase::IsAllowed(setting)) { if (!content_settings::CookieSettingsBase::IsAllowed(setting)) {
ineligible_reasons.push_back( ineligible_reasons.push_back(
PreviewsLitePageNavigationThrottle::IneligibleReason::kCookiesBlocked); previews::LitePageRedirectIneligibleReason::kCookiesBlocked);
} }
if (!decider->has_drp_headers()) { if (!decider->has_drp_headers()) {
ineligible_reasons.push_back(PreviewsLitePageNavigationThrottle:: ineligible_reasons.push_back(
IneligibleReason::kInvalidProxyHeaders); previews::LitePageRedirectIneligibleReason::kInvalidProxyHeaders);
} }
if (previews::params::LitePageRedirectOnlyTriggerOnSuccessfulProbe()) { if (previews::params::LitePageRedirectOnlyTriggerOnSuccessfulProbe()) {
if (!decider->IsServerProbeResultAvailable()) { if (!decider->IsServerProbeResultAvailable()) {
ineligible_reasons.push_back( ineligible_reasons.push_back(
PreviewsLitePageNavigationThrottle::IneligibleReason:: previews::LitePageRedirectIneligibleReason::kServiceProbeIncomplete);
kServiceProbeIncomplete);
} else if (!decider->IsServerReachableByProbe()) { } else if (!decider->IsServerReachableByProbe()) {
ineligible_reasons.push_back(PreviewsLitePageNavigationThrottle:: ineligible_reasons.push_back(
IneligibleReason::kServiceProbeFailed); previews::LitePageRedirectIneligibleReason::kServiceProbeFailed);
} }
} }
// Record UMA. // Record UMA.
for (PreviewsLitePageNavigationThrottle::IneligibleReason reason : for (previews::LitePageRedirectIneligibleReason reason : ineligible_reasons) {
ineligible_reasons) { previews::LogLitePageRedirectIneligibleReason(reason);
PreviewsLitePageNavigationThrottle::LogIneligibleReason(reason);
} }
if (!ineligible_reasons.empty()) if (!ineligible_reasons.empty())
return false; return false;
// Check dynamic blacklists. // Check dynamic blacklists.
std::vector<PreviewsLitePageNavigationThrottle::BlacklistReason> std::vector<previews::LitePageRedirectBlacklistReason> blacklist_reasons;
blacklist_reasons;
if (IsPrivateDomain(url)) { if (IsPrivateDomain(url)) {
blacklist_reasons.push_back( blacklist_reasons.push_back(
PreviewsLitePageNavigationThrottle::BlacklistReason:: previews::LitePageRedirectBlacklistReason::kNavigationToPrivateDomain);
kNavigationToPrivateDomain);
} }
if (decider->HostBlacklistedFromBypass(url.host())) { if (decider->HostBlacklistedFromBypass(url.host())) {
blacklist_reasons.push_back(PreviewsLitePageNavigationThrottle:: blacklist_reasons.push_back(
BlacklistReason::kHostBypassBlacklisted); previews::LitePageRedirectBlacklistReason::kHostBypassBlacklisted);
} }
// Record UMA // Record UMA
for (PreviewsLitePageNavigationThrottle::BlacklistReason reason : for (previews::LitePageRedirectBlacklistReason reason : blacklist_reasons) {
blacklist_reasons) {
UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.BlacklistReasons", UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.BlacklistReasons",
reason); reason);
} }
...@@ -160,8 +155,8 @@ bool ShouldAllowRedirectPreview(content::NavigationHandle* navigation_handle) { ...@@ -160,8 +155,8 @@ bool ShouldAllowRedirectPreview(content::NavigationHandle* navigation_handle) {
// This should always be at the end, but before the control group check. // This should always be at the end, but before the control group check.
if (decider->NeedsToNotifyUser()) { if (decider->NeedsToNotifyUser()) {
PreviewsLitePageNavigationThrottle::LogIneligibleReason( previews::LogLitePageRedirectIneligibleReason(
PreviewsLitePageNavigationThrottle::IneligibleReason::kInfoBarNotSeen); previews::LitePageRedirectIneligibleReason::kInfoBarNotSeen);
return false; return false;
} }
......
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
#include "chrome/browser/metrics/subprocess_metrics_provider.h" #include "chrome/browser/metrics/subprocess_metrics_provider.h"
#include "chrome/browser/previews/previews_lite_page_decider.h" #include "chrome/browser/previews/previews_lite_page_decider.h"
#include "chrome/browser/previews/previews_lite_page_navigation_throttle.h" #include "chrome/browser/previews/previews_lite_page_navigation_throttle.h"
#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
#include "chrome/browser/previews/previews_service.h" #include "chrome/browser/previews/previews_service.h"
#include "chrome/browser/previews/previews_service_factory.h" #include "chrome/browser/previews/previews_service_factory.h"
#include "chrome/browser/previews/previews_ui_tab_helper.h" #include "chrome/browser/previews/previews_ui_tab_helper.h"
...@@ -1027,8 +1028,7 @@ IN_PROC_BROWSER_TEST_P( ...@@ -1027,8 +1028,7 @@ IN_PROC_BROWSER_TEST_P(
ui_test_utils::NavigateToURL(browser(), GURL("https://0.0.0.0/")); ui_test_utils::NavigateToURL(browser(), GURL("https://0.0.0.0/"));
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.BlacklistReasons", "Previews.ServerLitePage.BlacklistReasons",
PreviewsLitePageNavigationThrottle::BlacklistReason:: previews::LitePageRedirectBlacklistReason::kNavigationToPrivateDomain,
kNavigationToPrivateDomain,
1); 1);
VerifyErrorPageLoaded(); VerifyErrorPageLoaded();
} }
...@@ -1041,8 +1041,7 @@ IN_PROC_BROWSER_TEST_P( ...@@ -1041,8 +1041,7 @@ IN_PROC_BROWSER_TEST_P(
VerifyErrorPageLoaded(); VerifyErrorPageLoaded();
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.BlacklistReasons", "Previews.ServerLitePage.BlacklistReasons",
PreviewsLitePageNavigationThrottle::BlacklistReason:: previews::LitePageRedirectBlacklistReason::kNavigationToPrivateDomain,
kNavigationToPrivateDomain,
1); 1);
} }
...@@ -1099,8 +1098,7 @@ IN_PROC_BROWSER_TEST_P( ...@@ -1099,8 +1098,7 @@ IN_PROC_BROWSER_TEST_P(
VerifyPreviewNotLoaded(); VerifyPreviewNotLoaded();
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.IneligibleReasons", "Previews.ServerLitePage.IneligibleReasons",
PreviewsLitePageNavigationThrottle::IneligibleReason::kCookiesBlocked, previews::LitePageRedirectIneligibleReason::kCookiesBlocked, 1);
1);
// Reset state for other tests. // Reset state for other tests.
CookieSettingsFactory::GetForProfile(browser()->profile()) CookieSettingsFactory::GetForProfile(browser()->profile())
...@@ -1191,8 +1189,8 @@ IN_PROC_BROWSER_TEST_P( ...@@ -1191,8 +1189,8 @@ IN_PROC_BROWSER_TEST_P(
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.IneligibleReasons", "Previews.ServerLitePage.IneligibleReasons",
static_cast<int>(PreviewsLitePageNavigationThrottle::IneligibleReason:: static_cast<int>(
kInvalidProxyHeaders), previews::LitePageRedirectIneligibleReason::kInvalidProxyHeaders),
1); 1);
} }
...@@ -1273,7 +1271,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest, ...@@ -1273,7 +1271,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
ClearDeciderState(); ClearDeciderState();
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kRedirect, 1); previews::LitePageRedirectServerResponse::kRedirect, 1);
} }
{ {
...@@ -1286,10 +1284,10 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest, ...@@ -1286,10 +1284,10 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kRedirect, 1); previews::LitePageRedirectServerResponse::kRedirect, 1);
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kOk, 1); previews::LitePageRedirectServerResponse::kOk, 1);
} }
} }
...@@ -1304,8 +1302,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest, ...@@ -1304,8 +1302,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
ClearDeciderState(); ClearDeciderState();
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kPreviewUnavailable, previews::LitePageRedirectServerResponse::kPreviewUnavailable, 1);
1);
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.HostBlacklistedOnBypass", false, 1); "Previews.ServerLitePage.HostBlacklistedOnBypass", false, 1);
...@@ -1321,8 +1318,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest, ...@@ -1321,8 +1318,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kPreviewUnavailable, previews::LitePageRedirectServerResponse::kPreviewUnavailable, 1);
1);
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.HostBlacklistedOnBypass", true, 1); "Previews.ServerLitePage.HostBlacklistedOnBypass", true, 1);
...@@ -1330,9 +1326,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest, ...@@ -1330,9 +1326,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
VerifyPreviewNotLoaded(); VerifyPreviewNotLoaded();
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.BlacklistReasons", "Previews.ServerLitePage.BlacklistReasons",
PreviewsLitePageNavigationThrottle::BlacklistReason:: previews::LitePageRedirectBlacklistReason::kHostBypassBlacklisted, 1);
kHostBypassBlacklisted,
1);
ClearDeciderState(); ClearDeciderState();
ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess)); ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
...@@ -1347,7 +1341,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest, ...@@ -1347,7 +1341,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
ClearDeciderState(); ClearDeciderState();
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kAuthFailure, 1); previews::LitePageRedirectServerResponse::kAuthFailure, 1);
} }
{ {
...@@ -1358,8 +1352,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest, ...@@ -1358,8 +1352,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
ClearDeciderState(); ClearDeciderState();
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kServiceUnavailable, previews::LitePageRedirectServerResponse::kServiceUnavailable, 1);
1);
} }
} }
...@@ -1607,7 +1600,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerTimeoutBrowserTest, ...@@ -1607,7 +1600,7 @@ IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerTimeoutBrowserTest,
ClearDeciderState(); ClearDeciderState();
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kTimeout, 1); previews::LitePageRedirectServerResponse::kTimeout, 1);
} }
{ {
...@@ -1658,9 +1651,7 @@ IN_PROC_BROWSER_TEST_P( ...@@ -1658,9 +1651,7 @@ IN_PROC_BROWSER_TEST_P(
VerifyPreviewNotLoaded(); VerifyPreviewNotLoaded();
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.IneligibleReasons", "Previews.ServerLitePage.IneligibleReasons",
PreviewsLitePageNavigationThrottle::IneligibleReason:: previews::LitePageRedirectIneligibleReason::kServiceProbeFailed, 1);
kServiceProbeFailed,
1);
} }
} }
...@@ -1786,7 +1777,7 @@ IN_PROC_BROWSER_TEST_P( ...@@ -1786,7 +1777,7 @@ IN_PROC_BROWSER_TEST_P(
->GetMessageText()); ->GetMessageText());
histogram_tester.ExpectBucketCount( histogram_tester.ExpectBucketCount(
"Previews.ServerLitePage.IneligibleReasons", "Previews.ServerLitePage.IneligibleReasons",
PreviewsLitePageNavigationThrottle::IneligibleReason::kInfoBarNotSeen, 1); previews::LitePageRedirectIneligibleReason::kInfoBarNotSeen, 1);
} }
class PreviewsLitePageDSDisabledBrowserTest class PreviewsLitePageDSDisabledBrowserTest
......
...@@ -65,14 +65,6 @@ bool HandlePreviewsLitePageURLRewriteReverse( ...@@ -65,14 +65,6 @@ bool HandlePreviewsLitePageURLRewriteReverse(
return false; return false;
} }
// static
void PreviewsLitePageNavigationThrottle::LogIneligibleReason(
IneligibleReason reason) {
UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.IneligibleReasons",
reason);
}
// static // static
GURL PreviewsLitePageNavigationThrottle::GetPreviewsURLForURL( GURL PreviewsLitePageNavigationThrottle::GetPreviewsURLForURL(
const GURL& original_url) { const GURL& original_url) {
......
...@@ -33,85 +33,9 @@ bool HandlePreviewsLitePageURLRewriteReverse( ...@@ -33,85 +33,9 @@ bool HandlePreviewsLitePageURLRewriteReverse(
class PreviewsLitePageNavigationThrottle { class PreviewsLitePageNavigationThrottle {
public: public:
// Reasons that a navigation is blacklisted from this preview. This enum must
// remain synchronized with the enum |PreviewsServerLitePageBlacklistReason|
// in tools/metrics/histograms/enums.xml.
enum class BlacklistReason {
kPathSuffixBlacklisted_DEPRECATED = 0,
kNavigationToPreviewsDomain = 1,
kNavigationToPrivateDomain = 2,
kHostBypassBlacklisted = 3,
kMaxValue = kHostBypassBlacklisted,
};
// Reasons that a navigation is not eligible for this preview. This enum must
// remain synchronized with the enum |PreviewsServerLitePageIneligibleReason|
// in tools/metrics/histograms/enums.xml.
enum class IneligibleReason {
kNonHttpsScheme = 0,
kHttpPost_DEPRECATED = 1,
kSubframeNavigation = 2,
kServerUnavailable = 3,
kInfoBarNotSeen = 4,
kNetworkNotSlow_DEPRECATED = 5,
kLoadOriginalReload = 6,
kCookiesBlocked = 7,
kECTUnknown_DEPRECATED = 8,
kExceededMaxNavigationRestarts = 9,
kPreviewsState_DEPRECATED = 10,
kInvalidProxyHeaders = 11,
kServiceProbeIncomplete = 12,
kServiceProbeFailed = 13,
kMaxValue = kServiceProbeFailed,
};
// The response type from the previews server. This enum must
// remain synchronized with the enum |PreviewsServerLitePageServerResponse| in
// tools/metrics/histograms/enums.xml.
enum class ServerResponse {
// A preview was served (HTTP 200).
kOk = 0,
// The client was redirected to another page (HTTP 307).
kRedirect = 1,
// The requested preview was not available (HTTP 307).
kPreviewUnavailable = 2,
// The previews server is not available (HTTP 503).
kServiceUnavailable = 3,
// The previews server responded with some other HTTP code.
kOther = 4,
// There was some network error and we did not get a response from the
// previews server.
kFailed = 5,
// The previews server did not respond after a timeout.
kTimeout = 6,
// The previews server rejected our authentication (HTTP 403).
kAuthFailure = 7,
// No response headers were available from the preview server.
kNoResponseHeaders = 8,
// The connection was closed without getting a response.
kOnCompleteBeforeOnResponse = 9,
// There was an error connecting to the previews server.
kConnectionError = 10,
kMaxValue = kConnectionError,
};
// Returns the URL for a preview given by the url. // Returns the URL for a preview given by the url.
static GURL GetPreviewsURLForURL(const GURL& original_url); static GURL GetPreviewsURLForURL(const GURL& original_url);
// Records an entry in the ineligibility histogram.
static void LogIneligibleReason(IneligibleReason reason);
// Gets the ServerLitePageInfo struct from an existing attempted lite page // Gets the ServerLitePageInfo struct from an existing attempted lite page
// navigation, if there is one. If not, returns a new ServerLitePageInfo // navigation, if there is one. If not, returns a new ServerLitePageInfo
// initialized with metadata from navigation_handle() and |this| that is owned // initialized with metadata from navigation_handle() and |this| that is owned
......
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
#include "base/threading/thread_task_runner_handle.h" #include "base/threading/thread_task_runner_handle.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "chrome/browser/previews/previews_lite_page_decider.h" #include "chrome/browser/previews/previews_lite_page_decider.h"
#include "chrome/browser/previews/previews_lite_page_navigation_throttle.h"
#include "chrome/browser/previews/previews_lite_page_navigation_throttle_manager.h" #include "chrome/browser/previews/previews_lite_page_navigation_throttle_manager.h"
#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
#include "chrome/browser/previews/previews_service.h" #include "chrome/browser/previews/previews_service.h"
#include "chrome/browser/previews/previews_service_factory.h" #include "chrome/browser/previews/previews_service_factory.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
...@@ -195,9 +195,8 @@ void PreviewsLitePageServingURLLoader::Timeout() { ...@@ -195,9 +195,8 @@ void PreviewsLitePageServingURLLoader::Timeout() {
if (result_callback_.is_null()) if (result_callback_.is_null())
return; return;
UMA_HISTOGRAM_ENUMERATION( UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.ServerResponse",
"Previews.ServerLitePage.ServerResponse", previews::LitePageRedirectServerResponse::kTimeout);
PreviewsLitePageNavigationThrottle::ServerResponse::kTimeout);
Fallback(); Fallback();
} }
...@@ -259,16 +258,16 @@ void PreviewsLitePageServingURLLoader::OnReceiveResponse( ...@@ -259,16 +258,16 @@ void PreviewsLitePageServingURLLoader::OnReceiveResponse(
if (!response_headers) { if (!response_headers) {
UMA_HISTOGRAM_ENUMERATION( UMA_HISTOGRAM_ENUMERATION(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kNoResponseHeaders); previews::LitePageRedirectServerResponse::kNoResponseHeaders);
Fallback(); Fallback();
return; return;
} }
if (response_headers->response_code() != net::HTTP_OK) { if (response_headers->response_code() != net::HTTP_OK) {
if (response_headers->response_code() == net::HTTP_SERVICE_UNAVAILABLE) { if (response_headers->response_code() == net::HTTP_SERVICE_UNAVAILABLE) {
UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.ServerResponse", UMA_HISTOGRAM_ENUMERATION(
PreviewsLitePageNavigationThrottle:: "Previews.ServerLitePage.ServerResponse",
ServerResponse::kServiceUnavailable); previews::LitePageRedirectServerResponse::kServiceUnavailable);
std::string retry_after_header; std::string retry_after_header;
base::TimeDelta retry_after = base::TimeDelta::FromSeconds(base::RandInt( base::TimeDelta retry_after = base::TimeDelta::FromSeconds(base::RandInt(
60, previews::params::PreviewServerLoadshedMaxSeconds())); 60, previews::params::PreviewServerLoadshedMaxSeconds()));
...@@ -281,20 +280,19 @@ void PreviewsLitePageServingURLLoader::OnReceiveResponse( ...@@ -281,20 +280,19 @@ void PreviewsLitePageServingURLLoader::OnReceiveResponse(
} else if (response_headers->response_code() == net::HTTP_FORBIDDEN) { } else if (response_headers->response_code() == net::HTTP_FORBIDDEN) {
UMA_HISTOGRAM_ENUMERATION( UMA_HISTOGRAM_ENUMERATION(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kAuthFailure); previews::LitePageRedirectServerResponse::kAuthFailure);
} else { } else {
UMA_HISTOGRAM_ENUMERATION( UMA_HISTOGRAM_ENUMERATION(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kOther); previews::LitePageRedirectServerResponse::kOther);
} }
Fallback(); Fallback();
return; return;
} }
UMA_HISTOGRAM_ENUMERATION( UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.ServerResponse",
"Previews.ServerLitePage.ServerResponse", previews::LitePageRedirectServerResponse::kOk);
PreviewsLitePageNavigationThrottle::ServerResponse::kOk);
// Store head and pause new messages until the forwarding client is set up. // Store head and pause new messages until the forwarding client is set up.
// Make a deep copy of ResourceResponseHead before passing it cross-thread. // Make a deep copy of ResourceResponseHead before passing it cross-thread.
...@@ -333,9 +331,9 @@ void PreviewsLitePageServingURLLoader::OnReceiveRedirect( ...@@ -333,9 +331,9 @@ void PreviewsLitePageServingURLLoader::OnReceiveRedirect(
if (previews::ExtractOriginalURLFromLitePageRedirectURL(previews_url_, if (previews::ExtractOriginalURLFromLitePageRedirectURL(previews_url_,
&original_url) && &original_url) &&
GURL(original_url) == redirect_info.new_url) { GURL(original_url) == redirect_info.new_url) {
UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.ServerResponse", UMA_HISTOGRAM_ENUMERATION(
PreviewsLitePageNavigationThrottle:: "Previews.ServerLitePage.ServerResponse",
ServerResponse::kPreviewUnavailable); previews::LitePageRedirectServerResponse::kPreviewUnavailable);
const net::HttpResponseHeaders* response_headers = head->headers.get(); const net::HttpResponseHeaders* response_headers = head->headers.get();
std::string chrome_proxy_header; std::string chrome_proxy_header;
...@@ -359,7 +357,7 @@ void PreviewsLitePageServingURLLoader::OnReceiveRedirect( ...@@ -359,7 +357,7 @@ void PreviewsLitePageServingURLLoader::OnReceiveRedirect(
UMA_HISTOGRAM_ENUMERATION( UMA_HISTOGRAM_ENUMERATION(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kRedirect); previews::LitePageRedirectServerResponse::kRedirect);
std::move(result_callback_) std::move(result_callback_)
.Run(ServingLoaderResult::kRedirect, redirect_info, resource_response_); .Run(ServingLoaderResult::kRedirect, redirect_info, resource_response_);
...@@ -405,9 +403,9 @@ void PreviewsLitePageServingURLLoader::OnComplete( ...@@ -405,9 +403,9 @@ void PreviewsLitePageServingURLLoader::OnComplete(
"Previews.ServerLitePage.ServerNetError.BeforeCommit", "Previews.ServerLitePage.ServerNetError.BeforeCommit",
-status.error_code); -status.error_code);
UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.ServerResponse", UMA_HISTOGRAM_ENUMERATION(
PreviewsLitePageNavigationThrottle::ServerResponse:: "Previews.ServerLitePage.ServerResponse",
kOnCompleteBeforeOnResponse); previews::LitePageRedirectServerResponse::kOnCompleteBeforeOnResponse);
// If OnComplete is called before, OnReceiveResponse, this is indicative of a // If OnComplete is called before, OnReceiveResponse, this is indicative of a
// failure of some sort. // failure of some sort.
...@@ -449,7 +447,7 @@ void PreviewsLitePageServingURLLoader::OnConnectionError() { ...@@ -449,7 +447,7 @@ void PreviewsLitePageServingURLLoader::OnConnectionError() {
if (!result_callback_.is_null()) { if (!result_callback_.is_null()) {
UMA_HISTOGRAM_ENUMERATION( UMA_HISTOGRAM_ENUMERATION(
"Previews.ServerLitePage.ServerResponse", "Previews.ServerLitePage.ServerResponse",
PreviewsLitePageNavigationThrottle::ServerResponse::kConnectionError); previews::LitePageRedirectServerResponse::kConnectionError);
Fallback(); Fallback();
return; return;
} }
......
...@@ -77,6 +77,12 @@ net::HttpRequestHeaders GetChromeProxyHeaders( ...@@ -77,6 +77,12 @@ net::HttpRequestHeaders GetChromeProxyHeaders(
} // namespace } // namespace
void LogLitePageRedirectIneligibleReason(
LitePageRedirectIneligibleReason reason) {
UMA_HISTOGRAM_ENUMERATION("Previews.ServerLitePage.IneligibleReasons",
reason);
}
PreviewsLitePageURLLoaderInterceptor::PreviewsLitePageURLLoaderInterceptor( PreviewsLitePageURLLoaderInterceptor::PreviewsLitePageURLLoaderInterceptor(
const scoped_refptr<network::SharedURLLoaderFactory>& const scoped_refptr<network::SharedURLLoaderFactory>&
network_loader_factory, network_loader_factory,
......
...@@ -21,6 +21,85 @@ ...@@ -21,6 +21,85 @@
namespace previews { namespace previews {
// Reasons that a navigation is blacklisted from a lite page redirect preview.
// This enum must remain synchronized with the enum
// |PreviewsServerLitePageBlacklistReason| in
// tools/metrics/histograms/enums.xml.
enum class LitePageRedirectBlacklistReason {
// DEPRECATED: kPathSuffixBlacklisted = 0,
kNavigationToPreviewsDomain = 1,
kNavigationToPrivateDomain = 2,
kHostBypassBlacklisted = 3,
kMaxValue = kHostBypassBlacklisted,
};
// Reasons that a navigation is not eligible for a lite page redirect preview.
// This enum must remain synchronized with the enum
// |PreviewsServerLitePageIneligibleReason| in
// tools/metrics/histograms/enums.xml.
enum class LitePageRedirectIneligibleReason {
kNonHttpsScheme = 0,
// DEPRECATED: kHttpPost = 1,
kSubframeNavigation = 2,
kServerUnavailable = 3,
kInfoBarNotSeen = 4,
// DEPRECATED: kNetworkNotSlow = 5,
kLoadOriginalReload = 6,
kCookiesBlocked = 7,
// DEPRECATED: kECTUnknown = 8,
kExceededMaxNavigationRestarts = 9,
// DEPRECATED: kPreviewsState = 10,
kInvalidProxyHeaders = 11,
kServiceProbeIncomplete = 12,
kServiceProbeFailed = 13,
kMaxValue = kServiceProbeFailed,
};
// The response type from the previews server. This enum must
// remain synchronized with the enum |PreviewsServerLitePageServerResponse| in
// tools/metrics/histograms/enums.xml.
enum class LitePageRedirectServerResponse {
// A preview was served (HTTP 200).
kOk = 0,
// The client was redirected to another page (HTTP 307).
kRedirect = 1,
// The requested preview was not available (HTTP 307).
kPreviewUnavailable = 2,
// The previews server is not available (HTTP 503).
kServiceUnavailable = 3,
// The previews server responded with some other HTTP code.
kOther = 4,
// There was some network error and we did not get a response from the
// previews server.
kFailed = 5,
// The previews server did not respond after a timeout.
kTimeout = 6,
// The previews server rejected our authentication (HTTP 403).
kAuthFailure = 7,
// No response headers were available from the preview server.
kNoResponseHeaders = 8,
// The connection was closed without getting a response.
kOnCompleteBeforeOnResponse = 9,
// There was an error connecting to the previews server.
kConnectionError = 10,
kMaxValue = kConnectionError,
};
// Records an entry in the lite page redirect ineligibility histogram.
void LogLitePageRedirectIneligibleReason(
LitePageRedirectIneligibleReason reason);
// A class that attempts to intercept requests and fetch the Lite Page version // A class that attempts to intercept requests and fetch the Lite Page version
// of the request. Its lifetime matches that of the content/ navigation loader // of the request. Its lifetime matches that of the content/ navigation loader
// code. Currently, not fully implemented. // code. Currently, not fully implemented.
......
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