| 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 | 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |