Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(862)

Unified Diff: components/ssl_config/ssl_config_service_manager_pref.cc

Issue 1422293002: Remove RC4 by default. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/ssl_config/ssl_config_prefs.cc ('k') | net/http/http_network_transaction.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
+}
+
} // 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(
« no previous file with comments | « components/ssl_config/ssl_config_prefs.cc ('k') | net/http/http_network_transaction.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698