1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file. 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/extensions/api/networking_private/networking_private_service_client_factory.h" 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 7116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "chrome/browser/extensions/api/networking_private/networking_private_delegate.h" 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "chrome/browser/extensions/api/networking_private/networking_private_service_client.h" 9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "components/keyed_service/content/browser_context_dependency_manager.h" 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "content/public/browser/browser_thread.h" 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace extensions { 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// static 15116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateDelegate* NetworkingPrivateDelegate::GetForBrowserContext( 16116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::BrowserContext* browser_context) { 17116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch return NetworkingPrivateServiceClientFactory::GetForBrowserContext( 18116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch browser_context); 19116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} 20116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 21116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch// static 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)NetworkingPrivateServiceClient* 23116680a4aac90f2aa7413d9095a592090648e557Ben MurdochNetworkingPrivateServiceClientFactory::GetForBrowserContext( 24116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::BrowserContext* browser_context) { 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return static_cast<NetworkingPrivateServiceClient*>( 26116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch GetInstance()->GetServiceForBrowserContext(browser_context, true)); 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// static 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)NetworkingPrivateServiceClientFactory* 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) NetworkingPrivateServiceClientFactory::GetInstance() { 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return Singleton<NetworkingPrivateServiceClientFactory>::get(); 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)NetworkingPrivateServiceClientFactory::NetworkingPrivateServiceClientFactory() 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) : BrowserContextKeyedServiceFactory( 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) "NetworkingPrivateServiceClient", 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) BrowserContextDependencyManager::GetInstance()) { 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)NetworkingPrivateServiceClientFactory 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) ::~NetworkingPrivateServiceClientFactory() { 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)KeyedService* NetworkingPrivateServiceClientFactory::BuildServiceInstanceFor( 46116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch content::BrowserContext* browser_context) const { 47effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return new NetworkingPrivateServiceClient( 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) wifi::WiFiService::Create(), 50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) NetworkingPrivateServiceClient::CryptoVerify::Create()); 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool NetworkingPrivateServiceClientFactory::ServiceIsCreatedWithBrowserContext() 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) const { 55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return false; 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)bool NetworkingPrivateServiceClientFactory::ServiceIsNULLWhileTesting() const { 59f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return false; 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 62f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace extensions 63