[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-commits] [Git][tpo/applications/mullvad-browser][mullvad-browser-150.0a1-16.0-2] 6 commits: fixup! BB 41739: Remove "Website appearance" from about:preferences.



Title: GitLab

henry pushed to branch mullvad-browser-150.0a1-16.0-2 at The Tor Project / Applications / Mullvad Browser

Commits:

  • be8738c3
    by Henry Wilkes at 2026-05-06T11:18:56+01:00
    fixup! BB 41739: Remove "Website appearance" from about:preferences.
    
    BB 44630: Stop hiding with data-hidden-from-search.
    
  • e63b568b
    by Henry Wilkes at 2026-05-06T11:18:57+01:00
    fixup! BB 42777: Hide Website Privacy Preferences.
    
    BB 44630: Stop hiding with data-hidden-from-search.
    
  • 38da32fb
    by Henry Wilkes at 2026-05-06T11:18:58+01:00
    fixup! BB 42070: Hide "Use smooth scrolling" from settings
    
    BB 44630: Stop commenting out setting controls.
    
  • 51a082c1
    by Henry Wilkes at 2026-05-06T11:18:59+01:00
    fixup! BB 43117: Hide "Always underline links" from settings.
    
    BB 44630: Stop commenting out setting controls.
    
  • 32a0cff7
    by Henry Wilkes at 2026-05-06T11:19:00+01:00
    fixup! BB 43118: Hide feature recommendation (CFR) settings.
    
    BB 44630: Stop commenting out setting controls.
    
  • 7d2243b5
    by Henry Wilkes at 2026-05-06T11:19:49+01:00
    fixup! BB 44711: Hide unwanted setting controls in Base Browser.
    
    BB 44630: Hide settings using the config.
    

4 changed files:

Changes:

  • browser/components/preferences/main.inc.xhtml
    ... ... @@ -50,7 +50,7 @@
    50 50
     </hbox>
    
    51 51
     
    
    52 52
     <!-- Website appearance -->
    
    53
    -<html:setting-group groupid="appearance" data-category="paneGeneral" hidden="true" data-hidden-from-search="true"></html:setting-group>
    
    53
    +<html:setting-group groupid="appearance" data-category="paneGeneral" hidden="true"></html:setting-group>
    
    54 54
     
    
    55 55
     <!-- Colors -->
    
    56 56
     <html:setting-group id="contrastControlGroup" groupid="contrast" data-category="paneGeneral" hidden="true" />
    

  • browser/components/preferences/main.js
    ... ... @@ -78,6 +78,10 @@ function canShowAiFeature(featureSetting, defaultSetting) {
    78 78
     }
    
    79 79
     
    
    80 80
     Preferences.addAll([
    
    81
    +  // Rather than add "privacy.resistFingerprinting" in privacy.js, we add it
    
    82
    +  // early so we can define the "resistFingerprinting" `Setting` in this file.
    
    83
    +  // See below. See tor-browser#44630.
    
    84
    +  { id: "privacy.resistFingerprinting", type: "bool" },
    
    81 85
       // Startup
    
    82 86
       { id: "browser.startup.page", type: "int" },
    
    83 87
       { id: "browser.startup.windowsLaunchOnLogin.enabled", type: "bool" },
    
    ... ... @@ -273,6 +277,18 @@ if (AppConstants.MOZ_UPDATER) {
    273 277
       }
    
    274 278
     }
    
    275 279
     
    
    280
    +// Rather than add "resistFingerprinting" in privacy.js, we add it to the
    
    281
    +// settings early so we can have it be part of the setting config's `deps` field
    
    282
    +// early. See tor-browser#44630.
    
    283
    +// In particular, `Setting.deps` is lazy set. For many settings, this will only
    
    284
    +// be set *after* all settings have been added. However, for settings with a
    
    285
    +// `setup` field, the `deps` value will be set during construction, so we need
    
    286
    +// the corresponding dependency available prior to construction.
    
    287
    +Preferences.addSetting({
    
    288
    +  id: "resistFingerprinting",
    
    289
    +  pref: "privacy.resistFingerprinting",
    
    290
    +});
    
    291
    +
    
    276 292
     Preferences.addSetting({
    
    277 293
       id: "privateBrowsingAutoStart",
    
    278 294
       pref: "browser.privatebrowsing.autostart",
    
    ... ... @@ -482,6 +498,12 @@ Preferences.addSetting({
    482 498
     Preferences.addSetting({
    
    483 499
       id: "useSmoothScrolling",
    
    484 500
       pref: "general.smoothScroll",
    
    501
    +  deps: ["resistFingerprinting"],
    
    502
    +  visible: ({ resistFingerprinting }) => {
    
    503
    +    // Hide "smooth scrolling" when using resist fingerprinting (RFP) because
    
    504
    +    // the preference should be ignored. tor-browser#42070.
    
    505
    +    return !resistFingerprinting.value;
    
    506
    +  },
    
    485 507
     });
    
    486 508
     
    
    487 509
     Preferences.addSetting({
    
    ... ... @@ -560,6 +582,11 @@ Preferences.addSetting({
    560 582
     Preferences.addSetting({
    
    561 583
       id: "alwaysUnderlineLinks",
    
    562 584
       pref: "layout.css.always_underline_links",
    
    585
    +  // Hide "always underline links" because it can be used for fingerprinting. At
    
    586
    +  // the time of implementation, this is the case with or without RFP, so we
    
    587
    +  // hide this unconditionally.
    
    588
    +  // tor-browser#43117.
    
    589
    +  visible: () => false,
    
    563 590
     });
    
    564 591
     Preferences.addSetting({
    
    565 592
       id: "searchStartTyping",
    
    ... ... @@ -618,10 +645,14 @@ Preferences.addSetting({
    618 645
     Preferences.addSetting({
    
    619 646
       id: "cfrRecommendations",
    
    620 647
       pref: "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons",
    
    648
    +  // Hide feature recommendation (CFR). tor-browser#43118.
    
    649
    +  visible: () => false,
    
    621 650
     });
    
    622 651
     Preferences.addSetting({
    
    623 652
       id: "cfrRecommendations-features",
    
    624 653
       pref: "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features",
    
    654
    +  // Hide feature recommendation (CFR). tor-browser#43118.
    
    655
    +  visible: () => false,
    
    625 656
     });
    
    626 657
     
    
    627 658
     Preferences.addSetting({
    
    ... ... @@ -687,11 +718,17 @@ Preferences.addSetting({
    687 718
     });
    
    688 719
     Preferences.addSetting({
    
    689 720
       id: "web-appearance-override-warning",
    
    721
    +  deps: ["resistFingerprinting"],
    
    690 722
       setup: emitChange => {
    
    691 723
         FORCED_COLORS_QUERY.addEventListener("change", emitChange);
    
    692 724
         return () => FORCED_COLORS_QUERY.removeEventListener("change", emitChange);
    
    693 725
       },
    
    694
    -  visible: () => {
    
    726
    +  visible: ({ resistFingerprinting }) => {
    
    727
    +    // Hide web appearance settings when using resist fingerprinting (RFP).
    
    728
    +    // tor-browser#41739.
    
    729
    +    if (resistFingerprinting.value) {
    
    730
    +      return false;
    
    731
    +    }
    
    695 732
         return FORCED_COLORS_QUERY.matches;
    
    696 733
       },
    
    697 734
     });
    
    ... ... @@ -701,6 +738,12 @@ Preferences.addSetting(
    701 738
         id: "web-appearance-chooser",
    
    702 739
         themeNames: ["dark", "light", "auto"],
    
    703 740
         pref: "layout.css.prefers-color-scheme.content-override",
    
    741
    +    deps: ["resistFingerprinting"],
    
    742
    +    visible: ({ resistFingerprinting }) => {
    
    743
    +      // Hide web appearance settings when using resist fingerprinting (RFP).
    
    744
    +      // tor-browser#41739.
    
    745
    +      return !resistFingerprinting.value;
    
    746
    +    },
    
    704 747
         setup(emitChange) {
    
    705 748
           Services.obs.addObserver(emitChange, "look-and-feel-changed");
    
    706 749
           return () =>
    
    ... ... @@ -733,6 +776,12 @@ Preferences.addSetting(
    733 776
     
    
    734 777
     Preferences.addSetting({
    
    735 778
       id: "web-appearance-manage-themes-link",
    
    779
    +  deps: ["resistFingerprinting"],
    
    780
    +  visible: ({ resistFingerprinting }) => {
    
    781
    +    // Hide web appearance settings when using resist fingerprinting (RFP).
    
    782
    +    // tor-browser#41739.
    
    783
    +    return !resistFingerprinting.value;
    
    784
    +  },
    
    736 785
       onUserClick: e => {
    
    737 786
         e.preventDefault();
    
    738 787
         // @ts-ignore topChromeWindow global
    
    ... ... @@ -3166,10 +3215,10 @@ SettingGroupManager.registerGroups({
    3166 3215
             id: "useAutoScroll",
    
    3167 3216
             l10nId: "browsing-use-autoscroll",
    
    3168 3217
           },
    
    3169
    -      // {
    
    3170
    -      //   id: "useSmoothScrolling",
    
    3171
    -      //   l10nId: "browsing-use-smooth-scrolling",
    
    3172
    -      // },
    
    3218
    +      {
    
    3219
    +        id: "useSmoothScrolling",
    
    3220
    +        l10nId: "browsing-use-smooth-scrolling",
    
    3221
    +      },
    
    3173 3222
           {
    
    3174 3223
             id: "useOverlayScrollbars",
    
    3175 3224
             l10nId: "browsing-gtk-use-non-overlay-scrollbars",
    
    ... ... @@ -3186,10 +3235,10 @@ SettingGroupManager.registerGroups({
    3186 3235
             id: "useFullKeyboardNavigation",
    
    3187 3236
             l10nId: "browsing-use-full-keyboard-navigation",
    
    3188 3237
           },
    
    3189
    -      // {
    
    3190
    -      //   id: "alwaysUnderlineLinks",
    
    3191
    -      //   l10nId: "browsing-always-underline-links",
    
    3192
    -      // },
    
    3238
    +      {
    
    3239
    +        id: "alwaysUnderlineLinks",
    
    3240
    +        l10nId: "browsing-always-underline-links",
    
    3241
    +      },
    
    3193 3242
           {
    
    3194 3243
             id: "searchStartTyping",
    
    3195 3244
             l10nId: "browsing-search-on-start-typing",
    
    ... ... @@ -3210,18 +3259,18 @@ SettingGroupManager.registerGroups({
    3210 3259
             l10nId: "browsing-media-control",
    
    3211 3260
             supportPage: "media-keyboard-control",
    
    3212 3261
           },
    
    3213
    -      // {
    
    3214
    -      //   id: "cfrRecommendations",
    
    3215
    -      //   l10nId: "browsing-cfr-recommendations",
    
    3216
    -      //   supportPage: "extensionrecommendations",
    
    3217
    -      //   subcategory: "cfraddons",
    
    3218
    -      // },
    
    3219
    -      // {
    
    3220
    -      //   id: "cfrRecommendations-features",
    
    3221
    -      //   l10nId: "browsing-cfr-features",
    
    3222
    -      //   supportPage: "extensionrecommendations",
    
    3223
    -      //   subcategory: "cfrfeatures",
    
    3224
    -      // },
    
    3262
    +      {
    
    3263
    +        id: "cfrRecommendations",
    
    3264
    +        l10nId: "browsing-cfr-recommendations",
    
    3265
    +        supportPage: "extensionrecommendations",
    
    3266
    +        subcategory: "cfraddons",
    
    3267
    +      },
    
    3268
    +      {
    
    3269
    +        id: "cfrRecommendations-features",
    
    3270
    +        l10nId: "browsing-cfr-features",
    
    3271
    +        supportPage: "extensionrecommendations",
    
    3272
    +        subcategory: "cfrfeatures",
    
    3273
    +      },
    
    3225 3274
           {
    
    3226 3275
             id: "linkPreviewEnabled",
    
    3227 3276
             l10nId: "link-preview-settings-enable",
    
    ... ... @@ -3812,6 +3861,21 @@ SettingGroupManager.registerGroups({
    3812 3861
           },
    
    3813 3862
         ],
    
    3814 3863
       },
    
    3864
    +  // Hide the payments and addresses settings. tor-browser#44460.
    
    3865
    +  // NOTE: "payments" and "addresses" are usually configured in
    
    3866
    +  // FormAutofillPreferences.sys.mjs. But this never runs because the "autofill"
    
    3867
    +  // extension is excluded from the build. So we configure them ourselves with
    
    3868
    +  // an empty config. See tor-browser#44630.
    
    3869
    +  payments: {
    
    3870
    +    hidden: true,
    
    3871
    +    hiddenFromSearch: true,
    
    3872
    +    items: [],
    
    3873
    +  },
    
    3874
    +  addresses: {
    
    3875
    +    hidden: true,
    
    3876
    +    hiddenFromSearch: true,
    
    3877
    +    items: [],
    
    3878
    +  },
    
    3815 3879
       history: {
    
    3816 3880
         l10nId: "history-group",
    
    3817 3881
         headingLevel: 2,
    

  • browser/components/preferences/privacy.inc.xhtml
    ... ... @@ -393,7 +393,7 @@
    393 393
         </vbox>
    
    394 394
       </vbox>
    
    395 395
     </groupbox>
    
    396
    -<html:setting-group id="nonTechnicalPrivacyGroup" groupid="nonTechnicalPrivacy" data-category="panePrivacy" data-hidden-from-search="true" hidden="true" data-srd-groupid="nonTechnicalPrivacy2"/>
    
    396
    +<html:setting-group id="nonTechnicalPrivacyGroup" groupid="nonTechnicalPrivacy" data-category="panePrivacy" hidden="true" data-srd-groupid="nonTechnicalPrivacy2"/>
    
    397 397
     <html:setting-group groupid="nonTechnicalPrivacy2" data-category="panePrivacy" hidden="true"/>
    
    398 398
     
    
    399 399
     <!-- Firefox VPN - IP Protection -->
    
    ... ... @@ -554,13 +554,8 @@
    554 554
     
    
    555 555
     <html:setting-group groupid="passwords" hidden="true" data-category="panePrivacy" />
    
    556 556
     
    
    557
    -<!-- groupid="payments" and groupid="addresses" are configured by
    
    558
    -   - FormAutofillPreferences.sys.mjs via FormAutofillStatus. But since the
    
    559
    -   - "autofill" extension is excluded from the build, FormAutofillStatus is
    
    560
    -   - never initialised. So we add the would-be data-hidden-* attributes
    
    561
    -   - explicitly here instead. See tor-browser#44460. -->
    
    562
    -<html:setting-group data-category="panePrivacy" data-subcategory="payment-methods-autofill credit-card-autofill" groupid="payments" data-group="formAutofill" hidden="true" data-hidden-from-search="true" data-hidden-by-setting-group="" />
    
    563
    -<html:setting-group data-category="panePrivacy" data-subcategory="addresses-autofill address-autofill" groupid="addresses" data-group="formAutofill" hidden="true" data-hidden-from-search="true" data-hidden-by-setting-group="" />
    
    557
    +<html:setting-group data-category="panePrivacy" data-subcategory="payment-methods-autofill credit-card-autofill" groupid="payments" data-group="formAutofill" hidden="true" />
    
    558
    +<html:setting-group data-category="panePrivacy" data-subcategory="addresses-autofill address-autofill" groupid="addresses" data-group="formAutofill" hidden="true" />
    
    564 559
     
    
    565 560
     <!-- History -->
    
    566 561
     <html:setting-group groupid="history" data-category="panePrivacy" hidden="true" data-srd-groupid="history2"/>
    

  • browser/components/preferences/privacy.js
    ... ... @@ -158,7 +158,6 @@ Preferences.addAll([
    158 158
       { id: "privacy.fingerprintingProtection.pbmode", type: "bool" },
    
    159 159
     
    
    160 160
       // Resist Fingerprinting
    
    161
    -  { id: "privacy.resistFingerprinting", type: "bool" },
    
    162 161
       { id: "privacy.resistFingerprinting.pbmode", type: "bool" },
    
    163 162
     
    
    164 163
       // Social tracking
    
    ... ... @@ -909,12 +908,18 @@ if (SECURITY_PRIVACY_STATUS_CARD_ENABLED) {
    909 908
           "etpCustomEnabled",
    
    910 909
           ...SECURITY_WARNINGS.map(warning => warning.id),
    
    911 910
         ],
    
    911
    +    // Hide the privacy card. tor-browser#44829.
    
    912
    +    visible: () => false,
    
    912 913
       });
    
    913 914
     
    
    914 915
       Preferences.addSetting({
    
    915 916
         id: "warningCard",
    
    916 917
         deps: SECURITY_WARNINGS.map(warning => warning.id),
    
    917 918
         visible: deps => {
    
    919
    +      // Hide the privacy card's warnings. tor-browser#44829.
    
    920
    +      if (AppConstants.BASE_BROWSER_VERSION) {
    
    921
    +        return false;
    
    922
    +      }
    
    918 923
           const count = Object.values(deps).filter(
    
    919 924
             depSetting => depSetting.visible
    
    920 925
           ).length;
    
    ... ... @@ -1247,6 +1252,10 @@ Preferences.addSetting({
    1247 1252
       pref: "privacy.globalprivacycontrol.enabled",
    
    1248 1253
       deps: ["gpcFunctionalityEnabled"],
    
    1249 1254
       visible: ({ gpcFunctionalityEnabled }) => {
    
    1255
    +    // Hide GPC. tor-browser#42777.
    
    1256
    +    if (AppConstants.BASE_BROWSER_VERSION) {
    
    1257
    +      return false;
    
    1258
    +    }
    
    1250 1259
         return gpcFunctionalityEnabled.value;
    
    1251 1260
       },
    
    1252 1261
     });
    
    ... ... @@ -1258,6 +1267,13 @@ Preferences.addSetting({
    1258 1267
       id: "relayIntegration",
    
    1259 1268
       deps: ["savePasswords", "relayFeature"],
    
    1260 1269
       visible: () => {
    
    1270
    +    // Hide Firefox Relay. tor-browser#43109 and tor-browser#42814.
    
    1271
    +    // NOTE: Whilst `FirefoxRelay.isDisabled` is `true` due to preferences we
    
    1272
    +    // set for Base Browser, `FirefoxRelay.isAvailable` is also `true` in this
    
    1273
    +    // case, hence why we still need to hide this unconditionally.
    
    1274
    +    if (AppConstants.BASE_BROWSER_VERSION) {
    
    1275
    +      return false;
    
    1276
    +    }
    
    1261 1277
         return FirefoxRelay.isAvailable;
    
    1262 1278
       },
    
    1263 1279
       disabled: ({ savePasswords, relayFeature }) => {
    
    ... ... @@ -2643,6 +2659,8 @@ Preferences.addSetting({
    2643 2659
     
    
    2644 2660
     Preferences.addSetting({
    
    2645 2661
       id: "etpStatusBoxGroup",
    
    2662
    +  // Hide enhanced tracking protection (ETP). tor-browser#26345.
    
    2663
    +  visible: () => false,
    
    2646 2664
     });
    
    2647 2665
     
    
    2648 2666
     Preferences.addSetting({
    
    ... ... @@ -2675,6 +2693,8 @@ Preferences.addSetting({
    2675 2693
     
    
    2676 2694
     Preferences.addSetting({
    
    2677 2695
       id: "protectionsDashboardLink",
    
    2696
    +  // Hide enhanced tracking protection (ETP). tor-browser#26345.
    
    2697
    +  visible: () => false,
    
    2678 2698
     });
    
    2679 2699
     
    
    2680 2700
     Preferences.addSetting({
    
    ... ... @@ -2727,11 +2747,6 @@ Preferences.addSetting({
    2727 2747
       },
    
    2728 2748
     });
    
    2729 2749
     
    
    2730
    -Preferences.addSetting({
    
    2731
    -  id: "resistFingerprinting",
    
    2732
    -  pref: "privacy.resistFingerprinting",
    
    2733
    -});
    
    2734
    -
    
    2735 2750
     Preferences.addSetting({
    
    2736 2751
       id: "resistFingerprintingPBM",
    
    2737 2752
       pref: "privacy.resistFingerprinting.pbmode",
    
    ... ... @@ -3560,6 +3575,12 @@ var gPrivacyPane = {
    3560 3575
         initSettingGroup("cookiesAndSiteData2");
    
    3561 3576
         initSettingGroup("certificates");
    
    3562 3577
         initSettingGroup("ipprotection");
    
    3578
    +    // NOTE: "payments" and "addresses" are usually initialised by
    
    3579
    +    // FormAutofillPreferences.sys.mjs via FormAutofillStatus. But this never
    
    3580
    +    // runs because the "autofill" extension is excluded from the build. So we
    
    3581
    +    // initialise them ourselves with an empty config. See tor-browser#44630.
    
    3582
    +    initSettingGroup("payments");
    
    3583
    +    initSettingGroup("addresses");
    
    3563 3584
         initSettingGroup("history");
    
    3564 3585
         initSettingGroup("history2");
    
    3565 3586
         initSettingGroup("permissions");
    

  • _______________________________________________
    tor-commits mailing list -- tor-commits@xxxxxxxxxxxxxxxxxxxx
    To unsubscribe send an email to tor-commits-leave@xxxxxxxxxxxxxxxxxxxx