| 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/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 DCHECK_GE(language_index, 0U); | 107 DCHECK_GE(language_index, 0U); |
| 108 target_language_index_ = language_index; | 108 target_language_index_ = language_index; |
| 109 if (infobar_view_) | 109 if (infobar_view_) |
| 110 infobar_view_->TargetLanguageChanged(); | 110 infobar_view_->TargetLanguageChanged(); |
| 111 if (type_ == AFTER_TRANSLATE) | 111 if (type_ == AFTER_TRANSLATE) |
| 112 Translate(); | 112 Translate(); |
| 113 } | 113 } |
| 114 | 114 |
| 115 void TranslateInfoBarDelegate::Translate() { | 115 void TranslateInfoBarDelegate::Translate() { |
| 116 const std::string& original_language_code = GetOriginalLanguageCode(); | 116 const std::string& original_language_code = GetOriginalLanguageCode(); |
| 117 if (!owner()->web_contents()->GetBrowserContext()->IsOffTheRecord()) { | 117 if (!owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord()) { |
| 118 prefs_.ResetTranslationDeniedCount(original_language_code); | 118 prefs_.ResetTranslationDeniedCount(original_language_code); |
| 119 prefs_.IncrementTranslationAcceptedCount(original_language_code); | 119 prefs_.IncrementTranslationAcceptedCount(original_language_code); |
| 120 } | 120 } |
| 121 | 121 |
| 122 TranslateManager::GetInstance()->TranslatePage(owner()->web_contents(), | 122 TranslateManager::GetInstance()->TranslatePage(owner()->GetWebContents(), |
| 123 GetLanguageCodeAt(original_language_index()), | 123 GetLanguageCodeAt(original_language_index()), |
| 124 GetLanguageCodeAt(target_language_index())); | 124 GetLanguageCodeAt(target_language_index())); |
| 125 } | 125 } |
| 126 | 126 |
| 127 void TranslateInfoBarDelegate::RevertTranslation() { | 127 void TranslateInfoBarDelegate::RevertTranslation() { |
| 128 TranslateManager::GetInstance()->RevertTranslation(owner()->web_contents()); | 128 TranslateManager::GetInstance()->RevertTranslation(owner()->GetWebContents()); |
| 129 RemoveSelf(); | 129 RemoveSelf(); |
| 130 } | 130 } |
| 131 | 131 |
| 132 void TranslateInfoBarDelegate::ReportLanguageDetectionError() { | 132 void TranslateInfoBarDelegate::ReportLanguageDetectionError() { |
| 133 TranslateManager::GetInstance()-> | 133 TranslateManager::GetInstance()-> |
| 134 ReportLanguageDetectionError(owner()->web_contents()); | 134 ReportLanguageDetectionError(owner()->GetWebContents()); |
| 135 } | 135 } |
| 136 | 136 |
| 137 void TranslateInfoBarDelegate::TranslationDeclined() { | 137 void TranslateInfoBarDelegate::TranslationDeclined() { |
| 138 const std::string& original_language_code = GetOriginalLanguageCode(); | 138 const std::string& original_language_code = GetOriginalLanguageCode(); |
| 139 if (!owner()->web_contents()->GetBrowserContext()->IsOffTheRecord()) { | 139 if (!owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord()) { |
| 140 prefs_.ResetTranslationAcceptedCount(original_language_code); | 140 prefs_.ResetTranslationAcceptedCount(original_language_code); |
| 141 prefs_.IncrementTranslationDeniedCount(original_language_code); | 141 prefs_.IncrementTranslationDeniedCount(original_language_code); |
| 142 } | 142 } |
| 143 | 143 |
| 144 // Remember that the user declined the translation so as to prevent showing a | 144 // Remember that the user declined the translation so as to prevent showing a |
| 145 // translate infobar for that page again. (TranslateManager initiates | 145 // translate infobar for that page again. (TranslateManager initiates |
| 146 // translations when getting a LANGUAGE_DETERMINED from the page, which | 146 // translations when getting a LANGUAGE_DETERMINED from the page, which |
| 147 // happens when a load stops. That could happen multiple times, including | 147 // happens when a load stops. That could happen multiple times, including |
| 148 // after the user already declined the translation.) | 148 // after the user already declined the translation.) |
| 149 TranslateTabHelper* helper = TabContents::FromWebContents( | 149 TranslateTabHelper* helper = TabContents::FromWebContents( |
| 150 owner()->web_contents())->translate_tab_helper(); | 150 owner()->GetWebContents())->translate_tab_helper(); |
| 151 helper->language_state().set_translation_declined(true); | 151 helper->language_state().set_translation_declined(true); |
| 152 } | 152 } |
| 153 | 153 |
| 154 bool TranslateInfoBarDelegate::IsLanguageBlacklisted() { | 154 bool TranslateInfoBarDelegate::IsLanguageBlacklisted() { |
| 155 return prefs_.IsLanguageBlacklisted(GetOriginalLanguageCode()); | 155 return prefs_.IsLanguageBlacklisted(GetOriginalLanguageCode()); |
| 156 } | 156 } |
| 157 | 157 |
| 158 void TranslateInfoBarDelegate::ToggleLanguageBlacklist() { | 158 void TranslateInfoBarDelegate::ToggleLanguageBlacklist() { |
| 159 const std::string& original_lang = GetOriginalLanguageCode(); | 159 const std::string& original_lang = GetOriginalLanguageCode(); |
| 160 if (prefs_.IsLanguageBlacklisted(original_lang)) { | 160 if (prefs_.IsLanguageBlacklisted(original_lang)) { |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 return string16(); | 256 return string16(); |
| 257 } | 257 } |
| 258 | 258 |
| 259 void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { | 259 void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { |
| 260 DCHECK_EQ(TRANSLATION_ERROR, type_); | 260 DCHECK_EQ(TRANSLATION_ERROR, type_); |
| 261 if (error_ == TranslateErrors::UNSUPPORTED_LANGUAGE) { | 261 if (error_ == TranslateErrors::UNSUPPORTED_LANGUAGE) { |
| 262 RevertTranslation(); | 262 RevertTranslation(); |
| 263 return; | 263 return; |
| 264 } | 264 } |
| 265 // This is the "Try again..." case. | 265 // This is the "Try again..." case. |
| 266 TranslateManager::GetInstance()->TranslatePage(owner()->web_contents(), | 266 TranslateManager::GetInstance()->TranslatePage(owner()->GetWebContents(), |
| 267 GetOriginalLanguageCode(), GetTargetLanguageCode()); | 267 GetOriginalLanguageCode(), GetTargetLanguageCode()); |
| 268 } | 268 } |
| 269 | 269 |
| 270 bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { | 270 bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { |
| 271 return !GetMessageInfoBarButtonText().empty(); | 271 return !GetMessageInfoBarButtonText().empty(); |
| 272 } | 272 } |
| 273 | 273 |
| 274 bool TranslateInfoBarDelegate::ShouldShowNeverTranslateButton() { | 274 bool TranslateInfoBarDelegate::ShouldShowNeverTranslateButton() { |
| 275 DCHECK_EQ(BEFORE_TRANSLATE, type_); | 275 DCHECK_EQ(BEFORE_TRANSLATE, type_); |
| 276 return !owner()->web_contents()->GetBrowserContext()->IsOffTheRecord() && | 276 return !owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord() && |
| 277 (prefs_.GetTranslationDeniedCount(GetOriginalLanguageCode()) >= 3); | 277 (prefs_.GetTranslationDeniedCount(GetOriginalLanguageCode()) >= 3); |
| 278 } | 278 } |
| 279 | 279 |
| 280 bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateButton() { | 280 bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateButton() { |
| 281 DCHECK_EQ(BEFORE_TRANSLATE, type_); | 281 DCHECK_EQ(BEFORE_TRANSLATE, type_); |
| 282 return !owner()->web_contents()->GetBrowserContext()->IsOffTheRecord() && | 282 return !owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord() && |
| 283 (prefs_.GetTranslationAcceptedCount(GetOriginalLanguageCode()) >= 3); | 283 (prefs_.GetTranslationAcceptedCount(GetOriginalLanguageCode()) >= 3); |
| 284 } | 284 } |
| 285 | 285 |
| 286 void TranslateInfoBarDelegate::UpdateBackgroundAnimation( | 286 void TranslateInfoBarDelegate::UpdateBackgroundAnimation( |
| 287 TranslateInfoBarDelegate* previous_infobar) { | 287 TranslateInfoBarDelegate* previous_infobar) { |
| 288 if (!previous_infobar || previous_infobar->IsError() == IsError()) | 288 if (!previous_infobar || previous_infobar->IsError() == IsError()) |
| 289 background_animation_ = NONE; | 289 background_animation_ = NONE; |
| 290 else | 290 else |
| 291 background_animation_ = IsError() ? NORMAL_TO_ERROR : ERROR_TO_NORMAL; | 291 background_animation_ = IsError() ? NORMAL_TO_ERROR : ERROR_TO_NORMAL; |
| 292 } | 292 } |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 395 return PAGE_ACTION_TYPE; | 395 return PAGE_ACTION_TYPE; |
| 396 } | 396 } |
| 397 | 397 |
| 398 TranslateInfoBarDelegate* | 398 TranslateInfoBarDelegate* |
| 399 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { | 399 TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() { |
| 400 return this; | 400 return this; |
| 401 } | 401 } |
| 402 | 402 |
| 403 std::string TranslateInfoBarDelegate::GetPageHost() { | 403 std::string TranslateInfoBarDelegate::GetPageHost() { |
| 404 NavigationEntry* entry = | 404 NavigationEntry* entry = |
| 405 owner()->web_contents()->GetController().GetActiveEntry(); | 405 owner()->GetWebContents()->GetController().GetActiveEntry(); |
| 406 return entry ? entry->GetURL().HostNoBrackets() : std::string(); | 406 return entry ? entry->GetURL().HostNoBrackets() : std::string(); |
| 407 } | 407 } |
| OLD | NEW |