navigator.storage is no longer an EventTarget navigator.storage was made an EventTarget for the Storage Pressure Event, which never made it past the prototype phase: https://chromestatus.com/feature/5666274359115776 This dead code is being removed and as a result, navigator.storage will no longer extend EventTarget.
This change is technically web-facing, but it brings Chromium in line with other browser vendors. It's very unlikely any site used the functionality because Chromium never fired an event at navigator.storage except in developer builds.
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None
None
Shipping on desktop | 132 |
Shipping on Android | 132 |
Open questions about a feature may be a source of future web compat or interop issues. Please list open issues (e.g. links to known github issues in the project for the feature specification) whose resolution may introduce web compat/interop risk (e.g., changing to naming or structure of the API in a non-backward-compatible way).
None
Contact emails
est...@chromium.org
Specification
https://storage.spec.whatwg.org
Summary
navigator.storage is no longer an EventTarget navigator.storage was made an EventTarget for the Storage Pressure Event, which never made it past the prototype phase: https://chromestatus.com/feature/5666274359115776 This dead code is being removed and as a result, navigator.storage will no longer extend EventTarget.
Blink component
Blink>Storage>Quota
TAG review
None
TAG review status
Not applicable
Risks
Interoperability and Compatibility
This change is technically web-facing, but it brings Chromium in line with other browser vendors. It's very unlikely any site used the functionality because Chromium never fired an event at navigator.storage except in developer builds.
Bringing us in line with other browsers is good, but not necessarily a guarantee that things won't go wrong. Have we done any kind of research to determine that sites weren't attempting to use this?
At the very least, having the ability to kill-switch this with a
flag would be advisable - right now this PSA suggests otherwise.
--
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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/6722c71d.2b0a0220.230002.023f.GAE%40google.com.
> having the ability to kill-switch this with a flag would be advisableIs that possible? My understanding is that it is not. If it were, then it would have been gated behind the (never-exposed) flag to begin with.
> Have we done any kind of research to determine that sites weren't attempting to use this?Do you mean attempt to use in its intended fashion, or attempt to use it for browser engine detection? For the former: I think it's impossible because it never even got to dev trial. For the latter, are there popular libraries out there we can look at? This one does not use it.Googling for "navigator.storage.addeventlistener" turns up only the explainer for the Storage Pressure event. "navigator.storage instanceof EventTarget" turns up nothing.
Thanks for sending this!On Thu, Oct 31, 2024 at 3:31 AM Evan Stade <est...@chromium.org> wrote:> having the ability to kill-switch this with a flag would be advisableIs that possible? My understanding is that it is not. If it were, then it would have been gated behind the (never-exposed) flag to begin with.I believe you're right and we don't currently have the means to put an IDL inheritance change behind a flag.That's the reason we shipped this inheritance in the first place 4 years ago.> Have we done any kind of research to determine that sites weren't attempting to use this?Do you mean attempt to use in its intended fashion, or attempt to use it for browser engine detection? For the former: I think it's impossible because it never even got to dev trial. For the latter, are there popular libraries out there we can look at? This one does not use it.Googling for "navigator.storage.addeventlistener" turns up only the explainer for the Storage Pressure event. "navigator.storage instanceof EventTarget" turns up nothing.That's very promising. For extra confidence, you could query the HTTP archive for the above string (or "StorageManager instanceof EventTarget").
On Thu, Oct 31, 2024 at 1:33 AM Yoav Weiss (@Shopify) <yoav...@chromium.org> wrote:Thanks for sending this!On Thu, Oct 31, 2024 at 3:31 AM Evan Stade <est...@chromium.org> wrote:> having the ability to kill-switch this with a flag would be advisableIs that possible? My understanding is that it is not. If it were, then it would have been gated behind the (never-exposed) flag to begin with.I believe you're right and we don't currently have the means to put an IDL inheritance change behind a flag.That's the reason we shipped this inheritance in the first place 4 years ago.> Have we done any kind of research to determine that sites weren't attempting to use this?Do you mean attempt to use in its intended fashion, or attempt to use it for browser engine detection? For the former: I think it's impossible because it never even got to dev trial. For the latter, are there popular libraries out there we can look at? This one does not use it.Googling for "navigator.storage.addeventlistener" turns up only the explainer for the Storage Pressure event. "navigator.storage instanceof EventTarget" turns up nothing.That's very promising. For extra confidence, you could query the HTTP archive for the above string (or "StorageManager instanceof EventTarget").Thanks. I'm not sure if this is still possible to do. This doc suggests that crawling all response bodies is discouraged, and in practice, it seems to no longer be possible as the bodies are no longer in any table I can find. "Querying" now consists of adding scripts to the crawler that will take 30 days to return any data. (Would be happy if I am wrong about this.)
+1, thanks Evan.