Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addition of data for browsers' secure profiles #20619

Open
Seirdy opened this issue Aug 29, 2023 · 8 comments
Open

Addition of data for browsers' secure profiles #20619

Seirdy opened this issue Aug 29, 2023 · 8 comments
Labels
enhancement 🥇 Nice to have features.

Comments

@Seirdy
Copy link

Seirdy commented Aug 29, 2023

What type of issue is this?

Missing compatibility data

What information was incorrect, unhelpful, or incomplete?

Some browsers offer secure profiles that disable unsafe features:

  • Safari offers Lockdown Mode
  • the Tor Browser offers a security slider
  • Microsoft Edge offers Enhanced Security (formerly known as Super Duper Secure Mode).

Documentation on which features aren't available in these modes is missing. This makes them very difficult to learn about, let alone target.

What browsers does this problem apply to, if applicable?

Chromium (Chrome, Edge 79+, Opera, Samsung Internet), Firefox, Safari

What did you expect to see?

Safari

Safari offers "Lockdown mode" which disables several features. Lockdown mode in Safari 16.4 does the following:

  • Disable binary fonts in the CSS Font Loading API
  • Disable Cache API
  • Disable CacheStorage API
  • Disable ServiceWorkers
  • Disable SVG fonts
  • Disable the WebLocks API
  • Disable WebSpeech API
  • Disable WebAssembly
  • Disable JIT compilation

Lockdown mode in Safari 16.5 also disables the WebCodecs API. Lockdown mode in the upcoming Safari 17 does the following:

  • Disables IndexedDB.
  • Disables the File API and FileReader API.
  • Disables support for the <embed> element.
  • Disables the Web Speech (Speech Synthesis) API.
  • Disables the WebLocks API.
  • Disables support for experimental APIs.
  • Supports select web fonts.

Tor Browser

The Tor Browser is based on Firefox ESR (though it lags several months behind new major releases). It offers a security slider that disables several features.

"Safer" mode disables:

  • WebAssembly
  • JIT-compilation for JavaScript and regex
  • MathML
  • Graphite font rendering
  • SVG fonts
  • JavaScript on unencrypted connections
  • Auto-loading audio and video (they are click-to-play)

"Safest" mode includes the changes in "Safer", but also disables:

  • SVG
  • JavaScript
  • Native lazy-loading

Microsoft Edge

Microsoft Edge's "enhanced" security mode (also known as "Super Duper Security Mode") disables Just-In-Time compilation (note that it now bundles a WebAssembly interpreter, allowing WebAssembly to run without JIT compilation on certain CPU architectures). It can be enabled across an organization via an enterprise policy. I'm not aware of any other changes yet, but I believe more will land with time.

Did you test this? If so, how?

Not applicable; this issue is requesting a new category of BCD documentation, not a single correction/addition.

Can you link to any release notes, bugs, pull requests, or MDN pages related to this?

The WebKit Blog covers updates to Lockdown Mode in Safari:

Tor Browser official documentation and source code for its Security Levels module describe the changes it makes.

Microsoft Edge Enhanced Security documentation details how it disables JIT but still supports WebAssembly. Enhanced Security's introductory blog post also details how they added the "Drumbrake" WebAssembly interpreter.

Do you have anything more you want to share?

Current BCD data excludes at-risk users who depend on secure browsing profiles to stay safe, especially Lockdown Mode in Safari or the Tor Browser's "safer" and "safest" modes. Developers who need to build with security in mind should target these modes. Right now, documentation is scattered which makes this task very difficult. BCD is in a unique place to fix this.

BCD should highlight unsafe features that are only available in insecure modes, but are disabled in secure profiles.

MDN URL

No response

MDN metadata

No response

@simevidas
Copy link

Possibly relevant: Brave has “forgetful browsing”

When this option is set, Brave will clear first-party storage for the site a few seconds after there are no more open tabs for the site. Forgetful Browsing clears both explicitly stored values (e.g. cookies, localStorage, or indexedDB) and indirectly stored values (e.g. HTTP cache or DNS cache).

https://brave.com/privacy-updates/25-forgetful-browsing/

@Seirdy
Copy link
Author

Seirdy commented Aug 29, 2023 via email

@Josh-Cena
Copy link
Member

This isn't in the scope of BCD. We don't even document if something is available only in secure context.

@Seirdy
Copy link
Author

Seirdy commented Aug 30, 2023

@Josh-Cena I suppose you could consider this issue a proposal to revise the scope of BCD to include this.

Perhaps "Safari Lockdown Mode" could be treated as a separate browser from "Safari".

@Josh-Cena
Copy link
Member

Then I reckon it would go through the same process as adding a new browser, in https://github.com/mdn/browser-compat-data/blob/main/docs/data-guidelines/browsers.md. I don't anticipate it to be straightforward, but I'm not a BCD maintainer, so probably don't take my word for it :)

@queengooborg
Copy link
Collaborator

We don't even document if something is available only in secure context.

Actually, this statement is false. For features gated behind a secure context, we add a secure_context_required feature.

Perhaps "Safari Lockdown Mode" could be treated as a separate browser from "Safari".

Given how little difference there would be between the two, adding an entire new "browser" doesn't seem like the right way to go about it. It's the same reason why we don't add Chrome on iOS.


Anyways, this is something that we'll have to assess.

@queengooborg queengooborg added the enhancement 🥇 Nice to have features. label Aug 30, 2023
@Seirdy
Copy link
Author

Seirdy commented Aug 31, 2023 via email

@Seirdy
Copy link
Author

Seirdy commented Feb 2, 2024

I've since found that Lockdown Mode since at least Safari 17 also breaks most or all AVIF and JPEG-XL images.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement 🥇 Nice to have features.
Projects
None yet
Development

No branches or pull requests

4 participants