Index: chrome/browser/extensions/api/metrics_private/metrics_private_api.cc |
diff --git a/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc b/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc |
index c0dfadc42edcf5885711f0f8346ca92633930a57..e901caa031d685728d2e7b04d9018008e6cc1c61 100644 |
--- a/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc |
+++ b/chrome/browser/extensions/api/metrics_private/metrics_private_api.cc |
@@ -8,22 +8,22 @@ |
#include <algorithm> |
+#include "base/lazy_instance.h" |
#include "base/memory/ptr_util.h" |
#include "base/metrics/field_trial.h" |
#include "base/metrics/histogram_macros.h" |
#include "base/metrics/sparse_histogram.h" |
-#include "chrome/browser/metrics/chrome_metrics_service_accessor.h" |
+#include "chrome/browser/extensions/api/chrome_extensions_api_client.h" |
#include "chrome/common/extensions/api/metrics_private.h" |
#include "components/variations/variations_associated_data.h" |
+#include "content/public/browser/browser_context.h" |
#include "content/public/browser/user_metrics.h" |
+#include "extensions/browser/api/metrics_private/metrics_private_delegate.h" |
#include "extensions/common/extension.h" |
namespace extensions { |
-namespace GetIsCrashReportingEnabled = |
- api::metrics_private::GetIsCrashReportingEnabled; |
namespace GetVariationParams = api::metrics_private::GetVariationParams; |
-namespace GetFieldTrial = api::metrics_private::GetFieldTrial; |
namespace RecordUserAction = api::metrics_private::RecordUserAction; |
namespace RecordValue = api::metrics_private::RecordValue; |
namespace RecordSparseValue = api::metrics_private::RecordSparseValue; |
@@ -44,8 +44,12 @@ const size_t kMaxBuckets = 10000; // We don't ever want more than these many |
ExtensionFunction::ResponseAction |
MetricsPrivateGetIsCrashReportingEnabledFunction::Run() { |
+ MetricsPrivateAPI* api = |
+ BrowserContextKeyedAPIFactory<MetricsPrivateAPI>::Get(browser_context()); |
+ DCHECK(api); |
+ |
return RespondNow(OneArgument(base::MakeUnique<base::FundamentalValue>( |
- ChromeMetricsServiceAccessor::IsMetricsAndCrashReportingEnabled()))); |
+ api->delegate()->IsCrashReportingEnabled()))); |
} |
ExtensionFunction::ResponseAction MetricsPrivateGetFieldTrialFunction::Run() { |
@@ -212,4 +216,19 @@ ExtensionFunction::ResponseAction MetricsPrivateRecordLongTimeFunction::Run() { |
return RespondNow(NoArguments()); |
} |
+MetricsPrivateAPI::MetricsPrivateAPI(content::BrowserContext* context) { |
+ delegate_ = ExtensionsAPIClient::Get()->CreateMetricsPrivateDelegate(); |
+} |
+ |
+MetricsPrivateAPI::~MetricsPrivateAPI() {} |
+ |
+static base::LazyInstance<BrowserContextKeyedAPIFactory<MetricsPrivateAPI>> |
+ g_factory = LAZY_INSTANCE_INITIALIZER; |
+ |
+// static |
+BrowserContextKeyedAPIFactory<MetricsPrivateAPI>* |
+MetricsPrivateAPI::GetFactoryInstance() { |
+ return g_factory.Pointer(); |
+} |
+ |
} // namespace extensions |