Chromium Code Reviews| Index: components/ssl_config/ssl_config_service_manager_pref.cc |
| diff --git a/components/ssl_config/ssl_config_service_manager_pref.cc b/components/ssl_config/ssl_config_service_manager_pref.cc |
| index 0f7329f3fa0903af9ab1c547f2b5fe49b7760b57..d9c567f767db4f97b9b5feb57c1bad238369d0f6 100644 |
| --- a/components/ssl_config/ssl_config_service_manager_pref.cc |
| +++ b/components/ssl_config/ssl_config_service_manager_pref.cc |
| @@ -15,6 +15,8 @@ |
| #include "base/prefs/pref_registry_simple.h" |
| #include "base/prefs/pref_service.h" |
| #include "base/single_thread_task_runner.h" |
| +#include "base/strings/string_util.h" |
| +#include "base/values.h" |
| #include "components/content_settings/core/browser/content_settings_utils.h" |
| #include "components/content_settings/core/common/content_settings.h" |
| #include "components/ssl_config/ssl_config_prefs.h" |
| @@ -78,6 +80,12 @@ uint16 SSLProtocolVersionFromString(const std::string& version_str) { |
| return version; |
| } |
| +bool IsRC4EnabledByDefault() { |
| + const std::string group_name = |
| + base::FieldTrialList::FindFullName("RC4Ciphers"); |
| + return base::StartsWith(group_name, "Enabled", base::CompareCase::SENSITIVE); |
|
Ryan Sleevi
2015/10/27 22:58:37
Finch docs seem inconsistent here. Chromium prefer
Ilya Sherman
2015/10/28 03:12:56
I think either == or StartsWith is fine. Alternat
davidben
2015/10/28 21:36:13
I don't see any users of base::Feature in the enti
|
| +} |
| + |
| } // namespace |
| //////////////////////////////////////////////////////////////////////////////// |
| @@ -164,6 +172,7 @@ class SSLConfigServiceManagerPref : public ssl_config::SSLConfigServiceManager { |
| StringPrefMember ssl_version_min_; |
| StringPrefMember ssl_version_max_; |
| StringPrefMember ssl_version_fallback_min_; |
| + BooleanPrefMember rc4_enabled_; |
| // The cached list of disabled SSL cipher suites. |
| std::vector<uint16> disabled_cipher_suites_; |
| @@ -182,6 +191,10 @@ SSLConfigServiceManagerPref::SSLConfigServiceManagerPref( |
| io_task_runner_(io_task_runner) { |
| DCHECK(local_state); |
| + local_state->SetDefaultPrefValue( |
| + ssl_config::prefs::kRC4Enabled, |
| + new base::FundamentalValue(IsRC4EnabledByDefault())); |
| + |
| PrefChangeRegistrar::NamedChangeCallback local_state_callback = |
| base::Bind(&SSLConfigServiceManagerPref::OnPreferenceChanged, |
| base::Unretained(this), local_state); |
| @@ -197,6 +210,8 @@ SSLConfigServiceManagerPref::SSLConfigServiceManagerPref( |
| local_state_callback); |
| ssl_version_fallback_min_.Init(ssl_config::prefs::kSSLVersionFallbackMin, |
| local_state, local_state_callback); |
| + rc4_enabled_.Init(ssl_config::prefs::kRC4Enabled, local_state, |
| + local_state_callback); |
| local_state_change_registrar_.Init(local_state); |
| local_state_change_registrar_.Add(ssl_config::prefs::kCipherSuiteBlacklist, |
| @@ -225,6 +240,8 @@ void SSLConfigServiceManagerPref::RegisterPrefs(PrefRegistrySimple* registry) { |
| registry->RegisterStringPref(ssl_config::prefs::kSSLVersionFallbackMin, |
| std::string()); |
| registry->RegisterListPref(ssl_config::prefs::kCipherSuiteBlacklist); |
| + registry->RegisterBooleanPref(ssl_config::prefs::kRC4Enabled, |
| + default_config.rc4_enabled); |
| } |
| net::SSLConfigService* SSLConfigServiceManagerPref::Get() { |
| @@ -279,6 +296,7 @@ void SSLConfigServiceManagerPref::GetSSLConfigFromPrefs( |
| config->version_fallback_min = version_fallback_min; |
| } |
| config->disabled_cipher_suites = disabled_cipher_suites_; |
| + config->rc4_enabled = rc4_enabled_.GetValue(); |
| } |
| void SSLConfigServiceManagerPref::OnDisabledCipherSuitesChange( |