diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 3e6095c3c82..116dcb6a949 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -18805,6 +18805,12 @@ {} ] ], + "uievents/mouse/mouse_buttons_back_forward-manual.html": [ + [ + "/uievents/mouse/mouse_buttons_back_forward-manual.html", + {} + ] + ], "uievents/mouse/mouseevent_move_button-manual.html": [ [ "/uievents/mouse/mouseevent_move_button-manual.html", @@ -99753,6 +99759,30 @@ {} ] ], + "css/css-align/gaps/gap-normal-used-001.html": [ + [ + "/css/css-align/gaps/gap-normal-used-001.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "css/css-align/gaps/gap-normal-used-002.html": [ + [ + "/css/css-align/gaps/gap-normal-used-002.html", + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "css/css-animations/animation-delay-008.html": [ [ "/css/css-animations/animation-delay-008.html", @@ -249603,6 +249633,11 @@ {} ] ], + "css/css-overflow/OWNERS": [ + [ + {} + ] + ], "css/css-overflow/reference/input-scrollable-region-001-ref.html": [ [ {} @@ -285798,6 +285833,11 @@ {} ] ], + "interfaces/web-audio-api.idl": [ + [ + {} + ] + ], "interfaces/web-nfc.idl": [ [ {} @@ -285808,11 +285848,6 @@ {} ] ], - "interfaces/webaudio.idl": [ - [ - {} - ] - ], "interfaces/webauthn.idl": [ [ {} @@ -312119,6 +312154,12 @@ {} ] ], + "css/css-align/gaps/gap-normal-computed-001.html": [ + [ + "/css/css-align/gaps/gap-normal-computed-001.html", + {} + ] + ], "css/css-align/gaps/gap-parsing-001.html": [ [ "/css/css-align/gaps/gap-parsing-001.html", @@ -314439,6 +314480,12 @@ {} ] ], + "css/css-overflow/logical-overflow-001.html": [ + [ + "/css/css-overflow/logical-overflow-001.html", + {} + ] + ], "css/css-position/position-sticky-bottom.html": [ [ "/css/css-position/position-sticky-bottom.html", @@ -317019,6 +317066,12 @@ {} ] ], + "css/css-transitions/transition-background-position-with-edge-offset.html": [ + [ + "/css/css-transitions/transition-background-position-with-edge-offset.html", + {} + ] + ], "css/css-transitions/transition-delay-001.html": [ [ "/css/css-transitions/transition-delay-001.html", @@ -318015,6 +318068,12 @@ {} ] ], + "css/css-typed-om/the-stylepropertymap/properties/marker.html": [ + [ + "/css/css-typed-om/the-stylepropertymap/properties/marker.html", + {} + ] + ], "css/css-typed-om/the-stylepropertymap/properties/mask-image.html": [ [ "/css/css-typed-om/the-stylepropertymap/properties/mask-image.html", @@ -364883,12 +364942,6 @@ {} ] ], - "wasm/many-memories.window.js": [ - [ - "/wasm/many-memories.window.html", - {} - ] - ], "wasm/wasm_indexeddb_test.https.html": [ [ "/wasm/wasm_indexeddb_test.https.html", @@ -365969,9 +366022,13 @@ {} ] ], - "webauthn/interfaces.https.html": [ + "webauthn/interfaces.https.any.js": [ [ - "/webauthn/interfaces.https.html", + "/webauthn/interfaces.https.any.html", + {} + ], + [ + "/webauthn/interfaces.https.any.worker.html", {} ] ], @@ -366997,9 +367054,9 @@ {} ] ], - "webrtc/RTCRtpReceiver-getStats.html": [ + "webrtc/RTCRtpReceiver-getStats.https.html": [ [ - "/webrtc/RTCRtpReceiver-getStats.html", + "/webrtc/RTCRtpReceiver-getStats.https.html", {} ] ], @@ -483348,6 +483405,18 @@ "e2c2dc0ed64e3c8e70959c64108cbb798ea49827", "testharness" ], + "css/css-align/gaps/gap-normal-computed-001.html": [ + "e7412b730249b49deca715deef9547a24d49b6b9", + "testharness" + ], + "css/css-align/gaps/gap-normal-used-001.html": [ + "d4e03d7cdb2962dc5adb70772d3dcb4edcd6b648", + "reftest" + ], + "css/css-align/gaps/gap-normal-used-002.html": [ + "7348776ecf5dbf5236c9118b6d086e5160c89fbc", + "reftest" + ], "css/css-align/gaps/gap-parsing-001.html": [ "7eb55e0a8b04384aebfbb5a47922c5b33f93270c", "testharness" @@ -505384,10 +505453,18 @@ "0cba1aed016d08e4706bffb8a4f4169c9cfd2108", "visual" ], + "css/css-overflow/OWNERS": [ + "9f69536c6dc078b1d7ddba66d2c98d1432a9fcbb", + "support" + ], "css/css-overflow/input-scrollable-region-001.html": [ "f51bc673da28b0471018cdf945b4449ab00ce717", "reftest" ], + "css/css-overflow/logical-overflow-001.html": [ + "2fe3c96c09faaa25baa2d7e88215a2ccd47e9381", + "testharness" + ], "css/css-overflow/reference/input-scrollable-region-001-ref.html": [ "31e24bb1a2cb6f42703cc05e055fcb345c770a22", "support" @@ -516757,7 +516834,7 @@ "support" ], "css/css-text/word-break/reference/word-break-break-all-ref-005.html": [ - "c376685676b6a5a6c7bb4560d770944510d5d579", + "05d1f5271ed2dc1303b3cf2672bf73f209f7059f", "support" ], "css/css-text/word-break/reference/word-break-break-all-ref-006.html": [ @@ -516893,7 +516970,7 @@ "reftest" ], "css/css-text/word-break/word-break-break-all-005.html": [ - "c6c188f4487e485f2ea040cd3e1fe4e0d88be5a6", + "e7c101668b0a2acce03a819de0fdbe6988f9e2a7", "reftest" ], "css/css-text/word-break/word-break-break-all-006.html": [ @@ -522700,6 +522777,10 @@ "2068fe442683e6242633527409c89940d4e04bda", "testharness" ], + "css/css-transitions/transition-background-position-with-edge-offset.html": [ + "00d397eb8f6eba4e3f34c03d7af23e056953e2ef", + "testharness" + ], "css/css-transitions/transition-delay-000.html": [ "ad61ec6800863b60d7d392fc0666332673319209", "manual" @@ -523624,6 +523705,10 @@ "268e2a2844439f1175199034d89d60a56e0e11fd", "testharness" ], + "css/css-typed-om/the-stylepropertymap/properties/marker.html": [ + "cbf331428f094497d098ca75f6a5437a57812640", + "testharness" + ], "css/css-typed-om/the-stylepropertymap/properties/mask-image.html": [ "8400ca1a6caf399c5914df06028d6616fb9f9571", "testharness" @@ -523705,7 +523790,7 @@ "testharness" ], "css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js": [ - "ca6f58ecbab01ee294f4388b456b3b1bdd7a4629", + "7dad4e140a70b28cde65ff1c23c5f843223eee6f", "support" ], "css/css-typed-om/the-stylepropertymap/properties/right.html": [ @@ -534869,7 +534954,7 @@ "support" ], "css/geometry/support/interfaces.js": [ - "13d88ccf8c2f03db7e1db7f6fc704ba46a06e0e1", + "588093d88e2aa43a81a11baf0cd154a8fa202788", "support" ], "css/mediaqueries/OWNERS": [ @@ -573161,7 +573246,7 @@ "support" ], "interfaces/geometry.idl": [ - "dea55d151bd19d342f9b28bb2f11e5108ab970ff", + "9aae8525ee6b27797783495e8d918892ee857a78", "support" ], "interfaces/gyroscope.idl": [ @@ -573244,6 +573329,10 @@ "8d00ee62fafedfd3e24925f48eed6ba26b5aafc7", "support" ], + "interfaces/web-audio-api.idl": [ + "95feed20bd7d63ce1f3daea677e96340576eada9", + "support" + ], "interfaces/web-nfc.idl": [ "105e771bdd9587f029091a5ed590187ed6e86e2a", "support" @@ -573252,12 +573341,8 @@ "21b54128664c5962c29fd708ebba3d8d90987f26", "support" ], - "interfaces/webaudio.idl": [ - "43a244276b9795b137c2e46c194d56dbb957635d", - "support" - ], "interfaces/webauthn.idl": [ - "77076f0828383c0f48f36131a81b25186622b3a3", + "1ae8b428644479b352fd5b1996677fd4dcdbb84b", "support" ], "interfaces/webidl.idl": [ @@ -573265,7 +573350,7 @@ "support" ], "interfaces/webrtc-pc.idl": [ - "f3bcd13429b9ab477f7b2422fa4e3ede0bfac88a", + "a631e2e0ea0f451c64b5d5f74fe7cbeafc231b8e", "support" ], "interfaces/webusb.idl": [ @@ -594457,7 +594542,7 @@ "support" ], "service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html": [ - "2879ba75fc0135aa9220f5eb5d7e00b8bcf1cbcc", + "4d7489b889c98bd66b40369e2d4ed56355ada6ae", "support" ], "service-workers/service-worker/resources/fetch-request-xhr-sync-iframe.html": [ @@ -600316,6 +600401,10 @@ "4e96209d99278b974347c6bd636454b0e7daf3c4", "manual" ], + "uievents/mouse/mouse_buttons_back_forward-manual.html": [ + "1688ee49394e0d96b0af131faeccc175b1723a8e", + "manual" + ], "uievents/mouse/mouseevent_move_button-manual.html": [ "9cc673035fef3c2e8677e8d6679babfe8a1af854", "manual" @@ -601884,10 +601973,6 @@ "acdf9d22c042ea3b2637c14b1576b4c8ffb4e97a", "support" ], - "wasm/many-memories.window.js": [ - "84e98a89e653c39dab16e096286457268dccd195", - "testharness" - ], "wasm/resources/blank.html": [ "0ddb4f1cf84729ed673295719ec58a3e5d600a12", "support" @@ -602409,7 +602494,7 @@ "testharness" ], "webaudio/idlharness.https.html": [ - "f42681173fdf4cb8dad2049351f55f3a7ff0fcac", + "2951a126a8b168e6fe4699890d5a3c4772c7f960", "testharness" ], "webaudio/js/buffer-loader.js": [ @@ -603020,8 +603105,8 @@ "9ce729fb89ba1863fb14dfc4d567e6b544a5238d", "support" ], - "webauthn/interfaces.https.html": [ - "80609bdf53a5919205b235549cd57a859e56ee3b", + "webauthn/interfaces.https.any.js": [ + "bc3e3c5a85f068efa88c4ed256cc2d270c8eca0f", "testharness" ], "webauthn/securecontext.http.html": [ @@ -604065,7 +604150,7 @@ "testharness" ], "webrtc/RTCPeerConnection-track-stats.https.html": [ - "f69d223cb8cd11e4b68b7687e2361ed3ea947f5e", + "55ab0ca3d364b020320fa45a14e50d2897dda13a", "testharness" ], "webrtc/RTCPeerConnectionIceEvent-constructor.html": [ @@ -604116,8 +604201,8 @@ "ed910cbe15534cae43b79cc008395bd62fbd0637", "testharness" ], - "webrtc/RTCRtpReceiver-getStats.html": [ - "f00accac88efd9108078b0a3d72751a44f108864", + "webrtc/RTCRtpReceiver-getStats.https.html": [ + "a74bf84faa66028f23c5c0de8ea7b1e89aeed98b", "testharness" ], "webrtc/RTCRtpReceiver-getSynchronizationSources.https.html": [ @@ -604197,7 +604282,7 @@ "support" ], "webrtc/interfaces.https.html": [ - "efd0c4a62b9c90f27da1188c30e4503755e7f8d2", + "ef5a449587001f2bdfe82dad68920972f2aeafb1", "testharness" ], "webrtc/no-media-call.html": [ diff --git a/tests/wpt/metadata/css/geometry/interfaces.html.ini b/tests/wpt/metadata/css/geometry/interfaces.html.ini index 6ce53b79dcd..03e693ce2f3 100644 --- a/tests/wpt/metadata/css/geometry/interfaces.html.ini +++ b/tests/wpt/metadata/css/geometry/interfaces.html.ini @@ -297,3 +297,78 @@ [DOMMatrix interface: calling setMatrixValue(DOMString) on DOMMatrix.fromMatrix({is2D: false}) with too few arguments must throw TypeError] expected: FAIL + [DOMPointReadOnly interface: operation toJSON()] + expected: FAIL + + [DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMPointReadOnly] + expected: FAIL + + [DOMPointReadOnly interface: new DOMPoint() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMPoint] + expected: FAIL + + [DOMRectReadOnly interface: operation toJSON()] + expected: FAIL + + [DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMRectReadOnly] + expected: FAIL + + [DOMRectReadOnly interface: new DOMRect() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMRect] + expected: FAIL + + [DOMRectList interface: existence and properties of interface object] + expected: FAIL + + [DOMRectList interface object length] + expected: FAIL + + [DOMRectList interface object name] + expected: FAIL + + [DOMRectList interface: existence and properties of interface prototype object] + expected: FAIL + + [DOMRectList interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [DOMRectList interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [DOMRectList interface: attribute length] + expected: FAIL + + [DOMRectList interface: operation item(unsigned long)] + expected: FAIL + + [DOMRectList must be primary interface of [object DOMRect\]] + expected: FAIL + + [DOMQuad interface: operation toJSON()] + expected: FAIL + + [DOMQuad interface: new DOMQuad() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMQuad] + expected: FAIL + + [DOMMatrixReadOnly interface: operation toJSON()] + expected: FAIL + + [DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMMatrixReadOnly] + expected: FAIL + diff --git a/tests/wpt/metadata/css/geometry/interfaces.worker.js.ini b/tests/wpt/metadata/css/geometry/interfaces.worker.js.ini index 40e47594b85..45d656e6725 100644 --- a/tests/wpt/metadata/css/geometry/interfaces.worker.js.ini +++ b/tests/wpt/metadata/css/geometry/interfaces.worker.js.ini @@ -44,3 +44,51 @@ [DOMRectReadOnly interface: calling fromRect(DOMRectInit) on new DOMRect() with too few arguments must throw TypeError] expected: FAIL + [DOMPointReadOnly interface: operation toJSON()] + expected: FAIL + + [DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMPointReadOnly] + expected: FAIL + + [DOMPointReadOnly interface: new DOMPoint() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMPoint] + expected: FAIL + + [DOMRectReadOnly interface: operation toJSON()] + expected: FAIL + + [DOMRectReadOnly interface: new DOMRectReadOnly() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMRectReadOnly] + expected: FAIL + + [DOMRectReadOnly interface: new DOMRect() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMRect] + expected: FAIL + + [DOMQuad interface: operation toJSON()] + expected: FAIL + + [DOMQuad interface: new DOMQuad() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMQuad] + expected: FAIL + + [DOMMatrixReadOnly interface: operation toJSON()] + expected: FAIL + + [DOMMatrixReadOnly interface: new DOMMatrixReadOnly() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Test default toJSON operation of DOMMatrixReadOnly] + expected: FAIL + diff --git a/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini b/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini index 53b98dd9fc5..df31b559a78 100644 --- a/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-consume-empty.html.ini @@ -30,6 +30,3 @@ [Consume request's body as formData without correct type (error case)] expected: FAIL - [Consume empty ArrayBuffer request body as text] - expected: FAIL - diff --git a/tests/wpt/metadata/fetch/api/request/request-consume.html.ini b/tests/wpt/metadata/fetch/api/request/request-consume.html.ini index 5b7c4c75ccf..b8aed8beb35 100644 --- a/tests/wpt/metadata/fetch/api/request/request-consume.html.ini +++ b/tests/wpt/metadata/fetch/api/request/request-consume.html.ini @@ -9,63 +9,3 @@ [Consume FormData request's body as FormData] expected: FAIL - [Consume ArrayBuffer request's body as blob] - expected: FAIL - - [Consume ArrayBuffer request's body as arrayBuffer] - expected: FAIL - - [Consume ArrayBuffer request's body as JSON] - expected: FAIL - - [Consume Uint8Array request's body as text] - expected: FAIL - - [Consume Uint8Array request's body as blob] - expected: FAIL - - [Consume Uint8Array request's body as arrayBuffer] - expected: FAIL - - [Consume Uint8Array request's body as JSON] - expected: FAIL - - [Consume Int8Array request's body as JSON] - expected: FAIL - - [Consume Float32Array request's body as text] - expected: FAIL - - [Consume ArrayBuffer request's body as text] - expected: FAIL - - [Consume Int8Array request's body as text] - expected: FAIL - - [Consume Int8Array request's body as blob] - expected: FAIL - - [Consume Int8Array request's body as arrayBuffer] - expected: FAIL - - [Consume Float32Array request's body as blob] - expected: FAIL - - [Consume Float32Array request's body as arrayBuffer] - expected: FAIL - - [Consume Float32Array request's body as JSON] - expected: FAIL - - [Consume DataView request's body as text] - expected: FAIL - - [Consume DataView request's body as blob] - expected: FAIL - - [Consume DataView request's body as arrayBuffer] - expected: FAIL - - [Consume DataView request's body as JSON] - expected: FAIL - diff --git a/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini b/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini deleted file mode 100644 index 65c78fd3a4a..00000000000 --- a/tests/wpt/mozilla/meta/css/iframe/hide_after_load.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[hide_after_load.html] - expected: TIMEOUT diff --git a/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini new file mode 100644 index 00000000000..fb8852c9e7a --- /dev/null +++ b/tests/wpt/mozilla/meta/webgl/conformance-1.0.3/conformance/glsl/misc/shader-with-non-reserved-words.html.ini @@ -0,0 +1,5 @@ +[shader-with-non-reserved-words.html] + expected: TIMEOUT + [Overall test] + expected: NOTRUN + diff --git a/tests/wpt/web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html b/tests/wpt/web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html new file mode 100644 index 00000000000..45b82ac27a2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html @@ -0,0 +1,72 @@ + + +CSS Box Alignment Test: computed value of normal on *-gap properties + + + + + + + +
+ +
+
+
+ + + diff --git a/tests/wpt/web-platform-tests/css/css-align/gaps/gap-normal-used-001.html b/tests/wpt/web-platform-tests/css/css-align/gaps/gap-normal-used-001.html new file mode 100644 index 00000000000..3d7ab10b8cb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/gaps/gap-normal-used-001.html @@ -0,0 +1,29 @@ + + +CSS Box Alignment Test: used value of *-gap:normal on grid + + + + + + +

Test passes if there is a filled green square and no red.

+ +
+
diff --git a/tests/wpt/web-platform-tests/css/css-align/gaps/gap-normal-used-002.html b/tests/wpt/web-platform-tests/css/css-align/gaps/gap-normal-used-002.html new file mode 100644 index 00000000000..0b40646e7ca --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-align/gaps/gap-normal-used-002.html @@ -0,0 +1,33 @@ + + +CSS Box Alignment Test: used value of *-gap:normal on flexbox + + + + + + +

Test passes if there is a filled green square and no red.

+ +
+
diff --git a/tests/wpt/web-platform-tests/css/css-overflow/OWNERS b/tests/wpt/web-platform-tests/css/css-overflow/OWNERS new file mode 100644 index 00000000000..5c24843cf78 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-overflow/OWNERS @@ -0,0 +1,2 @@ +@frivoal +@dbaron diff --git a/tests/wpt/web-platform-tests/css/css-overflow/logical-overflow-001.html b/tests/wpt/web-platform-tests/css/css-overflow/logical-overflow-001.html new file mode 100644 index 00000000000..15bf57f793c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-overflow/logical-overflow-001.html @@ -0,0 +1,42 @@ + + +CSS Overflow Test: flow-relative versions of overflow-x and -y + + + + + + + +
+ +
+
+ + + diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-ref-005.html b/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-ref-005.html index 331239cb00e..151aecb752d 100644 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-ref-005.html +++ b/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-ref-005.html @@ -7,7 +7,7 @@ @@ -15,4 +15,4 @@
ལྷ་སའི་སྐད་ད་
ལྟ
ལྷ་སའི་སྐད་ད་
ལྟ
- \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-005.html b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-005.html index 758a245cb09..02f233587b0 100644 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-005.html +++ b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-005.html @@ -10,7 +10,7 @@ @@ -22,4 +22,4 @@ var sentenceWidth = document.getElementById('testspan').offsetWidth document.getElementById('testdiv').style.width = String(sentenceWidth - 5)+'px' - \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-transitions/transition-background-position-with-edge-offset.html b/tests/wpt/web-platform-tests/css/css-transitions/transition-background-position-with-edge-offset.html new file mode 100644 index 00000000000..9a74bebfb7a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-transitions/transition-background-position-with-edge-offset.html @@ -0,0 +1,49 @@ + + +CSS Transitions Test: transition-property - background-position + + + + + + + + +
+ + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/marker.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/marker.html new file mode 100644 index 00000000000..9b264613c82 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/marker.html @@ -0,0 +1,27 @@ + + +'marker-*' properties + + + + + + + + +
+ diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js index bf2b217177c..1b0a0d71669 100644 --- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js +++ b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/resources/testsuite.js @@ -152,6 +152,13 @@ const gTestSyntaxExamples = { } ], }, + '': { + description: 'a URL', + examples: [ + // TODO(https://github.com/w3c/css-houdini-drafts/issues/716): + // We can't test this until CSSURLValue is spec'd. + ], + }, '': { description: 'a transform', examples: [ diff --git a/tests/wpt/web-platform-tests/css/geometry/support/interfaces.js b/tests/wpt/web-platform-tests/css/geometry/support/interfaces.js index e5955d1092f..3dca6956a38 100644 --- a/tests/wpt/web-platform-tests/css/geometry/support/interfaces.js +++ b/tests/wpt/web-platform-tests/css/geometry/support/interfaces.js @@ -19,6 +19,8 @@ function doTest(idl) { DOMMatrixReadOnly: ["new DOMMatrixReadOnly()", "DOMMatrixReadOnly.fromMatrix({is2D: false})"], DOMMatrix: ["new DOMMatrix()", "DOMMatrix.fromMatrix({is2D: false})"], }); + idlArray.prevent_multiple_testing("DOMMatrixReadOnly"); + idlArray.prevent_multiple_testing("DOMMatrix"); idlArray.test(); done(); } diff --git a/tests/wpt/web-platform-tests/interfaces/geometry.idl b/tests/wpt/web-platform-tests/interfaces/geometry.idl index 556e8a5cdef..7ee2a5a0561 100644 --- a/tests/wpt/web-platform-tests/interfaces/geometry.idl +++ b/tests/wpt/web-platform-tests/interfaces/geometry.idl @@ -1,3 +1,7 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the Geometry Interfaces spec. +// See https://drafts.fxtf.org/geometry/ + [Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, optional unrestricted double z = 0, optional unrestricted double w = 1), Exposed=(Window,Worker), @@ -12,7 +16,7 @@ interface DOMPointReadOnly { DOMPoint matrixTransform(optional DOMMatrixInit matrix); - [Default] toJSON(); + [Default] object toJSON(); }; [Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, @@ -52,7 +56,7 @@ interface DOMRectReadOnly { readonly attribute unrestricted double bottom; readonly attribute unrestricted double left; - [Default] toJSON(); + [Default] object toJSON(); }; [Constructor(optional unrestricted double x = 0, optional unrestricted double y = 0, @@ -76,8 +80,7 @@ dictionary DOMRectInit { unrestricted double height = 0; }; -[NoInterfaceObject, - LegacyArrayClass] +[LegacyArrayClass] interface DOMRectList { readonly attribute unsigned long length; getter DOMRect? item(unsigned long index); @@ -97,7 +100,7 @@ interface DOMQuad { [SameObject] readonly attribute DOMPoint p4; [NewObject] DOMRect getBounds(); - [Default] toJSON(); + [Default] object toJSON(); }; dictionary DOMQuadInit { @@ -178,7 +181,7 @@ interface DOMMatrixReadOnly { [NewObject] Float64Array toFloat64Array(); [Exposed=Window] stringifier; - [Default] toJSON(); + [Default] object toJSON(); }; [Constructor(optional (DOMString or sequence) init), diff --git a/tests/wpt/web-platform-tests/interfaces/webaudio.idl b/tests/wpt/web-platform-tests/interfaces/web-audio-api.idl similarity index 99% rename from tests/wpt/web-platform-tests/interfaces/webaudio.idl rename to tests/wpt/web-platform-tests/interfaces/web-audio-api.idl index d20bc7fc559..2514dad45c3 100644 --- a/tests/wpt/web-platform-tests/interfaces/webaudio.idl +++ b/tests/wpt/web-platform-tests/interfaces/web-audio-api.idl @@ -1,3 +1,7 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the Web Audio API spec. +// See https://webaudio.github.io/web-audio-api/ + enum AudioContextState { "suspended", "running", diff --git a/tests/wpt/web-platform-tests/interfaces/webauthn.idl b/tests/wpt/web-platform-tests/interfaces/webauthn.idl index dcd1f87b5d3..2d2ef507feb 100644 --- a/tests/wpt/web-platform-tests/interfaces/webauthn.idl +++ b/tests/wpt/web-platform-tests/interfaces/webauthn.idl @@ -1,12 +1,16 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the Web Authentication spec. +// See https://w3c.github.io/webauthn/ + [SecureContext, Exposed=Window] interface PublicKeyCredential : Credential { [SameObject] readonly attribute ArrayBuffer rawId; [SameObject] readonly attribute AuthenticatorResponse response; - AuthenticationExtensions getClientExtensionResults(); + AuthenticationExtensionsClientOutputs getClientExtensionResults(); }; partial dictionary CredentialCreationOptions { - MakePublicKeyCredentialOptions publicKey; + PublicKeyCredentialCreationOptions publicKey; }; partial dictionary CredentialRequestOptions { @@ -31,7 +35,7 @@ interface AuthenticatorAttestationResponse : AuthenticatorResponse { interface AuthenticatorAssertionResponse : AuthenticatorResponse { [SameObject] readonly attribute ArrayBuffer authenticatorData; [SameObject] readonly attribute ArrayBuffer signature; - [SameObject] readonly attribute ArrayBuffer userHandle; + [SameObject] readonly attribute ArrayBuffer? userHandle; }; dictionary PublicKeyCredentialParameters { @@ -39,7 +43,7 @@ dictionary PublicKeyCredentialParameters { required COSEAlgorithmIdentifier alg; }; -dictionary MakePublicKeyCredentialOptions { +dictionary PublicKeyCredentialCreationOptions { required PublicKeyCredentialRpEntity rp; required PublicKeyCredentialUserEntity user; @@ -50,7 +54,7 @@ dictionary MakePublicKeyCredentialOptions { sequence excludeCredentials = []; AuthenticatorSelectionCriteria authenticatorSelection; AttestationConveyancePreference attestation = "none"; - AuthenticationExtensions extensions; + AuthenticationExtensionsClientInputs extensions; }; dictionary PublicKeyCredentialEntity { @@ -90,21 +94,31 @@ dictionary PublicKeyCredentialRequestOptions { USVString rpId; sequence allowCredentials = []; UserVerificationRequirement userVerification = "preferred"; - AuthenticationExtensions extensions; + AuthenticationExtensionsClientInputs extensions; }; -typedef record AuthenticationExtensions; +dictionary AuthenticationExtensionsClientInputs { +}; + +dictionary AuthenticationExtensionsClientOutputs { +}; + +typedef record AuthenticationExtensionsAuthenticatorInputs; dictionary CollectedClientData { required DOMString type; required DOMString challenge; required DOMString origin; - required DOMString hashAlgorithm; - DOMString tokenBindingId; - AuthenticationExtensions clientExtensions; - AuthenticationExtensions authenticatorExtensions; + TokenBinding tokenBinding; }; +dictionary TokenBinding { + required TokenBindingStatus status; + DOMString id; +}; + +enum TokenBindingStatus { "present", "supported", "not-supported" }; + enum PublicKeyCredentialType { "public-key" }; @@ -129,6 +143,85 @@ enum UserVerificationRequirement { "discouraged" }; -typedef sequence AuthenticatorSelectionList; +partial dictionary AuthenticationExtensionsClientInputs { + USVString appid; +}; -typedef BufferSource AAGUID; \ No newline at end of file +partial dictionary AuthenticationExtensionsClientOutputs { + boolean appid; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + USVString txAuthSimple; +}; + +partial dictionary AuthenticationExtensionsClientOutputs { + USVString txAuthSimple; +}; + +dictionary txAuthGenericArg { + required USVString contentType; // MIME-Type of the content, e.g., "image/png" + required ArrayBuffer content; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + txAuthGenericArg txAuthGeneric; +}; + +partial dictionary AuthenticationExtensionsClientOutputs { + ArrayBuffer txAuthGeneric; +}; + +typedef sequence AuthenticatorSelectionList; + +partial dictionary AuthenticationExtensionsClientInputs { + AuthenticatorSelectionList authnSel; +}; + +typedef BufferSource AAGUID; + +partial dictionary AuthenticationExtensionsClientOutputs { + boolean authnSel; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + boolean exts; +}; + +typedef sequence AuthenticationExtensionsSupported; + +partial dictionary AuthenticationExtensionsClientOutputs { + AuthenticationExtensionsSupported exts; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + boolean uvi; +}; + +partial dictionary AuthenticationExtensionsClientOutputs { + ArrayBuffer uvi; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + boolean loc; +}; + +partial dictionary AuthenticationExtensionsClientOutputs { + Coordinates loc; +}; + +partial dictionary AuthenticationExtensionsClientInputs { + boolean uvm; +}; + +typedef sequence UvmEntry; +typedef sequence UvmEntries; + +partial dictionary AuthenticationExtensionsClientOutputs { + UvmEntries uvm; +}; + +dictionary authenticatorBiometricPerfBounds{ + float FAR; + float FRR; + }; diff --git a/tests/wpt/web-platform-tests/interfaces/webrtc-pc.idl b/tests/wpt/web-platform-tests/interfaces/webrtc-pc.idl index d33562b642f..fde2ba02f80 100644 --- a/tests/wpt/web-platform-tests/interfaces/webrtc-pc.idl +++ b/tests/wpt/web-platform-tests/interfaces/webrtc-pc.idl @@ -1,15 +1,16 @@ -// IDL definition extracted from -// https://w3c.github.io/webrtc-pc/archives/20170605/webrtc.html +// GENERATED CONTENT - DO NOT EDIT +// Content of this file was automatically extracted from the WebRTC spec. +// See https://w3c.github.io/webrtc-pc/ dictionary RTCConfiguration { - sequence iceServers; - RTCIceTransportPolicy iceTransportPolicy = "all"; - RTCBundlePolicy bundlePolicy = "balanced"; - RTCRtcpMuxPolicy rtcpMuxPolicy = "require"; - DOMString peerIdentity; - sequence certificates; - [EnforceRange] - octet iceCandidatePoolSize = 0; + sequence iceServers; + RTCIceTransportPolicy iceTransportPolicy = "all"; + RTCBundlePolicy bundlePolicy = "balanced"; + RTCRtcpMuxPolicy rtcpMuxPolicy = "require"; + DOMString peerIdentity; + sequence certificates; + [EnforceRange] + octet iceCandidatePoolSize = 0; }; enum RTCIceCredentialType { @@ -18,14 +19,14 @@ enum RTCIceCredentialType { }; dictionary RTCOAuthCredential { - required DOMString macKey; - required DOMString accessToken; + required DOMString macKey; + required DOMString accessToken; }; dictionary RTCIceServer { required (DOMString or sequence) urls; DOMString username; - (DOMString or RTCOAuthCredential) credential; + (DOMString or RTCOAuthCredential) credential; RTCIceCredentialType credentialType = "password"; }; @@ -47,71 +48,16 @@ enum RTCRtcpMuxPolicy { }; dictionary RTCOfferAnswerOptions { - boolean voiceActivityDetection = true; + boolean voiceActivityDetection = true; }; dictionary RTCOfferOptions : RTCOfferAnswerOptions { - boolean iceRestart = false; - boolean offerToReceiveAudio; - boolean offerToReceiveVideo; + boolean iceRestart = false; }; -dictionary RTCAnswerOptions : RTCOfferAnswerOptions { + dictionary RTCAnswerOptions : RTCOfferAnswerOptions { }; -[Constructor(optional RTCConfiguration configuration)] -interface RTCPeerConnection : EventTarget { - Promise createOffer(optional RTCOfferOptions options); - Promise createAnswer(optional RTCAnswerOptions options); - Promise setLocalDescription(RTCSessionDescriptionInit description); - readonly attribute RTCSessionDescription? localDescription; - readonly attribute RTCSessionDescription? currentLocalDescription; - readonly attribute RTCSessionDescription? pendingLocalDescription; - Promise setRemoteDescription(RTCSessionDescriptionInit description); - readonly attribute RTCSessionDescription? remoteDescription; - readonly attribute RTCSessionDescription? currentRemoteDescription; - readonly attribute RTCSessionDescription? pendingRemoteDescription; - Promise addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate); - readonly attribute RTCSignalingState signalingState; - readonly attribute RTCIceGatheringState iceGatheringState; - readonly attribute RTCIceConnectionState iceConnectionState; - readonly attribute RTCPeerConnectionState connectionState; - readonly attribute boolean? canTrickleIceCandidates; - static sequence getDefaultIceServers(); - RTCConfiguration getConfiguration(); - void setConfiguration(RTCConfiguration configuration); - void close(); - attribute EventHandler onnegotiationneeded; - attribute EventHandler onicecandidate; - attribute EventHandler onicecandidateerror; - attribute EventHandler onsignalingstatechange; - attribute EventHandler oniceconnectionstatechange; - attribute EventHandler onicegatheringstatechange; - attribute EventHandler onconnectionstatechange; - attribute EventHandler onfingerprintfailure; -}; - -partial interface RTCPeerConnection { - Promise createOffer(RTCSessionDescriptionCallback successCallback, - RTCPeerConnectionErrorCallback failureCallback, - optional RTCOfferOptions options); - Promise setLocalDescription(RTCSessionDescriptionInit description, - VoidFunction successCallback, - RTCPeerConnectionErrorCallback failureCallback); - Promise createAnswer(RTCSessionDescriptionCallback successCallback, - RTCPeerConnectionErrorCallback failureCallback); - Promise setRemoteDescription(RTCSessionDescriptionInit description, - VoidFunction successCallback, - RTCPeerConnectionErrorCallback failureCallback); - Promise addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate, - VoidFunction successCallback, - RTCPeerConnectionErrorCallback failureCallback); -}; - -callback RTCPeerConnectionErrorCallback = void (DOMException error); - -callback RTCSessionDescriptionCallback = void (RTCSessionDescriptionInit description); - enum RTCSignalingState { "stable", "have-local-offer", @@ -141,11 +87,59 @@ enum RTCIceConnectionState { "checking", "connected", "completed", - "failed", "disconnected", + "failed", "closed" }; + [ Constructor (optional RTCConfiguration configuration), Exposed=Window] +interface RTCPeerConnection : EventTarget { + Promise createOffer (optional RTCOfferOptions options); + Promise createAnswer (optional RTCAnswerOptions options); + Promise setLocalDescription (RTCSessionDescriptionInit description); + readonly attribute RTCSessionDescription? localDescription; + readonly attribute RTCSessionDescription? currentLocalDescription; + readonly attribute RTCSessionDescription? pendingLocalDescription; + Promise setRemoteDescription (RTCSessionDescriptionInit description); + readonly attribute RTCSessionDescription? remoteDescription; + readonly attribute RTCSessionDescription? currentRemoteDescription; + readonly attribute RTCSessionDescription? pendingRemoteDescription; + Promise addIceCandidate ((RTCIceCandidateInit or RTCIceCandidate) candidate); + readonly attribute RTCSignalingState signalingState; + readonly attribute RTCIceGatheringState iceGatheringState; + readonly attribute RTCIceConnectionState iceConnectionState; + readonly attribute RTCPeerConnectionState connectionState; + readonly attribute boolean? canTrickleIceCandidates; + static sequence getDefaultIceServers (); + RTCConfiguration getConfiguration (); + void setConfiguration (RTCConfiguration configuration); + void close (); + attribute EventHandler onnegotiationneeded; + attribute EventHandler onicecandidate; + attribute EventHandler onicecandidateerror; + attribute EventHandler onsignalingstatechange; + attribute EventHandler oniceconnectionstatechange; + attribute EventHandler onicegatheringstatechange; + attribute EventHandler onconnectionstatechange; +}; + +partial interface RTCPeerConnection { + Promise createOffer (RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback, optional RTCOfferOptions options); + Promise setLocalDescription (RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); + Promise createAnswer (RTCSessionDescriptionCallback successCallback, RTCPeerConnectionErrorCallback failureCallback); + Promise setRemoteDescription (RTCSessionDescriptionInit description, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); + Promise addIceCandidate ((RTCIceCandidateInit or RTCIceCandidate) candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); +}; + + callback RTCPeerConnectionErrorCallback = void (DOMException error); + + callback RTCSessionDescriptionCallback = void (RTCSessionDescriptionInit description); + +partial dictionary RTCOfferOptions { + boolean offerToReceiveAudio; + boolean offerToReceiveVideo; + }; + enum RTCSdpType { "offer", "pranswer", @@ -153,10 +147,10 @@ enum RTCSdpType { "rollback" }; -[Constructor(RTCSessionDescriptionInit descriptionInitDict)] + [ Constructor (RTCSessionDescriptionInit descriptionInitDict), Exposed=Window] interface RTCSessionDescription { - readonly attribute RTCSdpType type; - readonly attribute DOMString sdp; + readonly attribute RTCSdpType type; + readonly attribute DOMString sdp; [Default] object toJSON(); }; @@ -165,30 +159,30 @@ dictionary RTCSessionDescriptionInit { DOMString sdp = ""; }; -[Constructor(optional RTCIceCandidateInit candidateInitDict)] + [ Constructor (optional RTCIceCandidateInit candidateInitDict), Exposed=Window] interface RTCIceCandidate { - readonly attribute DOMString candidate; - readonly attribute DOMString? sdpMid; - readonly attribute unsigned short? sdpMLineIndex; - readonly attribute DOMString? foundation; - readonly attribute RTCIceComponent? component; - readonly attribute unsigned long? priority; - readonly attribute DOMString? ip; - readonly attribute RTCIceProtocol? protocol; - readonly attribute unsigned short? port; - readonly attribute RTCIceCandidateType? type; - readonly attribute RTCIceTcpCandidateType? tcpType; - readonly attribute DOMString? relatedAddress; - readonly attribute unsigned short? relatedPort; - readonly attribute DOMString? usernameFragment; + readonly attribute DOMString candidate; + readonly attribute DOMString? sdpMid; + readonly attribute unsigned short? sdpMLineIndex; + readonly attribute DOMString? foundation; + readonly attribute RTCIceComponent? component; + readonly attribute unsigned long? priority; + readonly attribute DOMString? ip; + readonly attribute RTCIceProtocol? protocol; + readonly attribute unsigned short? port; + readonly attribute RTCIceCandidateType? type; + readonly attribute RTCIceTcpCandidateType? tcpType; + readonly attribute DOMString? relatedAddress; + readonly attribute unsigned short? relatedPort; + readonly attribute DOMString? usernameFragment; RTCIceCandidateInit toJSON(); }; dictionary RTCIceCandidateInit { - DOMString candidate = ""; - DOMString? sdpMid = null; - unsigned short? sdpMLineIndex = null; - DOMString usernameFragment; + DOMString candidate = ""; + DOMString? sdpMid = null; + unsigned short? sdpMLineIndex = null; + DOMString usernameFragment; }; enum RTCIceProtocol { @@ -209,29 +203,29 @@ enum RTCIceCandidateType { "relay" }; -[Constructor(DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict)] + [ Constructor (DOMString type, optional RTCPeerConnectionIceEventInit eventInitDict), Exposed=Window] interface RTCPeerConnectionIceEvent : Event { - readonly attribute RTCIceCandidate? candidate; - readonly attribute DOMString? url; + readonly attribute RTCIceCandidate? candidate; + readonly attribute DOMString? url; }; -dictionary RTCPeerConnectionIceEventInit : EventInit { - RTCIceCandidate? candidate; - DOMString? url; + dictionary RTCPeerConnectionIceEventInit : EventInit { + RTCIceCandidate? candidate; + DOMString? url; }; -[Constructor(DOMString type, RTCPeerConnectionIceErrorEventInit eventInitDict)] + [ Constructor (DOMString type, RTCPeerConnectionIceErrorEventInit eventInitDict), Exposed=Window] interface RTCPeerConnectionIceErrorEvent : Event { - readonly attribute DOMString hostCandidate; - readonly attribute DOMString url; - readonly attribute unsigned short errorCode; - readonly attribute USVString errorText; + readonly attribute DOMString hostCandidate; + readonly attribute DOMString url; + readonly attribute unsigned short errorCode; + readonly attribute USVString errorText; }; -dictionary RTCPeerConnectionIceErrorEventInit : EventInit { + dictionary RTCPeerConnectionIceErrorEventInit : EventInit { DOMString hostCandidate; DOMString url; - required unsigned short errorCode; + required unsigned short errorCode; USVString statusText; }; @@ -243,7 +237,7 @@ enum RTCPriorityType { }; partial interface RTCPeerConnection { - static Promise generateCertificate(AlgorithmIdentifier keygenAlgorithm); + static Promise generateCertificate (AlgorithmIdentifier keygenAlgorithm); }; dictionary RTCCertificateExpiration { @@ -251,29 +245,26 @@ dictionary RTCCertificateExpiration { DOMTimeStamp expires; }; -interface RTCCertificate { - readonly attribute DOMTimeStamp expires; - sequence getFingerprints(); - // At risk due to lack of implementers' interest. - AlgorithmIdentifier getAlgorithm(); +[Exposed=Window] interface RTCCertificate { + readonly attribute DOMTimeStamp expires; + static sequence getSupportedAlgorithms(); + sequence getFingerprints (); }; partial interface RTCPeerConnection { - sequence getSenders(); - sequence getReceivers(); - sequence getTransceivers(); - RTCRtpSender addTrack(MediaStreamTrack track, - MediaStream... streams); - void removeTrack(RTCRtpSender sender); - RTCRtpTransceiver addTransceiver((MediaStreamTrack or DOMString) trackOrKind, - optional RTCRtpTransceiverInit init); - attribute EventHandler ontrack; + sequence getSenders (); + sequence getReceivers (); + sequence getTransceivers (); + RTCRtpSender addTrack (MediaStreamTrack track, MediaStream... streams); + void removeTrack (RTCRtpSender sender); + RTCRtpTransceiver addTransceiver ((MediaStreamTrack or DOMString) trackOrKind, optional RTCRtpTransceiverInit init); + attribute EventHandler ontrack; }; dictionary RTCRtpTransceiverInit { - RTCRtpTransceiverDirection direction = "sendrecv"; - sequence streams; - sequence sendEncodings; + RTCRtpTransceiverDirection direction = "sendrecv"; + sequence streams = []; + sequence sendEncodings = []; }; enum RTCRtpTransceiverDirection { @@ -283,45 +274,42 @@ enum RTCRtpTransceiverDirection { "inactive" }; -interface RTCRtpSender { - readonly attribute MediaStreamTrack? track; - readonly attribute RTCDtlsTransport? transport; - readonly attribute RTCDtlsTransport? rtcpTransport; - // Feature at risk - static RTCRtpCapabilities getCapabilities(DOMString kind); - Promise setParameters(optional RTCRtpParameters parameters); - RTCRtpParameters getParameters(); - Promise replaceTrack(MediaStreamTrack withTrack); - Promise getStats(); +[Exposed=Window] interface RTCRtpSender { + readonly attribute MediaStreamTrack? track; + readonly attribute RTCDtlsTransport? transport; + readonly attribute RTCDtlsTransport? rtcpTransport; + static RTCRtpCapabilities getCapabilities (DOMString kind); + Promise setParameters (optional RTCRtpParameters parameters); + RTCRtpParameters getParameters (); + Promise replaceTrack (MediaStreamTrack? withTrack); + Promise getStats(); }; dictionary RTCRtpParameters { - DOMString transactionId; - sequence encodings; - sequence headerExtensions; - RTCRtcpParameters rtcp; - sequence codecs; - RTCDegradationPreference degradationPreference; + DOMString transactionId; + sequence encodings; + sequence headerExtensions; + RTCRtcpParameters rtcp; + sequence codecs; + RTCDegradationPreference degradationPreference; }; dictionary RTCRtpEncodingParameters { - unsigned long ssrc; - RTCRtpRtxParameters rtx; - RTCRtpFecParameters fec; - RTCDtxStatus dtx; - boolean active; - RTCPriorityType priority; - unsigned long ptime; - unsigned long maxBitrate; - double maxFramerate; - DOMString rid; - double scaleResolutionDownBy; + octet codecPayloadType; + RTCDtxStatus dtx; + boolean active = true; + RTCPriorityType priority = "low"; + unsigned long ptime; + unsigned long maxBitrate; + double maxFramerate; + DOMString rid; + double scaleResolutionDownBy; }; enum RTCDtxStatus { - "disabled", - "enabled" -}; + "disabled", + "enabled" + }; enum RTCDegradationPreference { "maintain-framerate", @@ -329,93 +317,81 @@ enum RTCDegradationPreference { "balanced" }; -dictionary RTCRtpRtxParameters { - unsigned long ssrc; -}; - -dictionary RTCRtpFecParameters { - unsigned long ssrc; -}; - dictionary RTCRtcpParameters { - DOMString cname; - boolean reducedSize; + DOMString cname; + boolean reducedSize; }; dictionary RTCRtpHeaderExtensionParameters { - DOMString uri; - unsigned short id; - boolean encrypted; + DOMString uri; + unsigned short id; + boolean encrypted; }; dictionary RTCRtpCodecParameters { - unsigned short payloadType; - DOMString mimeType; - unsigned long clockRate; - unsigned short channels; - DOMString sdpFmtpLine; + octet payloadType; + DOMString mimeType; + unsigned long clockRate; + unsigned short channels; + DOMString sdpFmtpLine; }; dictionary RTCRtpCapabilities { - sequence codecs; - sequence headerExtensions; + sequence codecs; + sequence headerExtensions; }; dictionary RTCRtpCodecCapability { - DOMString mimeType; - unsigned long clockRate; - unsigned short channels; - DOMString sdpFmtpLine; + DOMString mimeType; + unsigned long clockRate; + unsigned short channels; + DOMString sdpFmtpLine; }; dictionary RTCRtpHeaderExtensionCapability { - DOMString uri; + DOMString uri; }; -interface RTCRtpReceiver { - readonly attribute MediaStreamTrack track; - readonly attribute RTCDtlsTransport? transport; - readonly attribute RTCDtlsTransport? rtcpTransport; - // Feature at risk - static RTCRtpCapabilities getCapabilities(DOMString kind); - RTCRtpParameters getParameters(); - sequence getContributingSources(); - sequence getSynchronizationSources(); - Promise getStats(); +[Exposed=Window] interface RTCRtpReceiver { + readonly attribute MediaStreamTrack track; + readonly attribute RTCDtlsTransport? transport; + readonly attribute RTCDtlsTransport? rtcpTransport; + static RTCRtpCapabilities getCapabilities (DOMString kind); + RTCRtpParameters getParameters (); + sequence getContributingSources (); + sequence getSynchronizationSources (); + Promise getStats(); }; -interface RTCRtpContributingSource { - readonly attribute DOMHighResTimeStamp timestamp; - readonly attribute unsigned long source; - readonly attribute byte? audioLevel; +dictionary RTCRtpContributingSource { + required DOMHighResTimeStamp timestamp; + required unsigned long source; + double audioLevel; }; -interface RTCRtpSynchronizationSource { - readonly attribute DOMHighResTimeStamp timestamp; - readonly attribute unsigned long source; - readonly attribute byte audioLevel; - readonly attribute boolean? voiceActivityFlag; +dictionary RTCRtpSynchronizationSource : RTCRtpContributingSource { + boolean voiceActivityFlag; }; -interface RTCRtpTransceiver { - readonly attribute DOMString? mid; +[Exposed=Window] interface RTCRtpTransceiver { + readonly attribute DOMString? mid; [SameObject] - readonly attribute RTCRtpSender sender; + readonly attribute RTCRtpSender sender; [SameObject] - readonly attribute RTCRtpReceiver receiver; - readonly attribute boolean stopped; - readonly attribute RTCRtpTransceiverDirection direction; - readonly attribute RTCRtpTransceiverDirection? currentDirection; - void setDirection(RTCRtpTransceiverDirection direction); - void stop(); - void setCodecPreferences(sequence codecs); + readonly attribute RTCRtpReceiver receiver; + readonly attribute boolean stopped; + attribute RTCRtpTransceiverDirection direction; + readonly attribute RTCRtpTransceiverDirection? currentDirection; + void stop (); + void setCodecPreferences (sequence codecs); }; -interface RTCDtlsTransport { - readonly attribute RTCIceTransport transport; - readonly attribute RTCDtlsTransportState state; - sequence getRemoteCertificates(); - attribute EventHandler onstatechange; +[Exposed=Window] interface RTCDtlsTransport : EventTarget { + readonly attribute RTCIceTransport transport; + readonly attribute RTCDtlsTransportState state; + sequence getRemoteCertificates (); + attribute EventHandler onstatechange; + attribute EventHandler onerror; }; enum RTCDtlsTransportState { @@ -427,33 +403,33 @@ enum RTCDtlsTransportState { }; dictionary RTCDtlsFingerprint { - DOMString algorithm; - DOMString value; + DOMString algorithm; + DOMString value; }; -interface RTCIceTransport { - readonly attribute RTCIceRole role; - readonly attribute RTCIceComponent component; - readonly attribute RTCIceTransportState state; - readonly attribute RTCIceGathererState gatheringState; - sequence getLocalCandidates(); - sequence getRemoteCandidates(); - RTCIceCandidatePair? getSelectedCandidatePair(); - RTCIceParameters? getLocalParameters(); - RTCIceParameters? getRemoteParameters(); - attribute EventHandler onstatechange; - attribute EventHandler ongatheringstatechange; - attribute EventHandler onselectedcandidatepairchange; +[Exposed=Window] interface RTCIceTransport : EventTarget { + readonly attribute RTCIceRole role; + readonly attribute RTCIceComponent component; + readonly attribute RTCIceTransportState state; + readonly attribute RTCIceGathererState gatheringState; + sequence getLocalCandidates (); + sequence getRemoteCandidates (); + RTCIceCandidatePair? getSelectedCandidatePair (); + RTCIceParameters? getLocalParameters (); + RTCIceParameters? getRemoteParameters (); + attribute EventHandler onstatechange; + attribute EventHandler ongatheringstatechange; + attribute EventHandler onselectedcandidatepairchange; }; dictionary RTCIceParameters { - DOMString usernameFragment; - DOMString password; + DOMString usernameFragment; + DOMString password; }; dictionary RTCIceCandidatePair { - RTCIceCandidate local; - RTCIceCandidate remote; + RTCIceCandidate local; + RTCIceCandidate remote; }; enum RTCIceGathererState { @@ -467,8 +443,8 @@ enum RTCIceTransportState { "checking", "connected", "completed", - "failed", "disconnected", + "failed", "closed" }; @@ -482,13 +458,13 @@ enum RTCIceComponent { "rtcp" }; -[Constructor(DOMString type, RTCTrackEventInit eventInitDict)] + [ Constructor (DOMString type, RTCTrackEventInit eventInitDict), Exposed=Window] interface RTCTrackEvent : Event { - readonly attribute RTCRtpReceiver receiver; - readonly attribute MediaStreamTrack track; + readonly attribute RTCRtpReceiver receiver; + readonly attribute MediaStreamTrack track; [SameObject] - readonly attribute FrozenArray streams; - readonly attribute RTCRtpTransceiver transceiver; + readonly attribute FrozenArray streams; + readonly attribute RTCRtpTransceiver transceiver; }; dictionary RTCTrackEventInit : EventInit { @@ -499,51 +475,59 @@ dictionary RTCTrackEventInit : EventInit { }; partial interface RTCPeerConnection { - readonly attribute RTCSctpTransport? sctp; - RTCDataChannel createDataChannel(USVString label, - optional RTCDataChannelInit dataChannelDict); - attribute EventHandler ondatachannel; + readonly attribute RTCSctpTransport? sctp; + RTCDataChannel createDataChannel (USVString label, optional RTCDataChannelInit dataChannelDict); + attribute EventHandler ondatachannel; }; -interface RTCSctpTransport { - readonly attribute RTCDtlsTransport transport; - readonly attribute unrestricted double maxMessageSize; +[Exposed=Window] interface RTCSctpTransport { + readonly attribute RTCDtlsTransport transport; + readonly attribute RTCSctpTransportState state; + readonly attribute unrestricted double maxMessageSize; + attribute EventHandler onstatechange; }; -interface RTCDataChannel : EventTarget { - readonly attribute USVString label; - readonly attribute boolean ordered; - readonly attribute unsigned short? maxPacketLifeTime; - readonly attribute unsigned short? maxRetransmits; - readonly attribute USVString protocol; - readonly attribute boolean negotiated; - readonly attribute unsigned short? id; - readonly attribute RTCPriorityType priority; - readonly attribute RTCDataChannelState readyState; - readonly attribute unsigned long bufferedAmount; - attribute unsigned long bufferedAmountLowThreshold; - attribute EventHandler onopen; - attribute EventHandler onbufferedamountlow; - attribute EventHandler onerror; - attribute EventHandler onclose; - void close(); - attribute EventHandler onmessage; - attribute DOMString binaryType; - void send(USVString data); - void send(Blob data); - void send(ArrayBuffer data); - void send(ArrayBufferView data); +enum RTCSctpTransportState { + "new", + "connecting", + "connected", + "closed" +}; + +[Exposed=Window] interface RTCDataChannel : EventTarget { + readonly attribute USVString label; + readonly attribute boolean ordered; + readonly attribute unsigned short? maxPacketLifeTime; + readonly attribute unsigned short? maxRetransmits; + readonly attribute USVString protocol; + readonly attribute boolean negotiated; + readonly attribute unsigned short? id; + readonly attribute RTCPriorityType priority; + readonly attribute RTCDataChannelState readyState; + readonly attribute unsigned long bufferedAmount; + attribute unsigned long bufferedAmountLowThreshold; + attribute EventHandler onopen; + attribute EventHandler onbufferedamountlow; + attribute EventHandler onerror; + attribute EventHandler onclose; + void close (); + attribute EventHandler onmessage; + attribute DOMString binaryType; + void send (USVString data); + void send (Blob data); + void send (ArrayBuffer data); + void send (ArrayBufferView data); }; dictionary RTCDataChannelInit { - boolean ordered = true; - unsigned short maxPacketLifeTime; - unsigned short maxRetransmits; - USVString protocol = ""; - boolean negotiated = false; - [EnforceRange] - unsigned short id; - RTCPriorityType priority = "low"; + boolean ordered = true; + unsigned short maxPacketLifeTime; + unsigned short maxRetransmits; + USVString protocol = ""; + boolean negotiated = false; + [EnforceRange] + unsigned short id; + RTCPriorityType priority = "low"; }; enum RTCDataChannelState { @@ -553,59 +537,64 @@ enum RTCDataChannelState { "closed" }; -[Constructor(DOMString type, RTCDataChannelEventInit eventInitDict)] + [ Constructor (DOMString type, RTCDataChannelEventInit eventInitDict), Exposed=Window] interface RTCDataChannelEvent : Event { - readonly attribute RTCDataChannel channel; + readonly attribute RTCDataChannel channel; }; dictionary RTCDataChannelEventInit : EventInit { - required RTCDataChannel channel; + required RTCDataChannel channel; }; partial interface RTCRtpSender { - readonly attribute RTCDTMFSender? dtmf; + readonly attribute RTCDTMFSender? dtmf; }; -interface RTCDTMFSender : EventTarget { - void insertDTMF(DOMString tones, - optional unsigned long duration = 100, - optional unsigned long interToneGap = 70); - attribute EventHandler ontonechange; - readonly attribute DOMString toneBuffer; +[Exposed=Window] interface RTCDTMFSender : EventTarget { + void insertDTMF (DOMString tones, optional unsigned long duration = 100, optional unsigned long interToneGap = 70); + attribute EventHandler ontonechange; + readonly attribute boolean canInsertDTMF; + readonly attribute DOMString toneBuffer; }; -[Constructor(DOMString type, RTCDTMFToneChangeEventInit eventInitDict)] + [ Constructor (DOMString type, RTCDTMFToneChangeEventInit eventInitDict), Exposed=Window] interface RTCDTMFToneChangeEvent : Event { - readonly attribute DOMString tone; + readonly attribute DOMString tone; }; dictionary RTCDTMFToneChangeEventInit : EventInit { - required DOMString tone; + required DOMString tone; }; partial interface RTCPeerConnection { - Promise getStats(optional MediaStreamTrack? selector = null); -}; + Promise getStats (optional MediaStreamTrack? selector = null); + attribute EventHandler onstatsended; + }; -interface RTCStatsReport { +[Exposed=Window] interface RTCStatsReport { readonly maplike; }; dictionary RTCStats { - DOMHighResTimeStamp timestamp; - RTCStatsType type; - DOMString id; + required DOMHighResTimeStamp timestamp; + required RTCStatsType type; + required DOMString id; }; -[Global, - Exposed=RTCIdentityProviderGlobalScope] +[ Constructor (DOMString type, RTCStatsEventInit + eventInitDict), Exposed=Window] + interface RTCStatsEvent : Event { + readonly attribute RTCStatsReport report; + }; + +[Global, Exposed=RTCIdentityProviderGlobalScope] interface RTCIdentityProviderGlobalScope : WorkerGlobalScope { - readonly attribute RTCIdentityProviderRegistrar rtcIdentityProvider; + readonly attribute RTCIdentityProviderRegistrar rtcIdentityProvider; }; [Exposed=RTCIdentityProviderGlobalScope] interface RTCIdentityProviderRegistrar { - void register(RTCIdentityProvider idp); + void register (RTCIdentityProvider idp); }; dictionary RTCIdentityProvider { @@ -613,12 +602,11 @@ dictionary RTCIdentityProvider { required ValidateAssertionCallback validateAssertion; }; -callback GenerateAssertionCallback = Promise (DOMString contents, - DOMString origin, - RTCIdentityProviderOptions options); + callback GenerateAssertionCallback = Promise + (DOMString contents, DOMString origin, RTCIdentityProviderOptions options); -callback ValidateAssertionCallback = Promise (DOMString assertion, - DOMString origin); + callback ValidateAssertionCallback = Promise + (DOMString assertion, DOMString origin); dictionary RTCIdentityAssertionResult { required RTCIdentityProviderDetails idp; @@ -636,12 +624,11 @@ dictionary RTCIdentityValidationResult { }; partial interface RTCPeerConnection { - void setIdentityProvider(DOMString provider, - optional RTCIdentityProviderOptions options); - Promise getIdentityAssertion(); - readonly attribute Promise peerIdentity; - readonly attribute DOMString? idpLoginUrl; - readonly attribute DOMString? idpErrorInfo; + void setIdentityProvider (DOMString provider, optional RTCIdentityProviderOptions options); + Promise getIdentityAssertion (); + readonly attribute Promise peerIdentity; + readonly attribute DOMString? idpLoginUrl; + readonly attribute DOMString? idpErrorInfo; }; dictionary RTCIdentityProviderOptions { @@ -650,41 +637,45 @@ dictionary RTCIdentityProviderOptions { DOMString peerIdentity; }; -[Constructor(DOMString idp, DOMString name)] +[Constructor(DOMString idp, DOMString name), Exposed=Window] interface RTCIdentityAssertion { attribute DOMString idp; attribute DOMString name; }; partial dictionary MediaStreamConstraints { - DOMString peerIdentity; + DOMString peerIdentity; }; partial interface MediaStreamTrack { - readonly attribute boolean isolated; - attribute EventHandler onisolationchange; + readonly attribute boolean isolated; + attribute EventHandler onisolationchange; }; enum RTCErrorDetailType { - "data-channel-failure", - "idp-bad-script-failure", - "idp-execution-failure", - "idp-load-failure", - "idp-need-login", - "idp-timeout", - "idp-tls-failure", - "idp-token-expired", - "idp-token-invalid", - "sctp-failure", - "sdp-syntax-error" -}; + "data-channel-failure", + "dtls-failure", + "fingerprint-failure", + "idp-bad-script-failure", + "idp-execution-failure", + "idp-load-failure", + "idp-need-login", + "idp-timeout", + "idp-tls-failure", + "idp-token-expired", + "idp-token-invalid", + "sctp-failure", + "sdp-syntax-error", + "hardware-encoder-not-available", + "hardware-encoder-error" + }; [Exposed=Window, - Constructor(DOMString type, RTCErrorEventInit eventInitDict)] + Constructor (DOMString type, RTCErrorEventInit eventInitDict)] interface RTCErrorEvent : Event { - readonly attribute RTCError? error; + readonly attribute RTCError? error; }; dictionary RTCErrorEventInit : EventInit { - RTCError? error = null; + RTCError? error = null; }; diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html index ab3e2a1280b..65fa5171b3d 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html @@ -19,24 +19,6 @@ function get_boundary(headers) { return ''; } -function create_file_system_file(file_name, data) { - return new Promise(function(resolve, reject) { - webkitRequestFileSystem(TEMPORARY, 1024, function(fs) { - fs.root.getFile( - file_name, {create: true, exclusive: true}, - function(fileEntry) { - fileEntry.createWriter(function(fileWriter) { - fileWriter.onwriteend = function(e) { - fileEntry.file(function(file) { resolve(file); }); - }; - var blob = new Blob([data], {type: 'text/plain'}); - fileWriter.write(blob); - }); - }, function(e) { reject(e); }); - }, function(e) { reject(e); }); - }); -} - function xhr_send(url_base, method, data, with_credentials) { return new Promise(function(resolve, reject) { var xhr = new XMLHttpRequest(); diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py index 2b872e6f8f9..dab11d9a5d0 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/run.py +++ b/tests/wpt/web-platform-tests/tools/wpt/run.py @@ -117,13 +117,13 @@ def check_environ(product): if platform.uname()[0] != "Windows": message = """Missing hosts file configuration. Run -python wpt make-hosts-file >> %s - -from a shell with Administrator privileges.""" % hosts_path +./wpt make-hosts-file | sudo tee -a %s""" % hosts_path else: message = """Missing hosts file configuration. Run -./wpt make-hosts-file | sudo tee -a %s""" % hosts_path +python wpt make-hosts-file >> %s + +from a shell with Administrator privileges.""" % hosts_path raise WptrunError(message) diff --git a/tests/wpt/web-platform-tests/uievents/mouse/mouse_buttons_back_forward-manual.html b/tests/wpt/web-platform-tests/uievents/mouse/mouse_buttons_back_forward-manual.html new file mode 100644 index 00000000000..7a676db4c44 --- /dev/null +++ b/tests/wpt/web-platform-tests/uievents/mouse/mouse_buttons_back_forward-manual.html @@ -0,0 +1,36 @@ + + + + + Mouse Button Back/Forward + + + + + + + +

Test Description: Tests that the mouseup event is prevented. +
    +
  1. Click the back mouse button
  2. +
  3. Click the back mouse forward
  4. +
+

+ + diff --git a/tests/wpt/web-platform-tests/wasm/many-memories.window.js b/tests/wpt/web-platform-tests/wasm/many-memories.window.js deleted file mode 100644 index 042e645fa70..00000000000 --- a/tests/wpt/web-platform-tests/wasm/many-memories.window.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2017 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// This test makes sure browsers behave reasonably when asked to allocate a -// larger number of WebAssembly.Memory objects at once. -test(function() { - let memories = []; - try { - for (let i = 0; i < 20; i++) { - memories.push(new WebAssembly.Memory({initial: 1})); - } - } catch (e) { - if (e instanceof RangeError) { - return; - } - throw e; - } -}, "WebAssembly#CreateManyMemories"); diff --git a/tests/wpt/web-platform-tests/webaudio/idlharness.https.html b/tests/wpt/web-platform-tests/webaudio/idlharness.https.html index 9e15e4798de..aed91706eb9 100644 --- a/tests/wpt/web-platform-tests/webaudio/idlharness.https.html +++ b/tests/wpt/web-platform-tests/webaudio/idlharness.https.html @@ -20,7 +20,7 @@ promise_test(async t => { // Needed for MediaStream, MediaStreamTrack '/interfaces/mediacapture-main.idl', - '/interfaces/webaudio.idl' + '/interfaces/web-audio-api.idl' ].map(url => fetch(url).then(response => response.text()))); const idl_array = new IdlArray(); diff --git a/tests/wpt/web-platform-tests/webauthn/interfaces.https.any.js b/tests/wpt/web-platform-tests/webauthn/interfaces.https.any.js new file mode 100644 index 00000000000..bd5f9dc4a28 --- /dev/null +++ b/tests/wpt/web-platform-tests/webauthn/interfaces.https.any.js @@ -0,0 +1,30 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +'use strict'; + +if (self.importScripts) { + importScripts('/resources/testharness.js'); + importScripts('/resources/WebIDLParser.js', '/resources/idlharness.js'); +} + +// https://w3c.github.io/webauthn/ + +promise_test(async () => { + const webauthnIdl = await fetch('/interfaces/webauthn.idl').then(r => r.text()); + + const idlArray = new IdlArray(); + idlArray.add_idls(webauthnIdl); + + // static IDL tests + idlArray.add_untested_idls('interface CredentialCreationOptions {};'); + idlArray.add_untested_idls('interface CredentialRequestOptions {};'); + idlArray.add_untested_idls("interface Navigator { };"); + // TODO: change to "tested" for real browsers? + idlArray.add_untested_idls("partial interface Navigator { readonly attribute WebAuthentication authentication; };"); + idlArray.add_objects({ + WebAuthentication: ["navigator.authentication"] + }); + idlArray.test(); + done(); +}, 'WebAuthn interfaces.'); diff --git a/tests/wpt/web-platform-tests/webauthn/interfaces.https.html b/tests/wpt/web-platform-tests/webauthn/interfaces.https.html deleted file mode 100644 index c232659c80e..00000000000 --- a/tests/wpt/web-platform-tests/webauthn/interfaces.https.html +++ /dev/null @@ -1,60 +0,0 @@ - - -WebAuthn WebIDL Tests - - - - - - - - - - diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html index 04d4dedc2c8..c6c8ce3e9a8 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-track-stats.https.html @@ -424,6 +424,52 @@ 'senderReport should contain remote-candidate stats'); }, 'RTCRtpSender.getStats() contains only outbound-rtp and related stats'); + promise_test(async function() { + const caller = new RTCPeerConnection(); + const callee = new RTCPeerConnection(); + let [tracks, streams] = await getUserMediaTracksAndStreams(2); + let sender = caller.addTrack(tracks[0], streams[0]); + callee.addTrack(tracks[1], streams[1]); + exchangeIceCandidates(caller, callee); + await doSignalingHandshake(caller, callee); + await onIceConnectionStateCompleted(caller); + let receiver = caller.getReceivers()[0]; + + // Obtain inbound and outbound RTP stream stats on a full stats report. + let fullReport = await caller.getStats(); + let outboundTrackStats = findStatsByTypeAndId( + fullReport, 'track', sender.track.id); + let outboundStats = findStatsByTypeAndMember( + fullReport, 'outbound-rtp', 'trackId', outboundTrackStats.id); + assert_true(outboundStats != null, 'Has stats for outbound RTP stream'); + let inboundTrackStats = findStatsByTypeAndId( + fullReport, 'track', receiver.track.id); + let inboundStats = findStatsByTypeAndMember( + fullReport, 'inbound-rtp', 'trackId', inboundTrackStats.id); + assert_true(inboundStats != null, 'Has stats for inbound RTP stream'); + + // Perform stats selection algorithm with receiver selector. The result + // should contain the inbound-rtp but not the outbound-rtp. + let receiverReport = await receiver.getStats(); + assert_true(receiverReport.has(inboundStats.id)); + assert_false(receiverReport.has(outboundStats.id)); + + // Validate the stats graph, ensuring all stats objects are reachable and + // valid from the outbound-rtp stats. + validateStatsGraph(receiverReport, receiverReport.get(inboundStats.id)); + // Ensure that the stats graph contains some expected dictionaries. + assert_equals(findStatsOfType(receiverReport, 'track').length, 1, + 'receiverReport should contain track stats'); + assert_equals(findStatsOfType(receiverReport, 'transport').length, 1, + 'receiverReport should contain transport stats'); + assert_equals(findStatsOfType(receiverReport, 'candidate-pair').length, 1, + 'receiverReport should contain candidate-pair stats'); + assert_equals(findStatsOfType(receiverReport, 'local-candidate').length, 1, + 'receiverReport should contain local-candidate stats'); + assert_equals(findStatsOfType(receiverReport, 'remote-candidate').length, 1, + 'receiverReport should contain remote-candidate stats'); + }, 'RTCRtpReceiver.getStats() contains only inbound-rtp and related stats'); + // Helpers. function findStatsByTypeAndId(report, type, identifier) { diff --git a/tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getStats.html b/tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getStats.https.html similarity index 55% rename from tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getStats.html rename to tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getStats.https.html index c30c9613c69..f36c85967bb 100644 --- a/tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getStats.html +++ b/tests/wpt/web-platform-tests/webrtc/RTCRtpReceiver-getStats.https.html @@ -3,6 +3,7 @@ RTCRtpReceiver.prototype.getStats + diff --git a/tests/wpt/web-platform-tests/webrtc/interfaces.https.html b/tests/wpt/web-platform-tests/webrtc/interfaces.https.html index e6e6846a7ca..2cb1ecfa3e4 100644 --- a/tests/wpt/web-platform-tests/webrtc/interfaces.https.html +++ b/tests/wpt/web-platform-tests/webrtc/interfaces.https.html @@ -107,13 +107,20 @@ })); } - // Main function to do the IDL test, using fetched IDL text - function doIdlTest(idlText) { + promise_test(async t => { + await asyncInit(); + const idlArray = new IdlArray(); + let webrtcIdl = fetch('/interfaces/webrtc-pc.idl').then(r => r.text()); + let mediacaptureMainIdl = fetch('/interfaces/mediacapture-main.idl').then(r => r.text()); + + idlArray.add_untested_idls(mediacaptureMainIdl, { only: ['MediaStreamConstraints'] }); + idlArray.add_idls(webrtcIdl); + idlArray.add_untested_idls('interface EventHandler {};'); + idlArray.add_idls('interface EventTarget {};'); idlArray.add_idls('interface MediaStreamTrack : EventTarget {};'); - idlArray.add_idls(idlText); idlArray.add_objects({ 'RTCPeerConnection': [`new RTCPeerConnection()`], @@ -159,13 +166,6 @@ }); idlArray.test(); - } - - promise_test(t => { - return asyncInit() - .then(() => fetch('/interfaces/webrtc-pc.idl')) - .then(response => response.text()) - .then(doIdlTest); }, 'Main test driver'); /*