Commit d0900f37 authored by Dão Gottwald's avatar Dão Gottwald
Browse files

Bug 1783811 - "Move Tab" and "Open in New Container Tab" options should be...

Bug 1783811 - "Move Tab" and "Open in New Container Tab" options should be disabled for the Firefox View tab (and hidden tabs in general) in the "List all tabs" menu. r=Gijs

Differential Revision: https://phabricator.services.mozilla.com/D154099
parent bbdd254d
Loading
Loading
Loading
Loading
+20 −9
Original line number Diff line number Diff line
@@ -3344,6 +3344,9 @@

    getTabsToTheStartFrom(aTab) {
      let tabsToStart = [];
      if (aTab.hidden) {
        return tabsToStart;
      }
      let tabs = this.visibleTabs;
      for (let i = 0; i < tabs.length; ++i) {
        if (tabs[i] == aTab) {
@@ -3365,6 +3368,9 @@

    getTabsToTheEndFrom(aTab) {
      let tabsToEnd = [];
      if (aTab.hidden) {
        return tabsToEnd;
      }
      let tabs = this.visibleTabs;
      for (let i = tabs.length - 1; i >= 0; --i) {
        if (tabs[i] == aTab) {
@@ -7053,6 +7059,8 @@ var TabContextMenu = {
      (aPopupMenu.triggerNode.tab || aPopupMenu.triggerNode.closest("tab"));

    this.contextTab = tab || gBrowser.selectedTab;
    this.contextTab.addEventListener("TabAttrModified", this);
    aPopupMenu.addEventListener("popuphiding", this);

    let disabled = gBrowser.tabs.length == 1;
    let multiselectionContext = this.contextTab.multiselected;
@@ -7068,10 +7076,6 @@ var TabContextMenu = {
      menuItem.disabled = disabled;
    }

    if (this.contextTab.hasAttribute("customizemode")) {
      document.getElementById("context_openTabInWindow").disabled = true;
    }

    disabled = gBrowser.visibleTabs.length == 1;
    menuItems = aPopupMenu.getElementsByAttribute(
      "tbattr",
@@ -7119,11 +7123,13 @@ var TabContextMenu = {
    contextUnpinSelectedTabs.hidden =
      !this.contextTab.pinned || !multiselectionContext;

    // Move Tab items
    let contextMoveTabOptions = document.getElementById(
      "context_moveTabOptions"
    );
    contextMoveTabOptions.setAttribute("data-l10n-args", tabCountInfo);
    contextMoveTabOptions.disabled = gBrowser.allTabsSelected();
    contextMoveTabOptions.disabled =
      this.contextTab.hidden || gBrowser.allTabsSelected();
    let selectedTabs = gBrowser.selectedTabs;
    let contextMoveTabToEnd = document.getElementById("context_moveToEnd");
    let allSelectedTabsAdjacent = selectedTabs.every(
@@ -7153,6 +7159,10 @@ var TabContextMenu = {
      tabsToMove[0] == visibleTabs[gBrowser._numPinnedTabs];
    contextMoveTabToStart.disabled = isFirstTab && allSelectedTabsAdjacent;

    if (this.contextTab.hasAttribute("customizemode")) {
      document.getElementById("context_openTabInWindow").disabled = true;
    }

    // Only one of "Duplicate Tab"/"Duplicate Tabs" should be visible.
    document.getElementById(
      "context_duplicateTab"
@@ -7246,14 +7256,15 @@ var TabContextMenu = {
    let selectAllTabs = document.getElementById("context_selectAllTabs");
    selectAllTabs.disabled = gBrowser.allTabsSelected();

    this.contextTab.addEventListener("TabAttrModified", this);
    aPopupMenu.addEventListener("popuphiding", this);

    gSync.updateTabContextMenu(aPopupMenu, this.contextTab);

    document.getElementById("context_reopenInContainer").hidden =
    let reopenInContainer = document.getElementById(
      "context_reopenInContainer"
    );
    reopenInContainer.hidden =
      !Services.prefs.getBoolPref("privacy.userContext.enabled", false) ||
      PrivateBrowsingUtils.isWindowPrivate(window);
    reopenInContainer.disabled = this.contextTab.hidden;

    gShareUtils.updateShareURLMenuItem(
      this.contextTab.linkedBrowser,