1effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Copyright 2014 The Chromium Authors. All rights reserved.
2effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// found in the LICENSE file.
4effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/chromeos/file_system_provider/service_factory.h"
6effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
7effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "chrome/browser/chromeos/file_system_provider/service.h"
8effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "components/keyed_service/content/browser_context_dependency_manager.h"
90529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "extensions/browser/extension_registry.h"
100529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch#include "extensions/browser/extension_registry_factory.h"
11effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
12effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace chromeos {
13effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochnamespace file_system_provider {
14effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
15effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch// static
16effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochService* ServiceFactory::Get(content::BrowserContext* context) {
17effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  return static_cast<Service*>(
18effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch      GetInstance()->GetServiceForBrowserContext(context, true));
19effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}
20effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// static
22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)Service* ServiceFactory::FindExisting(content::BrowserContext* context) {
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  return static_cast<Service*>(
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)      GetInstance()->GetServiceForBrowserContext(context, false));
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
27effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochServiceFactory* ServiceFactory::GetInstance() {
28effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch  return Singleton<ServiceFactory>::get();
29effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}
30effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
31effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochServiceFactory::ServiceFactory()
32effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    : BrowserContextKeyedServiceFactory(
33effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch          "Service",
340529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch          BrowserContextDependencyManager::GetInstance()) {
350529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  DependsOn(extensions::ExtensionRegistryFactory::GetInstance());
360529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch}
37effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
38effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochServiceFactory::~ServiceFactory() {}
39effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
40effb81e5f8246d0db0270817048dc992db66e9fbBen MurdochKeyedService* ServiceFactory::BuildServiceInstanceFor(
41effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch    content::BrowserContext* profile) const {
420529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  return new Service(
430529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch      Profile::FromBrowserContext(profile),
440529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch      extensions::ExtensionRegistry::Get(Profile::FromBrowserContext(profile)));
45effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}
46effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdochbool ServiceFactory::ServiceIsCreatedWithBrowserContext() const { return true; }
48effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch
49effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}  // namespace file_system_provider
50effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch}  // namespace chromeos
51