| Index: chrome/browser/tab_contents/language_state.cc
|
| diff --git a/chrome/browser/tab_contents/language_state.cc b/chrome/browser/tab_contents/language_state.cc
|
| index d57c959de39aab62ecbd858abcda7802eb18073a..00fd388fa828a716451ddd43c91b3ab71b4bc667 100644
|
| --- a/chrome/browser/tab_contents/language_state.cc
|
| +++ b/chrome/browser/tab_contents/language_state.cc
|
| @@ -59,20 +59,26 @@ void LanguageState::LanguageDetermined(const std::string& page_language,
|
| current_lang_ = page_language;
|
| }
|
|
|
| -std::string LanguageState::AutoTranslateTo() const {
|
| - // Only auto-translate if:
|
| - // - no translation is pending
|
| - // - this page is in the same language as the previous page
|
| - // - the previous page had been translated
|
| - // - this page is not already translated
|
| - // - the new page was navigated through a link.
|
| - if (!translation_pending_ &&
|
| +bool LanguageState::InTranslateNavigation() const {
|
| + // The user is in the same translate session if
|
| + // - no translation is pending
|
| + // - this page is in the same language as the previous page
|
| + // - the previous page had been translated
|
| + // - the new page was navigated through a link.
|
| + return
|
| + !translation_pending_ &&
|
| prev_original_lang_ == original_lang_ &&
|
| prev_original_lang_ != prev_current_lang_ &&
|
| - original_lang_ == current_lang_ &&
|
| navigation_controller_->GetActiveEntry() &&
|
| navigation_controller_->GetActiveEntry()->GetTransitionType() ==
|
| - content::PAGE_TRANSITION_LINK) {
|
| + content::PAGE_TRANSITION_LINK;
|
| +}
|
| +
|
| +
|
| +std::string LanguageState::AutoTranslateTo() const {
|
| + if (InTranslateNavigation() &&
|
| + // The page is not yet translated.
|
| + original_lang_ == current_lang_ ) {
|
| return prev_current_lang_;
|
| }
|
|
|
|
|