Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Unified Diff: ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.cc

Issue 1421733002: Introduce IOSChromeMetricsServicesManagerClient (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: git add client Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.h ('k') | ios/chrome/ios_chrome.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.cc
diff --git a/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.cc b/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.cc
new file mode 100644
index 0000000000000000000000000000000000000000..d854b10c38c2d28fb3ce55679ff8af3af81548bf
--- /dev/null
+++ b/ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.cc
@@ -0,0 +1,101 @@
+// 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/metrics/ios_chrome_metrics_services_manager_client.h"
+
+#include "base/command_line.h"
+#include "base/logging.h"
+#include "base/prefs/pref_service.h"
+#include "components/metrics/metrics_state_manager.h"
+#include "components/rappor/rappor_service.h"
+#include "components/variations/service/variations_service.h"
+#include "ios/chrome/browser/application_context.h"
+#include "ios/chrome/browser/chrome_switches.h"
+#include "ios/chrome/browser/metrics/ios_chrome_metrics_service_accessor.h"
+#include "ios/chrome/browser/metrics/ios_chrome_metrics_service_client.h"
+#include "ios/chrome/browser/ui/browser_otr_state.h"
+#include "ios/chrome/browser/variations/ios_chrome_variations_service_client.h"
+#include "ios/chrome/browser/variations/ios_ui_string_overrider_factory.h"
+#include "ios/public/provider/chrome/browser/chrome_browser_provider.h"
+
+namespace {
+
+void PostStoreMetricsClientInfo(const metrics::ClientInfo& client_info) {}
+
+scoped_ptr<metrics::ClientInfo> LoadMetricsClientInfo() {
+ return scoped_ptr<metrics::ClientInfo>();
+}
+
+} // namespace
+
+IOSChromeMetricsServicesManagerClient::IOSChromeMetricsServicesManagerClient(
+ PrefService* local_state)
+ : local_state_(local_state) {
+ DCHECK(local_state);
+}
+
+IOSChromeMetricsServicesManagerClient::
+ ~IOSChromeMetricsServicesManagerClient() {
+ ios::GetChromeBrowserProvider()->OnMetricsServicesManagerClientDestroyed();
+}
+
+scoped_ptr<rappor::RapporService>
+IOSChromeMetricsServicesManagerClient::CreateRapporService() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ return make_scoped_ptr(new rappor::RapporService(
+ local_state_, base::Bind(&::IsOffTheRecordSessionActive)));
+}
+
+scoped_ptr<variations::VariationsService>
+IOSChromeMetricsServicesManagerClient::CreateVariationsService() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+
+ // NOTE: On iOS, disabling background networking is not supported, so pass in
+ // a dummy value for the name of the switch that disables background
+ // networking.
+ return variations::VariationsService::Create(
+ make_scoped_ptr(new IOSChromeVariationsServiceClient), local_state_,
+ GetMetricsStateManager(), "dummyDisableBackgroundSwitch",
+ ::CreateUIStringOverrider());
+}
+
+scoped_ptr<metrics::MetricsServiceClient>
+IOSChromeMetricsServicesManagerClient::CreateMetricsServiceClient() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ return IOSChromeMetricsServiceClient::Create(GetMetricsStateManager(),
+ local_state_);
+}
+
+net::URLRequestContextGetter*
+IOSChromeMetricsServicesManagerClient::GetURLRequestContext() {
+ return GetApplicationContext()->GetSystemURLRequestContext();
+}
+
+bool IOSChromeMetricsServicesManagerClient::IsSafeBrowsingEnabled(
+ const base::Closure& on_update_callback) {
+ return ios::GetChromeBrowserProvider()->IsSafeBrowsingEnabled(
+ on_update_callback);
+}
+
+bool IOSChromeMetricsServicesManagerClient::IsMetricsReportingEnabled() {
+ return IOSChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled();
+}
+
+bool IOSChromeMetricsServicesManagerClient::OnlyDoMetricsRecording() {
+ const base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
+ return cmdline->HasSwitch(switches::kIOSMetricsRecordingOnly);
+}
+
+metrics::MetricsStateManager*
+IOSChromeMetricsServicesManagerClient::GetMetricsStateManager() {
+ DCHECK(thread_checker_.CalledOnValidThread());
+ if (!metrics_state_manager_) {
+ metrics_state_manager_ = metrics::MetricsStateManager::Create(
+ local_state_, base::Bind(&IOSChromeMetricsServiceAccessor::
+ IsMetricsAndCrashReportingEnabled),
+ base::Bind(&PostStoreMetricsClientInfo),
+ base::Bind(&LoadMetricsClientInfo));
+ }
+ return metrics_state_manager_.get();
+}
« no previous file with comments | « ios/chrome/browser/metrics/ios_chrome_metrics_services_manager_client.h ('k') | ios/chrome/ios_chrome.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698