aw_metrics_service_client_delegate.cc 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "android_webview/browser/aw_metrics_service_client_delegate.h"
  5. #include "android_webview/browser/aw_browser_process.h"
  6. #include "android_webview/browser/lifecycle/aw_contents_lifecycle_notifier.h"
  7. #include "android_webview/browser/metrics/aw_component_metrics_provider_delegate.h"
  8. #include "android_webview/browser/metrics/aw_metrics_service_client.h"
  9. #include "android_webview/browser/metrics/renderer_process_metrics_provider.h"
  10. #include "android_webview/browser/metrics/visibility_metrics_provider.h"
  11. #include "android_webview/browser/page_load_metrics/aw_page_load_metrics_provider.h"
  12. #include "android_webview/browser/tracing/aw_background_tracing_metrics_provider.h"
  13. #include "components/metrics/component_metrics_provider.h"
  14. #include "components/metrics/metrics_service.h"
  15. namespace android_webview {
  16. AwMetricsServiceClientDelegate::AwMetricsServiceClientDelegate() = default;
  17. AwMetricsServiceClientDelegate::~AwMetricsServiceClientDelegate() = default;
  18. void AwMetricsServiceClientDelegate::RegisterAdditionalMetricsProviders(
  19. metrics::MetricsService* service) {
  20. service->RegisterMetricsProvider(
  21. std::make_unique<AwPageLoadMetricsProvider>());
  22. service->RegisterMetricsProvider(std::make_unique<VisibilityMetricsProvider>(
  23. AwBrowserProcess::GetInstance()->visibility_metrics_logger()));
  24. service->RegisterMetricsProvider(
  25. std::make_unique<RendererProcessMetricsProvider>());
  26. service->RegisterMetricsProvider(
  27. std::make_unique<metrics::ComponentMetricsProvider>(
  28. std::make_unique<AwComponentMetricsProviderDelegate>(
  29. AwMetricsServiceClient::GetInstance())));
  30. service->RegisterMetricsProvider(
  31. std::make_unique<tracing::AwBackgroundTracingMetricsProvider>());
  32. }
  33. void AwMetricsServiceClientDelegate::AddWebViewAppStateObserver(
  34. WebViewAppStateObserver* observer) {
  35. AwContentsLifecycleNotifier::GetInstance().AddObserver(observer);
  36. }
  37. bool AwMetricsServiceClientDelegate::HasAwContentsEverCreated() const {
  38. return AwContentsLifecycleNotifier::GetInstance()
  39. .has_aw_contents_ever_created();
  40. }
  41. } // namespace android_webview