Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(17)

Unified Diff: chrome/browser/translate/translate_infobar_delegate.cc

Issue 291503008: Remove most of chrome/ and content/ usage from TranslateInfoBarDelegate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review comments Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/translate/translate_infobar_delegate.cc
diff --git a/chrome/browser/translate/translate_infobar_delegate.cc b/chrome/browser/translate/translate_infobar_delegate.cc
index 3b8837484ce3c1e330e7339923962d0393af639f..67e6ca5049755c63a285c6787b58c46220f94b00 100644
--- a/chrome/browser/translate/translate_infobar_delegate.cc
+++ b/chrome/browser/translate/translate_infobar_delegate.cc
@@ -10,13 +10,14 @@
#include "base/metrics/histogram.h"
#include "base/prefs/pref_service.h"
#include "chrome/browser/infobars/infobar_service.h"
-#include "chrome/browser/translate/translate_tab_helper.h"
#include "components/infobars/core/infobar.h"
+#include "components/translate/core/browser/language_state.h"
#include "components/translate/core/browser/translate_accept_languages.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_manager.h"
#include "components/translate/core/common/translate_constants.h"
-#include "content/public/browser/browser_context.h"
#include "content/public/browser/web_contents.h"
#include "grit/component_strings.h"
#include "grit/theme_resources.h"
@@ -51,14 +52,20 @@ TranslateInfoBarDelegate::~TranslateInfoBarDelegate() {
}
// static
-void TranslateInfoBarDelegate::Create(bool replace_existing_infobar,
- content::WebContents* web_contents,
- translate::TranslateStep step,
- const std::string& original_language,
- const std::string& target_language,
- TranslateErrors::Type error_type,
- PrefService* prefs,
- bool triggered_from_menu) {
+void TranslateInfoBarDelegate::Create(
+ bool replace_existing_infobar,
+ const base::WeakPtr<TranslateManager>& translate_manager,
+ InfoBarService* infobar_service,
+ bool is_off_the_record,
+ translate::TranslateStep step,
+ const std::string& original_language,
+ const std::string& target_language,
+ TranslateErrors::Type error_type,
+ PrefService* prefs,
+ bool triggered_from_menu) {
+ DCHECK(translate_manager);
+ DCHECK(infobar_service);
+
// Check preconditions.
if (step != translate::TRANSLATE_STEP_TRANSLATE_ERROR) {
DCHECK(TranslateDownloadManager::IsSupportedLanguage(target_language));
@@ -73,19 +80,15 @@ void TranslateInfoBarDelegate::Create(bool replace_existing_infobar,
}
// Do not create the after translate infobar if we are auto translating.
- if ((step == translate::TRANSLATE_STEP_AFTER_TRANSLATE) ||
- (step == translate::TRANSLATE_STEP_TRANSLATING)) {
- TranslateTabHelper* translate_tab_helper =
- TranslateTabHelper::FromWebContents(web_contents);
- if (!translate_tab_helper ||
- translate_tab_helper->GetLanguageState().InTranslateNavigation())
- return;
+ if (((step == translate::TRANSLATE_STEP_AFTER_TRANSLATE) ||
+ (step == translate::TRANSLATE_STEP_TRANSLATING)) &&
+ translate_manager->translate_client()->GetTranslateDriver()
+ ->GetLanguageState().InTranslateNavigation()) {
+ return;
}
// Find any existing translate infobar delegate.
infobars::InfoBar* old_infobar = NULL;
- InfoBarService* infobar_service =
- InfoBarService::FromWebContents(web_contents);
TranslateInfoBarDelegate* old_delegate = NULL;
for (size_t i = 0; i < infobar_service->infobar_count(); ++i) {
old_infobar = infobar_service->infobar_at(i);
@@ -100,8 +103,8 @@ void TranslateInfoBarDelegate::Create(bool replace_existing_infobar,
// Add the new delegate.
scoped_ptr<infobars::InfoBar> infobar(CreateInfoBar(
scoped_ptr<TranslateInfoBarDelegate>(new TranslateInfoBarDelegate(
- web_contents, step, old_delegate, original_language,
- target_language, error_type, prefs,
+ translate_manager, is_off_the_record, step, old_delegate,
+ original_language, target_language, error_type, prefs,
triggered_from_menu))));
if (old_delegate)
infobar_service->ReplaceInfoBar(old_infobar, infobar.Pass());
@@ -130,11 +133,8 @@ void TranslateInfoBarDelegate::RevertTranslation() {
}
void TranslateInfoBarDelegate::ReportLanguageDetectionError() {
- TranslateManager* manager =
- TranslateTabHelper::GetManagerFromWebContents(GetWebContents());
- if (!manager)
- return;
- manager->ReportLanguageDetectionError();
+ if (translate_manager_)
+ translate_manager_->ReportLanguageDetectionError();
}
void TranslateInfoBarDelegate::TranslationDeclined() {
@@ -142,13 +142,10 @@ void TranslateInfoBarDelegate::TranslationDeclined() {
}
bool TranslateInfoBarDelegate::IsTranslatableLanguageByPrefs() {
- TranslateTabHelper* translate_tab_helper =
- TranslateTabHelper::FromWebContents(GetWebContents());
- scoped_ptr<TranslatePrefs> translate_prefs(
- TranslateTabHelper::CreateTranslatePrefs(
- translate_tab_helper->GetPrefs()));
+ TranslateClient* client = GetTranslateClient();
+ scoped_ptr<TranslatePrefs> translate_prefs(client->GetTranslatePrefs());
TranslateAcceptLanguages* accept_languages =
- translate_tab_helper->GetTranslateAcceptLanguages();
+ client->GetTranslateAcceptLanguages();
return translate_prefs->CanTranslateLanguage(accept_languages,
original_language_code());
}
@@ -252,10 +249,8 @@ void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() {
return;
}
// This is the "Try again..." case.
- TranslateManager* manager =
- TranslateTabHelper::GetManagerFromWebContents(GetWebContents());
- DCHECK(manager);
- manager->TranslatePage(
+ DCHECK(translate_manager_);
+ translate_manager_->TranslatePage(
original_language_code(), target_language_code(), false);
}
@@ -265,14 +260,14 @@ bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() {
bool TranslateInfoBarDelegate::ShouldShowNeverTranslateShortcut() {
DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_);
- return !GetWebContents()->GetBrowserContext()->IsOffTheRecord() &&
+ return !is_off_the_record_ &&
(prefs_->GetTranslationDeniedCount(original_language_code()) >=
kNeverTranslateMinCount);
}
bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateShortcut() {
DCHECK_EQ(translate::TRANSLATE_STEP_BEFORE_TRANSLATE, step_);
- return !GetWebContents()->GetBrowserContext()->IsOffTheRecord() &&
+ return !is_off_the_record_ &&
(prefs_->GetTranslationAcceptedCount(original_language_code()) >=
kAlwaysTranslateMinCount);
}
@@ -317,7 +312,8 @@ void TranslateInfoBarDelegate::GetAfterTranslateStrings(
}
TranslateInfoBarDelegate::TranslateInfoBarDelegate(
- content::WebContents* web_contents,
+ const base::WeakPtr<TranslateManager>& translate_manager,
+ bool is_off_the_record,
translate::TranslateStep step,
TranslateInfoBarDelegate* old_delegate,
const std::string& original_language,
@@ -326,22 +322,32 @@ TranslateInfoBarDelegate::TranslateInfoBarDelegate(
PrefService* prefs,
bool triggered_from_menu)
: infobars::InfoBarDelegate(),
+ is_off_the_record_(is_off_the_record),
step_(step),
background_animation_(NONE),
- ui_delegate_(TranslateTabHelper::FromWebContents(web_contents),
- TranslateTabHelper::GetManagerFromWebContents(web_contents),
+ ui_delegate_(translate_manager->translate_client(),
+ translate_manager.get(),
blundell 2014/05/16 15:11:03 hmm, is it ok that this guy holds on to a raw poin
droger 2014/05/16 15:14:11 You're right, it's probably not OK conceptually.
original_language,
target_language),
+ translate_manager_(translate_manager),
error_type_(error_type),
- prefs_(TranslateTabHelper::CreateTranslatePrefs(prefs)),
+ prefs_(translate_manager->translate_client()->GetTranslatePrefs()),
triggered_from_menu_(triggered_from_menu) {
DCHECK_NE((step_ == translate::TRANSLATE_STEP_TRANSLATE_ERROR),
(error_type_ == TranslateErrors::NONE));
+ DCHECK(translate_manager_);
if (old_delegate && (old_delegate->is_error() != is_error()))
background_animation_ = is_error() ? NORMAL_TO_ERROR : ERROR_TO_NORMAL;
}
+TranslateClient* TranslateInfoBarDelegate::GetTranslateClient() {
+ if (!translate_manager_)
+ return NULL;
+
+ return translate_manager_->translate_client();
+}
+
// TranslateInfoBarDelegate::CreateInfoBar() is implemented in platform-specific
// files.
« no previous file with comments | « chrome/browser/translate/translate_infobar_delegate.h ('k') | chrome/browser/translate/translate_tab_helper.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698