/chrome/browser/extensions/api/vpn_provider/vpn_service_factory.cc

https://gitlab.com/jonnialva90/iridium-browser · C++ · 66 lines · 50 code · 11 blank · 5 comment · 1 complexity · bce615096e617f7cccc71554cc167e5a MD5 · raw file

  1. // Copyright 2014 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 "extensions/browser/api/vpn_provider/vpn_service_factory.h"
  5. #include "base/memory/singleton.h"
  6. #include "chrome/browser/chromeos/profiles/profile_helper.h"
  7. #include "chrome/browser/profiles/profile.h"
  8. #include "chromeos/dbus/dbus_thread_manager.h"
  9. #include "chromeos/network/network_handler.h"
  10. #include "components/keyed_service/content/browser_context_dependency_manager.h"
  11. #include "extensions/browser/api/vpn_provider/vpn_service.h"
  12. #include "extensions/browser/event_router.h"
  13. #include "extensions/browser/extension_registry.h"
  14. namespace chromeos {
  15. // static
  16. VpnService* VpnServiceFactory::GetForBrowserContext(
  17. content::BrowserContext* context) {
  18. return static_cast<VpnService*>(
  19. GetInstance()->GetServiceForBrowserContext(context, true));
  20. }
  21. // static
  22. VpnServiceFactory* VpnServiceFactory::GetInstance() {
  23. return base::Singleton<VpnServiceFactory>::get();
  24. }
  25. VpnServiceFactory::VpnServiceFactory()
  26. : BrowserContextKeyedServiceFactory(
  27. "VpnService",
  28. BrowserContextDependencyManager::GetInstance()) {
  29. }
  30. VpnServiceFactory::~VpnServiceFactory() {
  31. }
  32. bool VpnServiceFactory::ServiceIsCreatedWithBrowserContext() const {
  33. return true;
  34. }
  35. bool VpnServiceFactory::ServiceIsNULLWhileTesting() const {
  36. return true;
  37. }
  38. KeyedService* VpnServiceFactory::BuildServiceInstanceFor(
  39. content::BrowserContext* context) const {
  40. if (!chromeos::ProfileHelper::IsPrimaryProfile(
  41. Profile::FromBrowserContext(context))) {
  42. return nullptr;
  43. }
  44. return new VpnService(
  45. context,
  46. chromeos::ProfileHelper::GetUserIdHashFromProfile(
  47. Profile::FromBrowserContext(context)),
  48. extensions::ExtensionRegistry::Get(context),
  49. extensions::EventRouter::Get(context),
  50. DBusThreadManager::Get()->GetShillThirdPartyVpnDriverClient(),
  51. NetworkHandler::Get()->network_configuration_handler(),
  52. NetworkHandler::Get()->network_profile_handler(),
  53. NetworkHandler::Get()->network_state_handler());
  54. }
  55. } // namespace chromeos