safe_browsing_metrics_collector_factory.cc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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/safe_browsing/safe_browsing_metrics_collector_factory.h"
  5. #include "base/no_destructor.h"
  6. #include "components/keyed_service/content/browser_context_dependency_manager.h"
  7. #include "components/safe_browsing/core/browser/safe_browsing_metrics_collector.h"
  8. #include "weblayer/browser/browser_context_impl.h"
  9. namespace weblayer {
  10. // static
  11. safe_browsing::SafeBrowsingMetricsCollector*
  12. SafeBrowsingMetricsCollectorFactory::GetForBrowserContext(
  13. content::BrowserContext* browser_context) {
  14. return static_cast<safe_browsing::SafeBrowsingMetricsCollector*>(
  15. GetInstance()->GetServiceForBrowserContext(browser_context,
  16. /* create= */ true));
  17. }
  18. // static
  19. SafeBrowsingMetricsCollectorFactory*
  20. SafeBrowsingMetricsCollectorFactory::GetInstance() {
  21. static base::NoDestructor<SafeBrowsingMetricsCollectorFactory> factory;
  22. return factory.get();
  23. }
  24. // static
  25. SafeBrowsingMetricsCollectorFactory::SafeBrowsingMetricsCollectorFactory()
  26. : BrowserContextKeyedServiceFactory(
  27. "SafeBrowsingMetricsCollector",
  28. BrowserContextDependencyManager::GetInstance()) {}
  29. KeyedService* SafeBrowsingMetricsCollectorFactory::BuildServiceInstanceFor(
  30. content::BrowserContext* context) const {
  31. BrowserContextImpl* context_impl = static_cast<BrowserContextImpl*>(context);
  32. return new safe_browsing::SafeBrowsingMetricsCollector(
  33. context_impl->pref_service());
  34. }
  35. } // namespace weblayer