diff options
author | droger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-21 22:42:01 +0000 |
---|---|---|
committer | droger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-21 22:42:01 +0000 |
commit | bca4951052ae6cea48d405eeb002de704de08cfa (patch) | |
tree | 4493d05ede9900f45daff167348b153f09bcd08f | |
parent | 1aeecad9dd08c29b8b39db18bf0353119d8bac42 (diff) | |
download | chromium_src-bca4951052ae6cea48d405eeb002de704de08cfa.zip chromium_src-bca4951052ae6cea48d405eeb002de704de08cfa.tar.gz chromium_src-bca4951052ae6cea48d405eeb002de704de08cfa.tar.bz2 |
Remove dependency of TranslateManager on Profile
In order to move TranslateManager into the Translate component, all
dependencies on chrome/ have to be removed.
BUG=335078
Review URL: https://codereview.chromium.org/174163012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@258701 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/translate/translate_manager.cc | 17 | ||||
-rw-r--r-- | chrome/browser/translate/translate_manager.h | 2 | ||||
-rw-r--r-- | chrome/browser/translate/translate_tab_helper.cc | 19 | ||||
-rw-r--r-- | chrome/browser/translate/translate_tab_helper.h | 3 | ||||
-rw-r--r-- | components/translate/core/browser/translate_client.h | 14 |
5 files changed, 45 insertions, 10 deletions
diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc index b5b11f4..9442f10 100644 --- a/chrome/browser/translate/translate_manager.cc +++ b/chrome/browser/translate/translate_manager.cc @@ -13,7 +13,6 @@ #include "base/strings/stringprintf.h" #include "base/time/time.h" #include "chrome/browser/chrome_notification_types.h" -#include "chrome/browser/profiles/profile.h" #include "chrome/browser/translate/translate_tab_helper.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" @@ -25,6 +24,7 @@ #include "components/translate/core/browser/page_translated_details.h" #include "components/translate/core/browser/translate_accept_languages.h" #include "components/translate/core/browser/translate_browser_metrics.h" +#include "components/translate/core/browser/translate_client.h" #include "components/translate/core/browser/translate_download_manager.h" #include "components/translate/core/browser/translate_driver.h" #include "components/translate/core/browser/translate_error_details.h" @@ -216,7 +216,8 @@ TranslateManager::TranslateManager( : max_reload_check_attempts_(kMaxTranslateLoadCheckAttempts), accept_languages_pref_name_(accept_languages_pref_name), translate_tab_helper_(helper), - translate_driver_(helper->GetTranslateDriver()), + translate_client_(helper), + translate_driver_(translate_client_->GetTranslateDriver()), weak_method_factory_(this) { WebContents* web_contents = translate_tab_helper_->GetWebContents(); @@ -233,12 +234,7 @@ TranslateManager::TranslateManager( } void TranslateManager::InitiateTranslation(const std::string& page_lang) { - WebContents* web_contents = translate_tab_helper_->GetWebContents(); - DCHECK(web_contents); - Profile* profile = - Profile::FromBrowserContext(web_contents->GetBrowserContext()); - Profile* original_profile = profile->GetOriginalProfile(); - PrefService* prefs = original_profile->GetPrefs(); + PrefService* prefs = translate_client_->GetPrefs(); if (!prefs->GetBoolean(prefs::kEnableTranslate)) { TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::INITIATION_STATUS_DISABLED_BY_PREFS); @@ -259,6 +255,7 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) { // MHTML pages currently cannot be translated. // See bug: 217945. + WebContents* web_contents = translate_tab_helper_->GetWebContents(); if (web_contents->GetContentsMimeType() == "multipart/related") { TranslateBrowserMetrics::ReportInitiationStatus( TranslateBrowserMetrics::INITIATION_STATUS_MIME_TYPE_IS_NOT_SUPPORTED); @@ -302,10 +299,10 @@ void TranslateManager::InitiateTranslation(const std::string& page_lang) { } scoped_ptr<TranslatePrefs> translate_prefs( - TranslateTabHelper::CreateTranslatePrefs(profile->GetPrefs())); + translate_client_->GetTranslatePrefs()); TranslateAcceptLanguages* accept_languages = - TranslateTabHelper::GetTranslateAcceptLanguages(profile); + translate_client_->GetTranslateAcceptLanguages(); // Don't translate any user black-listed languages. if (!translate_prefs->CanTranslateLanguage(accept_languages, language_code)) { diff --git a/chrome/browser/translate/translate_manager.h b/chrome/browser/translate/translate_manager.h index f77d9f4..fc57637 100644 --- a/chrome/browser/translate/translate_manager.h +++ b/chrome/browser/translate/translate_manager.h @@ -19,6 +19,7 @@ class GURL; struct PageTranslatedDetails; class PrefService; +class TranslateClient; class TranslateDriver; struct TranslateErrorDetails; class TranslateTabHelper; @@ -129,6 +130,7 @@ class TranslateManager : public content::NotificationObserver { // TODO(droger): Remove all uses of |translate_tab_helper_|, use // TranslateClient and TranslateDriver instead. TranslateTabHelper* translate_tab_helper_; // Weak. + TranslateClient* translate_client_; // Weak. TranslateDriver* translate_driver_; // Weak. base::WeakPtrFactory<TranslateManager> weak_method_factory_; diff --git a/chrome/browser/translate/translate_tab_helper.cc b/chrome/browser/translate/translate_tab_helper.cc index 8cf93f3..85d4f2b 100644 --- a/chrome/browser/translate/translate_tab_helper.cc +++ b/chrome/browser/translate/translate_tab_helper.cc @@ -113,6 +113,25 @@ TranslateDriver* TranslateTabHelper::GetTranslateDriver() { return &translate_driver_; } +PrefService* TranslateTabHelper::GetPrefs() { + DCHECK(web_contents()); + Profile* profile = + Profile::FromBrowserContext(web_contents()->GetBrowserContext()); + return profile->GetOriginalProfile()->GetPrefs(); +} + +scoped_ptr<TranslatePrefs> TranslateTabHelper::GetTranslatePrefs() { + DCHECK(web_contents()); + Profile* profile = + Profile::FromBrowserContext(web_contents()->GetBrowserContext()); + return CreateTranslatePrefs(profile->GetPrefs()); +} + +TranslateAcceptLanguages* TranslateTabHelper::GetTranslateAcceptLanguages() { + DCHECK(web_contents()); + return GetTranslateAcceptLanguages(web_contents()->GetBrowserContext()); +} + bool TranslateTabHelper::OnMessageReceived(const IPC::Message& message) { bool handled = true; IPC_BEGIN_MESSAGE_MAP(TranslateTabHelper, message) diff --git a/chrome/browser/translate/translate_tab_helper.h b/chrome/browser/translate/translate_tab_helper.h index c5dd0ff..146ecfd 100644 --- a/chrome/browser/translate/translate_tab_helper.h +++ b/chrome/browser/translate/translate_tab_helper.h @@ -78,6 +78,9 @@ class TranslateTabHelper // TranslateClient implementation. virtual TranslateDriver* GetTranslateDriver() OVERRIDE; + virtual PrefService* GetPrefs() OVERRIDE; + virtual scoped_ptr<TranslatePrefs> GetTranslatePrefs() OVERRIDE; + virtual TranslateAcceptLanguages* GetTranslateAcceptLanguages() OVERRIDE; private: explicit TranslateTabHelper(content::WebContents* web_contents); diff --git a/components/translate/core/browser/translate_client.h b/components/translate/core/browser/translate_client.h index 6288e79b..2ca8162 100644 --- a/components/translate/core/browser/translate_client.h +++ b/components/translate/core/browser/translate_client.h @@ -5,6 +5,11 @@ #ifndef COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_CLIENT_H_ #define COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_CLIENT_H_ +#include "base/memory/ref_counted.h" +#include "components/translate/core/browser/translate_prefs.h" + +class PrefService; +class TranslateAcceptLanguages; class TranslateDriver; // A client interface that needs to be supplied to TranslateManager by the @@ -16,6 +21,15 @@ class TranslateClient { public: // Gets the TranslateDriver associated with the client. virtual TranslateDriver* GetTranslateDriver() = 0; + + // Returns the associated PrefService. + virtual PrefService* GetPrefs() = 0; + + // Returns the associated TranslatePrefs. + virtual scoped_ptr<TranslatePrefs> GetTranslatePrefs() = 0; + + // Returns the associated TranslateAcceptLanguages. + virtual TranslateAcceptLanguages* GetTranslateAcceptLanguages() = 0; }; #endif // COMPONENTS_TRANSLATE_CORE_BROWSER_TRANSLATE_CLIENT_H_ |