Contact emails
ari...@chromium.org, wande...@chromium.org, joha...@chromium.org, ros...@google.com
Specification
https://privacycg.github.io/saa-non-cookie-storage/
Design Doc
https://docs.google.com/document/d/19qCGb4qwOcGiNrQM3ptWvRmB4JtpaTFgFVlWLXNOQ6c/edit
Feedback
https://github.com/privacycg/saa-non-cookie-storage/issues
Intent to Prototype
https://groups.google.com/a/chromium.org/g/blink-dev/c/inRN8tI49O0
Intent to Experiment
https://groups.google.com/a/chromium.org/g/blink-dev/c/SEL7N-xIE5s
https://groups.google.com/a/chromium.org/g/blink-dev/c/AjH7tGxuVuw
Summary
This launches the proposed extension of the Storage Access API (backwards compatible and currently in OT) to allow access to unpartitioned cookie and non-cookie storage in a third-party context. The current API only provides access to cookies, which have different use-cases than non-cookie storage (discussed more in the Motivation section). The API can be used as follows (JS running in an embedded iframe):
// Request a new storage handle via rSA (this may prompt the user)
let handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionstorage
handle.sessionStorage.setItem("userid", "1234");
// Write some 1P context localstorage
handle.localStorage.setItem("preference", "A");
// Open or create an indexedDB that is shared with the 1P context
let messageDB = handle.indexedDB.open("messages");
// Use locks shared with the 1P context
await handle.locks.request(“example”, …);
The same flow would be used by iframes to get a storage handle when their top-level ancestor successfully called requestStorageAccessFor, just that in this case the storage-access permission was already granted and thus the requestStorageAccess call would not require a user gesture or show a prompt, allowing for “hidden” iframes accessing storage.
Beyond calling this additional extension, access to non-cookie storage would match the current requirements for cookie access through the Storage Access API.
DOM Storage (session and local storage), Indexed DB, Web Locks, Cache Storage, Origin Private File System, Quota, Blob Storage, Broadcast Channel, and SharedWorkers will be available.
Blink component
Motivation
There has been increasing developer and implementer interest in first-party DOM Storage and Quota Managed Storage being available in third-party contexts the same way that cookies can be today. In the absence of such a solution, browsers would in effect be pushing developers to migrate to cookies from other storage mechanisms. There are tradeoffs between cookie and non-cookie storage (size, flexibility, server exposure, network request size, etc.) that could impact user experience from a privacy, security and performance perspective (e.g., cookies are included in HTTP requests and not just available via JavaScript). To prevent sub-optimal use of cookies and to preserve context, we propose a solution for developers to regain 3p access to unpartitioned storage to avoid user-facing breakage in browsers shipping storage partitioning.
TAG review
https://github.com/w3ctag/design-reviews/issues/906
Compatibility
The Storage Access API is already implemented in Safari, Firefox, and Chrome, but the proposed API shape would preserve existing behavior until the web developer adds new arguments.
Gecko: No Position Yet https://github.com/mozilla/standards-positions/issues/898
WebKit: No Position Yet https://github.com/WebKit/standards-positions/issues/262
Web developers: Positive
Storage written can be examined in devtools.
Is this feature fully tested by web-platform-tests?
Tracking bug
https://issues.chromium.org/40282415
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/5175585823522816
Contact emails
ari...@chromium.org, wande...@chromium.org, joha...@chromium.org, ros...@google.com
Specification
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAGpy5DKXaZ4S%2B2W6GB_cpuE5i_UDBOMCwcuUYt9Qh1PpQz%3D11w%40mail.gmail.com.
I think the last place it came up was in this thread: https://github.com/mozilla/standards-positions/issues/898#issuecomment-1745688352I think it came up at TPAC, but I might me missing the right line: https://github.com/privacycg/meetings/blob/a27d3ee4c596efb5aec7d16feda2708fbd60eacf/2023/tpac/minutes.md?plain=1#L302Either way, there hasn't been further concern raised recently so we moved forward with 'all' since the function is async (the delay from loading local/session storage isn't high, and it was often already loaded given the requirement to have interacted with the iframe's site in a top-level context in the past).
LGTM2
/Daniel
--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAOmohSJvYhyvgmmBgXxH3rXoQtdMJ1_kk4PRqOrNc9Qq16HeEg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/a640c694-e866-45dd-9268-55f2f992885a%40gmail.com.