summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/extensions/api/tabs/tabs_api.cc1
-rw-r--r--chrome/browser/policy/policy_browsertest.cc1
-rw-r--r--chrome/browser/translate/translate_infobar_delegate.cc3
-rw-r--r--chrome/browser/translate/translate_tab_helper.cc19
-rw-r--r--chrome/browser/translate/translate_tab_helper.h1
-rw-r--r--chrome/browser/ui/browser_browsertest.cc1
-rw-r--r--chrome/browser/ui/browser_commands.cc1
-rw-r--r--chrome/browser/ui/cocoa/browser_window_cocoa.mm1
-rw-r--r--chrome/browser/ui/views/frame/browser_view.cc1
-rw-r--r--chrome/browser/ui/views/location_bar/location_bar_view.cc1
-rw-r--r--components/translate/content/browser/content_translate_driver.cc15
-rw-r--r--components/translate/content/browser/content_translate_driver.h9
-rw-r--r--components/translate/core/browser/language_state_unittest.cc4
-rw-r--r--components/translate/core/browser/translate_driver.h4
-rw-r--r--components/translate/core/browser/translate_manager.cc28
-rw-r--r--components/translate/core/browser/translate_manager.h6
-rw-r--r--components/translate/core/browser/translate_ui_delegate.cc8
17 files changed, 56 insertions, 48 deletions
diff --git a/chrome/browser/extensions/api/tabs/tabs_api.cc b/chrome/browser/extensions/api/tabs/tabs_api.cc
index d78286f..8821fca 100644
--- a/chrome/browser/extensions/api/tabs/tabs_api.cc
+++ b/chrome/browser/extensions/api/tabs/tabs_api.cc
@@ -53,7 +53,6 @@
#include "chrome/common/pref_names.h"
#include "chrome/common/url_constants.h"
#include "components/pref_registry/pref_registry_syncable.h"
-#include "components/translate/core/browser/language_state.h"
#include "components/translate/core/common/language_detection_details.h"
#include "content/public/browser/navigation_controller.h"
#include "content/public/browser/navigation_entry.h"
diff --git a/chrome/browser/policy/policy_browsertest.cc b/chrome/browser/policy/policy_browsertest.cc
index 0067d34..8bea775 100644
--- a/chrome/browser/policy/policy_browsertest.cc
+++ b/chrome/browser/policy/policy_browsertest.cc
@@ -89,7 +89,6 @@
#include "components/policy/core/common/policy_pref_names.h"
#include "components/policy/core/common/policy_service.h"
#include "components/policy/core/common/policy_service_impl.h"
-#include "components/translate/core/browser/language_state.h"
#include "content/public/browser/browser_child_process_host_iterator.h"
#include "content/public/browser/browser_context.h"
#include "content/public/browser/browser_thread.h"
diff --git a/chrome/browser/translate/translate_infobar_delegate.cc b/chrome/browser/translate/translate_infobar_delegate.cc
index 405a071..ccb0641 100644
--- a/chrome/browser/translate/translate_infobar_delegate.cc
+++ b/chrome/browser/translate/translate_infobar_delegate.cc
@@ -79,7 +79,8 @@ void TranslateInfoBarDelegate::Create(
// Do not create the after translate infobar if we are auto translating.
if (((step == translate::TRANSLATE_STEP_AFTER_TRANSLATE) ||
(step == translate::TRANSLATE_STEP_TRANSLATING)) &&
- translate_manager->GetLanguageState().InTranslateNavigation()) {
+ translate_manager->translate_client()->GetTranslateDriver()
+ ->GetLanguageState().InTranslateNavigation()) {
return;
}
diff --git a/chrome/browser/translate/translate_tab_helper.cc b/chrome/browser/translate/translate_tab_helper.cc
index f59c41c..668e7f1 100644
--- a/chrome/browser/translate/translate_tab_helper.cc
+++ b/chrome/browser/translate/translate_tab_helper.cc
@@ -23,7 +23,6 @@
#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"
@@ -81,7 +80,7 @@ TranslateTabHelper::~TranslateTabHelper() {
}
LanguageState& TranslateTabHelper::GetLanguageState() {
- return translate_manager_->GetLanguageState();
+ return translate_driver_.GetLanguageState();
}
// static
@@ -268,7 +267,7 @@ void TranslateTabHelper::NavigationEntryCommitted(
}
if (!load_details.is_main_frame &&
- GetLanguageState().translation_declined()) {
+ translate_driver_.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.
@@ -281,7 +280,7 @@ void TranslateTabHelper::NavigationEntryCommitted(
return;
}
- if (!GetLanguageState().page_needs_translation())
+ if (!translate_driver_.GetLanguageState().page_needs_translation())
return;
// Note that we delay it as the ordering of the processing of this callback
@@ -292,7 +291,7 @@ void TranslateTabHelper::NavigationEntryCommitted(
FROM_HERE,
base::Bind(&TranslateTabHelper::InitiateTranslation,
weak_pointer_factory_.GetWeakPtr(),
- GetLanguageState().original_language(),
+ translate_driver_.GetLanguageState().original_language(),
0));
}
@@ -300,11 +299,7 @@ void TranslateTabHelper::DidNavigateAnyFrame(
const content::LoadCommittedDetails& details,
const content::FrameNavigateParams& params) {
// Let the LanguageState clear its state.
- 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);
+ translate_driver_.DidNavigate(details);
}
void TranslateTabHelper::WebContentsDestroyed() {
@@ -450,7 +445,7 @@ void TranslateTabHelper::HandleCLDDataRequest() {
void TranslateTabHelper::InitiateTranslation(const std::string& page_lang,
int attempt) {
- if (GetLanguageState().translation_pending())
+ if (translate_driver_.GetLanguageState().translation_pending())
return;
// During a reload we need web content to be available before the
@@ -476,7 +471,7 @@ void TranslateTabHelper::InitiateTranslation(const std::string& page_lang,
void TranslateTabHelper::OnLanguageDetermined(
const LanguageDetectionDetails& details,
bool page_needs_translation) {
- GetLanguageState().LanguageDetermined(
+ translate_driver_.GetLanguageState().LanguageDetermined(
details.adopted_language, page_needs_translation);
if (web_contents())
diff --git a/chrome/browser/translate/translate_tab_helper.h b/chrome/browser/translate/translate_tab_helper.h
index 08c70f0..d497cbd 100644
--- a/chrome/browser/translate/translate_tab_helper.h
+++ b/chrome/browser/translate/translate_tab_helper.h
@@ -38,7 +38,6 @@ class ScopedCLDDynamicDataHarness;
} // namespace test
struct LanguageDetectionDetails;
-class LanguageState;
class PrefService;
class TranslateAcceptLanguages;
class TranslatePrefs;
diff --git a/chrome/browser/ui/browser_browsertest.cc b/chrome/browser/ui/browser_browsertest.cc
index 493268e..d0dff8f 100644
--- a/chrome/browser/ui/browser_browsertest.cc
+++ b/chrome/browser/ui/browser_browsertest.cc
@@ -57,7 +57,6 @@
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/test_switches.h"
#include "chrome/test/base/ui_test_utils.h"
-#include "components/translate/core/browser/language_state.h"
#include "components/translate/core/common/language_detection_details.h"
#include "content/public/browser/favicon_status.h"
#include "content/public/browser/host_zoom_map.h"
diff --git a/chrome/browser/ui/browser_commands.cc b/chrome/browser/ui/browser_commands.cc
index 5c86932..d138558 100644
--- a/chrome/browser/ui/browser_commands.cc
+++ b/chrome/browser/ui/browser_commands.cc
@@ -61,7 +61,6 @@
#include "chrome/common/pref_names.h"
#include "components/bookmarks/browser/bookmark_model.h"
#include "components/bookmarks/browser/bookmark_utils.h"
-#include "components/translate/core/browser/language_state.h"
#include "components/web_modal/web_contents_modal_dialog_manager.h"
#include "content/public/browser/devtools_agent_host.h"
#include "content/public/browser/navigation_controller.h"
diff --git a/chrome/browser/ui/cocoa/browser_window_cocoa.mm b/chrome/browser/ui/cocoa/browser_window_cocoa.mm
index 07b60bf..f9ee6e7 100644
--- a/chrome/browser/ui/cocoa/browser_window_cocoa.mm
+++ b/chrome/browser/ui/cocoa/browser_window_cocoa.mm
@@ -50,7 +50,6 @@
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
#include "components/autofill/core/common/password_form.h"
-#include "components/translate/core/browser/language_state.h"
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/browser/notification_details.h"
#include "content/public/browser/notification_source.h"
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc
index 88d70a4..a520597 100644
--- a/chrome/browser/ui/views/frame/browser_view.cc
+++ b/chrome/browser/ui/views/frame/browser_view.cc
@@ -100,7 +100,6 @@
#include "chrome/common/url_constants.h"
#include "components/password_manager/core/browser/password_manager.h"
#include "components/signin/core/common/profile_management_switches.h"
-#include "components/translate/core/browser/language_state.h"
#include "content/public/browser/download_manager.h"
#include "content/public/browser/native_web_keyboard_event.h"
#include "content/public/browser/notification_service.h"
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 256c57a..b6e2cb0 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -64,7 +64,6 @@
#include "chrome/browser/ui/zoom/zoom_controller.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/pref_names.h"
-#include "components/translate/core/browser/language_state.h"
#include "content/public/browser/notification_service.h"
#include "content/public/browser/render_widget_host_view.h"
#include "content/public/browser/web_contents.h"
diff --git a/components/translate/content/browser/content_translate_driver.cc b/components/translate/content/browser/content_translate_driver.cc
index 60757db..ffebdc7 100644
--- a/components/translate/content/browser/content_translate_driver.cc
+++ b/components/translate/content/browser/content_translate_driver.cc
@@ -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 @@ void ContentTranslateDriver::OnIsPageTranslatedChanged() {
}
}
+LanguageState& ContentTranslateDriver::GetLanguageState() {
+ return language_state_;
+}
+
void ContentTranslateDriver::TranslatePage(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang) {
diff --git a/components/translate/content/browser/content_translate_driver.h b/components/translate/content/browser/content_translate_driver.h
index 7f686f3..1d3112d 100644
--- a/components/translate/content/browser/content_translate_driver.h
+++ b/components/translate/content/browser/content_translate_driver.h
@@ -5,10 +5,12 @@
#ifndef COMPONENTS_TRANSLATE_CONTENT_BROWSER_CONTENT_TRANSLATE_DRIVER_H_
#define COMPONENTS_TRANSLATE_CONTENT_BROWSER_CONTENT_TRANSLATE_DRIVER_H_
-#include "base/basictypes.h"
#include "components/translate/core/browser/translate_driver.h"
+#include "components/translate/core/browser/language_state.h"
+
namespace content {
+struct LoadCommittedDetails;
class NavigationController;
class WebContents;
}
@@ -36,10 +38,14 @@ class ContentTranslateDriver : public TranslateDriver {
// Sets the Observer. Calling this method is optional.
void set_observer(Observer* observer) { observer_ = observer; }
+ // Must be called on navigations.
+ void DidNavigate(const content::LoadCommittedDetails& details);
+
// TranslateDriver methods.
virtual void OnIsPageTranslatedChanged() OVERRIDE;
virtual void OnTranslateEnabledChanged() OVERRIDE;
virtual bool IsLinkNavigation() OVERRIDE;
+ virtual LanguageState& GetLanguageState() OVERRIDE;
virtual void TranslatePage(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang) OVERRIDE;
@@ -57,6 +63,7 @@ class ContentTranslateDriver : public TranslateDriver {
// The navigation controller of the tab we are associated with.
content::NavigationController* navigation_controller_;
+ LanguageState language_state_;
Observer* observer_;
DISALLOW_COPY_AND_ASSIGN(ContentTranslateDriver);
diff --git a/components/translate/core/browser/language_state_unittest.cc b/components/translate/core/browser/language_state_unittest.cc
index 32a0ed3..9f7d84a 100644
--- a/components/translate/core/browser/language_state_unittest.cc
+++ b/components/translate/core/browser/language_state_unittest.cc
@@ -41,6 +41,10 @@ class MockTranslateDriver : public TranslateDriver {
return false;
}
+ virtual LanguageState& GetLanguageState() OVERRIDE {
+ return language_state_;
+ }
+
virtual void TranslatePage(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang) OVERRIDE {}
diff --git a/components/translate/core/browser/translate_driver.h b/components/translate/core/browser/translate_driver.h
index 805db05..788a267 100644
--- a/components/translate/core/browser/translate_driver.h
+++ b/components/translate/core/browser/translate_driver.h
@@ -8,6 +8,7 @@
#include <string>
class GURL;
+class LanguageState;
// Interface that allows Translate core code to interact with its driver (i.e.,
// obtain information from it and give information to it). A concrete
@@ -23,6 +24,9 @@ class TranslateDriver {
// Called when the page is "translated" state of the page changed.
virtual void OnIsPageTranslatedChanged() = 0;
+ // Gets the LanguageState associated with the driver.
+ virtual LanguageState& GetLanguageState() = 0;
+
// Translates the page contents from |source_lang| to |target_lang|.
virtual void TranslatePage(const std::string& translate_script,
const std::string& source_lang,
diff --git a/components/translate/core/browser/translate_manager.cc b/components/translate/core/browser/translate_manager.cc
index 63ada40..dcc8c30 100644
--- a/components/translate/core/browser/translate_manager.cc
+++ b/components/translate/core/browser/translate_manager.cc
@@ -73,7 +73,6 @@ TranslateManager::TranslateManager(
: accept_languages_pref_name_(accept_languages_pref_name),
translate_client_(translate_client),
translate_driver_(translate_client_->GetTranslateDriver()),
- language_state_(translate_driver_),
weak_method_factory_(this) {}
base::WeakPtr<TranslateManager> TranslateManager::GetWeakPtr() {
@@ -83,10 +82,11 @@ base::WeakPtr<TranslateManager> TranslateManager::GetWeakPtr() {
void TranslateManager::InitiateTranslation(const std::string& page_lang) {
// Short-circuit out if not in a state where initiating translation makes
// sense (this method may be called muhtiple times for a given page).
- if (!language_state_.page_needs_translation() ||
- language_state_.translation_pending() ||
- language_state_.translation_declined() ||
- language_state_.IsPageTranslated()) {
+ LanguageState& language_state = translate_driver_->GetLanguageState();
+ if (!language_state.page_needs_translation() ||
+ language_state.translation_pending() ||
+ language_state.translation_declined() ||
+ language_state.IsPageTranslated()) {
return;
}
@@ -190,7 +190,7 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) {
}
}
- std::string auto_translate_to = language_state_.AutoTranslateTo();
+ std::string auto_translate_to = language_state.AutoTranslateTo();
if (!auto_translate_to.empty()) {
// This page was navigated through a click from a translated page.
TranslateBrowserMetrics::ReportInitiationStatus(
@@ -252,8 +252,8 @@ void TranslateManager::TranslatePage(const std::string& original_source_lang,
void TranslateManager::RevertTranslation() {
translate_driver_->RevertTranslation();
- language_state_.SetCurrentLanguage(
- language_state_.original_language());
+ translate_driver_->GetLanguageState().SetCurrentLanguage(
+ translate_driver_->GetLanguageState().original_language());
}
void TranslateManager::ReportLanguageDetectionError() {
@@ -269,7 +269,7 @@ void TranslateManager::ReportLanguageDetectionError() {
report_error_url = net::AppendQueryParameter(
report_error_url,
kSourceLanguageQueryName,
- language_state_.original_language());
+ translate_driver_->GetLanguageState().original_language());
report_error_url = TranslateURLUtil::AddHostLocaleToUrl(report_error_url);
report_error_url = TranslateURLUtil::AddApiKeyToUrl(report_error_url);
@@ -280,15 +280,15 @@ void TranslateManager::ReportLanguageDetectionError() {
void TranslateManager::DoTranslatePage(const std::string& translate_script,
const std::string& source_lang,
const std::string& target_lang) {
- language_state_.set_translation_pending(true);
+ translate_driver_->GetLanguageState().set_translation_pending(true);
translate_driver_->TranslatePage(translate_script, source_lang, target_lang);
}
void TranslateManager::PageTranslated(const std::string& source_lang,
const std::string& target_lang,
TranslateErrors::Type error_type) {
- language_state_.SetCurrentLanguage(target_lang);
- language_state_.set_translation_pending(false);
+ translate_driver_->GetLanguageState().SetCurrentLanguage(target_lang);
+ translate_driver_->GetLanguageState().set_translation_pending(false);
if ((error_type == TranslateErrors::NONE) &&
source_lang != translate::kUnknownLanguageCode &&
@@ -385,7 +385,3 @@ std::string TranslateManager::GetAutoTargetLanguage(
}
return std::string();
}
-
-LanguageState& TranslateManager::GetLanguageState() {
- return language_state_;
-}
diff --git a/components/translate/core/browser/translate_manager.h b/components/translate/core/browser/translate_manager.h
index d02eec7..c29b167 100644
--- a/components/translate/core/browser/translate_manager.h
+++ b/components/translate/core/browser/translate_manager.h
@@ -13,7 +13,6 @@
#include "base/gtest_prod_util.h"
#include "base/memory/scoped_ptr.h"
#include "base/memory/weak_ptr.h"
-#include "components/translate/core/browser/language_state.h"
#include "components/translate/core/common/translate_errors.h"
class GURL;
@@ -89,9 +88,6 @@ class TranslateManager {
static scoped_ptr<TranslateErrorCallbackList::Subscription>
RegisterTranslateErrorCallback(const TranslateErrorCallback& callback);
- // Gets the LanguageState associated with the TranslateManager
- LanguageState& GetLanguageState();
-
private:
// Sends a translation request to the TranslateDriver.
void DoTranslatePage(const std::string& translate_script,
@@ -112,8 +108,6 @@ class TranslateManager {
TranslateClient* translate_client_; // Weak.
TranslateDriver* translate_driver_; // Weak.
- LanguageState language_state_;
-
base::WeakPtrFactory<TranslateManager> weak_method_factory_;
DISALLOW_COPY_AND_ASSIGN(TranslateManager);
diff --git a/components/translate/core/browser/translate_ui_delegate.cc b/components/translate/core/browser/translate_ui_delegate.cc
index b9bbe19..30448f0 100644
--- a/components/translate/core/browser/translate_ui_delegate.cc
+++ b/components/translate/core/browser/translate_ui_delegate.cc
@@ -103,7 +103,7 @@ void TranslateUIDelegate::OnErrorShown(TranslateErrors::Type error_type) {
}
const LanguageState& TranslateUIDelegate::GetLanguageState() {
- return translate_manager_->GetLanguageState();
+ return translate_driver_->GetLanguageState();
}
size_t TranslateUIDelegate::GetNumberOfLanguages() const {
@@ -185,7 +185,7 @@ void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) {
// translations when getting a LANGUAGE_DETERMINED from the page, which
// happens when a load stops. That could happen multiple times, including
// after the user already declined the translation.)
- translate_manager_->GetLanguageState().set_translation_declined(true);
+ translate_driver_->GetLanguageState().set_translation_declined(true);
UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true);
@@ -200,7 +200,7 @@ bool TranslateUIDelegate::IsLanguageBlocked() {
void TranslateUIDelegate::SetLanguageBlocked(bool value) {
if (value) {
prefs_->BlockLanguage(GetOriginalLanguageCode());
- translate_manager_->GetLanguageState().SetTranslateEnabled(false);
+ translate_driver_->GetLanguageState().SetTranslateEnabled(false);
} else {
prefs_->UnblockLanguage(GetOriginalLanguageCode());
}
@@ -220,7 +220,7 @@ void TranslateUIDelegate::SetSiteBlacklist(bool value) {
if (value) {
prefs_->BlacklistSite(host);
- translate_manager_->GetLanguageState().SetTranslateEnabled(false);
+ translate_driver_->GetLanguageState().SetTranslateEnabled(false);
} else {
prefs_->RemoveSiteFromBlacklist(host);
}