Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(284)

Unified Diff: chrome/browser/browser_focus_uitest.cc

Issue 224023: Don't send tab switching/killing/creating keyboard accelerators to pages. Th... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: call Browser:IsReservedAccelerator from tab_contents_view.cc instead of each platform file Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/browser_focus_uitest.cc
===================================================================
--- chrome/browser/browser_focus_uitest.cc (revision 27783)
+++ chrome/browser/browser_focus_uitest.cc (working copy)
@@ -15,8 +15,13 @@
#include "chrome/browser/tab_contents/tab_contents_view.h"
#include "chrome/browser/view_ids.h"
#include "chrome/common/chrome_paths.h"
+#include "chrome/test/automation/browser_proxy.h"
+#include "chrome/test/automation/tab_proxy.h"
+#include "chrome/test/automation/window_proxy.h"
#include "chrome/test/in_process_browser_test.h"
+#include "chrome/test/ui/ui_test.h"
#include "chrome/test/ui_test_utils.h"
+#include "views/event.h"
#include "views/focus/focus_manager.h"
#include "views/view.h"
#include "views/window/window.h"
@@ -737,3 +742,38 @@
browser()->ShowDownloadsTab();
CheckViewHasFocus(VIEW_ID_TAB_CONTAINER_FOCUS_VIEW);
}
+
+#if !defined(OS_MACOSX) // see BrowserWindowCocoa::GetCommandId
+// Tests that tab related keyboard accelerators are reserved by the app.
+
+class BrowserInteractiveTest : public UITest {
+};
+
+TEST_F(BrowserInteractiveTest, ReserveKeyboardAccelerators) {
+ const std::string kBadPage =
+ "<html><script>"
+ "document.onkeydown = function() {"
+ " event.preventDefault();"
+ " return false;"
+ "}"
+ "</script></html>";
+ scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
+ browser->AppendTab(GURL("data:text/html," + kBadPage));
+ int tab_count = 0;
+ ASSERT_TRUE(browser->GetTabCount(&tab_count));
+ ASSERT_EQ(tab_count, 2);
+
+ int active_tab = 0;
+ ASSERT_TRUE(browser->GetActiveTabIndex(&active_tab));
+ ASSERT_EQ(active_tab, 1);
+
+ scoped_refptr<WindowProxy> window(browser->GetWindow());
+ ASSERT_TRUE(window->SimulateOSKeyPress(
+ base::VKEY_TAB, views::Event::EF_CONTROL_DOWN));
+ ASSERT_TRUE(browser->WaitForTabToBecomeActive(0, action_max_timeout_ms()));
+
+ ASSERT_TRUE(window->SimulateOSKeyPress(
+ base::VKEY_F4, views::Event::EF_CONTROL_DOWN));
+ ASSERT_TRUE(browser->WaitForTabCountToBecome(1, action_max_timeout_ms()));
+}
+#endif

Powered by Google App Engine
This is Rietveld 408576698