browser-sets.js (11982B)
1 /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- 2 * This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 document.addEventListener( 7 "MozBeforeInitialXULLayout", 8 () => { 9 // <commandset id="mainCommandSet"> defined in browser-sets.inc 10 document 11 .getElementById("mainCommandSet") 12 // eslint-disable-next-line complexity 13 .addEventListener("command", event => { 14 switch (event.target.id) { 15 case "cmd_newNavigator": 16 OpenBrowserWindow(); 17 break; 18 case "cmd_handleBackspace": 19 BrowserCommands.handleBackspace(); 20 break; 21 case "cmd_handleShiftBackspace": 22 BrowserCommands.handleShiftBackspace(); 23 break; 24 case "cmd_newNavigatorTab": 25 BrowserCommands.openTab({ event }); 26 break; 27 case "cmd_newNavigatorTabNoEvent": 28 BrowserCommands.openTab(); 29 break; 30 case "Browser:OpenFile": 31 BrowserCommands.openFileWindow(); 32 break; 33 case "Browser:SavePage": 34 saveBrowser(gBrowser.selectedBrowser); 35 break; 36 case "Browser:SendLink": 37 MailIntegration.sendLinkForBrowser(gBrowser.selectedBrowser); 38 break; 39 case "cmd_pageSetup": 40 PrintUtils.showPageSetup(); 41 break; 42 case "cmd_print": 43 PrintUtils.startPrintWindow( 44 gBrowser.selectedBrowser.browsingContext 45 ); 46 break; 47 case "cmd_printPreviewToggle": 48 PrintUtils.togglePrintPreview( 49 gBrowser.selectedBrowser.browsingContext 50 ); 51 break; 52 case "cmd_file_importFromAnotherBrowser": 53 MigrationUtils.showMigrationWizard(window, { 54 entrypoint: MigrationUtils.MIGRATION_ENTRYPOINTS.FILE_MENU, 55 }); 56 break; 57 case "cmd_help_importFromAnotherBrowser": 58 MigrationUtils.showMigrationWizard(window, { 59 entrypoint: MigrationUtils.MIGRATION_ENTRYPOINTS.HELP_MENU, 60 }); 61 break; 62 case "cmd_close": 63 BrowserCommands.closeTabOrWindow(event); 64 break; 65 case "cmd_closeWindow": 66 BrowserCommands.tryToCloseWindow(event); 67 break; 68 case "cmd_minimizeWindow": 69 window.minimize(); 70 break; 71 case "cmd_maximizeWindow": 72 window.maximize(); 73 break; 74 case "cmd_restoreWindow": 75 window.fullScreen ? BrowserCommands.fullScreen() : window.restore(); 76 break; 77 case "cmd_toggleMute": 78 gBrowser.toggleMuteAudioOnMultiSelectedTabs(gBrowser.selectedTab); 79 break; 80 case "cmd_CustomizeToolbars": 81 gCustomizeMode.enter(); 82 break; 83 case "cmd_toggleOfflineStatus": 84 BrowserOffline.toggleOfflineStatus(); 85 break; 86 case "cmd_quitApplication": 87 goQuitApplication(event); 88 break; 89 case "View:AboutProcesses": 90 switchToTabHavingURI("about:processes", true); 91 break; 92 case "View:PageSource": 93 BrowserCommands.viewSource(window.gBrowser.selectedBrowser); 94 break; 95 case "View:PageInfo": 96 BrowserCommands.pageInfo(); 97 break; 98 case "View:FullScreen": 99 BrowserCommands.fullScreen(); 100 break; 101 case "View:ReaderView": 102 AboutReaderParent.toggleReaderMode(event); 103 break; 104 case "View:PictureInPicture": 105 PictureInPicture.onCommand(event); 106 break; 107 case "cmd_find": 108 gLazyFindCommand("onFindCommand"); 109 break; 110 case "cmd_findAgain": 111 gLazyFindCommand("onFindAgainCommand", false); 112 break; 113 case "cmd_findPrevious": 114 gLazyFindCommand("onFindAgainCommand", true); 115 break; 116 case "cmd_findSelection": 117 gLazyFindCommand("onFindSelectionCommand"); 118 break; 119 case "cmd_translate": 120 FullPageTranslationsPanel.open(event); 121 break; 122 case "Browser:AddBookmarkAs": 123 PlacesCommandHook.bookmarkPage(); 124 break; 125 case "Browser:SearchBookmarks": 126 PlacesCommandHook.searchBookmarks(); 127 break; 128 case "Browser:BookmarkAllTabs": 129 PlacesCommandHook.bookmarkTabs(); 130 break; 131 case "Browser:Back": 132 BrowserCommands.back(); 133 break; 134 case "Browser:BackOrBackDuplicate": 135 BrowserCommands.back(event); 136 break; 137 case "Browser:Forward": 138 BrowserCommands.forward(); 139 break; 140 case "Browser:ForwardOrForwardDuplicate": 141 BrowserCommands.forward(event); 142 break; 143 case "Browser:Stop": 144 BrowserCommands.stop(); 145 break; 146 case "Browser:Reload": 147 if (event.shiftKey) { 148 BrowserCommands.reloadSkipCache(); 149 } else { 150 BrowserCommands.reload(); 151 } 152 break; 153 case "Browser:ReloadOrDuplicate": 154 BrowserCommands.reloadOrDuplicate(event); 155 break; 156 case "Browser:ReloadSkipCache": 157 BrowserCommands.reloadSkipCache(); 158 break; 159 case "Browser:NextTab": 160 gBrowser.tabContainer.advanceSelectedTab(1, true); 161 break; 162 case "Browser:PrevTab": 163 gBrowser.tabContainer.advanceSelectedTab(-1, true); 164 break; 165 case "Browser:ShowAllTabs": 166 gTabsPanel.showAllTabsPanel(); 167 break; 168 case "cmd_fullZoomReduce": 169 FullZoom.reduce(); 170 break; 171 case "cmd_fullZoomEnlarge": 172 FullZoom.enlarge(); 173 break; 174 case "cmd_fullZoomReset": 175 FullZoom.reset(); 176 FullZoom.resetScalingZoom(); 177 break; 178 case "cmd_fullZoomToggle": 179 ZoomManager.toggleZoom(); 180 break; 181 case "cmd_gestureRotateLeft": 182 gGestureSupport.rotate(event.sourceEvent); 183 break; 184 case "cmd_gestureRotateRight": 185 gGestureSupport.rotate(event.sourceEvent); 186 break; 187 case "cmd_gestureRotateEnd": 188 gGestureSupport.rotateEnd(); 189 break; 190 case "Browser:OpenLocation": 191 openLocation(event); 192 break; 193 case "Browser:RestoreLastSession": 194 SessionStore.restoreLastSession(); 195 break; 196 case "Browser:NewUserContextTab": 197 openNewUserContextTab(event.sourceEvent); 198 break; 199 case "Browser:OpenAboutContainers": 200 openPreferences("paneContainers"); 201 break; 202 // deliberate fallthrough 203 case "Profiles:CreateProfile": 204 case "Profiles:ManageProfiles": 205 case "Profiles:LaunchProfile": 206 case "Profiles:MoveTabsToProfile": 207 gProfiles.handleCommand(event); 208 break; 209 case "Tools:Search": 210 SearchUIUtils.webSearch(window); 211 break; 212 case "Tools:Downloads": 213 BrowserCommands.downloadsUI(); 214 break; 215 case "Tools:Addons": 216 BrowserAddonUI.openAddonsMgr(); 217 if (event.sourceEvent?.target.id == "key_openAddons") { 218 Services.prefs.setStringPref( 219 "browser.keys.openAddons.lastUsed", 220 new Date().toISOString() 221 ); 222 } 223 break; 224 case "cmd_openUnifiedExtensionsPanel": 225 gUnifiedExtensions.openPanel(event); 226 break; 227 case "Tools:ClassicWindow": 228 OpenBrowserWindow({ aiWindow: false }); 229 break; 230 case "Tools:AIWindow": 231 OpenBrowserWindow({ aiWindow: true }); 232 break; 233 case "Tools:ChatsHistory": 234 // @todo Bug 2006543 235 // Implement opening the chat history view 236 break; 237 case "Tools:Sanitize": 238 Sanitizer.showUI(window); 239 break; 240 case "Tools:PrivateBrowsing": 241 OpenBrowserWindow({ private: true }); 242 break; 243 case "Browser:Screenshot": 244 ScreenshotsUtils.notify(window, "Shortcut"); 245 break; 246 case "History:UndoCloseTab": 247 SessionWindowUI.undoCloseTab(window); 248 break; 249 case "History:UndoCloseWindow": 250 SessionWindowUI.undoCloseWindow(); 251 break; 252 case "History:RestoreLastClosedTabOrWindowOrSession": 253 SessionWindowUI.restoreLastClosedTabOrWindowOrSession(window); 254 break; 255 case "History:SearchHistory": 256 PlacesCommandHook.searchHistory(); 257 break; 258 case "wrCaptureCmd": 259 gGfxUtils.webrenderCapture(); 260 break; 261 case "wrToggleCaptureSequenceCmd": 262 gGfxUtils.toggleWebrenderCaptureSequence(); 263 break; 264 case "windowRecordingCmd": 265 gGfxUtils.toggleWindowRecording(); 266 break; 267 case "zoomWindow": 268 zoomWindow(); 269 break; 270 case "cmd_newIdentity": 271 NewIdentityButton.onCommand(event); 272 break; 273 case "cmd_newCircuit": 274 TorDomainIsolator.newCircuitForBrowser(gBrowser.selectedBrowser); 275 break; 276 } 277 }); 278 279 document.getElementById("mainKeyset").addEventListener("command", event => { 280 const SIDEBAR_REVAMP_PREF = "sidebar.revamp"; 281 const SIDEBAR_REVAMP_ENABLED = Services.prefs.getBoolPref( 282 SIDEBAR_REVAMP_PREF, 283 false 284 ); 285 switch (event.target.id) { 286 case "goHome": 287 BrowserCommands.home(); 288 break; 289 case "bookmarkAllTabsKb": 290 PlacesCommandHook.bookmarkTabs(); 291 break; 292 case "viewBookmarksSidebarKb": 293 SidebarController.toggle("viewBookmarksSidebar"); 294 break; 295 case "viewBookmarksToolbarKb": 296 BookmarkingUI.toggleBookmarksToolbar("shortcut"); 297 break; 298 case "viewGenaiChatSidebarKb": { 299 const pref = "browser.ml.chat.enabled"; 300 const enabled = Services.prefs.getBoolPref(pref); 301 Glean.genaiChatbot.keyboardShortcut.record({ 302 enabled, 303 sidebar: SidebarController.currentID, 304 }); 305 if (enabled) { 306 SidebarController.toggle("viewGenaiChatSidebar"); 307 } 308 break; 309 } 310 case "toggleSidebarKb": 311 if (SIDEBAR_REVAMP_ENABLED) { 312 SidebarController.handleToolbarButtonClick(); 313 Glean.sidebar.keyboardShortcut.record({ 314 panel: SidebarController.currentID, 315 opened: SidebarController._state.launcherExpanded, 316 }); 317 } 318 break; 319 case "key_gotoHistory": 320 SidebarController.toggle("viewHistorySidebar"); 321 break; 322 323 case "key_selectTab1": 324 case "key_selectTab2": 325 case "key_selectTab3": 326 case "key_selectTab4": 327 case "key_selectTab5": 328 case "key_selectTab6": 329 case "key_selectTab7": 330 case "key_selectTab8": { 331 let index = event.target.id.at(-1) - 1; 332 gBrowser.selectTabAtIndex(index, event); 333 break; 334 } 335 case "key_selectLastTab": 336 gBrowser.selectTabAtIndex(-1, event); 337 break; 338 339 case "key_openHelpMac": 340 openHelpLink("firefox-osxkey"); 341 break; 342 } 343 }); 344 }, 345 { once: true } 346 );