summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/meta/webcodecs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 17:32:43 +0000
commit6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch)
treea68f146d7fa01f0134297619fbe7e33db084e0aa /testing/web-platform/meta/webcodecs
parentInitial commit. (diff)
downloadthunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.tar.xz
thunderbird-6bf0a5cb5034a7e684dcc3500e841785237ce2dd.zip
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/meta/webcodecs')
-rw-r--r--testing/web-platform/meta/webcodecs/audio-data-serialization.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/audio-data.any.js.ini50
-rw-r--r--testing/web-platform/meta/webcodecs/audio-data.crossOriginIsolated.https.any.js.ini6
-rw-r--r--testing/web-platform/meta/webcodecs/audio-decoder.crossOriginIsolated.https.any.js.ini16
-rw-r--r--testing/web-platform/meta/webcodecs/audio-decoder.https.any.js.ini78
-rw-r--r--testing/web-platform/meta/webcodecs/audio-encoder-codec-specific.https.any.js.ini3
-rw-r--r--testing/web-platform/meta/webcodecs/audio-encoder-config.https.any.js.ini126
-rw-r--r--testing/web-platform/meta/webcodecs/audio-encoder.https.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini378
-rw-r--r--testing/web-platform/meta/webcodecs/chunk-serialization.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/encoded-audio-chunk.any.js.ini18
-rw-r--r--testing/web-platform/meta/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.js.ini18
-rw-r--r--testing/web-platform/meta/webcodecs/encoded-video-chunk.any.js.ini18
-rw-r--r--testing/web-platform/meta/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.js.ini18
-rw-r--r--testing/web-platform/meta/webcodecs/full-cycle-test.https.any.js.ini112
-rw-r--r--testing/web-platform/meta/webcodecs/idlharness.https.any.js.ini998
-rw-r--r--testing/web-platform/meta/webcodecs/image-decoder-image-orientation-none.https.html.ini50
-rw-r--r--testing/web-platform/meta/webcodecs/image-decoder.crossOriginIsolated.https.any.js.ini16
-rw-r--r--testing/web-platform/meta/webcodecs/image-decoder.https.any.js.ini252
-rw-r--r--testing/web-platform/meta/webcodecs/per-frame-qp-encoding.https.any.js.ini46
-rw-r--r--testing/web-platform/meta/webcodecs/reconfiguring-encoder.https.any.js.ini82
-rw-r--r--testing/web-platform/meta/webcodecs/temporal-svc-encoding.https.any.js.ini78
-rw-r--r--testing/web-platform/meta/webcodecs/video-decoder.crossOriginIsolated.https.any.js.ini16
-rw-r--r--testing/web-platform/meta/webcodecs/video-decoder.https.any.js.ini72
-rw-r--r--testing/web-platform/meta/webcodecs/video-encoder-config.https.any.js.ini66
-rw-r--r--testing/web-platform/meta/webcodecs/video-encoder.https.any.js.ini66
-rw-r--r--testing/web-platform/meta/webcodecs/video-frame-serialization.any.js.ini16
-rw-r--r--testing/web-platform/meta/webcodecs/videoColorSpace.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/videoDecoder-codec-specific.https.any.js.ini588
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-alpha.any.js.ini18
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-canvasImageSource.html.ini20
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-construction.any.js.ini20
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginSource.sub.html.ini6
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-construction.window.js.ini7
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-copyTo.any.js.ini13
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.js.ini10
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.any.js.ini20
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.https.any.js.ini12
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-drawImage.any.js.ini54
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-serialization.crossAgentCluster.https.html.ini35
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-texImage.any.js.ini42
42 files changed, 3489 insertions, 0 deletions
diff --git a/testing/web-platform/meta/webcodecs/audio-data-serialization.any.js.ini b/testing/web-platform/meta/webcodecs/audio-data-serialization.any.js.ini
new file mode 100644
index 0000000000..50b2399710
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-data-serialization.any.js.ini
@@ -0,0 +1,9 @@
+[audio-data-serialization.any.html]
+ [Verify closing AudioData does not propagate accross contexts.]
+ expected: FAIL
+
+ [Verify posting closed AudioData throws.]
+ expected: FAIL
+
+ [Verify transferring audio data closes them.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-data.any.js.ini b/testing/web-platform/meta/webcodecs/audio-data.any.js.ini
new file mode 100644
index 0000000000..eaf456f87f
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-data.any.js.ini
@@ -0,0 +1,50 @@
+[audio-data.any.html]
+ [Verify AudioData constructors]
+ expected: FAIL
+
+ [Verify closing and cloning AudioData]
+ expected: FAIL
+
+ [Test we can construct AudioData with a negative timestamp.]
+ expected: FAIL
+
+ [Test conversion of uint8 data to float32]
+ expected: FAIL
+
+ [Test conversion of int16 data to float32]
+ expected: FAIL
+
+ [Test conversion of int32 data to float32]
+ expected: FAIL
+
+ [Test conversion of float32 data to float32]
+ expected: FAIL
+
+ [Test copying out planar and interleaved data]
+ expected: FAIL
+
+
+[audio-data.any.worker.html]
+ [Verify AudioData constructors]
+ expected: FAIL
+
+ [Verify closing and cloning AudioData]
+ expected: FAIL
+
+ [Test we can construct AudioData with a negative timestamp.]
+ expected: FAIL
+
+ [Test conversion of uint8 data to float32]
+ expected: FAIL
+
+ [Test conversion of int16 data to float32]
+ expected: FAIL
+
+ [Test conversion of int32 data to float32]
+ expected: FAIL
+
+ [Test conversion of float32 data to float32]
+ expected: FAIL
+
+ [Test copying out planar and interleaved data]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-data.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-data.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..7fa93c9eb0
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-data.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,6 @@
+[audio-data.crossOriginIsolated.https.any.html]
+ [Test construction and copyTo() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-decoder.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-decoder.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..14ee39cd34
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-decoder.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,16 @@
+[audio-decoder.crossOriginIsolated.https.any.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test isConfigSupported() and configure() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
+
+
+[audio-decoder.crossOriginIsolated.https.any.worker.html]
+ [Test isConfigSupported() and configure() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-decoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-decoder.https.any.js.ini
new file mode 100644
index 0000000000..23dbf89e76
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-decoder.https.any.js.ini
@@ -0,0 +1,78 @@
+[audio-decoder.https.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Empty codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Video codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type]
+ expected: FAIL
+
+ [Test AudioDecoder construction]
+ expected: FAIL
+
+ [Verify unconfigured AudioDecoder operations]
+ expected: FAIL
+
+
+[audio-decoder.https.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Empty codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Video codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type]
+ expected: FAIL
+
+ [Test AudioDecoder construction]
+ expected: FAIL
+
+ [Verify unconfigured AudioDecoder operations]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-encoder-codec-specific.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-encoder-codec-specific.https.any.js.ini
new file mode 100644
index 0000000000..1324d7a41d
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-encoder-codec-specific.https.any.js.ini
@@ -0,0 +1,3 @@
+[audio-encoder-codec-specific.https.any.html]
+ [Test the Opus DTX flag works.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-encoder-config.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-encoder-config.https.any.js.ini
new file mode 100644
index 0000000000..b7e073d1b6
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-encoder-config.https.any.js.ini
@@ -0,0 +1,126 @@
+[audio-encoder-config.https.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Opus complexity too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Opus packetlossperc too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Opus frame duration too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Opus frame duration too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Invalid Opus frameDuration]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{"complexity":5,"frameDuration":20000,"packetlossperc":10,"useinbandfec":true}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{"format":"opus","complexity":10,"frameDuration":60000,"packetlossperc":20,"usedtx":true,"bogus":456}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{}}]
+ expected: FAIL
+
+
+[audio-encoder-config.https.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Opus complexity too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Opus packetlossperc too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Opus frame duration too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Opus frame duration too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config:Invalid Opus frameDuration]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{"complexity":5,"frameDuration":20000,"packetlossperc":10,"useinbandfec":true}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{"format":"opus","complexity":10,"frameDuration":60000,"packetlossperc":20,"usedtx":true,"bogus":456}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{}}]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-encoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-encoder.https.any.js.ini
new file mode 100644
index 0000000000..9fa3a69b1e
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-encoder.https.any.js.ini
@@ -0,0 +1,9 @@
+[audio-encoder.https.any.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Simple audio encoding]
+ expected: FAIL
+
+ [Encode audio with negative timestamp]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini b/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini
new file mode 100644
index 0000000000..ca61aaf9c0
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini
@@ -0,0 +1,378 @@
+[audioDecoder-codec-specific.https.any.html?adts_aac]
+ expected: ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?pcm_mulaw]
+ expected: ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?mp3]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?adts_aac]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?mp4_aac]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?opus]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?mp3]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?mp4_aac]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?opus]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?pcm_mulaw]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?pcm_alaw]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?pcm_alaw]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/webcodecs/chunk-serialization.any.js.ini b/testing/web-platform/meta/webcodecs/chunk-serialization.any.js.ini
new file mode 100644
index 0000000000..9bdb3c4b99
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/chunk-serialization.any.js.ini
@@ -0,0 +1,9 @@
+[chunk-serialization.any.html]
+ [Verify EncodedAudioChunk is serializable.]
+ expected: FAIL
+
+ [Verify EncodedVideoChunk is serializable.]
+ expected: FAIL
+
+ [Verify EncodedVideoChunk cannot be stored]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/encoded-audio-chunk.any.js.ini b/testing/web-platform/meta/webcodecs/encoded-audio-chunk.any.js.ini
new file mode 100644
index 0000000000..4e9157cdb5
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/encoded-audio-chunk.any.js.ini
@@ -0,0 +1,18 @@
+[encoded-audio-chunk.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test we can construct an EncodedAudioChunk.]
+ expected: FAIL
+
+ [Test copyTo() exception if destination invalid]
+ expected: FAIL
+
+
+[encoded-audio-chunk.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test we can construct an EncodedAudioChunk.]
+ expected: FAIL
+
+ [Test copyTo() exception if destination invalid]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..8251d8f3b0
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,18 @@
+[encoded-audio-chunk.crossOriginIsolated.https.any.worker.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test construction and copyTo() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
+
+
+[encoded-audio-chunk.crossOriginIsolated.https.any.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test construction and copyTo() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/encoded-video-chunk.any.js.ini b/testing/web-platform/meta/webcodecs/encoded-video-chunk.any.js.ini
new file mode 100644
index 0000000000..ea9eb1080c
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/encoded-video-chunk.any.js.ini
@@ -0,0 +1,18 @@
+[encoded-video-chunk.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test we can construct an EncodedVideoChunk.]
+ expected: FAIL
+
+ [Test copyTo() exception if destiation invalid]
+ expected: FAIL
+
+
+[encoded-video-chunk.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test we can construct an EncodedVideoChunk.]
+ expected: FAIL
+
+ [Test copyTo() exception if destiation invalid]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..64bf2de6d5
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,18 @@
+[encoded-video-chunk.crossOriginIsolated.https.any.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test construction and copyTo() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
+
+
+[encoded-video-chunk.crossOriginIsolated.https.any.worker.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test construction and copyTo() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/full-cycle-test.https.any.js.ini b/testing/web-platform/meta/webcodecs/full-cycle-test.https.any.js.ini
new file mode 100644
index 0000000000..3c6f2c912a
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/full-cycle-test.https.any.js.ini
@@ -0,0 +1,112 @@
+[full-cycle-test.https.any.html?vp9_p2]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.html?vp9_p0]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.html?vp8]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.html?h264_avc]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.html?av1]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.worker.html?av1]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.worker.html?vp8]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.html?h264_annexb]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.worker.html?vp9_p0]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.worker.html?h264_avc]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.worker.html?h264_annexb]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
+
+
+[full-cycle-test.https.any.worker.html?vp9_p2]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Encoding and decoding cycle]
+ expected: FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/idlharness.https.any.js.ini b/testing/web-platform/meta/webcodecs/idlharness.https.any.js.ini
new file mode 100644
index 0000000000..856541a54b
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/idlharness.https.any.js.ini
@@ -0,0 +1,998 @@
+[idlharness.https.any.html]
+ [AudioDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioDecoder interface object length]
+ expected: FAIL
+
+ [AudioDecoder interface object name]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute state]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute decodeQueueSize]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [AudioDecoder interface: operation configure(AudioDecoderConfig)]
+ expected: FAIL
+
+ [AudioDecoder interface: operation decode(EncodedAudioChunk)]
+ expected: FAIL
+
+ [AudioDecoder interface: operation flush()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation reset()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation close()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation isConfigSupported(AudioDecoderConfig)]
+ expected: FAIL
+
+ [VideoDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [VideoDecoder interface object length]
+ expected: FAIL
+
+ [VideoDecoder interface object name]
+ expected: FAIL
+
+ [VideoDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [VideoDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [VideoDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [VideoDecoder interface: attribute state]
+ expected: FAIL
+
+ [VideoDecoder interface: attribute decodeQueueSize]
+ expected: FAIL
+
+ [VideoDecoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [VideoDecoder interface: operation configure(VideoDecoderConfig)]
+ expected: FAIL
+
+ [VideoDecoder interface: operation decode(EncodedVideoChunk)]
+ expected: FAIL
+
+ [VideoDecoder interface: operation flush()]
+ expected: FAIL
+
+ [VideoDecoder interface: operation reset()]
+ expected: FAIL
+
+ [VideoDecoder interface: operation close()]
+ expected: FAIL
+
+ [VideoDecoder interface: operation isConfigSupported(VideoDecoderConfig)]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioEncoder interface object length]
+ expected: FAIL
+
+ [AudioEncoder interface object name]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute state]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute encodeQueueSize]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [AudioEncoder interface: operation configure(AudioEncoderConfig)]
+ expected: FAIL
+
+ [AudioEncoder interface: operation encode(AudioData)]
+ expected: FAIL
+
+ [AudioEncoder interface: operation flush()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation reset()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation close()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation isConfigSupported(AudioEncoderConfig)]
+ expected: FAIL
+
+ [VideoEncoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [VideoEncoder interface object length]
+ expected: FAIL
+
+ [VideoEncoder interface object name]
+ expected: FAIL
+
+ [VideoEncoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [VideoEncoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [VideoEncoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [VideoEncoder interface: attribute state]
+ expected: FAIL
+
+ [VideoEncoder interface: attribute encodeQueueSize]
+ expected: FAIL
+
+ [VideoEncoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [VideoEncoder interface: operation configure(VideoEncoderConfig)]
+ expected: FAIL
+
+ [VideoEncoder interface: operation encode(VideoFrame, optional VideoEncoderEncodeOptions)]
+ expected: FAIL
+
+ [VideoEncoder interface: operation flush()]
+ expected: FAIL
+
+ [VideoEncoder interface: operation reset()]
+ expected: FAIL
+
+ [VideoEncoder interface: operation close()]
+ expected: FAIL
+
+ [VideoEncoder interface: operation isConfigSupported(VideoEncoderConfig)]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface object]
+ expected: FAIL
+
+ [EncodedAudioChunk interface object length]
+ expected: FAIL
+
+ [EncodedAudioChunk interface object name]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute type]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute timestamp]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute duration]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute byteLength]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: operation copyTo(BufferSource)]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: existence and properties of interface object]
+ expected: FAIL
+
+ [EncodedVideoChunk interface object length]
+ expected: FAIL
+
+ [EncodedVideoChunk interface object name]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: attribute type]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: attribute timestamp]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: attribute duration]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: attribute byteLength]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: operation copyTo(BufferSource)]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioData interface object length]
+ expected: FAIL
+
+ [AudioData interface object name]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioData interface: attribute format]
+ expected: FAIL
+
+ [AudioData interface: attribute sampleRate]
+ expected: FAIL
+
+ [AudioData interface: attribute numberOfFrames]
+ expected: FAIL
+
+ [AudioData interface: attribute numberOfChannels]
+ expected: FAIL
+
+ [AudioData interface: attribute duration]
+ expected: FAIL
+
+ [AudioData interface: attribute timestamp]
+ expected: FAIL
+
+ [AudioData interface: operation allocationSize(AudioDataCopyToOptions)]
+ expected: FAIL
+
+ [AudioData interface: operation copyTo(BufferSource, AudioDataCopyToOptions)]
+ expected: FAIL
+
+ [AudioData interface: operation clone()]
+ expected: FAIL
+
+ [AudioData interface: operation close()]
+ expected: FAIL
+
+ [VideoFrame interface: existence and properties of interface object]
+ expected: FAIL
+
+ [VideoFrame interface object length]
+ expected: FAIL
+
+ [VideoFrame interface object name]
+ expected: FAIL
+
+ [VideoFrame interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [VideoFrame interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [VideoFrame interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [VideoFrame interface: attribute format]
+ expected: FAIL
+
+ [VideoFrame interface: attribute codedWidth]
+ expected: FAIL
+
+ [VideoFrame interface: attribute codedHeight]
+ expected: FAIL
+
+ [VideoFrame interface: attribute codedRect]
+ expected: FAIL
+
+ [VideoFrame interface: attribute visibleRect]
+ expected: FAIL
+
+ [VideoFrame interface: attribute displayWidth]
+ expected: FAIL
+
+ [VideoFrame interface: attribute displayHeight]
+ expected: FAIL
+
+ [VideoFrame interface: attribute duration]
+ expected: FAIL
+
+ [VideoFrame interface: attribute timestamp]
+ expected: FAIL
+
+ [VideoFrame interface: attribute colorSpace]
+ expected: FAIL
+
+ [VideoFrame interface: operation metadata()]
+ expected: FAIL
+
+ [VideoFrame interface: operation allocationSize(optional VideoFrameCopyToOptions)]
+ expected: FAIL
+
+ [VideoFrame interface: operation copyTo(BufferSource, optional VideoFrameCopyToOptions)]
+ expected: FAIL
+
+ [VideoFrame interface: operation clone()]
+ expected: FAIL
+
+ [VideoFrame interface: operation close()]
+ expected: FAIL
+
+ [VideoColorSpace interface: existence and properties of interface object]
+ expected: FAIL
+
+ [VideoColorSpace interface object length]
+ expected: FAIL
+
+ [VideoColorSpace interface object name]
+ expected: FAIL
+
+ [VideoColorSpace interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [VideoColorSpace interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [VideoColorSpace interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [VideoColorSpace interface: attribute primaries]
+ expected: FAIL
+
+ [VideoColorSpace interface: attribute transfer]
+ expected: FAIL
+
+ [VideoColorSpace interface: attribute matrix]
+ expected: FAIL
+
+ [VideoColorSpace interface: attribute fullRange]
+ expected: FAIL
+
+ [VideoColorSpace interface: operation toJSON()]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageDecoder interface object length]
+ expected: FAIL
+
+ [ImageDecoder interface object name]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute type]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute complete]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute completed]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute tracks]
+ expected: FAIL
+
+ [ImageDecoder interface: operation decode(optional ImageDecodeOptions)]
+ expected: FAIL
+
+ [ImageDecoder interface: operation reset()]
+ expected: FAIL
+
+ [ImageDecoder interface: operation close()]
+ expected: FAIL
+
+ [ImageDecoder interface: operation isTypeSupported(DOMString)]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageTrackList interface object length]
+ expected: FAIL
+
+ [ImageTrackList interface object name]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute ready]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute length]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute selectedIndex]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute selectedTrack]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageTrack interface object length]
+ expected: FAIL
+
+ [ImageTrack interface object name]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageTrack interface: attribute animated]
+ expected: FAIL
+
+ [ImageTrack interface: attribute frameCount]
+ expected: FAIL
+
+ [ImageTrack interface: attribute repetitionCount]
+ expected: FAIL
+
+ [ImageTrack interface: attribute selected]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+
+[idlharness.https.any.worker.html]
+ [AudioDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioDecoder interface object length]
+ expected: FAIL
+
+ [AudioDecoder interface object name]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute state]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute decodeQueueSize]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [AudioDecoder interface: operation configure(AudioDecoderConfig)]
+ expected: FAIL
+
+ [AudioDecoder interface: operation decode(EncodedAudioChunk)]
+ expected: FAIL
+
+ [AudioDecoder interface: operation flush()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation reset()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation close()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation isConfigSupported(AudioDecoderConfig)]
+ expected: FAIL
+
+ [VideoDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [VideoDecoder interface object length]
+ expected: FAIL
+
+ [VideoDecoder interface object name]
+ expected: FAIL
+
+ [VideoDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [VideoDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [VideoDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [VideoDecoder interface: attribute state]
+ expected: FAIL
+
+ [VideoDecoder interface: attribute decodeQueueSize]
+ expected: FAIL
+
+ [VideoDecoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [VideoDecoder interface: operation configure(VideoDecoderConfig)]
+ expected: FAIL
+
+ [VideoDecoder interface: operation decode(EncodedVideoChunk)]
+ expected: FAIL
+
+ [VideoDecoder interface: operation flush()]
+ expected: FAIL
+
+ [VideoDecoder interface: operation reset()]
+ expected: FAIL
+
+ [VideoDecoder interface: operation close()]
+ expected: FAIL
+
+ [VideoDecoder interface: operation isConfigSupported(VideoDecoderConfig)]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioEncoder interface object length]
+ expected: FAIL
+
+ [AudioEncoder interface object name]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute state]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute encodeQueueSize]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [AudioEncoder interface: operation configure(AudioEncoderConfig)]
+ expected: FAIL
+
+ [AudioEncoder interface: operation encode(AudioData)]
+ expected: FAIL
+
+ [AudioEncoder interface: operation flush()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation reset()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation close()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation isConfigSupported(AudioEncoderConfig)]
+ expected: FAIL
+
+ [VideoEncoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [VideoEncoder interface object length]
+ expected: FAIL
+
+ [VideoEncoder interface object name]
+ expected: FAIL
+
+ [VideoEncoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [VideoEncoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [VideoEncoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [VideoEncoder interface: attribute state]
+ expected: FAIL
+
+ [VideoEncoder interface: attribute encodeQueueSize]
+ expected: FAIL
+
+ [VideoEncoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [VideoEncoder interface: operation configure(VideoEncoderConfig)]
+ expected: FAIL
+
+ [VideoEncoder interface: operation encode(VideoFrame, optional VideoEncoderEncodeOptions)]
+ expected: FAIL
+
+ [VideoEncoder interface: operation flush()]
+ expected: FAIL
+
+ [VideoEncoder interface: operation reset()]
+ expected: FAIL
+
+ [VideoEncoder interface: operation close()]
+ expected: FAIL
+
+ [VideoEncoder interface: operation isConfigSupported(VideoEncoderConfig)]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface object]
+ expected: FAIL
+
+ [EncodedAudioChunk interface object length]
+ expected: FAIL
+
+ [EncodedAudioChunk interface object name]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute type]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute timestamp]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute duration]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute byteLength]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: operation copyTo(BufferSource)]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: existence and properties of interface object]
+ expected: FAIL
+
+ [EncodedVideoChunk interface object length]
+ expected: FAIL
+
+ [EncodedVideoChunk interface object name]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: attribute type]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: attribute timestamp]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: attribute duration]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: attribute byteLength]
+ expected: FAIL
+
+ [EncodedVideoChunk interface: operation copyTo(BufferSource)]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioData interface object length]
+ expected: FAIL
+
+ [AudioData interface object name]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioData interface: attribute format]
+ expected: FAIL
+
+ [AudioData interface: attribute sampleRate]
+ expected: FAIL
+
+ [AudioData interface: attribute numberOfFrames]
+ expected: FAIL
+
+ [AudioData interface: attribute numberOfChannels]
+ expected: FAIL
+
+ [AudioData interface: attribute duration]
+ expected: FAIL
+
+ [AudioData interface: attribute timestamp]
+ expected: FAIL
+
+ [AudioData interface: operation allocationSize(AudioDataCopyToOptions)]
+ expected: FAIL
+
+ [AudioData interface: operation copyTo(BufferSource, AudioDataCopyToOptions)]
+ expected: FAIL
+
+ [AudioData interface: operation clone()]
+ expected: FAIL
+
+ [AudioData interface: operation close()]
+ expected: FAIL
+
+ [VideoFrame interface: existence and properties of interface object]
+ expected: FAIL
+
+ [VideoFrame interface object length]
+ expected: FAIL
+
+ [VideoFrame interface object name]
+ expected: FAIL
+
+ [VideoFrame interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [VideoFrame interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [VideoFrame interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [VideoFrame interface: attribute format]
+ expected: FAIL
+
+ [VideoFrame interface: attribute codedWidth]
+ expected: FAIL
+
+ [VideoFrame interface: attribute codedHeight]
+ expected: FAIL
+
+ [VideoFrame interface: attribute codedRect]
+ expected: FAIL
+
+ [VideoFrame interface: attribute visibleRect]
+ expected: FAIL
+
+ [VideoFrame interface: attribute displayWidth]
+ expected: FAIL
+
+ [VideoFrame interface: attribute displayHeight]
+ expected: FAIL
+
+ [VideoFrame interface: attribute duration]
+ expected: FAIL
+
+ [VideoFrame interface: attribute timestamp]
+ expected: FAIL
+
+ [VideoFrame interface: attribute colorSpace]
+ expected: FAIL
+
+ [VideoFrame interface: operation metadata()]
+ expected: FAIL
+
+ [VideoFrame interface: operation allocationSize(optional VideoFrameCopyToOptions)]
+ expected: FAIL
+
+ [VideoFrame interface: operation copyTo(BufferSource, optional VideoFrameCopyToOptions)]
+ expected: FAIL
+
+ [VideoFrame interface: operation clone()]
+ expected: FAIL
+
+ [VideoFrame interface: operation close()]
+ expected: FAIL
+
+ [VideoColorSpace interface: existence and properties of interface object]
+ expected: FAIL
+
+ [VideoColorSpace interface object length]
+ expected: FAIL
+
+ [VideoColorSpace interface object name]
+ expected: FAIL
+
+ [VideoColorSpace interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [VideoColorSpace interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [VideoColorSpace interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [VideoColorSpace interface: attribute primaries]
+ expected: FAIL
+
+ [VideoColorSpace interface: attribute transfer]
+ expected: FAIL
+
+ [VideoColorSpace interface: attribute matrix]
+ expected: FAIL
+
+ [VideoColorSpace interface: attribute fullRange]
+ expected: FAIL
+
+ [VideoColorSpace interface: operation toJSON()]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageDecoder interface object length]
+ expected: FAIL
+
+ [ImageDecoder interface object name]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute type]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute complete]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute completed]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute tracks]
+ expected: FAIL
+
+ [ImageDecoder interface: operation decode(optional ImageDecodeOptions)]
+ expected: FAIL
+
+ [ImageDecoder interface: operation reset()]
+ expected: FAIL
+
+ [ImageDecoder interface: operation close()]
+ expected: FAIL
+
+ [ImageDecoder interface: operation isTypeSupported(DOMString)]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageTrackList interface object length]
+ expected: FAIL
+
+ [ImageTrackList interface object name]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute ready]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute length]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute selectedIndex]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute selectedTrack]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageTrack interface object length]
+ expected: FAIL
+
+ [ImageTrack interface object name]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageTrack interface: attribute animated]
+ expected: FAIL
+
+ [ImageTrack interface: attribute frameCount]
+ expected: FAIL
+
+ [ImageTrack interface: attribute repetitionCount]
+ expected: FAIL
+
+ [ImageTrack interface: attribute selected]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/image-decoder-image-orientation-none.https.html.ini b/testing/web-platform/meta/webcodecs/image-decoder-image-orientation-none.https.html.ini
new file mode 100644
index 0000000000..06504a120f
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/image-decoder-image-orientation-none.https.html.ini
@@ -0,0 +1,50 @@
+[image-decoder-image-orientation-none.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test JPEG w/ EXIF orientation top-left on canvas w/o orientation]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-right on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-top on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-top on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-left on canvas w/o orientation]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-right on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-top on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-top on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/image-decoder.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/image-decoder.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..3bffab1f96
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/image-decoder.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,16 @@
+[image-decoder.crossOriginIsolated.https.any.html]
+ [Test ImageDecoder decoding with a SharedArrayBuffer source]
+ expected: FAIL
+
+ [Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source]
+ expected: FAIL
+
+
+[image-decoder.crossOriginIsolated.https.any.worker.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test ImageDecoder decoding with a SharedArrayBuffer source]
+ expected: FAIL
+
+ [Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/image-decoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/image-decoder.https.any.js.ini
new file mode 100644
index 0000000000..a391295c89
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/image-decoder.https.any.js.ini
@@ -0,0 +1,252 @@
+[image-decoder.https.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test JPEG image decoding.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-left.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-right.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-right.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-left.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-top.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-top.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-bottom.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-bottom.]
+ expected: FAIL
+
+ [Test PNG image decoding.]
+ expected: FAIL
+
+ [Test AVIF image decoding.]
+ expected: FAIL
+
+ [Test high bit depth HDR AVIF image decoding.]
+ expected: FAIL
+
+ [Test multi-track AVIF image decoding w/ preferAnimation=false.]
+ expected: FAIL
+
+ [Test multi-track AVIF image decoding w/ preferAnimation=true.]
+ expected: FAIL
+
+ [Test WEBP image decoding.]
+ expected: FAIL
+
+ [Test GIF image decoding.]
+ expected: FAIL
+
+ [Test JPEG image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:2:2 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:4:4 decoding.]
+ expected: FAIL
+
+ [Test WEBP image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test invalid mime type rejects decode() requests]
+ expected: FAIL
+
+ [Test invalid mime type rejects decodeMetadata() requests]
+ expected: FAIL
+
+ [Test out of range index returns RangeError]
+ expected: FAIL
+
+ [Test partial decoding without a frame results in an error]
+ expected: FAIL
+
+ [Test completed property on fully buffered decode]
+ expected: FAIL
+
+ [Test decode, decodeMetadata after no track selected.]
+ expected: FAIL
+
+ [Test track selection in multi track image.]
+ expected: FAIL
+
+ [Test ReadableStream of gif]
+ expected: FAIL
+
+ [Test that decode requests are serialized.]
+ expected: FAIL
+
+ [Test ReadableStream aborts promises on track change]
+ expected: FAIL
+
+ [Test ReadableStream aborts completed on close]
+ expected: FAIL
+
+ [Test ReadableStream resolves completed]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-left.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-right.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-right.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-left.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-top.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-top.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-bottom.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-bottom.]
+ expected: FAIL
+
+
+[image-decoder.https.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test JPEG image decoding.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-left.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-right.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-right.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-left.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-top.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-top.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-bottom.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-bottom.]
+ expected: FAIL
+
+ [Test PNG image decoding.]
+ expected: FAIL
+
+ [Test AVIF image decoding.]
+ expected: FAIL
+
+ [Test high bit depth HDR AVIF image decoding.]
+ expected: FAIL
+
+ [Test multi-track AVIF image decoding w/ preferAnimation=false.]
+ expected: FAIL
+
+ [Test multi-track AVIF image decoding w/ preferAnimation=true.]
+ expected: FAIL
+
+ [Test WEBP image decoding.]
+ expected: FAIL
+
+ [Test GIF image decoding.]
+ expected: FAIL
+
+ [Test JPEG image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:2:2 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:4:4 decoding.]
+ expected: FAIL
+
+ [Test WEBP image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test invalid mime type rejects decode() requests]
+ expected: FAIL
+
+ [Test invalid mime type rejects decodeMetadata() requests]
+ expected: FAIL
+
+ [Test out of range index returns RangeError]
+ expected: FAIL
+
+ [Test partial decoding without a frame results in an error]
+ expected: FAIL
+
+ [Test completed property on fully buffered decode]
+ expected: FAIL
+
+ [Test decode, decodeMetadata after no track selected.]
+ expected: FAIL
+
+ [Test track selection in multi track image.]
+ expected: FAIL
+
+ [Test ReadableStream of gif]
+ expected: FAIL
+
+ [Test that decode requests are serialized.]
+ expected: FAIL
+
+ [Test ReadableStream aborts promises on track change]
+ expected: FAIL
+
+ [Test ReadableStream aborts completed on close]
+ expected: FAIL
+
+ [Test ReadableStream resolves completed]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-left.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-right.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-right.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-left.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-top.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-top.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-bottom.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-bottom.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/per-frame-qp-encoding.https.any.js.ini b/testing/web-platform/meta/webcodecs/per-frame-qp-encoding.https.any.js.ini
new file mode 100644
index 0000000000..64bb1fe3cd
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/per-frame-qp-encoding.https.any.js.ini
@@ -0,0 +1,46 @@
+[per-frame-qp-encoding.https.any.worker.html?av1]
+ [Frame QP encoding, full range]
+ expected: FAIL
+
+ [Frame QP encoding, good range with validation]
+ expected: FAIL
+
+
+[per-frame-qp-encoding.https.any.worker.html?vp9_p2]
+ [Frame QP encoding, full range]
+ expected: FAIL
+
+ [Frame QP encoding, good range with validation]
+ expected: FAIL
+
+
+[per-frame-qp-encoding.https.any.worker.html?vp9_p0]
+ [Frame QP encoding, full range]
+ expected: FAIL
+
+ [Frame QP encoding, good range with validation]
+ expected: FAIL
+
+
+[per-frame-qp-encoding.https.any.html?vp9_p2]
+ [Frame QP encoding, full range]
+ expected: FAIL
+
+ [Frame QP encoding, good range with validation]
+ expected: FAIL
+
+
+[per-frame-qp-encoding.https.any.html?vp9_p0]
+ [Frame QP encoding, full range]
+ expected: FAIL
+
+ [Frame QP encoding, good range with validation]
+ expected: FAIL
+
+
+[per-frame-qp-encoding.https.any.html?av1]
+ [Frame QP encoding, full range]
+ expected: FAIL
+
+ [Frame QP encoding, good range with validation]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/reconfiguring-encoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/reconfiguring-encoder.https.any.js.ini
new file mode 100644
index 0000000000..81a04ca5c5
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/reconfiguring-encoder.https.any.js.ini
@@ -0,0 +1,82 @@
+[reconfiguring-encoder.https.any.worker.html?h264_avc]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.html?av1]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.html?vp9_p0]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.worker.html?vp9_p2]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.worker.html?vp9_p0]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.html?h264_annexb]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.worker.html?h264_annexb]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.html?vp9_p2]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.worker.html?av1]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.worker.html?vp8]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.html?h264_avc]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
+
+
+[reconfiguring-encoder.https.any.html?vp8]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/temporal-svc-encoding.https.any.js.ini b/testing/web-platform/meta/webcodecs/temporal-svc-encoding.https.any.js.ini
new file mode 100644
index 0000000000..c79018a211
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/temporal-svc-encoding.https.any.js.ini
@@ -0,0 +1,78 @@
+[temporal-svc-encoding.https.any.worker.html?av1]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [SVC L1T2]
+ expected: FAIL
+
+ [SVC L1T3]
+ expected: FAIL
+
+
+[temporal-svc-encoding.https.any.worker.html?vp9]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [SVC L1T2]
+ expected: FAIL
+
+ [SVC L1T3]
+ expected: FAIL
+
+
+[temporal-svc-encoding.https.any.html?av1]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [SVC L1T2]
+ expected: FAIL
+
+ [SVC L1T3]
+ expected: FAIL
+
+
+[temporal-svc-encoding.https.any.html?vp8]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [SVC L1T2]
+ expected: FAIL
+
+ [SVC L1T3]
+ expected: FAIL
+
+
+[temporal-svc-encoding.https.any.worker.html?vp8]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [SVC L1T2]
+ expected: FAIL
+
+ [SVC L1T3]
+ expected: FAIL
+
+
+[temporal-svc-encoding.https.any.html?h264]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [SVC L1T2]
+ expected: FAIL
+
+ [SVC L1T3]
+ expected: FAIL
+
+
+[temporal-svc-encoding.https.any.html?vp9]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [SVC L1T2]
+ expected: FAIL
+
+ [SVC L1T3]
+ expected: FAIL
+
+
+[temporal-svc-encoding.https.any.worker.html?h264]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [SVC L1T2]
+ expected: FAIL
+
+ [SVC L1T3]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/video-decoder.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-decoder.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..012612c3a8
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-decoder.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,16 @@
+[video-decoder.crossOriginIsolated.https.any.html]
+ [Test isConfigSupported() and configure() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
+
+
+[video-decoder.crossOriginIsolated.https.any.worker.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test isConfigSupported() and configure() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/video-decoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-decoder.https.any.js.ini
new file mode 100644
index 0000000000..35182032f4
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-decoder.https.any.js.ini
@@ -0,0 +1,72 @@
+[video-decoder.https.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Empty codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Audio codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type]
+ expected: FAIL
+
+ [Test VideoDecoder construction]
+ expected: FAIL
+
+
+[video-decoder.https.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Empty codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Audio codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec]
+ expected: FAIL
+
+ [Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type]
+ expected: FAIL
+
+ [Test VideoDecoder construction]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/video-encoder-config.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-encoder-config.https.any.js.ini
new file mode 100644
index 0000000000..55ed43a33a
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-encoder-config.https.any.js.ini
@@ -0,0 +1,66 @@
+[video-encoder-config.https.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec]
+ expected: FAIL
+
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large]
+ expected: FAIL
+
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large]
+ expected: FAIL
+
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"vp09.00.10.08","hardwareAcceleration":"no-preference","width":1280,"height":720,"bitrate":7000000,"bitrateMode":"constant","framerate":25,"futureConfigFeature":"foo","latencyMode":"realtime","alpha":"discard"}]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() doesn't support config:Odd sized frames for H264]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality","avc":{"format":"annexb"}}]
+ expected: FAIL
+
+
+[video-encoder-config.https.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec]
+ expected: FAIL
+
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec]
+ expected: FAIL
+
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large]
+ expected: FAIL
+
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large]
+ expected: FAIL
+
+ [Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"vp09.00.10.08","hardwareAcceleration":"no-preference","width":1280,"height":720,"bitrate":7000000,"bitrateMode":"constant","framerate":25,"futureConfigFeature":"foo","latencyMode":"realtime","alpha":"discard"}]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() doesn't support config:Odd sized frames for H264]
+ expected: FAIL
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality","avc":{"format":"annexb"}}]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/video-encoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-encoder.https.any.js.ini
new file mode 100644
index 0000000000..7003ac148b
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-encoder.https.any.js.ini
@@ -0,0 +1,66 @@
+[video-encoder.https.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test VideoEncoder construction]
+ expected: FAIL
+
+ [Test VideoEncoder.configure()]
+ expected: FAIL
+
+ [Test successful configure(), encode(), and flush()]
+ expected: FAIL
+
+ [encodeQueueSize test]
+ expected: FAIL
+
+ [Test successful reset() and re-confiugre()]
+ expected: FAIL
+
+ [Test successful encode() after re-configure().]
+ expected: FAIL
+
+ [Verify closed VideoEncoder operations]
+ expected: FAIL
+
+ [Verify unconfigured VideoEncoder operations]
+ expected: FAIL
+
+ [Verify encoding closed frames throws.]
+ expected: FAIL
+
+ [Encode video with negative timestamp]
+ expected: FAIL
+
+
+[video-encoder.https.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test VideoEncoder construction]
+ expected: FAIL
+
+ [Test VideoEncoder.configure()]
+ expected: FAIL
+
+ [Test successful configure(), encode(), and flush()]
+ expected: FAIL
+
+ [encodeQueueSize test]
+ expected: FAIL
+
+ [Test successful reset() and re-confiugre()]
+ expected: FAIL
+
+ [Test successful encode() after re-configure().]
+ expected: FAIL
+
+ [Verify closed VideoEncoder operations]
+ expected: FAIL
+
+ [Verify unconfigured VideoEncoder operations]
+ expected: FAIL
+
+ [Verify encoding closed frames throws.]
+ expected: FAIL
+
+ [Encode video with negative timestamp]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/video-frame-serialization.any.js.ini b/testing/web-platform/meta/webcodecs/video-frame-serialization.any.js.ini
new file mode 100644
index 0000000000..03cb5969ba
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-frame-serialization.any.js.ini
@@ -0,0 +1,16 @@
+[video-frame-serialization.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+
+ [Verify closing a frame doesn't affect its clones.]
+ expected: FAIL
+
+
+[video-frame-serialization.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+
+ [Verify closing a frame doesn't affect its clones.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoColorSpace.any.js.ini b/testing/web-platform/meta/webcodecs/videoColorSpace.any.js.ini
new file mode 100644
index 0000000000..371c920220
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoColorSpace.any.js.ini
@@ -0,0 +1,9 @@
+[videoColorSpace.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+
+[videoColorSpace.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoDecoder-codec-specific.https.any.js.ini b/testing/web-platform/meta/webcodecs/videoDecoder-codec-specific.https.any.js.ini
new file mode 100644
index 0000000000..fcaad81c2f
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoDecoder-codec-specific.https.any.js.ini
@@ -0,0 +1,588 @@
+[videoDecoder-codec-specific.https.any.worker.html?vp8]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[videoDecoder-codec-specific.https.any.worker.html?h264_avc]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[videoDecoder-codec-specific.https.any.worker.html?vp9]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[videoDecoder-codec-specific.https.any.worker.html?h264_annexb]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[videoDecoder-codec-specific.https.any.html?vp8]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[videoDecoder-codec-specific.https.any.html?av1]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[videoDecoder-codec-specific.https.any.worker.html?av1]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[videoDecoder-codec-specific.https.any.html?vp9]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[videoDecoder-codec-specific.https.any.html?h264_avc]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[videoDecoder-codec-specific.https.any.html?h264_annexb]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: NOTRUN
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test invalid configs]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Decode a key frame]
+ expected: NOTRUN
+
+ [Decode a non key frame first fails]
+ expected: NOTRUN
+
+ [Verify reset() suppresses outputs]
+ expected: NOTRUN
+
+ [Test unconfigured VideoDecoder operations]
+ expected: NOTRUN
+
+ [Test closed VideoDecoder operations]
+ expected: NOTRUN
+
+ [Decode empty frame]
+ expected: NOTRUN
+
+ [Decode corrupt frame]
+ expected: NOTRUN
+
+ [Close while decoding corrupt frame]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [Test low-latency decoding]
+ expected: NOTRUN
+
+ [VideoDecoder decodeQueueSize test]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-alpha.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-alpha.any.js.ini
new file mode 100644
index 0000000000..bee1597f54
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-alpha.any.js.ini
@@ -0,0 +1,18 @@
+[videoFrame-alpha.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [OffscreenCanvas source preserves alpha]
+ expected: FAIL
+
+ [ImageBitmap source preserves alpha]
+ expected: FAIL
+
+
+[videoFrame-alpha.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [OffscreenCanvas source preserves alpha]
+ expected: FAIL
+
+ [ImageBitmap source preserves alpha]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-canvasImageSource.html.ini b/testing/web-platform/meta/webcodecs/videoFrame-canvasImageSource.html.ini
new file mode 100644
index 0000000000..7b8362de81
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-canvasImageSource.html.ini
@@ -0,0 +1,20 @@
+[videoFrame-canvasImageSource.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [<video> and VideoFrame constructed VideoFrame]
+ expected: FAIL
+
+ [CSSImageValue constructed VideoFrame]
+ expected: FAIL
+
+ [Image element constructed VideoFrame]
+ expected: FAIL
+
+ [SVGImageElement constructed VideoFrame]
+ expected: FAIL
+
+ [Canvas element constructed VideoFrame]
+ expected: FAIL
+
+ [Copy of canvas element constructed VideoFrame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-construction.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-construction.any.js.ini
new file mode 100644
index 0000000000..eec8a31a79
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-construction.any.js.ini
@@ -0,0 +1,20 @@
+[videoFrame-construction.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test planar constructed I420 VideoFrame with null colorSpace values]
+ expected: FAIL
+
+ [Test closed VideoFrame.]
+ expected: FAIL
+
+
+[videoFrame-construction.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test planar constructed I420 VideoFrame with null colorSpace values]
+ expected: FAIL
+
+ [Test closed VideoFrame.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..8740920910
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,9 @@
+[videoFrame-construction.crossOriginIsolated.https.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+
+[videoFrame-construction.crossOriginIsolated.https.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and not swgl: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginSource.sub.html.ini b/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginSource.sub.html.ini
new file mode 100644
index 0000000000..ed5989e9d5
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginSource.sub.html.ini
@@ -0,0 +1,6 @@
+[videoFrame-construction.crossOriginSource.sub.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test creating a VideoFrame with a CORS enabled cross-origin SVGImageElement with crossorigin="anonymous"]
+ disabled: https://bugzilla.mozilla.org/show_bug.cgi?id=1789880
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-construction.window.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-construction.window.js.ini
new file mode 100644
index 0000000000..7d6d5ffb84
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-construction.window.js.ini
@@ -0,0 +1,7 @@
+[videoFrame-construction.window.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+
+[Test that timestamp is required when constructing VideoFrame from HTMLImageElement]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-copyTo.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-copyTo.any.js.ini
new file mode 100644
index 0000000000..f5c78489a4
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-copyTo.any.js.ini
@@ -0,0 +1,13 @@
+[videoFrame-copyTo.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test I420A stride and offset work.]
+ expected:
+ if (os == "android") and fission: [PASS, FAIL]
+
+
+[videoFrame-copyTo.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..2a52eb1ed7
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,10 @@
+[videoFrame-copyTo.crossOriginIsolated.https.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug: [OK, TIMEOUT]
+
+[videoFrame-copyTo.crossOriginIsolated.https.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ if (os == "android") and not debug: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.any.js.ini
new file mode 100644
index 0000000000..78637baf0a
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.any.js.ini
@@ -0,0 +1,20 @@
+[videoFrame-createImageBitmap.any.html]
+ [ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).]
+ expected: FAIL
+
+ [ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).]
+ expected: FAIL
+
+ [createImageBitmap uses frame display size]
+ expected: FAIL
+
+
+[videoFrame-createImageBitmap.any.worker.html]
+ [ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).]
+ expected: FAIL
+
+ [ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).]
+ expected: FAIL
+
+ [createImageBitmap uses frame display size]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.https.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.https.any.js.ini
new file mode 100644
index 0000000000..73bdd4a3ee
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.https.any.js.ini
@@ -0,0 +1,12 @@
+[videoFrame-createImageBitmap.https.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Create ImageBitmap for a VideoFrame from VP9 decoder.]
+ expected: FAIL
+
+
+[videoFrame-createImageBitmap.https.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Create ImageBitmap for a VideoFrame from VP9 decoder.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-drawImage.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-drawImage.any.js.ini
new file mode 100644
index 0000000000..13c02aee3b
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-drawImage.any.js.ini
@@ -0,0 +1,54 @@
+[videoFrame-drawImage.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [drawImage(VideoFrame) with canvas(48x36 srgb uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(480x360 srgb uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).]
+ expected: FAIL
+
+ [drawImage on a closed VideoFrame throws InvalidStateError.]
+ expected: FAIL
+
+ [drawImage of nested frame works properly]
+ expected: FAIL
+
+ [drawImage with display size != visible size]
+ expected: FAIL
+
+
+[videoFrame-drawImage.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [drawImage(VideoFrame) with canvas(48x36 srgb uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(480x360 srgb uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).]
+ expected: FAIL
+
+ [drawImage on a closed VideoFrame throws InvalidStateError.]
+ expected: FAIL
+
+ [drawImage of nested frame works properly]
+ expected: FAIL
+
+ [drawImage with display size != visible size]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-serialization.crossAgentCluster.https.html.ini b/testing/web-platform/meta/webcodecs/videoFrame-serialization.crossAgentCluster.https.html.ini
new file mode 100644
index 0000000000..2a908b0f1b
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-serialization.crossAgentCluster.https.html.ini
@@ -0,0 +1,35 @@
+[videoFrame-serialization.crossAgentCluster.https.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [OK, TIMEOUT]
+ [Verify frames is unavailable in serviceworker]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [PASS, NOTRUN]
+
+ [Verify frames cannot be transferred accross the different agent clusters]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [PASS, NOTRUN]
+
+ [Verify frames can be transferred within the same agent clusters]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [PASS, NOTRUN]
+
+ [Verify frames can be transferred back and forth between main and worker]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [PASS, NOTRUN]
+
+ [Verify frames is unavailable in sharedworker]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [PASS, NOTRUN]
+
+ [Verify frames cannot be transferred to a sharedworker]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [PASS, NOTRUN]
+
+ [Verify frames cannot be transferred to serviceworker]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [PASS, NOTRUN]
+
+ [Verify frames cannot be passed to serviceworker]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [PASS, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-texImage.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-texImage.any.js.ini
new file mode 100644
index 0000000000..d59451956a
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-texImage.any.js.ini
@@ -0,0 +1,42 @@
+[videoFrame-texImage.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [texImage2D with 48x36 srgb VideoFrame.]
+ expected: FAIL
+
+ [texSubImage2D with 48x36 srgb VideoFrame.]
+ expected: FAIL
+
+ [texImage2D with 480x360 srgb VideoFrame.]
+ expected: FAIL
+
+ [texSubImage2D with 480x360 srgb VideoFrame.]
+ expected: FAIL
+
+ [texImage2D with a closed VideoFrame.]
+ expected: FAIL
+
+ [texSubImage2D with a closed VideoFrame.]
+ expected: FAIL
+
+
+[videoFrame-texImage.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [texImage2D with 48x36 srgb VideoFrame.]
+ expected: FAIL
+
+ [texSubImage2D with 48x36 srgb VideoFrame.]
+ expected: FAIL
+
+ [texImage2D with 480x360 srgb VideoFrame.]
+ expected: FAIL
+
+ [texSubImage2D with 480x360 srgb VideoFrame.]
+ expected: FAIL
+
+ [texImage2D with a closed VideoFrame.]
+ expected: FAIL
+
+ [texSubImage2D with a closed VideoFrame.]
+ expected: FAIL