Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(917)

Unified Diff: chrome/browser/extensions/api/metrics_private/metrics_private_api.cc

Issue 2331343012: Create MetricsPrivateDelegate for metricsPrivate behavior (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698