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 "chrome/browser/extensions/api/networking_private/networking_private_event_router_factory.h"
6
7#include "chrome/browser/extensions/api/networking_private/networking_private_event_router.h"
8#include "chrome/browser/extensions/api/networking_private/networking_private_service_client_factory.h"
9#include "chrome/browser/profiles/profile.h"
10#include "components/keyed_service/content/browser_context_dependency_manager.h"
11#include "extensions/browser/extension_system_provider.h"
12#include "extensions/browser/extensions_browser_client.h"
13
14namespace extensions {
15
16// static
17NetworkingPrivateEventRouter*
18NetworkingPrivateEventRouterFactory::GetForProfile(
19    content::BrowserContext* context) {
20  return static_cast<NetworkingPrivateEventRouter*>(
21      GetInstance()->GetServiceForBrowserContext(context, true));
22}
23
24// static
25NetworkingPrivateEventRouterFactory*
26NetworkingPrivateEventRouterFactory::GetInstance() {
27  return Singleton<NetworkingPrivateEventRouterFactory>::get();
28}
29
30NetworkingPrivateEventRouterFactory::NetworkingPrivateEventRouterFactory()
31    : BrowserContextKeyedServiceFactory(
32          "NetworkingPrivateEventRouter",
33          BrowserContextDependencyManager::GetInstance()) {
34  DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory());
35#if !defined(OS_CHROMEOS)
36  DependsOn(NetworkingPrivateServiceClientFactory::GetInstance());
37#endif
38}
39
40NetworkingPrivateEventRouterFactory::~NetworkingPrivateEventRouterFactory() {
41}
42
43KeyedService* NetworkingPrivateEventRouterFactory::BuildServiceInstanceFor(
44    content::BrowserContext* context) const {
45  return NetworkingPrivateEventRouter::Create(
46      Profile::FromBrowserContext(context));
47}
48
49content::BrowserContext*
50NetworkingPrivateEventRouterFactory::GetBrowserContextToUse(
51    content::BrowserContext* context) const {
52  return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
53}
54
55bool NetworkingPrivateEventRouterFactory::
56ServiceIsCreatedWithBrowserContext() const {
57  return true;
58}
59
60bool NetworkingPrivateEventRouterFactory::ServiceIsNULLWhileTesting() const {
61  return true;
62}
63
64}  // namespace extensions
65