Index: components/page_load_metrics/browser/metrics_web_contents_observer.h |
diff --git a/components/page_load_metrics/browser/metrics_web_contents_observer.h b/components/page_load_metrics/browser/metrics_web_contents_observer.h |
index 4a9e061a00a94cdb55701d37ebe20d12e894aca1..9f1a184518551e7be259b016724162161d2bc7df 100644 |
--- a/components/page_load_metrics/browser/metrics_web_contents_observer.h |
+++ b/components/page_load_metrics/browser/metrics_web_contents_observer.h |
@@ -33,6 +33,9 @@ class RapporService; |
namespace page_load_metrics { |
+// Returns true if the given URL matches a Google CAPTCHA page. |
+bool IsGoogleCaptcha(const GURL& url); |
+ |
// These constants are for keeping the tests in sync. |
const char kHistogramNameFirstLayout[] = |
"PageLoad.Timing2.NavigationToFirstLayout"; |
@@ -60,6 +63,8 @@ const char kErrorEvents[] = "PageLoad.Events.InternalError"; |
const char kRapporMetricsNameCoarseTiming[] = |
"PageLoad.CoarseTiming.NavigationToFirstContentfulPaint"; |
+const char kHistogramNameGoogleCaptcha[] = "PageLoad.Events.GoogleCaptcha"; |
+ |
// NOTE: Some of these histograms are separated into a separate histogram |
// specified by the ".Background" suffix. For these events, we put them into the |
// background histogram if the web contents was ever in the background from |
@@ -158,6 +163,16 @@ enum InternalErrorLoadEvent { |
ERR_LAST_ENTRY |
}; |
+// Values of the UMA PageLoad.Events.GoogleCaptcha histogram. |
+enum GoogleCaptchaEvent { |
+ // A Google CAPTCHA page was shown to the user. |
+ GOOGLE_CAPTCHA_SHOWN, |
+ // A Google CAPTCHA page was solved by the user. |
+ GOOGLE_CAPTCHA_SOLVED, |
+ // Add new values before this final count. |
+ GOOGLE_CAPTCHA_EVENT_BOUNDARY, |
+}; |
+ |
// This class tracks a given page load, starting from navigation start / |
// provisional load, until a new navigation commits or the navigation fails. It |
// also records RAPPOR/UMA about the page load. |
@@ -239,6 +254,8 @@ class MetricsWebContentsObserver |
content::NavigationHandle* navigation_handle) override; |
void DidFinishNavigation( |
content::NavigationHandle* navigation_handle) override; |
+ void DidRedirectNavigation( |
+ content::NavigationHandle* navigation_handle) override; |
void WasShown() override; |
void WasHidden() override; |