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