Index: blimp/engine/app/blimp_metrics_service_client.cc |
diff --git a/blimp/engine/app/blimp_metrics_service_client.cc b/blimp/engine/app/blimp_metrics_service_client.cc |
deleted file mode 100644 |
index 018a9236eed1b577433bbfa6495d07217e311d45..0000000000000000000000000000000000000000 |
--- a/blimp/engine/app/blimp_metrics_service_client.cc |
+++ /dev/null |
@@ -1,234 +0,0 @@ |
-// Copyright 2016 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 "blimp/engine/app/blimp_metrics_service_client.h" |
- |
-#include "base/bind.h" |
-#include "base/i18n/rtl.h" |
-#include "base/lazy_instance.h" |
-#include "base/memory/ptr_util.h" |
-#include "base/memory/ref_counted.h" |
-#include "components/metrics/call_stack_profile_metrics_provider.h" |
-#include "components/metrics/gpu/gpu_metrics_provider.h" |
-#include "components/metrics/metrics_service.h" |
-#include "components/metrics/metrics_service_client.h" |
-#include "components/metrics/metrics_state_manager.h" |
-#include "components/metrics/net/net_metrics_log_uploader.h" |
-#include "components/metrics/profiler/profiler_metrics_provider.h" |
-#include "components/metrics/ui/screen_info_metrics_provider.h" |
-#include "components/metrics/url_constants.h" |
-#include "components/prefs/pref_service.h" |
-#include "components/version_info/version_info.h" |
-#include "content/public/browser/browser_thread.h" |
-#include "net/url_request/url_request_context_getter.h" |
- |
-namespace blimp { |
-namespace engine { |
-namespace { |
- |
-// BlimpMetricsServiceClient provides an implementation of MetricsServiceClient |
-// tailored for the Blimp engine. |
-// The class is used as a singleton and metrics are always turned on. |
-class BlimpMetricsServiceClient : public metrics::MetricsServiceClient { |
- public: |
- BlimpMetricsServiceClient(); |
- ~BlimpMetricsServiceClient() override; |
- |
- // The request_context_getter is a system request context that must remain |
- // valid for the client lifetime. |
- void Initialize( |
- std::unique_ptr<PrefService> pref_service, |
- scoped_refptr<net::URLRequestContextGetter> request_context_getter); |
- void Finalize(); |
- |
- // metrics::MetricsServiceClient implementation. |
- metrics::MetricsService* GetMetricsService() override; |
- void SetMetricsClientId(const std::string& client_id) override; |
- void OnRecordingDisabled() override; |
- bool IsOffTheRecordSessionActive() override; |
- int32_t GetProduct() override; |
- std::string GetApplicationLocale() override; |
- bool GetBrand(std::string* brand_code) override; |
- metrics::SystemProfileProto::Channel GetChannel() override; |
- std::string GetVersionString() override; |
- void OnLogUploadComplete() override; |
- void InitializeSystemProfileMetrics( |
- const base::Closure& done_callback) override; |
- void CollectFinalMetricsForLog(const base::Closure& done_callback) override; |
- std::unique_ptr<metrics::MetricsLogUploader> CreateUploader( |
- const base::Callback<void(int)>& on_upload_complete) override; |
- base::TimeDelta GetStandardUploadInterval() override; |
- metrics::MetricsServiceClient::EnableMetricsDefault GetDefaultOptIn() |
- override; |
- |
- private: |
- // Used by NetMetricsLogUploader to create log-upload requests. |
- scoped_refptr<net::URLRequestContextGetter> request_context_getter_; |
- std::unique_ptr<metrics::MetricsStateManager> metrics_state_manager_; |
- std::unique_ptr<metrics::MetricsService> metrics_service_; |
- |
- DISALLOW_COPY_AND_ASSIGN(BlimpMetricsServiceClient); |
-}; |
- |
-// How often after initial logging metrics results should be uploaded to the |
-// metrics service. |
-const int kStandardUploadIntervalMinutes = 30; |
- |
-base::LazyInstance<BlimpMetricsServiceClient>::Leaky g_lazy_instance_ = |
- LAZY_INSTANCE_INITIALIZER; |
- |
-// Returns if the MetricsService should be recording metrics information for |
-// the client. |
-// This callback is required by MetricsStateManager::Create. |
-bool IsReportingEnabled() { |
- return true; |
-} |
- |
-// Store/LoadClientInfo allows Windows Chrome to back up ClientInfo. |
-// Both are no-ops for Blimp. |
-// These callbacks are required by MetricsStateManager::Create. |
-void StoreClientInfo(const metrics::ClientInfo& client_info) {} |
- |
-std::unique_ptr<metrics::ClientInfo> LoadClientInfo() { |
- return nullptr; |
-} |
- |
-} // namespace |
- |
-void BlimpMetricsServiceClient::Initialize( |
- std::unique_ptr<PrefService> pref_service, |
- scoped_refptr<net::URLRequestContextGetter> request_context_getter) { |
- request_context_getter_ = request_context_getter; |
- |
- metrics_state_manager_ = metrics::MetricsStateManager::Create( |
- pref_service.get(), base::Bind(&IsReportingEnabled), |
- base::Bind(&StoreClientInfo), base::Bind(&LoadClientInfo)); |
- |
- metrics_service_.reset(new metrics::MetricsService( |
- metrics_state_manager_.get(), this, pref_service.get())); |
- |
- metrics_service_->RegisterMetricsProvider( |
- base::WrapUnique<metrics::MetricsProvider>( |
- new metrics::NetworkMetricsProvider( |
- content::BrowserThread::GetBlockingPool()))); |
- metrics_service_->RegisterMetricsProvider( |
- base::WrapUnique<metrics::MetricsProvider>( |
- new metrics::GPUMetricsProvider)); |
- metrics_service_->RegisterMetricsProvider( |
- base::WrapUnique<metrics::MetricsProvider>( |
- new metrics::ScreenInfoMetricsProvider)); |
- metrics_service_->RegisterMetricsProvider( |
- base::WrapUnique<metrics::MetricsProvider>( |
- new metrics::ProfilerMetricsProvider())); |
- metrics_service_->RegisterMetricsProvider( |
- base::WrapUnique<metrics::MetricsProvider>( |
- new metrics::CallStackProfileMetricsProvider)); |
- |
- metrics_service_->InitializeMetricsRecordingState(); |
- |
- if (IsReportingEnabled()) |
- metrics_service_->Start(); |
-} |
- |
-void BlimpMetricsServiceClient::Finalize() { |
- metrics_service_->Stop(); |
-} |
- |
-metrics::MetricsService* BlimpMetricsServiceClient::GetMetricsService() { |
- return metrics_service_.get(); |
-} |
- |
-// In Chrome, UMA and Breakpad are enabled/disabled together by the same |
-// checkbox and they share the same client ID (a.k.a. GUID). |
-// This is not required by Blimp, so these are no-ops. |
-void BlimpMetricsServiceClient::SetMetricsClientId( |
- const std::string& client_id) {} |
- |
-// Recording can not be disabled in Blimp, so this function is a no-op. |
-void BlimpMetricsServiceClient::OnRecordingDisabled() {} |
- |
-bool BlimpMetricsServiceClient::IsOffTheRecordSessionActive() { |
- // Blimp does not have incognito mode. |
- return false; |
-} |
- |
-int32_t BlimpMetricsServiceClient::GetProduct() { |
- // Indicates product family (e.g. Chrome v Android Webview), not reported |
- // platform (e.g. Chrome_Linux, Chrome_Mac). |
- return metrics::ChromeUserMetricsExtension::CHROME; |
-} |
- |
-std::string BlimpMetricsServiceClient::GetApplicationLocale() { |
- return base::i18n::GetConfiguredLocale(); |
-} |
- |
-bool BlimpMetricsServiceClient::GetBrand(std::string* brand_code) { |
- // Blimp doesn't use brand codes. |
- return false; |
-} |
- |
-metrics::SystemProfileProto::Channel BlimpMetricsServiceClient::GetChannel() { |
- // Blimp engine does not have channel info yet. |
- return metrics::SystemProfileProto::CHANNEL_UNKNOWN; |
-} |
- |
-std::string BlimpMetricsServiceClient::GetVersionString() { |
- return version_info::GetVersionNumber(); |
-} |
- |
-void BlimpMetricsServiceClient::OnLogUploadComplete() {} |
- |
-void BlimpMetricsServiceClient::InitializeSystemProfileMetrics( |
- const base::Closure& done_callback) { |
- // Blimp requires no additional work to InitializeSystemProfileMetrics |
- // and should proceed to the next call in the chain. |
- done_callback.Run(); |
-} |
- |
-void BlimpMetricsServiceClient::CollectFinalMetricsForLog( |
- const base::Closure& done_callback) { |
- // Blimp requires no additional work to CollectFinalMetricsForLog |
- // and should proceed to the next call in the chain |
- done_callback.Run(); |
-} |
- |
-std::unique_ptr<metrics::MetricsLogUploader> |
-BlimpMetricsServiceClient::CreateUploader( |
- const base::Callback<void(int)>& on_upload_complete) { |
- return base::WrapUnique<metrics::MetricsLogUploader>( |
- new metrics::NetMetricsLogUploader( |
- request_context_getter_.get(), metrics::kDefaultMetricsServerUrl, |
- metrics::kDefaultMetricsMimeType, on_upload_complete)); |
-} |
- |
-base::TimeDelta BlimpMetricsServiceClient::GetStandardUploadInterval() { |
- return base::TimeDelta::FromMinutes(kStandardUploadIntervalMinutes); |
-} |
- |
-metrics::MetricsServiceClient::EnableMetricsDefault |
-BlimpMetricsServiceClient::GetDefaultOptIn() { |
- return OPT_IN; |
-} |
- |
-BlimpMetricsServiceClient::BlimpMetricsServiceClient() {} |
- |
-BlimpMetricsServiceClient::~BlimpMetricsServiceClient() {} |
- |
-BlimpMetricsServiceClient* GetBlimpMetricsServiceClientInstance() { |
- return g_lazy_instance_.Pointer(); |
-} |
- |
-void InitializeBlimpMetrics( |
- std::unique_ptr<PrefService> pref_service, |
- scoped_refptr<net::URLRequestContextGetter> request_context_getter) { |
- GetBlimpMetricsServiceClientInstance()->Initialize(std::move(pref_service), |
- request_context_getter); |
-} |
- |
-void FinalizeBlimpMetrics() { |
- GetBlimpMetricsServiceClientInstance()->Finalize(); |
-} |
- |
-} // namespace engine |
-} // namespace blimp |