FF73 is scheduled for release Feb. 11th
FF73 release notes [when ready]
[FF73 for developers](https://developer.mozilla.org/docs/Mozilla/Firefox/Releases/73)
FF73 compatibility
FF73 security advisories
80 diffs ( 42 new, 17 gone, 21 different )
==NEW ==REMOVED or HIDDEN ==CHANGEDclick me for details
pref("app.normandy.last_seen_buildid", "");
pref("app.normandy.onsync_skew_sec", 600);
pref("browser.newtabpage.activity-stream.asrouter.providers.message-groups", "{\"id\":\"message-groups\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"message-groups\",\"updateCycleInMs\":3600000}");
pref("browser.tabs.tabmanager.enabled", false)
pref("browser.xr.warning.infoURL", "https://www.mozilla.org/%LOCALE%/firefox/xr/");
pref("devtools.debugger.features.async-live-stacks", false);
pref("devtools.recordreplay.cloudServer", "");
pref("devtools.webconsole.input.eagerEvaluation", false);
pref("doh-rollout.profileCreationThreshold", "1572476400000");
pref("dom.event.default_to_passive_wheel_listeners", false);
pref("dom.forms.requestsubmit.enabled", false);
pref("dom.ipc.plugins.allow_dxgi_surface", true);
pref("dom.manifest.enabled", false);
pref("dom.security.featurePolicy.experimental.enabled", false);
pref("dom.vr.always_support_ar", false);
pref("dom.vr.always_support_vr", false);
pref("findbar.matchdiacritics", 0);
pref("gfx.webrender.compositor.surface-pool-size", 25);
pref("gfx.webrender.enable-low-priority-pool", false);
pref("gfx.webrender.quality.force-disable-sacrificing-subpixel-aa", false);
pref("intl.charset.detector.ng.enabled", true);
pref("intl.charset.detector.ng.in.enabled", false);
pref("intl.charset.detector.ng.jp.enabled", false);
pref("intl.charset.detector.ng.lk.enabled", false);
pref("javascript.options.parser_defer_allocation", false);
pref("layout.css.constructable-stylesheets.enabled", false);
pref("layout.css.text-underline-position.enabled", false);
pref("media.mediacontrol.testingevents.enabled", false);
pref("media.peerconnection.mute_on_bye_or_timeout", false);
pref("media.peerconnection.sdp.strict_success", false);
pref("network.http.network_access_on_socket_process.enabled", false);
pref("network.url.useDefaultURI", false);
pref("security.allow_parent_unrestricted_js_loads", false);
pref("security.app_menu.recordEventTelemetry", true);
pref("security.pki.crlite_mode", 1);
pref("signon.userInputRequiredToCapture.enabled", true);
pref("telemetry.number_of_site_origin.min_interval", 300000);
pref("widget.content.allow-gtk-dark-theme", false);
pref("widget.content.gtk-high-contrast.enabled", true);
pref("browser.messaging-system.fxatoolbarbadge.enabled", true);
pref("browser.tabs.remote.useHTTPResponseProcessSelection", false);
pref("dom.audiochannel.audioCompeting", false);
pref("dom.audiochannel.audioCompeting.allAgents", false);
pref("dom.metaElement.setCookie.allowed", false);
pref("extensions.getAddons.compatOverides.url", "https://services.addons.mozilla.org/api/v3/addons/compat-override/?guid=%IDS%&lang=%LOCALE%");
pref("extensions.htmlaboutaddons.discover.enabled", true);
pref("extensions.htmlaboutaddons.enabled", true);
pref("extensions.legacy.exceptions", "[email protected],@testpilot-containers,jid1-NeEaf3sAHdKHPA@jetpack,@activity-streams,[email protected],@testpilot-addon,@min-vid,[email protected],[email protected],[email protected],[email protected]");
pref("full-screen-api.unprefix.enabled", true);
pref("layout.css.column-span.enabled", true);
pref("layout.css.xul-box-display-values.survive-blockification.enabled", true);
pref("permissions.delegation.enable", false);
pref("permissions.eventTelemetry.enabled", false);
pref("remote.enabled", false);
pref("remote.force-local", true);
pref("signon.storeSignons", true);
pref("browser.display.permit_backplate", true); // prev: false
pref("browser.newtabpage.activity-stream.asrouter.providers.cfr-fxa", "{\"id\":\"cfr-fxa\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"cfr-fxa\",\"frequency\":{\"custom\":[{\"period\":\"daily\",\"cap\":1}]},\"updateCycleInMs\":3600000}"); // prev: "{\"id\":\"cfr-fxa\",\"enabled\":true,\"type\":\"remote-settings\",\"bucket\":\"cfr-fxa\",\"frequency\":{\"custom\":[{\"period\":\"daily\",\"cap\":1}]}}"
pref("browser.newtabpage.activity-stream.discoverystream.config", "{\"api_key_pref\":\"extensions.pocket.oAuthConsumerKey\",\"collapsible\":true,\"enabled\":true,\"show_spocs\":false,\"hardcoded_layout\":true,\"personalized\":true,\"layout_endpoint\":\"https://getpocket.cdn.mozilla.net/v3/newtab/layout?version=1&consumer_key=$apiKey&layout_variant=basic\"}"); // prev: "{\"api_key_pref\":\"extensions.pocket.oAuthConsumerKey\",\"collapsible\":true,\"enabled\":false,\"show_spocs\":false,\"hardcoded_layout\":true,\"personalized\":true,\"layout_endpoint\":\"https://getpocket.cdn.mozilla.net/v3/newtab/layout?version=1&consumer_key=$apiKey&layout_variant=basic\"}"
pref("browser.safebrowsing.provider.mozilla.lists", "base-track-digest256,mozstd-trackwhite-digest256,google-trackwhite-digest256,content-track-digest256,mozplugin-block-digest256,mozplugin2-block-digest256,block-flash-digest256,except-flash-digest256,allow-flashallow-digest256,except-flashallow-digest256,block-flashsubdoc-digest256,except-flashsubdoc-digest256,ads-track-digest256,social-track-digest256,analytics-track-digest256,base-fingerprinting-track-digest256,content-fingerprinting-track-digest256,base-cryptomining-track-digest256,content-cryptomining-track-digest256,fanboyannoyance-ads-digest256,fanboysocial-ads-digest256,easylist-ads-digest256,easyprivacy-ads-digest256,adguard-ads-digest256,social-tracking-protection-digest256,social-tracking-protection-facebook-digest256,social-tracking-protection-linkedin-digest256,social-tracking-protection-twitter-digest256"); // prev: "base-track-digest256,mozstd-trackwhite-digest256,content-track-digest256,mozplugin-block-digest256,mozplugin2-block-digest256,block-flash-digest256,except-flash-digest256,allow-flashallow-digest256,except-flashallow-digest256,block-flashsubdoc-digest256,except-flashsubdoc-digest256,ads-track-digest256,social-track-digest256,analytics-track-digest256,base-fingerprinting-track-digest256,content-fingerprinting-track-digest256,base-cryptomining-track-digest256,content-cryptomining-track-digest256,fanboyannoyance-ads-digest256,fanboysocial-ads-digest256,easylist-ads-digest256,easyprivacy-ads-digest256,adguard-ads-digest256,social-tracking-protection-digest256,social-tracking-protection-facebook-digest256,social-tracking-protection-linkedin-digest256,social-tracking-protection-twitter-digest256"
pref("devtools.responsive.metaViewport.enabled", true); // prev: false
pref("dom.serviceWorkers.idle_extended_timeout", 30000); // prev: 300000
pref("extensions.abuseReport.openDialog", true); // prev: false
pref("extensions.blocklist.useXML", false); // prev: true
pref("fission.rebuild_frameloaders_on_remoteness_change", true); // prev: false
pref("gfx.direct3d11.use-double-buffering", false); // prev: true
pref("layout.css.moz-touch-enabled.enabled", false); // prev: true
pref("mathml.mfenced_element.disabled", true); // prev: false
pref("media.audiograph.single_thread.enabled", true); // prev: false
pref("network.trr.resolvers", "[{ \"name\": \"Cloudflare\", \"url\": \"https://mozilla.cloudflare-dns.com/dns-query\" },{ \"name\": \"NextDNS\", \"url\": \"https://trr.dns.nextdns.io/\" }]"); // prev: "[{ \"name\": \"Cloudflare\", \"url\": \"https://mozilla.cloudflare-dns.com/dns-query\" }]"
pref("svg.text-spacing.enabled", true); // prev: false
pref("urlclassifier.features.fingerprinting.annotate.whitelistTables", "mozstd-trackwhite-digest256,google-trackwhite-digest256"); // prev: "mozstd-trackwhite-digest256"
pref("urlclassifier.features.fingerprinting.whitelistTables", "mozstd-trackwhite-digest256,google-trackwhite-digest256"); // prev: "mozstd-trackwhite-digest256"
pref("urlclassifier.features.socialtracking.annotate.whitelistTables", "mozstd-trackwhite-digest256,google-trackwhite-digest256"); // prev: "mozstd-trackwhite-digest256"
pref("urlclassifier.features.socialtracking.whitelistTables", "mozstd-trackwhite-digest256,google-trackwhite-digest256"); // prev: "mozstd-trackwhite-digest256"
pref("urlclassifier.trackingAnnotationWhitelistTable", "moztest-trackwhite-simple,mozstd-trackwhite-digest256,google-trackwhite-digest256"); // prev: "moztest-trackwhite-simple,mozstd-trackwhite-digest256"
pref("urlclassifier.trackingWhitelistTable", "moztest-trackwhite-simple,mozstd-trackwhite-digest256,google-trackwhite-digest256"); // prev: "moztest-trackwhite-simple,mozstd-trackwhite-digest256"
app.normandy.last_seen_buildid app.normandy.onsync_skew_sec browser.display.permit_backplate browser.messaging-system.fxatoolbarbadge.enabled browser.newtabpage.activity-stream.asrouter.providers.message-groups browser.safebrowsing.provider.mozilla.lists browser.tabs.remote.useHTTPResponseProcessSelection browser.tabs.tabmanager.enabled browser.xr.warning.infoURL devtools.recordreplay.cloudServer devtools.responsive.metaViewport.enabled devtools.webconsole.input.eagerEvaluation dom.audiochannel.audioCompeting dom.audiochannel.audioCompeting.allAgents dom.event.default_to_passive_wheel_listeners dom.forms.requestsubmit.enabled dom.ipc.plugins.allow_dxgi_surface dom.manifest.enabled dom.metaElement.setCookie.allowed dom.security.featurePolicy.enabled dom.security.featurePolicy.experimental.enabled dom.serviceWorkers.idle_extended_timeout dom.storage.next_gen dom.vr.always_support_ar dom.vr.always_support_vr extensions.abuseReport.openDialog extensions.getAddons.compatOverides.url extensions.htmlaboutaddons.discover.enabled extensions.htmlaboutaddons.enabled extensions.legacy.exceptions findbar.matchdiacritics fission.rebuild_frameloaders_on_remoteness_change full-screen-api.unprefix.enabled gfx.webrender.compositor.surface-pool-size gfx.webrender.enable-low-priority-pool intl.charset.detector.ng.enabled intl.charset.detector.ng.in.enabled intl.charset.detector.ng.jp.enabled intl.charset.detector.ng.lk.enabled javascript.options.parser_defer_allocation layout.css.column-span.enabled layout.css.constructable-stylesheets.enabled layout.css.moz-touch-enabled.enabled layout.css.text-underline-position.enabled layout.css.xul-box-display-values.survive-blockification.enabled mathml.mfenced_element.disabled media.audiograph.single_thread.enabled media.mediacontrol.testingevents.enabled media.peerconnection.mute_on_bye_or_timeout media.peerconnection.sdp.strict_success network.http.network_access_on_socket_process.enabled network.trr.resolvers network.trr.send_user-agent_headers network.url.useDefaultURI permissions.default.xr permissions.delegation.enable permissions.delegation.enabled permissions.eventTelemetry.enabled remote.enabled remote.force-local security.allow_parent_unrestricted_js_loads security.app_menu.recordEventTelemetry security.pki.crlite_mode security.tls.version.min signon.storeSignons signon.userInputRequiredToCapture.enabled svg.text-spacing.enabled telemetry.number_of_site_origin.min_interval urlclassifier.features.fingerprinting.annotate.whitelistTables urlclassifier.features.fingerprinting.whitelistTables urlclassifier.features.socialtracking.annotate.whitelistTables urlclassifier.features.socialtracking.whitelistTables urlclassifier.trackingAnnotationWhitelistTable urlclassifier.trackingWhitelistTable widget.content.allow-gtk-dark-themesome bugzilla tickets
Bug 1472097 - Run Normandy immediately on start up if the buildid changes
Bug 1601127 - Skew Normandy on-sync recipe runs to avoid crushing servers
Bug 1539212: Add readability backplate for all elements containing text when HCM or a11y theme is active.
Bug 1596118 - Remove fxa accounts badge that has been replaced by Messaging System badging
Bug 1578754 - Implement groups configuration for Messaging System content
Bug 1594497 - Add Google entity lists
Bug 1592894 - pt 4. Remove useHttpResponseProcessSelection pref
Bug 1592894 - pt 2. Remove useHttpResponseProcessSelection pref
Bug 1480542: Add browser.tabs.tabmanager.enabled preference
Bug 1580567 - Implement XR device access permission UI
Bug 1606447 - Initial landing for cloud replay,
Bug 1605342 - Let RDM's metaviewport handling ride the trains
Bug 1521934 - Set devtools.responsive.metaViewport.enabled pref to true;
Bug 1602489 - Basic eager evaluation support,
Bug 1578945 - part1 : remove handling audio focus related code in AudioChannelService.
Bug 1578945 - part1 : remove handling audio focus related code in AudioChannelService.
Bug 1526725 - Make wheel events passive by default on Nightly.
Bug 1552301 - Implement form.requestSubmit();
Bug 1577336: Part 2 - Add pref to disble Windows DXGI async plugin surfaces
Bug 1596040 - Teach HTMLLinkElement's relList about 'manifest'
Bug 1602462 - Remove http-equiv meta cookie code.
Bug 1600883 - Enable Feature Policy allow attribute and permission delegation by default
Bug 1580567 - Implement XR device access permission UI
Bug 1483631 - Restrict nested permission requests in webrtc with permission delegate
Bug 1483631 - Restrict nested permission requests in ContentPermissionPrompt with permission delegate
Bug 1580567 - Implement XR device access permission UI
Bug 1598470 - Reduce number of supported features in Feature Policy
Bug 1588838 - decrease "idle extended timeout" to 30 seconds
Bug 1594299 - Disable LSNG in 71;
Bug 1603825 - Suppress the VR permission UI when no VR runtimes are detected
Bug 1603825 - Suppress the VR permission UI when no VR runtimes are detected
Bug 1598079 - Turn abuseReport.openDialog on by default on all channels.
Bug 1580554 - Open abuse report panel in a separate dialog window.
Bug 1572140 remove compat override handling from AOM
Bug 1337627 - Remove remote discovery pane from about:addons
Bug 1564525 - Remove extensions.htmlaboutaddons.enabled pref
Bug 1393834 remove legacy.exceptions pref, code using it was removed
Bug 202251 - Add an option to ignore diacritics when searching.
Bug 1583614: Def on frameloader rebuilding on remoteness change again.
Bug 1580604: Pref off non-Fission frameloader rebuilding by default again.
Bug 1542415: Part 5 - Re-enable frameloader rebuilding on process switch.
Bug 1603455 - Remove full-screen-api.unprefix.enabled.
Bug 1592044 - Reduce the frequency of IOSurface and framebuffer creation and destruction with the help of a surface pool.
Bug 1595708 - Cargo build timings SVG output Freezes the entire browser with WebRender
Bug 1551276 - Autodetect legacy encodings on unlabeled pages.
Bug 1551276 - Autodetect legacy encodings on unlabeled pages.
Bug 1551276 - Autodetect legacy encodings on unlabeled pages.
Bug 1551276 - Autodetect legacy encodings on unlabeled pages.
Bug 1603188 - Add a pref to allow enabling deferred allocation mode by default in the browser
Bug 1499281 - Remove column-span pref in StaticPrefList.yaml (finale).
Bug 1604296 - Add Constructable StyleSheets API Under Preference
Bug 1588737 - Hide -moz-touch-enabled media query in Nightly and Early Beta.
Bug 770780 - Add support for parsing of the CSS text-underline-position property.
Bug 1600998 - Remove layout.css.xul-box-display-values.survive-blockification.enabled.
Bug 1587577 - Remove support for the mfenced element.
Bug 1598117 enable GraphRunner by default
Bug 1604691 - part1 : to generate test events in MediaControlService.
Bug 1607579 - Add pref to disable mute on RTCP bye or timeout;
Bug 1598923 - Fix known WEBRTCSDP issues blocking parallel parsing mode in Nightly;r=drno
Bug 1596409 - P6: Add a pref for using socket process for network
Bug 1588647 - [trr] Add NextDNS to list of TRR providers
Bug 1543201 - DoH Privacy Enhancement: Do not set the User-Agent header for DoH requests
Bug 1561860 - Add rust-url based nsIURI implementation
Bug 1580567 - Implement XR device access permission UI
Bug 1600883 - Enable Feature Policy allow attribute and permission delegation by default
Bug 1483631 - Restrict nested permission requests in webrtc with permission delegate
Bug 1583142 - Remove third-party "persistent-storage" prompting support
Bug 1600883 - Enable Feature Policy allow attribute and permission delegation by default
Bug 1483631 - Restrict nested permission requests in webrtc with permission delegate
Bug 1600883 - Enable Feature Policy allow attribute and permission delegation by default
Bug 1600942 - Remove event telemetry for permission prompt studies.
bug 1544393: remote: ship remote agent in Firefox Nightly
bug 1544393: remote: ship remote agent in Firefox Nightly
Bug 1582512 - Register a ScriptValidationCallback to examine script loads in the parent process
Bug 1603545 - Add telemetry for app menu protections button
bug 1586855 - incorporate CRLite filters into cert_storage
Bug 1579270 - Disable TLS 1.0 and TLS 1.1 in Nightly,
Bug 1602631 - Enable desktop password manager features in toolkit so GV will benefit.
Bug 1603226 - enable signon.userInputRequiredToCapture.enabled by default, and allow capture when any field value !== its defaultValue.
Bug 1388674 - Only prompt to save logins if a login field was modified by the user.
Bug 1599173 - Disable SVG text spacing with a pref.
Bug 1589700 - Record the number of unique site origins across all tabs
Bug 1594497 - Add Google entity lists
Bug 1594497 - Add Google entity lists
Bug 1594497 - Add Google entity lists
Bug 1573176 - Fix SafeBrowsing doesn't use correct preference name for social tracking and cryptoming.
Bug 1594497 - Fix typo on socialtracking whitelistTables
Bug 1594497 - Add Google entity lists
Bug 1594497 - Add Google entity lists
Bug 1594497 - Add Google entity lists
Bug 1606036 - Implement high contrast mode in GTK.
Bug 1535230 - [Linux/Gtk] Add widget.content.gtk-theme-override pref key to simplify the theme override,
LSNG is delayed again .. I'm beginning to think we could enforce this as true. The problems are edge case IMO (but I might have to read some more), not sure about ESR users (who I have no sympathy for, the user.js is for stable).
If LSNG is enabled, LocalStorage depends on QuotaManager storage which is currently broken for some users. We don't want to ship LSNG until the issue is fixed
I guess the question is what exactly breaks QM for some users. Personally, I have no issues with it - it's much more robust (less arbitrary async timing) and fixes the problem with sanitizing localStorage on close #774
or we could wait until they flip it
Feature Policy was also backed out
re crlite .. I read that article and am happy for it to ride the trains. One less thing to add, maintain and later remove as dead wood. And based on that, we should probably ignore LSNG, as well then.
@earthlng
I didn't see anything exciting except what I had already pulled out in earlier edits (and seems like those were all reversed). I'll trust the results and your edits: but seems strange tls min was held back :shrug: [edit: ok it's one of those non-release not-riding-the-train ones that just so happens to be nightly and dev/beta]
for some reason, 19 days ago, I listed two items for new - the VR one is probably for interest only (but we do list the other default permission prefs: e.g geo etc )
I have no idea really what permissions delegation entails or the ramifications of it - we don't actively set any permissions (because the default is always to prompt), but I wonder what this does exactly (e.g you allow geo on Site A as 1st party, does that "delegate" down to 3rd party content - or does it mean that Site A can use geo as a third party? IDK - care to take a look?
Do you see anything else that needs addressing, any other tweaks (settings tags, default values, typos)?
I do have a new RFP patch to add ( android css [any-]pointer and [any-]hover ) which landed in 74 - but it's not urgent (just waiting until my next edit)
Delegation I think is tied to Feature Policy which was backed out.
Feature Policy: https://www.fxsitecompat.dev/en-CA/docs/2020/geolocation-fullscreen-camera-mic-screen-capture-requests-from-cross-origin-iframe-are-now-disabled-by-default/
more about the delegation stuff: https://groups.google.com/d/topic/mozilla.dev.platform/BdFOMAuCGW8/discussion
PS: thanks for the prefers-color* bugzilla - I also fixed the sticky. The one I linked was a proposal that was ruled invalid since they decided to stick with RFP=light which was already in the original patch
OK, so geo, camera+mic (and screen capture and FS) can be allowed - and these are the ones delegation applies to
These features can no longer be used in cross-origin
<iframe>s unless the feature is explicitly enabled with theallowattribute:
persistent storage, vibrate, and notifications can't
These features can no longer be used in cross-origin
<iframe>s even if you use theallowattribute
Well, I don't care about persistent storage, vibrate or notifications (or full screen: it requires a user gesture), or screen capture
I'll have to check it all out more tomorrow: that second link is good. And from a quick glance I don't think we want delegation
I'm going to ignore delegation until Feature Policy lands - i.e we'll just add it to the next diff and if required add all the relevant prefs then
As for the VR permission, I'll add it as inactive: we have the other five Settings>Privacy & Security>Permissions prefs in the user.js
I find it this comment in a related bugzilla interesting
This prompt is displayed before enumerating hardware, as the enumeration itself often results in physical devices powering on or software launching persistently in the background
This leads to a FPing concern over timing (see comment 2). We don't disable VR (or gamepads in the RFP alts) since that's FP'able (and pretty much unique) and it's likely that those who have VR devices or gamepads, want to use them.
I would also think the number of users with VR would be low - so in this regard the FPing entropy should be low: i.e the vast bulk of us are all in the same boat. On top of that we have RFP's timing protection (although there are ways to work around it: e.g getting 1ms precision isn't hard: just use an 1ms incremental counter and refer to it)
At the end of the day what we probably need is something similar to RFP's patch for gamepads: i.e the api is available, but RFP reports no devices
@earthlng I'm all done: thumbs up or close and I'll do a beta release. Apologies for the huge changelog you'll have to author ;)
just reading some of that intent to ship
emphasis mine
Give an ability to delegate permissions from first party to third party embedded iframes, and impose a restriction to embedded iframes to request permission only when the iframe鈥檚 embedder has explicitly delegated it. The permission request will use the top level origin to show in the prompt
Fuck no. I'm on Site A and an iframe with Site B content.Site B makes a request to use e.g.geo (an embedded google map for example), currently the prompt shows that it's Site B - zero confusion. Delegation means the prompt will actually lie and say that it's Site A - all in the name of not confusing end users. WTF!! That's so misleading.
That's my take on it. We should disable it.
Edit: Johann's comment is worth reading, but just makes me ask more questions
When an origin requests access to a permission (either as first or third party) and the user wants to remember this decision, the Firefox permission manager by default stores a key-value pair consisting of origin and permission value[0]. It does not "double-key", so there's no
differentiation between first or third party access.
OK, that answers one question I had. Granting permission doesn't care about origin - got it!
This means an embedded google.com iframe, having access to your geolocation through google.com/maps, can track your geolocation around the web.
Right .. no double-keying
The concept isn't perfect and of course it clashes with double-keying, so we can't have both.
Geeze Louise
What ever happened to applying OA to site permissions 1422056 : note the FPI part of this was done in 1330467 - so now I'm confused
FYI: 1599226 landed: enabling Ion on Chrome content (including Extensions) but disabling it on web content
I'll have to read the ticket and look at the patch: not sure if there's a pref or it's like other two where content/extensions ignore the pref
/* 2422: disable WebAssembly [FF52+] [SETUP-PERF]
* [NOTE] In FF71+ this no longer affects extensions (1576254)
user_pref("javascript.options.wasm", false);
/* 2610: disable in-content SVG (Scalable Vector Graphics) [FF53+]
* [NOTE] In FF70+ and ESR68.1.0+ this no longer affects extensions (1564208)
// user_pref("svg.disabled", true);
for the record (so we could add something here)
/* 2421: disable Ion and baseline JIT to help harden JS against exploits
// user_pref("javascript.options.ion", false);
// user_pref("javascript.options.baselinejit", false);
Happy to deal with it in this issue (so I don't forget) before we close it
Delegation means the prompt will actually lie and say that it's Site A - all in the name of not confusing end users. WTF!! That's so misleading.
yeah it's totally backwards! stupid AF
At least with FPI the permission should still be keyed to the 1st party domain and this:
This means an embedded google.com iframe, having access to your geolocation through google.com/maps, can track your geolocation around the web.
shouldn't be possible.
We should disable it.
100% agree
I need to check/ask about something - because I have a feeling not all site permissions are double keyed. And I'm also totes confused when Johann says delegation and double-keying can't exist : so WTF happens with PB mode, or containers, or FPI enabled when they flip this on - are they expecting people's browsers to fall into small blacks holes and wink out of existence?
I have to go .. but I think I get it: with delegation, it's keyed to 1st party (I think) .. so
Site A with goolgle.maps as 3rd party: google.maps wants your testicles: Site A prompts for it (as Site A) and you grant itSite B also has google.maps as a third party wanting to feel up your sweaty massive balls, but it has to ask again: this time as Site BBut then I might be wrong: because if it's not doubled keyed, then what it is keyed to? How do they keep track? You can't just auto grant all third party permission requests on Site A just because you did it once before.
F&^!#!*#!#k this .. I'm outta here :) It's doing my head in. And of course, all this shit was thought up and brought to you by google
because if it's not doubled keyed, then what it is keyed to?
without FPI, I don't think it's keyed to anything. Just grants google.maps geolocation access, period. If someone then also decides to "remember decision" because they think it's just Site A then they're really fucked because it will never ask again and Site B, C, D, etc will all silently grant google.maps iframes permission to geolocation.
If that's not a really fucking great improvement IDK what is! /s
THANKS google!
Do you see anything else that needs addressing, any other tweaks (settings tags, default values, typos)?
nope
we don't need to worry about this [delegation] until Feature Policy lands
ok we can wait for FF74 to deal with permission delegation
2421: disable Ion and baseline JIT
I'd like to disable the Ion pref for FF75 so I'd say we add this one to the "to keep an eye on" sticky.
From looking at the patches it seems that disabling baselinejit also disables Ion (regardless of the patch). So, for FF75 we need to keep the baseline jit pref inactive (defaulting to true) and set the Ion pref to false so that only trusted principals like FF itself + extensions are allowed to use it.
I'm all done: thumbs up or close and I'll do a beta release.
馃憤
Apologies for the huge changelog you'll have to author ;)
no worries :) 馃拫
I don't think it's keyed to anything
Just came across this - https://bugzilla.mozilla.org/show_bug.cgi?id=1572461#c2
emphasis mine
One-off granting really isn't the issue here, as that should still be scoped to the single entity that made the call to access the functionality (i.e. in my idea if the frame calls getUserMedia and gets it granted and if the top-level then call getUserMedia again there's another prompt, though we should probably clarify this). The big problem is what happens if the user clicks on "Remember this decision"?
I get your point that we could double-key the permission here. Back when we originally started this project double-keying permissions was actually technically blocked on some work that has now been resolved (and I don't think we expected it to become possible so quickly). So we could do that...
So I think that explains why there was some confusion with "I'm also totes confused when Johann says delegation and double-keying can't exist" - i.e it was problematic back then, but isn't now
I guess we can just do some tests when Feature Policy and delegation land in Stable, and document just how the permissions are treated as 1st/3rd party, with/without FPI/containers (I think we can skip PB mode) and with feature policy and/or delegation on or off