We will want to set browser.selfsupport.enabled to false to disable Normandy aka Shield aka Self Support aka Self Repair. To be safe we can also redirect browser.selfsupport.url
We probably want to disable stuff under browser.uitour.
I'm not sure how to get to it in 52, but in 53, the WebIDE auto-installs some extensions it downloads from Mozilla. Probably best to disable it via devtools.webide.enabled
The Telemetry experiments features should be disabled (experiments.*)
There is something called "Extensions Discovery" governed by extensions.getAddons.showPane
Probably want to disable security.ssl.errorReporting
There's something called 'Social' under social.* including the scary one social.remote-install.enabled
We will want to set browser.selfsupport.enabled to false to disable Normandy aka Shield aka Self Support aka Self Repair. To be safe we can also redirect browser.selfsupport.url
We probably want to disable stuff under browser.uitour.
We already have browser.uitour.enabled = false but to be even safer maybe we should modify the browser.uitour prefs that contain URLs?
I'm not sure how to get to it in 52, but in 53, the WebIDE auto-installs some extensions it downloads from Mozilla. Probably best to disable it via devtools.webide.enabled
We already have the following in browser/app/profile/000-tor-browser.js:
pref("devtools.webide.autoinstallADBHelper", false);
pref("devtools.webide.autoinstallFxdtAdapters", false);
pref("devtools.webide.enabled", false);
pref("devtools.appmanager.enabled", false);
The Telemetry experiments features should be disabled (experiments.*)
Agreed.
There is something called "Extensions Discovery" governed by extensions.getAddons.showPane
Setting that pref to false removes the "Get Add-ons" panel from about:addons. I don't think we have to remove it, but doing so would discourage use of add-ons in Tor Browser (and we don't have any control over what add-ons Mozilla might show on that panel).
Probably want to disable security.ssl.errorReporting
Agreed.
There's something called 'Social' under social.* including the scary one social.remote-install.enabled
It looks like we have #13612 (moved) for this. We should look at it for ESR52.
Kathy and I reviewed the Firefox 46 and 47 changes (by looking at the "Firefox ## for Developers" web pages, the target_milestone=mozilla## bugs, and the target_milestone=Firefox%20## bugs). Before we move on to 48-52, we wanted to note here what we found so far:
d) TouchEvents are now enabled on Windows and Linux. I already poked #10286 (moved).
e) window.showModalDialog() is not available when e10s is enabled. Should we always make it unavailable (even when e10s is disabled)? Or maybe we don't care because we will probably enable e10s for all Tor Browser users or none.
https://bugzilla.mozilla.org/show_bug.cgi?id=1234700
f) Looking through the bug lists reminded us about Web Animations possibly providing a high resolution timing source. But we do have #18273 (moved) for that issue.
g) Similarly, we were reminded about WebAudio. See #13017 (moved).
h) We will need to set network.dns.blockDotOnion = false.
i) Should we disable about:profiles? Some of the functionality will confused our users, e.g., "Create New Profile" which may not work correctly on Linux and Windows and "Restart with Add-ons Disabled."
https://bugzilla.mozilla.org/show_bug.cgi?id=1235402
Here are some things Kathy and I found while reviewing Firefox 48 changes (we will need to file separate tickets for some of these, but as a first pass I am posting our notes in this ticket):
a) We should probably make sure screen sharing is disabled. Maybe this is covered by our removal of WebRTC, but we could also set these pref values to be sure:
media.getusermedia.screensharing.enabled = false
media.getusermedia.screensharing.allowed_domains = ""
b) Some safe browsing prefs have been renamed and other functionality has been added. We should disable all of it via the following pref values:
browser.safebrowsing.downloads.enabled = false
browser.safebrowsing.downloads.remote.enabled = false
browser.safebrowsing.malware.enabled = false
browser.safebrowsing.phishing.enabled = false
browser.safebrowsing.blockedURIs.enabled = false
d) From a fingerprinting perspective, the following bug is a little scary (consult Firefox prefs from CSS) but use seems to be limited to internal style sheets:
https://bugzilla.mozilla.org/show_bug.cgi?id=1259889
h) We may want to document for our Linux users that add-ons installed in the following directory do not have to be signed by Mozilla:
/usr/{lib,share}/mozilla/extensions
a) Graphite font rendering has been re-enabled. We need to decide if we want to disable it again or not.
b) Mozilla switched to compiling with Intel SSE2. We could do the same, although it would mean that Tor Browser would not run on some really old CPUs. Mozilla modified their Windows installer to notify and refuse to install if the CPU does not support SSE2.
https://bugzilla.mozilla.org/show_bug.cgi?id=1271759
e) The Bookmarks Toolbar is automatically shown when the user adds a bookmark to it. This will change the window size, but maybe this is used rarely enough that we do not care?
https://bugzilla.mozilla.org/show_bug.cgi?id=1219788
f) The window.isSecureContext API is interesting but may not add any fingerprinting or linkability risks. We should think about whether features that are being made "HTTPS only" should also be available on .onion sites.
https://developer.mozilla.org/en-US/docs/Web/API/Window/isSecureContext
b) When reviewing bugs, Kathy and I noticed that there seem to be a lot of crasher bugs associated with DOM Animation, e.g., UAF bugs. I think this is disabled by default via:
dom.animations-api.core.enabled = false
or maybe we also need to add the following if we want to turn it off completely?
dom.animations-api.element-animate.enabled
This might be something for the security slider eventually.
c) As part of our release procedures, do we double-check the HPKP expiration? We do not want to have a repeat of the problem where the pins expired. Mozilla seems to have bugs for each release, e.g.,
https://bugzilla.mozilla.org/show_bug.cgi?id=1307530
e) Do we want to disable Web Audio due to fingerprinting risks? Mozilla keeps adding more functionality. Maybe this is already covered by #13017 (moved).
Kathy and I reviewed the Firefox 46 and 47 changes (by looking at the "Firefox ## for Developers" web pages, the target_milestone=mozilla## bugs, and the target_milestone=Firefox%20## bugs). Before we move on to 48-52, we wanted to note here what we found so far:
d) TouchEvents are now enabled on Windows and Linux. I already poked #10286 (moved).
e) window.showModalDialog() is not available when e10s is enabled. Should we always make it unavailable (even when e10s is disabled)? Or maybe we don't care because we will probably enable e10s for all Tor Browser users or none.
https://bugzilla.mozilla.org/show_bug.cgi?id=1234700
I think we should not care. Besides that it seems that non of our code is using showModalDialog() anyway.
f) Looking through the bug lists reminded us about Web Animations possibly providing a high resolution timing source. But we do have #18273 (moved) for that issue.
g) Similarly, we were reminded about WebAudio. See #13017 (moved).
h) We will need to set network.dns.blockDotOnion = false.
Hm. You mean for the transparent proxying option?
i) Should we disable about:profiles? Some of the functionality will confused our users, e.g., "Create New Profile" which may not work correctly on Linux and Windows and "Restart with Add-ons Disabled."
https://bugzilla.mozilla.org/show_bug.cgi?id=1235402
That's in mozill52, right? But, yes, we should double-check that. I opened #21608 (moved).
Thanks. That bug and the docs say it is in mozilla51, but in any case we should take a look.
...
e) window.showModalDialog() is not available when e10s is enabled. Should we always make it unavailable (even when e10s is disabled)? Or maybe we don't care because we will probably enable e10s for all Tor Browser users or none.
https://bugzilla.mozilla.org/show_bug.cgi?id=1234700
I think we should not care. Besides that it seems that non of our code is using showModalDialog() anyway.
Okay. Kathy and I were thinking about regular web pages using that API and/or detecting that it is not available. But there are probably other ways to detect that e10s is enabled.
f) Looking through the bug lists reminded us about Web Animations possibly providing a high resolution timing source. But we do have #18273 (moved) for that issue.
This is already #16326 (moved). Or did you find something new we should look at?
No, I don't think we found anything new. Kathy and I forgot that we had looked at this API before. There were some small changes since Firefox 45, but if I remember correctly they are not significant.
Thanks for making another pass at this and filing tickets!