stateful_ssl_host_state_delegate_factory.cc 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 "weblayer/browser/stateful_ssl_host_state_delegate_factory.h"
  5. #include <memory>
  6. #include "components/keyed_service/content/browser_context_dependency_manager.h"
  7. #include "components/security_interstitials/content/stateful_ssl_host_state_delegate.h"
  8. #include "components/user_prefs/user_prefs.h"
  9. #include "content/public/browser/browser_context.h"
  10. #include "weblayer/browser/host_content_settings_map_factory.h"
  11. namespace weblayer {
  12. // static
  13. StatefulSSLHostStateDelegate*
  14. StatefulSSLHostStateDelegateFactory::GetForBrowserContext(
  15. content::BrowserContext* browser_context) {
  16. return static_cast<StatefulSSLHostStateDelegate*>(
  17. GetInstance()->GetServiceForBrowserContext(browser_context, true));
  18. }
  19. // static
  20. StatefulSSLHostStateDelegateFactory*
  21. StatefulSSLHostStateDelegateFactory::GetInstance() {
  22. return base::Singleton<StatefulSSLHostStateDelegateFactory>::get();
  23. }
  24. StatefulSSLHostStateDelegateFactory::StatefulSSLHostStateDelegateFactory()
  25. : BrowserContextKeyedServiceFactory(
  26. "StatefulSSLHostStateDelegate",
  27. BrowserContextDependencyManager::GetInstance()) {
  28. DependsOn(HostContentSettingsMapFactory::GetInstance());
  29. }
  30. StatefulSSLHostStateDelegateFactory::~StatefulSSLHostStateDelegateFactory() =
  31. default;
  32. KeyedService* StatefulSSLHostStateDelegateFactory::BuildServiceInstanceFor(
  33. content::BrowserContext* context) const {
  34. return new StatefulSSLHostStateDelegate(
  35. context, user_prefs::UserPrefs::Get(context),
  36. HostContentSettingsMapFactory::GetForBrowserContext(context));
  37. }
  38. content::BrowserContext*
  39. StatefulSSLHostStateDelegateFactory::GetBrowserContextToUse(
  40. content::BrowserContext* context) const {
  41. return context;
  42. }
  43. } // namespace weblayer