summaryrefslogtreecommitdiffstats
path: root/chrome/browser/translate
diff options
context:
space:
mode:
authorpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-21 19:01:19 +0000
committerpkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-21 19:01:19 +0000
commitf4f50efb4d3ee42470c8057345e902ac42e76801 (patch)
tree5b4d0c57cd94d8169db9dc441f424d6443e4f490 /chrome/browser/translate
parent0bd22cab9c919ff8d9b35153f6799dc031fe2770 (diff)
downloadchromium_src-f4f50efb4d3ee42470c8057345e902ac42e76801.zip
chromium_src-f4f50efb4d3ee42470c8057345e902ac42e76801.tar.gz
chromium_src-f4f50efb4d3ee42470c8057345e902ac42e76801.tar.bz2
Cleanup: de-inline a bunch of classes, rename and move "PluginInstaller" to "PluginInstallerInfoBarDelegate" for clarity, lots of other misc. stuff
BUG=none TEST=none Review URL: http://codereview.chromium.org/6249010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72166 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/translate')
-rw-r--r--chrome/browser/translate/languages_menu_model.cc16
-rw-r--r--chrome/browser/translate/translate_infobar_delegate.cc314
-rw-r--r--chrome/browser/translate/translate_infobar_delegate.h22
-rw-r--r--chrome/browser/translate/translate_manager.cc12
-rw-r--r--chrome/browser/translate/translate_manager_unittest.cc31
5 files changed, 179 insertions, 216 deletions
diff --git a/chrome/browser/translate/languages_menu_model.cc b/chrome/browser/translate/languages_menu_model.cc
index 5f631d1..bd3ec10 100644
--- a/chrome/browser/translate/languages_menu_model.cc
+++ b/chrome/browser/translate/languages_menu_model.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -21,16 +21,16 @@ LanguagesMenuModel::~LanguagesMenuModel() {
}
bool LanguagesMenuModel::IsCommandIdChecked(int command_id) const {
- if (language_type_ == ORIGINAL)
- return command_id == translate_infobar_delegate_->original_language_index();
- return command_id == translate_infobar_delegate_->target_language_index();
+ return command_id == ((language_type_ == ORIGINAL) ?
+ translate_infobar_delegate_->original_language_index() :
+ translate_infobar_delegate_->target_language_index());
}
bool LanguagesMenuModel::IsCommandIdEnabled(int command_id) const {
- // Prevent from having the same language selectable in original and target.
- if (language_type_ == ORIGINAL)
- return command_id != translate_infobar_delegate_->target_language_index();
- return command_id != translate_infobar_delegate_->original_language_index();
+ // Prevent the same language from being selectable in original and target.
+ return command_id != ((language_type_ == ORIGINAL) ?
+ translate_infobar_delegate_->target_language_index() :
+ translate_infobar_delegate_->original_language_index());
}
bool LanguagesMenuModel::GetAcceleratorForCommandId(
diff --git a/chrome/browser/translate/translate_infobar_delegate.cc b/chrome/browser/translate/translate_infobar_delegate.cc
index c28a5c5..5a9bbc4 100644
--- a/chrome/browser/translate/translate_infobar_delegate.cc
+++ b/chrome/browser/translate/translate_infobar_delegate.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -24,7 +24,7 @@ TranslateInfoBarDelegate* TranslateInfoBarDelegate::CreateDelegate(
TabContents* tab_contents,
const std::string& original_language,
const std::string& target_language) {
- DCHECK(type != TRANSLATION_ERROR);
+ DCHECK_NE(TRANSLATION_ERROR, type);
// The original language can only be "unknown" for the "translating"
// infobar, which is the case when the user started a translation from the
// context menu.
@@ -32,14 +32,12 @@ TranslateInfoBarDelegate* TranslateInfoBarDelegate::CreateDelegate(
original_language != chrome::kUnknownLanguageCode);
if ((original_language != chrome::kUnknownLanguageCode &&
!TranslateManager::IsSupportedLanguage(original_language)) ||
- !TranslateManager::IsSupportedLanguage(target_language)) {
+ !TranslateManager::IsSupportedLanguage(target_language))
return NULL;
- }
TranslateInfoBarDelegate* delegate =
- new TranslateInfoBarDelegate(type, TranslateErrors::NONE,
- tab_contents,
+ new TranslateInfoBarDelegate(type, TranslateErrors::NONE, tab_contents,
original_language, target_language);
- DCHECK(delegate->target_language_index() != -1);
+ DCHECK_NE(-1, delegate->target_language_index());
return delegate;
}
@@ -52,76 +50,24 @@ TranslateInfoBarDelegate* TranslateInfoBarDelegate::CreateErrorDelegate(
original_language, target_language);
}
-TranslateInfoBarDelegate::TranslateInfoBarDelegate(
- Type type,
- TranslateErrors::Type error,
- TabContents* tab_contents,
- const std::string& original_language,
- const std::string& target_language)
- : InfoBarDelegate(tab_contents),
- type_(type),
- background_animation_(NONE),
- tab_contents_(tab_contents),
- original_language_index_(-1),
- initial_original_language_index_(-1),
- target_language_index_(-1),
- error_(error),
- infobar_view_(NULL),
- prefs_(tab_contents_->profile()->GetPrefs()) {
- DCHECK((type_ != TRANSLATION_ERROR && error == TranslateErrors::NONE) ||
- (type_ == TRANSLATION_ERROR && error != TranslateErrors::NONE));
-
- std::vector<std::string> language_codes;
- TranslateManager::GetSupportedLanguages(&language_codes);
-
- languages_.reserve(language_codes.size());
- for (std::vector<std::string>::const_iterator iter = language_codes.begin();
- iter != language_codes.end(); ++iter) {
- std::string language_code = *iter;
-
- string16 language_name = GetLanguageDisplayableName(language_code);
- // Insert the language in languages_ in alphabetical order.
- std::vector<LanguageNamePair>::iterator iter2;
- for (iter2 = languages_.begin(); iter2 != languages_.end(); ++iter2) {
- if (language_name.compare(iter2->second) < 0)
- break;
- }
- languages_.insert(iter2, LanguageNamePair(language_code, language_name));
- }
- for (std::vector<LanguageNamePair>::const_iterator iter = languages_.begin();
- iter != languages_.end(); ++iter) {
- std::string language_code = iter->first;
- if (language_code == original_language) {
- original_language_index_ = iter - languages_.begin();
- initial_original_language_index_ = original_language_index_;
- }
- if (language_code == target_language)
- target_language_index_ = iter - languages_.begin();
- }
-}
-
-TranslateInfoBarDelegate::~TranslateInfoBarDelegate() {}
-
-int TranslateInfoBarDelegate::GetLanguageCount() const {
- return static_cast<int>(languages_.size());
+TranslateInfoBarDelegate::~TranslateInfoBarDelegate() {
}
-std::string TranslateInfoBarDelegate::GetLanguageCodeAt(
- int index) const {
- DCHECK(index >=0 && index < GetLanguageCount());
+std::string TranslateInfoBarDelegate::GetLanguageCodeAt(int index) const {
+ DCHECK(index >= 0 && index < GetLanguageCount());
return languages_[index].first;
}
string16 TranslateInfoBarDelegate::GetLanguageDisplayableNameAt(
int index) const {
- DCHECK(index >=0 && index < GetLanguageCount());
+ DCHECK(index >= 0 && index < GetLanguageCount());
return languages_[index].second;
}
std::string TranslateInfoBarDelegate::GetOriginalLanguageCode() const {
- if (original_language_index() == -1)
- return chrome::kUnknownLanguageCode;
- return GetLanguageCodeAt(original_language_index());
+ return (original_language_index() == -1) ?
+ chrome::kUnknownLanguageCode :
+ GetLanguageCodeAt(original_language_index());
}
std::string TranslateInfoBarDelegate::GetTargetLanguageCode() const {
@@ -129,7 +75,7 @@ std::string TranslateInfoBarDelegate::GetTargetLanguageCode() const {
}
void TranslateInfoBarDelegate::SetOriginalLanguage(int language_index) {
- DCHECK(language_index < static_cast<int>(languages_.size()));
+ DCHECK_LT(language_index, GetLanguageCount());
original_language_index_ = language_index;
if (infobar_view_)
infobar_view_->OriginalLanguageChanged();
@@ -138,7 +84,7 @@ void TranslateInfoBarDelegate::SetOriginalLanguage(int language_index) {
}
void TranslateInfoBarDelegate::SetTargetLanguage(int language_index) {
- DCHECK(language_index < static_cast<int>(languages_.size()));
+ DCHECK_LT(language_index, GetLanguageCount());
target_language_index_ = language_index;
if (infobar_view_)
infobar_view_->TargetLanguageChanged();
@@ -146,10 +92,6 @@ void TranslateInfoBarDelegate::SetTargetLanguage(int language_index) {
Translate();
}
-bool TranslateInfoBarDelegate::IsError() {
- return type_ == TRANSLATION_ERROR;
-}
-
void TranslateInfoBarDelegate::Translate() {
const std::string& original_language_code = GetOriginalLanguageCode();
if (!tab_contents()->profile()->IsOffTheRecord()) {
@@ -157,8 +99,7 @@ void TranslateInfoBarDelegate::Translate() {
prefs_.IncrementTranslationAcceptedCount(original_language_code);
}
- TranslateManager::GetInstance()->TranslatePage(
- tab_contents_,
+ TranslateManager::GetInstance()->TranslatePage(tab_contents_,
GetLanguageCodeAt(original_language_index()),
GetLanguageCodeAt(target_language_index()));
}
@@ -169,8 +110,7 @@ void TranslateInfoBarDelegate::RevertTranslation() {
}
void TranslateInfoBarDelegate::ReportLanguageDetectionError() {
- TranslateManager::GetInstance()->
- ReportLanguageDetectionError(tab_contents_);
+ TranslateManager::GetInstance()->ReportLanguageDetectionError(tab_contents_);
}
void TranslateInfoBarDelegate::TranslationDeclined() {
@@ -188,34 +128,6 @@ void TranslateInfoBarDelegate::TranslationDeclined() {
tab_contents_->language_state().set_translation_declined(true);
}
-void TranslateInfoBarDelegate::InfoBarDismissed() {
- if (type_ != BEFORE_TRANSLATE)
- return;
-
- // The user closed the infobar without clicking the translate button.
- TranslationDeclined();
- UMA_HISTOGRAM_COUNTS("Translate.DeclineTranslateCloseInfobar", 1);
-}
-
-void TranslateInfoBarDelegate::InfoBarClosed() {
- delete this;
-}
-
-SkBitmap* TranslateInfoBarDelegate::GetIcon() const {
- return ResourceBundle::GetSharedInstance().GetBitmapNamed(
- IDR_INFOBAR_TRANSLATE);
-}
-
-InfoBarDelegate::Type TranslateInfoBarDelegate::GetInfoBarType() {
- return InfoBarDelegate::PAGE_ACTION_TYPE;
-}
-
-TranslateInfoBarDelegate*
-TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() {
- return this;
-}
-
-
bool TranslateInfoBarDelegate::IsLanguageBlacklisted() {
return prefs_.IsLanguageBlacklisted(GetOriginalLanguageCode());
}
@@ -278,35 +190,31 @@ void TranslateInfoBarDelegate::NeverTranslatePageLanguage() {
}
string16 TranslateInfoBarDelegate::GetMessageInfoBarText() {
- switch (type_) {
- case TRANSLATING:
+ if (type_ == TRANSLATING) {
+ return l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_TRANSLATING_TO,
+ GetLanguageDisplayableNameAt(target_language_index_));
+ }
+
+ DCHECK_EQ(TRANSLATION_ERROR, type_);
+ switch (error_) {
+ case TranslateErrors::NETWORK:
+ return l10n_util::GetStringUTF16(
+ IDS_TRANSLATE_INFOBAR_ERROR_CANT_CONNECT);
+ case TranslateErrors::INITIALIZATION_ERROR:
+ case TranslateErrors::TRANSLATION_ERROR:
+ return l10n_util::GetStringUTF16(
+ IDS_TRANSLATE_INFOBAR_ERROR_CANT_TRANSLATE);
+ case TranslateErrors::UNKNOWN_LANGUAGE:
+ return l10n_util::GetStringUTF16(
+ IDS_TRANSLATE_INFOBAR_UNKNOWN_PAGE_LANGUAGE);
+ case TranslateErrors::UNSUPPORTED_LANGUAGE:
+ return l10n_util::GetStringFUTF16(
+ IDS_TRANSLATE_INFOBAR_UNSUPPORTED_PAGE_LANGUAGE,
+ GetLanguageDisplayableNameAt(target_language_index_));
+ case TranslateErrors::IDENTICAL_LANGUAGES:
return l10n_util::GetStringFUTF16(
- IDS_TRANSLATE_INFOBAR_TRANSLATING_TO,
+ IDS_TRANSLATE_INFOBAR_ERROR_SAME_LANGUAGE,
GetLanguageDisplayableNameAt(target_language_index_));
- case TRANSLATION_ERROR:
- switch (error_) {
- case TranslateErrors::NETWORK:
- return l10n_util::GetStringUTF16(
- IDS_TRANSLATE_INFOBAR_ERROR_CANT_CONNECT);
- case TranslateErrors::INITIALIZATION_ERROR:
- case TranslateErrors::TRANSLATION_ERROR:
- return l10n_util::GetStringUTF16(
- IDS_TRANSLATE_INFOBAR_ERROR_CANT_TRANSLATE);
- case TranslateErrors::UNKNOWN_LANGUAGE:
- return l10n_util::GetStringUTF16(
- IDS_TRANSLATE_INFOBAR_UNKNOWN_PAGE_LANGUAGE);
- case TranslateErrors::UNSUPPORTED_LANGUAGE:
- return l10n_util::GetStringFUTF16(
- IDS_TRANSLATE_INFOBAR_UNSUPPORTED_PAGE_LANGUAGE,
- GetLanguageDisplayableNameAt(target_language_index_));
- case TranslateErrors::IDENTICAL_LANGUAGES:
- return l10n_util::GetStringFUTF16(
- IDS_TRANSLATE_INFOBAR_ERROR_SAME_LANGUAGE,
- GetLanguageDisplayableNameAt(target_language_index_));
- default:
- NOTREACHED();
- return string16();
- }
default:
NOTREACHED();
return string16();
@@ -314,33 +222,26 @@ string16 TranslateInfoBarDelegate::GetMessageInfoBarText() {
}
string16 TranslateInfoBarDelegate::GetMessageInfoBarButtonText() {
- switch (type_) {
- case TRANSLATING:
- return string16();
- case TRANSLATION_ERROR:
- if (error_ == TranslateErrors::IDENTICAL_LANGUAGES ||
- error_ == TranslateErrors::UNKNOWN_LANGUAGE) {
- // No retry button, we would fail again with the same error.
- return string16();
- }
- if (error_ == TranslateErrors::UNSUPPORTED_LANGUAGE)
- return l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_REVERT);
- return l10n_util::GetStringUTF16(IDS_TRANSLATE_INFOBAR_RETRY);
- default:
- NOTREACHED();
- return string16();
+ if (type_ != TRANSLATION_ERROR) {
+ DCHECK_EQ(TRANSLATING, type_);
+ } else if ((error_ != TranslateErrors::IDENTICAL_LANGUAGES) &&
+ (error_ != TranslateErrors::UNKNOWN_LANGUAGE)) {
+ return l10n_util::GetStringUTF16(
+ (error_ == TranslateErrors::UNSUPPORTED_LANGUAGE) ?
+ IDS_TRANSLATE_INFOBAR_REVERT : IDS_TRANSLATE_INFOBAR_RETRY);
}
+ return string16();
}
void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() {
- DCHECK(type_ == TRANSLATION_ERROR);
+ DCHECK_EQ(TRANSLATION_ERROR, type_);
if (error_ == TranslateErrors::UNSUPPORTED_LANGUAGE) {
RevertTranslation();
return;
}
// This is the "Try again..." case.
- TranslateManager::GetInstance()->TranslatePage(
- tab_contents_, GetOriginalLanguageCode(), GetTargetLanguageCode());
+ TranslateManager::GetInstance()->TranslatePage(tab_contents_,
+ GetOriginalLanguageCode(), GetTargetLanguageCode());
}
bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() {
@@ -348,31 +249,23 @@ bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() {
}
bool TranslateInfoBarDelegate::ShouldShowNeverTranslateButton() {
- DCHECK(type_ == BEFORE_TRANSLATE);
- if (tab_contents()->profile()->IsOffTheRecord())
- return false;
- return prefs_.GetTranslationDeniedCount(GetOriginalLanguageCode()) >= 3;
+ DCHECK_EQ(BEFORE_TRANSLATE, type_);
+ return !tab_contents()->profile()->IsOffTheRecord() &&
+ (prefs_.GetTranslationDeniedCount(GetOriginalLanguageCode()) >= 3);
}
bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateButton() {
- DCHECK(type_ == BEFORE_TRANSLATE);
- if (tab_contents()->profile()->IsOffTheRecord())
- return false;
- return prefs_.GetTranslationAcceptedCount(GetOriginalLanguageCode()) >= 3;
+ DCHECK_EQ(BEFORE_TRANSLATE, type_);
+ return !tab_contents()->profile()->IsOffTheRecord() &&
+ (prefs_.GetTranslationAcceptedCount(GetOriginalLanguageCode()) >= 3);
}
void TranslateInfoBarDelegate::UpdateBackgroundAnimation(
TranslateInfoBarDelegate* previous_infobar) {
- if (!previous_infobar || previous_infobar->IsError() == IsError()) {
+ if (!previous_infobar || previous_infobar->IsError() == IsError())
background_animation_ = NONE;
- return;
- }
- background_animation_ = IsError() ? NORMAL_TO_ERROR: ERROR_TO_NORMAL;
-}
-
-std::string TranslateInfoBarDelegate::GetPageHost() {
- NavigationEntry* entry = tab_contents_->controller().GetActiveEntry();
- return entry ? entry->url().HostNoBrackets() : std::string();
+ else
+ background_animation_ = IsError() ? NORMAL_TO_ERROR : ERROR_TO_NORMAL;
}
// static
@@ -392,17 +285,92 @@ void TranslateInfoBarDelegate::GetAfterTranslateStrings(
string16 text =
l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_AFTER_MESSAGE,
string16(), string16(), &offsets);
- DCHECK(offsets.size() == 2U);
+ DCHECK_EQ(2U, offsets.size());
- if (offsets[0] > offsets[1]) {
- // Target language comes before source.
+ *swap_languages = (offsets[0] > offsets[1]);
+ if (*swap_languages)
std::swap(offsets[0], offsets[1]);
- *swap_languages = true;
- } else {
- *swap_languages = false;
- }
strings->push_back(text.substr(0, offsets[0]));
strings->push_back(text.substr(offsets[0], offsets[1] - offsets[0]));
strings->push_back(text.substr(offsets[1]));
}
+
+TranslateInfoBarDelegate::TranslateInfoBarDelegate(
+ Type type,
+ TranslateErrors::Type error,
+ TabContents* tab_contents,
+ const std::string& original_language,
+ const std::string& target_language)
+ : InfoBarDelegate(tab_contents),
+ type_(type),
+ background_animation_(NONE),
+ tab_contents_(tab_contents),
+ original_language_index_(-1),
+ initial_original_language_index_(-1),
+ target_language_index_(-1),
+ error_(error),
+ infobar_view_(NULL),
+ prefs_(tab_contents_->profile()->GetPrefs()) {
+ DCHECK_NE((type_ == TRANSLATION_ERROR), (error == TranslateErrors::NONE));
+
+ std::vector<std::string> language_codes;
+ TranslateManager::GetSupportedLanguages(&language_codes);
+
+ languages_.reserve(language_codes.size());
+ for (std::vector<std::string>::const_iterator iter = language_codes.begin();
+ iter != language_codes.end(); ++iter) {
+ std::string language_code = *iter;
+
+ string16 language_name = GetLanguageDisplayableName(language_code);
+ // Insert the language in languages_ in alphabetical order.
+ std::vector<LanguageNamePair>::iterator iter2;
+ for (iter2 = languages_.begin(); iter2 != languages_.end(); ++iter2) {
+ if (language_name.compare(iter2->second) < 0)
+ break;
+ }
+ languages_.insert(iter2, LanguageNamePair(language_code, language_name));
+ }
+ for (std::vector<LanguageNamePair>::const_iterator iter = languages_.begin();
+ iter != languages_.end(); ++iter) {
+ std::string language_code = iter->first;
+ if (language_code == original_language) {
+ original_language_index_ = iter - languages_.begin();
+ initial_original_language_index_ = original_language_index_;
+ }
+ if (language_code == target_language)
+ target_language_index_ = iter - languages_.begin();
+ }
+}
+
+void TranslateInfoBarDelegate::InfoBarDismissed() {
+ if (type_ != BEFORE_TRANSLATE)
+ return;
+
+ // The user closed the infobar without clicking the translate button.
+ TranslationDeclined();
+ UMA_HISTOGRAM_COUNTS("Translate.DeclineTranslateCloseInfobar", 1);
+}
+
+void TranslateInfoBarDelegate::InfoBarClosed() {
+ delete this;
+}
+
+SkBitmap* TranslateInfoBarDelegate::GetIcon() const {
+ return ResourceBundle::GetSharedInstance().GetBitmapNamed(
+ IDR_INFOBAR_TRANSLATE);
+}
+
+InfoBarDelegate::Type TranslateInfoBarDelegate::GetInfoBarType() const {
+ return InfoBarDelegate::PAGE_ACTION_TYPE;
+}
+
+TranslateInfoBarDelegate*
+ TranslateInfoBarDelegate::AsTranslateInfoBarDelegate() {
+ return this;
+}
+
+std::string TranslateInfoBarDelegate::GetPageHost() {
+ NavigationEntry* entry = tab_contents_->controller().GetActiveEntry();
+ return entry ? entry->url().HostNoBrackets() : std::string();
+}
diff --git a/chrome/browser/translate/translate_infobar_delegate.h b/chrome/browser/translate/translate_infobar_delegate.h
index 549af3d..1bc8a98 100644
--- a/chrome/browser/translate/translate_infobar_delegate.h
+++ b/chrome/browser/translate/translate_infobar_delegate.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -54,7 +54,7 @@ class TranslateInfoBarDelegate : public InfoBarDelegate {
virtual ~TranslateInfoBarDelegate();
// Returns the number of languages supported.
- int GetLanguageCount() const;
+ int GetLanguageCount() const { return static_cast<int>(languages_.size()); }
// Returns the ISO code for the language at |index|.
std::string GetLanguageCodeAt(int index) const;
@@ -82,7 +82,7 @@ class TranslateInfoBarDelegate : public InfoBarDelegate {
// Returns true if the current infobar indicates an error (in which case it
// should get a yellow background instead of a blue one).
- bool IsError();
+ bool IsError() const { return type_ == TRANSLATION_ERROR; }
// Returns what kind of background fading effect the infobar should use when
// its is shown.
@@ -98,14 +98,6 @@ class TranslateInfoBarDelegate : public InfoBarDelegate {
// infobar or pressing the "Don't translate" button.
void TranslationDeclined();
- // InfoBarDelegate implementation:
- virtual InfoBar* CreateInfoBar();
- virtual void InfoBarDismissed();
- virtual void InfoBarClosed();
- virtual SkBitmap* GetIcon() const;
- virtual InfoBarDelegate::Type GetInfoBarType();
- virtual TranslateInfoBarDelegate* AsTranslateInfoBarDelegate();
-
// Methods called by the Options menu delegate.
virtual bool IsLanguageBlacklisted();
virtual void ToggleLanguageBlacklist();
@@ -164,6 +156,14 @@ class TranslateInfoBarDelegate : public InfoBarDelegate {
private:
typedef std::pair<std::string, string16> LanguageNamePair;
+ // InfoBarDelegate implementation:
+ virtual InfoBar* CreateInfoBar();
+ virtual void InfoBarDismissed();
+ virtual void InfoBarClosed();
+ virtual SkBitmap* GetIcon() const;
+ virtual InfoBarDelegate::Type GetInfoBarType() const;
+ virtual TranslateInfoBarDelegate* AsTranslateInfoBarDelegate();
+
// Gets the host of the page being translated, or an empty string if no URL is
// associated with the current page.
std::string GetPageHost();
diff --git a/chrome/browser/translate/translate_manager.cc b/chrome/browser/translate/translate_manager.cc
index b948e45..16895b9 100644
--- a/chrome/browser/translate/translate_manager.cc
+++ b/chrome/browser/translate/translate_manager.cc
@@ -415,8 +415,7 @@ void TranslateManager::InitiateTranslation(TabContents* tab,
// Prompts the user if he/she wants the page translated.
tab->AddInfoBar(TranslateInfoBarDelegate::CreateDelegate(
- TranslateInfoBarDelegate::BEFORE_TRANSLATE, tab,
- page_lang, target_lang));
+ TranslateInfoBarDelegate::BEFORE_TRANSLATE, tab, page_lang, target_lang));
}
void TranslateManager::InitiateTranslationPosted(
@@ -529,9 +528,8 @@ void TranslateManager::PageTranslated(TabContents* tab,
// Create the new infobar to display.
TranslateInfoBarDelegate* infobar;
if (details->error_type != TranslateErrors::NONE) {
- infobar = TranslateInfoBarDelegate::CreateErrorDelegate(
- details->error_type, tab,
- details->source_language, details->target_language);
+ infobar = TranslateInfoBarDelegate::CreateErrorDelegate(details->error_type,
+ tab, details->source_language, details->target_language);
} else if (!IsSupportedLanguage(details->source_language)) {
// TODO(jcivelli): http://crbug.com/9390 We should change the "after
// translate" infobar to support unknown as the original
@@ -627,9 +625,7 @@ void TranslateManager::ShowInfoBar(TabContents* tab,
std::string TranslateManager::GetTargetLanguage() {
std::string target_lang =
GetLanguageCode(g_browser_process->GetApplicationLocale());
- if (IsSupportedLanguage(target_lang))
- return target_lang;
- return std::string();
+ return IsSupportedLanguage(target_lang) ? target_lang : std::string();
}
// static
diff --git a/chrome/browser/translate/translate_manager_unittest.cc b/chrome/browser/translate/translate_manager_unittest.cc
index 9ab0c76..11087f2 100644
--- a/chrome/browser/translate/translate_manager_unittest.cc
+++ b/chrome/browser/translate/translate_manager_unittest.cc
@@ -4,6 +4,8 @@
#include "chrome/browser/renderer_host/test/test_render_view_host.h"
+#include <set>
+
#include "base/utf_string_conversions.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/prefs/pref_service.h"
@@ -84,15 +86,15 @@ class TranslateManagerTest : public RenderViewHostTestHarness,
// Returns the translate infobar if there is 1 infobar and it is a translate
// infobar.
TranslateInfoBarDelegate* GetTranslateInfoBar() {
- if (contents()->infobar_delegate_count() != 1)
- return NULL;
- return contents()->GetInfoBarDelegateAt(0)->AsTranslateInfoBarDelegate();
+ return (contents()->infobar_delegate_count() == 1) ?
+ contents()->GetInfoBarDelegateAt(0)->AsTranslateInfoBarDelegate() :
+ NULL;
}
// If there is 1 infobar and it is a translate infobar, closes it and returns
// true. Returns false otherwise.
bool CloseTranslateInfoBar() {
- TranslateInfoBarDelegate* infobar = GetTranslateInfoBar();
+ InfoBarDelegate* infobar = GetTranslateInfoBar();
if (!infobar)
return false;
infobar->InfoBarDismissed(); // Simulates closing the infobar.
@@ -102,9 +104,8 @@ class TranslateManagerTest : public RenderViewHostTestHarness,
// Checks whether |infobar| has been removed and clears the removed infobar
// list.
- bool CheckInfoBarRemovedAndReset(InfoBarDelegate* infobar) {
- bool found = std::find(removed_infobars_.begin(), removed_infobars_.end(),
- infobar) != removed_infobars_.end();
+ bool CheckInfoBarRemovedAndReset(InfoBarDelegate* delegate) {
+ bool found = removed_infobars_.count(delegate) != 0;
removed_infobars_.clear();
return found;
}
@@ -137,8 +138,8 @@ class TranslateManagerTest : public RenderViewHostTestHarness,
virtual void Observe(NotificationType type,
const NotificationSource& source,
const NotificationDetails& details) {
- DCHECK(type == NotificationType::TAB_CONTENTS_INFOBAR_REMOVED);
- removed_infobars_.push_back(Details<InfoBarDelegate>(details).ptr());
+ DCHECK_EQ(NotificationType::TAB_CONTENTS_INFOBAR_REMOVED, type.value);
+ removed_infobars_.insert(Details<InfoBarDelegate>(details).ptr());
}
protected:
@@ -159,8 +160,7 @@ class TranslateManagerTest : public RenderViewHostTestHarness,
RenderViewHostTestHarness::SetUp();
- notification_registrar_.Add(
- this,
+ notification_registrar_.Add(this,
NotificationType::TAB_CONTENTS_INFOBAR_REMOVED,
Source<TabContents>(contents()));
}
@@ -168,8 +168,7 @@ class TranslateManagerTest : public RenderViewHostTestHarness,
virtual void TearDown() {
process()->sink().ClearMessages();
- notification_registrar_.Remove(
- this,
+ notification_registrar_.Remove(this,
NotificationType::TAB_CONTENTS_INFOBAR_REMOVED,
Source<TabContents>(contents()));
@@ -204,9 +203,9 @@ class TranslateManagerTest : public RenderViewHostTestHarness,
NotificationRegistrar notification_registrar_;
TestURLFetcherFactory url_fetcher_factory_;
- // The list of infobars that have been removed.
- // WARNING: the pointers points to deleted objects, use only for comparison.
- std::vector<InfoBarDelegate*> removed_infobars_;
+ // The infobars that have been removed.
+ // WARNING: the pointers point to deleted objects, use only for comparison.
+ std::set<InfoBarDelegate*> removed_infobars_;
DISALLOW_COPY_AND_ASSIGN(TranslateManagerTest);
};