blob: 6496150871b630b59301391ac2bf99fe236b42f2 [file] [log] [blame]
Matt Reynoldsb07027a2019-05-21 23:43:261// Copyright 2019 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
5#include "chrome/browser/hid/hid_chooser_context_factory.h"
6
David Sandersde533fce2021-12-15 14:59:437#include "base/no_destructor.h"
Matt Reynoldsb07027a2019-05-21 23:43:268#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
9#include "chrome/browser/hid/hid_chooser_context.h"
Matt Reynoldsb07027a2019-05-21 23:43:2610#include "chrome/browser/profiles/profile.h"
Matt Reynoldsb07027a2019-05-21 23:43:2611
12// static
13HidChooserContextFactory* HidChooserContextFactory::GetInstance() {
14 static base::NoDestructor<HidChooserContextFactory> factory;
15 return factory.get();
16}
17
18// static
19HidChooserContext* HidChooserContextFactory::GetForProfile(Profile* profile) {
20 return static_cast<HidChooserContext*>(
21 GetInstance()->GetServiceForBrowserContext(profile, true));
22}
23
Andy Paicufa96c832021-06-24 16:17:1524// static
25HidChooserContext* HidChooserContextFactory::GetForProfileIfExists(
26 Profile* profile) {
27 return static_cast<HidChooserContext*>(
28 GetInstance()->GetServiceForBrowserContext(profile, /*create=*/false));
29}
30
Matt Reynoldsb07027a2019-05-21 23:43:2631HidChooserContextFactory::HidChooserContextFactory()
Ryan Sultanem66dded2b2022-08-22 10:34:1532 : ProfileKeyedServiceFactory(
Matt Reynoldsb07027a2019-05-21 23:43:2633 "HidChooserContext",
Ryan Sultanem66dded2b2022-08-22 10:34:1534 ProfileSelections::BuildForRegularAndIncognito()) {
Matt Reynoldsb07027a2019-05-21 23:43:2635 DependsOn(HostContentSettingsMapFactory::GetInstance());
36}
37
38HidChooserContextFactory::~HidChooserContextFactory() = default;
39
40KeyedService* HidChooserContextFactory::BuildServiceInstanceFor(
41 content::BrowserContext* context) const {