aw_page_load_metrics_memory_tracker_factory.cc 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Copyright 2021 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/page_load_metrics/aw_page_load_metrics_memory_tracker_factory.h"
  5. #include "base/memory/singleton.h"
  6. #include "components/keyed_service/content/browser_context_dependency_manager.h"
  7. #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
  8. #include "components/page_load_metrics/browser/page_load_metrics_memory_tracker.h"
  9. namespace android_webview {
  10. page_load_metrics::PageLoadMetricsMemoryTracker*
  11. AwPageLoadMetricsMemoryTrackerFactory::GetForBrowserContext(
  12. content::BrowserContext* context) {
  13. return static_cast<page_load_metrics::PageLoadMetricsMemoryTracker*>(
  14. GetInstance()->GetServiceForBrowserContext(context, true));
  15. }
  16. AwPageLoadMetricsMemoryTrackerFactory*
  17. AwPageLoadMetricsMemoryTrackerFactory::GetInstance() {
  18. return base::Singleton<AwPageLoadMetricsMemoryTrackerFactory>::get();
  19. }
  20. AwPageLoadMetricsMemoryTrackerFactory::AwPageLoadMetricsMemoryTrackerFactory()
  21. : BrowserContextKeyedServiceFactory(
  22. "PageLoadMetricsMemoryTracker",
  23. BrowserContextDependencyManager::GetInstance()) {}
  24. bool AwPageLoadMetricsMemoryTrackerFactory::ServiceIsCreatedWithBrowserContext()
  25. const {
  26. return base::FeatureList::IsEnabled(features::kV8PerFrameMemoryMonitoring);
  27. }
  28. KeyedService* AwPageLoadMetricsMemoryTrackerFactory::BuildServiceInstanceFor(
  29. content::BrowserContext* context) const {
  30. return new page_load_metrics::PageLoadMetricsMemoryTracker();
  31. }
  32. content::BrowserContext*
  33. AwPageLoadMetricsMemoryTrackerFactory::GetBrowserContextToUse(
  34. content::BrowserContext* context) const {
  35. return context;
  36. }
  37. } // namespace android_webview