| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 #include "chrome/browser/net/ssl_config_service_manager.h" | 4 #include "chrome/browser/net/ssl_config_service_manager.h" |
| 5 | 5 |
| 6 #include <algorithm> | 6 #include <algorithm> |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
| 11 #include "base/bind.h" | 11 #include "base/bind.h" |
| 12 #include "base/prefs/public/pref_change_registrar.h" | 12 #include "base/prefs/public/pref_change_registrar.h" |
| 13 #include "base/prefs/public/pref_member.h" | 13 #include "base/prefs/public/pref_member.h" |
| 14 #include "chrome/browser/content_settings/content_settings_utils.h" | 14 #include "chrome/browser/content_settings/content_settings_utils.h" |
| 15 #include "chrome/browser/prefs/pref_registry_simple.h" |
| 15 #include "chrome/browser/prefs/pref_service.h" | 16 #include "chrome/browser/prefs/pref_service.h" |
| 16 #include "chrome/common/chrome_notification_types.h" | 17 #include "chrome/common/chrome_notification_types.h" |
| 17 #include "chrome/common/content_settings.h" | 18 #include "chrome/common/content_settings.h" |
| 18 #include "chrome/common/pref_names.h" | 19 #include "chrome/common/pref_names.h" |
| 19 #include "content/public/browser/browser_thread.h" | 20 #include "content/public/browser/browser_thread.h" |
| 20 #include "net/base/ssl_cipher_suite_names.h" | 21 #include "net/base/ssl_cipher_suite_names.h" |
| 21 #include "net/base/ssl_config_service.h" | 22 #include "net/base/ssl_config_service.h" |
| 22 | 23 |
| 23 using content::BrowserThread; | 24 using content::BrowserThread; |
| 24 | 25 |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 | 143 |
| 143 // The manager for holding and updating an SSLConfigServicePref instance. | 144 // The manager for holding and updating an SSLConfigServicePref instance. |
| 144 class SSLConfigServiceManagerPref | 145 class SSLConfigServiceManagerPref |
| 145 : public SSLConfigServiceManager { | 146 : public SSLConfigServiceManager { |
| 146 public: | 147 public: |
| 147 SSLConfigServiceManagerPref(PrefService* local_state, | 148 SSLConfigServiceManagerPref(PrefService* local_state, |
| 148 PrefService* user_prefs); | 149 PrefService* user_prefs); |
| 149 virtual ~SSLConfigServiceManagerPref() {} | 150 virtual ~SSLConfigServiceManagerPref() {} |
| 150 | 151 |
| 151 // Register local_state SSL preferences. | 152 // Register local_state SSL preferences. |
| 152 static void RegisterPrefs(PrefServiceSimple* local_state); | 153 static void RegisterPrefs(PrefRegistrySimple* local_state); |
| 153 | 154 |
| 154 virtual net::SSLConfigService* Get(); | 155 virtual net::SSLConfigService* Get(); |
| 155 | 156 |
| 156 private: | 157 private: |
| 157 // Callback for preference changes. This will post the changes to the IO | 158 // Callback for preference changes. This will post the changes to the IO |
| 158 // thread with SetNewSSLConfig. | 159 // thread with SetNewSSLConfig. |
| 159 void OnPreferenceChanged(PrefServiceBase* prefs, | 160 void OnPreferenceChanged(PrefServiceBase* prefs, |
| 160 const std::string& pref_name); | 161 const std::string& pref_name); |
| 161 | 162 |
| 162 // Store SSL config settings in |config|, directly from the preferences. Must | 163 // Store SSL config settings in |config|, directly from the preferences. Must |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 239 OnDefaultContentSettingsChange(user_prefs); | 240 OnDefaultContentSettingsChange(user_prefs); |
| 240 } | 241 } |
| 241 | 242 |
| 242 // Initialize from UI thread. This is okay as there shouldn't be anything on | 243 // Initialize from UI thread. This is okay as there shouldn't be anything on |
| 243 // the IO thread trying to access it yet. | 244 // the IO thread trying to access it yet. |
| 244 GetSSLConfigFromPrefs(&ssl_config_service_->cached_config_); | 245 GetSSLConfigFromPrefs(&ssl_config_service_->cached_config_); |
| 245 } | 246 } |
| 246 | 247 |
| 247 // static | 248 // static |
| 248 void SSLConfigServiceManagerPref::RegisterPrefs( | 249 void SSLConfigServiceManagerPref::RegisterPrefs( |
| 249 PrefServiceSimple* local_state) { | 250 PrefRegistrySimple* local_state) { |
| 250 net::SSLConfig default_config; | 251 net::SSLConfig default_config; |
| 251 local_state->RegisterBooleanPref(prefs::kCertRevocationCheckingEnabled, | 252 local_state->RegisterBooleanPref(prefs::kCertRevocationCheckingEnabled, |
| 252 default_config.rev_checking_enabled); | 253 default_config.rev_checking_enabled); |
| 253 std::string version_min_str = | 254 std::string version_min_str = |
| 254 SSLProtocolVersionToString(default_config.version_min); | 255 SSLProtocolVersionToString(default_config.version_min); |
| 255 std::string version_max_str = | 256 std::string version_max_str = |
| 256 SSLProtocolVersionToString(default_config.version_max); | 257 SSLProtocolVersionToString(default_config.version_max); |
| 257 local_state->RegisterStringPref(prefs::kSSLVersionMin, version_min_str); | 258 local_state->RegisterStringPref(prefs::kSSLVersionMin, version_min_str); |
| 258 local_state->RegisterStringPref(prefs::kSSLVersionMax, version_max_str); | 259 local_state->RegisterStringPref(prefs::kSSLVersionMax, version_max_str); |
| 259 local_state->RegisterBooleanPref(prefs::kEnableOriginBoundCerts, | 260 local_state->RegisterBooleanPref(prefs::kEnableOriginBoundCerts, |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 346 //////////////////////////////////////////////////////////////////////////////// | 347 //////////////////////////////////////////////////////////////////////////////// |
| 347 // SSLConfigServiceManager | 348 // SSLConfigServiceManager |
| 348 | 349 |
| 349 // static | 350 // static |
| 350 SSLConfigServiceManager* SSLConfigServiceManager::CreateDefaultManager( | 351 SSLConfigServiceManager* SSLConfigServiceManager::CreateDefaultManager( |
| 351 PrefService* local_state, PrefService* user_prefs) { | 352 PrefService* local_state, PrefService* user_prefs) { |
| 352 return new SSLConfigServiceManagerPref(local_state, user_prefs); | 353 return new SSLConfigServiceManagerPref(local_state, user_prefs); |
| 353 } | 354 } |
| 354 | 355 |
| 355 // static | 356 // static |
| 356 void SSLConfigServiceManager::RegisterPrefs(PrefServiceSimple* prefs) { | 357 void SSLConfigServiceManager::RegisterPrefs(PrefRegistrySimple* prefs) { |
| 357 SSLConfigServiceManagerPref::RegisterPrefs(prefs); | 358 SSLConfigServiceManagerPref::RegisterPrefs(prefs); |
| 358 } | 359 } |
| OLD | NEW |