Commit 7edd78cd authored by motek@chromium.org's avatar motek@chromium.org

Split out MetricsServiceAccessor out of ChromeMetricsServiceAccessor.

BUG=374199

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272618 0039d316-1c4b-4281-b951-d872f2087c98
parent 8f68a07d
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
#include "chrome/browser/browser_process.h" #include "chrome/browser/browser_process.h"
#include "chrome/browser/metrics/metrics_service.h" #include "chrome/browser/metrics/metrics_service.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "components/metrics/metrics_service_observer.h"
#if defined(OS_CHROMEOS) #if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/settings/cros_settings.h" #include "chrome/browser/chromeos/settings/cros_settings.h"
...@@ -47,17 +46,3 @@ bool ChromeMetricsServiceAccessor::IsCrashReportingEnabled() { ...@@ -47,17 +46,3 @@ bool ChromeMetricsServiceAccessor::IsCrashReportingEnabled() {
return false; return false;
#endif #endif
} }
void ChromeMetricsServiceAccessor::AddMetricsServiceObserver(
MetricsServiceObserver* observer) {
MetricsService* metrics_service = g_browser_process->metrics_service();
if (metrics_service)
metrics_service->AddObserver(observer);
}
void ChromeMetricsServiceAccessor::RemoveMetricsServiceObserver(
MetricsServiceObserver* observer) {
MetricsService* metrics_service = g_browser_process->metrics_service();
if (metrics_service)
metrics_service->RemoveObserver(observer);
}
...@@ -7,9 +7,9 @@ ...@@ -7,9 +7,9 @@
#include "base/gtest_prod_util.h" #include "base/gtest_prod_util.h"
#include "base/macros.h" #include "base/macros.h"
#include "chrome/browser/metrics/metrics_service_accessor.h"
class ChromeBrowserMetricsServiceObserver; class ChromeBrowserMetricsServiceObserver;
class MetricsServiceObserver;
class Profile; class Profile;
namespace { namespace {
...@@ -34,7 +34,7 @@ class ChromeInternalLogSource; ...@@ -34,7 +34,7 @@ class ChromeInternalLogSource;
// This class limits and documents access to metrics service helper methods. // This class limits and documents access to metrics service helper methods.
// Since these methods are private, each user has to be explicitly declared // Since these methods are private, each user has to be explicitly declared
// as a 'friend' below. // as a 'friend' below.
class ChromeMetricsServiceAccessor { class ChromeMetricsServiceAccessor : public MetricsServiceAccessor {
private: private:
friend bool prerender::IsOmniboxEnabled(Profile* profile); friend bool prerender::IsOmniboxEnabled(Profile* profile);
friend class ::ChromeBrowserMetricsServiceObserver; friend class ::ChromeBrowserMetricsServiceObserver;
...@@ -62,11 +62,6 @@ class ChromeMetricsServiceAccessor { ...@@ -62,11 +62,6 @@ class ChromeMetricsServiceAccessor {
// IsMetricsReportingEnabled for desktop Chrome. // IsMetricsReportingEnabled for desktop Chrome.
static bool IsCrashReportingEnabled(); static bool IsCrashReportingEnabled();
// Registers/unregisters |observer| to receive MetricsLog notifications
// from metrics service.
static void AddMetricsServiceObserver(MetricsServiceObserver* observer);
static void RemoveMetricsServiceObserver(MetricsServiceObserver* observer);
DISALLOW_IMPLICIT_CONSTRUCTORS(ChromeMetricsServiceAccessor); DISALLOW_IMPLICIT_CONSTRUCTORS(ChromeMetricsServiceAccessor);
}; };
......
...@@ -522,7 +522,7 @@ class MetricsService ...@@ -522,7 +522,7 @@ class MetricsService
// Confirms single-threaded access to |observers_| in debug builds. // Confirms single-threaded access to |observers_| in debug builds.
base::ThreadChecker thread_checker_; base::ThreadChecker thread_checker_;
friend class ChromeMetricsServiceAccessor; friend class MetricsServiceAccessor;
FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, IsPluginProcess); FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, IsPluginProcess);
FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, MetricsServiceObserver); FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, MetricsServiceObserver);
......
// Copyright 2014 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 "chrome/browser/metrics/metrics_service_accessor.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/metrics/metrics_service.h"
#include "components/metrics/metrics_service_observer.h"
// static
void MetricsServiceAccessor::AddMetricsServiceObserver(
MetricsServiceObserver* observer) {
MetricsService* metrics_service = g_browser_process->metrics_service();
if (metrics_service)
metrics_service->AddObserver(observer);
}
void MetricsServiceAccessor::RemoveMetricsServiceObserver(
MetricsServiceObserver* observer) {
MetricsService* metrics_service = g_browser_process->metrics_service();
if (metrics_service)
metrics_service->RemoveObserver(observer);
}
// Copyright 2014 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 CHROME_BROWSER_METRICS_METRICS_SERVICE_ACCESSOR_H_
#define CHROME_BROWSER_METRICS_METRICS_SERVICE_ACCESSOR_H_
#include "base/macros.h"
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
// disallow instantiation.
MetricsServiceAccessor() {}
// Registers/unregisters |observer| to receive MetricsLog notifications
// from metrics service.
static void AddMetricsServiceObserver(MetricsServiceObserver* observer);
static void RemoveMetricsServiceObserver(MetricsServiceObserver* observer);
private:
DISALLOW_COPY_AND_ASSIGN(MetricsServiceAccessor);
};
#endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_ACCESSOR_H_
...@@ -1211,6 +1211,8 @@ ...@@ -1211,6 +1211,8 @@
'browser/metrics/metrics_log_chromeos.h', 'browser/metrics/metrics_log_chromeos.h',
'browser/metrics/metrics_service.cc', 'browser/metrics/metrics_service.cc',
'browser/metrics/metrics_service.h', 'browser/metrics/metrics_service.h',
'browser/metrics/metrics_service_accessor.cc',
'browser/metrics/metrics_service_accessor.h',
'browser/metrics/metrics_services_manager.cc', 'browser/metrics/metrics_services_manager.cc',
'browser/metrics/metrics_services_manager.h', 'browser/metrics/metrics_services_manager.h',
'browser/metrics/metrics_state_manager.cc', 'browser/metrics/metrics_state_manager.cc',
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment