[M120 Migration][HBBTV] Implement ewk_context_register_jsplugin_mime_types
[platform/framework/web/chromium-efl.git] / apps / saved_files_service_factory.cc
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.
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/extension_host_registry.h"
11 #include "extensions/browser/extensions_browser_client.h"
12
13 namespace apps {
14
15 // static
16 SavedFilesService* SavedFilesServiceFactory::GetForBrowserContext(
17     content::BrowserContext* context) {
18   return static_cast<SavedFilesService*>(
19       GetInstance()->GetServiceForBrowserContext(context, true));
20 }
21
22 // static
23 SavedFilesService* SavedFilesServiceFactory::GetForBrowserContextIfExists(
24     content::BrowserContext* context) {
25   return static_cast<SavedFilesService*>(
26       GetInstance()->GetServiceForBrowserContext(context, false));
27 }
28
29 // static
30 SavedFilesServiceFactory* SavedFilesServiceFactory::GetInstance() {
31   return base::Singleton<SavedFilesServiceFactory>::get();
32 }
33
34 SavedFilesServiceFactory::SavedFilesServiceFactory()
35     : BrowserContextKeyedServiceFactory(
36           "SavedFilesService",
37           BrowserContextDependencyManager::GetInstance()) {
38   DependsOn(extensions::ExtensionHostRegistry::GetFactory());
39 }
40
41 SavedFilesServiceFactory::~SavedFilesServiceFactory() = default;
42
43 KeyedService* SavedFilesServiceFactory::BuildServiceInstanceFor(
44     content::BrowserContext* context) const {
45   return new SavedFilesService(context);
46 }
47
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.
54   return extensions::ExtensionsBrowserClient::Get()
55       ->GetContextRedirectedToOriginal(context, /*force_guest_profile=*/true);
56 }
57
58 }  // namespace apps