Move more metrics classes to metrics namespace.

BUG=374763
[email protected]

Review URL: https://codereview.chromium.org/502173002

Cr-Commit-Position: refs/heads/master@{#291994}
diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h
index fefc63f..df2ad5ea9 100644
--- a/chrome/browser/browser_process.h
+++ b/chrome/browser/browser_process.h
@@ -28,7 +28,6 @@
 class IntranetRedirectDetector;
 class IOThread;
 class MediaFileSystemRegistry;
-class MetricsService;
 class MetricsServicesManager;
 class NotificationUIManager;
 class PrefRegistrySimple;
@@ -63,6 +62,10 @@
 class MessageCenter;
 }
 
+namespace metrics {
+class MetricsService;
+}
+
 namespace net {
 class URLRequestContextGetter;
 }
@@ -115,7 +118,7 @@
   virtual MetricsServicesManager* GetMetricsServicesManager() = 0;
 
   // Services: any of these getters may return NULL
-  virtual MetricsService* metrics_service() = 0;
+  virtual metrics::MetricsService* metrics_service() = 0;
   virtual rappor::RapporService* rappor_service() = 0;
   virtual ProfileManager* profile_manager() = 0;
   virtual PrefService* local_state() = 0;
diff --git a/chrome/browser/browser_process_impl.cc b/chrome/browser/browser_process_impl.cc
index b178721..c1546cb 100644
--- a/chrome/browser/browser_process_impl.cc
+++ b/chrome/browser/browser_process_impl.cc
@@ -479,7 +479,7 @@
   }
 
   // Tell the metrics service it was cleanly shutdown.
-  MetricsService* metrics = g_browser_process->metrics_service();
+  metrics::MetricsService* metrics = g_browser_process->metrics_service();
   if (metrics && local_state()) {
     metrics->RecordStartOfSessionEnd();
 #if !defined(OS_CHROMEOS)
@@ -535,7 +535,7 @@
   return metrics_services_manager_.get();
 }
 
-MetricsService* BrowserProcessImpl::metrics_service() {
+metrics::MetricsService* BrowserProcessImpl::metrics_service() {
   DCHECK(CalledOnValidThread());
   return GetMetricsServicesManager()->GetMetricsService();
 }
diff --git a/chrome/browser/browser_process_impl.h b/chrome/browser/browser_process_impl.h
index 6234faf..8fd4ce5 100644
--- a/chrome/browser/browser_process_impl.h
+++ b/chrome/browser/browser_process_impl.h
@@ -23,7 +23,6 @@
 
 class ChromeNetLog;
 class ChromeResourceDispatcherHostDelegate;
-class MetricsServicesManager;
 class RemoteDebuggingServer;
 class PrefRegistrySimple;
 class PromoResourceService;
@@ -78,7 +77,7 @@
   virtual void ResourceDispatcherHostCreated() OVERRIDE;
   virtual void EndSession() OVERRIDE;
   virtual MetricsServicesManager* GetMetricsServicesManager() OVERRIDE;
-  virtual MetricsService* metrics_service() OVERRIDE;
+  virtual metrics::MetricsService* metrics_service() OVERRIDE;
   virtual rappor::RapporService* rappor_service() OVERRIDE;
   virtual IOThread* io_thread() OVERRIDE;
   virtual WatchDogThread* watchdog_thread() OVERRIDE;
diff --git a/chrome/browser/browser_shutdown.cc b/chrome/browser/browser_shutdown.cc
index fa50225..a07f6910 100644
--- a/chrome/browser/browser_shutdown.cc
+++ b/chrome/browser/browser_shutdown.cc
@@ -149,7 +149,7 @@
   // consider putting it in BrowserProcessImpl::EndSession.
   PrefService* prefs = g_browser_process->local_state();
 
-  MetricsService* metrics = g_browser_process->metrics_service();
+  metrics::MetricsService* metrics = g_browser_process->metrics_service();
   if (metrics)
     metrics->RecordCompletedSessionEnd();
 
diff --git a/chrome/browser/chrome_browser_main.cc b/chrome/browser/chrome_browser_main.cc
index a603ffd..1c2ca9a 100644
--- a/chrome/browser/chrome_browser_main.cc
+++ b/chrome/browser/chrome_browser_main.cc
@@ -574,7 +574,7 @@
 
   // Initialize FieldTrialList to support FieldTrials that use one-time
   // randomization.
-  MetricsService* metrics = browser_process_->metrics_service();
+  metrics::MetricsService* metrics = browser_process_->metrics_service();
   field_trial_list_.reset(
       new base::FieldTrialList(metrics->CreateEntropyProvider().release()));
 
@@ -631,7 +631,7 @@
 
 void ChromeBrowserMainParts::StartMetricsRecording() {
   TRACE_EVENT0("startup", "ChromeBrowserMainParts::StartMetricsRecording");
-  MetricsService* metrics = g_browser_process->metrics_service();
+  metrics::MetricsService* metrics = g_browser_process->metrics_service();
 
   const bool only_do_metrics_recording =
       parsed_command_line_.HasSwitch(switches::kMetricsRecordingOnly) ||
@@ -1236,8 +1236,9 @@
 
   // Profile creation ----------------------------------------------------------
 
-  MetricsService::SetExecutionPhase(MetricsService::CREATE_PROFILE,
-                                    g_browser_process->local_state());
+  metrics::MetricsService::SetExecutionPhase(
+      metrics::MetricsService::CREATE_PROFILE,
+      g_browser_process->local_state());
   profile_ = CreatePrimaryProfile(parameters(),
                                   user_data_dir_,
                                   parsed_command_line());
@@ -1408,8 +1409,9 @@
   // Start watching for hangs during startup. We disarm this hang detector when
   // ThreadWatcher takes over or when browser is shutdown or when
   // startup_watcher_ is deleted.
-  MetricsService::SetExecutionPhase(MetricsService::STARTUP_TIMEBOMB_ARM,
-                                    g_browser_process->local_state());
+  metrics::MetricsService::SetExecutionPhase(
+      metrics::MetricsService::STARTUP_TIMEBOMB_ARM,
+      g_browser_process->local_state());
   startup_watcher_->Arm(base::TimeDelta::FromSeconds(300));
 
   // On mobile, need for clean shutdown arises only when the application comes
@@ -1417,7 +1419,8 @@
   // http://crbug.com/179143
 #if !defined(OS_ANDROID)
   // Start watching for a hang.
-  MetricsService::LogNeedForCleanShutdown(g_browser_process->local_state());
+  metrics::MetricsService::LogNeedForCleanShutdown(
+      g_browser_process->local_state());
 #endif
 
 #if defined(ENABLE_FULL_PRINTING)
@@ -1431,8 +1434,9 @@
 #endif
 
   // Start watching all browser threads for responsiveness.
-  MetricsService::SetExecutionPhase(MetricsService::THREAD_WATCHER_START,
-                                    g_browser_process->local_state());
+  metrics::MetricsService::SetExecutionPhase(
+      metrics::MetricsService::THREAD_WATCHER_START,
+      g_browser_process->local_state());
   ThreadWatcherList::StartWatchingAll(parsed_command_line());
 
 #if defined(OS_ANDROID)
@@ -1594,8 +1598,9 @@
 
   performance_monitor::PerformanceMonitor::GetInstance()->StartGatherCycle();
 
-  MetricsService::SetExecutionPhase(MetricsService::MAIN_MESSAGE_LOOP_RUN,
-                                    g_browser_process->local_state());
+  metrics::MetricsService::SetExecutionPhase(
+      metrics::MetricsService::MAIN_MESSAGE_LOOP_RUN,
+      g_browser_process->local_state());
   run_loop.Run();
 
   return true;
@@ -1612,8 +1617,9 @@
 
   // Start watching for jank during shutdown. It gets disarmed when
   // |shutdown_watcher_| object is destructed.
-  MetricsService::SetExecutionPhase(MetricsService::SHUTDOWN_TIMEBOMB_ARM,
-                                    g_browser_process->local_state());
+  metrics::MetricsService::SetExecutionPhase(
+      metrics::MetricsService::SHUTDOWN_TIMEBOMB_ARM,
+      g_browser_process->local_state());
   shutdown_watcher_->Arm(base::TimeDelta::FromSeconds(300));
 
   // Disarm the startup hang detector time bomb if it is still Arm'ed.
@@ -1659,7 +1665,7 @@
   // a higher level on the stack, so that it is impossible for an early return
   // to bypass this code.  Perhaps we need a *final* hook that is called on all
   // paths from content/browser/browser_main.
-  CHECK(MetricsService::UmaMetricsProperlyShutdown());
+  CHECK(metrics::MetricsService::UmaMetricsProperlyShutdown());
 
 #if defined(OS_CHROMEOS)
   chromeos::CrosSettings::Shutdown();
diff --git a/chrome/browser/chrome_browser_metrics_service_observer.h b/chrome/browser/chrome_browser_metrics_service_observer.h
index 111cca7..d8e20da0 100644
--- a/chrome/browser/chrome_browser_metrics_service_observer.h
+++ b/chrome/browser/chrome_browser_metrics_service_observer.h
@@ -9,7 +9,8 @@
 
 // ChromeBrowserMetricsServiceObserver receives notifications when the metrics
 // service creates a new metrics log.
-class ChromeBrowserMetricsServiceObserver : public MetricsServiceObserver {
+class ChromeBrowserMetricsServiceObserver
+    : public metrics::MetricsServiceObserver {
  public:
   ChromeBrowserMetricsServiceObserver();
   virtual ~ChromeBrowserMetricsServiceObserver();
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index b8d0ac4..173f622 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -156,7 +156,7 @@
   registry->RegisterInt64Pref(prefs::kUninstallLastLaunchTimeSec, 0);
   registry->RegisterInt64Pref(prefs::kUninstallLastObservedRunTimeSec, 0);
 
-  MetricsService::RegisterPrefs(registry);
+  metrics::MetricsService::RegisterPrefs(registry);
   ChromeStabilityMetricsProvider::RegisterPrefs(registry);
 
 #if defined(OS_ANDROID)
@@ -280,7 +280,7 @@
 }
 
 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.
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.h b/chrome/browser/metrics/chrome_metrics_service_client.h
index bc3c14a..e98b3133 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.h
+++ b/chrome/browser/metrics/chrome_metrics_service_client.h
@@ -21,7 +21,6 @@
 
 class ChromeOSMetricsProvider;
 class GoogleUpdateMetricsProviderWin;
-class MetricsService;
 class PluginMetricsProvider;
 class PrefRegistrySimple;
 class ProfilerMetricsProvider;
@@ -35,6 +34,7 @@
 }
 
 namespace metrics {
+class MetricsService;
 class MetricsStateManager;
 }
 
@@ -72,7 +72,7 @@
       const std::string& mime_type,
       const base::Callback<void(int)>& on_upload_complete) OVERRIDE;
 
-  MetricsService* metrics_service() { return metrics_service_.get(); }
+  metrics::MetricsService* metrics_service() { return metrics_service_.get(); }
 
   void LogPluginLoadingError(const base::FilePath& plugin_path);
 
@@ -131,7 +131,7 @@
   metrics::MetricsStateManager* metrics_state_manager_;
 
   // The MetricsService that |this| is a client of.
-  scoped_ptr<MetricsService> metrics_service_;
+  scoped_ptr<metrics::MetricsService> metrics_service_;
 
   content::NotificationRegistrar registrar_;
 
diff --git a/chrome/browser/metrics/extensions_metrics_provider.cc b/chrome/browser/metrics/extensions_metrics_provider.cc
index 41f1359..62b4b9a3 100644
--- a/chrome/browser/metrics/extensions_metrics_provider.cc
+++ b/chrome/browser/metrics/extensions_metrics_provider.cc
@@ -4,7 +4,9 @@
 
 #include "chrome/browser/metrics/extensions_metrics_provider.h"
 
+#include <algorithm>
 #include <set>
+#include <vector>
 
 #include "base/logging.h"
 #include "base/memory/scoped_ptr.h"
@@ -167,7 +169,7 @@
   // TODO(blundell): Create a MetricsLog::ClientIDAsInt() API and call it
   // here as well as in MetricsLog's population of the client_id field of
   // the uma_proto.
-  return MetricsLog::Hash(metrics_state_manager_->client_id());
+  return metrics::MetricsLog::Hash(metrics_state_manager_->client_id());
 }
 
 void ExtensionsMetricsProvider::ProvideSystemProfileMetrics(
diff --git a/chrome/browser/metrics/extensions_metrics_provider_unittest.cc b/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
index 451facd..d73fccfc 100644
--- a/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
+++ b/chrome/browser/metrics/extensions_metrics_provider_unittest.cc
@@ -103,7 +103,7 @@
 TEST(ExtensionsMetricsProvider, SystemProtoEncoding) {
   metrics::SystemProfileProto system_profile;
   TestingPrefServiceSimple local_state;
-  MetricsService::RegisterPrefs(local_state.registry());
+  metrics::MetricsService::RegisterPrefs(local_state.registry());
   scoped_ptr<metrics::MetricsStateManager> metrics_state_manager(
       metrics::MetricsStateManager::Create(
           &local_state,
diff --git a/chrome/browser/metrics/metrics_reporting_state.cc b/chrome/browser/metrics/metrics_reporting_state.cc
index a3a6bec..6c72ba6 100644
--- a/chrome/browser/metrics/metrics_reporting_state.cc
+++ b/chrome/browser/metrics/metrics_reporting_state.cc
@@ -24,7 +24,7 @@
   // succeeds.
   enabled = update_pref;
 
-  MetricsService* metrics = g_browser_process->metrics_service();
+  metrics::MetricsService* metrics = g_browser_process->metrics_service();
   if (metrics) {
     if (enabled)
       metrics->Start();
diff --git a/chrome/browser/metrics/metrics_service_accessor.cc b/chrome/browser/metrics/metrics_service_accessor.cc
index ec83ff3..94c0e88 100644
--- a/chrome/browser/metrics/metrics_service_accessor.cc
+++ b/chrome/browser/metrics/metrics_service_accessor.cc
@@ -8,6 +8,11 @@
 #include "components/metrics/metrics_service.h"
 #include "components/metrics/metrics_service_observer.h"
 
+// TODO(asvitkine): Remove when this class is moved to metrics namespace.
+using metrics::MetricsService;
+using metrics::MetricsServiceObserver;
+using metrics::SyntheticTrialGroup;
+
 // static
 void MetricsServiceAccessor::AddMetricsServiceObserver(
     MetricsServiceObserver* observer) {
diff --git a/chrome/browser/metrics/metrics_service_accessor.h b/chrome/browser/metrics/metrics_service_accessor.h
index 7883f73..df2f3e0f 100644
--- a/chrome/browser/metrics/metrics_service_accessor.h
+++ b/chrome/browser/metrics/metrics_service_accessor.h
@@ -10,30 +10,35 @@
 
 #include "base/macros.h"
 
+namespace metrics {
 class MetricsService;
 class MetricsServiceObserver;
+}
 
 // This class limits and documents access to metrics service helper methods.
 // These methods are protected so each user has to inherit own program-specific
 // specialization and enable access there by declaring friends.
 class MetricsServiceAccessor {
  protected:
-  // Constructor declared as protected to enable inheritance. Decendants should
+  // Constructor declared as protected to enable inheritance. Descendants should
   // disallow instantiation.
   MetricsServiceAccessor() {}
 
   // Registers/unregisters |observer| to receive MetricsLog notifications
   // from metrics service.
-  static void AddMetricsServiceObserver(MetricsServiceObserver* observer);
-  static void RemoveMetricsServiceObserver(MetricsServiceObserver* observer);
+  static void AddMetricsServiceObserver(
+      metrics::MetricsServiceObserver* observer);
+  static void RemoveMetricsServiceObserver(
+      metrics::MetricsServiceObserver* observer);
 
   // Registers the specified synthetic field trial (identified by a hash of the
   // trial name and group name) with |metrics_service|, if the service is not
   // NULL, returning true on success.
   // See the comment on MetricsService::RegisterSyntheticFieldTrial for details.
-  static bool RegisterSyntheticFieldTrial(MetricsService* metrics_service,
-                                          uint32_t trial_name_hash,
-                                          uint32_t group_name_hash);
+  static bool RegisterSyntheticFieldTrial(
+      metrics::MetricsService* metrics_service,
+      uint32_t trial_name_hash,
+      uint32_t group_name_hash);
 
  private:
   DISALLOW_COPY_AND_ASSIGN(MetricsServiceAccessor);
diff --git a/chrome/browser/metrics/metrics_services_manager.cc b/chrome/browser/metrics/metrics_services_manager.cc
index 74d37107..186bfde7 100644
--- a/chrome/browser/metrics/metrics_services_manager.cc
+++ b/chrome/browser/metrics/metrics_services_manager.cc
@@ -30,7 +30,7 @@
 MetricsServicesManager::~MetricsServicesManager() {
 }
 
-MetricsService* MetricsServicesManager::GetMetricsService() {
+metrics::MetricsService* MetricsServicesManager::GetMetricsService() {
   DCHECK(thread_checker_.CalledOnValidThread());
   return GetChromeMetricsServiceClient()->metrics_service();
 }
diff --git a/chrome/browser/metrics/metrics_services_manager.h b/chrome/browser/metrics/metrics_services_manager.h
index 24fc1d5..a2f38ba 100644
--- a/chrome/browser/metrics/metrics_services_manager.h
+++ b/chrome/browser/metrics/metrics_services_manager.h
@@ -10,7 +10,6 @@
 #include "base/threading/thread_checker.h"
 
 class ChromeMetricsServiceClient;
-class MetricsService;
 class PrefService;
 
 namespace base {
@@ -18,6 +17,7 @@
 }
 
 namespace metrics {
+class MetricsService;
 class MetricsStateManager;
 }
 
@@ -40,7 +40,7 @@
 
   // Returns the MetricsService, creating it if it hasn't been created yet (and
   // additionally creating the ChromeMetricsServiceClient in that case).
-  MetricsService* GetMetricsService();
+  metrics::MetricsService* GetMetricsService();
 
   // Returns the GetRapporService, creating it if it hasn't been created yet.
   rappor::RapporService* GetRapporService();
diff --git a/chrome/browser/metrics/omnibox_metrics_provider.cc b/chrome/browser/metrics/omnibox_metrics_provider.cc
index 6b43ea7..b578e80 100644
--- a/chrome/browser/metrics/omnibox_metrics_provider.cc
+++ b/chrome/browser/metrics/omnibox_metrics_provider.cc
@@ -113,7 +113,7 @@
       static_cast<int>(Tokenize(log.text, base::kWhitespaceUTF16, &terms));
 
   OmniboxEventProto* omnibox_event = omnibox_events_cache.add_omnibox_event();
-  omnibox_event->set_time(MetricsLog::GetCurrentTime());
+  omnibox_event->set_time(metrics::MetricsLog::GetCurrentTime());
   if (log.tab_id != -1) {
     // If we know what tab the autocomplete URL was opened in, log it.
     omnibox_event->set_tab_id(log.tab_id);
diff --git a/chrome/browser/metrics/profiler_metrics_provider.cc b/chrome/browser/metrics/profiler_metrics_provider.cc
index a843a4d4..4ba80a0 100644
--- a/chrome/browser/metrics/profiler_metrics_provider.cc
+++ b/chrome/browser/metrics/profiler_metrics_provider.cc
@@ -86,13 +86,14 @@
     ProfilerEventProto::TrackedObject* tracked_object =
         performance_profile->add_tracked_object();
     tracked_object->set_birth_thread_name_hash(
-        MetricsLog::Hash(MapThreadName(it->birth.thread_name)));
+        metrics::MetricsLog::Hash(MapThreadName(it->birth.thread_name)));
     tracked_object->set_exec_thread_name_hash(
-        MetricsLog::Hash(MapThreadName(it->death_thread_name)));
+        metrics::MetricsLog::Hash(MapThreadName(it->death_thread_name)));
     tracked_object->set_source_file_name_hash(
-        MetricsLog::Hash(NormalizeFileName(it->birth.location.file_name)));
+        metrics::MetricsLog::Hash(NormalizeFileName(
+            it->birth.location.file_name)));
     tracked_object->set_source_function_name_hash(
-        MetricsLog::Hash(it->birth.location.function_name));
+        metrics::MetricsLog::Hash(it->birth.location.function_name));
     tracked_object->set_source_line_number(it->birth.location.line_number);
     tracked_object->set_exec_count(death_data.count);
     tracked_object->set_exec_time_total(death_data.run_duration_sum);
diff --git a/chrome/browser/safe_browsing/ui_manager.cc b/chrome/browser/safe_browsing/ui_manager.cc
index 1f6a7cd..2c58e798 100644
--- a/chrome/browser/safe_browsing/ui_manager.cc
+++ b/chrome/browser/safe_browsing/ui_manager.cc
@@ -69,7 +69,7 @@
 // Only report SafeBrowsing related stats when UMA is enabled. User must also
 // ensure that safe browsing is enabled from the calling profile.
 bool SafeBrowsingUIManager::CanReportStats() const {
-  const MetricsService* metrics = g_browser_process->metrics_service();
+  const metrics::MetricsService* metrics = g_browser_process->metrics_service();
   return metrics && metrics->reporting_active();
 }