Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
No information provided| Shipping on desktop | 153 |
| Shipping on Android | 153 |
| Shipping on WebView | 153 |
| Shipping on iOS | 153 |
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).
No information providedThanks for pointing out the specific spec algos.
> @ricea had suggested using an experiment, I assume because the use of fetch is so widespread and changing the type of error that's thrown could have consequences, even if it's the intended behavior. But I'll let him comment on that himself if he has anything to add.
We have generally been recommending against gradual rollout in cases like this: https://chromium.googlesource.com/chromium/src/+/main/docs/flag_guarding_guidelines.md#prefer-waterfall-rollout-for-platform-changes. In short, an experimental rollout makes any breakage hard to track for developers because it won’t show up consistently. The usual approach would be to just ship normally via canary/dev/beta/stable and be ready to roll it back via finch if there are issues.
We shouldn’t do either without trying to understand the risk, though. What do you expect potential compatibility issues to look like for this? Do developers often have logic branching on specific abort values for these promises versus just logging them? Do we have Use Counters that could put a high bar on the risk, like a counter for how often already-completed fetches are aborted with a reason, or how often the Response methods are called for a fetch in this state?
From: Taylor Brandstetter <dead...@google.com>
Sent: Wednesday, August 12, 2026 2:30 PM
To: blink-dev <blin...@chromium.org>
Cc: Daniel Clark <dan...@microsoft.com>; Chromestatus <ad...@cr-status.appspotmail.com>; dead...@google.com <dead...@google.com>; Adam Rice <ri...@google.com>
Subject: Re: Intent to Ship: Fetch API: Forward reason from AbortController to fetch Response
|
You don't often get email from dead...@google.com. Learn why this is important |
> Can you please give a more specific link into the part of the spec that defines this behavior?
Sure thing; the body methods point to the steps for consuming a body: https://fetch.spec.whatwg.org/#concept-body-consume-body
Which point to the steps for fully reading a body: https://fetch.spec.whatwg.org/#body-fully-read
Which say to read all the bytes from the reader.
And regarding the reader, the main abort steps (https://fetch.spec.whatwg.org/#http-network-fetch) say:
So, both the readable stream and all the body methods consuming it should be errored with the abort reason.
> Can you request a WebKit signal?
I didn't realize it was necessary just for filling a gap in the implementation, but the wide review documentation does call this case out, so I will request a signal and update the feature later.
> I'm still unclear on which tests cover this change.
I called them out there; "response.X() rejects with abort reason if already aborted" (for each body method) and "Stream errors once aborted with abort reason". They fail on everything but Firefox (well except for the latter which doesn't run on Firefox); I'm assuming the dashboard wasn't updated when you responded but you can see the failures now.
> Can you say more about this roll out plan? This doesn't seem like the kind of thing that would need to be rolled out gradually via experiment.
@ricea had suggested using an experiment, I assume because the use of fetch is so widespread and changing the type of error that's thrown could have consequences, even if it's the intended behavior. But I'll let him comment on that himself if he has anything to add.
> Lastly please request the other "Prepare to Ship" reviews in the chromestatus entry (Privacy, WP Security, etc).
Will do. Thanks for your review, Dan.
If fetchParams is aborted, then:
Set response’s aborted flag.
If stream is readable, then error stream with the result of deserialize a serialized abort reason given fetchParams’s controller’s serialized abort reason and an implementation-defined realm.
The Adoption gate should be filled out before shipping...where did you see a reference to "stable for four weeks"?
--
You received this message because you are subscribed to a topic in the Google Groups "blink-dev" group.
To unsubscribe from this topic, visit https://groups.google.com/a/chromium.org/d/topic/blink-dev/GrS94YdOTJI/unsubscribe.
To unsubscribe from this group and all its topics, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/7cbe2d67-6dcf-4115-a456-22eebf737674n%40chromium.org.
|
You don't often get email from dead...@google.com.
Learn why this is important
|
The Adoption gate should be filled out before shipping...where did you see a reference to "stable for four weeks"?
LGTM3
/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 visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAK35n0bMvwnkbykO%2BvFEdc9Ke4Uaw2%2B6QmNchpVa8RNyEeoRoQ%40mail.gmail.com.