From 6bbab2e51655e7383929305389734fe77e8217a0 Mon Sep 17 00:00:00 2001 From: mdw Date: Mon, 30 Nov 2015 09:48:07 -0800 Subject: [PATCH] Fix to Google CAPTCHA UMA collection to avoid double-counting solutions. In some cases, a CAPTCHA solution will itself redirect (e.g., from http:// to https://). This CL fixes the double-counting problem. BUG=560470 Review URL: https://codereview.chromium.org/1465313003 Cr-Commit-Position: refs/heads/master@{#362156} --- .../observers/google_captcha_observer.cc | 8 ++++++-- .../page_load_metrics/observers/google_captcha_observer.h | 1 + 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/chrome/browser/page_load_metrics/observers/google_captcha_observer.cc b/chrome/browser/page_load_metrics/observers/google_captcha_observer.cc index 960cc3420b8d7..c961d9cdc7435 100644 --- a/chrome/browser/page_load_metrics/observers/google_captcha_observer.cc +++ b/chrome/browser/page_load_metrics/observers/google_captcha_observer.cc @@ -43,18 +43,22 @@ bool IsGoogleCaptcha(const GURL& url) { GoogleCaptchaObserver::GoogleCaptchaObserver( page_load_metrics::PageLoadMetricsObservable* metrics) - : metrics_(metrics) {} + : saw_solution_(false), metrics_(metrics) {} void GoogleCaptchaObserver::OnCommit( content::NavigationHandle* navigation_handle) { if (IsGoogleCaptcha(navigation_handle->GetURL())) RecordGoogleCaptchaEvent(GOOGLE_CAPTCHA_SHOWN); + if (saw_solution_) { + RecordGoogleCaptchaEvent(GOOGLE_CAPTCHA_SOLVED); + saw_solution_ = false; + } } void GoogleCaptchaObserver::OnRedirect( content::NavigationHandle* navigation_handle) { if (IsGoogleCaptcha(navigation_handle->GetReferrer().url)) - RecordGoogleCaptchaEvent(GOOGLE_CAPTCHA_SOLVED); + saw_solution_ = true; } void GoogleCaptchaObserver::OnPageLoadMetricsGoingAway() { diff --git a/chrome/browser/page_load_metrics/observers/google_captcha_observer.h b/chrome/browser/page_load_metrics/observers/google_captcha_observer.h index 4b0cfc520445e..473b9e95d0612 100644 --- a/chrome/browser/page_load_metrics/observers/google_captcha_observer.h +++ b/chrome/browser/page_load_metrics/observers/google_captcha_observer.h @@ -25,6 +25,7 @@ class GoogleCaptchaObserver void OnPageLoadMetricsGoingAway() override; private: + bool saw_solution_; page_load_metrics::PageLoadMetricsObservable* const metrics_; DISALLOW_COPY_AND_ASSIGN(GoogleCaptchaObserver);