Intent to Experiment: fetch() upload streaming

170 views
Skip to first unread message

Yoichi Osato

unread,
Jan 12, 2021, 10:59:36 PM1/12/21
to blink-dev

Contact emails

yoi...@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

Pending

Risks



Interoperability and Compatibility

TBD



Gecko: Positive Positive in TPAC 2019 [1]. Yoichio will ask their standard-position officially.

Edge: Positive (https://groups.google.com/a/chromium.org/d/msg/blink-dev/hqzIf3gdahs/dJ_wNEMFEwAJ)

WebKit: Positive Positive in TPAC 2019 [1]. [1] https://docs.google.com/document/d/1q090ovJ4gd8wSfVtvuoZLMZ51YkiFDsEZ0Jiqi41Iys/edit#heading=h.85gziabhajhg Yoichio will ask their standard-position officially.

Web developers: Positive (https://groups.google.com/a/chromium.org/g/blink-network-dev/c/bsVgOxNCzFchttps://groups.google.com/a/chromium.org/g/blink-network-dev/c/bsVgOxNCzFc


Goals for experimentation

We need an origin trial to verify web-compatibility, specifically that we can do chunked uploads over HTTP/1.1 without breaking middleboxes with trial API AllowHTTP1ForStreamingUpload (the additional API design is on-going). That trial and the rough API idea were suggested at https://github.com/whatwg/fetch/issues/966#issuecomment-588065153. Experiment Goals: Measure how far each HTTP protocol (1.0 or earlier, 1.1 and 2.0 or later) work to upload streaming.



Experimental timeline

Extend the experiment to M89.



Reason this experiment is being extended

Because we don't have enough data. The partner gRPC once released update library including 3P trial but it was reverted due to huge breaks. We're planning to reland that within 2021 Q1.



Ongoing technical constraints

None.



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

No

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

No

Tracking bug

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

Link to entry on the Chrome Platform Status

https://www.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,
Jan 13, 2021, 2:43:31 AM1/13/21
to Yoichi Osato, blink-dev
Can you clarify what the exact timelines for the OT would be?
Also, can you confirm you have partners lined up for experimentation?
 


Reason this experiment is being extended

Because we don't have enough data. The partner gRPC once released update library including 3P trial but it was reverted due to huge breaks. We're planning to reland that within 2021 Q1.



Ongoing technical constraints

None.



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

No

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

No

Tracking bug

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

Link to entry on the Chrome Platform Status

https://www.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/CAAEV3pmq373t119NBjV96V%2B8Hc-aZnQctheXBJZ7chNWH%2BKHfQ%40mail.gmail.com.

Yoichi Osato

unread,
Jan 14, 2021, 12:01:51 AM1/14/21
to Yoav Weiss, blink-dev
> Also, can you confirm you have partners lined up for experimentation? 
I have been working with gRPC team to try this feature in the wild.
Their product is a js library, which is going to apply the feature.
 
> Can you clarify what the exact timelines for the OT would be?
I expect they will launch the applied library by the end of Feb.
Then measure success ratios of HTTP/1 and /2.
With that, I decide HTTP/1 is acceptable or not on the metrics and ask feedback to the whatwg thread.





2021年1月13日(水) 16:43 Yoav Weiss <yo...@yoav.ws>:

Yoichi Osato

unread,
Jan 14, 2021, 3:07:26 AM1/14/21
to Yoav Weiss, blink-dev
Sorry, I intended to extend the experiment rather than starting an experiment.
The origin trial has already started in M85 planned finishing in M89.
I'm asking here to extend that to M91.


2021年1月14日(木) 14:01 Yoichi Osato <yoi...@chromium.org>:

Yoav Weiss

unread,
Jan 14, 2021, 5:00:36 AM1/14/21
to Yoichi Osato, blink-dev
Thanks for the clarification, which seems like a substantial one.

The OT extension would take it beyond what we typically allow OTs to run (7 milestones IIUC). At the same time, this doesn't seem like a particularly risky feature, and from what you're saying, experimentation hasn't really started up until now.
Can you confirm that last part?

Alex Russell

unread,
Jan 14, 2021, 3:42:07 PM1/14/21
to blink-dev, yo...@yoav.ws, blink-dev, Yoichi Osato
Hey all,

Yoav caught me up on the details of this thread in today's OWNERS meeting and I'd like to encourage the team to ship this feature where we have confidence while continuing the trial for areas we are unsure about (if we can). For example, if we think it's possible to enable this feature only over H/2 links (where middleboxes are unlikely to be an issue?), perhaps a separate I2S could be formulated for that in parallel with this data gathering.

Thoughts?

Yoichi Osato

unread,
Jan 15, 2021, 12:01:17 AM1/15/21
to Alex Russell, blink-dev, yo...@yoav.ws
> experimentation hasn't really started up until now. Can you confirm that last part?
Actually we got an output from this trial though we didn't have H/1vsH/2 data.
That includes a fetch bug [1].
We're preparing to publish the gRPC library to measure the data while fixing the found bugs in chrome.

[1] crbug.com/1165690: Fetch streaming upload doesn't work with Service Worker Network Fallback

> enable this feature only over H/2 links
Shipping H/2 and H/1 separately is a good idea. I will consider this back if our next publishing failed.

2021年1月15日(金) 5:42 Alex Russell <sligh...@chromium.org>:

Yoav Weiss

unread,
Jan 15, 2021, 3:32:31 AM1/15/21
to Yoichi Osato, Alex Russell, blink-dev
After offline discussion with Yoichi, the burn-in risk here seems low, as usage during the OT was low.

LGTM to extend experimentation till M91
Reply all
Reply to author
Forward
0 new messages