| Index: chrome/browser/translate/translate_manager.cc | 
| diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc | 
| index b3bdca7e9620690d691bf921cea4113b622e4c92..641b64c82e76d3ad19cd9cbd1ede636d9d4a3a67 100644 | 
| --- a/chrome/browser/translate/translate_manager.cc | 
| +++ b/chrome/browser/translate/translate_manager.cc | 
| @@ -409,18 +409,17 @@ void TranslateManager::Observe(int type, | 
| delete pref_change_registrar; | 
| break; | 
| } | 
| -    case chrome::NOTIFICATION_PREF_CHANGED: { | 
| -      DCHECK(*content::Details<std::string>(details).ptr() == | 
| -             prefs::kAcceptLanguages); | 
| -      PrefService* prefs = content::Source<PrefService>(source).ptr(); | 
| -      InitAcceptLanguages(prefs); | 
| -      break; | 
| -    } | 
| default: | 
| NOTREACHED(); | 
| } | 
| } | 
|  | 
| +void TranslateManager::OnPreferenceChanged(PrefServiceBase* service, | 
| +                                           const std::string& pref_name) { | 
| +  DCHECK_EQ(std::string(prefs::kAcceptLanguages), pref_name); | 
| +  InitAcceptLanguages(service); | 
| +} | 
| + | 
| void TranslateManager::OnURLFetchComplete(const net::URLFetcher* source) { | 
| if (translate_script_request_pending_.get() != source && | 
| language_list_request_pending_.get() != source) { | 
| @@ -789,7 +788,7 @@ bool TranslateManager::IsAcceptLanguage(WebContents* web_contents, | 
| return iter->second.count(language) != 0; | 
| } | 
|  | 
| -void TranslateManager::InitAcceptLanguages(PrefService* prefs) { | 
| +void TranslateManager::InitAcceptLanguages(PrefServiceBase* prefs) { | 
| // We have been asked for this profile, build the languages. | 
| std::string accept_langs_str = prefs->GetString(prefs::kAcceptLanguages); | 
| std::vector<std::string> accept_langs_list; | 
|  |