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

[mediaqueries-5] Security questions for preference overrides #11583

Open
lukewarlow opened this issue Jan 27, 2025 · 1 comment
Open

[mediaqueries-5] Security questions for preference overrides #11583

lukewarlow opened this issue Jan 27, 2025 · 1 comment

Comments

@lukewarlow
Copy link
Member

lukewarlow commented Jan 27, 2025

See WICG/web-preferences-api#18

cc @ArthurSonzogni

Nice feature! I can't wait to see it implemented. This would have been handy for me in the past. Thanks for working on this!

I came here to prepare some preliminary web platform security/privacy reviews after Chrome's intent-to-prototype was posted. There are some ambiguities / open questions. Here is a list of questions I had in mind:

  • What entity "stores" the data? Is it per-document, per-tab, per-origin, per-domain, etc... I guess this is going to be per-origin because we want some kind of persistency over navigations.
  • What about iframes? I have read issues 8, but it is still unclear to me:
    • Does an iframe have some kind of persisted state it can use if the document in the parent frame doesn't override? What about the interactions with Storage partitioning?
    • What about the interactions with the planned portals? They are some kind of document in an iframe, but it could become top-level document too.
    • What about the interactions with the planned FencedFrame. I know they have some "mode" where they guarantee there are no mean of communications in between the two documents across the boundary.
    • Can a document in an iframe provides an override? Does it propagate above/below in the frame tree?
    • There are also iframe credentialless to think about. I don't really have concerns about them.
  • How does an override propagate?
    • Can a document "listen" for change? Would it be useful?
    • With a multi process architecture, the update is going to take some time. Do we have to ensure the events are properly ordered with some others? Maybe properly ordered with PostMessage? Maybe it doesn't matter and we can keep it it user-agent specific. I don't know.
  • What happens when the user-agent's global preferences are updated?
    • Does the current document "see" the update if it doesn't provide an override?
    • Does the user's agent's update overrides the origin's overrides?
    • What about the user asking the user-agent to "clear" all the website data?

I did not think about it for long. I hope this will end up with something easy to understand:

  1. Data is stored per origin and used only by top-level documents in secure context. We consider a top-level document to be the topmost document in normal tree, FencedFrame tree, Portal Tree, etc...
  2. Iframe fully inherit from the parent. They don't provide an override.
  3. No popup-inheritance. You can only inherit via the "origin".

I don't intend every questions to be replied inline. Feel free for the ones you want, or you can edit my post and cross the checkbox when the explainer contains an answer.

@lukewarlow
Copy link
Member Author

Much of this should probably be split into its own issues, but I think it's important we don't lose these questions.

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

No branches or pull requests

1 participant