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

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: Fix mac 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
« no previous file with comments | « components/translate/core/browser/translate_ui_delegate.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 74%
rename from chrome/browser/translate/translate_ui_delegate.cc
rename to components/translate/core/browser/translate_ui_delegate.cc
index bd1641bed916f3ad9ec256d45727c2fdaa1ef169..87983ae48e7f19ddd93fcdb1dc321d70d7313bd8 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,44 +31,52 @@ 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);
languages_.reserve(language_codes.size());
for (std::vector<std::string>::const_iterator iter = language_codes.begin();
- iter != language_codes.end(); ++iter) {
+ 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) {
- if (base::i18n::CompareString16WithCollator(collator.get(),
- language_name, iter2->second) == UCOL_LESS) {
+ if (base::i18n::CompareString16WithCollator(
+ collator.get(), language_name, iter2->second) == UCOL_LESS) {
break;
}
}
languages_.insert(iter2, LanguageNamePair(language_code, language_name));
}
for (std::vector<LanguageNamePair>::const_iterator iter = languages_.begin();
- iter != languages_.end(); ++iter) {
+ iter != languages_.end();
+ ++iter) {
std::string language_code = iter->first;
if (language_code == original_language) {
original_language_index_ = iter - languages_.begin();
@@ -81,13 +86,10 @@ 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() {
-}
+TranslateUIDelegate::~TranslateUIDelegate() {}
void TranslateUIDelegate::OnErrorShown(TranslateErrors::Type error_type) {
DCHECK_LE(TranslateErrors::NONE, error_type);
@@ -96,8 +98,12 @@ void TranslateUIDelegate::OnErrorShown(TranslateErrors::Type error_type) {
if (error_type == TranslateErrors::NONE)
return;
- UMA_HISTOGRAM_ENUMERATION(kShowErrorUI, error_type,
- TranslateErrors::TRANSLATE_ERROR_MAX);
+ UMA_HISTOGRAM_ENUMERATION(
+ kShowErrorUI, error_type, TranslateErrors::TRANSLATE_ERROR_MAX);
+}
+
+const LanguageState& TranslateUIDelegate::GetLanguageState() {
+ return translate_driver_->GetLanguageState();
}
size_t TranslateUIDelegate::GetNumberOfLanguages() const {
@@ -129,7 +135,6 @@ void TranslateUIDelegate::UpdateTargetLanguageIndex(size_t language_index) {
target_language_index_ = language_index;
}
-
std::string TranslateUIDelegate::GetLanguageCodeAt(size_t index) const {
DCHECK_LT(index, GetNumberOfLanguages());
return languages_[index].first;
@@ -143,9 +148,9 @@ base::string16 TranslateUIDelegate::GetLanguageNameAt(size_t index) const {
}
std::string TranslateUIDelegate::GetOriginalLanguageCode() const {
- return (GetOriginalLanguageIndex() == static_cast<size_t>(NO_INDEX)) ?
- translate::kUnknownLanguageCode :
- GetLanguageCodeAt(GetOriginalLanguageIndex());
+ return (GetOriginalLanguageIndex() == static_cast<size_t>(NO_INDEX))
+ ? translate::kUnknownLanguageCode
+ : GetLanguageCodeAt(GetOriginalLanguageIndex());
}
std::string TranslateUIDelegate::GetTargetLanguageCode() const {
@@ -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,7 @@ void TranslateUIDelegate::SetAlwaysTranslate(bool value) {
}
std::string TranslateUIDelegate::GetPageHost() {
- content::NavigationEntry* entry =
- web_contents()->GetController().GetActiveEntry();
- return entry ? entry->GetURL().HostNoBrackets() : std::string();
+ if (!translate_driver_->HasCurrentPage())
+ return std::string();
+ return translate_driver_->GetActiveURL().HostNoBrackets();
}
« no previous file with comments | « components/translate/core/browser/translate_ui_delegate.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698