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
>>>>
>>>> Specification
>>>>
>>>> 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)
>>>>
>>>> WebKit: Pending (
>>>> 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
>>>>
>>>> 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.

Reply via email to