diff options
author | sdefresne <sdefresne@chromium.org> | 2015-12-14 05:19:26 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-14 13:20:12 +0000 |
commit | e9e69603a1c8904cca2be0849b89b6e61586c0dc (patch) | |
tree | c018e826b8b6db644a3092ca531888e0a2757afb | |
parent | 6de4b37238c31df5bb7b65adf54fd13378714608 (diff) | |
download | chromium_src-e9e69603a1c8904cca2be0849b89b6e61586c0dc.zip chromium_src-e9e69603a1c8904cca2be0849b89b6e61586c0dc.tar.gz chromium_src-e9e69603a1c8904cca2be0849b89b6e61586c0dc.tar.bz2 |
Upstream iOS concrete implementation of MetricsHelper class.
BUG=567727
Review URL: https://codereview.chromium.org/1522843002
Cr-Commit-Position: refs/heads/master@{#365015}
-rw-r--r-- | ios/chrome/browser/BUILD.gn | 3 | ||||
-rw-r--r-- | ios/chrome/browser/DEPS | 3 | ||||
-rw-r--r-- | ios/chrome/browser/interstitials/ios_chrome_metrics_helper.cc | 36 | ||||
-rw-r--r-- | ios/chrome/browser/interstitials/ios_chrome_metrics_helper.h | 42 | ||||
-rw-r--r-- | ios/chrome/ios_chrome.gyp | 3 |
5 files changed, 86 insertions, 1 deletions
diff --git a/ios/chrome/browser/BUILD.gn b/ios/chrome/browser/BUILD.gn index d743e9b..2f51f23 100644 --- a/ios/chrome/browser/BUILD.gn +++ b/ios/chrome/browser/BUILD.gn @@ -195,6 +195,8 @@ source_set("browser") { "install_time_util.mm", "installation_notifier.h", "installation_notifier.mm", + "interstitials/ios_chrome_metrics_helper.cc", + "interstitials/ios_chrome_metrics_helper.h", "invalidation/ios_chrome_profile_invalidation_provider_factory.cc", "invalidation/ios_chrome_profile_invalidation_provider_factory.h", "ios_chrome_field_trials.cc", @@ -513,6 +515,7 @@ source_set("browser") { "//components/resources", "//components/search", "//components/search_engines", + "//components/security_interstitials/core", "//components/sessions", "//components/signin/core/browser", "//components/signin/core/common", diff --git a/ios/chrome/browser/DEPS b/ios/chrome/browser/DEPS index 20716e4..d18a618 100644 --- a/ios/chrome/browser/DEPS +++ b/ios/chrome/browser/DEPS @@ -48,8 +48,8 @@ include_rules = [ "+components/rlz", "+components/search", "+components/search_engines", + "+components/security_interstitials", "+components/sessions", - "-components/sessions/content", "+components/signin/core/browser", "+components/signin/core/common", "+components/signin/ios/browser", @@ -83,6 +83,7 @@ include_rules = [ # Those depend on //content; exclude them. "-components/metrics/gpu", + "-components/sessions/content", # For tests. "+ios/chrome/test", diff --git a/ios/chrome/browser/interstitials/ios_chrome_metrics_helper.cc b/ios/chrome/browser/interstitials/ios_chrome_metrics_helper.cc new file mode 100644 index 0000000..88ffb69 --- /dev/null +++ b/ios/chrome/browser/interstitials/ios_chrome_metrics_helper.cc @@ -0,0 +1,36 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ios/chrome/browser/interstitials/ios_chrome_metrics_helper.h" + +#include "components/history/core/browser/history_service.h" +#include "components/keyed_service/core/service_access_type.h" +#include "components/rappor/rappor_service.h" +#include "ios/chrome/browser/application_context.h" +#include "ios/chrome/browser/history/history_service_factory.h" +#include "ios/public/provider/chrome/browser/browser_state/chrome_browser_state.h" +#include "ios/web/public/web_state/web_state.h" + +IOSChromeMetricsHelper::IOSChromeMetricsHelper( + web::WebState* web_state, + const GURL& request_url, + const security_interstitials::MetricsHelper::ReportDetails report_details) + : security_interstitials::MetricsHelper( + request_url, + report_details, + ios::HistoryServiceFactory::GetForBrowserState( + ios::ChromeBrowserState::FromBrowserState( + web_state->GetBrowserState()), + ServiceAccessType::EXPLICIT_ACCESS), + GetApplicationContext()->GetRapporService()) {} + +IOSChromeMetricsHelper::~IOSChromeMetricsHelper() {} + +void IOSChromeMetricsHelper::RecordExtraUserDecisionMetrics( + security_interstitials::MetricsHelper::Decision decision) {} + +void IOSChromeMetricsHelper::RecordExtraUserInteractionMetrics( + security_interstitials::MetricsHelper::Interaction interaction) {} + +void IOSChromeMetricsHelper::RecordExtraShutdownMetrics() {} diff --git a/ios/chrome/browser/interstitials/ios_chrome_metrics_helper.h b/ios/chrome/browser/interstitials/ios_chrome_metrics_helper.h new file mode 100644 index 0000000..3bde914 --- /dev/null +++ b/ios/chrome/browser/interstitials/ios_chrome_metrics_helper.h @@ -0,0 +1,42 @@ +// Copyright 2015 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef IOS_CHROME_BROWSER_INTERSTITIALS_IOS_CHROME_METRICS_HELPER_H_ +#define IOS_CHROME_BROWSER_INTERSTITIALS_IOS_CHROME_METRICS_HELPER_H_ + +#include <string> + +#include "base/macros.h" +#include "components/security_interstitials/core/metrics_helper.h" +#include "url/gurl.h" + +namespace web { +class WebState; +} + +// This class provides a concrete implementation for Chrome on iOS to the +// security_interstitials::MetricsHelper class. Together, they record UMA, +// Rappor, and experience sampling metrics. +class IOSChromeMetricsHelper : public security_interstitials::MetricsHelper { + public: + IOSChromeMetricsHelper( + web::WebState* web_state, + const GURL& request_url, + const security_interstitials::MetricsHelper::ReportDetails + report_details); + ~IOSChromeMetricsHelper() override; + + protected: + // security_interstitials::MetricsHelper implementation. + void RecordExtraUserDecisionMetrics( + security_interstitials::MetricsHelper::Decision decision) override; + void RecordExtraUserInteractionMetrics( + security_interstitials::MetricsHelper::Interaction interaction) override; + void RecordExtraShutdownMetrics() override; + + private: + DISALLOW_COPY_AND_ASSIGN(IOSChromeMetricsHelper); +}; + +#endif // IOS_CHROME_BROWSER_INTERSTITIALS_IOS_CHROME_METRICS_HELPER_H_ diff --git a/ios/chrome/ios_chrome.gyp b/ios/chrome/ios_chrome.gyp index 9a05b3f..eac6160 100644 --- a/ios/chrome/ios_chrome.gyp +++ b/ios/chrome/ios_chrome.gyp @@ -89,6 +89,7 @@ '../../components/components.gyp:rappor', '../../components/components.gyp:search', '../../components/components.gyp:search_engines', + '../../components/components.gyp:security_interstitials_core', '../../components/components.gyp:sessions_ios', '../../components/components.gyp:signin_core_browser', '../../components/components.gyp:signin_core_common', @@ -321,6 +322,8 @@ 'browser/install_time_util.mm', 'browser/installation_notifier.h', 'browser/installation_notifier.mm', + 'browser/interstitials/ios_chrome_metrics_helper.cc', + 'browser/interstitials/ios_chrome_metrics_helper.h', 'browser/invalidation/ios_chrome_profile_invalidation_provider_factory.cc', 'browser/invalidation/ios_chrome_profile_invalidation_provider_factory.h', 'browser/ios_chrome_field_trials.cc', |