Index: chrome/browser/browser_keyevents_browsertest.cc |
diff --git a/chrome/browser/browser_keyevents_browsertest.cc b/chrome/browser/browser_keyevents_browsertest.cc |
index 021104bf071c6f72fc3b840f17d9c9d76bbe5919..5e3fb4706a70ed40702b9971f9f771be400c0651 100644 |
--- a/chrome/browser/browser_keyevents_browsertest.cc |
+++ b/chrome/browser/browser_keyevents_browsertest.cc |
@@ -636,14 +636,7 @@ IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, AccessKeys) { |
#endif |
} |
-#if defined(OS_MACOSX) |
-// See http://crbug.com/50447 for details. |
-#define MAYBE_ReservedAccelerators FLAKY_ReservedAccelerators |
-#else |
-#define MAYBE_ReservedAccelerators ReservedAccelerators |
-#endif |
- |
-IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { |
+IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, ReservedAccelerators) { |
ASSERT_TRUE(test_server()->Start()); |
ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); |
@@ -653,6 +646,8 @@ IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { |
ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
+ ASSERT_EQ(1, browser()->tab_count()); |
+ |
#if defined(OS_WIN) || defined(TOOLKIT_VIEWS) |
static const KeyEventTestData kTestCtrlT = { |
app::VKEY_T, true, false, false, false, |
@@ -660,8 +655,7 @@ IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { |
{ "D 17 0 true false false false" } |
}; |
- ASSERT_EQ(1, browser()->tab_count()); |
- // Press Ctrl+T, which will open a new tab. |
+ // Press Ctrl+T, which will open a new tab. It cannot be suppressed. |
EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlT)); |
EXPECT_EQ(2, browser()->tab_count()); |
browser()->SelectNumberedTab(0); |
@@ -671,6 +665,8 @@ IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { |
ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length)); |
EXPECT_EQ(1, result_length); |
+ ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
+ |
// Reserved accelerators can't be suppressed. |
ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); |
// Press Ctrl+W, which will close the tab. |
@@ -684,19 +680,35 @@ IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { |
{ "D 91 0 false false false true" } |
}; |
- ASSERT_EQ(1, browser()->tab_count()); |
- // Press Cmd+T, which will open a new tab. |
+ ui_test_utils::WindowedNotificationObserver wait_for_new_tab( |
+ NotificationType::TAB_PARENTED, |
+ NotificationService::AllSources()); |
+ |
+ // Press Cmd+T, which will open a new tab. It cannot be suppressed. |
EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCmdT)); |
- EXPECT_EQ(2, browser()->tab_count()); |
- browser()->SelectNumberedTab(0); |
- ASSERT_EQ(0, browser()->selected_index()); |
+ |
+ wait_for_new_tab.WaitFor(Source<NavigationController>( |
+ &browser()->GetTabContentsAt(1)->controller())); |
int result_length; |
ASSERT_NO_FATAL_FAILURE(GetResultLength(0, &result_length)); |
EXPECT_EQ(1, result_length); |
+ EXPECT_EQ(2, browser()->tab_count()); |
+ ASSERT_EQ(1, browser()->selected_index()); |
+ |
+ // Because of issue http://crbug.com/65375, switching back to the first tab |
+ // may cause the focus to be grabbed by omnibox. So instead, we load our |
+ // testing page in the newly created tab and try Cmd-W here. |
+ ui_test_utils::NavigateToURL(browser(), url); |
+ |
+ // Make sure the focus is in the testing page. |
+ ASSERT_NO_FATAL_FAILURE(ClickOnView(VIEW_ID_TAB_CONTAINER)); |
+ ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
+ |
// Reserved accelerators can't be suppressed. |
- ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(0, true)); |
+ ASSERT_NO_FATAL_FAILURE(SuppressAllEvents(1, true)); |
+ |
// Press Cmd+W, which will close the tab. |
ASSERT_TRUE(ui_test_utils::SendKeyPressSync( |
browser(), app::VKEY_W, false, false, false, true)); |
@@ -740,8 +752,6 @@ IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { |
"U 17 0 true false false false" } |
}; |
- ASSERT_EQ(1, browser()->tab_count()); |
- |
// Ctrl+T should be blockable. |
EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTBlocked)); |
ASSERT_EQ(1, browser()->tab_count()); |
@@ -751,6 +761,7 @@ IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { |
ASSERT_EQ(1, browser()->selected_index()); |
browser()->SelectNumberedTab(0); |
ASSERT_EQ(0, browser()->selected_index()); |
+ ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
// Ctrl+PageDown and Ctrl+Tab switches to the next tab. |
EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlPageDown)); |
@@ -758,12 +769,16 @@ IN_PROC_BROWSER_TEST_F(BrowserKeyEventsTest, MAYBE_ReservedAccelerators) { |
browser()->SelectNumberedTab(0); |
ASSERT_EQ(0, browser()->selected_index()); |
+ ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
+ |
EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlTab)); |
ASSERT_EQ(1, browser()->selected_index()); |
// Ctrl+W should be blockable. |
browser()->SelectNumberedTab(0); |
ASSERT_EQ(0, browser()->selected_index()); |
+ ASSERT_TRUE(IsViewFocused(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW)); |
+ |
EXPECT_NO_FATAL_FAILURE(TestKeyEvent(0, kTestCtrlWBlocked)); |
ASSERT_EQ(2, browser()->tab_count()); |