User.js: ToDo: diffs FF72-FF73

Created on 20 Jan 2020  路  18Comments  路  Source: arkenfox/user.js

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 in v73.0:

removed, renamed or hidden in v73.0:

changed in v73.0:


ignore

click me for details

==NEW

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);

==REMOVED or HIDDEN

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);

==CHANGED

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"

diffs enhancement task

All 18 comments

some bugzilla tickets

  • app.normandy.last_seen_buildid
    Bug 1472097 - Run Normandy immediately on start up if the buildid changes

  • app.normandy.onsync_skew_sec
    Bug 1601127 - Skew Normandy on-sync recipe runs to avoid crushing servers

  • browser.display.permit_backplate
    Bug 1539212: Add readability backplate for all elements containing text when HCM or a11y theme is active.

  • browser.messaging-system.fxatoolbarbadge.enabled
    Bug 1596118 - Remove fxa accounts badge that has been replaced by Messaging System badging

  • browser.newtabpage.activity-stream.asrouter.providers.message-groups
    Bug 1578754 - Implement groups configuration for Messaging System content

  • browser.safebrowsing.provider.mozilla.lists
    Bug 1594497 - Add Google entity lists

  • browser.tabs.remote.useHTTPResponseProcessSelection
    Bug 1592894 - pt 4. Remove useHttpResponseProcessSelection pref
    Bug 1592894 - pt 2. Remove useHttpResponseProcessSelection pref

  • browser.tabs.tabmanager.enabled
    Bug 1480542: Add browser.tabs.tabmanager.enabled preference

  • browser.xr.warning.infoURL
    Bug 1580567 - Implement XR device access permission UI

  • devtools.recordreplay.cloudServer
    Bug 1606447 - Initial landing for cloud replay,

  • devtools.responsive.metaViewport.enabled
    Bug 1605342 - Let RDM's metaviewport handling ride the trains
    Bug 1521934 - Set devtools.responsive.metaViewport.enabled pref to true;

  • devtools.webconsole.input.eagerEvaluation
    Bug 1602489 - Basic eager evaluation support,

  • dom.audiochannel.audioCompeting
    Bug 1578945 - part1 : remove handling audio focus related code in AudioChannelService.

  • dom.audiochannel.audioCompeting.allAgents
    Bug 1578945 - part1 : remove handling audio focus related code in AudioChannelService.

  • dom.event.default_to_passive_wheel_listeners
    Bug 1526725 - Make wheel events passive by default on Nightly.

  • dom.forms.requestsubmit.enabled
    Bug 1552301 - Implement form.requestSubmit();

  • dom.ipc.plugins.allow_dxgi_surface
    Bug 1577336: Part 2 - Add pref to disble Windows DXGI async plugin surfaces

  • dom.manifest.enabled
    Bug 1596040 - Teach HTMLLinkElement's relList about 'manifest'

  • dom.metaElement.setCookie.allowed
    Bug 1602462 - Remove http-equiv meta cookie code.

  • dom.security.featurePolicy.enabled
    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

  • dom.security.featurePolicy.experimental.enabled
    Bug 1580567 - Implement XR device access permission UI
    Bug 1598470 - Reduce number of supported features in Feature Policy

  • dom.serviceWorkers.idle_extended_timeout
    Bug 1588838 - decrease "idle extended timeout" to 30 seconds

  • dom.storage.next_gen
    Bug 1594299 - Disable LSNG in 71;

  • dom.vr.always_support_ar
    Bug 1603825 - Suppress the VR permission UI when no VR runtimes are detected

  • dom.vr.always_support_vr
    Bug 1603825 - Suppress the VR permission UI when no VR runtimes are detected

  • extensions.abuseReport.openDialog
    Bug 1598079 - Turn abuseReport.openDialog on by default on all channels.
    Bug 1580554 - Open abuse report panel in a separate dialog window.

  • extensions.getAddons.compatOverides.url
    Bug 1572140 remove compat override handling from AOM

  • extensions.htmlaboutaddons.discover.enabled
    Bug 1337627 - Remove remote discovery pane from about:addons

  • extensions.htmlaboutaddons.enabled
    Bug 1564525 - Remove extensions.htmlaboutaddons.enabled pref

  • extensions.legacy.exceptions
    Bug 1393834 remove legacy.exceptions pref, code using it was removed

  • findbar.matchdiacritics
    Bug 202251 - Add an option to ignore diacritics when searching.

  • fission.rebuild_frameloaders_on_remoteness_change
    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.

  • full-screen-api.unprefix.enabled
    Bug 1603455 - Remove full-screen-api.unprefix.enabled.

  • gfx.webrender.compositor.surface-pool-size
    Bug 1592044 - Reduce the frequency of IOSurface and framebuffer creation and destruction with the help of a surface pool.

  • gfx.webrender.enable-low-priority-pool
    Bug 1595708 - Cargo build timings SVG output Freezes the entire browser with WebRender

  • intl.charset.detector.ng.enabled
    Bug 1551276 - Autodetect legacy encodings on unlabeled pages.

  • intl.charset.detector.ng.in.enabled
    Bug 1551276 - Autodetect legacy encodings on unlabeled pages.

  • intl.charset.detector.ng.jp.enabled
    Bug 1551276 - Autodetect legacy encodings on unlabeled pages.

  • intl.charset.detector.ng.lk.enabled
    Bug 1551276 - Autodetect legacy encodings on unlabeled pages.

  • javascript.options.parser_defer_allocation
    Bug 1603188 - Add a pref to allow enabling deferred allocation mode by default in the browser

  • layout.css.column-span.enabled
    Bug 1499281 - Remove column-span pref in StaticPrefList.yaml (finale).

  • layout.css.constructable-stylesheets.enabled
    Bug 1604296 - Add Constructable StyleSheets API Under Preference

  • layout.css.moz-touch-enabled.enabled
    Bug 1588737 - Hide -moz-touch-enabled media query in Nightly and Early Beta.

  • layout.css.text-underline-position.enabled
    Bug 770780 - Add support for parsing of the CSS text-underline-position property.

  • layout.css.xul-box-display-values.survive-blockification.enabled
    Bug 1600998 - Remove layout.css.xul-box-display-values.survive-blockification.enabled.

  • mathml.mfenced_element.disabled
    Bug 1587577 - Remove support for the mfenced element.

  • media.audiograph.single_thread.enabled
    Bug 1598117 enable GraphRunner by default

  • media.mediacontrol.testingevents.enabled
    Bug 1604691 - part1 : to generate test events in MediaControlService.

  • media.peerconnection.mute_on_bye_or_timeout
    Bug 1607579 - Add pref to disable mute on RTCP bye or timeout;

  • media.peerconnection.sdp.strict_success
    Bug 1598923 - Fix known WEBRTCSDP issues blocking parallel parsing mode in Nightly;r=drno

  • network.http.network_access_on_socket_process.enabled
    Bug 1596409 - P6: Add a pref for using socket process for network

  • network.trr.resolvers
    Bug 1588647 - [trr] Add NextDNS to list of TRR providers

  • network.trr.send_user-agent_headers
    Bug 1543201 - DoH Privacy Enhancement: Do not set the User-Agent header for DoH requests

  • network.url.useDefaultURI
    Bug 1561860 - Add rust-url based nsIURI implementation

  • permissions.default.xr
    Bug 1580567 - Implement XR device access permission UI

  • permissions.delegation.enable
    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

  • permissions.delegation.enabled
    Bug 1600883 - Enable Feature Policy allow attribute and permission delegation by default
    Bug 1483631 - Restrict nested permission requests in webrtc with permission delegate

  • permissions.eventTelemetry.enabled
    Bug 1600883 - Enable Feature Policy allow attribute and permission delegation by default
    Bug 1600942 - Remove event telemetry for permission prompt studies.

  • remote.enabled
    bug 1544393: remote: ship remote agent in Firefox Nightly

  • remote.force-local
    bug 1544393: remote: ship remote agent in Firefox Nightly

  • security.allow_parent_unrestricted_js_loads
    Bug 1582512 - Register a ScriptValidationCallback to examine script loads in the parent process

  • security.app_menu.recordEventTelemetry
    Bug 1603545 - Add telemetry for app menu protections button

  • security.pki.crlite_mode
    bug 1586855 - incorporate CRLite filters into cert_storage

  • security.tls.version.min
    Bug 1579270 - Disable TLS 1.0 and TLS 1.1 in Nightly,

  • signon.storeSignons
    Bug 1602631 - Enable desktop password manager features in toolkit so GV will benefit.

  • signon.userInputRequiredToCapture.enabled
    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.

  • svg.text-spacing.enabled
    Bug 1599173 - Disable SVG text spacing with a pref.

  • telemetry.number_of_site_origin.min_interval
    Bug 1589700 - Record the number of unique site origins across all tabs

  • urlclassifier.features.fingerprinting.annotate.whitelistTables
    Bug 1594497 - Add Google entity lists

  • urlclassifier.features.fingerprinting.whitelistTables
    Bug 1594497 - Add Google entity lists

  • urlclassifier.features.socialtracking.annotate.whitelistTables
    Bug 1594497 - Add Google entity lists
    Bug 1573176 - Fix SafeBrowsing doesn't use correct preference name for social tracking and cryptoming.

  • urlclassifier.features.socialtracking.whitelistTables
    Bug 1594497 - Fix typo on socialtracking whitelistTables
    Bug 1594497 - Add Google entity lists

  • urlclassifier.trackingAnnotationWhitelistTable
    Bug 1594497 - Add Google entity lists

  • urlclassifier.trackingWhitelistTable
    Bug 1594497 - Add Google entity lists

  • widget.content.allow-gtk-dark-theme
    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)

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 the allow attribute:

persistent storage, vibrate, and notifications can't

These features can no longer be used in cross-origin <iframe>s even if you use the allow attribute


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 it
  • Site 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 B

But 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

Was this page helpful?
0 / 5 - 0 ratings

Related issues

crssi picture crssi  路  4Comments

Thorin-Oakenpants picture Thorin-Oakenpants  路  5Comments

Thorin-Oakenpants picture Thorin-Oakenpants  路  5Comments

Thorin-Oakenpants picture Thorin-Oakenpants  路  4Comments

Thorin-Oakenpants picture Thorin-Oakenpants  路  5Comments