diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index f53784107bd..d9ddaeefa1f 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -133225,6 +133225,18 @@
{}
]
],
+ "css/css-scoping/slotted-placeholder.html": [
+ [
+ "/css/css-scoping/slotted-placeholder.html",
+ [
+ [
+ "/css/css-scoping/slotted-placeholder-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"css/css-scoping/slotted-specificity.html": [
[
"/css/css-scoping/slotted-specificity.html",
@@ -264959,6 +264971,11 @@
{}
]
],
+ "css/css-scoping/slotted-placeholder-ref.html": [
+ [
+ {}
+ ]
+ ],
"css/css-scoping/slotted-with-pseudo-element-ref.html": [
[
{}
@@ -316554,11 +316571,21 @@
{}
]
],
+ "webaudio/js/worklet-recorder.js": [
+ [
+ {}
+ ]
+ ],
"webaudio/refresh_idl.rb": [
[
{}
]
],
+ "webaudio/resources/4ch-440.wav": [
+ [
+ {}
+ ]
+ ],
"webaudio/resources/audio-param.js": [
[
{}
@@ -335024,6 +335051,12 @@
{}
]
],
+ "css/CSS2/floats/computed-float-position-absolute.html": [
+ [
+ "/css/CSS2/floats/computed-float-position-absolute.html",
+ {}
+ ]
+ ],
"css/CSS2/floats/zero-space-between-floats-001.html": [
[
"/css/CSS2/floats/zero-space-between-floats-001.html",
@@ -407804,12 +407837,24 @@
{}
]
],
+ "webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html": [
+ [
+ "/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html",
+ {}
+ ]
+ ],
"webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html": [
[
"/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html",
{}
]
],
+ "webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html": [
+ [
+ "/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html",
+ {}
+ ]
+ ],
"webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html": [
[
"/webaudio/the-audio-api/the-offlineaudiocontext-interface/ctor-offlineaudiocontext.html",
@@ -490239,6 +490284,10 @@
"59843ae54b64f6ce4f7e616d4be491c911ea84cf",
"support"
],
+ "css/CSS2/floats/computed-float-position-absolute.html": [
+ "ad9220b3a06085c458f7100c896100fb32f562e8",
+ "testharness"
+ ],
"css/CSS2/floats/float-nowrap-1-notref.html": [
"540c8048af61a2c7804d99ff14c3a2bf1f87e6ad",
"support"
@@ -559656,9 +559705,17 @@
"testharness"
],
"css/css-scoping/slotted-parsing.html": [
- "308ff430449e4569abea713814f336eaa9e0e98a",
+ "6888693bbf40932d62a19b535adba22adbd43b19",
"testharness"
],
+ "css/css-scoping/slotted-placeholder-ref.html": [
+ "f99c0385d061766b49d55e7703bf596fe69d6ec2",
+ "support"
+ ],
+ "css/css-scoping/slotted-placeholder.html": [
+ "a3d607afb8e78e8c340b2d4c6ec86a5f4fc12190",
+ "reftest"
+ ],
"css/css-scoping/slotted-slot.html": [
"1f4aa75ae60ec5ee5f6863aace8678584e4e6934",
"testharness"
@@ -568152,7 +568209,7 @@
"testharness"
],
"css/css-transforms/parsing/scale-parsing-valid.html": [
- "89f79e2e85d35f1306577acfede9585b703a6c8f",
+ "b9afbc848a3b5ff3033d070b4f080245e0d822c5",
"testharness"
],
"css/css-transforms/parsing/transform-box-invalid.html": [
@@ -585472,7 +585529,7 @@
"testharness"
],
"css/filter-effects/META.yml": [
- "0098e6065a751201bceea961363181cb7180cbfa",
+ "930b762b01a1a75e5b5ab4fb18dedd5939618fe1",
"support"
],
"css/filter-effects/css-filters-animation-blur-ref.html": [
@@ -619696,7 +619753,7 @@
"testharness"
],
"html/semantics/forms/the-input-element/type-change-state.html": [
- "34cfd438cb6a68dc7b7e7204f8531b9553b689ad",
+ "de068f17a735c09d9ed2727bbab45b102f3ad23e",
"testharness"
],
"html/semantics/forms/the-input-element/url.html": [
@@ -637728,7 +637785,7 @@
"testharness"
],
"payment-request/META.yml": [
- "e608c0ee279fcb7987f9167f8223f3fedce66c33",
+ "16738814437ab69e625ef79a42bb322152a5969f",
"support"
],
"payment-request/MerchantValidationEvent/complete-method.https.html": [
@@ -647828,7 +647885,7 @@
"support"
],
"resources/chromium/webxr-test.js": [
- "4b7707b49a556879137ac19b59bb5c454307fb56",
+ "c6c21a6fed6c05a1981b9241d233a1b501fdf3ab",
"support"
],
"resources/chromium/webxr-test.js.headers": [
@@ -662916,7 +662973,7 @@
"support"
],
"tools/wpt/requirements.txt": [
- "c20f36f24647f26ad00e4508afaa798e1b6be0b1",
+ "5610e90053f6bcab3d699fd2132aba5274818697",
"support"
],
"tools/wpt/run.py": [
@@ -663044,7 +663101,7 @@
"support"
],
"tools/wptrunner/requirements_sauce.txt": [
- "8ba53dafaa587dccd1f3dd3df23c5c62b78d22e6",
+ "666db37ac1a4822250ee1dcdbf3c23e672a154e3",
"support"
],
"tools/wptrunner/requirements_servo.txt": [
@@ -666432,7 +666489,7 @@
"support"
],
"web-animations/animation-model/animation-types/property-types.js": [
- "e13cac067c489e4dab253d2f4aa5c793199e1704",
+ "a71783b99e14322639251f5b58ede826696a7c3a",
"support"
],
"web-animations/animation-model/animation-types/visibility.html": [
@@ -667003,10 +667060,18 @@
"fbbfc8e00444dce1440fdbe8e28e11c5b064ce3d",
"support"
],
+ "webaudio/js/worklet-recorder.js": [
+ "3bf3bc23b20764ba54d5ff125699df91fffe741a",
+ "support"
+ ],
"webaudio/refresh_idl.rb": [
"a07847535ad7cae63b06c3d30333819cfef08b77",
"support"
],
+ "webaudio/resources/4ch-440.wav": [
+ "85dc1ea9044e28eeeac6176bae61285c25ebf711",
+ "support"
+ ],
"webaudio/resources/audio-param.js": [
"bc33fe8a21f5e7fcbe4e3d2d2a4c4c3b840d3072",
"support"
@@ -667336,7 +667401,7 @@
"testharness"
],
"webaudio/the-audio-api/the-audioparam-interface/event-insertion.html": [
- "688d0478235e202859c7939eef65ad383f7a4f36",
+ "07a54c3bbf68a7af3d651140df5ddcc99ac0f823",
"testharness"
],
"webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet.https.html": [
@@ -667779,10 +667844,18 @@
"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
"support"
],
+ "webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html": [
+ "a2fa8040b2c6100f7ec22f0f133525808403ce01",
+ "testharness"
+ ],
"webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html": [
"2c1162d47b973937c826caba0c740f58970defcc",
"testharness"
],
+ "webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html": [
+ "38324a9f67a67f50f134fb78af43117e2ec9b8c8",
+ "testharness"
+ ],
"webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/.gitkeep": [
"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
"support"
@@ -668144,7 +668217,7 @@
"wdspec"
],
"webdriver/tests/element_click/interactability.py": [
- "702468599f3a379aa184821c84911531ba06ad31",
+ "7463d493e3d8bd2b56c4b01ff5c9fd758c6fff03",
"wdspec"
],
"webdriver/tests/element_click/navigate.py": [
diff --git a/tests/wpt/metadata/css/CSS2/floats/computed-float-position-absolute.html.ini b/tests/wpt/metadata/css/CSS2/floats/computed-float-position-absolute.html.ini
new file mode 100644
index 00000000000..1d641a0d80c
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/computed-float-position-absolute.html.ini
@@ -0,0 +1,4 @@
+[computed-float-position-absolute.html]
+ [The computed value of float with absolute positioning when there is no box should be "none"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
index 91d6593e134..59aab785e91 100644
--- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
+++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini
@@ -509,7 +509,7 @@
[single-byte-decoder.html?XMLHttpRequest]
- expected: TIMEOUT
+ expected: CRASH
[ISO-8859-2: iso_8859-2:1987 (XMLHttpRequest)]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
new file mode 100644
index 00000000000..87b07c3e670
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_1.html]
+ [Multiple history traversals from the same task]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
new file mode 100644
index 00000000000..dc2e45516de
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_5.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html.ini
index a6f7ac6f249..22d1f1d6900 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/media-elements/event_timeupdate_noautoplay.html.ini
@@ -5,5 +5,5 @@
expected: NOTRUN
[calling play() on a sufficiently long video should trigger timeupdate event]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini
index 29b0025a2ae..5125b59a955 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini
@@ -13,3 +13,6 @@
[picture: source (max-width:500px) valid image, img valid image, resize to narrow]
expected: TIMEOUT
+ [picture: same URL in source (max-width:500px) and img, resize to narrow]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html.ini
index caa0aa5f39e..72a023d1ce4 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-standards-mode.html.ini
@@ -1,4 +1,5 @@
[parse-a-sizes-attribute-standards-mode.html]
+ expected: TIMEOUT
[ ref sizes="1px" (standards mode)]
expected: FAIL
diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini
new file mode 100644
index 00000000000..9e522297c94
--- /dev/null
+++ b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini
@@ -0,0 +1,7 @@
+[toggleEvent.html]
+ [Calling open twice on 'details' fires only one toggle event]
+ expected: FAIL
+
+ [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/quirks/unitless-length/quirks.html.ini b/tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini
similarity index 99%
rename from tests/wpt/metadata/quirks/unitless-length/quirks.html.ini
rename to tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini
index 2ed601c6ff4..c7e9c7434f5 100644
--- a/tests/wpt/metadata/quirks/unitless-length/quirks.html.ini
+++ b/tests/wpt/metadata/quirks/unitless-length/limited-quirks.html.ini
@@ -1,4 +1,4 @@
-[quirks.html]
+[limited-quirks.html]
[top: -\\31 .5]
expected: FAIL
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
index 66bd350083b..a56bad443a2 100644
--- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini
@@ -1,4 +1,5 @@
[realtimeanalyser-fft-scaling.html]
+ expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html.ini
new file mode 100644
index 00000000000..7e7af0a06f4
--- /dev/null
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html.ini
@@ -0,0 +1,4 @@
+[cors-check.https.html]
+ [\n Test if MediaElementAudioSourceNode works for cross-origin redirects with\n "cors" request mode.\n ]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html.ini
new file mode 100644
index 00000000000..7d508e62fbe
--- /dev/null
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/no-cors.https.html.ini
@@ -0,0 +1,4 @@
+[no-cors.https.html]
+ [\n Test if MediaElementAudioSourceNode works for cross-origin redirects with\n "no-cors" request mode.\n ]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
index f806a845a2a..9d72f08e38e 100644
--- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
+++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
@@ -1,6 +1,5 @@
[005.html]
type: testharness
- expected: ERROR
[dedicated worker in shared worker in dedicated worker]
expected: FAIL
diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats/computed-float-position-absolute.html b/tests/wpt/web-platform-tests/css/CSS2/floats/computed-float-position-absolute.html
new file mode 100644
index 00000000000..ad9220b3a06
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/CSS2/floats/computed-float-position-absolute.html
@@ -0,0 +1,28 @@
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/filter-effects/META.yml b/tests/wpt/web-platform-tests/css/filter-effects/META.yml index 0098e6065a7..930b762b01a 100644 --- a/tests/wpt/web-platform-tests/css/filter-effects/META.yml +++ b/tests/wpt/web-platform-tests/css/filter-effects/META.yml @@ -3,3 +3,4 @@ suggested_reviewers: - svgeesus - grorg - dirkschulze + - chrishtr diff --git a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html index 34cfd438cb6..de068f17a73 100644 --- a/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html +++ b/tests/wpt/web-platform-tests/html/semantics/forms/the-input-element/type-change-state.html @@ -36,6 +36,17 @@ const selectionEnd = 5; const selectionDirection = "backward"; + // Obtain selectionDirection after setting it to "none". + // Some platforms don't support "none" direction, and "forward" is returned + // in such platforms. + // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#set-the-selection-direction + function testNoneDirection() { + const input = document.createElement("input"); + input.selectionDirection = "none"; + return input.selectionDirection; + } + const noneDirectionResult = testNoneDirection(); + for (var i = 0; i < types.length; i++) { for (var j = 0; j < types.length; j++) { if (types[i] != types[j]) { @@ -92,7 +103,8 @@ } else { assert_equals(input.selectionStart, 0, "selectionStart should be 0"); assert_equals(input.selectionEnd, 0, "selectionEnd should be 0"); - assert_equals(input.selectionDirection, "none", "selectionDirection should be 'none'"); + assert_equals(input.selectionDirection, noneDirectionResult, + `selectionDirection should be '{noneDirectionResult}'`); } } } diff --git a/tests/wpt/web-platform-tests/payment-request/META.yml b/tests/wpt/web-platform-tests/payment-request/META.yml index e608c0ee279..16738814437 100644 --- a/tests/wpt/web-platform-tests/payment-request/META.yml +++ b/tests/wpt/web-platform-tests/payment-request/META.yml @@ -7,3 +7,4 @@ suggested_reviewers: - mnoorenberghe - romandev - edenchuang + - aestes diff --git a/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js b/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js index 4b7707b49a5..c6c21a6fed6 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js +++ b/tests/wpt/web-platform-tests/resources/chromium/webxr-test.js @@ -146,6 +146,10 @@ class MockRuntime { } else { this.displayInfo_ = this.getNonImmersiveDisplayInfo(); } + + if (fakeDeviceInit.supportsEnvironmentIntegration) { + this.displayInfo_.capabilities.canProvideEnvironmentIntegration = true; + } } // Test methods. @@ -323,6 +327,12 @@ class MockRuntime { }); } + getEnvironmentIntegrationProvider(environmentProviderRequest) { + let environmentProviderBinding = new mojo.AssociatedBinding( + device.mojom.XREnvironmentIntegrationProvider, this, + environmentProviderRequest); + } + updateSessionGeometry(frame_size, display_rotation) { // This function must exist to ensure that calls to it do not crash, but we // do not have any use for this data at present. @@ -352,21 +362,12 @@ class MockRuntime { let dataProviderBinding = new mojo.Binding( device.mojom.XRFrameDataProvider, this, dataProviderRequest); - let environmentProviderPtr = - new device.mojom.XREnvironmentIntegrationProviderPtr(); - let environmentProviderRequest = - mojo.makeRequest(environmentProviderPtr); - let environmentProviderBinding = new mojo.Binding( - device.mojom.XREnvironmentIntegrationProvider, this, - environmentProviderRequest); - let clientRequest = mojo.makeRequest(this.sessionClient_); return Promise.resolve({ session: { submitFrameSink: submit_frame_sink, dataProvider: dataProviderPtr, - environmentProvider: environmentProviderPtr, clientRequest: clientRequest, displayInfo: this.displayInfo_ } diff --git a/tests/wpt/web-platform-tests/tools/wpt/requirements.txt b/tests/wpt/web-platform-tests/tools/wpt/requirements.txt index c20f36f2464..5610e90053f 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/requirements.txt +++ b/tests/wpt/web-platform-tests/tools/wpt/requirements.txt @@ -1 +1 @@ -requests==2.20.0 +requests==2.20.1 diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt index 8ba53dafaa5..666db37ac1a 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt +++ b/tests/wpt/web-platform-tests/tools/wptrunner/requirements_sauce.txt @@ -1,3 +1,3 @@ mozprocess == 0.26 selenium==3.141.0 -requests==2.20.0 +requests==2.20.1 diff --git a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-types.js b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-types.js index e13cac067c4..a71783b99e1 100644 --- a/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-types.js +++ b/tests/wpt/web-platform-tests/web-animations/animation-model/animation-types/property-types.js @@ -1976,7 +1976,7 @@ const scaleListType = { 1000); testAnimationSamples(animation, idlName, - [{ time: 500, expected: '4 4' }]); + [{ time: 500, expected: '4' }]); }, `${property} with one unspecified value`); test(t => { @@ -2012,8 +2012,8 @@ const scaleListType = { composite: 'add' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '-6 -6' }, - { time: 1000, expected: '10 10' }]); + [{ time: 0, expected: '-6' }, + { time: 1000, expected: '10' }]); }, `${property} with one unspecified value`); test(t => { @@ -2052,8 +2052,8 @@ const scaleListType = { composite: 'accumulate' }); testAnimationSamples(animation, idlName, - [{ time: 0, expected: '-2 -2' }, - { time: 1000, expected: '6 6' }]); + [{ time: 0, expected: '-2' }, + { time: 1000, expected: '6' }]); }, `${property} with one unspecified value`); test(t => { diff --git a/tests/wpt/web-platform-tests/webaudio/js/worklet-recorder.js b/tests/wpt/web-platform-tests/webaudio/js/worklet-recorder.js new file mode 100644 index 00000000000..3bf3bc23b20 --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/js/worklet-recorder.js @@ -0,0 +1,54 @@ +/** + * @class RecorderProcessor + * @extends AudioWorkletProcessor + * + * A simple recorder AudioWorkletProcessor. Returns the recorded buffer to the + * node when recording is finished. + */ +class RecorderProcessor extends AudioWorkletProcessor { + /** + * @param {*} options + * @param {number} options.duration A duration to record in seconds. + * @param {number} options.channelCount A channel count to record. + */ + constructor(options) { + super(); + this._createdAt = currentTime; + this._elapsed = 0; + this._recordDuration = options.duration || 1; + this._recordChannelCount = options.channelCount || 1; + this._recordBufferLength = sampleRate * this._recordDuration; + this._recordBuffer = []; + for (let i = 0; i < this._recordChannelCount; ++i) { + this._recordBuffer[i] = new Float32Array(this._recordBufferLength); + } + } + + process(inputs, outputs) { + if (this._recordBufferLength <= currentFrame) { + this.port.postMessage({ + type: 'recordfinished', + recordBuffer: this._recordBuffer + }); + return false; + } + + // Records the incoming data from |inputs| and also bypasses the data to + // |outputs|. + const input = inputs[0]; + const output = outputs[0]; + for (let channel = 0; channel < input.length; ++channel) { + const inputChannel = input[channel]; + const outputChannel = output[channel]; + outputChannel.set(inputChannel); + + const buffer = this._recordBuffer[channel]; + const capacity = buffer.length - currentFrame; + buffer.set(inputChannel.slice(0, capacity), currentFrame); + } + + return true; + } +} + +registerProcessor('recorder-processor', RecorderProcessor); diff --git a/tests/wpt/web-platform-tests/webaudio/resources/4ch-440.wav b/tests/wpt/web-platform-tests/webaudio/resources/4ch-440.wav new file mode 100644 index 00000000000..85dc1ea9044 Binary files /dev/null and b/tests/wpt/web-platform-tests/webaudio/resources/4ch-440.wav differ diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/event-insertion.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/event-insertion.html index 688d0478235..07a54c3bbf6 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/event-insertion.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/event-insertion.html @@ -61,6 +61,13 @@ extraArgs: RENDER_QUANTUM_FRAMES / context.sampleRate, outputTestFrame: 4 * RENDER_QUANTUM_FRAMES, expectedOutputValue: 4 + }, + { + event: 'setValueAtTime', + frame: 5 * RENDER_QUANTUM_FRAMES - 1, + values: [99, 1, 5], + outputTestFrame: 5 * RENDER_QUANTUM_FRAMES, + expectedOutputValue: 5 } ]; diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html new file mode 100644 index 00000000000..a2fa8040b2c --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/cors-check.https.html @@ -0,0 +1,74 @@ + + +
+
+ + + + + +
+