Commit 12639cce authored by Colin Blundell's avatar Colin Blundell Committed by Commit Bot

[SSL] Simplify //chrome's ChromeSSLHostStateDelegateFactory

In advance of bringing up a factory for ChromeSSLHostStateDelegate in
//weblayer, this CL simplifies the one in //chrome by making
ChromeSSLHostStateDelegate a KeyedService directly rather than having
a wrapper class inside the factory. This avoids the need to replicate
the boilerplate in //weblayer's factory.

Bug: 1030692
Change-Id: I5732f70c5180261c9bbbc385e38da623e01cab86
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2063172Reviewed-by: default avatarCarlos IL <carlosil@chromium.org>
Commit-Queue: Colin Blundell <blundell@chromium.org>
Cr-Commit-Position: refs/heads/master@{#743017}
parent 39b3598f
...@@ -11,37 +11,13 @@ ...@@ -11,37 +11,13 @@
#include "chrome/browser/profiles/incognito_helpers.h" #include "chrome/browser/profiles/incognito_helpers.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/keyed_service/content/browser_context_dependency_manager.h"
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
#include "components/keyed_service/core/keyed_service.h"
#include "components/security_interstitials/content/chrome_ssl_host_state_delegate.h" #include "components/security_interstitials/content/chrome_ssl_host_state_delegate.h"
namespace {
class Service : public KeyedService {
public:
explicit Service(Profile* profile)
: decisions_(new ChromeSSLHostStateDelegate(
profile,
profile->GetPrefs(),
HostContentSettingsMapFactory::GetForProfile(profile))) {}
ChromeSSLHostStateDelegate* decisions() { return decisions_.get(); }
void Shutdown() override {}
private:
std::unique_ptr<ChromeSSLHostStateDelegate> decisions_;
DISALLOW_COPY_AND_ASSIGN(Service);
};
} // namespace
// static // static
ChromeSSLHostStateDelegate* ChromeSSLHostStateDelegateFactory::GetForProfile( ChromeSSLHostStateDelegate* ChromeSSLHostStateDelegateFactory::GetForProfile(
Profile* profile) { Profile* profile) {
return static_cast<Service*>(GetInstance()->GetServiceForBrowserContext( return static_cast<ChromeSSLHostStateDelegate*>(
profile, true))->decisions(); GetInstance()->GetServiceForBrowserContext(profile, true));
} }
// static // static
...@@ -61,12 +37,11 @@ ChromeSSLHostStateDelegateFactory::~ChromeSSLHostStateDelegateFactory() = ...@@ -61,12 +37,11 @@ ChromeSSLHostStateDelegateFactory::~ChromeSSLHostStateDelegateFactory() =
default; default;
KeyedService* ChromeSSLHostStateDelegateFactory::BuildServiceInstanceFor( KeyedService* ChromeSSLHostStateDelegateFactory::BuildServiceInstanceFor(
content::BrowserContext* profile) const { content::BrowserContext* context) const {
return new Service(static_cast<Profile*>(profile)); Profile* profile = Profile::FromBrowserContext(context);
} return new ChromeSSLHostStateDelegate(
profile, profile->GetPrefs(),
void ChromeSSLHostStateDelegateFactory::RegisterProfilePrefs( HostContentSettingsMapFactory::GetForProfile(profile));
user_prefs::PrefRegistrySyncable* registry) {
} }
content::BrowserContext* content::BrowserContext*
......
...@@ -31,9 +31,7 @@ class ChromeSSLHostStateDelegateFactory ...@@ -31,9 +31,7 @@ class ChromeSSLHostStateDelegateFactory
// BrowserContextKeyedServiceFactory methods: // BrowserContextKeyedServiceFactory methods:
KeyedService* BuildServiceInstanceFor( KeyedService* BuildServiceInstanceFor(
content::BrowserContext* profile) const override; content::BrowserContext* context) const override;
void RegisterProfilePrefs(
user_prefs::PrefRegistrySyncable* registry) override;
content::BrowserContext* GetBrowserContextToUse( content::BrowserContext* GetBrowserContextToUse(
content::BrowserContext* context) const override; content::BrowserContext* context) const override;
......
...@@ -77,6 +77,7 @@ static_library("security_interstitial_page") { ...@@ -77,6 +77,7 @@ static_library("security_interstitial_page") {
"//components/content_settings/core/browser", "//components/content_settings/core/browser",
"//components/content_settings/core/common", "//components/content_settings/core/common",
"//components/history/core/browser", "//components/history/core/browser",
"//components/keyed_service/core",
"//components/network_time", "//components/network_time",
"//components/pref_registry", "//components/pref_registry",
"//components/prefs:prefs", "//components/prefs:prefs",
......
...@@ -4,6 +4,7 @@ include_rules = [ ...@@ -4,6 +4,7 @@ include_rules = [
"+components/content_settings/core/common", "+components/content_settings/core/common",
"+components/embedder_support", "+components/embedder_support",
"+components/grit/components_resources.h", "+components/grit/components_resources.h",
"+components/keyed_service/core",
"+components/network_time", "+components/network_time",
"+components/pref_registry", "+components/pref_registry",
"+components/prefs", "+components/prefs",
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "base/feature_list.h" #include "base/feature_list.h"
#include "base/macros.h" #include "base/macros.h"
#include "base/time/time.h" #include "base/time/time.h"
#include "components/keyed_service/core/keyed_service.h"
#include "content/public/browser/ssl_host_state_delegate.h" #include "content/public/browser/ssl_host_state_delegate.h"
class HostContentSettingsMap; class HostContentSettingsMap;
...@@ -34,7 +35,8 @@ class PrefRegistrySyncable; ...@@ -34,7 +35,8 @@ class PrefRegistrySyncable;
// of time depending on experimental groups) // of time depending on experimental groups)
// - mixed content exceptions // - mixed content exceptions
// - when errors have recurred multiple times // - when errors have recurred multiple times
class ChromeSSLHostStateDelegate : public content::SSLHostStateDelegate { class ChromeSSLHostStateDelegate : public content::SSLHostStateDelegate,
public KeyedService {
public: public:
enum RecurrentInterstitialMode { PREF, IN_MEMORY, NOT_SET }; enum RecurrentInterstitialMode { PREF, IN_MEMORY, NOT_SET };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment