mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-11-07 19:59:18 +02:00
295 lines
11 KiB
JavaScript
295 lines
11 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
/* eslint-env mozilla/browser-window */
|
|
|
|
document.addEventListener(
|
|
"DOMContentLoaded",
|
|
() => {
|
|
let mainPopupSet = document.getElementById("mainPopupSet");
|
|
// eslint-disable-next-line complexity
|
|
mainPopupSet.addEventListener("command", event => {
|
|
switch (event.target.id) {
|
|
// == tabContextMenu ==
|
|
case "context_openANewTab":
|
|
gBrowser.addAdjacentNewTab(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_reloadTab":
|
|
gBrowser.reloadTab(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_reloadSelectedTabs":
|
|
gBrowser.reloadMultiSelectedTabs();
|
|
break;
|
|
case "context_playTab":
|
|
TabContextMenu.contextTab.resumeDelayedMedia();
|
|
break;
|
|
case "context_playSelectedTabs":
|
|
gBrowser.resumeDelayedMediaOnMultiSelectedTabs(
|
|
TabContextMenu.contextTab
|
|
);
|
|
break;
|
|
case "context_toggleMuteTab":
|
|
TabContextMenu.contextTab.toggleMuteAudio();
|
|
break;
|
|
case "context_toggleMuteSelectedTabs":
|
|
gBrowser.toggleMuteAudioOnMultiSelectedTabs(
|
|
TabContextMenu.contextTab
|
|
);
|
|
break;
|
|
case "context_pinTab":
|
|
gBrowser.pinTab(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_unpinTab":
|
|
gBrowser.unpinTab(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_pinSelectedTabs":
|
|
gBrowser.pinMultiSelectedTabs();
|
|
break;
|
|
case "context_unpinSelectedTabs":
|
|
gBrowser.unpinMultiSelectedTabs();
|
|
break;
|
|
case "context_duplicateTab":
|
|
duplicateTabIn(TabContextMenu.contextTab, "tab");
|
|
break;
|
|
case "context_duplicateTabs":
|
|
TabContextMenu.duplicateSelectedTabs();
|
|
break;
|
|
case "context_bookmarkSelectedTabs":
|
|
PlacesCommandHook.bookmarkTabs(gBrowser.selectedTabs);
|
|
break;
|
|
case "context_bookmarkTab":
|
|
PlacesCommandHook.bookmarkTabs([TabContextMenu.contextTab]);
|
|
break;
|
|
case "context_moveToStart":
|
|
gBrowser.moveTabsToStart(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_moveToEnd":
|
|
gBrowser.moveTabsToEnd(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_openTabInWindow":
|
|
gBrowser.replaceTabsWithWindow(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_selectAllTabs":
|
|
gBrowser.selectAllTabs();
|
|
break;
|
|
case "context_closeTab":
|
|
TabContextMenu.closeContextTabs();
|
|
break;
|
|
case "context_closeDuplicateTabs":
|
|
gBrowser.removeDuplicateTabs(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_closeTabsToTheStart":
|
|
gBrowser.removeTabsToTheStartFrom(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_closeTabsToTheEnd":
|
|
gBrowser.removeTabsToTheEndFrom(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_closeOtherTabs":
|
|
gBrowser.removeAllTabsBut(TabContextMenu.contextTab);
|
|
break;
|
|
case "context_fullscreenAutohide":
|
|
FullScreen.setAutohide();
|
|
break;
|
|
case "context_fullscreenExit":
|
|
BrowserCommands.fullScreen();
|
|
break;
|
|
|
|
// == editBookmarkPanel ==
|
|
case "editBookmarkPanel_showForNewBookmarks":
|
|
StarUI.onShowForNewBookmarksCheckboxCommand();
|
|
break;
|
|
case "editBookmarkPanelDoneButton":
|
|
StarUI.panel.hidePopup();
|
|
break;
|
|
case "editBookmarkPanelRemoveButton":
|
|
StarUI.removeBookmarkButtonCommand();
|
|
break;
|
|
|
|
// == sidebarMenu-popup ==
|
|
case "sidebar-switcher-bookmarks":
|
|
SidebarController.show("viewBookmarksSidebar");
|
|
break;
|
|
case "sidebar-switcher-history":
|
|
SidebarController.show("viewHistorySidebar");
|
|
break;
|
|
case "sidebar-switcher-tabs":
|
|
SidebarController.show("viewTabsSidebar");
|
|
break;
|
|
case "sidebar-reverse-position":
|
|
SidebarController.reversePosition();
|
|
break;
|
|
case "sidebar-menu-close":
|
|
SidebarController.hide();
|
|
break;
|
|
|
|
// == toolbar-context-menu ==
|
|
case "toolbar-context-manage-extension":
|
|
ToolbarContextMenu.openAboutAddonsForContextAction(
|
|
event.target.parentElement
|
|
);
|
|
break;
|
|
case "toolbar-context-remove-extension":
|
|
ToolbarContextMenu.removeExtensionForContextAction(
|
|
event.target.parentElement
|
|
);
|
|
break;
|
|
case "toolbar-context-report-extension":
|
|
ToolbarContextMenu.reportExtensionForContextAction(
|
|
event.target.parentElement,
|
|
"toolbar_context_menu"
|
|
);
|
|
break;
|
|
case "toolbar-context-move-to-panel":
|
|
gCustomizeMode.addToPanel(
|
|
event.target.parentNode.triggerNode,
|
|
"toolbar-context-menu"
|
|
);
|
|
break;
|
|
case "toolbar-context-autohide-downloads-button":
|
|
ToolbarContextMenu.onDownloadsAutoHideChange(event);
|
|
break;
|
|
case "toolbar-context-remove-from-toolbar":
|
|
gCustomizeMode.removeFromArea(
|
|
event.target.parentNode.triggerNode,
|
|
"toolbar-context-menu"
|
|
);
|
|
break;
|
|
case "toolbar-context-pin-to-toolbar":
|
|
gUnifiedExtensions.onPinToToolbarChange(
|
|
event.target.parentElement,
|
|
event
|
|
);
|
|
break;
|
|
case "toolbar-context-always-open-downloads-panel":
|
|
ToolbarContextMenu.onDownloadsAlwaysOpenPanelChange(event);
|
|
break;
|
|
case "toolbar-context-reloadSelectedTab":
|
|
case "toolbar-context-reloadSelectedTabs":
|
|
gBrowser.reloadMultiSelectedTabs();
|
|
break;
|
|
case "toolbar-context-bookmarkSelectedTab":
|
|
case "toolbar-context-bookmarkSelectedTabs":
|
|
PlacesCommandHook.bookmarkTabs(gBrowser.selectedTabs);
|
|
break;
|
|
case "toolbar-context-selectAllTabs":
|
|
gBrowser.selectAllTabs();
|
|
break;
|
|
case "toolbar-context-full-screen-autohide":
|
|
FullScreen.setAutohide();
|
|
break;
|
|
case "toolbar-context-full-screen-exit":
|
|
BrowserCommands.fullScreen();
|
|
break;
|
|
|
|
// == blockedPopupOptions ==
|
|
case "blockedPopupAllowSite":
|
|
gPopupBlockerObserver.toggleAllowPopupsForSite(event);
|
|
break;
|
|
case "blockedPopupEdit":
|
|
gPopupBlockerObserver.editPopupSettings();
|
|
break;
|
|
case "blockedPopupDontShowMessage":
|
|
gPopupBlockerObserver.dontShowMessage();
|
|
break;
|
|
|
|
// == pictureInPictureToggleContextMenu ==
|
|
case "context_HidePictureInPictureToggle":
|
|
PictureInPicture.hideToggle();
|
|
break;
|
|
case "context_MovePictureInPictureToggle":
|
|
PictureInPicture.moveToggle();
|
|
break;
|
|
|
|
// == pageActionContextMenu ==
|
|
case "pageActionContextMenuManageExtension":
|
|
BrowserPageActions.openAboutAddonsForContextAction();
|
|
break;
|
|
case "pageActionContextMenuRemoveExtension":
|
|
BrowserPageActions.removeExtensionForContextAction();
|
|
break;
|
|
|
|
// == SyncedTabsSidebarContext ==
|
|
case "syncedTabsManageDevices":
|
|
gSync.openDevicesManagementPage("syncedtabs-sidebar");
|
|
break;
|
|
|
|
// == unified-extensions-context-menu ==
|
|
case "unified-extensions-context-menu-pin-to-toolbar":
|
|
gUnifiedExtensions.onPinToToolbarChange(
|
|
event.target.parentElement,
|
|
event
|
|
);
|
|
break;
|
|
case "unified-extensions-context-menu-move-widget-up":
|
|
gUnifiedExtensions.moveWidget(event.target.parentElement, "up");
|
|
break;
|
|
case "unified-extensions-context-menu-move-widget-down":
|
|
gUnifiedExtensions.moveWidget(event.target.parentElement, "down");
|
|
break;
|
|
case "unified-extensions-context-menu-manage-extension":
|
|
gUnifiedExtensions.manageExtension(event.target.parentElement);
|
|
break;
|
|
case "unified-extensions-context-menu-remove-extension":
|
|
gUnifiedExtensions.removeExtension(event.target.parentElement);
|
|
break;
|
|
case "unified-extensions-context-menu-report-extension":
|
|
gUnifiedExtensions.reportExtension(event.target.parentElement);
|
|
break;
|
|
|
|
// == full-page-translations-panel-settings-menupopup ==
|
|
case "translations-panel-settings-always-offer-translation":
|
|
FullPageTranslationsPanel.onAlwaysOfferTranslations();
|
|
break;
|
|
case "translations-panel-settings-always-translate":
|
|
FullPageTranslationsPanel.onAlwaysTranslateLanguage();
|
|
break;
|
|
case "translations-panel-settings-never-translate":
|
|
FullPageTranslationsPanel.onNeverTranslateLanguage();
|
|
break;
|
|
case "translations-panel-settings-never-translate-site":
|
|
FullPageTranslationsPanel.onNeverTranslateSite();
|
|
break;
|
|
case "translations-panel-manage-languages":
|
|
FullPageTranslationsPanel.openManageLanguages();
|
|
break;
|
|
case "translations-panel-about":
|
|
FullPageTranslationsPanel.onAboutTranslations();
|
|
break;
|
|
|
|
// == select-translations-panel-settings-menupopup ==
|
|
case "select-translations-panel-open-settings-page-menuitem":
|
|
SelectTranslationsPanel.openTranslationsSettingsPage();
|
|
break;
|
|
case "select-translations-panel-about-translations-menuitem":
|
|
SelectTranslationsPanel.onAboutTranslations();
|
|
break;
|
|
}
|
|
});
|
|
|
|
document
|
|
.getElementById("context_reopenInContainerPopupMenu")
|
|
.addEventListener("command", event => {
|
|
// Handle commands on the descendant <menuitem>s with different containers.
|
|
TabContextMenu.reopenInContainer(event);
|
|
});
|
|
|
|
document
|
|
.getElementById("backForwardMenu")
|
|
.addEventListener("command", event => {
|
|
// Handle commands on the descendant <menuitem>s with history entries.
|
|
// Note: See duplicate code in SetClickAndHoldHandlers.
|
|
BrowserCommands.gotoHistoryIndex(event);
|
|
// Prevent propagation to the back/forward button.
|
|
event.stopPropagation();
|
|
});
|
|
|
|
document
|
|
.getElementById("unified-extensions-context-menu")
|
|
.addEventListener("command", event => {
|
|
gUnifiedExtensions.onContextMenuCommand(event.currentTarget, event);
|
|
});
|
|
},
|
|
{ once: true }
|
|
);
|