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

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



Title: GitLab

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

Commits:

  • 99fde07d
    by Henry Wilkes at 2026-05-06T11:06:09+01:00
    fixup! BB 41739: Remove "Website appearance" from about:preferences.
    
    BB 44630: Stop hiding with data-hidden-from-search.
    
  • 74a48a7e
    by Henry Wilkes at 2026-05-06T11:06:10+01:00
    fixup! BB 42777: Hide Website Privacy Preferences.
    
    BB 44630: Stop hiding with data-hidden-from-search.
    
  • c3a9bae0
    by Henry Wilkes at 2026-05-06T11:06:11+01:00
    fixup! BB 42070: Hide "Use smooth scrolling" from settings
    
    BB 44630: Stop commenting out setting controls.
    
  • 374b9b6d
    by Henry Wilkes at 2026-05-06T11:06:11+01:00
    fixup! BB 43117: Hide "Always underline links" from settings.
    
    BB 44630: Stop commenting out setting controls.
    
  • b5a36fd7
    by Henry Wilkes at 2026-05-06T11:06:12+01:00
    fixup! BB 43118: Hide feature recommendation (CFR) settings.
    
    BB 44630: Stop commenting out setting controls.
    
  • 2043d356
    by Henry Wilkes at 2026-05-06T11:07:24+01:00
    fixup! BB 44711: Hide unwanted setting controls in Base Browser.
    
    BB 44630: Hide settings using the config.
    
  • 3dfcc0ae
    by Henry Wilkes at 2026-05-06T11:07:25+01:00
    fixup! TB 31286: Implementation of bridge, proxy, and firewall settings in about:preferences#connection
    
    TB 44630: Stop hiding with data-hidden-from-search.
    
  • 9c9e31b5
    by Henry Wilkes at 2026-05-06T11:07:25+01:00
    fixup! TB 44711: Hide unwanted setting controls in Tor Browser.
    
    TB 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" />
    
    ... ... @@ -383,5 +383,5 @@
    383 383
     <html:setting-group groupid="browsing" data-category="paneGeneral" hidden="true"/>
    
    384 384
     
    
    385 385
     <!-- Network Settings-->
    
    386
    -<html:setting-group groupid="networkProxy" data-category="paneGeneral" data-subcategory="netsettings" hidden="true" data-hidden-from-search="true" />
    
    386
    +<html:setting-group groupid="networkProxy" data-category="paneGeneral" data-subcategory="netsettings" hidden="true" />
    
    387 387
     </html:template>

  • 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
    
    ... ... @@ -1121,6 +1170,9 @@ Preferences.addSetting({
    1121 1170
     
    
    1122 1171
     Preferences.addSetting({
    
    1123 1172
       id: "connectionSettings",
    
    1173
    +  // Hide the connection settings for Tor Browser since these would interfere
    
    1174
    +  // with the settings in the "connection" pane. tor-browser#31286.
    
    1175
    +  visible: () => false,
    
    1124 1176
       onUserClick: () => gMainPane.showConnections(),
    
    1125 1177
       controllingExtensionInfo: {
    
    1126 1178
         storeId: PROXY_KEY,
    
    ... ... @@ -3170,10 +3222,10 @@ SettingGroupManager.registerGroups({
    3170 3222
             id: "useAutoScroll",
    
    3171 3223
             l10nId: "browsing-use-autoscroll",
    
    3172 3224
           },
    
    3173
    -      // {
    
    3174
    -      //   id: "useSmoothScrolling",
    
    3175
    -      //   l10nId: "browsing-use-smooth-scrolling",
    
    3176
    -      // },
    
    3225
    +      {
    
    3226
    +        id: "useSmoothScrolling",
    
    3227
    +        l10nId: "browsing-use-smooth-scrolling",
    
    3228
    +      },
    
    3177 3229
           {
    
    3178 3230
             id: "useOverlayScrollbars",
    
    3179 3231
             l10nId: "browsing-gtk-use-non-overlay-scrollbars",
    
    ... ... @@ -3190,10 +3242,10 @@ SettingGroupManager.registerGroups({
    3190 3242
             id: "useFullKeyboardNavigation",
    
    3191 3243
             l10nId: "browsing-use-full-keyboard-navigation",
    
    3192 3244
           },
    
    3193
    -      // {
    
    3194
    -      //   id: "alwaysUnderlineLinks",
    
    3195
    -      //   l10nId: "browsing-always-underline-links",
    
    3196
    -      // },
    
    3245
    +      {
    
    3246
    +        id: "alwaysUnderlineLinks",
    
    3247
    +        l10nId: "browsing-always-underline-links",
    
    3248
    +      },
    
    3197 3249
           {
    
    3198 3250
             id: "searchStartTyping",
    
    3199 3251
             l10nId: "browsing-search-on-start-typing",
    
    ... ... @@ -3214,18 +3266,18 @@ SettingGroupManager.registerGroups({
    3214 3266
             l10nId: "browsing-media-control",
    
    3215 3267
             supportPage: "media-keyboard-control",
    
    3216 3268
           },
    
    3217
    -      // {
    
    3218
    -      //   id: "cfrRecommendations",
    
    3219
    -      //   l10nId: "browsing-cfr-recommendations",
    
    3220
    -      //   supportPage: "extensionrecommendations",
    
    3221
    -      //   subcategory: "cfraddons",
    
    3222
    -      // },
    
    3223
    -      // {
    
    3224
    -      //   id: "cfrRecommendations-features",
    
    3225
    -      //   l10nId: "browsing-cfr-features",
    
    3226
    -      //   supportPage: "extensionrecommendations",
    
    3227
    -      //   subcategory: "cfrfeatures",
    
    3228
    -      // },
    
    3269
    +      {
    
    3270
    +        id: "cfrRecommendations",
    
    3271
    +        l10nId: "browsing-cfr-recommendations",
    
    3272
    +        supportPage: "extensionrecommendations",
    
    3273
    +        subcategory: "cfraddons",
    
    3274
    +      },
    
    3275
    +      {
    
    3276
    +        id: "cfrRecommendations-features",
    
    3277
    +        l10nId: "browsing-cfr-features",
    
    3278
    +        supportPage: "extensionrecommendations",
    
    3279
    +        subcategory: "cfrfeatures",
    
    3280
    +      },
    
    3229 3281
           {
    
    3230 3282
             id: "linkPreviewEnabled",
    
    3231 3283
             l10nId: "link-preview-settings-enable",
    
    ... ... @@ -3816,6 +3868,21 @@ SettingGroupManager.registerGroups({
    3816 3868
           },
    
    3817 3869
         ],
    
    3818 3870
       },
    
    3871
    +  // Hide the payments and addresses settings. tor-browser#44460.
    
    3872
    +  // NOTE: "payments" and "addresses" are usually configured in
    
    3873
    +  // FormAutofillPreferences.sys.mjs. But this never runs because the "autofill"
    
    3874
    +  // extension is excluded from the build. So we configure them ourselves with
    
    3875
    +  // an empty config. See tor-browser#44630.
    
    3876
    +  payments: {
    
    3877
    +    hidden: true,
    
    3878
    +    hiddenFromSearch: true,
    
    3879
    +    items: [],
    
    3880
    +  },
    
    3881
    +  addresses: {
    
    3882
    +    hidden: true,
    
    3883
    +    hiddenFromSearch: true,
    
    3884
    +    items: [],
    
    3885
    +  },
    
    3819 3886
       history: {
    
    3820 3887
         l10nId: "history-group",
    
    3821 3888
         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 -->
    
    ... ... @@ -555,13 +555,8 @@
    555 555
     
    
    556 556
     #include ../onionservices/content/authPreferences.inc.xhtml
    
    557 557
     
    
    558
    -<!-- groupid="payments" and groupid="addresses" are configured by
    
    559
    -   - FormAutofillPreferences.sys.mjs via FormAutofillStatus. But since the
    
    560
    -   - "autofill" extension is excluded from the build, FormAutofillStatus is
    
    561
    -   - never initialised. So we add the would-be data-hidden-* attributes
    
    562
    -   - explicitly here instead. See tor-browser#44460. -->
    
    563
    -<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="" />
    
    564
    -<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="" />
    
    558
    +<html:setting-group data-category="panePrivacy" data-subcategory="payment-methods-autofill credit-card-autofill" groupid="payments" data-group="formAutofill" hidden="true" />
    
    559
    +<html:setting-group data-category="panePrivacy" data-subcategory="addresses-autofill address-autofill" groupid="addresses" data-group="formAutofill" hidden="true" />
    
    565 560
     
    
    566 561
     <!-- History -->
    
    567 562
     <html:setting-group groupid="history" data-category="panePrivacy" hidden="true" data-srd-groupid="history2"/>
    

  • browser/components/preferences/privacy.js
    ... ... @@ -164,7 +164,6 @@ Preferences.addAll([
    164 164
       { id: "privacy.fingerprintingProtection.pbmode", type: "bool" },
    
    165 165
     
    
    166 166
       // Resist Fingerprinting
    
    167
    -  { id: "privacy.resistFingerprinting", type: "bool" },
    
    168 167
       { id: "privacy.resistFingerprinting.pbmode", type: "bool" },
    
    169 168
     
    
    170 169
       // Social tracking
    
    ... ... @@ -915,12 +914,18 @@ if (SECURITY_PRIVACY_STATUS_CARD_ENABLED) {
    915 914
           "etpCustomEnabled",
    
    916 915
           ...SECURITY_WARNINGS.map(warning => warning.id),
    
    917 916
         ],
    
    917
    +    // Hide the privacy card. tor-browser#44829.
    
    918
    +    visible: () => false,
    
    918 919
       });
    
    919 920
     
    
    920 921
       Preferences.addSetting({
    
    921 922
         id: "warningCard",
    
    922 923
         deps: SECURITY_WARNINGS.map(warning => warning.id),
    
    923 924
         visible: deps => {
    
    925
    +      // Hide the privacy card's warnings. tor-browser#44829.
    
    926
    +      if (AppConstants.BASE_BROWSER_VERSION) {
    
    927
    +        return false;
    
    928
    +      }
    
    924 929
           const count = Object.values(deps).filter(
    
    925 930
             depSetting => depSetting.visible
    
    926 931
           ).length;
    
    ... ... @@ -1253,6 +1258,10 @@ Preferences.addSetting({
    1253 1258
       pref: "privacy.globalprivacycontrol.enabled",
    
    1254 1259
       deps: ["gpcFunctionalityEnabled"],
    
    1255 1260
       visible: ({ gpcFunctionalityEnabled }) => {
    
    1261
    +    // Hide GPC. tor-browser#42777.
    
    1262
    +    if (AppConstants.BASE_BROWSER_VERSION) {
    
    1263
    +      return false;
    
    1264
    +    }
    
    1256 1265
         return gpcFunctionalityEnabled.value;
    
    1257 1266
       },
    
    1258 1267
     });
    
    ... ... @@ -1264,6 +1273,13 @@ Preferences.addSetting({
    1264 1273
       id: "relayIntegration",
    
    1265 1274
       deps: ["savePasswords", "relayFeature"],
    
    1266 1275
       visible: () => {
    
    1276
    +    // Hide Firefox Relay. tor-browser#43109 and tor-browser#42814.
    
    1277
    +    // NOTE: Whilst `FirefoxRelay.isDisabled` is `true` due to preferences we
    
    1278
    +    // set for Base Browser, `FirefoxRelay.isAvailable` is also `true` in this
    
    1279
    +    // case, hence why we still need to hide this unconditionally.
    
    1280
    +    if (AppConstants.BASE_BROWSER_VERSION) {
    
    1281
    +      return false;
    
    1282
    +    }
    
    1267 1283
         return FirefoxRelay.isAvailable;
    
    1268 1284
       },
    
    1269 1285
       disabled: ({ savePasswords, relayFeature }) => {
    
    ... ... @@ -2203,6 +2219,8 @@ Preferences.addSetting({
    2203 2219
     
    
    2204 2220
     Preferences.addSetting({
    
    2205 2221
       id: "dohBox",
    
    2222
    +  // Hide DNS over HTTPS. tor-browser#41906.
    
    2223
    +  visible: () => false,
    
    2206 2224
     });
    
    2207 2225
     
    
    2208 2226
     Preferences.addSetting({
    
    ... ... @@ -2645,6 +2663,8 @@ Preferences.addSetting({
    2645 2663
     
    
    2646 2664
     Preferences.addSetting({
    
    2647 2665
       id: "etpStatusBoxGroup",
    
    2666
    +  // Hide enhanced tracking protection (ETP). tor-browser#26345.
    
    2667
    +  visible: () => false,
    
    2648 2668
     });
    
    2649 2669
     
    
    2650 2670
     Preferences.addSetting({
    
    ... ... @@ -2677,6 +2697,8 @@ Preferences.addSetting({
    2677 2697
     
    
    2678 2698
     Preferences.addSetting({
    
    2679 2699
       id: "protectionsDashboardLink",
    
    2700
    +  // Hide enhanced tracking protection (ETP). tor-browser#26345.
    
    2701
    +  visible: () => false,
    
    2680 2702
     });
    
    2681 2703
     
    
    2682 2704
     Preferences.addSetting({
    
    ... ... @@ -2729,11 +2751,6 @@ Preferences.addSetting({
    2729 2751
       },
    
    2730 2752
     });
    
    2731 2753
     
    
    2732
    -Preferences.addSetting({
    
    2733
    -  id: "resistFingerprinting",
    
    2734
    -  pref: "privacy.resistFingerprinting",
    
    2735
    -});
    
    2736
    -
    
    2737 2754
     Preferences.addSetting({
    
    2738 2755
       id: "resistFingerprintingPBM",
    
    2739 2756
       pref: "privacy.resistFingerprinting.pbmode",
    
    ... ... @@ -3562,6 +3579,12 @@ var gPrivacyPane = {
    3562 3579
         initSettingGroup("cookiesAndSiteData2");
    
    3563 3580
         initSettingGroup("certificates");
    
    3564 3581
         initSettingGroup("ipprotection");
    
    3582
    +    // NOTE: "payments" and "addresses" are usually initialised by
    
    3583
    +    // FormAutofillPreferences.sys.mjs via FormAutofillStatus. But this never
    
    3584
    +    // runs because the "autofill" extension is excluded from the build. So we
    
    3585
    +    // initialise them ourselves with an empty config. See tor-browser#44630.
    
    3586
    +    initSettingGroup("payments");
    
    3587
    +    initSettingGroup("addresses");
    
    3565 3588
         initSettingGroup("history");
    
    3566 3589
         initSettingGroup("history2");
    
    3567 3590
         initSettingGroup("permissions");
    

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