Index: chrome/browser/translate/translate_tab_helper.cc |
diff --git a/chrome/browser/translate/translate_tab_helper.cc b/chrome/browser/translate/translate_tab_helper.cc |
index c7af593346ae726f7cd21c8c06485aceb61c32a5..1ddd8459f04eb01a7f19038bdd270288a325d958 100644 |
--- a/chrome/browser/translate/translate_tab_helper.cc |
+++ b/chrome/browser/translate/translate_tab_helper.cc |
@@ -80,7 +80,7 @@ TranslateTabHelper::~TranslateTabHelper() { |
} |
LanguageState& TranslateTabHelper::GetLanguageState() { |
- return translate_driver_.GetLanguageState(); |
+ return translate_manager_->GetLanguageState(); |
} |
// static |
@@ -271,7 +271,7 @@ void TranslateTabHelper::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. |
@@ -284,7 +284,7 @@ void TranslateTabHelper::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 |
@@ -295,7 +295,7 @@ void TranslateTabHelper::NavigationEntryCommitted( |
FROM_HERE, |
base::Bind(&TranslateTabHelper::InitiateTranslation, |
weak_pointer_factory_.GetWeakPtr(), |
- translate_driver_.GetLanguageState().original_language(), |
+ GetLanguageState().original_language(), |
0)); |
} |
@@ -303,7 +303,11 @@ void TranslateTabHelper::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 TranslateTabHelper::WebContentsDestroyed() { |
@@ -448,7 +452,7 @@ void TranslateTabHelper::HandleCLDDataRequest() { |
void TranslateTabHelper::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 |
@@ -474,7 +478,7 @@ void TranslateTabHelper::InitiateTranslation(const std::string& page_lang, |
void TranslateTabHelper::OnLanguageDetermined( |
const LanguageDetectionDetails& details, |
bool page_needs_translation) { |
- translate_driver_.GetLanguageState().LanguageDetermined( |
+ GetLanguageState().LanguageDetermined( |
details.adopted_language, page_needs_translation); |
if (web_contents()) |