On Thu, May 15, 2025 at 12:26 AM Vladimir Levin <vmp...@chromium.org> wrote:

> Hi,
>
> I'm looking at https://github.com/search?q=QuotaExceededError&type=code
> it seems like there are already classes with that name, which I believe
> shouldn't be a problem.
>

Notably the majority of cases I can find are in React Native and Node.js
code.


> I do see some patterns that check explicitly for QuotaExceededError string
> and some examples handle that as a "success" as in: the request succeeded
> but some caching mechanism exceeded a quota, which is ok. The proposed
> change here would break these cases, is that right?
>

I'm not sure which cases you're referring to. By "check explicitly for the
QuotaExceededError string", do you mean the pattern `ex.name ===
"QuotaExceededError"`? If so, that is listed in the explainer as one of the
patterns that will not break.


>
> Thanks,
> Vlad
>
> On Wednesday, May 14, 2025 at 11:23:28 AM UTC-4 Daniel Bratell wrote:
>
>> 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
>>>>>>
>>>>>> 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
>> <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/CAM0wra8Z-v2LesvcL3QdCtSVzsAV3qi4AZXjmyT1zzbScEcY4Q%40mail.gmail.com.

Reply via email to