Index: chrome/browser/ui/browser_command_controller.cc |
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc |
index 125126de6c63eee0ace3dd5f09879de389270d92..d76b2b9b83cbb3f61e00fb95cd19e8de378a54a6 100644 |
--- a/chrome/browser/ui/browser_command_controller.cc |
+++ b/chrome/browser/ui/browser_command_controller.cc |
@@ -187,8 +187,27 @@ bool BrowserCommandController::IsReservedCommandOrKey( |
} |
#endif |
- if (window()->IsFullscreen() && command_id == IDC_FULLSCREEN) |
- return true; |
+ if (window()->IsFullscreen()) { |
+ // In fullscreen, all commands except for IDC_FULLSCREEN and IDC_EXIT should |
+ // be delivered to the web page. The intent to implement and ship can be |
+ // found in http://crbug.com/680809. |
+ const bool is_exit_fullscreen = |
+ (command_id == IDC_EXIT || command_id == IDC_FULLSCREEN); |
+#if defined(OS_MACOSX) |
+ // This behavior is different on Mac OS, which has a unique user-initiated |
+ // full-screen mode. According to the discussion in http://crbug.com/702251, |
+ // the commands should be reserved for browser-side handling if the browser |
+ // window's toolbar is visible. |
+ if (window()->IsToolbarShowing()) { |
+ if (command_id == IDC_FULLSCREEN) |
+ return true; |
+ } else { |
+ return is_exit_fullscreen; |
+ } |
+#else |
+ return is_exit_fullscreen; |
+#endif |
+ } |
#if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
// If this key was registered by the user as a content editing hotkey, then |