diff options
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/cocoa/translate_infobar.h | 26 | ||||
-rw-r--r-- | chrome/browser/cocoa/translate_infobar.mm | 84 | ||||
-rw-r--r-- | chrome/browser/cocoa/translate_infobar_unittest.mm | 187 | ||||
-rw-r--r-- | chrome/browser/gtk/translate_infobars.cc | 10 | ||||
-rw-r--r-- | chrome/browser/translate/languages_menu_model.cc | 2 | ||||
-rw-r--r-- | chrome/browser/translate/options_menu_model.cc | 4 | ||||
-rw-r--r-- | chrome/browser/translate/translate_infobars_delegates.cc | 32 | ||||
-rw-r--r-- | chrome/browser/translate/translate_infobars_delegates.h | 24 | ||||
-rw-r--r-- | chrome/browser/views/infobars/translate_infobars.cc | 6 | ||||
-rw-r--r-- | chrome/chrome_tests.gypi | 1 |
10 files changed, 43 insertions, 333 deletions
diff --git a/chrome/browser/cocoa/translate_infobar.h b/chrome/browser/cocoa/translate_infobar.h index 3df507b..410c60a 100644 --- a/chrome/browser/cocoa/translate_infobar.h +++ b/chrome/browser/cocoa/translate_infobar.h @@ -9,7 +9,6 @@ #include "base/scoped_ptr.h" #include "chrome/browser/translate/languages_menu_model.h" #include "chrome/browser/translate/options_menu_model.h" -#include "chrome/browser/translate/translate_infobars_delegates.h" #include "chrome/common/notification_registrar.h" class TranslateInfoBarMenuModel; @@ -57,28 +56,3 @@ class TranslateNotificationObserverBridge; } @end - -@interface TranslateInfoBarController (TestingAPI) - -// Main function to update the toolbar graphic state and data model after -// the state has changed. -// Controls are moved around as needed and visibility changed to match the -// current state. -- (void)updateState; - -// Called when the source or target language selection changes in a menu. -// |newLanguageIdx| is the index of the newly selected item in the appropriate -// menu. -- (void)sourceLanguageModified:(NSInteger)newLanguageIdx; -- (void)targetLanguageModified:(NSInteger)newLanguageIdx; - -// Called when an item in one of the toolbar's menus is selected. -- (void)menuItemSelected:(id)item; - -// Returns the underlying options menu. -- (NSMenu*)optionsMenu; - -// Verifies that the layout of the infobar is correct for |state|. -- (bool)verifyLayout:(TranslateInfoBarDelegate::TranslateState)state; - -@end diff --git a/chrome/browser/cocoa/translate_infobar.mm b/chrome/browser/cocoa/translate_infobar.mm index bb277db..f727401 100644 --- a/chrome/browser/cocoa/translate_infobar.mm +++ b/chrome/browser/cocoa/translate_infobar.mm @@ -15,6 +15,7 @@ #import "chrome/browser/cocoa/infobar_controller.h" #import "chrome/browser/cocoa/infobar_gradient_view.h" #include "chrome/browser/tab_contents/tab_contents.h" +#include "chrome/browser/translate/translate_infobars_delegates.h" #include "chrome/common/notification_service.h" #include "grit/generated_resources.h" #include "grit/locale_settings.h" @@ -57,21 +58,6 @@ void VerticallyCenterView(NSView *toMove) { [toMove setFrame:viewFrame]; } -// Check that the control |before| is ordered visually before the |after| -// control. -// Also, check that there is space between them. -bool VerifyControlOrderAndSpacing(id before, id after) { - NSRect beforeFrame = [before frame]; - NSRect afterFrame = [after frame]; - NSUInteger spaceBetweenControls = -1; - - spaceBetweenControls = NSMaxX(beforeFrame) - NSMinX(afterFrame); - // RTL case to be used when we have an RTL version of this UI. - // spaceBetweenControls = NSMaxX(afterFrame) - NSMinX(beforeFrame); - - return (spaceBetweenControls >= 0); -} - // Creates a label control in the style we need for the translate infobar's // labels within |bounds|. NSTextField* CreateLabel(NSRect bounds) { @@ -148,6 +134,12 @@ class TranslateNotificationObserverBridge : // Returns the main translate delegate. - (TranslateInfoBarDelegate*)delegate; +// Main function to update the toolbar graphic state and data model after +// the state has changed. +// Controls are moved around as needed and visibility changed to match the +// current state. +- (void)updateState; + // Make the infobar blue. - (void)setInfoBarGradientColor; @@ -548,68 +540,6 @@ class TranslateNotificationObserverBridge : } } -#pragma mark TestingAPI -- (NSMenu*)optionsMenu { - return [optionsPopUp_ menu]; -} - -- (bool)verifyLayout:(TranslateInfoBarDelegate::TranslateState)state { - NSArray* allControls = [NSArray arrayWithObjects:label_, label2_.get(), - label3_.get(), translatingLabel_.get(), fromLanguagePopUp_.get(), - toLanguagePopUp_.get(), optionsPopUp_.get(), closeButton_, nil]; - - // Array of all visible controls ordered from start -> end. - NSArray* visibleControls = nil; - - switch (state) { - case TranslateInfoBarDelegate::kBeforeTranslate: - visibleControls = [NSArray arrayWithObjects:label_, - fromLanguagePopUp_.get(), label2_.get(), optionsPopUp_.get(), - closeButton_, nil]; - break; - case TranslateInfoBarDelegate::kTranslating: - visibleControls = [NSArray arrayWithObjects:label_, - fromLanguagePopUp_.get(), label2_.get(), translatingLabel_.get(), - optionsPopUp_.get(), closeButton_, nil]; - break; - case TranslateInfoBarDelegate::kAfterTranslate: - visibleControls = [NSArray arrayWithObjects:label_, - fromLanguagePopUp_.get(), label2_.get(), toLanguagePopUp_.get(), - optionsPopUp_.get(), closeButton_, nil]; - break; - default: - NOTREACHED() << "Unknown state"; - return false; - } - - // Step 1: Make sure control visibility is what we expect. - for (NSUInteger i = 0; i < [allControls count]; ++i) { - id control = [allControls objectAtIndex:i]; - bool hasSuperView = [control superview]; - bool expectedVisibility = [visibleControls containsObject:control]; - if (expectedVisibility != hasSuperView) { - LOG(ERROR) << - "Control @" << i << (hasSuperView ? " has" : " doesn't have") << - "a superview" << base::SysNSStringToUTF8([control description]); - return false; - } - } - - // Step 2: Check that controls are ordered correctly with no overlap. - id previousControl = nil; - for (NSUInteger i = 0; i < [allControls count]; ++i) { - id control = [allControls objectAtIndex:i]; - if (!VerifyControlOrderAndSpacing(previousControl, control)) { - LOG(ERROR) << - "Control @" << i << " not ordered correctly: " << - base::SysNSStringToUTF8([control description]); - return false; - } - previousControl = control; - } - return true; -} - @end #pragma mark CreateInfoBar implementation. diff --git a/chrome/browser/cocoa/translate_infobar_unittest.mm b/chrome/browser/cocoa/translate_infobar_unittest.mm deleted file mode 100644 index 9a7042a..0000000 --- a/chrome/browser/cocoa/translate_infobar_unittest.mm +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright (c) 2009 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. - -#import <Cocoa/Cocoa.h> -#import "chrome/browser/cocoa/translate_infobar.h" - -#include "base/scoped_nsobject.h" -#include "base/string_util.h" -#include "chrome/app/chrome_dll_resource.h" // For translate menu command ids. -#import "chrome/browser/cocoa/cocoa_test_helper.h" -#include "chrome/browser/translate/translate_infobars_delegates.h" -#include "testing/gmock/include/gmock/gmock.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "testing/platform_test.h" - -namespace { - -// All states the translate toolbar can assume. -TranslateInfoBarDelegate::TranslateState kTranslateToolbarStates[] = { - TranslateInfoBarDelegate::kBeforeTranslate, - TranslateInfoBarDelegate::kTranslating, - TranslateInfoBarDelegate::kAfterTranslate}; - -class MockTranslateInfoBarDelegate : public TranslateInfoBarDelegate { - public: - MockTranslateInfoBarDelegate() { - // Start out in the "Before Translate" state. - UpdateState(kBeforeTranslate); - } - - virtual string16 GetDisplayNameForLocale(const std::string& language_code) { - return ASCIIToUTF16("Foo"); - } - - virtual bool IsLanguageBlacklisted() { - return false; - } - - virtual bool IsSiteBlacklisted() { - return false; - } - - virtual bool ShouldAlwaysTranslate() { - return false; - } - - MOCK_METHOD0(Translate, void()); - MOCK_METHOD0(TranslationDeclined, void()); - MOCK_METHOD0(ToggleLanguageBlacklist, void()); - MOCK_METHOD0(ToggleSiteBlacklist, void()); - MOCK_METHOD0(ToggleAlwaysTranslate, void()); - -}; - -class TranslationBarInfoTest : public CocoaTest { - public: - scoped_ptr<MockTranslateInfoBarDelegate> infobar_delegate; - scoped_nsobject<TranslateInfoBarController> infobar_controller; - - public: - // Each test gets a single Mock translate delegate for the lifetime of - // the test. - virtual void SetUp() { - CocoaTest::SetUp(); - infobar_delegate.reset(new MockTranslateInfoBarDelegate); - } - - void CreateInfoBar() { - CreateInfoBar(TranslateInfoBarDelegate::kBeforeTranslate); - } - - void CreateInfoBar(TranslateInfoBarDelegate::TranslateState initial_state) { - infobar_delegate->UpdateState(initial_state); - [[infobar_controller view] removeFromSuperview]; - infobar_controller.reset( - [[TranslateInfoBarController alloc] - initWithDelegate:infobar_delegate.get()]); - // Need to call this to get the view to load from nib. - [[test_window() contentView] addSubview:[infobar_controller view]]; - } -}; - -// Check that we can instantiate a Translate Infobar correctly. -TEST_F(TranslationBarInfoTest, Instantiate) { - CreateInfoBar(); - ASSERT_TRUE(infobar_controller.get()); -} - -// Check that clicking the Translate button calls Translate(). -TEST_F(TranslationBarInfoTest, TranslateCalledOnButtonPress) { - CreateInfoBar(); - - EXPECT_CALL(*infobar_delegate, Translate()) - .Times(1); - [infobar_controller ok:nil]; -} - -// Check that UI is layed out correctly as we transition synchronously through -// toolbar states. -TEST_F(TranslationBarInfoTest, StateTransitions) { - EXPECT_CALL(*infobar_delegate, Translate()) - .Times(0); - CreateInfoBar(); - - for (size_t i = 0; i < arraysize(kTranslateToolbarStates); ++i) { - infobar_delegate->UpdateState(kTranslateToolbarStates[i]); - - // First time around, the toolbar should already be layed out. - if (i != 0) - [infobar_controller updateState]; - - bool result = - [infobar_controller verifyLayout:kTranslateToolbarStates[i]]; - EXPECT_TRUE(result) << "Layout wrong, for state #" << i; - } -} - -// Check that items in the options menu are hooked up correctly. -TEST_F(TranslationBarInfoTest, OptionsMenuItemsHookedUp) { - EXPECT_CALL(*infobar_delegate, Translate()) - .Times(0); - CreateInfoBar(); - - NSMenu* optionsMenu = [infobar_controller optionsMenu]; - NSArray* optionsMenuItems = [optionsMenu itemArray]; - - EXPECT_EQ([optionsMenuItems count], 4U); - - // First item is the options menu button's title, so there's no need to test - // that the target on that is setup correctly. - for (NSUInteger i = 1; i < [optionsMenuItems count]; ++i) { - NSMenuItem* item = [optionsMenuItems objectAtIndex:i]; - EXPECT_EQ([item target], infobar_controller.get()); - } - NSMenuItem* neverTranslateLanguateItem = [optionsMenuItems objectAtIndex:1]; - NSMenuItem* neverTranslateSiteItem = [optionsMenuItems objectAtIndex:2]; - NSMenuItem* aboutTranslateItem = [optionsMenuItems objectAtIndex:3]; - - { - EXPECT_CALL(*infobar_delegate, ToggleLanguageBlacklist()) - .Times(1); - [infobar_controller menuItemSelected:neverTranslateLanguateItem]; - } - - { - EXPECT_CALL(*infobar_delegate, ToggleSiteBlacklist()) - .Times(1); - [infobar_controller menuItemSelected:neverTranslateSiteItem]; - } - - { - // Can't mock this effectively, so just check that the tag is set correctly. - EXPECT_EQ([aboutTranslateItem tag], IDC_TRANSLATE_OPTIONS_ABOUT); - } -} - -// Check that selecting a new item from the "Source Language" popup in "before -// translate" mode doesn't trigger a translation or change state. -// http://crbug.com/36666 -TEST_F(TranslationBarInfoTest, Bug36666) { - EXPECT_CALL(*infobar_delegate, Translate()) - .Times(0); - - CreateInfoBar(); - int arbitrary_index = 2; - [infobar_controller sourceLanguageModified:arbitrary_index]; - EXPECT_EQ(infobar_delegate->state(), - TranslateInfoBarDelegate::kBeforeTranslate); -} - -// Check that the infobar lays itself out correctly when instantiated in -// each of the states. -// http://crbug.com/36895 -TEST_F(TranslationBarInfoTest, Bug36895) { - EXPECT_CALL(*infobar_delegate, Translate()) - .Times(0); - - for (size_t i = 0; i < arraysize(kTranslateToolbarStates); ++i) { - CreateInfoBar(kTranslateToolbarStates[i]); - EXPECT_TRUE( - [infobar_controller verifyLayout:kTranslateToolbarStates[i]]) << - "Layout wrong, for state #" << i; - } -} - -} // namespace diff --git a/chrome/browser/gtk/translate_infobars.cc b/chrome/browser/gtk/translate_infobars.cc index 4cffe6c0..5f85985 100644 --- a/chrome/browser/gtk/translate_infobars.cc +++ b/chrome/browser/gtk/translate_infobars.cc @@ -35,13 +35,13 @@ void ReorderWidgetsTo(GtkWidget* box, GtkWidget** widgets) { // Creates a combobox set up to display text from a list of language codes // (translating the codes into the display string). GtkWidget* BuildLanguageComboboxFrom( - TranslateInfoBarDelegate* delegate, const std::vector<std::string>& languages) { GtkListStore* model = gtk_list_store_new(1, G_TYPE_STRING); for (std::vector<std::string>::const_iterator iter = languages.begin(); iter != languages.end(); ++iter) { GtkTreeIter tree_iter; - std::string name = UTF16ToUTF8(delegate->GetDisplayNameForLocale(*iter)); + std::string name = UTF16ToUTF8( + TranslateInfoBarDelegate::GetDisplayNameForLocale(*iter)); gtk_list_store_append(model, &tree_iter); gtk_list_store_set(model, &tree_iter, 0, name.c_str(), -1); } @@ -202,8 +202,7 @@ void TranslateInfoBar::BuildWidgets() { std::vector<std::string> orig_languages; GetDelegate()->GetAvailableOriginalLanguages(&orig_languages); - original_language_combobox_ = BuildLanguageComboboxFrom(GetDelegate(), - orig_languages); + original_language_combobox_ = BuildLanguageComboboxFrom(orig_languages); g_signal_connect(original_language_combobox_, "changed", G_CALLBACK(&OnOriginalModifiedThunk), this); original_language_combobox_vbox_ = gtk_util::CenterWidgetInHBox( @@ -211,8 +210,7 @@ void TranslateInfoBar::BuildWidgets() { std::vector<std::string> target_languages; GetDelegate()->GetAvailableTargetLanguages(&target_languages); - target_language_combobox_ = BuildLanguageComboboxFrom(GetDelegate(), - target_languages); + target_language_combobox_ = BuildLanguageComboboxFrom(target_languages); g_signal_connect(target_language_combobox_, "changed", G_CALLBACK(&OnTargetModifiedThunk), this); target_language_combobox_vbox_ = gtk_util::CenterWidgetInHBox( diff --git a/chrome/browser/translate/languages_menu_model.cc b/chrome/browser/translate/languages_menu_model.cc index 5231ce0..ba749df 100644 --- a/chrome/browser/translate/languages_menu_model.cc +++ b/chrome/browser/translate/languages_menu_model.cc @@ -24,7 +24,7 @@ LanguagesMenuModel::LanguagesMenuModel( } std::vector<std::string>::const_iterator iter = languages.begin(); for (int i = base_command_id; iter != languages.end(); ++i, ++iter) { - AddItem(i, translate_delegate->GetDisplayNameForLocale(*iter)); + AddItem(i, TranslateInfoBarDelegate::GetDisplayNameForLocale(*iter)); } } diff --git a/chrome/browser/translate/options_menu_model.cc b/chrome/browser/translate/options_menu_model.cc index 4364e07..376e2cb 100644 --- a/chrome/browser/translate/options_menu_model.cc +++ b/chrome/browser/translate/options_menu_model.cc @@ -13,7 +13,7 @@ OptionsMenuModel::OptionsMenuModel(menus::SimpleMenuModel::Delegate* delegate, TranslateInfoBarDelegate* translate_delegate) : menus::SimpleMenuModel(delegate) { string16 original_language = - translate_delegate->GetDisplayNameForLocale( + TranslateInfoBarDelegate::GetDisplayNameForLocale( translate_delegate->original_lang_code()); TranslateInfoBarDelegate::TranslateState state = translate_delegate->state(); if (state == TranslateInfoBarDelegate::kBeforeTranslate) { @@ -26,7 +26,7 @@ OptionsMenuModel::OptionsMenuModel(menus::SimpleMenuModel::Delegate* delegate, IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_SITE)); } else if (state == TranslateInfoBarDelegate::kAfterTranslate) { string16 target_language = - translate_delegate->GetDisplayNameForLocale( + TranslateInfoBarDelegate::GetDisplayNameForLocale( translate_delegate->target_lang_code()); AddCheckItem(IDC_TRANSLATE_OPTIONS_ALWAYS, l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_OPTIONS_ALWAYS, diff --git a/chrome/browser/translate/translate_infobars_delegates.cc b/chrome/browser/translate/translate_infobars_delegates.cc index 062eba8..948e337 100644 --- a/chrome/browser/translate/translate_infobars_delegates.cc +++ b/chrome/browser/translate/translate_infobars_delegates.cc @@ -41,12 +41,6 @@ void TranslateInfoBarDelegate::InfoBarClosed() { // TranslateInfoBarDelegate: public: ------------------------------------------- -string16 TranslateInfoBarDelegate::GetDisplayNameForLocale( - const std::string& language_code) { - return l10n_util::GetDisplayNameForLocale( - language_code, g_browser_process->GetApplicationLocale(), true); -} - void TranslateInfoBarDelegate::UpdateState(TranslateState new_state) { if (state_ != new_state) state_ = new_state; @@ -90,7 +84,7 @@ void TranslateInfoBarDelegate::TranslationDeclined() { bool TranslateInfoBarDelegate::IsLanguageBlacklisted() { if (state_ == kBeforeTranslate) { never_translate_language_ = - prefs_->IsLanguageBlacklisted(original_lang_code()); + prefs_.IsLanguageBlacklisted(original_lang_code()); return never_translate_language_; } NOTREACHED() << "Invalid mehod called for translate state"; @@ -99,7 +93,7 @@ bool TranslateInfoBarDelegate::IsLanguageBlacklisted() { bool TranslateInfoBarDelegate::IsSiteBlacklisted() { if (state_ == kBeforeTranslate) { - never_translate_site_ = prefs_->IsSiteBlacklisted(site_); + never_translate_site_ = prefs_.IsSiteBlacklisted(site_); return never_translate_site_; } NOTREACHED() << "Invalid mehod called for translate state"; @@ -108,7 +102,7 @@ bool TranslateInfoBarDelegate::IsSiteBlacklisted() { bool TranslateInfoBarDelegate::ShouldAlwaysTranslate() { if (state_ == kAfterTranslate) { - always_translate_ = prefs_->IsLanguagePairWhitelisted(original_lang_code(), + always_translate_ = prefs_.IsLanguagePairWhitelisted(original_lang_code(), target_lang_code()); return always_translate_; } @@ -120,9 +114,9 @@ void TranslateInfoBarDelegate::ToggleLanguageBlacklist() { if (state_ == kBeforeTranslate) { never_translate_language_ = !never_translate_language_; if (never_translate_language_) - prefs_->BlacklistLanguage(original_lang_code()); + prefs_.BlacklistLanguage(original_lang_code()); else - prefs_->RemoveLanguageFromBlacklist(original_lang_code()); + prefs_.RemoveLanguageFromBlacklist(original_lang_code()); } else { NOTREACHED() << "Invalid method called for translate state"; } @@ -132,9 +126,9 @@ void TranslateInfoBarDelegate::ToggleSiteBlacklist() { if (state_ == kBeforeTranslate) { never_translate_site_ = !never_translate_site_; if (never_translate_site_) - prefs_->BlacklistSite(site_); + prefs_.BlacklistSite(site_); else - prefs_->RemoveSiteFromBlacklist(site_); + prefs_.RemoveSiteFromBlacklist(site_); } else { NOTREACHED() << "Invalid mehod called for translate state"; } @@ -144,9 +138,9 @@ void TranslateInfoBarDelegate::ToggleAlwaysTranslate() { if (state_ == kAfterTranslate) { always_translate_ = !always_translate_; if (always_translate_) - prefs_->WhitelistLanguagePair(original_lang_code(), target_lang_code()); + prefs_.WhitelistLanguagePair(original_lang_code(), target_lang_code()); else - prefs_->RemoveLanguagePairFromWhitelist(original_lang_code(), + prefs_.RemoveLanguagePairFromWhitelist(original_lang_code(), target_lang_code()); } else { NOTREACHED() << "Invalid mehod called for translate state"; @@ -215,6 +209,12 @@ TranslateInfoBarDelegate* TranslateInfoBarDelegate::Create( original_lang_index, target_lang_index); } +string16 TranslateInfoBarDelegate::GetDisplayNameForLocale( + const std::string& language_code) { + return l10n_util::GetDisplayNameForLocale( + language_code, g_browser_process->GetApplicationLocale(), true); +} + // TranslateInfoBarDelegate: private: ------------------------------------------ TranslateInfoBarDelegate::TranslateInfoBarDelegate(TabContents* tab_contents, @@ -222,7 +222,7 @@ TranslateInfoBarDelegate::TranslateInfoBarDelegate(TabContents* tab_contents, int original_lang_index, int target_lang_index) : InfoBarDelegate(tab_contents), tab_contents_(tab_contents), - prefs_(new TranslatePrefs(user_prefs)), + prefs_(user_prefs), state_(state), site_(url.HostNoBrackets()), original_lang_index_(original_lang_index), diff --git a/chrome/browser/translate/translate_infobars_delegates.h b/chrome/browser/translate/translate_infobars_delegates.h index 02d905d..ce8cede 100644 --- a/chrome/browser/translate/translate_infobars_delegates.h +++ b/chrome/browser/translate/translate_infobars_delegates.h @@ -35,14 +35,14 @@ class TranslateInfoBarDelegate : public InfoBarDelegate { void GetAvailableTargetLanguages(std::vector<std::string>* languages); void ModifyOriginalLanguage(int lang_index); void ModifyTargetLanguage(int lang_index); - virtual void Translate(); - virtual void TranslationDeclined(); - virtual bool IsLanguageBlacklisted(); - virtual void ToggleLanguageBlacklist(); - virtual bool IsSiteBlacklisted(); - virtual void ToggleSiteBlacklist(); - virtual bool ShouldAlwaysTranslate(); - virtual void ToggleAlwaysTranslate(); + void Translate(); + void TranslationDeclined(); + bool IsLanguageBlacklisted(); + void ToggleLanguageBlacklist(); + bool IsSiteBlacklisted(); + void ToggleSiteBlacklist(); + bool ShouldAlwaysTranslate(); + void ToggleAlwaysTranslate(); int original_lang_index() const { return original_lang_index_; @@ -94,15 +94,11 @@ class TranslateInfoBarDelegate : public InfoBarDelegate { virtual void InfoBarClosed(); // Returns the printable version of the language code |language_code|. - virtual string16 GetDisplayNameForLocale(const std::string& language_code); + static string16 GetDisplayNameForLocale(const std::string& language_code); // Overridden from InfoBarDelegate: virtual InfoBar* CreateInfoBar(); - protected: - // For testing. - TranslateInfoBarDelegate() : InfoBarDelegate(NULL) {} - private: TranslateInfoBarDelegate(TabContents* contents, PrefService* user_prefs, @@ -112,7 +108,7 @@ class TranslateInfoBarDelegate : public InfoBarDelegate { int target_language_index); TabContents* tab_contents_; // Weak. - scoped_ptr<TranslatePrefs> prefs_; + TranslatePrefs prefs_; TranslateState state_; std::string site_; int original_lang_index_; diff --git a/chrome/browser/views/infobars/translate_infobars.cc b/chrome/browser/views/infobars/translate_infobars.cc index 89a8325..1caedec 100644 --- a/chrome/browser/views/infobars/translate_infobars.cc +++ b/chrome/browser/views/infobars/translate_infobars.cc @@ -239,7 +239,7 @@ TranslateInfoBar::TranslateInfoBar(TranslateInfoBarDelegate* delegate) AddChildView(icon_); // Create original language menu button. - string16 language_name = delegate->GetDisplayNameForLocale( + string16 language_name = TranslateInfoBarDelegate::GetDisplayNameForLocale( GetDelegate()->original_lang_code()); original_language_menu_button_ = CreateMenuButton(kMenuIDOriginalLanguage, UTF16ToWideHack(language_name)); @@ -269,7 +269,7 @@ void TranslateInfoBar::UpdateState( CreateLabels(); if (!target_language_menu_button_) { string16 language_name = - GetDelegate()->GetDisplayNameForLocale( + TranslateInfoBarDelegate::GetDisplayNameForLocale( GetDelegate()->target_lang_code()); target_language_menu_button_ = CreateMenuButton(kMenuIDTargetLanguage, UTF16ToWideHack(language_name)); @@ -708,7 +708,7 @@ void TranslateInfoBar::OnLanguageModified(views::MenuButton* menu_button, GetDelegate()->ModifyTargetLanguage(new_language_index); } - string16 new_language = GetDelegate()->GetDisplayNameForLocale( + string16 new_language = TranslateInfoBarDelegate::GetDisplayNameForLocale( GetDelegate()->GetLocaleFromIndex(new_language_index)); menu_button->SetText(UTF16ToWideHack(new_language)); menu_button->ClearMaxTextSize(); diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index 2721f70..818cc2b 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -706,7 +706,6 @@ 'browser/cocoa/test_event_utils.h', 'browser/cocoa/test_event_utils.mm', 'browser/cocoa/throbber_view_unittest.mm', - 'browser/cocoa/translate_infobar_unittest.mm', 'browser/cocoa/toolbar_button_cell_unittest.mm', 'browser/cocoa/toolbar_controller_unittest.mm', 'browser/cocoa/toolbar_view_unittest.mm', |