diff options
author | droger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-18 15:42:57 +0000 |
---|---|---|
committer | droger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-18 15:42:57 +0000 |
commit | 7aa5fe5abe8ee6c59f4a0ad8e5cac1701c4c9af2 (patch) | |
tree | e43bdd2dc072cd0b08db2416f9cc1a32e562d923 /components/translate | |
parent | 6c6325917085a2523fc4e23a851861697e0b66f5 (diff) | |
download | chromium_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')
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_ |