1 // Copyright 2014 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.
5 #include "chrome/browser/ssl/chrome_ssl_host_state_delegate_factory.h"
7 #include "base/memory/scoped_ptr.h"
8 #include "chrome/browser/profiles/incognito_helpers.h"
9 #include "chrome/browser/profiles/profile.h"
10 #include "chrome/browser/ssl/chrome_ssl_host_state_delegate.h"
11 #include "components/keyed_service/content/browser_context_dependency_manager.h"
12 #include "components/keyed_service/content/browser_context_keyed_service_factory.h"
13 #include "components/keyed_service/core/keyed_service.h"
17 class Service
: public KeyedService
{
19 explicit Service(Profile
* profile
)
20 : decisions_(new ChromeSSLHostStateDelegate(profile
)) {}
22 ChromeSSLHostStateDelegate
* decisions() { return decisions_
.get(); }
24 void Shutdown() override
{}
27 scoped_ptr
<ChromeSSLHostStateDelegate
> decisions_
;
29 DISALLOW_COPY_AND_ASSIGN(Service
);
35 ChromeSSLHostStateDelegate
* ChromeSSLHostStateDelegateFactory::GetForProfile(
37 return static_cast<Service
*>(GetInstance()->GetServiceForBrowserContext(
38 profile
, true))->decisions();
42 ChromeSSLHostStateDelegateFactory
*
43 ChromeSSLHostStateDelegateFactory::GetInstance() {
44 return base::Singleton
<ChromeSSLHostStateDelegateFactory
>::get();
47 ChromeSSLHostStateDelegateFactory::ChromeSSLHostStateDelegateFactory()
48 : BrowserContextKeyedServiceFactory(
49 "ChromeSSLHostStateDelegate",
50 BrowserContextDependencyManager::GetInstance()) {
53 ChromeSSLHostStateDelegateFactory::~ChromeSSLHostStateDelegateFactory() {
56 KeyedService
* ChromeSSLHostStateDelegateFactory::BuildServiceInstanceFor(
57 content::BrowserContext
* profile
) const {
58 return new Service(static_cast<Profile
*>(profile
));
61 void ChromeSSLHostStateDelegateFactory::RegisterProfilePrefs(
62 user_prefs::PrefRegistrySyncable
* registry
) {
65 content::BrowserContext
*
66 ChromeSSLHostStateDelegateFactory::GetBrowserContextToUse(
67 content::BrowserContext
* context
) const {
68 return chrome::GetBrowserContextOwnInstanceInIncognito(context
);