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 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/metrics/metrics_service.h"
#include "chrome/common/pref_names.h"
#include "components/metrics/metrics_service_observer.h"
#if defined(OS_CHROMEOS)
#include "chrome/browser/chromeos/settings/cros_settings.h"
......@@ -47,17 +46,3 @@ bool ChromeMetricsServiceAccessor::IsCrashReportingEnabled() {
return false;
#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 @@
#include "base/gtest_prod_util.h"
#include "base/macros.h"
#include "chrome/browser/metrics/metrics_service_accessor.h"
class ChromeBrowserMetricsServiceObserver;
class MetricsServiceObserver;
class Profile;
namespace {
......@@ -34,7 +34,7 @@ class ChromeInternalLogSource;
// This class limits and documents access to metrics service helper methods.
// Since these methods are private, each user has to be explicitly declared
// as a 'friend' below.
class ChromeMetricsServiceAccessor {
class ChromeMetricsServiceAccessor : public MetricsServiceAccessor {
private:
friend bool prerender::IsOmniboxEnabled(Profile* profile);
friend class ::ChromeBrowserMetricsServiceObserver;
......@@ -62,11 +62,6 @@ class ChromeMetricsServiceAccessor {
// IsMetricsReportingEnabled for desktop Chrome.
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);
};
......
......@@ -522,7 +522,7 @@ class MetricsService
// Confirms single-threaded access to |observers_| in debug builds.
base::ThreadChecker thread_checker_;
friend class ChromeMetricsServiceAccessor;
friend class MetricsServiceAccessor;
FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, IsPluginProcess);
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 @@
'browser/metrics/metrics_log_chromeos.h',
'browser/metrics/metrics_service.cc',
'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.h',
'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