158e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
558e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch#include "chrome/browser/extensions/api/networking_private/networking_private_event_router_factory.h"
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
758e6fbe4ee35d65e14b626c557d37565bf8ad179Ben Murdoch#include "chrome/browser/extensions/api/networking_private/networking_private_event_router.h"
8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/extensions/api/networking_private/networking_private_service_client_factory.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/profiles/profile.h"
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/keyed_service/content/browser_context_dependency_manager.h"
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "extensions/browser/extension_system_provider.h"
125d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)#include "extensions/browser/extensions_browser_client.h"
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace extensions {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)NetworkingPrivateEventRouter*
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)NetworkingPrivateEventRouterFactory::GetForProfile(
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    content::BrowserContext* context) {
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return static_cast<NetworkingPrivateEventRouter*>(
21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      GetInstance()->GetServiceForBrowserContext(context, true));
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// static
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)NetworkingPrivateEventRouterFactory*
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)NetworkingPrivateEventRouterFactory::GetInstance() {
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return Singleton<NetworkingPrivateEventRouterFactory>::get();
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)NetworkingPrivateEventRouterFactory::NetworkingPrivateEventRouterFactory()
3190dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)    : BrowserContextKeyedServiceFactory(
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)          "NetworkingPrivateEventRouter",
3390dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)          BrowserContextDependencyManager::GetInstance()) {
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  DependsOn(ExtensionsBrowserClient::Get()->GetExtensionSystemFactory());
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#if !defined(OS_CHROMEOS)
36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  DependsOn(NetworkingPrivateServiceClientFactory::GetInstance());
37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)NetworkingPrivateEventRouterFactory::~NetworkingPrivateEventRouterFactory() {
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
43a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)KeyedService* NetworkingPrivateEventRouterFactory::BuildServiceInstanceFor(
44a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    content::BrowserContext* context) const {
45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  return NetworkingPrivateEventRouter::Create(
46a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)      Profile::FromBrowserContext(context));
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
49c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)content::BrowserContext*
50c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)NetworkingPrivateEventRouterFactory::GetBrowserContextToUse(
51c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)    content::BrowserContext* context) const {
525d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  return ExtensionsBrowserClient::Get()->GetOriginalContext(context);
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
5590dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)bool NetworkingPrivateEventRouterFactory::
5690dce4d38c5ff5333bea97d859d4e484e27edf0cTorne (Richard Coles)ServiceIsCreatedWithBrowserContext() const {
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return true;
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool NetworkingPrivateEventRouterFactory::ServiceIsNULLWhileTesting() const {
612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return true;
622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)}  // namespace extensions
65