Skip to content
  • Mike Perry's avatar
    TB4: Tor Browser's Firefox preference overrides. · e29c2b2c
    Mike Perry authored and Alex Catarineu's avatar Alex Catarineu committed
    This hack directly includes our preference changes in omni.ja.
    
    Bug 18292: Staged updates fail on Windows
    
    Temporarily disable staged updates on Windows.
    
    Bug 18297: Use separate Noto JP,KR,SC,TC fonts
    
    Bug 23404: Add Noto Sans Buginese to the macOS whitelist
    
    Bug 23745: Set dom.indexedDB.enabled = true
    
    Bug 13575: Disable randomised Firefox HTTP cache decay user tests.
    (Fernando Fernandez Mancera <ffmancera@riseup.net>)
    
    Bug 17252: Enable session identifiers with FPI
    
    Session tickets and session identifiers were isolated
    by OriginAttributes, so we can re-enable them by
    allowing the default value (true) of
    "security.ssl.disable_session_identifiers".
    
    The pref "security.enable_tls_session_tickets" is obsolete
    (removed in https://bugzilla.mozilla.org/917049)
    
    Bug 14952: Enable http/2 and AltSvc
    
    In Firefox, SPDY/HTTP2 now uses Origin Attributes for
    isolation of connections, push streams, origin frames, etc.
    That means we get first-party isolation provided
    "privacy.firstparty.isolate" is true. So in this patch, we
    stop overriding "network.http.spdy.enabled" and
    "network.http.spdy.enabled.http2".
    
    Alternate Services also use Origin Attributes for isolation.
    So we stop overriding
    "network.http.altsvc.enabled" and "network.http.altsvc.oe"
    as well.
    
    (All 4 of the abovementioned "network.http.*" prefs adopt
    Firefox 60ESR's default value of true.)
    
    However, we want to disable HTTP/2 push for now, so we
    set "network.http.spdy.allow-push" to false.
    
    "network.http.spdy.enabled.http2draft" was removed in Bug 1132357.
    "network.http.sped.enabled.v2" was removed in Bug 912550.
    "network.http.sped.enabled.v3" was removed in Bug 1097944.
    "network.http.sped.enabled.v3-1" was removed in Bug 1248197.
    
    Bug 26114: addons.mozilla.org is not special
    * Don't expose navigator.mozAddonManager on any site
    * Don't block NoScript from modifying addons.mozilla.org or other sites
    
    Enable ReaderView mode again (#27281).
    
    Bug 29916: Make sure enterprise policies are disabled
    
    Bug 2874: Block Components.interfaces from content
    
    Bug 26146: Spoof HTTP User-Agent header for desktop platforms
    
    In Tor Browser 8.0, the OS was revealed in both the HTTP User-Agent
    header and to JavaScript code via navigator.userAgent. To avoid
    leaking the OS inside each HTTP request (which many web servers
    log), always use the Windows 7 OS value in the desktop User-Agent
    header. We continue to allow access to the actual OS via JavaScript,
    since doing so improves compatibility with web applications such
    as GitHub and Google Docs.
    
    Bug 12885: Windows Jump Lists fail for Tor Browser
    
    Jumplist entries are stored in a binary file in:
      %APPDATA%\\Microsoft\Windows\Recent\CustomDestinations\
    and has a name in the form
      [a-f0-9]+.customDestinations-ms
    
    The hex at the front is unique per app, and is ultimately derived from
    something called the 'App User Model ID' (AUMID) via some unknown
    hashing method. The AUMID is provided as a key when programmatically
    creating, updating, and deleting a jumplist. The default behaviour in
    firefox is for the installer to define an AUMID for an app, and save it
    in the registry so that the jumplist data can be removed by the
    uninstaller.
    
    However, the Tor Browser does not set this (or any other) regkey during
    installation, so this codepath fails and the app's AUMID is left
    undefined. As a result the app's AUMID ends up being defined by
    windows, but unknowable by Tor Browser. This unknown AUMID is used to
    create and modify the jumplist, but the delete API requires that we
    provide the app's AUMID explicitly. Since we don't know what the AUMID
    is (since the expected regkey where it is normally stored does not
    exist) jumplist deletion will fail and we will leave behind a mostly
    empty customDestinations-ms file. The name of the file is derived from
    the binary path, so an enterprising person could reverse engineer how
    that hex name is calculated, and generate the name for Tor Browser's
    default Desktop installation path to determine whether a person had
    used Tor Browser in the past.
    
    The 'taskbar.grouping.useprofile' option that is enabled by this patch
    works around this AUMID problem by having firefox.exe create it's own
    AUMID based on the profile path (rather than looking for a regkey). This
    way, if a user goes in and enables and disables jumplist entries, the
    backing store is properly deleted.
    
    Unfortunately, all windows users currently have this file lurking in
    the above mentioned directory and this patch will not remove it since it
    was created with an unknown AUMID. However, another patch could be
    written which goes to that directory and deletes any item containing the
    'Tor Browser' string.  See bug 28996.
    
    Bug 31396: Disable indexedDB WebExtension storage backend.
    
    Bug 30845: Make sure default themes and other internal extensions are enabled
    
    Bug 28896: Enable extensions in private browsing by default
    
    Bug 31065: Explicitly allow proxying localhost
    
    Bug 31598: Enable letterboxing
    
    Disable Presentation API everywhere
    
    Bug 21549 - Use Firefox's WASM default pref. It is disabled at safer
    security levels.
    
    Bug 32321: Disable Mozilla's MitM pings
    
    Bug 19890: Disable installation of system addons
    
    By setting the URL to "" we make sure that already installed system
    addons get deleted as well.
    
    Bug 22548: Firefox downgrades VP9 videos to VP8.
    
    On systems where H.264 is not available or no HWA, VP9 is preferred. But in Tor
    Browser 7.0 all youtube videos are degraded to VP8.
    
    This behaviour can be turned off by setting media.benchmark.vp9.threshold to 0.
    All clients will get better experience and lower traffic, beause TBB doesn't
    use "Use hardware acceleration when available".
    
    Bug 25741 - TBA: Add mobile-override of 000-tor-browser prefs
    
    Bug 16441: Suppress "Reset Tor Browser" prompt.
    
    Bug 29120: Use the in-memory media cache and increase its maximum size.
    
    Bug 33697: use old search config based on list.json
    
    Bug 33855: Ensure that site-specific browser mode is disabled.
    
    Bug 30682: Disable Intermediate CA Preloading.
    
    Bug 40061: Omit the Windows default browser agent from the build
    e29c2b2c