tbb-tests/browser_tor_TB4.js

Wed, 31 Dec 2014 06:55:50 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:55:50 +0100
changeset 2
7e26c7da4463
permissions
-rw-r--r--

Added tag UPSTREAM_283F7C6 for changeset ca08bd8f51b2

     1 // # Test for TB4: Tor Browser's Firefox preference overrides
     2 // Simple regression tests to check the value of each pref and
     3 // decides if it is set as expected.
     5 // TODO: Write unit tests to check that each pref setting here
     6 // causes the browser to have the desired behavior (a big task). 
     8 function test() {
    10 let expectedPrefs = [
    11    // Disable browser auto updaters and associated homepage notifications
    12    ["app.update.auto", false],
    13    ["app.update.enabled", false],
    14    ["browser.search.update", false],
    15    ["browser.rights.3.shown", true],
    16    ["browser.startup.homepage_override.mstone", "ignore"],
    17    ["startup.homepage_welcome_url", ""],
    18    ["startup.homepage_override_url", ""],
    20    // Disk activity: Disable Browsing History Storage
    21    ["browser.privatebrowsing.autostart", true],
    22    ["browser.cache.disk.enable", false],
    23    ["browser.cache.offline.enable", false],
    24    ["dom.indexedDB.enabled", false],
    25    ["permissions.memory_only", true],
    26    ["network.cookie.lifetimePolicy", 2],
    27    ["browser.download.manager.retention", 1],
    28    ["security.nocertdb", true],
    30    // Disk activity: TBB Directory Isolation
    31    ["browser.download.useDownloadDir", false],
    32    ["browser.shell.checkDefaultBrowser", false],
    33    ["browser.download.manager.addToRecentDocs", false],
    35    // Misc privacy: Disk
    36    ["signon.rememberSignons", false],
    37    ["browser.formfill.enable", false],
    38    ["signon.autofillForms", false],
    39    ["browser.sessionstore.privacy_level", 2],
    40    ["media.cache_size", 0],
    42    // Misc privacy: Remote
    43    ["browser.send_pings", false],
    44    ["geo.enabled", false],
    45    ["geo.wifi.uri", ""],
    46    ["browser.search.suggest.enabled", false],
    47    ["browser.safebrowsing.enabled", false],
    48    ["browser.safebrowsing.malware.enabled", false],
    49    ["browser.download.manager.scanWhenDone", false], // prevents AV remote reporting of downloads
    50    ["extensions.ui.lastCategory", "addons://list/extension"],
    51    ["datareporting.healthreport.service.enabled", false], // Yes, all three of these must be set
    52    ["datareporting.healthreport.uploadEnabled", false],
    53    ["datareporting.policy.dataSubmissionEnabled", false],
    54    ["security.mixed_content.block_active_content", false], // Disable until https://bugzilla.mozilla.org/show_bug.cgi?id=878890 is patched
    55    ["browser.syncPromoViewsLeftMap", "{\"addons\":0, \"passwords\":0, \"bookmarks\":0}"], // Don't promote sync
    56    ["services.sync.engine.prefs", false], // Never sync prefs, addons, or tabs with other browsers
    57    ["services.sync.engine.addons", false],
    58    ["services.sync.engine.tabs", false],
    59    ["extensions.getAddons.cache.enabled", false], // https://blog.mozilla.org/addons/how-to-opt-out-of-add-on-metadata-updates/
    61    // Fingerprinting
    62    ["webgl.min_capability_mode", true],
    63    ["webgl.disable-extensions", true],
    64    ["dom.battery.enabled", false], // fingerprinting due to differing OS implementations
    65    ["dom.network.enabled",false], // fingerprinting due to differing OS implementations
    66    ["browser.display.max_font_attempts",10],
    67    ["browser.display.max_font_count",10],
    68    ["gfx.downloadable_fonts.fallback_delay", -1],
    69    ["general.appname.override", "Netscape"],
    70    ["general.appversion.override", "5.0 (Windows)"],
    71    ["general.oscpu.override", "Windows NT 6.1"],
    72    ["general.platform.override", "Win32"],
    73    ["general.useragent.override", "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0"],
    74    ["general.productSub.override", "20100101"],
    75    ["general.buildID.override", "20100101"],
    76    ["browser.startup.homepage_override.buildID", "20100101"],
    77    ["general.useragent.vendor", ""],
    78    ["general.useragent.vendorSub", ""],
    79    ["dom.enable_performance", false],
    80    ["plugin.expose_full_path", false],
    81    ["browser.zoom.siteSpecific", false],
    82    ["intl.charset.default", "windows-1252"],
    83    //["intl.accept_languages", "en-us, en"], // Set by Torbutton
    84    //["intl.accept_charsets", "iso-8859-1,*,utf-8"], // Set by Torbutton
    85    //["intl.charsetmenu.browser.cache", "UTF-8"], // Set by Torbutton
    87    // Third party stuff
    88    ["network.cookie.cookieBehavior", 1],
    89    ["security.enable_tls_session_tickets", false],
    90    ["network.http.spdy.enabled", false], // Stores state and may have keepalive issues (both fixable)
    91    ["network.http.spdy.enabled.v2", false], // Seems redundant, but just in case
    92    ["network.http.spdy.enabled.v3", false], // Seems redundant, but just in case
    94    // Proxy and proxy security
    95    ["network.proxy.socks", "127.0.0.1"],
    96    ["network.proxy.socks_port", 9150],
    97    ["network.proxy.socks_remote_dns", true],
    98    ["network.proxy.no_proxies_on", ""], // For fingerprinting and local service vulns (#10419)
    99    ["network.proxy.type", 1],
   100    ["network.security.ports.banned", "9050,9051,9150,9151"],
   101    ["network.dns.disablePrefetch", true],
   102    ["network.protocol-handler.external-default", false],
   103    ["network.protocol-handler.external.mailto", false],
   104    ["network.protocol-handler.external.news", false],
   105    ["network.protocol-handler.external.nntp", false],
   106    ["network.protocol-handler.external.snews", false],
   107    ["network.protocol-handler.warn-external.mailto", true],
   108    ["network.protocol-handler.warn-external.news", true],
   109    ["network.protocol-handler.warn-external.nntp", true],
   110    ["network.protocol-handler.warn-external.snews", true],
   111    ["plugins.click_to_play", true],
   113    // Network and performance
   114    ["network.http.pipelining", true],
   115    ["network.http.pipelining.aggressive", true],
   116    ["network.http.pipelining.maxrequests", 12],
   117    ["network.http.pipelining.ssl", true],
   118    ["network.http.proxy.pipelining", true],
   119    ["security.ssl.enable_false_start", true],
   120    ["network.http.keep-alive.timeout", 20],
   121    ["network.http.connection-retry-timeout", 0],
   122    ["network.http.max-persistent-connections-per-proxy", 256],
   123    ["network.http.pipelining.reschedule-timeout", 15000],
   124    ["network.http.pipelining.read-timeout", 60000],
   125    // Hacked pref: Now means "Attempt to pipeline at least this many requests together"
   126    ["network.http.pipelining.max-optimistic-requests", 3],
   127    ["security.disable_session_identifiers", true],
   129    // Extension support
   130    ["extensions.autoDisableScopes", 0],
   131    ["extensions.bootstrappedAddons", "{}"],
   132    ["extensions.checkCompatibility.4.*", false],
   133    ["extensions.databaseSchema", 3],
   134    ["extensions.enabledAddons", "https-everywhere%40eff.org:3.1.4,%7B73a6fe31-595d-460b-a920-fcc0f8843232%7D:2.6.6.1,torbutton%40torproject.org:1.5.2,ubufox%40ubuntu.com:2.6,tor-launcher%40torproject.org:0.1.1pre-alpha,%7B972ce4c6-7e08-4474-a285-3208198ce6fd%7D:17.0.5"],
   135    ["extensions.enabledItems", "langpack-en-US@firefox.mozilla.org:,{73a6fe31-595d-460b-a920-fcc0f8843232}:1.9.9.57,{e0204bd5-9d31-402b-a99d-a6aa8ffebdca}:1.2.4,{972ce4c6-7e08-4474-a285-3208198ce6fd}:3.5.8"],
   136    ["extensions.enabledScopes", 1],
   137    ["extensions.pendingOperations", false],
   138    ["xpinstall.whitelist.add", ""],
   139    ["xpinstall.whitelist.add.36", ""],
   141    // Omnibox settings
   142    ["keyword.URL", "https://startpage.com/do/search?q="],
   144    // Hacks/workarounds: Direct2D seems to crash w/ lots of video cards w/ MinGW?
   145    // Nvida cards also experience crashes without the second pref set to disabled
   146    ["gfx.direct2d.disabled", true],
   147    ["layers.acceleration.disabled", true],
   149    // Security enhancements
   150    // https://trac.torproject.org/projects/tor/ticket/9387#comment:17
   151    ["javascript.options.ion.content", false],
   152    ["javascript.options.baselinejit.content", false],
   153    ["javascript.options.asmjs", false],
   154    ["javascript.options.typeinference", false],
   156    // Audio_data is deprecated in future releases, but still present
   157    // in FF24. This is a dangerous combination (spotted by iSec)
   158    ["media.audio_data.enabled", false],
   160    // Enable TLS 1.1 and 1.2:
   161    // https://trac.torproject.org/projects/tor/ticket/11253
   162    ["security.tls.version.max", 3],
   164    // Version placeholder
   165    ["torbrowser.version", "UNKNOWN"],
   167   ];
   172 let getPref = function (prefName) {
   173   let type = gPrefService.getPrefType(prefName);
   174   if (type === gPrefService.PREF_INT) return gPrefService.getIntPref(prefName);
   175   if (type === gPrefService.PREF_BOOL) return gPrefService.getBoolPref(prefName);
   176   if (type === gPrefService.PREF_STRING) return gPrefService.getCharPref(prefName);
   177   // Something went wrong.
   178   throw new Error("Can't access pref.");
   179 };
   181 let testPref = function([key, expectedValue]) {
   182   let foundValue = getPref(key);
   183   is(foundValue, expectedValue, "Pref '" + key + "' should be '" + expectedValue +"'.");
   184 };  
   186 expectedPrefs.map(testPref);
   188 } // end function test()

mercurial