| Index: chrome/browser/page_load_metrics/observers/google_captcha_observer.cc
|
| 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 c961d9cdc74354ae1237d14e7c7b581bf902334f..9d47fd0435ea6a911d2a889c06c8ede9484a3977 100644
|
| --- a/chrome/browser/page_load_metrics/observers/google_captcha_observer.cc
|
| +++ b/chrome/browser/page_load_metrics/observers/google_captcha_observer.cc
|
| @@ -41,29 +41,22 @@ bool IsGoogleCaptcha(const GURL& url) {
|
| && base::StartsWith(url.path(), "/sorry", base::CompareCase::SENSITIVE);
|
| }
|
|
|
| -GoogleCaptchaObserver::GoogleCaptchaObserver(
|
| - page_load_metrics::PageLoadMetricsObservable* metrics)
|
| - : saw_solution_(false), metrics_(metrics) {}
|
| +GoogleCaptchaObserver::GoogleCaptchaObserver() : saw_solution_(false) {}
|
|
|
| void GoogleCaptchaObserver::OnCommit(
|
| content::NavigationHandle* navigation_handle) {
|
| - if (IsGoogleCaptcha(navigation_handle->GetURL()))
|
| + if (!navigation_handle->IsSamePage()
|
| + && 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))
|
| + if (IsGoogleCaptcha(navigation_handle->GetReferrer().url) && !saw_solution_) {
|
| + RecordGoogleCaptchaEvent(GOOGLE_CAPTCHA_SOLVED);
|
| saw_solution_ = true;
|
| -}
|
| -
|
| -void GoogleCaptchaObserver::OnPageLoadMetricsGoingAway() {
|
| - metrics_->RemoveObserver(this);
|
| - delete this;
|
| + }
|
| }
|
|
|
| } // namespace google_captcha_observer
|
|
|