Chromium Code Reviews| 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 86cc79267172371d1a546966a1f7480586e08519..f761d05bc6d829c94335a28273bc26280818b3a5 100644 |
| --- a/chrome/browser/net/ssl_config_service_manager_pref.cc |
| +++ b/chrome/browser/net/ssl_config_service_manager_pref.cc |
| @@ -10,6 +10,7 @@ |
| #include "base/basictypes.h" |
| #include "base/bind.h" |
| #include "base/prefs/public/pref_change_registrar.h" |
| +#include "base/prefs/public/pref_observer.h" |
| #include "chrome/browser/api/prefs/pref_member.h" |
| #include "chrome/browser/content_settings/content_settings_utils.h" |
| #include "chrome/browser/prefs/pref_service.h" |
| @@ -17,8 +18,6 @@ |
| #include "chrome/common/content_settings.h" |
| #include "chrome/common/pref_names.h" |
| #include "content/public/browser/browser_thread.h" |
| -#include "content/public/browser/notification_details.h" |
| -#include "content/public/browser/notification_source.h" |
| #include "net/base/ssl_cipher_suite_names.h" |
| #include "net/base/ssl_config_service.h" |
| @@ -145,7 +144,7 @@ void SSLConfigServicePref::SetNewSSLConfig( |
| // The manager for holding and updating an SSLConfigServicePref instance. |
| class SSLConfigServiceManagerPref |
| : public SSLConfigServiceManager, |
| - public content::NotificationObserver { |
| + public PrefObserver { |
| public: |
| SSLConfigServiceManagerPref(PrefService* local_state, |
| PrefService* user_prefs); |
| @@ -159,9 +158,8 @@ class SSLConfigServiceManagerPref |
| private: |
| // Callback for preference changes. This will post the changes to the IO |
| // thread with SetNewSSLConfig. |
| - virtual void Observe(int type, |
| - const content::NotificationSource& source, |
| - const content::NotificationDetails& details); |
| + virtual void OnPreferenceChanged(PrefServiceBase* service, |
| + const std::string& pref_name) OVERRIDE; |
| // Store SSL config settings in |config|, directly from the preferences. Must |
| // only be called from UI thread. |
| @@ -255,33 +253,29 @@ net::SSLConfigService* SSLConfigServiceManagerPref::Get() { |
| return ssl_config_service_; |
| } |
| -void SSLConfigServiceManagerPref::Observe( |
| - int type, |
| - const content::NotificationSource& source, |
| - const content::NotificationDetails& details) { |
| - if (type == chrome::NOTIFICATION_PREF_CHANGED) { |
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| - std::string* pref_name_in = content::Details<std::string>(details).ptr(); |
| - PrefService* prefs = content::Source<PrefService>(source).ptr(); |
| - DCHECK(pref_name_in && prefs); |
| - if (*pref_name_in == prefs::kCipherSuiteBlacklist) |
| - OnDisabledCipherSuitesChange(prefs); |
| - else if (*pref_name_in == prefs::kDefaultContentSettings) |
| - OnDefaultContentSettingsChange(prefs); |
| - |
| - net::SSLConfig new_config; |
| - GetSSLConfigFromPrefs(&new_config); |
| - |
| - // Post a task to |io_loop| with the new configuration, so it can |
| - // update |cached_config_|. |
| - BrowserThread::PostTask( |
| - BrowserThread::IO, |
| - FROM_HERE, |
| - base::Bind( |
| - &SSLConfigServicePref::SetNewSSLConfig, |
| - ssl_config_service_.get(), |
| - new_config)); |
| - } |
| +void SSLConfigServiceManagerPref::OnPreferenceChanged( |
| + PrefServiceBase* service, |
| + const std::string& pref_name_in) { |
| + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| + DCHECK(service); |
| + PrefService* prefs = static_cast<PrefService*>(service); |
|
Mattias Nissler (ping if slow)
2012/10/31 13:29:35
Can we do with a PrefServiceBase* instead?
Jói
2012/10/31 14:56:26
Done.
|
| + if (pref_name_in == prefs::kCipherSuiteBlacklist) |
| + OnDisabledCipherSuitesChange(prefs); |
| + else if (pref_name_in == prefs::kDefaultContentSettings) |
| + OnDefaultContentSettingsChange(prefs); |
| + |
| + net::SSLConfig new_config; |
| + GetSSLConfigFromPrefs(&new_config); |
| + |
| + // Post a task to |io_loop| with the new configuration, so it can |
| + // update |cached_config_|. |
| + BrowserThread::PostTask( |
| + BrowserThread::IO, |
| + FROM_HERE, |
| + base::Bind( |
| + &SSLConfigServicePref::SetNewSSLConfig, |
| + ssl_config_service_.get(), |
| + new_config)); |
| } |
| void SSLConfigServiceManagerPref::GetSSLConfigFromPrefs( |