morgan pushed to branch mullvad-browser-128.2.0esr-14.0-1 at The Tor Project / Applications / Mullvad Browser

Commits:

1 changed file:

Changes:

  • browser/components/customizableui/CustomizableUI.sys.mjs
    ... ... @@ -65,6 +65,11 @@ var kVersion = 20;
    65 65
     var kVersionBaseBrowser = 2;
    
    66 66
     const NoScriptId = "_73a6fe31-595d-460b-a920-fcc0f8843232_-browser-action";
    
    67 67
     
    
    68
    +/**
    
    69
    + * The current version for mullvad browser.
    
    70
    + */
    
    71
    +var kVersionMullvadBrowser = 1;
    
    72
    +
    
    68 73
     /**
    
    69 74
      * Buttons removed from built-ins by version they were removed. kVersion must be
    
    70 75
      * bumped any time a new id is added to this. Use the button id as key, and
    
    ... ... @@ -228,6 +233,7 @@ var CustomizableUIInternal = {
    228 233
         this._updateForNewProtonVersion();
    
    229 234
         this._markObsoleteBuiltinButtonsSeen();
    
    230 235
         this._updateForBaseBrowser();
    
    236
    +    this._updateForMullvadBrowser();
    
    231 237
     
    
    232 238
         this.registerArea(
    
    233 239
           CustomizableUI.AREA_FIXED_OVERFLOW_PANEL,
    
    ... ... @@ -264,7 +270,11 @@ var CustomizableUIInternal = {
    264 270
           // Base-browser additions tor-browser#41736. If you want to add to, remove
    
    265 271
           // from, or rearrange this list, then bump the kVersionBaseBrowser and
    
    266 272
           // update existing saved states in _updateForBaseBrowser.
    
    267
    -      "security-level-button",
    
    273
    +      // Or if the change is only meant for mullvad-browser, bump
    
    274
    +      // kVersionMullvadBrowser instead and update the existing saved states in
    
    275
    +      // _updateForMullvadBrowser.
    
    276
    +      // Do not show the security-level-button by default in Mullvad Browser.
    
    277
    +      // See mullvad-browser#329
    
    268 278
           "new-identity-button",
    
    269 279
           "downloads-button",
    
    270 280
           AppConstants.MOZ_DEV_EDITION ? "developer-button" : null,
    
    ... ... @@ -930,6 +940,44 @@ var CustomizableUIInternal = {
    930 940
         }
    
    931 941
       },
    
    932 942
     
    
    943
    +  _updateForMullvadBrowser() {
    
    944
    +    if (!gSavedState) {
    
    945
    +      // Use the defaults.
    
    946
    +      return;
    
    947
    +    }
    
    948
    +
    
    949
    +    const currentVersion = gSavedState.currentVersionMullvadBrowser;
    
    950
    +
    
    951
    +    if (currentVersion < 1) {
    
    952
    +      // Remove security-level-button if:
    
    953
    +      // + it hasn't been moved out of the navbar by the user, and
    
    954
    +      // + the user does not have a custom security level.
    
    955
    +      //
    
    956
    +      // NOTE: _updateForBaseBrowser adds this button when
    
    957
    +      // currentVersionBaseBrowser < 1. This should only happen when
    
    958
    +      // currentVersionMullvadBrowser < 1, and this method runs after, so should
    
    959
    +      // reverse it.
    
    960
    +      const navbarPlacements =
    
    961
    +        gSavedState.placements[CustomizableUI.AREA_NAVBAR];
    
    962
    +      if (navbarPlacements) {
    
    963
    +        const buttonIndex = navbarPlacements.indexOf("security-level-button");
    
    964
    +        // Test if security level icon exists in the navbar.
    
    965
    +        // Even though a user may have moved the button within the navbar,
    
    966
    +        // there is no simple way to know whether the button was moved, or if
    
    967
    +        // other components were moved around it.
    
    968
    +        if (buttonIndex >= 0) {
    
    969
    +          // NOTE: We expect the SecurityLevel module to already be initialized.
    
    970
    +          const { SecurityLevelPrefs } = ChromeUtils.importESModule(
    
    971
    +            "resource://gre/modules/SecurityLevel.sys.mjs"
    
    972
    +          );
    
    973
    +          if (!SecurityLevelPrefs.securityCustom) {
    
    974
    +            navbarPlacements.splice(buttonIndex, 1);
    
    975
    +          }
    
    976
    +        }
    
    977
    +      }
    
    978
    +    }
    
    979
    +  },
    
    980
    +
    
    933 981
       _placeNewDefaultWidgetsInArea(aArea) {
    
    934 982
         let futurePlacedWidgets = gFuturePlacements.get(aArea);
    
    935 983
         let savedPlacements =
    
    ... ... @@ -2773,6 +2821,10 @@ var CustomizableUIInternal = {
    2773 2821
           gSavedState.currentVersionBaseBrowser = 0;
    
    2774 2822
         }
    
    2775 2823
     
    
    2824
    +    if (!("currentVersionMullvadBrowser" in gSavedState)) {
    
    2825
    +      gSavedState.currentVersionMullvadBrowser = 0;
    
    2826
    +    }
    
    2827
    +
    
    2776 2828
         gSeenWidgets = new Set(gSavedState.seen || []);
    
    2777 2829
         gDirtyAreaCache = new Set(gSavedState.dirtyAreaCache || []);
    
    2778 2830
         gNewElementCount = gSavedState.newElementCount || 0;
    
    ... ... @@ -2856,6 +2908,7 @@ var CustomizableUIInternal = {
    2856 2908
           dirtyAreaCache: gDirtyAreaCache,
    
    2857 2909
           currentVersion: kVersion,
    
    2858 2910
           currentVersionBaseBrowser: kVersionBaseBrowser,
    
    2911
    +      currentVersionMullvadBrowser: kVersionMullvadBrowser,
    
    2859 2912
           newElementCount: gNewElementCount,
    
    2860 2913
         };
    
    2861 2914