weblayer_page_load_metrics_memory_tracker_factory.cc 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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 "weblayer/browser/weblayer_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 weblayer {
  10. page_load_metrics::PageLoadMetricsMemoryTracker*
  11. WeblayerPageLoadMetricsMemoryTrackerFactory::GetForBrowserContext(
  12. content::BrowserContext* context) {
  13. return static_cast<page_load_metrics::PageLoadMetricsMemoryTracker*>(
  14. GetInstance()->GetServiceForBrowserContext(context, true));
  15. }
  16. WeblayerPageLoadMetricsMemoryTrackerFactory*
  17. WeblayerPageLoadMetricsMemoryTrackerFactory::GetInstance() {
  18. return base::Singleton<WeblayerPageLoadMetricsMemoryTrackerFactory>::get();
  19. }
  20. WeblayerPageLoadMetricsMemoryTrackerFactory::
  21. WeblayerPageLoadMetricsMemoryTrackerFactory()
  22. : BrowserContextKeyedServiceFactory(
  23. "PageLoadMetricsMemoryTracker",
  24. BrowserContextDependencyManager::GetInstance()) {}
  25. bool WeblayerPageLoadMetricsMemoryTrackerFactory::
  26. ServiceIsCreatedWithBrowserContext() const {
  27. return base::FeatureList::IsEnabled(features::kV8PerFrameMemoryMonitoring);
  28. }
  29. KeyedService*
  30. WeblayerPageLoadMetricsMemoryTrackerFactory::BuildServiceInstanceFor(
  31. content::BrowserContext* context) const {
  32. return new page_load_metrics::PageLoadMetricsMemoryTracker();
  33. }
  34. content::BrowserContext*
  35. WeblayerPageLoadMetricsMemoryTrackerFactory::GetBrowserContextToUse(
  36. content::BrowserContext* context) const {
  37. return context;
  38. }
  39. } // namespace weblayer