summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordroger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-21 22:42:01 +0000
committerdroger@chromium.org <droger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-21 22:42:01 +0000
commitbca4951052ae6cea48d405eeb002de704de08cfa (patch)
tree4493d05ede9900f45daff167348b153f09bcd08f
parent1aeecad9dd08c29b8b39db18bf0353119d8bac42 (diff)
downloadchromium_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.cc17
-rw-r--r--chrome/browser/translate/translate_manager.h2
-rw-r--r--chrome/browser/translate/translate_tab_helper.cc19
-rw-r--r--chrome/browser/translate/translate_tab_helper.h3
-rw-r--r--components/translate/core/browser/translate_client.h14
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_