Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(526)

Side by Side Diff: chrome/browser/translate/translate_manager.cc

Issue 11345008: Remove content::NotificationObserver dependency from most Prefs code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge to head for commit Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 4
5 #include "chrome/browser/translate/translate_manager.h" 5 #include "chrome/browser/translate/translate_manager.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/json/json_reader.h" 10 #include "base/json/json_reader.h"
(...skipping 391 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 // We should know about this profile since we are listening for 402 // We should know about this profile since we are listening for
403 // notifications on it. 403 // notifications on it.
404 DCHECK(count == 1u); 404 DCHECK(count == 1u);
405 PrefChangeRegistrar* pref_change_registrar = 405 PrefChangeRegistrar* pref_change_registrar =
406 pref_change_registrars_[pref_service]; 406 pref_change_registrars_[pref_service];
407 count = pref_change_registrars_.erase(pref_service); 407 count = pref_change_registrars_.erase(pref_service);
408 DCHECK(count == 1u); 408 DCHECK(count == 1u);
409 delete pref_change_registrar; 409 delete pref_change_registrar;
410 break; 410 break;
411 } 411 }
412 case chrome::NOTIFICATION_PREF_CHANGED: {
413 DCHECK(*content::Details<std::string>(details).ptr() ==
414 prefs::kAcceptLanguages);
415 PrefService* prefs = content::Source<PrefService>(source).ptr();
416 InitAcceptLanguages(prefs);
417 break;
418 }
419 default: 412 default:
420 NOTREACHED(); 413 NOTREACHED();
421 } 414 }
422 } 415 }
423 416
417 void TranslateManager::OnPreferenceChanged(PrefServiceBase* service,
418 const std::string& pref_name) {
419 DCHECK_EQ(std::string(prefs::kAcceptLanguages), pref_name);
420 InitAcceptLanguages(service);
421 }
422
424 void TranslateManager::OnURLFetchComplete(const net::URLFetcher* source) { 423 void TranslateManager::OnURLFetchComplete(const net::URLFetcher* source) {
425 if (translate_script_request_pending_.get() != source && 424 if (translate_script_request_pending_.get() != source &&
426 language_list_request_pending_.get() != source) { 425 language_list_request_pending_.get() != source) {
427 // Looks like crash on Mac is possibly caused with callback entering here 426 // Looks like crash on Mac is possibly caused with callback entering here
428 // with unknown fetcher when network is refreshed. 427 // with unknown fetcher when network is refreshed.
429 scoped_ptr<const net::URLFetcher> delete_ptr(source); 428 scoped_ptr<const net::URLFetcher> delete_ptr(source);
430 return; 429 return;
431 } 430 }
432 431
433 bool error = 432 bool error =
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after
782 pref_change_registrar->Init(pref_service); 781 pref_change_registrar->Init(pref_service);
783 pref_change_registrar->Add(prefs::kAcceptLanguages, this); 782 pref_change_registrar->Add(prefs::kAcceptLanguages, this);
784 pref_change_registrars_[pref_service] = pref_change_registrar; 783 pref_change_registrars_[pref_service] = pref_change_registrar;
785 784
786 iter = accept_languages_.find(pref_service); 785 iter = accept_languages_.find(pref_service);
787 } 786 }
788 787
789 return iter->second.count(language) != 0; 788 return iter->second.count(language) != 0;
790 } 789 }
791 790
792 void TranslateManager::InitAcceptLanguages(PrefService* prefs) { 791 void TranslateManager::InitAcceptLanguages(PrefServiceBase* prefs) {
793 // We have been asked for this profile, build the languages. 792 // We have been asked for this profile, build the languages.
794 std::string accept_langs_str = prefs->GetString(prefs::kAcceptLanguages); 793 std::string accept_langs_str = prefs->GetString(prefs::kAcceptLanguages);
795 std::vector<std::string> accept_langs_list; 794 std::vector<std::string> accept_langs_list;
796 LanguageSet accept_langs_set; 795 LanguageSet accept_langs_set;
797 base::SplitString(accept_langs_str, ',', &accept_langs_list); 796 base::SplitString(accept_langs_str, ',', &accept_langs_list);
798 std::vector<std::string>::const_iterator iter; 797 std::vector<std::string>::const_iterator iter;
799 std::string ui_lang = 798 std::string ui_lang =
800 GetLanguageCode(g_browser_process->GetApplicationLocale()); 799 GetLanguageCode(g_browser_process->GetApplicationLocale());
801 bool is_ui_english = StartsWithASCII(ui_lang, "en-", false); 800 bool is_ui_english = StartsWithASCII(ui_lang, "en-", false);
802 for (iter = accept_langs_list.begin(); 801 for (iter = accept_langs_list.begin();
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
925 924
926 for (size_t i = 0; i < infobar_helper->GetInfoBarCount(); ++i) { 925 for (size_t i = 0; i < infobar_helper->GetInfoBarCount(); ++i) {
927 TranslateInfoBarDelegate* delegate = 926 TranslateInfoBarDelegate* delegate =
928 infobar_helper->GetInfoBarDelegateAt(i)-> 927 infobar_helper->GetInfoBarDelegateAt(i)->
929 AsTranslateInfoBarDelegate(); 928 AsTranslateInfoBarDelegate();
930 if (delegate) 929 if (delegate)
931 return delegate; 930 return delegate;
932 } 931 }
933 return NULL; 932 return NULL;
934 } 933 }
OLDNEW
« no previous file with comments | « chrome/browser/translate/translate_manager.h ('k') | chrome/browser/translate/translate_manager_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698