Index: chrome/browser/net/ssl_config_service_manager_pref.cc |
diff --git a/chrome/browser/net/ssl_config_service_manager_pref.cc b/chrome/browser/net/ssl_config_service_manager_pref.cc |
index ffb13946ad8a734d1c84ce2ae9f1fe17a4df1a80..af3683bd2759798f4c8520f9a83a4cc8a63e26d4 100644 |
--- a/chrome/browser/net/ssl_config_service_manager_pref.cc |
+++ b/chrome/browser/net/ssl_config_service_manager_pref.cc |
@@ -9,12 +9,10 @@ |
#include "base/basictypes.h" |
#include "base/bind.h" |
-#include "base/command_line.h" |
#include "chrome/browser/prefs/pref_change_registrar.h" |
#include "chrome/browser/prefs/pref_member.h" |
#include "chrome/browser/prefs/pref_service.h" |
#include "chrome/common/chrome_notification_types.h" |
-#include "chrome/common/chrome_switches.h" |
#include "chrome/common/pref_names.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_details.h" |
@@ -138,6 +136,8 @@ class SSLConfigServiceManagerPref |
// The prefs (should only be accessed from UI thread) |
BooleanPrefMember rev_checking_enabled_; |
+ BooleanPrefMember ssl3_enabled_; |
+ BooleanPrefMember tls1_enabled_; |
// The cached list of disabled SSL cipher suites. |
std::vector<uint16> disabled_cipher_suites_; |
@@ -154,6 +154,8 @@ SSLConfigServiceManagerPref::SSLConfigServiceManagerPref( |
rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled, |
local_state, this); |
+ ssl3_enabled_.Init(prefs::kSSL3Enabled, local_state, this); |
+ tls1_enabled_.Init(prefs::kTLS1Enabled, local_state, this); |
pref_change_registrar_.Init(local_state); |
pref_change_registrar_.Add(prefs::kCipherSuiteBlacklist, this); |
@@ -168,7 +170,16 @@ void SSLConfigServiceManagerPref::RegisterPrefs(PrefService* prefs) { |
net::SSLConfig default_config; |
prefs->RegisterBooleanPref(prefs::kCertRevocationCheckingEnabled, |
default_config.rev_checking_enabled); |
+ prefs->RegisterBooleanPref(prefs::kSSL3Enabled, |
+ default_config.ssl3_enabled); |
+ prefs->RegisterBooleanPref(prefs::kTLS1Enabled, |
+ default_config.tls1_enabled); |
prefs->RegisterListPref(prefs::kCipherSuiteBlacklist); |
+ // The Options menu used to allow changing the ssl.ssl3.enabled and |
+ // ssl.tls1.enabled preferences, so some users' Local State may have |
+ // these preferences. Remove them from Local State. |
+ prefs->ClearPref(prefs::kSSL3Enabled); |
+ prefs->ClearPref(prefs::kTLS1Enabled); |
} |
net::SSLConfigService* SSLConfigServiceManagerPref::Get() { |
@@ -205,12 +216,8 @@ void SSLConfigServiceManagerPref::Observe( |
void SSLConfigServiceManagerPref::GetSSLConfigFromPrefs( |
net::SSLConfig* config) { |
config->rev_checking_enabled = rev_checking_enabled_.GetValue(); |
- |
- config->ssl3_enabled = |
- !CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableSSL3); |
- config->tls1_enabled = |
- !CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableTLS1); |
- |
+ config->ssl3_enabled = ssl3_enabled_.GetValue(); |
+ config->tls1_enabled = tls1_enabled_.GetValue(); |
config->disabled_cipher_suites = disabled_cipher_suites_; |
SSLConfigServicePref::SetSSLConfigFlags(config); |
} |