diff options
author | dbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-09 01:26:24 +0000 |
---|---|---|
committer | dbeam@chromium.org <dbeam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-09 01:26:24 +0000 |
commit | 9d64cb3cb87eee2483eab03fe45a01fe04139f38 (patch) | |
tree | 563780f6a850e48c921a6d636c8ebcbcb61aa8eb /chrome/browser/ui/autofill | |
parent | 558878cc8ce3b66dce25a0b576893432ff95095a (diff) | |
download | chromium_src-9d64cb3cb87eee2483eab03fe45a01fe04139f38.zip chromium_src-9d64cb3cb87eee2483eab03fe45a01fe04139f38.tar.gz chromium_src-9d64cb3cb87eee2483eab03fe45a01fe04139f38.tar.bz2 |
Only open new tabs (e.g. as a result of clicking "Manage my X...") to the
immediate right of the dialog's tab.
R=estade@chromium.org
BUG=315970
TEST=browser_tests, manual
Review URL: https://codereview.chromium.org/65303002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234066 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/autofill')
-rw-r--r-- | chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc | 46 | ||||
-rw-r--r-- | chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc | 2 |
2 files changed, 47 insertions, 1 deletions
diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc index 50d91f4..47e5f05 100644 --- a/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc +++ b/chrome/browser/ui/autofill/autofill_dialog_controller_browsertest.cc @@ -20,6 +20,7 @@ #include "chrome/browser/ui/autofill/test_generated_credit_card_bubble_controller.h" #include "chrome/browser/ui/autofill/testable_autofill_dialog_view.h" #include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_tabstrip.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" @@ -1075,4 +1076,49 @@ IN_PROC_BROWSER_TEST_F(AutofillDialogControllerTest, AddNewClearsComboboxes) { EXPECT_NE(cc_exp_month_text, view->GetTextContentsOfInput(cc_exp_month)); } +IN_PROC_BROWSER_TEST_F(AutofillDialogControllerTest, TabOpensToJustRight) { + ASSERT_TRUE(browser()->is_type_tabbed()); + + // Tabs should currently be: / rAc() \. + content::WebContents* dialog_invoker = controller()->GetWebContents(); + EXPECT_EQ(dialog_invoker, GetActiveWebContents()); + + TabStripModel* tab_strip = browser()->tab_strip_model(); + ASSERT_EQ(1, tab_strip->count()); + EXPECT_EQ(0, tab_strip->GetIndexOfWebContents(dialog_invoker)); + + // Open a tab to about:blank in the background at the end of the tab strip. + chrome::AddBlankTabAt(browser(), -1, false); + // Tabs should now be: / rAc() \/ blank \. + EXPECT_EQ(2, tab_strip->count()); + EXPECT_EQ(0, tab_strip->active_index()); + EXPECT_EQ(dialog_invoker, GetActiveWebContents()); + + content::WebContents* blank_tab = tab_strip->GetWebContentsAt(1); + + // Simulate clicking "Manage X...". + controller()->MenuModelForSection(SECTION_SHIPPING)->ActivatedAt(2); + // Tab should now be: / rAc() \/ manage 1 \/ blank \. + EXPECT_EQ(3, tab_strip->count()); + int dialog_index = tab_strip->GetIndexOfWebContents(dialog_invoker); + EXPECT_EQ(0, dialog_index); + EXPECT_EQ(1, tab_strip->active_index()); + EXPECT_EQ(2, tab_strip->GetIndexOfWebContents(blank_tab)); + + content::WebContents* first_manage_tab = tab_strip->GetWebContentsAt(1); + + // Re-activate the dialog's tab (like a user would have to). + tab_strip->ActivateTabAt(dialog_index, true); + EXPECT_EQ(dialog_invoker, GetActiveWebContents()); + + // Simulate clicking "Manage X...". + controller()->MenuModelForSection(SECTION_SHIPPING)->ActivatedAt(2); + // Tabs should now be: / rAc() \/ manage 2 \/ manage 1 \/ blank \. + EXPECT_EQ(4, tab_strip->count()); + EXPECT_EQ(0, tab_strip->GetIndexOfWebContents(dialog_invoker)); + EXPECT_EQ(1, tab_strip->active_index()); + EXPECT_EQ(2, tab_strip->GetIndexOfWebContents(first_manage_tab)); + EXPECT_EQ(3, tab_strip->GetIndexOfWebContents(blank_tab)); +} + } // namespace autofill diff --git a/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc b/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc index a0571b3..2f8b256 100644 --- a/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc +++ b/chrome/browser/ui/autofill/autofill_dialog_controller_impl.cc @@ -2658,7 +2658,7 @@ void AutofillDialogControllerImpl::OpenTabWithUrl(const GURL& url) { chrome::NavigateParams params( chrome::FindBrowserWithWebContents(web_contents()), url, - content::PAGE_TRANSITION_AUTO_BOOKMARK); + content::PAGE_TRANSITION_LINK); params.disposition = NEW_FOREGROUND_TAB; chrome::Navigate(¶ms); } |