| 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..28d769cce3ff977430e1a642000a2e839f341663 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. | 
| @@ -169,10 +167,10 @@ class SSLConfigServiceManagerPref | 
|  | 
| // Processes changes to the disabled cipher suites preference, updating the | 
| // cached list of parsed SSL/TLS cipher suites that are disabled. | 
| -  void OnDisabledCipherSuitesChange(PrefService* local_state); | 
| +  void OnDisabledCipherSuitesChange(PrefServiceBase* local_state); | 
|  | 
| // Processes changes to the default cookie settings. | 
| -  void OnDefaultContentSettingsChange(PrefService* user_prefs); | 
| +  void OnDefaultContentSettingsChange(PrefServiceBase* user_prefs); | 
|  | 
| PrefChangeRegistrar local_state_change_registrar_; | 
| PrefChangeRegistrar user_prefs_change_registrar_; | 
| @@ -255,33 +253,28 @@ 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* prefs, | 
| +    const std::string& pref_name_in) { | 
| +  DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 
| +  DCHECK(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::GetSSLConfigFromPrefs( | 
| @@ -318,13 +311,13 @@ void SSLConfigServiceManagerPref::GetSSLConfigFromPrefs( | 
| } | 
|  | 
| void SSLConfigServiceManagerPref::OnDisabledCipherSuitesChange( | 
| -    PrefService* local_state) { | 
| +    PrefServiceBase* local_state) { | 
| const ListValue* value = local_state->GetList(prefs::kCipherSuiteBlacklist); | 
| disabled_cipher_suites_ = ParseCipherSuites(ListValueToStringVector(value)); | 
| } | 
|  | 
| void SSLConfigServiceManagerPref::OnDefaultContentSettingsChange( | 
| -    PrefService* user_prefs) { | 
| +    PrefServiceBase* user_prefs) { | 
| const DictionaryValue* value = user_prefs->GetDictionary( | 
| prefs::kDefaultContentSettings); | 
| int default_cookie_settings = -1; | 
|  |