Index: trunk/src/components/translate/content/browser/content_translate_driver.cc |
=================================================================== |
--- trunk/src/components/translate/content/browser/content_translate_driver.cc (revision 272260) |
+++ trunk/src/components/translate/content/browser/content_translate_driver.cc (working copy) |
@@ -8,6 +8,7 @@ |
#include "components/translate/content/common/translate_messages.h" |
#include "content/public/browser/browser_context.h" |
#include "content/public/browser/navigation_controller.h" |
+#include "content/public/browser/navigation_details.h" |
#include "content/public/browser/navigation_entry.h" |
#include "content/public/browser/page_navigator.h" |
#include "content/public/browser/render_view_host.h" |
@@ -18,12 +19,22 @@ |
ContentTranslateDriver::ContentTranslateDriver( |
content::NavigationController* nav_controller) |
: navigation_controller_(nav_controller), |
+ language_state_(this), |
observer_(NULL) { |
DCHECK(navigation_controller_); |
} |
ContentTranslateDriver::~ContentTranslateDriver() {} |
+void ContentTranslateDriver::DidNavigate( |
+ const content::LoadCommittedDetails& details) { |
+ const bool reload = |
+ details.entry->GetTransitionType() == content::PAGE_TRANSITION_RELOAD || |
+ details.type == content::NAVIGATION_TYPE_SAME_PAGE; |
+ language_state_.DidNavigate( |
+ details.is_in_page, details.is_main_frame, reload); |
+} |
+ |
// TranslateDriver methods |
bool ContentTranslateDriver::IsLinkNavigation() { |
@@ -48,6 +59,10 @@ |
} |
} |
+LanguageState& ContentTranslateDriver::GetLanguageState() { |
+ return language_state_; |
+} |
+ |
void ContentTranslateDriver::TranslatePage(const std::string& translate_script, |
const std::string& source_lang, |
const std::string& target_lang) { |