summaryrefslogtreecommitdiffstats
path: root/components/translate
diff options
context:
space:
mode:
authornaiem.shaik@gmail.com <naiem.shaik@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-22 17:32:09 +0000
committernaiem.shaik@gmail.com <naiem.shaik@gmail.com@0039d316-1c4b-4281-b951-d872f2087c98>2014-05-22 17:32:09 +0000
commit061e35ea3643e7b6828a583422a73bdd00dc3197 (patch)
tree732325e406f1f37dd6db800d06539a11dd7e83ae /components/translate
parent00b73a2e56010ca6f97441fb3351e2cca9705af6 (diff)
downloadchromium_src-061e35ea3643e7b6828a583422a73bdd00dc3197.zip
chromium_src-061e35ea3643e7b6828a583422a73bdd00dc3197.tar.gz
chromium_src-061e35ea3643e7b6828a583422a73bdd00dc3197.tar.bz2
LanguageState should be owned by TranslateManager
LanguageState is currently owned by ContentTranslateManager, but it should be moved under TranslateManager BUG=345690 TEST=unittests --gtest_filter=Translate* TBR=thakis@chromium.org Review URL: https://codereview.chromium.org/290573013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272217 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/translate')
-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
7 files changed, 27 insertions, 47 deletions
diff --git a/components/translate/content/browser/content_translate_driver.cc b/components/translate/content/browser/content_translate_driver.cc
index ffebdc7..60757db 100644
--- a/components/translate/content/browser/content_translate_driver.cc
+++ b/components/translate/content/browser/content_translate_driver.cc
@@ -8,7 +8,6 @@
#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"
@@ -19,22 +18,12 @@
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() {
@@ -59,10 +48,6 @@ 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 1d3112d..7f686f3 100644
--- a/components/translate/content/browser/content_translate_driver.h
+++ b/components/translate/content/browser/content_translate_driver.h
@@ -5,12 +5,10 @@
#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;
}
@@ -38,14 +36,10 @@ 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;
@@ -63,7 +57,6 @@ 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 9f7d84a..32a0ed3 100644
--- a/components/translate/core/browser/language_state_unittest.cc
+++ b/components/translate/core/browser/language_state_unittest.cc
@@ -41,10 +41,6 @@ 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 788a267..805db05 100644
--- a/components/translate/core/browser/translate_driver.h
+++ b/components/translate/core/browser/translate_driver.h
@@ -8,7 +8,6 @@
#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
@@ -24,9 +23,6 @@ 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 dcc8c30..63ada40 100644
--- a/components/translate/core/browser/translate_manager.cc
+++ b/components/translate/core/browser/translate_manager.cc
@@ -73,6 +73,7 @@ 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() {
@@ -82,11 +83,10 @@ 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).
- LanguageState& language_state = translate_driver_->GetLanguageState();
- if (!language_state.page_needs_translation() ||
- language_state.translation_pending() ||
- language_state.translation_declined() ||
- language_state.IsPageTranslated()) {
+ 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();
- translate_driver_->GetLanguageState().SetCurrentLanguage(
- translate_driver_->GetLanguageState().original_language());
+ language_state_.SetCurrentLanguage(
+ language_state_.original_language());
}
void TranslateManager::ReportLanguageDetectionError() {
@@ -269,7 +269,7 @@ void TranslateManager::ReportLanguageDetectionError() {
report_error_url = net::AppendQueryParameter(
report_error_url,
kSourceLanguageQueryName,
- translate_driver_->GetLanguageState().original_language());
+ language_state_.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) {
- translate_driver_->GetLanguageState().set_translation_pending(true);
+ language_state_.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) {
- translate_driver_->GetLanguageState().SetCurrentLanguage(target_lang);
- translate_driver_->GetLanguageState().set_translation_pending(false);
+ language_state_.SetCurrentLanguage(target_lang);
+ language_state_.set_translation_pending(false);
if ((error_type == TranslateErrors::NONE) &&
source_lang != translate::kUnknownLanguageCode &&
@@ -385,3 +385,7 @@ 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 c29b167..d02eec7 100644
--- a/components/translate/core/browser/translate_manager.h
+++ b/components/translate/core/browser/translate_manager.h
@@ -13,6 +13,7 @@
#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;
@@ -88,6 +89,9 @@ 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,
@@ -108,6 +112,8 @@ 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 30448f0..b9bbe19 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_driver_->GetLanguageState();
+ return translate_manager_->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_driver_->GetLanguageState().set_translation_declined(true);
+ translate_manager_->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_driver_->GetLanguageState().SetTranslateEnabled(false);
+ translate_manager_->GetLanguageState().SetTranslateEnabled(false);
} else {
prefs_->UnblockLanguage(GetOriginalLanguageCode());
}
@@ -220,7 +220,7 @@ void TranslateUIDelegate::SetSiteBlacklist(bool value) {
if (value) {
prefs_->BlacklistSite(host);
- translate_driver_->GetLanguageState().SetTranslateEnabled(false);
+ translate_manager_->GetLanguageState().SetTranslateEnabled(false);
} else {
prefs_->RemoveSiteFromBlacklist(host);
}