Avi Drissman | da6cecbc | 2022-09-07 18:10:30 | [diff] [blame] | 1 | // Copyright 2013 The Chromium Authors |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 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 "apps/saved_files_service_factory.h" |
| 6 | |
| 7 | #include "apps/saved_files_service.h" |
blundell@chromium.org | 12b7af3 | 2014-03-13 05:28:20 | [diff] [blame] | 8 | #include "components/keyed_service/content/browser_context_dependency_manager.h" |
michaelpg | 4d80e56 | 2017-04-04 01:48:14 | [diff] [blame] | 9 | #include "content/public/browser/browser_context.h" |
Devlin Cronin | 8256415 | 2021-09-15 00:05:50 | [diff] [blame] | 10 | #include "extensions/browser/extension_host_registry.h" |
Toni Barzic | 45366535 | 2018-01-12 04:18:37 | [diff] [blame] | 11 | #include "extensions/browser/extensions_browser_client.h" |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 12 | |
| 13 | namespace apps { |
| 14 | |
| 15 | // static |
michaelpg | 4d80e56 | 2017-04-04 01:48:14 | [diff] [blame] | 16 | SavedFilesService* SavedFilesServiceFactory::GetForBrowserContext( |
| 17 | content::BrowserContext* context) { |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 18 | return static_cast<SavedFilesService*>( |
michaelpg | 4d80e56 | 2017-04-04 01:48:14 | [diff] [blame] | 19 | GetInstance()->GetServiceForBrowserContext(context, true)); |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 20 | } |
| 21 | |
| 22 | // static |
michaelpg | dbdcdcc | 2017-04-06 01:40:56 | [diff] [blame] | 23 | SavedFilesService* SavedFilesServiceFactory::GetForBrowserContextIfExists( |
| 24 | content::BrowserContext* context) { |
| 25 | return static_cast<SavedFilesService*>( |
| 26 | GetInstance()->GetServiceForBrowserContext(context, false)); |
| 27 | } |
| 28 | |
| 29 | // static |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 30 | SavedFilesServiceFactory* SavedFilesServiceFactory::GetInstance() { |
olli.raula | 36aa8be | 2015-09-10 11:14:22 | [diff] [blame] | 31 | return base::Singleton<SavedFilesServiceFactory>::get(); |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 32 | } |
| 33 | |
| 34 | SavedFilesServiceFactory::SavedFilesServiceFactory() |
| 35 | : BrowserContextKeyedServiceFactory( |
| 36 | "SavedFilesService", |
Devlin Cronin | 8256415 | 2021-09-15 00:05:50 | [diff] [blame] | 37 | BrowserContextDependencyManager::GetInstance()) { |
| 38 | DependsOn(extensions::ExtensionHostRegistry::GetFactory()); |
| 39 | } |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 40 | |
Chris Watkins | ee8488b | 2017-11-27 04:06:56 | [diff] [blame] | 41 | SavedFilesServiceFactory::~SavedFilesServiceFactory() = default; |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 42 | |
blundell@chromium.org | 12b7af3 | 2014-03-13 05:28:20 | [diff] [blame] | 43 | KeyedService* SavedFilesServiceFactory::BuildServiceInstanceFor( |
michaelpg | 4d80e56 | 2017-04-04 01:48:14 | [diff] [blame] | 44 | content::BrowserContext* context) const { |
| 45 | return new SavedFilesService(context); |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 46 | } |
| 47 | |
Toni Barzic | 45366535 | 2018-01-12 04:18:37 | [diff] [blame] | 48 | content::BrowserContext* SavedFilesServiceFactory::GetBrowserContextToUse( |
| 49 | content::BrowserContext* context) const { |
| 50 | // Make sure that the service is created even for incognito profile. The goal |
| 51 | // is to make this service available in guest sessions, where it could be used |
| 52 | // when apps white-listed in guest sessions attempt to use chrome.fileSystem |
| 53 | // API. |
Ryan Sultanem | 64fc983 | 2023-07-21 10:14:51 | [diff] [blame] | 54 | return extensions::ExtensionsBrowserClient::Get() |
| 55 | ->GetContextRedirectedToOriginal(context, /*force_guest_profile=*/true); |
Toni Barzic | 45366535 | 2018-01-12 04:18:37 | [diff] [blame] | 56 | } |
| 57 | |
sammc@chromium.org | 961745f | 2013-05-25 14:09:24 | [diff] [blame] | 58 | } // namespace apps |