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

Unified Diff: components/translate/core/browser/translate_ui_delegate.cc

Issue 229363002: Componentize TranslateUIDelegate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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: components/translate/core/browser/translate_ui_delegate.cc
diff --git a/chrome/browser/translate/translate_ui_delegate.cc b/components/translate/core/browser/translate_ui_delegate.cc
similarity index 79%
rename from chrome/browser/translate/translate_ui_delegate.cc
rename to components/translate/core/browser/translate_ui_delegate.cc
index bd1641bed916f3ad9ec256d45727c2fdaa1ef169..a1b9105c51ea505a79859db7c4f5940842720fed 100644
--- a/chrome/browser/translate/translate_ui_delegate.cc
+++ b/components/translate/core/browser/translate_ui_delegate.cc
@@ -2,20 +2,17 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/translate/translate_ui_delegate.h"
+#include "components/translate/core/browser/translate_ui_delegate.h"
#include "base/i18n/string_compare.h"
#include "base/metrics/histogram.h"
-#include "chrome/browser/browser_process.h"
-#include "chrome/browser/profiles/profile.h"
-#include "chrome/browser/translate/translate_tab_helper.h"
+#include "components/translate/core/browser/language_state.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/browser/translate_prefs.h"
#include "components/translate/core/common/translate_constants.h"
-#include "content/public/browser/browser_context.h"
-#include "content/public/browser/navigation_entry.h"
-#include "content/public/browser/web_contents.h"
#include "third_party/icu/source/i18n/unicode/coll.h"
#include "ui/base/l10n/l10n_util.h"
@@ -34,21 +31,27 @@ const char kShowErrorUI[] = "Translate.ShowErrorUI";
} // namespace
-TranslateUIDelegate::TranslateUIDelegate(content::WebContents* web_contents,
+TranslateUIDelegate::TranslateUIDelegate(TranslateClient* translate_client,
+ TranslateManager* translate_manager,
const std::string& original_language,
const std::string& target_language)
- : web_contents_(web_contents),
+ : translate_client_(translate_client),
+ translate_driver_(translate_client->GetTranslateDriver()),
+ translate_manager_(translate_manager),
original_language_index_(NO_INDEX),
initial_original_language_index_(NO_INDEX),
target_language_index_(NO_INDEX) {
- DCHECK(web_contents_);
+ DCHECK(translate_client_);
+ DCHECK(translate_driver_);
+ DCHECK(translate_manager_);
std::vector<std::string> language_codes;
TranslateDownloadManager::GetSupportedLanguages(&language_codes);
// Preparing for the alphabetical order in the locale.
UErrorCode error = U_ZERO_ERROR;
- std::string locale = g_browser_process->GetApplicationLocale();
+ std::string locale =
+ TranslateDownloadManager::GetInstance()->application_locale();
icu::Locale loc(locale.c_str());
scoped_ptr<icu::Collator> collator(icu::Collator::createInstance(loc, error));
collator->setStrength(icu::Collator::PRIMARY);
@@ -58,8 +61,8 @@ TranslateUIDelegate::TranslateUIDelegate(content::WebContents* web_contents,
iter != language_codes.end(); ++iter) {
std::string language_code = *iter;
- base::string16 language_name = l10n_util::GetDisplayNameForLocale(
- language_code, g_browser_process->GetApplicationLocale(), true);
+ base::string16 language_name =
+ l10n_util::GetDisplayNameForLocale(language_code, locale, true);
// Insert the language in languages_ in alphabetical order.
std::vector<LanguageNamePair>::iterator iter2;
for (iter2 = languages_.begin(); iter2 != languages_.end(); ++iter2) {
@@ -81,9 +84,7 @@ TranslateUIDelegate::TranslateUIDelegate(content::WebContents* web_contents,
target_language_index_ = iter - languages_.begin();
}
- Profile* profile =
- Profile::FromBrowserContext(web_contents_->GetBrowserContext());
- prefs_ = TranslateTabHelper::CreateTranslatePrefs(profile->GetPrefs());
+ prefs_ = translate_client_->GetTranslatePrefs();
}
TranslateUIDelegate::~TranslateUIDelegate() {
@@ -100,6 +101,10 @@ void TranslateUIDelegate::OnErrorShown(TranslateErrors::Type error_type) {
TranslateErrors::TRANSLATE_ERROR_MAX);
}
+const LanguageState& TranslateUIDelegate::GetLanguageState() {
+ return translate_driver_->GetLanguageState();
+}
+
size_t TranslateUIDelegate::GetNumberOfLanguages() const {
return languages_.size();
}
@@ -153,30 +158,24 @@ std::string TranslateUIDelegate::GetTargetLanguageCode() const {
}
void TranslateUIDelegate::Translate() {
- if (!web_contents()->GetBrowserContext()->IsOffTheRecord()) {
+ if (!translate_driver_->IsOffTheRecord()) {
prefs_->ResetTranslationDeniedCount(GetOriginalLanguageCode());
prefs_->IncrementTranslationAcceptedCount(GetOriginalLanguageCode());
}
- TranslateManager* manager =
- TranslateTabHelper::GetManagerFromWebContents(web_contents());
- DCHECK(manager);
- manager->TranslatePage(
+ translate_manager_->TranslatePage(
GetOriginalLanguageCode(), GetTargetLanguageCode(), false);
UMA_HISTOGRAM_BOOLEAN(kPerformTranslate, true);
}
void TranslateUIDelegate::RevertTranslation() {
- TranslateManager* manager =
- TranslateTabHelper::GetManagerFromWebContents(web_contents());
- DCHECK(manager);
- manager->RevertTranslation();
+ translate_manager_->RevertTranslation();
UMA_HISTOGRAM_BOOLEAN(kRevertTranslation, true);
}
void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) {
- if (!web_contents()->GetBrowserContext()->IsOffTheRecord()) {
+ if (!translate_driver_->IsOffTheRecord()) {
prefs_->ResetTranslationAcceptedCount(GetOriginalLanguageCode());
prefs_->IncrementTranslationDeniedCount(GetOriginalLanguageCode());
}
@@ -186,8 +185,7 @@ void TranslateUIDelegate::TranslationDeclined(bool explicitly_closed) {
// translations when getting a LANGUAGE_DETERMINED from the page, which
// happens when a load stops. That could happen multiple times, including
// after the user already declined the translation.)
- TranslateTabHelper::FromWebContents(web_contents())->
- GetLanguageState().set_translation_declined(true);
+ translate_driver_->GetLanguageState().set_translation_declined(true);
UMA_HISTOGRAM_BOOLEAN(kDeclineTranslate, true);
@@ -202,10 +200,7 @@ bool TranslateUIDelegate::IsLanguageBlocked() {
void TranslateUIDelegate::SetLanguageBlocked(bool value) {
if (value) {
prefs_->BlockLanguage(GetOriginalLanguageCode());
- TranslateTabHelper* translate_tab_helper =
- TranslateTabHelper::FromWebContents(web_contents());
- DCHECK(translate_tab_helper);
- translate_tab_helper->GetLanguageState().SetTranslateEnabled(false);
+ translate_driver_->GetLanguageState().SetTranslateEnabled(false);
} else {
prefs_->UnblockLanguage(GetOriginalLanguageCode());
}
@@ -225,10 +220,7 @@ void TranslateUIDelegate::SetSiteBlacklist(bool value) {
if (value) {
prefs_->BlacklistSite(host);
- TranslateTabHelper* translate_tab_helper =
- TranslateTabHelper::FromWebContents(web_contents());
- DCHECK(translate_tab_helper);
- translate_tab_helper->GetLanguageState().SetTranslateEnabled(false);
+ translate_driver_->GetLanguageState().SetTranslateEnabled(false);
} else {
prefs_->RemoveSiteFromBlacklist(host);
}
@@ -253,7 +245,8 @@ void TranslateUIDelegate::SetAlwaysTranslate(bool value) {
}
std::string TranslateUIDelegate::GetPageHost() {
- content::NavigationEntry* entry =
- web_contents()->GetController().GetActiveEntry();
- return entry ? entry->GetURL().HostNoBrackets() : std::string();
+ const GURL& active_url = translate_driver_->GetActiveURL();
droger 2014/04/09 08:31:24 Optionnal: Should this use translate_driver_->HasC
blundell 2014/04/09 08:49:27 Done.
+ if (active_url.is_empty())
+ return std::string();
+ return active_url.HostNoBrackets();
}

Powered by Google App Engine
This is Rietveld 408576698