summaryrefslogtreecommitdiffstats
path: root/components/translate
diff options
context:
space:
mode:
authordroger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-18 15:42:57 +0000
committerdroger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-18 15:42:57 +0000
commit7aa5fe5abe8ee6c59f4a0ad8e5cac1701c4c9af2 (patch)
treee43bdd2dc072cd0b08db2416f9cc1a32e562d923 /components/translate
parent6c6325917085a2523fc4e23a851861697e0b66f5 (diff)
downloadchromium_src-7aa5fe5abe8ee6c59f4a0ad8e5cac1701c4c9af2.zip
chromium_src-7aa5fe5abe8ee6c59f4a0ad8e5cac1701c4c9af2.tar.gz
chromium_src-7aa5fe5abe8ee6c59f4a0ad8e5cac1701c4c9af2.tar.bz2
Introduce the TranslateClient interface
In order to move TranslateManager into the Translate component, all dependencies on chrome/ have to be removed. This CL introduces the TranslateClient interface which abstracts TranslateTabHelper. Eventually all uses of TranslateTabHelper in TranslateManaher will be replaced by TranslateClient and TranslateDriver. BUG=335078 Review URL: https://codereview.chromium.org/167823003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257644 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/translate')
-rw-r--r--components/translate/content/browser/content_translate_driver.cc4
-rw-r--r--components/translate/content/browser/content_translate_driver.h8
-rw-r--r--components/translate/core/browser/language_state_unittest.cc9
-rw-r--r--components/translate/core/browser/translate_client.h21
-rw-r--r--components/translate/core/browser/translate_driver.h5
5 files changed, 41 insertions, 6 deletions
diff --git a/components/translate/content/browser/content_translate_driver.cc b/components/translate/content/browser/content_translate_driver.cc
index 9c597aa..bf3d5dc 100644
--- a/components/translate/content/browser/content_translate_driver.cc
+++ b/components/translate/content/browser/content_translate_driver.cc
@@ -51,3 +51,7 @@ void ContentTranslateDriver::OnIsPageTranslatedChanged() {
observer_->OnIsPageTranslatedChanged(web_contents);
}
}
+
+LanguageState& ContentTranslateDriver::GetLanguageState() {
+ return language_state_;
+}
diff --git a/components/translate/content/browser/content_translate_driver.h b/components/translate/content/browser/content_translate_driver.h
index 117640b..1e2efa5 100644
--- a/components/translate/content/browser/content_translate_driver.h
+++ b/components/translate/content/browser/content_translate_driver.h
@@ -35,21 +35,19 @@ class ContentTranslateDriver : public TranslateDriver {
ContentTranslateDriver(content::NavigationController* nav_controller);
virtual ~ContentTranslateDriver();
- // Gets the language state.
- LanguageState& language_state() { return language_state_; }
-
// 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);
- private:
- // TranslateDriver methods
+ // TranslateDriver methods.
virtual void OnIsPageTranslatedChanged() OVERRIDE;
virtual void OnTranslateEnabledChanged() OVERRIDE;
virtual bool IsLinkNavigation() OVERRIDE;
+ virtual LanguageState& GetLanguageState() OVERRIDE;
+ private:
// The navigation controller of the tab we are associated with.
content::NavigationController* navigation_controller_;
diff --git a/components/translate/core/browser/language_state_unittest.cc b/components/translate/core/browser/language_state_unittest.cc
index 56da436..609371b 100644
--- a/components/translate/core/browser/language_state_unittest.cc
+++ b/components/translate/core/browser/language_state_unittest.cc
@@ -5,6 +5,7 @@
#include "components/translate/core/browser/language_state.h"
#include "base/memory/scoped_ptr.h"
+#include "components/translate/core/browser/language_state.h"
#include "components/translate/core/browser/translate_driver.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -14,7 +15,8 @@ class MockTranslateDriver : public TranslateDriver {
public:
MockTranslateDriver()
: on_is_page_translated_changed_called_(false),
- on_translate_enabled_changed_called_(false) {
+ on_translate_enabled_changed_called_(false),
+ language_state_(this) {
}
void Reset() {
@@ -36,6 +38,10 @@ class MockTranslateDriver : public TranslateDriver {
return false;
}
+ virtual LanguageState& GetLanguageState() OVERRIDE {
+ return language_state_;
+ }
+
bool on_is_page_translated_changed_called() const {
return on_is_page_translated_changed_called_;
}
@@ -47,6 +53,7 @@ class MockTranslateDriver : public TranslateDriver {
private:
bool on_is_page_translated_changed_called_;
bool on_translate_enabled_changed_called_;
+ LanguageState language_state_;
DISALLOW_COPY_AND_ASSIGN(MockTranslateDriver);
};
diff --git a/components/translate/core/browser/translate_client.h b/components/translate/core/browser/translate_client.h
new file mode 100644
index 0000000..6288e79b
--- /dev/null
+++ b/components/translate/core/browser/translate_client.h
@@ -0,0 +1,21 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_CLIENT_H_
+#define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_CLIENT_H_
+
+class TranslateDriver;
+
+// A client interface that needs to be supplied to TranslateManager by the
+// embedder.
+//
+// Each client instance is associated with a given context within which a
+// TranslateManager is used (e.g. a single tab).
+class TranslateClient {
+ public:
+ // Gets the TranslateDriver associated with the client.
+ virtual TranslateDriver* GetTranslateDriver() = 0;
+};
+
+#endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_CLIENT_H_
diff --git a/components/translate/core/browser/translate_driver.h b/components/translate/core/browser/translate_driver.h
index 00328ad..c1d1cd5 100644
--- a/components/translate/core/browser/translate_driver.h
+++ b/components/translate/core/browser/translate_driver.h
@@ -5,6 +5,8 @@
#ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_DRIVER_H_
#define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_DRIVER_H_
+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
// implementation must be provided by the driver.
@@ -18,6 +20,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;
};
#endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_DRIVER_H_