Chromium Code Reviews| Index: chrome/browser/net/ssl_config_service_manager_pref.cc |
| =================================================================== |
| --- chrome/browser/net/ssl_config_service_manager_pref.cc (revision 98542) |
| +++ chrome/browser/net/ssl_config_service_manager_pref.cc (working copy) |
| @@ -8,12 +8,10 @@ |
| #include <vector> |
| #include "base/basictypes.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/browser/browser_thread.h" |
| #include "content/common/notification_details.h" |
| @@ -128,6 +126,9 @@ |
| // only be called from UI thread. |
| void GetSSLConfigFromPrefs(net::SSLConfig* config); |
| + void OnSSL3EnabledChange(PrefService* prefs); |
| + void OnTLS1EnabledChange(PrefService* prefs); |
| + |
| // Processes changes to the disabled cipher suites preference, updating the |
| // cached list of parsed SSL/TLS cipher suites that are disabled. |
| void OnDisabledCipherSuitesChange(PrefService* prefs); |
| @@ -137,6 +138,10 @@ |
| // The prefs (should only be accessed from UI thread) |
| BooleanPrefMember rev_checking_enabled_; |
| + // The cached booleans of enabled SSL/TLS versions. |
| + bool ssl3_enabled_; |
|
Ryan Sleevi
2011/08/27 14:14:42
nit: You can probably simplify things just using a
wtc
2011/08/27 20:27:06
Thanks a lot for the suggestion of using a Boolean
|
| + bool tls1_enabled_; |
| + |
| // The cached list of disabled SSL cipher suites. |
| std::vector<uint16> disabled_cipher_suites_; |
| @@ -153,8 +158,12 @@ |
| rev_checking_enabled_.Init(prefs::kCertRevocationCheckingEnabled, |
| local_state, this); |
| pref_change_registrar_.Init(local_state); |
| + pref_change_registrar_.Add(prefs::kSSL3Enabled, this); |
| + pref_change_registrar_.Add(prefs::kTLS1Enabled, this); |
| pref_change_registrar_.Add(prefs::kCipherSuiteBlacklist, this); |
| + OnSSL3EnabledChange(local_state); |
| + OnTLS1EnabledChange(local_state); |
| OnDisabledCipherSuitesChange(local_state); |
| // Initialize from UI thread. This is okay as there shouldn't be anything on |
| // the IO thread trying to access it yet. |
| @@ -166,6 +175,10 @@ |
| 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); |
| } |
| @@ -181,6 +194,10 @@ |
| std::string* pref_name_in = Details<std::string>(details).ptr(); |
| PrefService* prefs = Source<PrefService>(source).ptr(); |
| DCHECK(pref_name_in && prefs); |
| + if (*pref_name_in == prefs::kSSL3Enabled) |
| + OnSSL3EnabledChange(prefs); |
| + if (*pref_name_in == prefs::kTLS1Enabled) |
|
Ryan Sleevi
2011/08/27 14:14:42
nit: else if here and line 201?
|
| + OnTLS1EnabledChange(prefs); |
| if (*pref_name_in == prefs::kCipherSuiteBlacklist) |
| OnDisabledCipherSuitesChange(prefs); |
| @@ -202,16 +219,20 @@ |
| 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_; |
| + config->tls1_enabled = tls1_enabled_; |
| config->disabled_cipher_suites = disabled_cipher_suites_; |
| SSLConfigServicePref::SetSSLConfigFlags(config); |
| } |
| +void SSLConfigServiceManagerPref::OnSSL3EnabledChange(PrefService* prefs) { |
| + ssl3_enabled_ = prefs->GetBoolean(prefs::kSSL3Enabled); |
| +} |
| + |
| +void SSLConfigServiceManagerPref::OnTLS1EnabledChange(PrefService* prefs) { |
| + tls1_enabled_ = prefs->GetBoolean(prefs::kTLS1Enabled); |
| +} |
| + |
| void SSLConfigServiceManagerPref::OnDisabledCipherSuitesChange( |
| PrefService* prefs) { |
| const ListValue* value = prefs->GetList(prefs::kCipherSuiteBlacklist); |