1// Copyright 2014 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 "chrome/browser/apps/per_app_settings_service_factory.h"
6
7#include "base/memory/singleton.h"
8#include "chrome/browser/apps/per_app_settings_service.h"
9#include "components/keyed_service/content/browser_context_dependency_manager.h"
10#include "extensions/browser/extensions_browser_client.h"
11
12// static
13PerAppSettingsServiceFactory* PerAppSettingsServiceFactory::GetInstance() {
14  return Singleton<PerAppSettingsServiceFactory>::get();
15}
16
17// static
18PerAppSettingsService* PerAppSettingsServiceFactory::GetForBrowserContext(
19    content::BrowserContext* browser_context) {
20  return static_cast<PerAppSettingsService*>(
21      GetInstance()->GetServiceForBrowserContext(
22          browser_context, true /* create */));
23}
24
25PerAppSettingsServiceFactory::PerAppSettingsServiceFactory()
26    : BrowserContextKeyedServiceFactory(
27          "PerAppSettingsServiceFactory",
28          BrowserContextDependencyManager::GetInstance()) {
29}
30
31PerAppSettingsServiceFactory::~PerAppSettingsServiceFactory() {}
32
33KeyedService* PerAppSettingsServiceFactory::BuildServiceInstanceFor(
34    content::BrowserContext* context) const {
35  return new PerAppSettingsService;
36}
37
38bool PerAppSettingsServiceFactory::ServiceIsCreatedWithBrowserContext() const {
39  return false;
40}
41
42content::BrowserContext* PerAppSettingsServiceFactory::GetBrowserContextToUse(
43    content::BrowserContext* context) const {
44  return extensions::ExtensionsBrowserClient::Get()->
45      GetOriginalContext(context);
46}
47