[Locked Fullscreen] Disable additional keyboard shortcuts in locked fullscreen

The find bar and zoom commands in locked fullscreen mode expose an escape hatch
that can be used to exit the mode so we're disabling them.

Bug: 904637
Change-Id: I367635fde3bbcc5aa74aecc9cc25d5d39ca041c7
Reviewed-on: https://chromium-review.googlesource.com/c/1375733
Commit-Queue: Ivan Ĺ andrk <isandrk@chromium.org>
Reviewed-by: Karan Bhatia <karandeepb@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616662}
diff --git a/chrome/browser/extensions/window_open_apitest.cc b/chrome/browser/extensions/window_open_apitest.cc
index 1a4a8bc1..fbb1df01 100644
--- a/chrome/browser/extensions/window_open_apitest.cc
+++ b/chrome/browser/extensions/window_open_apitest.cc
@@ -461,13 +461,17 @@
                                       "updateWindowToLockedFullscreen"))
       << message_;
 
-  // IDC_EXIT is not enabled in locked fullscreen.
+  // IDC_EXIT should always be disabled in locked fullscreen.
   EXPECT_FALSE(browser()->command_controller()->IsCommandEnabled(IDC_EXIT));
 
+  // Some other disabled commands.
+  EXPECT_FALSE(browser()->command_controller()->IsCommandEnabled(IDC_FIND));
+  EXPECT_FALSE(
+      browser()->command_controller()->IsCommandEnabled(IDC_ZOOM_PLUS));
+
   // Verify some whitelisted commands.
   EXPECT_TRUE(browser()->command_controller()->IsCommandEnabled(IDC_COPY));
-  EXPECT_TRUE(browser()->command_controller()->IsCommandEnabled(IDC_FIND));
-  EXPECT_TRUE(browser()->command_controller()->IsCommandEnabled(IDC_ZOOM_PLUS));
+  EXPECT_TRUE(browser()->command_controller()->IsCommandEnabled(IDC_PASTE));
 }
 
 IN_PROC_BROWSER_TEST_F(WindowOpenApiTest,
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc
index 2c61e20..fa45e3c 100644
--- a/chrome/browser/ui/browser_command_controller.cc
+++ b/chrome/browser/ui/browser_command_controller.cc
@@ -1241,11 +1241,7 @@
 // Makes sure that all commands that are not whitelisted are disabled. DCHECKs
 // otherwise. Compiled only in debug mode.
 void NonWhitelistedCommandsAreDisabled(CommandUpdaterImpl* command_updater) {
-  constexpr int kWhitelistedIds[] = {
-    IDC_CUT, IDC_COPY, IDC_PASTE,
-    IDC_FIND, IDC_FIND_NEXT, IDC_FIND_PREVIOUS,
-    IDC_ZOOM_PLUS, IDC_ZOOM_NORMAL, IDC_ZOOM_MINUS,
-  };
+  constexpr int kWhitelistedIds[] = {IDC_CUT, IDC_COPY, IDC_PASTE};
 
   // Go through all the command ids, skip the whitelisted ones.
   for (int id : command_updater->GetAllIds()) {
@@ -1272,10 +1268,7 @@
     // Update the state of whitelisted commands:
     // IDC_CUT/IDC_COPY/IDC_PASTE,
     UpdateCommandsForContentRestrictionState();
-    // IDC_FIND/IDC_FIND_NEXT/IDC_FIND_PREVIOUS,
-    UpdateCommandsForFind();
-    // IDC_ZOOM_PLUS/IDC_ZOOM_NORMAL/IDC_ZOOM_MINUS.
-    UpdateCommandsForZoomState();
+    // TODO(crbug.com/904637): Re-enable Find and Zoom in locked fullscreen.
     // All other commands will be disabled (there is an early return in their
     // corresponding UpdateCommandsFor* functions).
 #if DCHECK_IS_ON()
diff --git a/chrome/browser/ui/browser_command_controller_browsertest.cc b/chrome/browser/ui/browser_command_controller_browsertest.cc
index a1e33f5..a067173 100644
--- a/chrome/browser/ui/browser_command_controller_browsertest.cc
+++ b/chrome/browser/ui/browser_command_controller_browsertest.cc
@@ -142,11 +142,7 @@
   // IDC_EXIT is not enabled in locked fullscreen.
   EXPECT_FALSE(command_updater->IsCommandEnabled(IDC_EXIT));
 
-  constexpr int kWhitelistedIds[] = {
-    IDC_CUT, IDC_COPY, IDC_PASTE,
-    IDC_FIND, IDC_FIND_NEXT, IDC_FIND_PREVIOUS,
-    IDC_ZOOM_PLUS, IDC_ZOOM_NORMAL, IDC_ZOOM_MINUS,
-  };
+  constexpr int kWhitelistedIds[] = {IDC_CUT, IDC_COPY, IDC_PASTE};
 
   // Go through all the command ids and make sure all non-whitelisted commands
   // are disabled.
@@ -157,13 +153,8 @@
     EXPECT_FALSE(command_updater->IsCommandEnabled(id));
   }
 
-  // Verify the set of whitelisted commands. All but IDC_ZOOM_NORMAL should be
-  // enabled.
+  // Verify the set of whitelisted commands.
   for (int id : kWhitelistedIds) {
-    if (id == IDC_ZOOM_NORMAL) {
-      EXPECT_FALSE(command_updater->IsCommandEnabled(id));
-      continue;
-    }
     EXPECT_TRUE(command_updater->IsCommandEnabled(id));
   }