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