accept_languages_service_factory.cc 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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/accept_languages_service_factory.h"
  5. #include "base/no_destructor.h"
  6. #include "components/keyed_service/content/browser_context_dependency_manager.h"
  7. #include "components/language/core/browser/accept_languages_service.h"
  8. #include "components/language/core/browser/pref_names.h"
  9. #include "components/prefs/pref_service.h"
  10. #include "components/user_prefs/user_prefs.h"
  11. #include "content/public/browser/browser_context.h"
  12. namespace weblayer {
  13. // static
  14. language::AcceptLanguagesService*
  15. AcceptLanguagesServiceFactory::GetForBrowserContext(
  16. content::BrowserContext* context) {
  17. return static_cast<language::AcceptLanguagesService*>(
  18. GetInstance()->GetServiceForBrowserContext(context, true));
  19. }
  20. // static
  21. AcceptLanguagesServiceFactory* AcceptLanguagesServiceFactory::GetInstance() {
  22. static base::NoDestructor<AcceptLanguagesServiceFactory> factory;
  23. return factory.get();
  24. }
  25. AcceptLanguagesServiceFactory::AcceptLanguagesServiceFactory()
  26. : BrowserContextKeyedServiceFactory(
  27. "AcceptLanguagesService",
  28. BrowserContextDependencyManager::GetInstance()) {}
  29. AcceptLanguagesServiceFactory::~AcceptLanguagesServiceFactory() = default;
  30. KeyedService* AcceptLanguagesServiceFactory::BuildServiceInstanceFor(
  31. content::BrowserContext* browser_context) const {
  32. return new language::AcceptLanguagesService(
  33. user_prefs::UserPrefs::Get(browser_context),
  34. language::prefs::kAcceptLanguages);
  35. }
  36. content::BrowserContext* AcceptLanguagesServiceFactory::GetBrowserContextToUse(
  37. content::BrowserContext* context) const {
  38. return context;
  39. }
  40. } // namespace weblayer