| Index: chrome/browser/ui/browser_command_controller_unittest.cc
|
| diff --git a/chrome/browser/ui/browser_command_controller_unittest.cc b/chrome/browser/ui/browser_command_controller_unittest.cc
|
| index 8fa33d207c1d87fb53c6cd94973f1dc894f0b413..2b632784b7dbdd9f622eb6f8ec92ed3ec8e99842 100644
|
| --- a/chrome/browser/ui/browser_command_controller_unittest.cc
|
| +++ b/chrome/browser/ui/browser_command_controller_unittest.cc
|
| @@ -252,7 +252,9 @@ class FullscreenTestBrowserWindow : public TestBrowserWindow,
|
| public:
|
| FullscreenTestBrowserWindow(
|
| BrowserCommandControllerFullscreenTest* test_browser)
|
| - : fullscreen_(false), test_browser_(test_browser) {}
|
| + : fullscreen_(false),
|
| + toolbar_visible_(false),
|
| + test_browser_(test_browser) {}
|
|
|
| ~FullscreenTestBrowserWindow() override {}
|
|
|
| @@ -264,6 +266,7 @@ class FullscreenTestBrowserWindow : public TestBrowserWindow,
|
| fullscreen_ = true;
|
| }
|
| void ExitFullscreen() override { fullscreen_ = false; }
|
| + bool IsToolbarVisible() const override { return toolbar_visible_; }
|
|
|
| ExclusiveAccessContext* GetExclusiveAccessContext() override { return this; }
|
|
|
| @@ -277,8 +280,12 @@ class FullscreenTestBrowserWindow : public TestBrowserWindow,
|
| ExclusiveAccessBubbleType bubble_type) override {}
|
| void OnExclusiveAccessUserInput() override {}
|
|
|
| + // Setters
|
| + void ShowToolbar() { toolbar_visible_ = true; }
|
| +
|
| private:
|
| bool fullscreen_;
|
| + bool toolbar_visible_;
|
| BrowserCommandControllerFullscreenTest* test_browser_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(FullscreenTestBrowserWindow);
|
| @@ -361,6 +368,149 @@ TEST_F(BrowserCommandControllerFullscreenTest,
|
| EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU));
|
| EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN));
|
|
|
| + // In fullscreen, only the exit fullscreen commands are reserved. All other
|
| + // shortcuts should be delivered to the web page. See https://goo.gl/4tJ32G.
|
| + EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_CLOSE_TAB,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_CLOSE_WINDOW,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_NEW_INCOGNITO_WINDOW,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_NEW_TAB,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_NEW_WINDOW,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_SELECT_NEXT_TAB,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_FALSE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_SELECT_PREVIOUS_TAB,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_EXIT,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| +
|
| + // Exit fullscreen.
|
| + chrome::ToggleFullscreenMode(browser());
|
| + ASSERT_FALSE(browser()->window()->IsFullscreen());
|
| + browser()->command_controller()->FullscreenStateChanged();
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU));
|
| +#if defined(GOOGLE_CHROME_BUILD)
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK));
|
| +#endif
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_ABOUT));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN));
|
| +
|
| + EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_CLOSE_TAB,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_CLOSE_WINDOW,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_NEW_INCOGNITO_WINDOW,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_NEW_TAB,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_NEW_WINDOW,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_SELECT_NEXT_TAB,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_SELECT_PREVIOUS_TAB,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| + EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| + IDC_EXIT,
|
| + content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| +
|
| + // Guest Profiles disallow some options.
|
| + TestingProfile* testprofile = browser()->profile()->AsTestingProfile();
|
| + EXPECT_TRUE(testprofile);
|
| + testprofile->SetGuestSession(true);
|
| +
|
| + browser()->command_controller()->FullscreenStateChanged();
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS));
|
| +}
|
| +
|
| +#if defined(OS_MACOSX)
|
| +TEST_F(BrowserCommandControllerFullscreenTest,
|
| + TabShortcutsShouldBePreservedOnMacOSX) {
|
| + static_cast<FullscreenTestBrowserWindow*>(window())->ShowToolbar();
|
| +
|
| + // Defaults for a tabbed browser.
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU));
|
| +#if defined(GOOGLE_CHROME_BUILD)
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK));
|
| +#endif
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_ABOUT));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN));
|
| +
|
| + // Simulate going fullscreen.
|
| + chrome::ToggleFullscreenMode(browser());
|
| + ASSERT_TRUE(browser()->window()->IsFullscreen());
|
| + browser()->command_controller()->FullscreenStateChanged();
|
| +
|
| + // Most commands are disabled in fullscreen.
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_OPEN_CURRENT_URL));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_AS_TAB));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_TOOLBAR));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_LOCATION));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_SEARCH));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_MENU_BAR));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_NEXT_PANE));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_PREVIOUS_PANE));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FOCUS_BOOKMARKS));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_DEVELOPER_MENU));
|
| +#if defined(GOOGLE_CHROME_BUILD)
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_FEEDBACK));
|
| +#endif
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_EDIT_SEARCH_ENGINES));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_VIEW_PASSWORDS));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_ABOUT));
|
| + EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_SHOW_APP_MENU));
|
| + EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_FULLSCREEN));
|
| +
|
| + // In fullscreen, once the toolbar is visible, browser shortcuts should still
|
| + // be reserved. See http://crbug.com/702251.
|
| EXPECT_TRUE(browser()->command_controller()->IsReservedCommandOrKey(
|
| IDC_CLOSE_TAB,
|
| content::NativeWebKeyboardEvent(blink::WebInputEvent::TypeFirst, 0, 0)));
|
| @@ -445,6 +595,7 @@ TEST_F(BrowserCommandControllerFullscreenTest,
|
| EXPECT_TRUE(chrome::IsCommandEnabled(browser(), IDC_OPTIONS));
|
| EXPECT_FALSE(chrome::IsCommandEnabled(browser(), IDC_IMPORT_SETTINGS));
|
| }
|
| +#endif
|
|
|
| // Ensure that the logic for enabling IDC_OPTIONS is consistent, regardless of
|
| // the order of entering fullscreen and forced incognito modes. See
|
|
|