LGTM2
/Daniel
On 2025-05-14 17:22, Alex Russell wrote:
Sorry, I misunderstood which way this change was being proposed. LGTM1
On Tuesday, May 13, 2025 at 6:24:02 PM UTC-7 Domenic Denicola wrote:
On Wed, May 14, 2025 at 3:21 AM Alex Russell
<slightly...@chromium.org> wrote:
Thanks for flipping the bits, Ayu.
Domenic: it seems like this is part of a longer-running set of
changes we've had going in DOM-land regarding moving away from
subclasses of Error types, and IIRC this is a motivating
factor in the TAG's Design Principles guidance on error types
<https://www.w3.org/TR/design-principles/#error-types>. Should
we cite to that? And should the principles be updated to
discuss not using subclasses with this sort of specific example?
I'm not sure what longer-running set of changes you're referring
to. Subclassing of Error is pretty common; the JavaScript spec
itself does so; web developers commonly do so; and web
specifications do a fair amount. (We added first-class support for
doing so on the web platform in 2022
<https://github.com/whatwg/webidl/pull/1211>, paving the cowpath
set by WebTransportError, RTCError, GPUPipelineError, and a few
others.) This is just the latest in a long list of such additions.
This change, as well as all those previous ones, seems fully
aligned with the TAG Design Principles. They are all subclasses of
Error. (Because DOMException is a subclass of Error.)
I don't understand the suggestion to update the principles. Are
you saying they should be changed to the opposite of what they are
saying now, and to discuss /not/ using subclasses? Why?
Best,
Alex
On Tuesday, May 6, 2025 at 5:28:48 PM UTC-7
dan...@microsoft.com wrote:
Can you please request the other review bits in
ChromeStatus (privacy, security, etc)?
-- Dan
On Tuesday, May 6, 2025 at 3:42:02 PM UTC-7
ay...@chromium.org wrote:
Contact emails
ay...@chromium.org, dom...@chromium.org
Explainer
https://github.com/whatwg/webidl/pull/1465
<https://github.com/whatwg/webidl/pull/1465>
Specification
https://github.com/whatwg/webidl/pull/1465
<https://github.com/whatwg/webidl/pull/1465>
Summary
Currently, when the web platform wants to tell you
when you've exceeded quota, it will use `DOMException`
with the specific `name` property set to
`QuotaExceededError`. However this does not allow
carrying additional information.
This proposes removing "QuotaExceededError" from the
list of built-in `DOMException` names, and instead
creates a class name `QuotaExceededError` from the
list of built-in `DOMException` and has the additional
optional properties `quota` and `requested`. We
propose all instances of specs that throw
"QuotaExceededError" `DOMException`s get upgraded to
instead throw `QuotaExceededError`s. For now, such
specs would leave the `quota` and `requested`
properties at their default value of `null`, but they
could eventually upgrade to include that data, if it's
useful for their use case (and isn't, e.g., a privacy
leak).
Blink component
Blink
<https://issues.chromium.org/issues?q=customfield1222907:%22Blink%22>
TAG review
Review request filed & closed
<https://github.com/w3ctag/design-reviews/issues/1065>
TAG review status
N/A
Risks
Interoperability and Compatibility
This is technically backward-incompatible with some
rare coding patterns. The spec PR outlines those, and
compares them with the more common coding patterns
which work the same even after this change. Given that
quota exceeded exceptions only occur in rare cases
anyway, and the most popular patterns will continue
working with no problem, we think the compat risk here
is small. Nevertheless, we'll carefully monitor for
breakage, and use Finch to revert if any serious
problems are found.
We anticipate low interoperability risk, as we suspect
that if Chromium proves that this is web-compatible,
other browsers will quickly follow. And even during
the transition period, the most common coding patterns
will work in all browsers.
Gecko: Under consideration
(https://github.com/mozilla/standards-positions/issues/1223
<https://github.com/mozilla/standards-positions/issues/1223>)
WebKit: Pending
(https://github.com/WebKit/standards-positions/issues/468
<https://github.com/WebKit/standards-positions/issues/468>)
Web developers: No signals
Other signals:
Ergonomics
None
Activation
N/A
Security
None
WebView application risks
Does this intent deprecate or change behavior of
existing APIs, such that it has potentially high risk
for Android WebView-based applications?
None
Debuggability
None
Will this feature be supported on all six Blink
platforms (Windows, Mac, Linux, ChromeOS, Android, and
Android WebView)?
Yes
Is this feature fully tested by web-platform-tests
<https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>?
To be added here
<https://crsrc.org/c/third_party/blink/web_tests/external/wpt/webidl/ecmascript-binding/es-exceptions/DOMException-constructor-behavior.any.js>
Flag name on about://flags
None
Finch feature name
QuotaExceededError
Requires code in //chrome?
False
Measurement
N/A
Estimated milestones
M138
Anticipated spec changes
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).
We haven't yet sent spec PRs to update all
specifications to use this new error type, but that
process is pretty mechanical, and we will do so once
we're sure this sticks. We want to avoid badgering 9
separate spec editors into merging our update PRs, if
there's a possibility we'd then have to badger them to
accept 9 separate revert PRs a couple months later.
Link to entry on the Chrome Platform Status
https://chromestatus.com/feature/6194847180128256?gate=5011647107956736
<https://chromestatus.com/feature/6194847180128256?gate=5011647107956736>
This intent message was generated by Chrome Platform
Status <https://chromestatus.com/>.
--
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+unsubscr...@chromium.org.
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/9f6747c4-94d9-4063-9ea5-89bbab2eeb57n%40chromium.org
<https://groups.google.com/a/chromium.org/d/msgid/blink-dev/9f6747c4-94d9-4063-9ea5-89bbab2eeb57n%40chromium.org?utm_medium=email&utm_source=footer>.
--
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+unsubscr...@chromium.org.
To view this discussion visit
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/afd9ed04-bcc0-4713-95c6-a7e1e90fa307%40gmail.com.