Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / metrics / chrome_metrics_service_client.cc
index b8d0ac4..ab22900 100644 (file)
 #include "chrome/browser/chrome_notification_types.h"
 #include "chrome/browser/google/google_brand.h"
 #include "chrome/browser/metrics/chrome_stability_metrics_provider.h"
-#include "chrome/browser/metrics/gpu_metrics_provider.h"
-#include "chrome/browser/metrics/network_metrics_provider.h"
 #include "chrome/browser/metrics/omnibox_metrics_provider.h"
-#include "chrome/browser/metrics/profiler_metrics_provider.h"
-#include "chrome/browser/metrics/tracking_synchronizer.h"
 #include "chrome/browser/ui/browser_otr_state.h"
 #include "chrome/common/chrome_constants.h"
 #include "chrome/common/chrome_switches.h"
 #include "chrome/common/crash_keys.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/common/render_messages.h"
+#include "components/metrics/gpu/gpu_metrics_provider.h"
 #include "components/metrics/metrics_service.h"
 #include "components/metrics/net/net_metrics_log_uploader.h"
+#include "components/metrics/net/network_metrics_provider.h"
+#include "components/metrics/profiler/profiler_metrics_provider.h"
+#include "components/metrics/profiler/tracking_synchronizer.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/histogram_fetcher.h"
 #include "content/public/browser/notification_service.h"
@@ -43,7 +43,9 @@
 
 #if defined(OS_ANDROID)
 #include "chrome/browser/metrics/android_metrics_provider.h"
-#else
+#endif
+
+#if defined(ENABLE_FULL_PRINTING)
 #include "chrome/browser/service_process/service_process_control.h"
 #endif
 
@@ -156,7 +158,7 @@ void ChromeMetricsServiceClient::RegisterPrefs(PrefRegistrySimple* registry) {
   registry->RegisterInt64Pref(prefs::kUninstallLastLaunchTimeSec, 0);
   registry->RegisterInt64Pref(prefs::kUninstallLastObservedRunTimeSec, 0);
 
-  MetricsService::RegisterPrefs(registry);
+  metrics::MetricsService::RegisterPrefs(registry);
   ChromeStabilityMetricsProvider::RegisterPrefs(registry);
 
 #if defined(OS_ANDROID)
@@ -270,6 +272,14 @@ ChromeMetricsServiceClient::CreateUploader(
           on_upload_complete));
 }
 
+base::string16 ChromeMetricsServiceClient::GetRegistryBackupKey() {
+#if defined(OS_WIN)
+  return L"Software\\" PRODUCT_STRING_PATH L"\\StabilityMetrics";
+#else
+  return base::string16();
+#endif
+}
+
 void ChromeMetricsServiceClient::LogPluginLoadingError(
     const base::FilePath& plugin_path) {
 #if defined(ENABLE_PLUGINS)
@@ -280,7 +290,7 @@ void ChromeMetricsServiceClient::LogPluginLoadingError(
 }
 
 void ChromeMetricsServiceClient::Initialize() {
-  metrics_service_.reset(new MetricsService(
+  metrics_service_.reset(new metrics::MetricsService(
       metrics_state_manager_, this, g_browser_process->local_state()));
 
   // Register metrics providers.
@@ -290,14 +300,15 @@ void ChromeMetricsServiceClient::Initialize() {
           new ExtensionsMetricsProvider(metrics_state_manager_)));
 #endif
   metrics_service_->RegisterMetricsProvider(
-      scoped_ptr<metrics::MetricsProvider>(new NetworkMetricsProvider));
+      scoped_ptr<metrics::MetricsProvider>(new NetworkMetricsProvider(
+          content::BrowserThread::GetBlockingPool())));
   metrics_service_->RegisterMetricsProvider(
       scoped_ptr<metrics::MetricsProvider>(new OmniboxMetricsProvider));
   metrics_service_->RegisterMetricsProvider(
       scoped_ptr<metrics::MetricsProvider>(new ChromeStabilityMetricsProvider));
   metrics_service_->RegisterMetricsProvider(
-      scoped_ptr<metrics::MetricsProvider>(new GPUMetricsProvider()));
-  profiler_metrics_provider_ = new ProfilerMetricsProvider;
+      scoped_ptr<metrics::MetricsProvider>(new metrics::GPUMetricsProvider()));
+  profiler_metrics_provider_ = new metrics::ProfilerMetricsProvider;
   metrics_service_->RegisterMetricsProvider(
       scoped_ptr<metrics::MetricsProvider>(profiler_metrics_provider_));
 
@@ -363,7 +374,7 @@ void ChromeMetricsServiceClient::OnInitTaskGotPluginInfo() {
 void ChromeMetricsServiceClient::OnInitTaskGotGoogleUpdateData() {
   // Start the next part of the init task: fetching performance data.  This will
   // call into |FinishedReceivingProfilerData()| when the task completes.
-  chrome_browser_metrics::TrackingSynchronizer::FetchProfilerDataAsynchronously(
+  metrics::TrackingSynchronizer::FetchProfilerDataAsynchronously(
       weak_ptr_factory_.GetWeakPtr());
 }
 
@@ -394,10 +405,9 @@ void ChromeMetricsServiceClient::OnMemoryDetailCollectionDone() {
 
   DCHECK_EQ(num_async_histogram_fetches_in_progress_, 0);
 
-#if defined(OS_ANDROID)
-  // Android has no service process.
+#if !defined(ENABLE_FULL_PRINTING)
   num_async_histogram_fetches_in_progress_ = 1;
-#else  // OS_ANDROID
+#else  // !ENABLE_FULL_PRINTING
   num_async_histogram_fetches_in_progress_ = 2;
   // Run requests to service and content in parallel.
   if (!ServiceProcessControl::GetInstance()->GetHistograms(callback, timeout)) {
@@ -408,7 +418,7 @@ void ChromeMetricsServiceClient::OnMemoryDetailCollectionDone() {
     // here to make code work even if |GetHistograms()| fired |callback|.
     --num_async_histogram_fetches_in_progress_;
   }
-#endif  // OS_ANDROID
+#endif  // !ENABLE_FULL_PRINTING
 
   // Set up the callback to task to call after we receive histograms from all
   // child processes. |timeout| specifies how long to wait before absolutely