Upload upstream chromium 67.0.3396
[platform/framework/web/chromium-efl.git] / apps / saved_files_service_factory.cc
1 // Copyright 2013 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 "apps/saved_files_service_factory.h"
6
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/extensions_browser_client.h"
11
12 namespace apps {
13
14 // static
15 SavedFilesService* SavedFilesServiceFactory::GetForBrowserContext(
16     content::BrowserContext* context) {
17   return static_cast<SavedFilesService*>(
18       GetInstance()->GetServiceForBrowserContext(context, true));
19 }
20
21 // static
22 SavedFilesService* SavedFilesServiceFactory::GetForBrowserContextIfExists(
23     content::BrowserContext* context) {
24   return static_cast<SavedFilesService*>(
25       GetInstance()->GetServiceForBrowserContext(context, false));
26 }
27
28 // static
29 SavedFilesServiceFactory* SavedFilesServiceFactory::GetInstance() {
30   return base::Singleton<SavedFilesServiceFactory>::get();
31 }
32
33 SavedFilesServiceFactory::SavedFilesServiceFactory()
34     : BrowserContextKeyedServiceFactory(
35           "SavedFilesService",
36           BrowserContextDependencyManager::GetInstance()) {}
37
38 SavedFilesServiceFactory::~SavedFilesServiceFactory() = default;
39
40 KeyedService* SavedFilesServiceFactory::BuildServiceInstanceFor(
41     content::BrowserContext* context) const {
42   return new SavedFilesService(context);
43 }
44
45 content::BrowserContext* SavedFilesServiceFactory::GetBrowserContextToUse(
46     content::BrowserContext* context) const {
47   // Make sure that the service is created even for incognito profile. The goal
48   // is to make this service available in guest sessions, where it could be used
49   // when apps white-listed in guest sessions attempt to use chrome.fileSystem
50   // API.
51   return extensions::ExtensionsBrowserClient::Get()->GetOriginalContext(
52       context);
53 }
54
55 }  // namespace apps