diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-21 19:01:19 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-21 19:01:19 +0000 |
commit | f4f50efb4d3ee42470c8057345e902ac42e76801 (patch) | |
tree | 5b4d0c57cd94d8169db9dc441f424d6443e4f490 /chrome/browser/translate | |
parent | 0bd22cab9c919ff8d9b35153f6799dc031fe2770 (diff) | |
download | chromium_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.cc | 16 | ||||
-rw-r--r-- | chrome/browser/translate/translate_infobar_delegate.cc | 314 | ||||
-rw-r--r-- | chrome/browser/translate/translate_infobar_delegate.h | 22 | ||||
-rw-r--r-- | chrome/browser/translate/translate_manager.cc | 12 | ||||
-rw-r--r-- | chrome/browser/translate/translate_manager_unittest.cc | 31 |
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); }; |