usb_chooser_context_factory.cc 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // Copyright (c) 2022 Microsoft, Inc.
  2. // Use of this source code is governed by the MIT license that can be
  3. // found in the LICENSE file.
  4. #include "shell/browser/usb/usb_chooser_context_factory.h"
  5. #include "components/keyed_service/content/browser_context_dependency_manager.h"
  6. #include "shell/browser/electron_browser_context.h"
  7. #include "shell/browser/usb/usb_chooser_context.h"
  8. namespace electron {
  9. UsbChooserContextFactory::UsbChooserContextFactory()
  10. : BrowserContextKeyedServiceFactory(
  11. "UsbChooserContext",
  12. BrowserContextDependencyManager::GetInstance()) {}
  13. UsbChooserContextFactory::~UsbChooserContextFactory() = default;
  14. KeyedService* UsbChooserContextFactory::BuildServiceInstanceFor(
  15. content::BrowserContext* context) const {
  16. auto* browser_context =
  17. static_cast<electron::ElectronBrowserContext*>(context);
  18. return new UsbChooserContext(browser_context);
  19. }
  20. // static
  21. UsbChooserContextFactory* UsbChooserContextFactory::GetInstance() {
  22. return base::Singleton<UsbChooserContextFactory>::get();
  23. }
  24. // static
  25. UsbChooserContext* UsbChooserContextFactory::GetForBrowserContext(
  26. content::BrowserContext* context) {
  27. return static_cast<UsbChooserContext*>(
  28. GetInstance()->GetServiceForBrowserContext(context, /*create=*/true));
  29. }
  30. UsbChooserContext* UsbChooserContextFactory::GetForBrowserContextIfExists(
  31. content::BrowserContext* context) {
  32. return static_cast<UsbChooserContext*>(
  33. GetInstance()->GetServiceForBrowserContext(context, /*create=*/false));
  34. }
  35. } // namespace electron