Intent to Ship: fetch() upload streaming

334 views
Skip to first unread message

Yutaka Hirano

unread,
Jul 11, 2022, 4:17:11 AM7/11/22
to blink-dev, Yoichi Osato

Contact emails

yhi...@chromium.org

Explainer

https://bit.ly/2SVvKbR

Specification

https://fetch.spec.whatwg.org/#concept-body-stream

Design docs


http://bit.ly/3asqra2

Summary

Fetch upload streaming lets web developers make a fetch with a ReadableStream body. Fetch provides a generic definition of Request and Response objects (and other things involved with network requests).



Blink component

Blink>Network>FetchAPI

TAG review

https://github.com/w3ctag/design-reviews/issues/434

TAG review status

Issues open

Risks



Interoperability and Compatibility

TBD



Gecko: No signal (https://github.com/mozilla/standards-positions/issues/207) No signals on the standards-position ticket. Annevk has been active on the standards discussions. Positive at TPAC 2019 [1].

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/24) No signals on the standards-position ticket. Positive at TPAC 2019 [1]. [1] https://docs.google.com/document/d/1q090ovJ4gd8wSfVtvuoZLMZ51YkiFDsEZ0Jiqi41Iys/edit#heading=h.85gziabhajhg

Web developers: Positive https://github.com/whatwg/fetch/issues/1438#issuecomment-1150755587 https://github.com/whatwg/fetch/issues/1438#issuecomment-1167984830

Other signals:

Security

- Only 'cors' and 'same-origin' requests allow streaming upload. You can't use streaming upload with 'navigate' and 'no-cors' requests. - This feature cannot be used with HTTP/1.x. If the server doesn't support HTTP/2 or HTTP/3, the request fails. This is for some compatibility concerns. See whatwg/fetch#966 for the past discussions.



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?

No



Debuggability

Same as usual fetch()



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

Yes

Is this feature fully tested by web-platform-tests?

Yes

Flag name



Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=688906

Non-OSS dependencies

Does the feature depend on any code or APIs outside the Chromium open source repository and its open-source dependencies to function?

No

Estimated milestones

OriginTrial desktop last94
OriginTrial desktop first85
OriginTrial Android last94
OriginTrial Android first85


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).



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5274139738767360

Links to previous Intent discussions

Intent to Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/l7QI1bsq80Y/m/Z1TJ0nplAQAJ


This intent message was generated by Chrome Platform Status.

Yoav Weiss

unread,
Jul 11, 2022, 4:41:14 AM7/11/22
to Yutaka Hirano, blink-dev, Yoichi Osato
On Mon, Jul 11, 2022 at 10:17 AM Yutaka Hirano <yhi...@chromium.org> wrote:

Contact emails

yhi...@chromium.org

Explainer

https://bit.ly/2SVvKbR

Specification

https://fetch.spec.whatwg.org/#concept-body-stream

Design docs


http://bit.ly/3asqra2

Summary

Fetch upload streaming lets web developers make a fetch with a ReadableStream body. Fetch provides a generic definition of Request and Response objects (and other things involved with network requests).



Blink component

Blink>Network>FetchAPI

TAG review

https://github.com/w3ctag/design-reviews/issues/434

Actual review never really happened :/ Seems worthwhile to at least communicate that to the TAG.
 


TAG review status

Issues open

Risks



Interoperability and Compatibility

TBD



Gecko: No signal (https://github.com/mozilla/standards-positions/issues/207)

This seems like a position request for a different feature. I think you meant https://github.com/mozilla/standards-positions/issues/663
Any learnings from the Origin Trials?
 
OriginTrial Android last94
OriginTrial Android first85


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).



Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/5274139738767360

Links to previous Intent discussions

Intent to Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/l7QI1bsq80Y/m/Z1TJ0nplAQAJ


This intent message was generated by Chrome Platform Status.

--
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 on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CABihn6GHAGHQvD5e9rwjgadjAf2bN8JJpkSBDndahLCHTqxp%3DQ%40mail.gmail.com.

Yutaka Hirano

unread,
Jul 11, 2022, 6:41:32 AM7/11/22
to Yoav Weiss, blink-dev, Yoichi Osato
On Mon, Jul 11, 2022 at 5:41 PM Yoav Weiss <yoav...@chromium.org> wrote:


On Mon, Jul 11, 2022 at 10:17 AM Yutaka Hirano <yhi...@chromium.org> wrote:

Contact emails

yhi...@chromium.org

Explainer

https://bit.ly/2SVvKbR

Specification

https://fetch.spec.whatwg.org/#concept-body-stream

Design docs


http://bit.ly/3asqra2

Summary

Fetch upload streaming lets web developers make a fetch with a ReadableStream body. Fetch provides a generic definition of Request and Response objects (and other things involved with network requests).



Blink component

Blink>Network>FetchAPI

TAG review

https://github.com/w3ctag/design-reviews/issues/434

Actual review never really happened :/ Seems worthwhile to at least communicate that to the TAG.

Oh sorry I somehow chose a wrong URL. https://github.com/w3ctag/design-reviews/issues/754 is the correct one.

Yutaka Hirano

unread,
Jul 11, 2022, 6:50:11 AM7/11/22
to Yoav Weiss, blink-dev, Yoichi Osato
You're right, thank you.
None. We had the origin trial to decide whether we want to allow the feature on HTTP/1.1. Here is our intention at that time.
Because of some technical problems we failed to collect the data and the partner (gRPC/web) lost their interest in the feature.

Hence we decided to give up collecting the data. We asked web developers whether they want to use the feature even if we disable the feature on HTTP/1.1, and got some positive answers, as shown in  https://github.com/whatwg/fetch/issues/1438#issuecomment-1150755587 and https://github.com/whatwg/fetch/issues/1438#issuecomment-1167984830.

Yoav Weiss

unread,
Jul 13, 2022, 6:23:14 AM7/13/22
to blink-dev, Yutaka Hirano, blink-dev, Yoichi Osato, Yoav Weiss
On Monday, July 11, 2022 at 12:50:11 PM UTC+2 Yutaka Hirano wrote:
On Mon, Jul 11, 2022 at 7:41 PM Yutaka Hirano <yhi...@chromium.org> wrote:


On Mon, Jul 11, 2022 at 5:41 PM Yoav Weiss <yoav...@chromium.org> wrote:


On Mon, Jul 11, 2022 at 10:17 AM Yutaka Hirano <yhi...@chromium.org> wrote:

The explainer seems focused on the H1 Origin Trial use case, which IIUC we decided against.
Is there a more up-to-date explainer on what y'all are actually planning to ship?
  


Specification

https://fetch.spec.whatwg.org/#concept-body-stream

Design docs


http://bit.ly/3asqra2

Summary

Fetch upload streaming lets web developers make a fetch with a ReadableStream body. Fetch provides a generic definition of Request and Response objects (and other things involved with network requests).



Blink component

Blink>Network>FetchAPI

TAG review

https://github.com/w3ctag/design-reviews/issues/434

Actual review never really happened :/ Seems worthwhile to at least communicate that to the TAG.

Oh sorry I somehow chose a wrong URL. https://github.com/w3ctag/design-reviews/issues/754 is the correct one.
 
 


TAG review status

Issues open

Risks



Interoperability and Compatibility

TBD



Gecko: No signal (https://github.com/mozilla/standards-positions/issues/207)

This seems like a position request for a different feature. I think you meant https://github.com/mozilla/standards-positions/issues/663

Seems like Mozilla are positive on this! (% some questions)
 
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+unsubscribe@chromium.org.

Yutaka Hirano

unread,
Jul 13, 2022, 6:27:46 AM7/13/22
to Yoav Weiss, blink-dev, Yoichi Osato
On Wed, Jul 13, 2022 at 7:23 PM Yoav Weiss <yoav...@chromium.org> wrote:


On Monday, July 11, 2022 at 12:50:11 PM UTC+2 Yutaka Hirano wrote:
On Mon, Jul 11, 2022 at 7:41 PM Yutaka Hirano <yhi...@chromium.org> wrote:


On Mon, Jul 11, 2022 at 5:41 PM Yoav Weiss <yoav...@chromium.org> wrote:


On Mon, Jul 11, 2022 at 10:17 AM Yutaka Hirano <yhi...@chromium.org> wrote:

The explainer seems focused on the H1 Origin Trial use case, which IIUC we decided against.
Is there a more up-to-date explainer on what y'all are actually planning to ship?

Oops, sorry again, I thought I updated the URL but apparently I failed to do so...
 
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.

Yoav Weiss

unread,
Jul 13, 2022, 7:16:39 AM7/13/22
to Yutaka Hirano, blink-dev, Yoichi Osato
LGTM1

This seems like a useful addition, web developer signals look great, and it's great to have Mozilla on board with this. Please make sure to answer their questions on the position issue.

On Wed, Jul 13, 2022 at 12:27 PM Yutaka Hirano <yhi...@chromium.org> wrote:


On Wed, Jul 13, 2022 at 7:23 PM Yoav Weiss <yoav...@chromium.org> wrote:


On Monday, July 11, 2022 at 12:50:11 PM UTC+2 Yutaka Hirano wrote:
On Mon, Jul 11, 2022 at 7:41 PM Yutaka Hirano <yhi...@chromium.org> wrote:


On Mon, Jul 11, 2022 at 5:41 PM Yoav Weiss <yoav...@chromium.org> wrote:


On Mon, Jul 11, 2022 at 10:17 AM Yutaka Hirano <yhi...@chromium.org> wrote:

The explainer seems focused on the H1 Origin Trial use case, which IIUC we decided against.
Is there a more up-to-date explainer on what y'all are actually planning to ship?

Oops, sorry again, I thought I updated the URL but apparently I failed to do so...

Thanks! :) 

Mike West

unread,
Jul 13, 2022, 7:39:04 AM7/13/22
to Yoav Weiss, Yutaka Hirano, blink-dev, Yoichi Osato
LGTM2, also assuming you handle Mozilla's concerns reasonably. I'm happy to see y'all have thought through the CORS implications, and requiring `cors` or `same-origin` requests alleviates my minor concerns about leaking a server's support for HTTP/1 vs HTTP/2+.

-mike


Mike Taylor

unread,
Jul 13, 2022, 9:30:25 AM7/13/22
to Mike West, Yoav Weiss, Yutaka Hirano, blink-dev, Yoichi Osato
Reply all
Reply to author
Forward
0 new messages