[Webaudio] Add negative playbackRate WPTs and TestExpectations (1/3) [chromium/src : main]

0 views
Skip to first unread message

Michael Wilson (Gerrit)

unread,
Apr 30, 2026, 7:47:02 PM (5 days ago) Apr 30
to Mahesh Kannan, Hongchan Choi, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Hongchan Choi and Mahesh Kannan

Michael Wilson added 3 comments

File third_party/blink/web_tests/TestExpectations
Line 9744, Patchset 6 (Latest):crbug.com/40719652 external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html [ Failure Timeout ]
Michael Wilson . unresolved

Do we know what section of the test is timing out? If it's just failing it would be better if we could have an -expected.txt file so we know what the specific output is.

File third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
Line 238, Patchset 6 (Latest): const expected = [4.0, 3.0, 2.0, 1.0];
Michael Wilson . unresolved
These expected values do not seem to be interpolated.  Should they be approximately the following instead?
```suggestion
const expected = [3.5, 2.5, 1.5, 0.5];
```
The spec says the interpolation method is UA-dependent, but since the test waveform is a ramp it's probably fine to use the above.
Line 272, Patchset 6 (Latest): source.playbackRate.value = 10;
Michael Wilson . unresolved

This isn't a negative rate; does this belong in the same test suite or would it be better in a separate test file?

Open in Gerrit

Related details

Attention is currently required from:
  • Hongchan Choi
  • Mahesh Kannan
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
Gerrit-Change-Number: 7802579
Gerrit-PatchSet: 6
Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
Gerrit-Attention: Mahesh Kannan <kmah...@google.com>
Gerrit-Attention: Hongchan Choi <hong...@chromium.org>
Gerrit-Comment-Date: Thu, 30 Apr 2026 23:46:53 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Hongchan Choi (Gerrit)

unread,
May 1, 2026, 1:19:31 PM (4 days ago) May 1
to Mahesh Kannan, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Mahesh Kannan

Hongchan Choi added 11 comments

File third_party/blink/web_tests/TestExpectations
Line 9744, Patchset 6 (Latest):crbug.com/40719652 external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html [ Failure Timeout ]
Michael Wilson . unresolved

Do we know what section of the test is timing out? If it's just failing it would be better if we could have an -expected.txt file so we know what the specific output is.

Hongchan Choi

This test should not be timed out because everything is based on OAC. It should deterministically fail if something is not right.

File third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
Line 25, Patchset 6 (Latest): const buffer = context.createBuffer(1, bufferFrames, sampleRate);
Hongchan Choi . unresolved
```suggestion
const buffer = new AudioBuffer(1, bufferFrames, sampleRate);
```
Line 28, Patchset 6 (Latest): if (bufferData) {
channelData.set(bufferData);
} else {
for (let i = 0; i < bufferFrames; i++) {
channelData[i] = i + 1.0;
}
}
Hongchan Choi . unresolved

Add a comment on what's this is for.

Line 36, Patchset 6 (Latest): const source = context.createBufferSource();
source.buffer = buffer;
Hongchan Choi . unresolved
```suggestion
const source = new AudioBufferSourceNode(context, {buffer});
```
Line 54, Patchset 6 (Latest): assert_equals(renderedData[0], 4.0, "Frame 0 should be 4.0");
Hongchan Choi . unresolved

Use single quote for string. (Google JS/TS style)

Line 259, Patchset 6 (Latest): assert_true(true, "Did not hang!");
Hongchan Choi . unresolved

What does this mean?

Is there any actual edge case that might hang?

Line 266, Patchset 6 (Latest): const buffer = context.createBuffer(1, 4, 44100);
const source = context.createBufferSource();
Hongchan Choi . unresolved

Use the constructor (instead of the factory method)

Line 268, Patchset 6 (Latest): source.buffer = buffer;
source.loop = true;
source.loopStart = 1 / 44100;
source.loopEnd = 2 / 44100;
source.playbackRate.value = 10;
Hongchan Choi . unresolved

All these can be a part of the constructor option.

Line 279, Patchset 6 (Latest): source.start(0);
Hongchan Choi . unresolved

Why zero?

Line 280, Patchset 6 (Latest): await context.startRendering();

await endedPromise;
Hongchan Choi . unresolved

Is this order specific? Or can we use Promise.all()?

Line 287, Patchset 6 (Latest):</html>
Hongchan Choi . unresolved

You need a new line at the EOF

Open in Gerrit

Related details

Attention is currently required from:
  • Mahesh Kannan
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
Gerrit-Change-Number: 7802579
Gerrit-PatchSet: 6
Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
Gerrit-Attention: Mahesh Kannan <kmah...@google.com>
Gerrit-Comment-Date: Fri, 01 May 2026 17:19:25 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Michael Wilson <mjwi...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Mahesh Kannan (Gerrit)

unread,
May 1, 2026, 2:42:01 PM (4 days ago) May 1
to Hongchan Choi, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

Mahesh Kannan added 12 comments

File third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
Line 25, Patchset 6: const buffer = context.createBuffer(1, bufferFrames, sampleRate);
Hongchan Choi . resolved
```suggestion
const buffer = new AudioBuffer(1, bufferFrames, sampleRate);
```
Mahesh Kannan

Done

Line 28, Patchset 6: if (bufferData) {

channelData.set(bufferData);
} else {
for (let i = 0; i < bufferFrames; i++) {
channelData[i] = i + 1.0;
}
}
Hongchan Choi . resolved

Add a comment on what's this is for.

Mahesh Kannan

Done

Line 36, Patchset 6: const source = context.createBufferSource();
source.buffer = buffer;
Hongchan Choi . resolved
```suggestion
const source = new AudioBufferSourceNode(context, {buffer});
```
Mahesh Kannan

Done

Line 54, Patchset 6: assert_equals(renderedData[0], 4.0, "Frame 0 should be 4.0");
Hongchan Choi . resolved

Use single quote for string. (Google JS/TS style)

Mahesh Kannan

Done

Line 238, Patchset 6: const expected = [4.0, 3.0, 2.0, 1.0];
Michael Wilson . resolved
These expected values do not seem to be interpolated.  Should they be approximately the following instead?
```suggestion
const expected = [3.5, 2.5, 1.5, 0.5];
```
The spec says the interpolation method is UA-dependent, but since the test waveform is a ramp it's probably fine to use the above.
Mahesh Kannan

Acknowledged

Line 259, Patchset 6: assert_true(true, "Did not hang!");
Hongchan Choi . unresolved

What does this mean?

Is there any actual edge case that might hang?

Mahesh Kannan

This is a defensive test case that checks the scenario where `loopStart` and `loopEnd` are identical, and the `playbackRate` is zero. In this scenario, we expect that the system doesn't hang or get stuck. This was added since I asked AI to add defensive test cases but if we feel this test can be moved elsewhere since its 0 playback rate, that would work as well.

Line 266, Patchset 6: const buffer = context.createBuffer(1, 4, 44100);
const source = context.createBufferSource();
Hongchan Choi . resolved

Use the constructor (instead of the factory method)

Mahesh Kannan

Done

Line 268, Patchset 6: source.buffer = buffer;

source.loop = true;
source.loopStart = 1 / 44100;
source.loopEnd = 2 / 44100;
source.playbackRate.value = 10;
Hongchan Choi . resolved

All these can be a part of the constructor option.

Mahesh Kannan

Done

Line 272, Patchset 6: source.playbackRate.value = 10;
Michael Wilson . resolved

This isn't a negative rate; does this belong in the same test suite or would it be better in a separate test file?

Mahesh Kannan

Removed this test since it not negative playback rate related.

Line 279, Patchset 6: source.start(0);
Hongchan Choi . unresolved

Why zero?

Mahesh Kannan

Removed this test

Line 280, Patchset 6: await context.startRendering();

await endedPromise;
Hongchan Choi . unresolved

Is this order specific? Or can we use Promise.all()?

Mahesh Kannan

Removed this test

Line 287, Patchset 6:</html>
Hongchan Choi . resolved

You need a new line at the EOF

Mahesh Kannan

Done

Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
Gerrit-Change-Number: 7802579
Gerrit-PatchSet: 7
Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
Gerrit-Comment-Date: Fri, 01 May 2026 18:41:35 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Michael Wilson <mjwi...@chromium.org>
Comment-In-Reply-To: Hongchan Choi <hong...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Mahesh Kannan (Gerrit)

unread,
May 1, 2026, 2:42:14 PM (4 days ago) May 1
to Hongchan Choi, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

Mahesh Kannan added 2 comments

File third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
Line 279, Patchset 6: source.start(0);
Hongchan Choi . resolved

Why zero?

Mahesh Kannan

Removed this test

Mahesh Kannan

Done

Line 280, Patchset 6: await context.startRendering();

await endedPromise;
Hongchan Choi . resolved

Is this order specific? Or can we use Promise.all()?

Mahesh Kannan

Removed this test

Mahesh Kannan

Done

Gerrit-Comment-Date: Fri, 01 May 2026 18:41:53 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Mahesh Kannan <kmah...@google.com>
Comment-In-Reply-To: Hongchan Choi <hong...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Mahesh Kannan (Gerrit)

unread,
May 1, 2026, 4:22:52 PM (4 days ago) May 1
to Hongchan Choi, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

Mahesh Kannan added 1 comment

File third_party/blink/web_tests/TestExpectations
Line 9744, Patchset 6:crbug.com/40719652 external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html [ Failure Timeout ]
Michael Wilson . resolved

Do we know what section of the test is timing out? If it's just failing it would be better if we could have an -expected.txt file so we know what the specific output is.

Hongchan Choi

This test should not be timed out because everything is based on OAC. It should deterministically fail if something is not right.

Mahesh Kannan

Removed this entry and added an `-expected.txt` file instead.

Open in Gerrit

Related details

Attention set is empty
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
Gerrit-Change-Number: 7802579
Gerrit-PatchSet: 9
Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
Gerrit-Comment-Date: Fri, 01 May 2026 20:22:40 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Mahesh Kannan (Gerrit)

unread,
May 1, 2026, 5:09:12 PM (4 days ago) May 1
to Hongchan Choi, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
Attention needed from Hongchan Choi and Michael Wilson

Mahesh Kannan added 1 comment

File third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
Line 259, Patchset 6: assert_true(true, "Did not hang!");
Hongchan Choi . resolved

What does this mean?

Is there any actual edge case that might hang?

Mahesh Kannan

This is a defensive test case that checks the scenario where `loopStart` and `loopEnd` are identical, and the `playbackRate` is zero. In this scenario, we expect that the system doesn't hang or get stuck. This was added since I asked AI to add defensive test cases but if we feel this test can be moved elsewhere since its 0 playback rate, that would work as well.

Mahesh Kannan

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Hongchan Choi
  • Michael Wilson
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
    Gerrit-Change-Number: 7802579
    Gerrit-PatchSet: 9
    Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
    Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
    Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
    Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
    Gerrit-Attention: Michael Wilson <mjwi...@chromium.org>
    Gerrit-Attention: Hongchan Choi <hong...@chromium.org>
    Gerrit-Comment-Date: Fri, 01 May 2026 21:09:00 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Michael Wilson (Gerrit)

    unread,
    May 1, 2026, 5:19:58 PM (4 days ago) May 1
    to Mahesh Kannan, Hongchan Choi, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
    Attention needed from Hongchan Choi and Mahesh Kannan

    Michael Wilson voted and added 1 comment

    Votes added by Michael Wilson

    Code-Review+1

    1 comment

    Patchset-level comments
    File-level comment, Patchset 9 (Latest):
    Michael Wilson . unresolved

    LGTM, but please wait for Hongchan's +1 before submitting.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hongchan Choi
    • Mahesh Kannan
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
      Gerrit-Change-Number: 7802579
      Gerrit-PatchSet: 9
      Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
      Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
      Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
      Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
      Gerrit-Attention: Mahesh Kannan <kmah...@google.com>
      Gerrit-Attention: Hongchan Choi <hong...@chromium.org>
      Gerrit-Comment-Date: Fri, 01 May 2026 21:19:47 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Mahesh Kannan (Gerrit)

      unread,
      May 1, 2026, 5:21:17 PM (4 days ago) May 1
      to Hongchan Choi, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
      Attention needed from Hongchan Choi

      Mahesh Kannan added 1 comment

      Patchset-level comments
      Michael Wilson . resolved

      LGTM, but please wait for Hongchan's +1 before submitting.

      Mahesh Kannan

      Acknowledged

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Hongchan Choi
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
        Gerrit-Change-Number: 7802579
        Gerrit-PatchSet: 9
        Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
        Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
        Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
        Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
        Gerrit-Attention: Hongchan Choi <hong...@chromium.org>
        Gerrit-Comment-Date: Fri, 01 May 2026 21:21:06 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Michael Wilson <mjwi...@chromium.org>
        satisfied_requirement
        open
        diffy

        Blink W3C Test Autoroller (Gerrit)

        unread,
        May 1, 2026, 5:22:43 PM (4 days ago) May 1
        to Mahesh Kannan, Hongchan Choi, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
        Attention needed from Hongchan Choi

        Message from Blink W3C Test Autoroller

        Exportable changes to web-platform-tests were detected in this CL and a pull request in the upstream repo has been made: https://github.com/web-platform-tests/wpt/pull/59613.

        When this CL lands, the bot will automatically merge the PR on GitHub if the required GitHub checks pass; otherwise, ecosystem-infra@ team will triage the failures and may contact you.

        WPT Export docs:
        https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md#Automatic-export-process

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Hongchan Choi
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
        Gerrit-Change-Number: 7802579
        Gerrit-PatchSet: 9
        Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
        Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
        Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
        Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
        Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
        Gerrit-Attention: Hongchan Choi <hong...@chromium.org>
        Gerrit-Comment-Date: Fri, 01 May 2026 21:22:33 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: No
        satisfied_requirement
        open
        diffy

        Hongchan Choi (Gerrit)

        unread,
        May 1, 2026, 5:37:11 PM (4 days ago) May 1
        to Mahesh Kannan, Blink W3C Test Autoroller, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
        Attention needed from Mahesh Kannan

        Hongchan Choi voted and added 7 comments

        Votes added by Hongchan Choi

        Code-Review+1

        7 comments

        Patchset-level comments
        Hongchan Choi . resolved

        LGTM with nits

        File third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
        Line 14, Patchset 9 (Latest): * @param {number} renderFrames - Total frames to render in OfflineAudioContext.
        Hongchan Choi . unresolved

        nit: Wrap at column 80

        Line 24, Patchset 9 (Latest): renderFrames, bufferFrames, setupSource, verifyResult, bufferData = null) {
        const sampleRate = 44100;
        const context = new OfflineAudioContext(1, renderFrames, sampleRate);
        const buffer = new AudioBuffer({ numberOfChannels: 1, length: bufferFrames, sampleRate: sampleRate });
        Hongchan Choi . unresolved

        nit: wrap at column 80

        Line 193, Patchset 9 (Latest): }, 'AudioBufferSourceNode loops backwards with negative rate (offset in loop)');
        Hongchan Choi . unresolved

        Ditto.

        Line 212, Patchset 9 (Latest): }, 'AudioBufferSourceNode handles offset exactly at duration with neg rate');
        Hongchan Choi . unresolved

        Please expand this. I prefer fully spelling things out when it's possible.

        Also wrap at column 80.

        Line 261, Patchset 9 (Latest): // Test completes if it does not hang.

        assert_true(true, 'Did not hang!');
        Hongchan Choi . unresolved

        Perhaps I am missing something here, but in which case this test case can hang?

        Line 265, Patchset 9 (Latest): }, 'AudioBufferSourceNode does not hang with zero delta and playbackRate 0');
        Hongchan Choi . unresolved

        Ditto.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Mahesh Kannan
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          • requirement satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
          Gerrit-Change-Number: 7802579
          Gerrit-PatchSet: 9
          Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
          Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
          Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
          Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
          Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
          Gerrit-Attention: Mahesh Kannan <kmah...@google.com>
          Gerrit-Comment-Date: Fri, 01 May 2026 21:36:58 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Mahesh Kannan (Gerrit)

          unread,
          May 1, 2026, 6:24:52 PM (4 days ago) May 1
          to Hongchan Choi, Blink W3C Test Autoroller, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

          Mahesh Kannan added 6 comments

          File third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
          Line 14, Patchset 9: * @param {number} renderFrames - Total frames to render in OfflineAudioContext.
          Hongchan Choi . resolved

          nit: Wrap at column 80

          Mahesh Kannan

          Acknowledged

          Line 24, Patchset 9: renderFrames, bufferFrames, setupSource, verifyResult, bufferData = null) {

          const sampleRate = 44100;
          const context = new OfflineAudioContext(1, renderFrames, sampleRate);
          const buffer = new AudioBuffer({ numberOfChannels: 1, length: bufferFrames, sampleRate: sampleRate });
          Hongchan Choi . resolved

          nit: wrap at column 80

          Mahesh Kannan

          Acknowledged

          Line 193, Patchset 9: }, 'AudioBufferSourceNode loops backwards with negative rate (offset in loop)');
          Hongchan Choi . resolved

          Ditto.

          Mahesh Kannan

          Acknowledged

          Line 212, Patchset 9: }, 'AudioBufferSourceNode handles offset exactly at duration with neg rate');
          Hongchan Choi . resolved

          Please expand this. I prefer fully spelling things out when it's possible.

          Also wrap at column 80.

          Mahesh Kannan

          Acknowledged

          Line 261, Patchset 9: // Test completes if it does not hang.

          assert_true(true, 'Did not hang!');
          Hongchan Choi . unresolved

          Perhaps I am missing something here, but in which case this test case can hang?

          Mahesh Kannan

          This is just a defensive test case that ensures that we do not enter an invalid state when loopStart and loopEnd are the same values with 0 playback rate

          Line 265, Patchset 9: }, 'AudioBufferSourceNode does not hang with zero delta and playbackRate 0');
          Hongchan Choi . resolved

          Ditto.

          Mahesh Kannan

          Marked as resolved.

          Open in Gerrit

          Related details

          Attention set is empty
          Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          • requirement satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
          Gerrit-Change-Number: 7802579
          Gerrit-PatchSet: 10
          Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
          Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
          Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
          Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
          Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
          Gerrit-Comment-Date: Fri, 01 May 2026 22:24:39 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Hongchan Choi <hong...@chromium.org>
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Mahesh Kannan (Gerrit)

          unread,
          May 4, 2026, 3:17:11 PM (23 hours ago) May 4
          to Hongchan Choi, Blink W3C Test Autoroller, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
          Attention needed from Hongchan Choi

          Mahesh Kannan added 1 comment

          Patchset-level comments
          File-level comment, Patchset 11 (Latest):
          Mahesh Kannan . resolved

          PTAL! I have kept open the thread on the `hang` testcase for discussion!

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Hongchan Choi
          Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          • requirement satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
          Gerrit-Change-Number: 7802579
          Gerrit-PatchSet: 11
          Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
          Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
          Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
          Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
          Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
          Gerrit-Attention: Hongchan Choi <hong...@chromium.org>
          Gerrit-Comment-Date: Mon, 04 May 2026 19:16:59 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Hongchan Choi (Gerrit)

          unread,
          May 4, 2026, 3:19:17 PM (23 hours ago) May 4
          to Mahesh Kannan, Blink W3C Test Autoroller, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org
          Attention needed from Mahesh Kannan

          Hongchan Choi voted and added 1 comment

          Votes added by Hongchan Choi

          Code-Review+1

          1 comment

          File third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
          Line 261, Patchset 9: // Test completes if it does not hang.
          assert_true(true, 'Did not hang!');
          Hongchan Choi . unresolved

          Perhaps I am missing something here, but in which case this test case can hang?

          Mahesh Kannan

          This is just a defensive test case that ensures that we do not enter an invalid state when loopStart and loopEnd are the same values with 0 playback rate

          Hongchan Choi

          I'd revise this to:


          ```suggestion
          assert_true(true, 'Test ran successfully!');
          ```

          Because the "hang" usually means that timeout or page unresponsive. I don't think this test case can cause that sort of things.

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Mahesh Kannan
          Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement satisfiedCode-Owners
          • requirement satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          • requirement satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
          Gerrit-Change-Number: 7802579
          Gerrit-PatchSet: 11
          Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
          Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
          Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
          Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
          Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
          Gerrit-Attention: Mahesh Kannan <kmah...@google.com>
          Gerrit-Comment-Date: Mon, 04 May 2026 19:19:04 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: Yes
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Mahesh Kannan (Gerrit)

          unread,
          May 4, 2026, 4:49:06 PM (21 hours ago) May 4
          to Hongchan Choi, Blink W3C Test Autoroller, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

          Mahesh Kannan added 1 comment

          File third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
          Line 261, Patchset 9: // Test completes if it does not hang.
          assert_true(true, 'Did not hang!');
          Hongchan Choi . resolved

          Perhaps I am missing something here, but in which case this test case can hang?

          Mahesh Kannan

          This is just a defensive test case that ensures that we do not enter an invalid state when loopStart and loopEnd are the same values with 0 playback rate

          Hongchan Choi

          I'd revise this to:


          ```suggestion
          assert_true(true, 'Test ran successfully!');
          ```

          Because the "hang" usually means that timeout or page unresponsive. I don't think this test case can cause that sort of things.

          Mahesh Kannan

          Done

          Open in Gerrit

          Related details

          Attention set is empty
          Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
            Gerrit-Change-Number: 7802579
            Gerrit-PatchSet: 12
            Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
            Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
            Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
            Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
            Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
            Gerrit-Comment-Date: Mon, 04 May 2026 20:48:54 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            satisfied_requirement
            open
            diffy

            Mahesh Kannan (Gerrit)

            unread,
            12:27 PM (2 hours ago) 12:27 PM
            to Hongchan Choi, Blink W3C Test Autoroller, Chromium LUCI CQ, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

            Mahesh Kannan voted Commit-Queue+2

            Commit-Queue+2
            Open in Gerrit

            Related details

            Attention set is empty
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
            Gerrit-Change-Number: 7802579
            Gerrit-PatchSet: 12
            Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
            Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
            Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
            Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
            Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
            Gerrit-Comment-Date: Tue, 05 May 2026 16:26:47 +0000
            Gerrit-HasComments: No
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            open
            diffy

            Chromium LUCI CQ (Gerrit)

            unread,
            12:36 PM (2 hours ago) 12:36 PM
            to Mahesh Kannan, Hongchan Choi, Blink W3C Test Autoroller, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

            Chromium LUCI CQ submitted the change with unreviewed changes

            Unreviewed changes

            11 is the latest approved patch-set.
            The change was submitted with unreviewed changes in the following files:

            ```
            The name of the file: third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
            Insertions: 3, Deletions: 4.

            @@ -266,14 +266,13 @@
            source.start(0, 2 / sampleRate);
            },
            (renderedData) => {
            - // Test completes if it does not hang.
            - assert_true(true, 'Did not hang!');
            + assert_true(true, 'Test ran successfully!');
            }
            );
            - }, 'AudioBufferSourceNode does not hang with zero delta and ' +
            + }, 'AudioBufferSourceNode ran successfully with zero delta and ' +
            'playbackRate 0');

            </script>
            </body>

            -</html>
            +</html>
            ```

            Change information

            Commit message:
            [Webaudio] Add negative playbackRate WPTs and TestExpectations (1/3)

            This CL adds comprehensive Web Platform Tests for
            AudioBufferSourceNode's negative playback rate behavior. Because feature
            is not yet implemented, the test is marked as expected to fail or
            timeout in TestExpectations.

            interface/audiobuffersource-playbackrate-negative.html
            Bug: 40719652
            Test: external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-
            Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
            Reviewed-by: Hongchan Choi <hong...@chromium.org>
            Reviewed-by: Michael Wilson <mjwi...@chromium.org>
            Commit-Queue: Mahesh Kannan <kmah...@google.com>
            Cr-Commit-Position: refs/heads/main@{#1625505}
            Files:
            • A third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative-expected.txt
            • A third_party/blink/web_tests/external/wpt/webaudio/the-audio-api/the-audiobuffersourcenode-interface/audiobuffersource-playbackrate-negative.html
            Change size: L
            Delta: 2 files changed, 303 insertions(+), 0 deletions(-)
            Branch: refs/heads/main
            Submit Requirements:
            • requirement satisfiedCode-Review: +1 by Michael Wilson, +1 by Hongchan Choi
            Open in Gerrit
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: merged
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
            Gerrit-Change-Number: 7802579
            Gerrit-PatchSet: 13
            Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
            Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
            Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
            Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
            Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
            Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
            open
            diffy
            satisfied_requirement

            Blink W3C Test Autoroller (Gerrit)

            unread,
            1:35 PM (1 hour ago) 1:35 PM
            to Chromium LUCI CQ, Mahesh Kannan, Hongchan Choi, chromium...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org

            Message from Blink W3C Test Autoroller

            The WPT PR for this CL has been merged upstream! https://github.com/web-platform-tests/wpt/pull/59613

            Open in Gerrit

            Related details

            Attention set is empty
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: I806f06f41e586087938cbae75785bd2f9244ed94
            Gerrit-Change-Number: 7802579
            Gerrit-PatchSet: 13
            Gerrit-Owner: Mahesh Kannan <kmah...@google.com>
            Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
            Gerrit-Reviewer: Hongchan Choi <hong...@chromium.org>
            Gerrit-Reviewer: Mahesh Kannan <kmah...@google.com>
            Gerrit-Reviewer: Michael Wilson <mjwi...@chromium.org>
            Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
            Gerrit-Comment-Date: Tue, 05 May 2026 17:35:25 +0000
            Gerrit-HasComments: No
            Gerrit-Has-Labels: No
            satisfied_requirement
            open
            diffy
            Reply all
            Reply to author
            Forward
            0 new messages