1 // Copyright 2013 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "apps/saved_files_service_factory.h"
7 #include "apps/saved_files_service.h"
8 #include "components/keyed_service/content/browser_context_dependency_manager.h"
9 #include "content/public/browser/browser_context.h"
10 #include "extensions/browser/extension_host_registry.h"
11 #include "extensions/browser/extensions_browser_client.h"
16 SavedFilesService* SavedFilesServiceFactory::GetForBrowserContext(
17 content::BrowserContext* context) {
18 return static_cast<SavedFilesService*>(
19 GetInstance()->GetServiceForBrowserContext(context, true));
23 SavedFilesService* SavedFilesServiceFactory::GetForBrowserContextIfExists(
24 content::BrowserContext* context) {
25 return static_cast<SavedFilesService*>(
26 GetInstance()->GetServiceForBrowserContext(context, false));
30 SavedFilesServiceFactory* SavedFilesServiceFactory::GetInstance() {
31 return base::Singleton<SavedFilesServiceFactory>::get();
34 SavedFilesServiceFactory::SavedFilesServiceFactory()
35 : BrowserContextKeyedServiceFactory(
37 BrowserContextDependencyManager::GetInstance()) {
38 DependsOn(extensions::ExtensionHostRegistry::GetFactory());
41 SavedFilesServiceFactory::~SavedFilesServiceFactory() = default;
43 KeyedService* SavedFilesServiceFactory::BuildServiceInstanceFor(
44 content::BrowserContext* context) const {
45 return new SavedFilesService(context);
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
54 return extensions::ExtensionsBrowserClient::Get()
55 ->GetContextRedirectedToOriginal(context, /*force_guest_profile=*/true);