Skip to content

Support ReadableByteStreamController in stream piping#36497

Draft
Taym95 wants to merge 2 commits intoservo:mainfrom
Taym95:Support-ReadableByteStreamController-in-stream-piping
Draft

Support ReadableByteStreamController in stream piping#36497
Taym95 wants to merge 2 commits intoservo:mainfrom
Taym95:Support-ReadableByteStreamController-in-stream-piping

Conversation

@Taym95
Copy link
Copy Markdown
Member

@Taym95 Taym95 commented Apr 13, 2025

Part of #34676, Fix #36013

@Taym95 Taym95 requested a review from gterzian as a code owner April 13, 2025 11:09
@Taym95 Taym95 added the T-linux-wpt Do a try run of the WPT label Apr 13, 2025
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Apr 13, 2025
@github-actions
Copy link
Copy Markdown

🔨 Triggering try run (#14428902729) for Linux (WPT)

@Taym95 Taym95 force-pushed the Support-ReadableByteStreamController-in-stream-piping branch from 191aa13 to e7f463c Compare April 13, 2025 11:10
@github-actions
Copy link
Copy Markdown

⚠️ Try run (#14428902729) failed.

@Taym95 Taym95 force-pushed the Support-ReadableByteStreamController-in-stream-piping branch from e7f463c to b4ec9cd Compare April 13, 2025 11:21
@Taym95 Taym95 added the T-linux-wpt Do a try run of the WPT label Apr 13, 2025
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Apr 13, 2025
@github-actions
Copy link
Copy Markdown

🔨 Triggering try run (#14428998306) for Linux (WPT)

@Taym95 Taym95 force-pushed the Support-ReadableByteStreamController-in-stream-piping branch from b4ec9cd to 692c7fa Compare April 13, 2025 11:22
@github-actions
Copy link
Copy Markdown

Test results for linux-wpt from try job (#14428998306):

Flaky unexpected result (19)
  • OK [expected TIMEOUT] /_webgl/conformance/textures/image_bitmap_from_video/tex-2d-luminance-luminance-unsigned_byte.html
    • PASS [expected NOTRUN] subtest: Overall test
    • FAIL [expected PASS] subtest: WebGL test #1

      assert_true: createImageBitmap(source) failed: "argument could not be converted to any of: HTMLImageElement, HTMLCanvasElement, OffscreenCanvas, CSSStyleValue, Blob, ImageData" expected true got false
      

    • FAIL [expected PASS] subtest: WebGL test #3

      assert_true: createImageBitmap(source) failed: "argument could not be converted to any of: HTMLImageElement, HTMLCanvasElement, OffscreenCanvas, CSSStyleValue, Blob, ImageData" expected true got false
      

  • OK /content-security-policy/embedded-enforcement/subsumption_algorithm-nonces.html
    • PASS [expected FAIL] subtest: Nonce intersection is still done on exact match - matching nonces.
  • OK /content-security-policy/embedded-enforcement/subsumption_algorithm-strict_dynamic.html
    • PASS [expected FAIL] subtest: 'strict-dynamic' is properly handled for finding effective policy.
    • PASS [expected FAIL] subtest: 'strict-dynamic' has to be allowed by required csp if it is present in returned csp.
  • FAIL [expected PASS] /css/css-conditional/container-queries/container-for-cue.html (#34528)
  • OK /css/css-values/cap-invalidation.html (#32757)
    • FAIL [expected PASS] subtest: CSS Values and Units Test: cap invalidation

      uncaught exception: Error: assert_not_equals: expect the capital height of Ahem and sans-serif to be different got disallowed value 371.3333333333333
      

  • TIMEOUT [expected OK] /custom-elements/reactions/customized-builtins/HTMLMediaElement.html (#31014)
  • OK /fetch/metadata/generated/css-font-face.sub.tentative.html (#34624)
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy same-origin destination
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy same-site destination
  • OK /html/browsers/browsing-the-web/navigating-across-documents/009.html (#24456)
    • PASS [expected FAIL] subtest: Link with onclick form submit to javascript url with document.write and href navigation
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/anchor-fragment-form-submit-longfragment.html
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/anchor-fragment-form-submit.html
  • OK /html/browsers/browsing-the-web/navigating-across-documents/refresh/same-document-refresh.html (#34597)
    • FAIL [expected PASS] subtest: Same-Document Referrer from Refresh

      assert_equals: original page loads expected "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/refresh/resources/refresh-with-section.sub.html?url=%23section" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/refresh/resources/refresh-with-section.sub.html?url=%23section#section"
      

  • OK /html/browsers/browsing-the-web/overlapping-navigations-and-traversals/cross-document-nav-cross-document-nav.html (#29181)
    • PASS [expected FAIL] subtest: cross-document navigation then cross-document navigation
  • OK [expected ERROR] /html/canvas/element/manual/imagebitmap/createImageBitmap-colorSpaceConversion.html (#34151)
  • CRASH [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
  • OK /html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html (#29634)
    • PASS [expected FAIL] subtest: Verifies that location navigations take precedence when following form submissions.
  • OK /html/semantics/forms/form-submission-0/multipart-formdata.window.html (#28725)
    • PASS [expected FAIL] subtest: multipart/form-data: Basic test (formdata event)
  • TIMEOUT [expected OK] /resource-timing/nested-context-navigations-iframe.html (#24311)
    • TIMEOUT [expected PASS] subtest: Test that iframe navigations are not observable by the parent, even after history navigations by the parent

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe refreshes are not observable by the parent
  • ERROR /service-workers/idlharness.https.any.html (#36250)
    • PASS [expected TIMEOUT] subtest: ServiceWorkerContainer interface: operation register((TrustedScriptURL or USVString), optional RegistrationOptions)
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation enable()
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation disable()
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation setHeaderValue(ByteString)
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation getState()
  • TIMEOUT [expected OK] /webmessaging/without-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript:

      Test timed out
      

Stable unexpected results that are known to be intermittent (14)
  • OK /_webgl/conformance/textures/misc/texture-upload-size.html (#21770)
    • FAIL [expected PASS] subtest: WebGL test #52

      assert_true: could not create image (SVG) expected true got false
      

  • FAIL [expected PASS] /css/compositing/mix-blend-mode/mix-blend-mode-video-sibling.html (#32849)
  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Cross-site
  • OK /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • FAIL [expected PASS] subtest: Navigating to a different document with form submission

      assert_equals: expected "http://web-platform.test:8000/common/blank.html?1=" but got "about:blank"
      

  • CRASH [expected OK] /html/canvas/element/canvas-host/2d.canvas.host.size.large.html (#36155)
  • TIMEOUT [expected OK] /html/interaction/focus/the-autofocus-attribute/supported-elements.html (#24145)
    • TIMEOUT [expected FAIL] subtest: Contenteditable element should support autofocus

      Test timed out
      

    • NOTRUN [expected FAIL] subtest: Element with tabindex should support autofocus
    • NOTRUN [expected PASS] subtest: Non-HTMLElement should not support autofocus
    • NOTRUN [expected FAIL] subtest: Host element with delegatesFocus should support autofocus
    • NOTRUN [expected FAIL] subtest: Host element with delegatesFocus including no focusable descendants should be skipped
    • NOTRUN [expected FAIL] subtest: Area element should support autofocus
  • TIMEOUT [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
    • TIMEOUT [expected FAIL] subtest: Check that popups from a sandboxed iframe escape the sandbox if allow-popups-to-escape-sandbox is used

      Test timed out
      

  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK /html/semantics/forms/form-submission-0/jsurl-form-submit.tentative.html (#36489)
    • FAIL [expected PASS] subtest: Verifies that form submissions scheduled inside javascript: urls take precedence over the javascript: url's return value.

      assert_equals: expected "/html/semantics/forms/form-submission-0/resources/form.html" but got "blank"
      

  • OK /html/semantics/forms/historical.html (#28568)
    • FAIL [expected PASS] subtest: <input name=isindex> should not be supported

      assert_regexp_match: expected object "/\?isindex=x$/" but got "about:blank"
      

  • OK [expected TIMEOUT] /performance-timeline/navigation-id-detached-frame.tentative.html (#34773)
    • PASS [expected TIMEOUT] subtest: The navigation_id getter does not crash a window of detached frame
  • OK /webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html (#22849)
    • FAIL [expected PASS] subtest: X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [14680] -3.8476680000000000e+7 2.0512369275093079e-1 3.8476680205123693e+7 1.8757794230939272e+8 3.8985999999999999e-3 [14681] 1.1480505578219891e-2 1.4340442419052124e-1 1.3192391861230135e-1 9.1994315626575540e-1 3.8985999999999999e-3 Max AbsError of 3.8476680205123693e+7 at index of 14680. Max RelError of 1.8757794230939272e+8 at index of 14680.

      assert_true: expected true got false
      

    • FAIL [expected PASS] subtest: X SNR (-108.2698659309678 dB) is not greater than or equal to 65.737. Got -108.2698659309678.

      assert_true: expected true got false
      

  • TIMEOUT [expected OK] /webmessaging/with-ports/017.html (#24486)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, about:blank

      Test timed out
      

  • TIMEOUT [expected OK] /webmessaging/with-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript:

      Test timed out
      

@github-actions
Copy link
Copy Markdown

✨ Try run (#14428998306) succeeded.

Copy link
Copy Markdown
Member

@gterzian gterzian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pub(crate) fn read(&self, can_gc: CanGc) -> Rc<Promise> {
match self {
ReaderType::BYOB(_) => {
unreachable!("Native reading of a chunk can only be done with a default reader.")
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't seem right.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is what read_a_chuk does, byob read function requires a view.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I mean is that here, unlike at read_a_chunk, the point is to actually use a BYOB reader for the native reading of chunk as part of the piping flow. And doing so will hit this branch of logic, and panic. Is my understanding correct?

@Taym95 Taym95 force-pushed the Support-ReadableByteStreamController-in-stream-piping branch from 692c7fa to 4ed54ee Compare April 15, 2025 20:08
@Taym95 Taym95 added the T-linux-wpt Do a try run of the WPT label Apr 15, 2025
@github-actions github-actions bot removed the T-linux-wpt Do a try run of the WPT label Apr 15, 2025
@github-actions
Copy link
Copy Markdown

🔨 Triggering try run (#14479051535) for Linux (WPT)

@Taym95
Copy link
Copy Markdown
Member Author

Taym95 commented Apr 15, 2025

@github-actions
Copy link
Copy Markdown

Test results for linux-wpt from try job (#14479051535):

Flaky unexpected result (22)
  • FAIL [expected PASS] /css/compositing/mix-blend-mode/mix-blend-mode-video-sibling.html (#32849)
  • FAIL [expected PASS] /css/css-tables/table-cell-overflow-auto-scrolled.html (#35011)
  • OK [expected TIMEOUT] /css/selectors/media/media-playback-state.html
    • FAIL [expected TIMEOUT] subtest: Test :paused pseudo-classes

      promise_test: Unhandled rejection with value: object "SyntaxError: The string did not match the expected pattern."
      

    • FAIL [expected NOTRUN] subtest: Test :seeking pseudo-class

      promise_test: Unhandled rejection with value: object "SyntaxError: The string did not match the expected pattern."
      

  • TIMEOUT [expected OK] /custom-elements/reactions/customized-builtins/HTMLMediaElement.html (#31014)
  • OK /encoding/legacy-mb-japanese/euc-jp/eucjp-encode-form-errors-hangul.html?1-1000
    • FAIL [expected PASS] subtest: hangul U+AD90 궐 %26%2344432%3B

      assert_equals: expected "%26%2344432%3B" but got ""
      

    • FAIL [expected PASS] subtest: hangul U+AD91 궑 %26%2344433%3B

      assert_equals: expected (string) "%26%2344433%3B" but got (undefined) undefined
      

    • FAIL [expected PASS] subtest: hangul U+AD92 궒 %26%2344434%3B

      assert_equals: expected (string) "%26%2344434%3B" but got (undefined) undefined
      

    • FAIL [expected PASS] subtest: hangul U+AD93 궓 %26%2344435%3B

      assert_equals: expected (string) "%26%2344435%3B" but got (undefined) undefined
      

    • FAIL [expected PASS] subtest: hangul U+AD94 궔 %26%2344436%3B

      assert_equals: expected (string) "%26%2344436%3B" but got (undefined) undefined
      

    • FAIL [expected PASS] subtest: hangul U+AD95 궕 %26%2344437%3B

      assert_equals: expected (string) "%26%2344437%3B" but got (undefined) undefined
      

    • FAIL [expected PASS] subtest: hangul U+AD96 궖 %26%2344438%3B

      assert_equals: expected (string) "%26%2344438%3B" but got (undefined) undefined
      

    • FAIL [expected PASS] subtest: hangul U+AD97 궗 %26%2344439%3B

      assert_equals: expected (string) "%26%2344439%3B" but got (undefined) undefined
      

    • FAIL [expected PASS] subtest: hangul U+AD98 궘 %26%2344440%3B

      assert_equals: expected (string) "%26%2344440%3B" but got (undefined) undefined
      

    • FAIL [expected PASS] subtest: hangul U+AD99 궙 %26%2344441%3B

      assert_equals: expected (string) "%26%2344441%3B" but got (undefined) undefined
      

    • And 390 more unexpected results...
  • OK /html/browsers/browsing-the-web/navigating-across-documents/008.html (#24456)
    • PASS [expected FAIL] subtest: Link with onclick form submit to javascript url and href navigation
  • ERROR [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/anchor-fragment-form-submit-longfragment.html
  • OK /html/browsers/browsing-the-web/navigating-across-documents/refresh/same-document-refresh.html (#34597)
    • FAIL [expected PASS] subtest: Same-Document Referrer from Refresh

      assert_equals: original page loads expected "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/refresh/resources/refresh-with-section.sub.html?url=%23section" but got "http://web-platform.test:8000/html/browsers/browsing-the-web/navigating-across-documents/refresh/resources/refresh-with-section.sub.html?url=%23section#section"
      

  • OK [expected CRASH] /html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html (#34117)
  • OK [expected CRASH] /html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.html (#30164)
  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html (#22647)
    • FAIL [expected TIMEOUT] subtest: Check that popups from a sandboxed iframe escape the sandbox if allow-popups-to-escape-sandbox is used

      assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
      

  • OK [expected TIMEOUT] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html (#24066)
    • FAIL [expected NOTRUN] subtest: Check that popups from a sandboxed iframe do not escape the sandbox

      assert_equals: It came from a sandboxed iframe expected "null" but got "http://web-platform.test:8000"
      

  • OK /html/semantics/scripting-1/the-script-element/module/dynamic-import/blob-url.any.html (#33948)
    • FAIL [expected PASS] subtest: Revoking a blob URL immediately after calling import will not fail

      promise_test: Unhandled rejection with value: object "TypeError: Dynamic import failed"
      

  • OK /navigation-timing/test-navigation-type-reload.html (#33334)
    • PASS [expected FAIL] subtest: Reload domContentLoadedEventStart &gt; Original domContentLoadedEventStart
    • PASS [expected FAIL] subtest: Reload domInteractive &gt; Original domInteractive
    • PASS [expected FAIL] subtest: Reload fetchStart &gt; Original fetchStart
  • OK /resize-observer/eventloop.html (#33599)
    • FAIL [expected PASS] subtest: test0: multiple notifications inside same event loop

      assert_equals: new loop expected 1 but got 0
      

  • TIMEOUT [expected OK] /resource-timing/nested-context-navigations-iframe.html (#24311)
    • TIMEOUT [expected PASS] subtest: Test that iframe navigations are not observable by the parent, even after history navigations by the parent

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent, even after history navigations by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent, even after history navigations by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe navigations are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that crossorigin iframe refreshes are not observable by the parent
    • NOTRUN [expected PASS] subtest: Test that cross-site iframe refreshes are not observable by the parent
  • ERROR /service-workers/idlharness.https.any.html (#36250)
    • PASS [expected TIMEOUT] subtest: ServiceWorkerContainer interface: operation register((TrustedScriptURL or USVString), optional RegistrationOptions)
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation enable()
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation disable()
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation setHeaderValue(ByteString)
    • PASS [expected TIMEOUT] subtest: NavigationPreloadManager interface: operation getState()
  • CRASH [expected OK] /webaudio/the-audio-api/the-audiocontext-interface/audiocontextoptions.html (#21408)
  • TIMEOUT [expected OK] /webmessaging/with-ports/018.html (#24485)
    • TIMEOUT [expected PASS] subtest: origin of the script that invoked the method, javascript:

      Test timed out
      

  • TIMEOUT [expected OK] /webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.html (#29053)
    • TIMEOUT [expected PASS] subtest: StorageKey: test 3P about:blank window opened from a 3P iframe

      Test timed out
      

  • OK /workers/WorkerGlobalScope-close.html (#23064)
    • PASS [expected FAIL] subtest: Test sending a message after closing.
  • OK /xhr/open-url-multi-window-5.htm (#23360)
    • FAIL [expected PASS] subtest: XMLHttpRequest: open() resolving URLs (multi-Window; 5)

      assert_throws_dom: function "function() {client.open("GET", "...") }" did not throw
      

Stable unexpected results that are known to be intermittent (14)
  • OK /FileAPI/url/url-with-fetch.any.worker.html (#21517)
    • FAIL [expected PASS] subtest: Revoke blob URL after calling fetch, fetch should succeed

      promise_test: Unhandled rejection with value: object "TypeError: Network error occurred"
      

  • OK /_webgl/conformance/textures/misc/texture-upload-size.html (#21770)
    • FAIL [expected PASS] subtest: WebGL test #52

      assert_true: could not create image (SVG) expected true got false
      

  • OK /fetch/metadata/generated/css-font-face.https.sub.tentative.html (#32732)
    • PASS [expected FAIL] subtest: sec-fetch-user
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Cross-site
  • OK /fetch/metadata/generated/css-font-face.sub.tentative.html (#34624)
    • PASS [expected FAIL] subtest: sec-fetch-storage-access - Not sent to non-trustworthy same-site destination
  • TIMEOUT [expected OK] /html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html (#29048)
    • TIMEOUT [expected PASS] subtest: Navigating to a different document with link click

      Test timed out
      

    • NOTRUN [expected PASS] subtest: Navigating to a different document with form submission
  • CRASH [expected OK] /html/canvas/element/canvas-host/2d.canvas.host.size.large.html (#36155)
  • OK [expected CRASH] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html (#24057)
  • TIMEOUT [expected OK] /html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html (#22154)
    • NOTRUN [expected FAIL] subtest: Check that popups from a sandboxed iframe do not escape the sandbox
  • OK /html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm (#34434)
    • FAIL [expected PASS] subtest: default object size after src is removed

      assert_equals: expected "300px" but got "320px"
      

  • OK /html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html (#29634)
    • PASS [expected FAIL] subtest: Verifies that location navigations take precedence when following form submissions.
  • OK /html/semantics/forms/form-submission-0/jsurl-form-submit.tentative.html (#36489)
    • FAIL [expected PASS] subtest: Verifies that form submissions scheduled inside javascript: urls take precedence over the javascript: url's return value.

      assert_equals: expected "/html/semantics/forms/form-submission-0/resources/form.html" but got "blank"
      

  • OK /html/semantics/forms/historical.html (#28568)
    • FAIL [expected PASS] subtest: &lt;input name=isindex&gt; should not be supported

      assert_regexp_match: expected object "/\?isindex=x$/" but got "about:blank"
      

  • OK /webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html (#22849)
    • FAIL [expected PASS] subtest: X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}. Index Actual Expected AbsError RelError Test threshold [14680] 3.1592426288405940e+36 2.0512369275093079e-1 3.1592426288405940e+36 1.5401646618543817e+37 3.8985999999999999e-3 [14681] 1.1480505578219891e-2 1.4340442419052124e-1 1.3192391861230135e-1 9.1994315626575540e-1 3.8985999999999999e-3 Max AbsError of 3.1592426288405940e+36 at index of 14680. Max RelError of 1.5401646618543817e+37 at index of 14680.

      assert_true: expected true got false
      

    • FAIL [expected PASS] subtest: X SNR (-686.5575736732692 dB) is not greater than or equal to 65.737. Got -686.5575736732692.

      assert_true: expected true got false
      

  • OK [expected ERROR] /webxr/render_state_update.https.html (#27535)

@github-actions
Copy link
Copy Markdown

✨ Try run (#14479051535) succeeded.

@Taym95 Taym95 requested a review from gterzian April 16, 2025 08:41
pub(crate) fn read(&self, can_gc: CanGc) -> Rc<Promise> {
match self {
ReaderType::BYOB(_) => {
unreachable!("Native reading of a chunk can only be done with a default reader.")
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I mean is that here, unlike at read_a_chunk, the point is to actually use a BYOB reader for the native reading of chunk as part of the piping flow. And doing so will hit this branch of logic, and panic. Is my understanding correct?

return promise_rejects_js(t, TypeError, rs.pipeTo(ws)).then(() => {
assert_false(ws.locked, 'the WritableStream must remain unlocked after pipeTo rejection');
});
}, 'pipeTo must fail if the ReadableStream is locked with a BYOB reader, and must not lock the WritableStream');
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the logic of those two tests is already covered in the main suite, and what we need instead is a simply tests that actually enqueues chunks and pipes them successfully(I believe such a test would crash with the current implementation, so it's actually a good idea to write the test first and check that this is a correct assumption).

@Taym95 Taym95 marked this pull request as draft April 26, 2025 15:59
@Taym95
Copy link
Copy Markdown
Member Author

Taym95 commented Apr 26, 2025

I will make this one a draft and address it later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support ReadableByteStreamController in stream piping

2 participants