Index: chrome/browser/translate/chrome_translate_client.cc |
diff --git a/chrome/browser/translate/chrome_translate_client.cc b/chrome/browser/translate/chrome_translate_client.cc |
index 15fc4fe07cb9af4b1f3d9bcd03e421bc50b17dbd..6a8afdf3d2c216d38d4a00ac5cd0dbbc7836d6ec 100644 |
--- a/chrome/browser/translate/chrome_translate_client.cc |
+++ b/chrome/browser/translate/chrome_translate_client.cc |
@@ -22,6 +22,7 @@ |
#include "chrome/browser/ui/translate/translate_bubble_factory.h" |
#include "chrome/common/pref_names.h" |
#include "components/translate/content/common/translate_messages.h" |
+#include "components/translate/core/browser/language_state.h" |
#include "components/translate/core/browser/page_translated_details.h" |
#include "components/translate/core/browser/translate_accept_languages.h" |
#include "components/translate/core/browser/translate_download_manager.h" |
@@ -82,7 +83,7 @@ ChromeTranslateClient::~ChromeTranslateClient() { |
} |
LanguageState& ChromeTranslateClient::GetLanguageState() { |
- return translate_driver_.GetLanguageState(); |
+ return translate_manager_->GetLanguageState(); |
} |
// static |
@@ -278,7 +279,7 @@ void ChromeTranslateClient::NavigationEntryCommitted( |
} |
if (!load_details.is_main_frame && |
- translate_driver_.GetLanguageState().translation_declined()) { |
+ GetLanguageState().translation_declined()) { |
// Some sites (such as Google map) may trigger sub-frame navigations |
// when the user interacts with the page. We don't want to show a new |
// infobar if the user already dismissed one in that case. |
@@ -291,7 +292,7 @@ void ChromeTranslateClient::NavigationEntryCommitted( |
return; |
} |
- if (!translate_driver_.GetLanguageState().page_needs_translation()) |
+ if (!GetLanguageState().page_needs_translation()) |
return; |
// Note that we delay it as the ordering of the processing of this callback |
@@ -302,7 +303,7 @@ void ChromeTranslateClient::NavigationEntryCommitted( |
FROM_HERE, |
base::Bind(&ChromeTranslateClient::InitiateTranslation, |
weak_pointer_factory_.GetWeakPtr(), |
- translate_driver_.GetLanguageState().original_language(), |
+ GetLanguageState().original_language(), |
0)); |
} |
@@ -310,7 +311,11 @@ void ChromeTranslateClient::DidNavigateAnyFrame( |
const content::LoadCommittedDetails& details, |
const content::FrameNavigateParams& params) { |
// Let the LanguageState clear its state. |
- translate_driver_.DidNavigate(details); |
+ const bool reload = |
+ details.entry->GetTransitionType() == content::PAGE_TRANSITION_RELOAD || |
+ details.type == content::NAVIGATION_TYPE_SAME_PAGE; |
+ GetLanguageState().DidNavigate( |
+ details.is_in_page, details.is_main_frame, reload); |
} |
void ChromeTranslateClient::WebContentsDestroyed() { |
@@ -457,7 +462,7 @@ void ChromeTranslateClient::HandleCLDDataRequest() { |
void ChromeTranslateClient::InitiateTranslation(const std::string& page_lang, |
int attempt) { |
- if (translate_driver_.GetLanguageState().translation_pending()) |
+ if (GetLanguageState().translation_pending()) |
return; |
// During a reload we need web content to be available before the |
@@ -483,8 +488,8 @@ void ChromeTranslateClient::InitiateTranslation(const std::string& page_lang, |
void ChromeTranslateClient::OnLanguageDetermined( |
const LanguageDetectionDetails& details, |
bool page_needs_translation) { |
- translate_driver_.GetLanguageState().LanguageDetermined( |
- details.adopted_language, page_needs_translation); |
+ GetLanguageState().LanguageDetermined(details.adopted_language, |
+ page_needs_translation); |
if (web_contents()) |
translate_manager_->InitiateTranslation(details.adopted_language); |