Closed Bug 1828240 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 39566 - Support cloneForBranch2 when Teeing default readable streams

Categories

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

task

Tracking

()

RESOLVED FIXED
114 Branch
Tracking Status
firefox114 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

Nidhi Jaju <nidhijaju@chromium.org> wrote:

Support cloneForBranch2 when Teeing default readable streams

This CL implements support for the cloneForBranch2 flag in the Streams
API standard. Previously, when teeing default readable streams, the
data was not cloned for the second branch, and hence the same chunk
object was used on both branches. However, this does not match the
spec[1].

This change updates this behavior to match the spec. This is also
useful for scenarios where both branches are to be consumed in a way
that they might interfere with each other i.e. transferring their
chunks.

[1] https://streams.spec.whatwg.org/#readable-stream-tee

Bug: 1243329
Change-Id: Ia4f1d22441aff0ca080ec04385aba566c2b80d97
Reviewed-on: https://chromium-review.googlesource.com/4422024
WPT-Export-Revision: a22c248ee292a7e7a42edba1ffd00232bf724414

Component: web-platform-tests → DOM: Networking
Product: Testing → Core

CI Results

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

Total 4 tests and 20 subtests

Status Summary

Firefox

OK : 4
PASS: 28
FAIL: 52

Chrome

OK : 4
PASS: 28
FAIL: 52

Safari

OK : 4
PASS: 80

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

  • /fetch/api/response/response-clone.any.worker.html [wpt.fyi]
    • Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint16Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (BigInt64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (BigUint64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Float32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Float64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (DataViewchunk): FAIL (Chrome: FAIL, Safari: PASS)
  • /fetch/api/response/response-clone.any.html [wpt.fyi]
    • Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint16Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (BigInt64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (BigUint64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Float32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Float64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (DataViewchunk): FAIL (Chrome: FAIL, Safari: PASS)
  • /fetch/api/response/response-clone.any.sharedworker.html [wpt.fyi]
    • Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint16Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (BigInt64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (BigUint64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Float32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Float64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (DataViewchunk): FAIL (Chrome: FAIL, Safari: PASS)
  • /fetch/api/response/response-clone.any.serviceworker.html [wpt.fyi]
    • Check response clone use structureClone for teed ReadableStreams (Int8Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Int16Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Int32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (ArrayBufferchunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint8Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint8ClampedArraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint16Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Uint32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (BigInt64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (BigUint64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Float32Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (Float64Arraychunk): FAIL (Chrome: FAIL, Safari: PASS)
    • Check response clone use structureClone for teed ReadableStreams (DataViewchunk): FAIL (Chrome: FAIL, Safari: PASS)
Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/82781fefa054 [wpt PR 39566] - Support cloneForBranch2 when Teeing default readable streams, a=testonly
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 114 Branch
You need to log in before you can comment on or make changes to this bug.