Index: chrome/browser/translate/translate_infobar_delegate.cc |
diff --git a/chrome/browser/translate/translate_infobar_delegate.cc b/chrome/browser/translate/translate_infobar_delegate.cc |
index 8db68f86bb5b3783728a77971bee8aaaa58ef924..cd6490abbed28c75b3895aa0566695ebef675fb9 100644 |
--- a/chrome/browser/translate/translate_infobar_delegate.cc |
+++ b/chrome/browser/translate/translate_infobar_delegate.cc |
@@ -15,6 +15,7 @@ |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/translate/translate_manager.h" |
#include "chrome/browser/translate/translate_tab_helper.h" |
+#include "components/translate/core/browser/translate_accept_languages.h" |
#include "components/translate/core/browser/translate_download_manager.h" |
#include "components/translate/core/common/translate_constants.h" |
#include "content/public/browser/navigation_details.h" |
@@ -141,8 +142,12 @@ bool TranslateInfoBarDelegate::IsTranslatableLanguageByPrefs() { |
Profile* profile = |
Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
Profile* original_profile = profile->GetOriginalProfile(); |
- return TranslatePrefs::CanTranslateLanguage(original_profile, |
- original_language_code()); |
+ scoped_ptr<TranslatePrefs> translate_prefs( |
+ TranslateTabHelper::CreateTranslatePrefs(original_profile->GetPrefs())); |
+ TranslateAcceptLanguages* accept_languages = |
+ TranslateTabHelper::GetTranslateAcceptLanguages(original_profile); |
+ return translate_prefs->CanTranslateLanguage(accept_languages, |
+ original_language_code()); |
} |
void TranslateInfoBarDelegate::ToggleTranslatableLanguageByPrefs() { |
@@ -255,14 +260,14 @@ bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { |
bool TranslateInfoBarDelegate::ShouldShowNeverTranslateShortcut() { |
DCHECK_EQ(BEFORE_TRANSLATE, infobar_type_); |
return !web_contents()->GetBrowserContext()->IsOffTheRecord() && |
- (prefs_.GetTranslationDeniedCount(original_language_code()) >= |
+ (prefs_->GetTranslationDeniedCount(original_language_code()) >= |
kNeverTranslateMinCount); |
} |
bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateShortcut() { |
DCHECK_EQ(BEFORE_TRANSLATE, infobar_type_); |
return !web_contents()->GetBrowserContext()->IsOffTheRecord() && |
- (prefs_.GetTranslationAcceptedCount(original_language_code()) >= |
+ (prefs_->GetTranslationAcceptedCount(original_language_code()) >= |
kAlwaysTranslateMinCount); |
} |
@@ -321,7 +326,7 @@ TranslateInfoBarDelegate::TranslateInfoBarDelegate( |
background_animation_(NONE), |
ui_delegate_(web_contents, original_language, target_language), |
error_type_(error_type), |
- prefs_(prefs) { |
+ prefs_(TranslateTabHelper::CreateTranslatePrefs(prefs)) { |
DCHECK_NE((infobar_type_ == TRANSLATION_ERROR), |
(error_type_ == TranslateErrors::NONE)); |