| 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_infobar_delegate.h" | 5 #include "chrome/browser/translate/translate_infobar_delegate.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/i18n/string_compare.h" | 9 #include "base/i18n/string_compare.h" |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 126 ui_delegate_.Translate(); | 126 ui_delegate_.Translate(); |
| 127 } | 127 } |
| 128 | 128 |
| 129 void TranslateInfoBarDelegate::RevertTranslation() { | 129 void TranslateInfoBarDelegate::RevertTranslation() { |
| 130 ui_delegate_.RevertTranslation(); | 130 ui_delegate_.RevertTranslation(); |
| 131 infobar()->RemoveSelf(); | 131 infobar()->RemoveSelf(); |
| 132 } | 132 } |
| 133 | 133 |
| 134 void TranslateInfoBarDelegate::ReportLanguageDetectionError() { | 134 void TranslateInfoBarDelegate::ReportLanguageDetectionError() { |
| 135 TranslateManager* manager = | 135 TranslateManager* manager = |
| 136 TranslateTabHelper::GetManagerFromWebContents(web_contents()); | 136 TranslateTabHelper::GetManagerFromWebContents(GetWebContents()); |
| 137 if (!manager) | 137 if (!manager) |
| 138 return; | 138 return; |
| 139 manager->ReportLanguageDetectionError(); | 139 manager->ReportLanguageDetectionError(); |
| 140 } | 140 } |
| 141 | 141 |
| 142 void TranslateInfoBarDelegate::TranslationDeclined() { | 142 void TranslateInfoBarDelegate::TranslationDeclined() { |
| 143 ui_delegate_.TranslationDeclined(false); | 143 ui_delegate_.TranslationDeclined(false); |
| 144 } | 144 } |
| 145 | 145 |
| 146 bool TranslateInfoBarDelegate::IsTranslatableLanguageByPrefs() { | 146 bool TranslateInfoBarDelegate::IsTranslatableLanguageByPrefs() { |
| 147 Profile* profile = | 147 Profile* profile = |
| 148 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); | 148 Profile::FromBrowserContext(GetWebContents()->GetBrowserContext()); |
| 149 Profile* original_profile = profile->GetOriginalProfile(); | 149 Profile* original_profile = profile->GetOriginalProfile(); |
| 150 scoped_ptr<TranslatePrefs> translate_prefs( | 150 scoped_ptr<TranslatePrefs> translate_prefs( |
| 151 TranslateTabHelper::CreateTranslatePrefs(original_profile->GetPrefs())); | 151 TranslateTabHelper::CreateTranslatePrefs(original_profile->GetPrefs())); |
| 152 TranslateAcceptLanguages* accept_languages = | 152 TranslateAcceptLanguages* accept_languages = |
| 153 TranslateTabHelper::GetTranslateAcceptLanguages(original_profile); | 153 TranslateTabHelper::GetTranslateAcceptLanguages(original_profile); |
| 154 return translate_prefs->CanTranslateLanguage(accept_languages, | 154 return translate_prefs->CanTranslateLanguage(accept_languages, |
| 155 original_language_code()); | 155 original_language_code()); |
| 156 } | 156 } |
| 157 | 157 |
| 158 void TranslateInfoBarDelegate::ToggleTranslatableLanguageByPrefs() { | 158 void TranslateInfoBarDelegate::ToggleTranslatableLanguageByPrefs() { |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 } | 248 } |
| 249 | 249 |
| 250 void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { | 250 void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { |
| 251 DCHECK_EQ(translate::TRANSLATE_STEP_TRANSLATE_ERROR, step_); | 251 DCHECK_EQ(translate::TRANSLATE_STEP_TRANSLATE_ERROR, step_); |
| 252 if (error_type_ == TranslateErrors::UNSUPPORTED_LANGUAGE) { | 252 if (error_type_ == TranslateErrors::UNSUPPORTED_LANGUAGE) { |
| 253 RevertTranslation(); | 253 RevertTranslation(); |
| 254 return; | 254 return; |
| 255 } | 255 } |
| 256 // This is the "Try again..." case. | 256 // This is the "Try again..." case. |
| 257 TranslateManager* manager = | 257 TranslateManager* manager = |
| 258 TranslateTabHelper::GetManagerFromWebContents(web_contents()); | 258 TranslateTabHelper::GetManagerFromWebContents(GetWebContents()); |
| 259 DCHECK(manager); | 259 DCHECK(manager); |
| 260 manager->TranslatePage( | 260 manager->TranslatePage( |
| 261 original_language_code(), target_language_code(), false); | 261 original_language_code(), target_language_code(), false); |
| 262 } | 262 } |
| 263 | 263 |
| 264 bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { | 264 bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { |
| 265 return !GetMessageInfoBarButtonText().empty(); | 265 return !GetMessageInfoBarButtonText().empty(); |
| 266 } | 266 } |
| 267 | 267 |
| 268 bool TranslateInfoBarDelegate::ShouldShowNeverTranslateShortcut() { | 268 bool TranslateInfoBarDelegate::ShouldShowNeverTranslateShortcut() { |
| 269 DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_); | 269 DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_); |
| 270 return !web_contents()->GetBrowserContext()->IsOffTheRecord() && | 270 return !GetWebContents()->GetBrowserContext()->IsOffTheRecord() && |
| 271 (prefs_->GetTranslationDeniedCount(original_language_code()) >= | 271 (prefs_->GetTranslationDeniedCount(original_language_code()) >= |
| 272 kNeverTranslateMinCount); | 272 kNeverTranslateMinCount); |
| 273 } | 273 } |
| 274 | 274 |
| 275 bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateShortcut() { | 275 bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateShortcut() { |
| 276 DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_); | 276 DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_); |
| 277 return !web_contents()->GetBrowserContext()->IsOffTheRecord() && | 277 return !GetWebContents()->GetBrowserContext()->IsOffTheRecord() && |
| 278 (prefs_->GetTranslationAcceptedCount(original_language_code()) >= | 278 (prefs_->GetTranslationAcceptedCount(original_language_code()) >= |
| 279 kAlwaysTranslateMinCount); | 279 kAlwaysTranslateMinCount); |
| 280 } | 280 } |
| 281 | 281 |
| 282 content::WebContents* TranslateInfoBarDelegate::GetWebContents() { |
| 283 return InfoBarService::WebContentsFromInfoBar(infobar()); |
| 284 } |
| 285 |
| 282 // static | 286 // static |
| 283 base::string16 TranslateInfoBarDelegate::GetLanguageDisplayableName( | 287 base::string16 TranslateInfoBarDelegate::GetLanguageDisplayableName( |
| 284 const std::string& language_code) { | 288 const std::string& language_code) { |
| 285 return l10n_util::GetDisplayNameForLocale( | 289 return l10n_util::GetDisplayNameForLocale( |
| 286 language_code, g_browser_process->GetApplicationLocale(), true); | 290 language_code, g_browser_process->GetApplicationLocale(), true); |
| 287 } | 291 } |
| 288 | 292 |
| 289 // static | 293 // static |
| 290 void TranslateInfoBarDelegate::GetAfterTranslateStrings( | 294 void TranslateInfoBarDelegate::GetAfterTranslateStrings( |
| 291 std::vector<base::string16>* strings, | 295 std::vector<base::string16>* strings, |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 371 if (!details.is_navigation_to_different_page && !details.is_main_frame) | 375 if (!details.is_navigation_to_different_page && !details.is_main_frame) |
| 372 return false; | 376 return false; |
| 373 | 377 |
| 374 return InfoBarDelegate::ShouldExpireInternal(details); | 378 return InfoBarDelegate::ShouldExpireInternal(details); |
| 375 } | 379 } |
| 376 | 380 |
| 377 TranslateInfoBarDelegate* | 381 TranslateInfoBarDelegate* |
| 378 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { | 382 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { |
| 379 return this; | 383 return this; |
| 380 } | 384 } |
| OLD | NEW |