Closed Bug 1777917 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 34687 - Disallow streaming upload on HTTP/1.1

Categories

(Core :: DOM: Networking, task, P4)

task

Tracking

()

RESOLVED FIXED
104 Branch
Tracking Status
firefox104 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 34687 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/34687
Details from upstream follow.

Yutaka Hirano <yhirano@chromium.org> wrote:

Disallow streaming upload on HTTP/1.1

We decided not to allow the streaming upload feature on HTTP/1.1. Remove
the feature, and move tests accordingly.

See also: https://github.com/whatwg/fetch/issues/966

Bug: 688906
Change-Id: I4e616469aad2378495ad81ba9034ca034f8ab1b9

Reviewed-on: https://chromium-review.googlesource.com/3734308
WPT-Export-Revision: d7c2516ba7ce6acbf47e6ad04d0780efee8ae28b

Component: web-platform-tests → DOM: Networking
Product: Testing → Core
PR 34687 applied with additional changes from upstream: a9b73f530b73d237b0512968715104c96631c22a

CI Results

Ran 10 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 8 tests and 23 subtests

Status Summary

Firefox

OK : 4[Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub] 8[Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview]
PASS : 40[Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub] 44[Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview]
FAIL : 52[Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub] 92[Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview]
ERROR: 4

Chrome

OK : 8
PASS : 108
FAIL : 28

Safari

OK : 8
PASS : 68
FAIL : 68

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

Firefox-only Failures

  • /fetch/api/basic/request-upload.h2.any.sharedworker.html [wpt.fyi]: ERROR [Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub], OK [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview]
  • /fetch/api/basic/request-upload.h2.any.worker.html [wpt.fyi]: ERROR [Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub], OK [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview]
  • /fetch/api/basic/request-upload.h2.any.serviceworker.html [wpt.fyi]: ERROR [Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub], OK [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview]
  • /fetch/api/basic/request-upload.h2.any.html [wpt.fyi]: ERROR [Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub], OK [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview]
  • /fetch/api/request/request-init-stream.any.serviceworker.html [wpt.fyi]
    • Constructing a Request with a stream holds the original object.: FAIL
    • Constructing a Request with a stream on which getReader() is called: FAIL
    • Constructing a Request with a stream on which read() is called: FAIL
    • Constructing a Request with a stream on which read() and releaseLock() are called: FAIL
    • Constructing a Request with a Request on which body.getReader() is called: FAIL
    • Constructing a Request with a Request on which body.getReader().read() is called: FAIL
    • Constructing a Request with a Request on which read() and releaseLock() are called: FAIL
  • /fetch/api/request/request-init-stream.any.sharedworker.html [wpt.fyi]
    • Constructing a Request with a stream holds the original object.: FAIL
    • Constructing a Request with a stream on which getReader() is called: FAIL
    • Constructing a Request with a stream on which read() is called: FAIL
    • Constructing a Request with a stream on which read() and releaseLock() are called: FAIL
    • Constructing a Request with a Request on which body.getReader() is called: FAIL
    • Constructing a Request with a Request on which body.getReader().read() is called: FAIL
    • Constructing a Request with a Request on which read() and releaseLock() are called: FAIL
  • /fetch/api/request/request-init-stream.any.worker.html [wpt.fyi]
    • Constructing a Request with a stream holds the original object.: FAIL
    • Constructing a Request with a stream on which getReader() is called: FAIL
    • Constructing a Request with a stream on which read() is called: FAIL
    • Constructing a Request with a stream on which read() and releaseLock() are called: FAIL
    • Constructing a Request with a Request on which body.getReader() is called: FAIL
    • Constructing a Request with a Request on which body.getReader().read() is called: FAIL
    • Constructing a Request with a Request on which read() and releaseLock() are called: FAIL
  • /fetch/api/request/request-init-stream.any.html [wpt.fyi]
    • Constructing a Request with a stream holds the original object.: FAIL
    • Constructing a Request with a stream on which getReader() is called: FAIL
    • Constructing a Request with a stream on which read() is called: FAIL
    • Constructing a Request with a stream on which read() and releaseLock() are called: FAIL
    • Constructing a Request with a Request on which body.getReader() is called: FAIL
    • Constructing a Request with a Request on which body.getReader().read() is called: FAIL
    • Constructing a Request with a Request on which read() and releaseLock() are called: FAIL

New Tests That Don't Pass

  • /fetch/api/basic/request-upload.h2.any.sharedworker.html [wpt.fyi]: ERROR [Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub], OK [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview] (Chrome: OK, Safari: OK)
    • Fetch with POST with empty ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Fetch with POST with ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Fetch with POST with ReadableStream on 421 response should return the response and not retry.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Feature detect for POST with ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Feature detect for POST with ReadableStream, using request object: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing a String: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing null: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing a number: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload should fail on redirect (302): FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload should fail on a 401 response: FAIL (Chrome: PASS, Safari: FAIL)
  • /fetch/api/basic/request-upload.h2.any.worker.html [wpt.fyi]: ERROR [Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub], OK [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview] (Chrome: OK, Safari: OK)
    • Fetch with POST with empty ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Fetch with POST with ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Fetch with POST with ReadableStream on 421 response should return the response and not retry.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Feature detect for POST with ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Feature detect for POST with ReadableStream, using request object: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing a String: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing null: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing a number: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload should fail on redirect (302): FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload should fail on a 401 response: FAIL (Chrome: PASS, Safari: FAIL)
  • /fetch/api/basic/request-upload.h2.any.serviceworker.html [wpt.fyi]: ERROR [Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub], OK [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview] (Chrome: OK, Safari: OK)
    • Fetch with POST with empty ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Fetch with POST with ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Fetch with POST with ReadableStream on 421 response should return the response and not retry.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Feature detect for POST with ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Feature detect for POST with ReadableStream, using request object: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing a String: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing null: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing a number: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload should fail on redirect (302): FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload should fail on a 401 response: FAIL (Chrome: PASS, Safari: FAIL)
  • /fetch/api/basic/request-upload.h2.any.html [wpt.fyi]: ERROR [Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub], OK [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview] (Chrome: OK, Safari: OK)
    • Fetch with POST with empty ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Fetch with POST with ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Fetch with POST with ReadableStream on 421 response should return the response and not retry.: FAIL (Chrome: FAIL, Safari: FAIL)
    • Feature detect for POST with ReadableStream: FAIL (Chrome: PASS, Safari: FAIL)
    • Feature detect for POST with ReadableStream, using request object: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing a String: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing null: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload with body containing a number: FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload should fail on redirect (302): FAIL (Chrome: PASS, Safari: FAIL)
    • Streaming upload should fail on a 401 response: FAIL (Chrome: PASS, Safari: FAIL)
  • /fetch/api/request/request-init-stream.any.serviceworker.html [wpt.fyi]
    • Constructing a Request with a stream holds the original object.: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which getReader() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which read() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which read() and releaseLock() are called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which body.getReader() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which body.getReader().read() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which read() and releaseLock() are called: FAIL (Chrome: PASS, Safari: PASS)
    • It is error to omit .duplex when the body is a ReadableStream.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is null.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a string.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a Uint8Array.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a Blob.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a ReadableStream.: FAIL (Chrome: FAIL, Safari: FAIL)
  • /fetch/api/request/request-init-stream.any.sharedworker.html [wpt.fyi]
    • Constructing a Request with a stream holds the original object.: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which getReader() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which read() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which read() and releaseLock() are called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which body.getReader() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which body.getReader().read() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which read() and releaseLock() are called: FAIL (Chrome: PASS, Safari: PASS)
    • It is error to omit .duplex when the body is a ReadableStream.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is null.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a string.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a Uint8Array.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a Blob.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a ReadableStream.: FAIL (Chrome: FAIL, Safari: FAIL)
  • /fetch/api/request/request-init-stream.any.worker.html [wpt.fyi]
    • Constructing a Request with a stream holds the original object.: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which getReader() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which read() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which read() and releaseLock() are called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which body.getReader() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which body.getReader().read() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which read() and releaseLock() are called: FAIL (Chrome: PASS, Safari: PASS)
    • It is error to omit .duplex when the body is a ReadableStream.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is null.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a string.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a Uint8Array.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a Blob.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a ReadableStream.: FAIL (Chrome: FAIL, Safari: FAIL)
  • /fetch/api/request/request-init-stream.any.html [wpt.fyi]
    • Constructing a Request with a stream holds the original object.: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which getReader() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which read() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a stream on which read() and releaseLock() are called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which body.getReader() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which body.getReader().read() is called: FAIL (Chrome: PASS, Safari: PASS)
    • Constructing a Request with a Request on which read() and releaseLock() are called: FAIL (Chrome: PASS, Safari: PASS)
    • It is error to omit .duplex when the body is a ReadableStream.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is null.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a string.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a Uint8Array.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a Blob.: FAIL (Chrome: FAIL, Safari: FAIL)
    • It is error to set .duplex = 'full' when the body is a ReadableStream.: FAIL (Chrome: FAIL, Safari: FAIL)
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6c64deb79beb
[wpt PR 34687] - Disallow streaming upload on HTTP/1.1, a=testonly
https://hg.mozilla.org/integration/autoland/rev/7114fad8e54e
[wpt PR 34687] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 104 Branch
You need to log in before you can comment on or make changes to this bug.