diff options
author | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2019-08-07 10:23:18 +0000 |
---|---|---|
committer | WPT Sync Bot <josh+wptsync@joshmatthews.net> | 2019-08-07 14:09:56 +0000 |
commit | b09e82fc9f9a1504a115dbcccf7976fdaf977483 (patch) | |
tree | 3e65eb07678976a092733cca0da11c422188bfd2 | |
parent | b6cdf931987e71707c217f2953e0b2a62a92868c (diff) | |
download | servo-b09e82fc9f9a1504a115dbcccf7976fdaf977483.tar.gz servo-b09e82fc9f9a1504a115dbcccf7976fdaf977483.zip |
Update web-platform-tests to revision 66b4fab488695f98d15ad75b549e302a8d29f865
161 files changed, 3699 insertions, 665 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini index 6a3af4e2ece..947e223fb28 100644 --- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini @@ -14,9 +14,6 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL - [Revoke blob URL after calling fetch, fetch should succeed] - expected: FAIL - [url-with-fetch.any.html] [Untitled] diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 0674499a11c..18d6e509efd 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -134251,6 +134251,18 @@ {} ] ], + "css/css-paint-api/background-repeat-x.https.html": [ + [ + "css/css-paint-api/background-repeat-x.https.html", + [ + [ + "/css/css-paint-api/background-repeat-x-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-paint-api/geometry-background-image-001.https.html": [ [ "css/css-paint-api/geometry-background-image-001.https.html", @@ -252435,6 +252447,9 @@ "css/css-paint-api/background-image-tiled-ref.html": [ [] ], + "css/css-paint-api/background-repeat-x-ref.html": [ + [] + ], "css/css-paint-api/geometry-background-image-001-ref.html": [ [] ], @@ -266586,25 +266601,25 @@ "fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff": [ [] ], - "fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff": [ + "fonts/math/fraction-denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000.woff": [ [] ], "fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff": [ [] ], - "fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff": [ + "fonts/math/fraction-denominatorshiftdown3000-axisheight1000-rulethickness1000.woff": [ [] ], "fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff": [ [] ], - "fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff": [ + "fonts/math/fraction-numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000.woff": [ [] ], "fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff": [ [] ], - "fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff": [ + "fonts/math/fraction-numeratorshiftup11000-axisheight1000-rulethickness1000.woff": [ [] ], "fonts/math/fraction-rulethickness10000.woff": [ @@ -266748,10 +266763,10 @@ "fonts/math/stack-axisheight7000.woff": [ [] ], - "fonts/math/stack-bottomdisplaystyleshiftdown5000.woff": [ + "fonts/math/stack-bottomdisplaystyleshiftdown5000-axisheight1000.woff": [ [] ], - "fonts/math/stack-bottomshiftdown6000.woff": [ + "fonts/math/stack-bottomshiftdown6000-axisheight1000.woff": [ [] ], "fonts/math/stack-displaystylegapmin4000.woff": [ @@ -266760,10 +266775,10 @@ "fonts/math/stack-gapmin8000.woff": [ [] ], - "fonts/math/stack-topdisplaystyleshiftup3000.woff": [ + "fonts/math/stack-topdisplaystyleshiftup3000-axisheight1000.woff": [ [] ], - "fonts/math/stack-topshiftup9000.woff": [ + "fonts/math/stack-topshiftup9000-axisheight1000.woff": [ [] ], "fonts/math/stretchstack-bottomshiftdown3000.woff": [ @@ -270813,12 +270828,33 @@ "html/infrastructure/safe-passing-of-structured-data/resources/echo-iframe.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/resources/echo-iframe.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html.headers": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/blank.html": [ [] ], @@ -270831,51 +270867,123 @@ "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js.headers": [ + [] + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/test-incrementer.js": [ [] ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/test-sab.js": [ [] ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.headers": [ + [] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.headers": [ + [] + ], "html/infrastructure/terminology/plugins/sample.txt": [ [] ], @@ -286170,6 +286278,9 @@ "webaudio/the-audio-api/the-audioprocessingevent-interface/.gitkeep": [ [] ], + "webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html.headers": [ + [] + ], "webaudio/the-audio-api/the-audioworklet-interface/processors/active-processing.js": [ [] ], @@ -310406,6 +310517,12 @@ {} ] ], + "css/CSS2/floats-clear/adjoining-float-new-fc-crash.html": [ + [ + "css/CSS2/floats-clear/adjoining-float-new-fc-crash.html", + {} + ] + ], "css/CSS2/floats/computed-float-position-absolute.html": [ [ "css/CSS2/floats/computed-float-position-absolute.html", @@ -349306,9 +349423,9 @@ {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html", {} ] ], @@ -349318,53 +349435,43 @@ {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html", {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.any.js": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.any.sharedworker.html", - { - "script_metadata": [ - [ - "global", - "!default,dedicatedworker,sharedworker" - ], - [ - "script", - "resources/test-incrementer.js" - ] - ] - } + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html", + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html": [ + [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html", + {} + ] + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js": [ + [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.html", + {} ], [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.any.worker.html", - { - "script_metadata": [ - [ - "global", - "!default,dedicatedworker,sharedworker" - ], - [ - "script", - "resources/test-incrementer.js" - ] - ] - } + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.worker.html", + {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html", {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html", {} ] ], @@ -349402,21 +349509,21 @@ {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html", {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html", {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html", {} ] ], @@ -349426,21 +349533,21 @@ {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html", {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html", {} ] ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html": [ [ - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html", {} ] ], @@ -362695,6 +362802,12 @@ {} ] ], + "mathml/relations/css-styling/not-participating-to-parent-layout.html": [ + [ + "mathml/relations/css-styling/not-participating-to-parent-layout.html", + {} + ] + ], "mathml/relations/css-styling/padding-border-margin/border-001.html": [ [ "mathml/relations/css-styling/padding-border-margin/border-001.html", @@ -398930,6 +399043,60 @@ {} ] ], + "svg/animations/discard-on-discard.html": [ + [ + "svg/animations/discard-on-discard.html", + {} + ] + ], + "svg/animations/force-use-shadow-tree-recreation-while-animating.html": [ + [ + "svg/animations/force-use-shadow-tree-recreation-while-animating.html", + {} + ] + ], + "svg/animations/multiple-animations-ending.html": [ + [ + "svg/animations/multiple-animations-ending.html", + {} + ] + ], + "svg/animations/multiple-animations-fill-freeze.html": [ + [ + "svg/animations/multiple-animations-fill-freeze.html", + {} + ] + ], + "svg/animations/multiple-begin-additive-animation.html": [ + [ + "svg/animations/multiple-begin-additive-animation.html", + {} + ] + ], + "svg/animations/non-additive-type-by-animation.html": [ + [ + "svg/animations/non-additive-type-by-animation.html", + {} + ] + ], + "svg/animations/non-additive-type-from-by-animation.html": [ + [ + "svg/animations/non-additive-type-from-by-animation.html", + {} + ] + ], + "svg/animations/remove-animation-element-while-animation-is-running.html": [ + [ + "svg/animations/remove-animation-element-while-animation-is-running.html", + {} + ] + ], + "svg/animations/repeatn-remove-add-animation.html": [ + [ + "svg/animations/repeatn-remove-add-animation.html", + {} + ] + ], "svg/animations/scripted/end-element-on-inactive-element.svg": [ [ "svg/animations/scripted/end-element-on-inactive-element.svg", @@ -398942,6 +399109,90 @@ {} ] ], + "svg/animations/single-values-animation.html": [ + [ + "svg/animations/single-values-animation.html", + {} + ] + ], + "svg/animations/svgangle-animation-deg-to-grad.html": [ + [ + "svg/animations/svgangle-animation-deg-to-grad.html", + {} + ] + ], + "svg/animations/svgangle-animation-deg-to-rad.html": [ + [ + "svg/animations/svgangle-animation-deg-to-rad.html", + {} + ] + ], + "svg/animations/svgangle-animation-grad-to-deg.html": [ + [ + "svg/animations/svgangle-animation-grad-to-deg.html", + {} + ] + ], + "svg/animations/svgangle-animation-grad-to-rad.html": [ + [ + "svg/animations/svgangle-animation-grad-to-rad.html", + {} + ] + ], + "svg/animations/svgangle-animation-rad-to-deg.html": [ + [ + "svg/animations/svgangle-animation-rad-to-deg.html", + {} + ] + ], + "svg/animations/svgangle-animation-rad-to-grad.html": [ + [ + "svg/animations/svgangle-animation-rad-to-grad.html", + {} + ] + ], + "svg/animations/svgboolean-animation-1.html": [ + [ + "svg/animations/svgboolean-animation-1.html", + {} + ] + ], + "svg/animations/svgenum-animation-1.html": [ + [ + "svg/animations/svgenum-animation-1.html", + {} + ] + ], + "svg/animations/svgenum-animation-10.html": [ + [ + "svg/animations/svgenum-animation-10.html", + {} + ] + ], + "svg/animations/svgenum-animation-11.html": [ + [ + "svg/animations/svgenum-animation-11.html", + {} + ] + ], + "svg/animations/svgenum-animation-12.html": [ + [ + "svg/animations/svgenum-animation-12.html", + {} + ] + ], + "svg/animations/svgenum-animation-13.html": [ + [ + "svg/animations/svgenum-animation-13.html", + {} + ] + ], + "svg/animations/svgenum-animation-2.html": [ + [ + "svg/animations/svgenum-animation-2.html", + {} + ] + ], "svg/animations/svgenum-animation-3.html": [ [ "svg/animations/svgenum-animation-3.html", @@ -445552,7 +445803,7 @@ "support" ], "README.md": [ - "f89061f1674a7008b016031ffae627cfe6795515", + "5054889dc167880a75bc1b9bd3a49abed666b78f", "support" ], "WebCryptoAPI/META.yml": [ @@ -491811,6 +492062,10 @@ "426b47537bf1069121c82dbbb8d4d034ff437244", "reftest" ], + "css/CSS2/floats-clear/adjoining-float-new-fc-crash.html": [ + "b220a48422f45ce0d5a03099142c5052cc31bb7e", + "testharness" + ], "css/CSS2/floats-clear/adjoining-float-new-fc.html": [ "587bbf51b7da9a1d620f35e0b2ece720ddd4ee1e", "reftest" @@ -557772,11 +558027,11 @@ "testharness" ], "css/css-grid/parsing/grid-auto-columns-invalid.html": [ - "e7a965f34ad35f32589b6fc895d65946812e0749", + "40b6059a7e8b564a4aef5393a7be77cbaa1ff4a2", "testharness" ], "css/css-grid/parsing/grid-auto-columns-valid.html": [ - "ba1f5f60d657ebd2629c94b90c971bb081ea7917", + "e26d085a2d95c2ad06a77b25ca2ab0b90c294fc6", "testharness" ], "css/css-grid/parsing/grid-auto-flow-computed.html": [ @@ -557796,11 +558051,11 @@ "testharness" ], "css/css-grid/parsing/grid-auto-rows-invalid.html": [ - "7fceaa0f1639494847cc06a7f93876992d620b3c", + "4111e2563365579b3810c701a782df54dce3c61e", "testharness" ], "css/css-grid/parsing/grid-auto-rows-valid.html": [ - "cf63e2b7d52a6fffc5577bc55e37dfd6aa0cd5b8", + "d4dcdb12b177cf97c3aa030cbb19c2ce2ae6d25d", "testharness" ], "css/css-grid/parsing/grid-template-areas-computed.html": [ @@ -563139,6 +563394,14 @@ "11647c9228c8fb2f10bf5e3aeb25967b40478c45", "reftest" ], + "css/css-paint-api/background-repeat-x-ref.html": [ + "3df0c5417d7be47e22bd6145be9d13b9e5fbc9b8", + "support" + ], + "css/css-paint-api/background-repeat-x.https.html": [ + "2eccfd2a7d0b6e894a66f1afedc6969090f8ad9c", + "reftest" + ], "css/css-paint-api/geometry-background-image-001-ref.html": [ "83edae100ee4ecd02315147ddf96ef61f34e875d", "support" @@ -611668,7 +611931,7 @@ "support" ], "docs/running-tests/from-local-system.md": [ - "5427ded7ec99f4f3d6214cfc7535093933b5374b", + "0ee71765891f9493d96e7d788e8dc63383cd4b58", "support" ], "docs/running-tests/from-web.md": [ @@ -611704,11 +611967,11 @@ "support" ], "docs/writing-tests/file-names.md": [ - "220e4ab33dcfc5ed835d522ef5801f8f8f8504c5", + "a01ee06de7bdc17958a63d0d1e72d2a936bf30a9", "support" ], "docs/writing-tests/general-guidelines.md": [ - "63942b07c6736657183bc1478b45f3147e9a7c98", + "b39a77d1c7a2eabaa2aa340b832950e92ddc9719", "support" ], "docs/writing-tests/h2tests.md": [ @@ -611772,7 +612035,7 @@ "support" ], "docs/writing-tests/testharness.md": [ - "9f063f83fcd4fca2ff1afd347f8c3cbfcda3783f", + "d2ec64c834fec80f50e5b3d2cd06e05de790d9a5", "support" ], "docs/writing-tests/visual.md": [ @@ -618792,7 +619055,7 @@ "testharness" ], "fetch/corb/script-resource-with-nonsniffable-types.tentative.sub.html": [ - "bf42d0eaf685d2d1bcdb3b9a0276daf2aae2268f", + "4cbdd7b99e6b4bae045951733d61a794c476571c", "testharness" ], "fetch/corb/style-css-mislabeled-as-html-nosniff.sub.html": [ @@ -619667,32 +619930,32 @@ "e4d381edaf259a15b24c55a0100ce9cd05444967", "support" ], - "fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff": [ - "3d90e64302a7d0d9708329ef41ae62d441c53e04", + "fonts/math/fraction-denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000.woff": [ + "28e41f5cfb39a864dde00ca1e5ba9100786d062b", "support" ], "fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff": [ "ab648f5eb66369415831d25d7eedc7305205b351", "support" ], - "fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff": [ - "0b7efbaf70647351f336fa5bc416fed4dc856593", + "fonts/math/fraction-denominatorshiftdown3000-axisheight1000-rulethickness1000.woff": [ + "f0e0d5cbc2befa80d41c48ad9794e4aa431736b9", "support" ], "fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff": [ "2e910bbf42147fa041e79f80a12e3bd1b375ecff", "support" ], - "fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff": [ - "920c81eb1bf7bf82a613c4aa27972a09765f2ee5", + "fonts/math/fraction-numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000.woff": [ + "d6f530d8e104b880d83973817c137a9c69d0264c", "support" ], "fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff": [ "1b5d60bb14457cf9ee639f7d248ae57268ec0b44", "support" ], - "fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff": [ - "3e70cd29a344d195edf4ded1cc67ced91a23d2e1", + "fonts/math/fraction-numeratorshiftup11000-axisheight1000-rulethickness1000.woff": [ + "d26853979607b2772597b8b9d5df28d3f45dc957", "support" ], "fonts/math/fraction-rulethickness10000.woff": [ @@ -619883,12 +620146,12 @@ "7a9dc5d4cb1bbc758d2ecf34641e331e9ac7acb0", "support" ], - "fonts/math/stack-bottomdisplaystyleshiftdown5000.woff": [ - "8761585484b83e3dad6488e99340825bcdb872d1", + "fonts/math/stack-bottomdisplaystyleshiftdown5000-axisheight1000.woff": [ + "d8f8ae48a6d4c24ba17ed9185b769a8956418002", "support" ], - "fonts/math/stack-bottomshiftdown6000.woff": [ - "96ebce2da516621dae35145f49245bc490deb8e4", + "fonts/math/stack-bottomshiftdown6000-axisheight1000.woff": [ + "a3a491dbaf1f066ee4d564468c6107d324d9a988", "support" ], "fonts/math/stack-displaystylegapmin4000.woff": [ @@ -619899,12 +620162,12 @@ "a4428d1d49bdfccce2ae95b417ae2c902edb86d8", "support" ], - "fonts/math/stack-topdisplaystyleshiftup3000.woff": [ - "556226f12265581701190efd0bd198586ee55139", + "fonts/math/stack-topdisplaystyleshiftup3000-axisheight1000.woff": [ + "bb286182e47cc5ba7142b78425c5652fb74d6dcc", "support" ], - "fonts/math/stack-topshiftup9000.woff": [ - "d036e893087cef4dc4ad62681b968f9ef75be9c8", + "fonts/math/stack-topshiftup9000-axisheight1000.woff": [ + "52bc04458caae71c2ef71250e4c0fd9ac4290726", "support" ], "fonts/math/stretchstack-bottomshiftdown3000.woff": [ @@ -628683,14 +628946,26 @@ "c4fd5824a1c617c21fe8b92483b388d586edf06e", "support" ], + "html/infrastructure/safe-passing-of-structured-data/resources/echo-iframe.html.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js": [ "cbbde8a73c8c2a63cc97cbe2b6cd7c6d81585b5c", "support" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.html": [ + "html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html": [ "8902de49cfb10293ddb6246dc834268621e0dcad", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success.https.html": [ "d3e9956368a5ce538ff6e57d6f1febcf8d882a59", "testharness" @@ -628699,18 +628974,42 @@ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", "support" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html": [ "869f49043e9736bf62c2ec60257019175d2961f6", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.any.js": [ - "5388ebcc39b22946957250004577a1966c264a5a", + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html": [ + "dd221502b6f6c31d56852df2519ec1f162352135", + "testharness" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html": [ + "aeee3705aea4bf54d2073392451df2d238045627", + "testharness" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js": [ + "96276d747047fc72d02a22055edf2986ab2163b9", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html": [ "b39e37fd4966440dc01c2efab42ea99f30574f68", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/blank.html": [ "eec1b2cc8e36c3fb130563ec9545b1084fa84426", "support" @@ -628720,65 +629019,129 @@ "support" ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers": [ - "6604450991a122e3e241e40b1b9e0516c525389d", + "1528bf05e6368b00600b23c23042bf0d61985917", "support" ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js": [ "310e0e9358446acaec0f13d8e2fb4437316953c2", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js": [ "36369cde5004b40b079f00377cc54b83c52941ee", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html": [ "a6dd70177584c9115c24beb281e7681110c07624", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html.headers": [ + "56d0ac342824434c621fb50f9351e2e74aa077cb", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html": [ "6f3f284ae24b1d5c1ea432766bed2cb2445a9a42", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html.headers": [ + "1528bf05e6368b00600b23c23042bf0d61985917", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html": [ "6f27ad7d5becee543f00093b47fbe65fa46614dd", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html.headers": [ + "1528bf05e6368b00600b23c23042bf0d61985917", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html": [ "e583b5c4161be811b30f6ae2ebdc93215beb3fe0", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js": [ "c74fd26d3fd6e85a48c147f771ed4689eea5e9ac", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js": [ "5801bd2b97c8b5b7e300a24a9e729c40c5355eed", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html": [ "fe93cc0c4b0fe5b86bf1a12de84fb3fc48ea08a5", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html.headers": [ + "1528bf05e6368b00600b23c23042bf0d61985917", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html": [ "fad52ce9de3977c077b5a22e72ee7b23837ea302", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html.headers": [ + "1528bf05e6368b00600b23c23042bf0d61985917", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html": [ "7971022b2cdc315d598761a3694838494c2884a8", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html.headers": [ + "1528bf05e6368b00600b23c23042bf0d61985917", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html": [ "d374515bdc736658432c92da42d7bc0765daf09e", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html.headers": [ + "1528bf05e6368b00600b23c23042bf0d61985917", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js": [ + "9befc9006e706853d9fab259e631a39f3193c095", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js": [ "c6f2046878cce32fdc01596ca369930b71e13938", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js": [ "8472318abd53207ec56b3f5988fb0a49d0c006a4", "support" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js.headers": [ + "6604450991a122e3e241e40b1b9e0516c525389d", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/test-incrementer.js": [ "2bdd2bae66e178680c2604826ed27d6818c47334", "support" @@ -628787,10 +629150,14 @@ "6d6efda00db263f7ba86f80ad94744a0777f6ea9", "support" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html": [ "49d341f47f9bfebe37a78876ae1367766793c5c2", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-idb.any.js": [ "4eb25eb85467fd3e9b9a41b251a8df825608838b", "testharness" @@ -628799,34 +629166,62 @@ "2c3fb7be034b0c315c4add66790bcfed30bcecc7", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html": [ "9205d01df26e3274692f48aa76d7ffceba9e51ac", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html": [ "98145310f610f0ca88af938872e9ea2103de600c", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html": [ "cd67e5b2c9553a9172959c1ba7df5b96b7091a33", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html": [ "ff7449a931775116d51f0d016194c14b84ecc466", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html": [ "023cb5acdef1c144dbad4ebefd0af23fc6c17d79", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html": [ "e25fc9002d02d3c1177447012fcfc9f77381bda7", "testharness" ], - "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html": [ + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html": [ "4b86f9befa6a04c03211a7f30e9cb2d1a63ad06d", "testharness" ], + "html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js": [ "2fb2f7d266096fe58f2e8de9c9311b6d5a611278", "testharness" @@ -642532,11 +642927,11 @@ "reftest" ], "mathml/presentation-markup/fractions/frac-parameters-1.html": [ - "b8bc405107bd643519fef9e0fb0dba1ba0a66762", + "ba47897c111b33f439fe9fde2e2ecb707c7b5585", "testharness" ], "mathml/presentation-markup/fractions/frac-parameters-2.html": [ - "ce2d299f281b639c1e4026caa9354a8bc8c5298d", + "9c363866de08ab15202cab10e014a25fdd7e2f0d", "testharness" ], "mathml/presentation-markup/fractions/frac-parameters-gap-001-ref.html": [ @@ -643007,6 +643402,10 @@ "fa8bea41f470bbe83441bdea2693cd16b9b01320", "reftest" ], + "mathml/relations/css-styling/not-participating-to-parent-layout.html": [ + "89389fc668234cc46bb58e33a099b2c04cc675b5", + "testharness" + ], "mathml/relations/css-styling/padding-border-margin/border-001.html": [ "784491cf2e1bf60ea7c9edc951b9252d903d592f", "testharness" @@ -643244,11 +643643,11 @@ "support" ], "mathml/support/layout-comparison.js": [ - "b1a68995178410d3d0181b9981a0a2ab602ff3b2", + "f9111d02ee31871f68e2793c684258b826fd4e3d", "support" ], "mathml/support/mathml-fragments.js": [ - "013171cf8c2af515d69d60d58795dedcd75780bd", + "7c7b003e9e683a2770520eeb82a42a0dd1307c9f", "support" ], "mathml/tools/axisheight.py": [ @@ -643256,7 +643655,7 @@ "support" ], "mathml/tools/fractions.py": [ - "8652806b2971b90293e5586c3f40b12d79a70fb2", + "42cfe468219ce658cfe3943cd78e38ce70a9cdc7", "support" ], "mathml/tools/largeop.py": [ @@ -643288,7 +643687,7 @@ "support" ], "mathml/tools/stacks.py": [ - "81f79befb69082fd0a4a26ebc9ed9283662c11b9", + "18626291336352157b8b450dfaac77caf37cfd89", "support" ], "mathml/tools/stretchstacks.py": [ @@ -655200,7 +655599,7 @@ "testharness" ], "pointerevents/pointerevent_sequence_at_implicit_release_on_drag.html": [ - "9b1de2270e4eb7e35d1ff1054a0a5dddf677da5b", + "52f9e439a4b7d1529456ba47d5905656afa245d7", "testharness" ], "pointerevents/pointerevent_setpointercapture_disconnected.html": [ @@ -655244,7 +655643,7 @@ "testharness" ], "pointerevents/pointerevent_touch-action-auto-css_touch.html": [ - "e995ccd5d6e1d4c23a3df075208d794f2b66edbe", + "c486d77c1119128d7ad87c5c83aea43ebfe379e7", "testharness" ], "pointerevents/pointerevent_touch-action-button-none-test_touch.html": [ @@ -655260,11 +655659,11 @@ "testharness" ], "pointerevents/pointerevent_touch-action-inherit_child-none_touch.html": [ - "4f9e75d3ce5524e6251b29876b801eb9fd132034", + "dc234cbef3d87373ad0bf4277b94f6f021f9a9e6", "testharness" ], "pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html": [ - "62fc8c22c0712135235c3d3a5e6c9e1c73ed3641", + "c2f4bd35aebbb67194f4cc17d3d52709d63f732a", "testharness" ], "pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-y_touch.html": [ @@ -655272,11 +655671,11 @@ "testharness" ], "pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html": [ - "a1fefe16982316546b2cb0a7bf14362fe21f7145", + "3ec5998b54d1677dee7dc15b6a6c5cec1750a55d", "testharness" ], "pointerevents/pointerevent_touch-action-inherit_parent-none_touch.html": [ - "d525fe6ccd16c9ff1de275b845441617d0b3a3fc", + "04db243676fd2f454421d10b6a7e6a1cef4e3e04", "testharness" ], "pointerevents/pointerevent_touch-action-keyboard.html": [ @@ -655288,23 +655687,23 @@ "manual" ], "pointerevents/pointerevent_touch-action-none-css_touch.html": [ - "5e963abfe0ff9519dea3286012374c1721c9acbc", + "2ff161a915c95d1c14916fede40ca76439813cc9", "testharness" ], "pointerevents/pointerevent_touch-action-pan-x-css_touch.html": [ - "ebdc180792ce7b529ae7c168679d53c909b5e817", + "d2b147da0a0157bb29c50b32185d51b65be23c45", "testharness" ], "pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html": [ - "ef59c9951cdfd7ffcde73ebe223a8d35f5893da4", + "e081cacbe427524d915083dbfb124f197ab551c8", "testharness" ], "pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html": [ - "0c88054379538b4287c9157124f68b9cbff82234", + "b80035c98dfb84d568a913a75872419c1fe9e6a6", "testharness" ], "pointerevents/pointerevent_touch-action-pan-y-css_touch.html": [ - "b6444ede33472509421e9e55f06eb0f9c6284bb8", + "adf502f1d8e0b3d856ea34f968b75e70428efca7", "testharness" ], "pointerevents/pointerevent_touch-action-rotated-divs_touch-manual.html": [ @@ -655332,7 +655731,7 @@ "testharness" ], "pointerevents/pointerlock/pointerevent_movementxy.html": [ - "2d6147dae562af7efadacee9dfb44cc080005742", + "260ef4829cba212e77ad487f8e82d69d9e9e8e73", "testharness" ], "pointerevents/pointerlock/pointerevent_movementxy_with_pointerlock.html": [ @@ -671959,6 +672358,42 @@ "ee86b537ae987483687cc8ba6181db82f99ab162", "support" ], + "svg/animations/discard-on-discard.html": [ + "4a6b9f9368dcb020120f502e4528860beb5f14c6", + "testharness" + ], + "svg/animations/force-use-shadow-tree-recreation-while-animating.html": [ + "7a60e0280baa67ef8731b7bdc737788d326c3c24", + "testharness" + ], + "svg/animations/multiple-animations-ending.html": [ + "a9b7853bb0ed49a11af24d020766248ebd7d4bbe", + "testharness" + ], + "svg/animations/multiple-animations-fill-freeze.html": [ + "d4a71dcac286f5bcd97b3b3ce6642e58e75f3d54", + "testharness" + ], + "svg/animations/multiple-begin-additive-animation.html": [ + "9e75bdf17a449df09e72986c95bd3493e56f9221", + "testharness" + ], + "svg/animations/non-additive-type-by-animation.html": [ + "b596f735446a61592774b89569d80e776f8a39be", + "testharness" + ], + "svg/animations/non-additive-type-from-by-animation.html": [ + "e974e38177526e2e4bd8344712c37b00dc2e2bda", + "testharness" + ], + "svg/animations/remove-animation-element-while-animation-is-running.html": [ + "764d25b69f158e028d8ec9fe14e1c43840d00925", + "testharness" + ], + "svg/animations/repeatn-remove-add-animation.html": [ + "f192d27dfbd99352b6730b45be2a98f097d88f56", + "testharness" + ], "svg/animations/scripted/end-element-on-inactive-element.svg": [ "34be9b9781f707d488e284c3285b82009557366b", "testharness" @@ -671967,6 +672402,62 @@ "86a0a40fa2de116c5b2076641180b24688d56f9b", "testharness" ], + "svg/animations/single-values-animation.html": [ + "40aa3461866cf4c32316d86216dcfe4298be7718", + "testharness" + ], + "svg/animations/svgangle-animation-deg-to-grad.html": [ + "7a8146336879a8dccaf8e663d7556e408a8e0048", + "testharness" + ], + "svg/animations/svgangle-animation-deg-to-rad.html": [ + "b8ad7300cfa03083409b99ab40299ef6be9ac7dd", + "testharness" + ], + "svg/animations/svgangle-animation-grad-to-deg.html": [ + "dd5822db8122bf9cf327967faf4afaefbe86805b", + "testharness" + ], + "svg/animations/svgangle-animation-grad-to-rad.html": [ + "28bef66d0ff3372f255b3383cb2bec790d0281cb", + "testharness" + ], + "svg/animations/svgangle-animation-rad-to-deg.html": [ + "412f384cc7b1b9c85ebc72eabc3648b9c0a164d7", + "testharness" + ], + "svg/animations/svgangle-animation-rad-to-grad.html": [ + "d27c052be2e1a45afe9a05a9939b4aea72db89a8", + "testharness" + ], + "svg/animations/svgboolean-animation-1.html": [ + "3e3de673a3c34432b85dd8f630acaeb1f5de93c6", + "testharness" + ], + "svg/animations/svgenum-animation-1.html": [ + "05b75e9ad81d5e979834ef25a42ab9f3a42f1d12", + "testharness" + ], + "svg/animations/svgenum-animation-10.html": [ + "e645ea5066fcb24dc90e3f026be57ac5b9f5e175", + "testharness" + ], + "svg/animations/svgenum-animation-11.html": [ + "ebf8409f2e08a05748d588bb58c0d3592cb378fb", + "testharness" + ], + "svg/animations/svgenum-animation-12.html": [ + "bd60bbc20c42c8000d3d8459d47c03775c7211be", + "testharness" + ], + "svg/animations/svgenum-animation-13.html": [ + "c6dbb0c44dece98c0b4b63e2733636631e4648f3", + "testharness" + ], + "svg/animations/svgenum-animation-2.html": [ + "a1e27a5ef3e60003dedb3440ef4e9b972f696ccd", + "testharness" + ], "svg/animations/svgenum-animation-3.html": [ "5ed9f5aa8819510f8a7701e5edb7d00fb716aa70", "testharness" @@ -681932,7 +682423,7 @@ "support" ], "tools/wptserve/README.md": [ - "30a7dccc93ef197d51e3ce99eb78c2e114d1653e", + "6821dee38a498a472cf71861ac25a8cda12e17aa", "support" ], "tools/wptserve/docs/Makefile": [ @@ -685608,7 +686099,7 @@ "support" ], "webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html": [ - "4f9a998c6ded83d564cbb1f8dc3e1edf0de3efb7", + "20780d94b730acf18f4d6ca93fe4abff1a6111db", "testharness" ], "webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-getChannelData.html": [ @@ -685928,9 +686419,13 @@ "testharness" ], "webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html": [ - "8194d1977ad452390efb870197057bcf48fad499", + "a5dd004981157c8791c391fbb71e4aa2620559c8", "testharness" ], + "webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html.headers": [ + "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", + "support" + ], "webaudio/the-audio-api/the-audioworklet-interface/audioworklet-suspend.https.html": [ "89d361d22f35ffc6e7fbff6abdfc60c57a1d8ebb", "testharness" diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini index a426a9dffbc..130c0181e43 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini @@ -1079,9 +1079,3 @@ [text-indent percentage(%) / values] expected: FAIL - [margin-right length(in) / values] - expected: FAIL - - [margin-right length(cm) / values] - expected: FAIL - diff --git a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini index 7f17425c4aa..5d20389c8e9 100644 --- a/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini +++ b/tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini @@ -56,6 +56,3 @@ [background-position length(px) / events] expected: FAIL - [font-size length(em) / events] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini new file mode 100644 index 00000000000..e6e1f29e274 --- /dev/null +++ b/tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini @@ -0,0 +1,2 @@ +[matchMedia-display-none-iframe.html] + expected: ERROR diff --git a/tests/wpt/metadata/fetch/content-type/response.window.js.ini b/tests/wpt/metadata/fetch/content-type/response.window.js.ini index bb5d08a24ad..a3d8088b086 100644 --- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini @@ -312,21 +312,9 @@ [<iframe>: separate response Content-Type: */* text/html] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*] - expected: FAIL - - [<iframe>: combined response Content-Type: */* text/html] - expected: FAIL - [<iframe>: combined response Content-Type: text/html */*] expected: FAIL - [<iframe>: separate response Content-Type: text/html */*;charset=gbk] - expected: FAIL - - [<iframe>: combined response Content-Type: text/html */*;charset=gbk] - expected: FAIL - [<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html] expected: FAIL @@ -336,6 +324,9 @@ [<iframe>: combined response Content-Type: text/html;x=" text/plain] expected: FAIL - [<iframe>: separate response Content-Type: text/plain */*;charset=gbk] + [<iframe>: combined response Content-Type: text/html;" text/plain] + expected: FAIL + + [<iframe>: separate response Content-Type: text/html;" \\" text/plain] expected: FAIL diff --git a/tests/wpt/metadata/fetch/content-type/script.window.js.ini b/tests/wpt/metadata/fetch/content-type/script.window.js.ini index 279734168dc..5c001592859 100644 --- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini +++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini @@ -56,6 +56,6 @@ [separate text/javascript x/x] expected: FAIL - [separate text/javascript;charset=windows-1252 text/javascript] + [separate text/javascript;charset=windows-1252 error text/javascript] expected: FAIL diff --git a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini index 536384f36e1..a6c8ded6195 100644 --- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini +++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini @@ -11,6 +11,9 @@ [X-Content-Type-Options%3A%20nosniff%0C] expected: FAIL - [X-Content-Type-Options%3A%20%2Cnosniff] + [X-Content-Type-Options%3A%20%22nosniFF%22] + expected: FAIL + + [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini new file mode 100644 index 00000000000..87b07c3e670 --- /dev/null +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini @@ -0,0 +1,4 @@ +[traverse_the_history_1.html] + [Multiple history traversals from the same task] + expected: FAIL + diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini deleted file mode 100644 index dc2e45516de..00000000000 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[traverse_the_history_5.html] - [Multiple history traversals, last would be aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini index e02f179ec25..bf50d59df41 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini @@ -1,24 +1,5 @@ [open-features-negative-innerwidth-innerheight.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`] expected: FAIL - [features "innerheight=-404.5" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerwidth=-404.5" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerwidth=-404" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerheight=-404e1" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerheight=-404" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerwidth=-404e1" should NOT set "width=404"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini index 23eefb8eaf9..e150c9d848f 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini @@ -1,24 +1,5 @@ [open-features-negative-screenx-screeny.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for legacy `screenx`, `screeny`] expected: FAIL - [features "screenx=-204" should NOT set "left=204"] - expected: TIMEOUT - - [features "screeny=-204" should NOT set "top=204"] - expected: TIMEOUT - - [features "screeny=-204.5" should NOT set "top=204"] - expected: TIMEOUT - - [features "screeny=-0" should NOT set "top=204"] - expected: TIMEOUT - - [features "screenx=-0" should NOT set "left=204"] - expected: TIMEOUT - - [features "screenx=-204.5" should NOT set "left=204"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini index 940516ddd33..ad8840fbb68 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini @@ -1,24 +1,5 @@ [open-features-negative-top-left.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for `top`, `left`] expected: FAIL - [features "top=-204" should NOT set "top=204"] - expected: TIMEOUT - - [features "top=-204.5" should NOT set "top=204"] - expected: TIMEOUT - - [features "left=-204" should NOT set "left=204"] - expected: TIMEOUT - - [features "top=-0" should NOT set "top=204"] - expected: TIMEOUT - - [features "left=-204.5" should NOT set "left=204"] - expected: TIMEOUT - - [features "left=-0" should NOT set "left=204"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini index 9027336b453..d1ed9088b2b 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini @@ -1,24 +1,5 @@ [open-features-negative-width-height.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: negative values for `width`, `height`] expected: FAIL - [features "height=-404" should NOT set "height=404"] - expected: TIMEOUT - - [features "height=-404e1" should NOT set "height=404"] - expected: TIMEOUT - - [features "height=-404.5" should NOT set "height=404"] - expected: TIMEOUT - - [features "width=-404" should NOT set "width=404"] - expected: TIMEOUT - - [features "width=-404e1" should NOT set "width=404"] - expected: TIMEOUT - - [features "width=-404.5" should NOT set "width=404"] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini index 4e44584b123..a70e9dbad4d 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini @@ -1,48 +1,32 @@ [open-features-non-integer-height.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `height`] expected: FAIL [features "height=405*3" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405.32" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405e1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405/5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405^4" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405.5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405e-1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405 " should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "height=405LLl" should set "height=405"] - expected: TIMEOUT - - [features "height=/404" should NOT set "height=404"] - expected: TIMEOUT - - [top=0,left=0,width=401,: absence of feature "height" should be treated same as "height=0"] - expected: TIMEOUT - - [top=0,left=0: absence of feature "height" should be treated same as "height=0"] - expected: TIMEOUT - - [features "height=_404" should NOT set "height=404"] - expected: TIMEOUT - - [features "height=L404" should NOT set "height=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini index fcaeae5336d..779531b4a98 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-innerheight.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `innerheight`] expected: FAIL [features "innerheight=405e-1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405LLl" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405^4" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405e1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405 " should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405/5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405.32" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405.5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "innerheight=405*3" should set "height=405"] - expected: TIMEOUT - - [features "innerheight=_404" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerheight=L404" should NOT set "height=404"] - expected: TIMEOUT - - [features "innerheight=/404" should NOT set "height=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini index 42327fedd27..7a1b258d52e 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-innerwidth.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `innerwidth`] expected: FAIL [features "innerwidth=405e-1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405*3" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405.5" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405e1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405.32" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405 " should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405LLl" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405/5" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "innerwidth=405^4" should set "width=405"] - expected: TIMEOUT - - [features "innerwidth=/404" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerwidth=_404" should NOT set "width=404"] - expected: TIMEOUT - - [features "innerwidth=L404" should NOT set "width=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini index a8e4fe06618..caba4124f0b 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-left.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `left`] expected: FAIL [features "left=105e1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105 " should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105/5" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105e-1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105^4" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105LLl" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105.32" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105*3" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "left=105.5" should set "left=105"] - expected: TIMEOUT - - [features "left=L104" should NOT set "left=104"] - expected: TIMEOUT - - [features "left=/104" should NOT set "left=104"] - expected: TIMEOUT - - [features "left=_104" should NOT set "left=104"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini index 64a08faf0e6..9ace8a4cbdb 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-screenx.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `screenx`] expected: FAIL [features "screenx=105.5" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105e1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105 " should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105*3" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105e-1" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105^4" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105LLl" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105/5" should set "left=105"] - expected: TIMEOUT + expected: FAIL [features "screenx=105.32" should set "left=105"] - expected: TIMEOUT - - [features "screenx=_104" should NOT set "left=104"] - expected: TIMEOUT - - [features "screenx=L104" should NOT set "left=104"] - expected: TIMEOUT - - [features "screenx=/104" should NOT set "left=104"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini index 4f22ef4ef29..a82bd0f981a 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-screeny.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for legacy feature `screeny`] expected: FAIL [features "screeny=405^4" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405e-1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405LLl" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405e1" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405 " should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405/5" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405*3" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405.32" should set "height=405"] - expected: TIMEOUT + expected: FAIL [features "screeny=405.5" should set "height=405"] - expected: TIMEOUT - - [features "screeny=_404" should NOT set "height=404"] - expected: TIMEOUT - - [features "screeny=L404" should NOT set "height=404"] - expected: TIMEOUT - - [features "screeny=/404" should NOT set "height=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini index 8540f53d8d6..10f617db69e 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini @@ -1,42 +1,32 @@ [open-features-non-integer-top.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `top`] expected: FAIL [features "top=105/5" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105*3" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105LLl" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105e-1" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105.32" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105e1" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105 " should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105^4" should set "top=105"] - expected: TIMEOUT + expected: FAIL [features "top=105.5" should set "top=105"] - expected: TIMEOUT - - [features "top=/104" should NOT set "top=104"] - expected: TIMEOUT - - [features "top=_104" should NOT set "top=104"] - expected: TIMEOUT - - [features "top=L104" should NOT set "top=104"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini index 9d841e61bc0..28f93ee71b5 100644 --- a/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini +++ b/tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini @@ -1,48 +1,32 @@ [open-features-non-integer-width.html] type: testharness - expected: TIMEOUT [HTML: window.open `features`: non-integer values for feature `width`] expected: FAIL [features "width=405^4" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405.5" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405e1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405 " should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405.32" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405LLl" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405*3" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405e-1" should set "width=405"] - expected: TIMEOUT + expected: FAIL [features "width=405/5" should set "width=405"] - expected: TIMEOUT - - [top=0,left=0: absence of feature "width" should be treated same as "width=0"] - expected: TIMEOUT - - [features "width=_404" should NOT set "width=404"] - expected: TIMEOUT - - [top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"] - expected: TIMEOUT - - [features "width=/404" should NOT set "width=404"] - expected: TIMEOUT - - [features "width=L404" should NOT set "width=404"] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.ini new file mode 100644 index 00000000000..963e810897a --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.ini @@ -0,0 +1,4 @@ +[broadcastchannel-success-and-failure.https.html] + [SharedArrayBuffer cannot cross agent clusters, BroadcastChannel edition] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.ini new file mode 100644 index 00000000000..2f3c72920df --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.ini @@ -0,0 +1,10 @@ +[identity-not-preserved.https.html] + [postMessaging to an iframe and back does not give back the same SharedArrayBuffer] + expected: FAIL + + [postMessaging to this window does not give back the same SharedArrayBuffer (but does use the same backing block)] + expected: FAIL + + [postMessaging to a worker and back does not give back the same SharedArrayBuffer] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.ini new file mode 100644 index 00000000000..ae5d111a16c --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.ini @@ -0,0 +1,4 @@ +[nested-sharedworker-success.https.html] + [nested-sharedworker-success] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.ini new file mode 100644 index 00000000000..16464a698ff --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.ini @@ -0,0 +1,4 @@ +[nested-worker-success.https.html] + [postMessaging to a dedicated sub-worker allows them to see each others' modifications] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js.ini new file mode 100644 index 00000000000..dcef0b456e4 --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js.ini @@ -0,0 +1,18 @@ +[no-coop-coep.https.any.worker.html] + [SharedArrayBuffer over MessageChannel without COOP+COEP] + expected: FAIL + + [SharedArrayBuffer over BroadcastChannel without COOP+COEP] + expected: FAIL + + +[no-coop-coep.https.any.html] + [SharedArrayBuffer over MessageChannel without COOP+COEP] + expected: FAIL + + [SharedArrayBuffer over postMessage() without COOP+COEP] + expected: FAIL + + [SharedArrayBuffer over BroadcastChannel without COOP+COEP] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.ini new file mode 100644 index 00000000000..043c0d4720d --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.ini @@ -0,0 +1,10 @@ +[no-transferring.https.html] + [Trying to transfer a SharedArrayBuffer to a worker throws] + expected: FAIL + + [Trying to transfer a SharedArrayBuffer through a MessagePort throws] + expected: FAIL + + [Trying to transfer a SharedArrayBuffer to this window throws] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.ini new file mode 100644 index 00000000000..dfe9a4f6bce --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.ini @@ -0,0 +1,4 @@ +[window-domain-success.https.sub.html] + [postMessaging to a same-origin-domain (but not same-origin) iframe allows them to see each others' modifications] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini new file mode 100644 index 00000000000..b9e9ec22ccf --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini @@ -0,0 +1,5 @@ +[window-iframe-messagechannel-success.https.html] + expected: TIMEOUT + [postMessaging to a same-origin iframe via MessageChannel allows them to see each others' modifications] + expected: TIMEOUT + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.ini new file mode 100644 index 00000000000..4c883362e83 --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.ini @@ -0,0 +1,4 @@ +[window-messagechannel-success.https.html] + [postMessaging to a dedicated worker via MessageChannel allows them to see each others' modifications] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.ini new file mode 100644 index 00000000000..31fba2bc9cd --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.ini @@ -0,0 +1,4 @@ +[window-sharedworker-failure.https.html] + [SharedArrayBuffer cannot cross agent clusters, shared worker edition] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.ini new file mode 100644 index 00000000000..2ceabfb79eb --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.ini @@ -0,0 +1,4 @@ +[window-similar-but-cross-origin-success.https.sub.html] + [postMessaging to a not same-origin-domain, but similar origin, iframe allows them to see each others' modifications] + expected: FAIL + diff --git a/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.ini b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.ini new file mode 100644 index 00000000000..fe97323d2e8 --- /dev/null +++ b/tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.ini @@ -0,0 +1,40 @@ +[window-simple-success.https.html] + [postMessaging to a dedicated worker allows them to see each others' modifications with Uint16Array] + expected: FAIL + + [postMessaging to a dedicated worker allows them to see each others' modifications with Uint8ClampedArray] + expected: FAIL + + [postMessaging to a dedicated worker allows them to see each others' modifications with Uint8Array] + expected: FAIL + + [postMessaging to a dedicated worker allows them to see each others' modifications with Int16Array] + expected: FAIL + + [postMessaging to a dedicated worker allows them to see each others' modifications with Int8Array] + expected: FAIL + + [postMessaging to a dedicated worker allows them to see each others' modifications with DataView] + expected: FAIL + + [postMessaging to a dedicated worker allows them to see each others' modifications with Int32Array] + expected: FAIL + + [postMessaging to a dedicated worker allows them to see each others' modifications with Uint32Array] + expected: FAIL + + [postMessaging to a dedicated worker allows them to see each others' modifications with Float64Array] + expected: FAIL + + [postMessaging to a same-origin iframe allows them to see each others' modifications] + expected: FAIL + + [postMessaging to a same-origin opened window allows them to see each others' modifications] + expected: FAIL + + [postMessaging to a same-origin deeply-nested iframe allows them to see each others' modifications] + expected: FAIL + + [postMessaging to a dedicated worker allows them to see each others' modifications with Float32Array] + expected: FAIL + diff --git a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini index 702af61a3c4..127392316de 100644 --- a/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini +++ b/tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini @@ -1,11 +1,7 @@ [form-submission-algorithm.html] - expected: TIMEOUT [If form's firing submission events is true, then return; 'submit' event] expected: FAIL [If form's firing submission events is true, then return; 'invalid' event] expected: FAIL - [Cannot navigate (after constructing the entry list)] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini deleted file mode 100644 index 9e522297c94..00000000000 --- a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[toggleEvent.html] - [Calling open twice on 'details' fires only one toggle event] - expected: FAIL - - [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element] - expected: FAIL - diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini index 034d9baebfa..496bad988c6 100644 --- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini +++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini @@ -1,5 +1,4 @@ [promise-rejection-events.html] - expected: TIMEOUT [delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire] expected: FAIL @@ -9,6 +8,3 @@ [no unhandledrejection/rejectionhandled: rejection handler attached synchronously to a promise created from createImageBitmap] expected: FAIL - [rejectionhandled is dispatched from a queued task, and not immediately] - expected: TIMEOUT - diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index ee9c504145a..0e19a714f0b 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -173,3 +173,6 @@ [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 9.8276454210281350e-1 at index of 39267.\n\t[39267\]\t-2.5252847366376632e-16\t-9.8276454210281372e-1\t9.8276454210281350e-1\t9.9999999999999978e-1\t3.8985999999999999e-3\n\tMax RelError of 3.3137802965303198e+0 at index of 1253.\n\t[1253\]\t-4.3022233992815018e-2\t-9.9732093513011932e-3\t3.3049024641513824e-2\t3.3137802965303198e+0\t3.8985999999999999e-3\n] expected: FAIL + [X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 9.8276454210281394e-1 at index of 39267.\n\t[39267\]\t2.1028969344127294e-16\t-9.8276454210281372e-1\t9.8276454210281394e-1\t1.0000000000000002e+0\t3.8985999999999999e-3\n\tMax RelError of 3.3137802965303198e+0 at index of 1253.\n\t[1253\]\t-4.3022233992815018e-2\t-9.9732093513011932e-3\t3.3049024641513824e-2\t3.3137802965303198e+0\t3.8985999999999999e-3\n] + expected: FAIL + diff --git a/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini b/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini index 27f6c5ed7a2..6ff00c31bef 100644 --- a/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini +++ b/tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini @@ -1,5 +1,5 @@ [xrBoundedReferenceSpace_updates.https.html] - expected: ERROR + expected: TIMEOUT ['XRBoundedReferenceSpace updates properly when the changes are applied] expected: TIMEOUT diff --git a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini index 333edb3a26e..650c91da4a6 100644 --- a/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini +++ b/tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini @@ -1,4 +1,5 @@ [sharedworker-in-worker.html] + expected: ERROR [Base URL in workers: new SharedWorker()] expected: FAIL diff --git a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini deleted file mode 100644 index 80f9a4f15b8..00000000000 --- a/tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[Worker-constructor.html] - expected: ERROR diff --git a/tests/wpt/web-platform-tests/README.md b/tests/wpt/web-platform-tests/README.md index f89061f1674..5054889dc16 100644 --- a/tests/wpt/web-platform-tests/README.md +++ b/tests/wpt/web-platform-tests/README.md @@ -89,6 +89,11 @@ After your `hosts` file is configured, the servers will be locally accessible at http://web-platform.test:8000/<br> https://web-platform.test:8443/ * +To use the web-based runner point your browser to: + +http://web-platform.test:8000/tools/runner/index.html <br> +https://web-platform.test:8443/tools/runner/index.html * + \**See [Trusting Root CA](#trusting-root-ca)* Running Tests Automatically diff --git a/tests/wpt/web-platform-tests/css/CSS2/floats-clear/adjoining-float-new-fc-crash.html b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/adjoining-float-new-fc-crash.html new file mode 100644 index 00000000000..b220a48422f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/CSS2/floats-clear/adjoining-float-new-fc-crash.html @@ -0,0 +1,16 @@ +<!DOCTYPE html> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=987004"> +<meta name="assert" content="The renderer should not crash."> +<div style="width: 100px; overflow: hidden;"> + <div style="float: left; width: 100%; height: 20px; background: hotpink;"></div> + <div style="clear: both;"> + <span style="position: absolute; width: 10px; height: 10px; background: orange;"></span> + <div style="height: 10px; background: green; overflow: hidden;"></div> + </div> +</div> +<script> +test(() => { +}, 'Test passes if the renderer does not crash.'); +</script> diff --git a/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-invalid.html b/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-invalid.html index e7a965f34ad..40b6059a7e8 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-invalid.html +++ b/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-invalid.html @@ -32,6 +32,7 @@ test_invalid_value("grid-auto-columns", "fit-content(1px auto)"); // <track-size>+ test_invalid_value("grid-auto-columns", "2em / 3em"); test_invalid_value("grid-auto-columns", "auto, 10%"); +test_invalid_value("grid-auto-rows", "1px [a] 1px"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-valid.html b/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-valid.html index ba1f5f60d65..e26d085a2d9 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-valid.html +++ b/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-valid.html @@ -22,6 +22,7 @@ test_valid_value("grid-auto-columns", "5fr"); test_valid_value("grid-auto-columns", "min-content"); test_valid_value("grid-auto-columns", "max-content"); test_valid_value("grid-auto-columns", "auto"); +test_valid_value("grid-auto-columns", "auto /**/", "auto"); // minmax( <inflexible-breadth> , <track-breadth> ) // <inflexible-breadth> = <length-percentage> | min-content | max-content | auto @@ -47,6 +48,8 @@ test_valid_value("grid-auto-columns", "minmax(auto, 0%)"); test_valid_value("grid-auto-columns", "fit-content(0px)"); // <track-size>+ +test_valid_value("grid-auto-columns", "auto auto"); +test_valid_value("grid-auto-columns", "auto 10px"); test_valid_value("grid-auto-columns", "1px 2px 3px 0px"); test_valid_value("grid-auto-columns", "fit-content(1px) minmax(2px, 3px) 4px"); </script> diff --git a/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-invalid.html b/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-invalid.html index 7fceaa0f163..4111e256336 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-invalid.html +++ b/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-invalid.html @@ -31,6 +31,7 @@ test_invalid_value("grid-auto-rows", "fit-content(1px auto)"); // <track-size>+ test_invalid_value("grid-auto-rows", "2em / 3em"); test_invalid_value("grid-auto-rows", "auto, 10%"); +test_invalid_value("grid-auto-rows", "1px [a] 1px"); </script> </body> </html> diff --git a/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-valid.html b/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-valid.html index cf63e2b7d52..d4dcdb12b17 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-valid.html +++ b/tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-valid.html @@ -22,6 +22,7 @@ test_valid_value("grid-auto-rows", "5fr"); test_valid_value("grid-auto-rows", "min-content"); test_valid_value("grid-auto-rows", "max-content"); test_valid_value("grid-auto-rows", "auto"); +test_valid_value("grid-auto-rows", "auto /**/", "auto"); // minmax( <inflexible-breadth> , <track-breadth> ) // <inflexible-breadth> = <length-percentage> | min-content | max-content | auto @@ -47,6 +48,8 @@ test_valid_value("grid-auto-rows", "minmax(auto, 0%)"); test_valid_value("grid-auto-rows", "fit-content(0px)"); // <track-size>+ +test_valid_value("grid-auto-rows", "auto auto"); +test_valid_value("grid-auto-rows", "auto 10px"); test_valid_value("grid-auto-rows", "1px 2px 3px 0px"); test_valid_value("grid-auto-rows", "fit-content(1px) minmax(2px, 3px) 4px"); </script> diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/background-repeat-x-ref.html b/tests/wpt/web-platform-tests/css/css-paint-api/background-repeat-x-ref.html new file mode 100644 index 00000000000..3df0c5417d7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-paint-api/background-repeat-x-ref.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html> +<body> +<canvas id ="canvas" width="200" height="200"></canvas> +<script> +var ctx = document.getElementById('canvas').getContext('2d'); +ctx.fillStyle = 'green'; +ctx.fillRect(0, 0, 50, 50); +ctx.fillRect(100, 0, 50, 50); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/css/css-paint-api/background-repeat-x.https.html b/tests/wpt/web-platform-tests/css/css-paint-api/background-repeat-x.https.html new file mode 100644 index 00000000000..2eccfd2a7d0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-paint-api/background-repeat-x.https.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html class="reftest-wait"> +<link rel="help" href="https://drafts.css-houdini.org/css-paint-api/"> +<link rel="match" href="background-repeat-x-ref.html"> +<style> +.container { + width: 200px; + height: 200px; +} +#foo { + background: paint(foo) top left/50% 50% repeat-x; +} +</style> +<script src="/common/reftest-wait.js"></script> +<script src="/common/worklet-reftest.js"></script> +<body> +<div id="foo" class="container"></div> + +<script id="code" type="text/worklet"> +registerPaint('foo', class { + paint(ctx, geom) { + ctx.fillStyle = 'green'; + ctx.fillRect(0, 0, 50, 50); + } +}); +</script> + +<script> + importWorkletAndTerminateTestAfterAsyncPaint(CSS.paintWorklet, document.getElementById('code').textContent); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/docs/running-tests/from-local-system.md b/tests/wpt/web-platform-tests/docs/running-tests/from-local-system.md index 5427ded7ec9..0ee71765891 100644 --- a/tests/wpt/web-platform-tests/docs/running-tests/from-local-system.md +++ b/tests/wpt/web-platform-tests/docs/running-tests/from-local-system.md @@ -96,6 +96,11 @@ After your `hosts` file is configured, the servers will be locally accessible at http://web-platform.test:8000/<br> https://web-platform.test:8443/ * +To use the web-based runner point your browser to: + +http://web-platform.test:8000/tools/runner/index.html<br> +https://web-platform.test:8443/tools/runner/index.html * + This server has all the capabilities of the publicly-deployed version--see [Running the Tests from the Web](from-web). diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/file-names.md b/tests/wpt/web-platform-tests/docs/writing-tests/file-names.md index 220e4ab33dc..a01ee06de7b 100644 --- a/tests/wpt/web-platform-tests/docs/writing-tests/file-names.md +++ b/tests/wpt/web-platform-tests/docs/writing-tests/file-names.md @@ -58,6 +58,8 @@ themselves precede any test type flag, but are otherwise unordered. context why the test is tentative and what needs to be resolved to make it non-tentative. +It's preferable that `.window`, `.worker`, and `.any` are immediately followed +by their final `.js` extension. [server-side substitution]: https://wptserve.readthedocs.io/en/latest/pipes.html#sub [RFC 2119]: https://tools.ietf.org/html/rfc2119 diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/general-guidelines.md b/tests/wpt/web-platform-tests/docs/writing-tests/general-guidelines.md index 63942b07c67..b39a77d1c7a 100644 --- a/tests/wpt/web-platform-tests/docs/writing-tests/general-guidelines.md +++ b/tests/wpt/web-platform-tests/docs/writing-tests/general-guidelines.md @@ -32,7 +32,8 @@ css/ directory, regardless of where they are in the directory structure. By default, tests are served over plain HTTP. If a test requires HTTPS it must be given a filename containing `.https` before the extension, -e.g. `test-secure.https.html`. For more details see the documentation +e.g., `test-secure.https.html`, or be the generated service worker test +of a `.https`-less `.any` test. For more details see the documentation on [file names][file-name-flags]. #### Support Files diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md b/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md index 9f063f83fcd..d2ec64c834f 100644 --- a/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md +++ b/tests/wpt/web-platform-tests/docs/writing-tests/testharness.md @@ -165,7 +165,7 @@ are: * `window` (default): to be run at <code><var>x</var>.any.html</code> * `dedicatedworker` (default): to be run at <code><var>x</var>.any.worker.html</code> -* `serviceworker`: to be run at <code><var>x</var>.https.any.serviceworker.html</code> +* `serviceworker`: to be run at <code><var>x</var>.any.serviceworker.html</code> (`.https` is implied) * `sharedworker`: to be run at <code><var>x</var>.any.sharedworker.html</code> * `jsshell`: to be run in a JavaScript shell, without access to the DOM (currently only supported in SpiderMonkey, and skipped in wptrunner) diff --git a/tests/wpt/web-platform-tests/fetch/corb/script-resource-with-nonsniffable-types.tentative.sub.html b/tests/wpt/web-platform-tests/fetch/corb/script-resource-with-nonsniffable-types.tentative.sub.html index bf42d0eaf68..4cbdd7b99e6 100644 --- a/tests/wpt/web-platform-tests/fetch/corb/script-resource-with-nonsniffable-types.tentative.sub.html +++ b/tests/wpt/web-platform-tests/fetch/corb/script-resource-with-nonsniffable-types.tentative.sub.html @@ -56,7 +56,6 @@ protected_mime_types = [ "application/gzip", "application/x-gzip", "application/x-protobuf", - "application/x-www-form-urlencoded", "application/zip", "multipart/byteranges", "text/event-stream", diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000.woff Binary files differnew file mode 100644 index 00000000000..28e41f5cfb3 --- /dev/null +++ b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000.woff diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff Binary files differdeleted file mode 100644 index 3d90e64302a..00000000000 --- a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff +++ /dev/null diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-axisheight1000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-axisheight1000-rulethickness1000.woff Binary files differnew file mode 100644 index 00000000000..f0e0d5cbc2b --- /dev/null +++ b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-axisheight1000-rulethickness1000.woff diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff Binary files differdeleted file mode 100644 index 0b7efbaf706..00000000000 --- a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff +++ /dev/null diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000.woff Binary files differnew file mode 100644 index 00000000000..d6f530d8e10 --- /dev/null +++ b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000.woff diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff Binary files differdeleted file mode 100644 index 920c81eb1bf..00000000000 --- a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff +++ /dev/null diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-axisheight1000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-axisheight1000-rulethickness1000.woff Binary files differnew file mode 100644 index 00000000000..d2685397960 --- /dev/null +++ b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-axisheight1000-rulethickness1000.woff diff --git a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff Binary files differdeleted file mode 100644 index 3e70cd29a34..00000000000 --- a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff +++ /dev/null diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000-axisheight1000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000-axisheight1000.woff Binary files differnew file mode 100644 index 00000000000..d8f8ae48a6d --- /dev/null +++ b/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000-axisheight1000.woff diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff Binary files differdeleted file mode 100644 index 8761585484b..00000000000 --- a/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff +++ /dev/null diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000-axisheight1000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000-axisheight1000.woff Binary files differnew file mode 100644 index 00000000000..a3a491dbaf1 --- /dev/null +++ b/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000-axisheight1000.woff diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff Binary files differdeleted file mode 100644 index 96ebce2da51..00000000000 --- a/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff +++ /dev/null diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000-axisheight1000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000-axisheight1000.woff Binary files differnew file mode 100644 index 00000000000..bb286182e47 --- /dev/null +++ b/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000-axisheight1000.woff diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff Binary files differdeleted file mode 100644 index 556226f1226..00000000000 --- a/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff +++ /dev/null diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000-axisheight1000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000-axisheight1000.woff Binary files differnew file mode 100644 index 00000000000..52bc04458ca --- /dev/null +++ b/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000-axisheight1000.woff diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woff Binary files differdeleted file mode 100644 index d036e893087..00000000000 --- a/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woff +++ /dev/null diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/resources/echo-iframe.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/resources/echo-iframe.html.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/resources/echo-iframe.html.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html index 8902de49cfb..8902de49cfb 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html index 869f49043e9..869f49043e9 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html new file mode 100644 index 00000000000..dd221502b6f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html @@ -0,0 +1,8 @@ +<!doctype html> +<meta charset=utf-8> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id=log></div> +<script> +fetch_tests_from_worker(new SharedWorker("resources/nested-worker-success.js")); +</script> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html new file mode 100644 index 00000000000..aeee3705aea --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html @@ -0,0 +1,8 @@ +<!doctype html> +<meta charset=utf-8> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<div id=log></div> +<script> +fetch_tests_from_worker(new Worker("resources/nested-worker-success.js")); +</script> diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js new file mode 100644 index 00000000000..96276d74704 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js @@ -0,0 +1,18 @@ +test(() => { + const sab = new SharedArrayBuffer(); + const channel = new MessageChannel(); + assert_throws("DataCloneError", () => channel.port1.postMessage(sab)); +}, "SharedArrayBuffer over MessageChannel without COOP+COEP"); + +test(() => { + const sab = new SharedArrayBuffer(); + const channel = new BroadcastChannel("Is mir egal"); + assert_throws("DataCloneError", () => channel.postMessage(sab)); +}, "SharedArrayBuffer over BroadcastChannel without COOP+COEP"); + +if (self.GLOBAL.isWindow()) { + test(() => { + const sab = new SharedArrayBuffer(); + assert_throws("DataCloneError", () => self.postMessage(sab)); + }, "SharedArrayBuffer over postMessage() without COOP+COEP"); +} diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html index b39e37fd496..b39e37fd496 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers index 6604450991a..1528bf05e63 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers @@ -1 +1,2 @@ Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: cross-site diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html.headers new file mode 100644 index 00000000000..56d0ac34282 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: same-site diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html.headers new file mode 100644 index 00000000000..1528bf05e63 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: cross-site diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html.headers new file mode 100644 index 00000000000..1528bf05e63 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: cross-site diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html.headers new file mode 100644 index 00000000000..1528bf05e63 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: cross-site diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html.headers new file mode 100644 index 00000000000..1528bf05e63 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: cross-site diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html.headers new file mode 100644 index 00000000000..1528bf05e63 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: cross-site diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html.headers new file mode 100644 index 00000000000..1528bf05e63 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Embedder-Policy: require-corp +Cross-Origin-Resource-Policy: cross-site diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.any.js b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js index 5388ebcc39b..9befc9006e7 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.any.js +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js @@ -1,9 +1,10 @@ -// META: global=!default,dedicatedworker,sharedworker -// META: script=resources/test-incrementer.js -"use strict"; +importScripts("/resources/testharness.js"); +importScripts("test-incrementer.js"); promise_test(t => { - const worker = new Worker("resources/incrementer-worker.js"); + const worker = new Worker("incrementer-worker.js"); return testSharingViaIncrementerScript(t, worker, "parent worker", worker, "sub-worker"); }, "postMessaging to a dedicated sub-worker allows them to see each others' modifications"); + +done(); diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js.headers new file mode 100644 index 00000000000..6604450991a --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js.headers @@ -0,0 +1 @@ +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html index 49d341f47f9..49d341f47f9 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html index 9205d01df26..9205d01df26 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html index 98145310f61..98145310f61 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html index cd67e5b2c95..cd67e5b2c95 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html index 023cb5acdef..023cb5acdef 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html index e25fc9002d0..e25fc9002d0 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html index 4b86f9befa6..4b86f9befa6 100644 --- a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html diff --git a/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.headers b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html index b8bc405107b..ba47897c111 100644 --- a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html @@ -21,32 +21,32 @@ src: url("/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff"); } @font-face { - font-family: denominatordisplaystyleshiftdown6000-rulethickness1000; - src: url("/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff"); + font-family: denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000; + src: url("/fonts/math/fraction-denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000.woff"); } @font-face { font-family: denominatorgapmin4000-rulethickness1000; src: url("/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff"); } @font-face { - font-family: denominatorshiftdown3000-rulethickness1000; - src: url("/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff"); + font-family: denominatorshiftdown3000-axisheight1000-rulethickness1000; + src: url("/fonts/math/fraction-denominatorshiftdown3000-axisheight1000-rulethickness1000.woff"); } @font-face { font-family: numeratordisplaystylegapmin8000-rulethickness1000; src: url("/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff"); } @font-face { - font-family: numeratordisplaystyleshiftup2000-rulethickness1000; - src: url("/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff"); + font-family: numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000; + src: url("/fonts/math/fraction-numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000.woff"); } @font-face { font-family: numeratorgapmin9000-rulethickness1000; src: url("/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff"); } @font-face { - font-family: numeratorshiftup11000-rulethickness1000; - src: url("/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff"); + font-family: numeratorshiftup11000-axisheight1000-rulethickness1000; + src: url("/fonts/math/fraction-numeratorshiftup11000-axisheight1000-rulethickness1000.woff"); } @font-face { font-family: rulethickness10000; @@ -177,7 +177,7 @@ </p> <hr/> <p> - <math display="block" style="font-family: denominatordisplaystyleshiftdown6000-rulethickness1000;"> + <math display="block" style="font-family: denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000;"> <mspace id="ref0003" width="3em" height="1em" style="background: green"/> <mfrac> <mspace width="3em"/> @@ -198,7 +198,7 @@ </p> <hr/> <p> - <math style="font-family: denominatorshiftdown3000-rulethickness1000;"> + <math style="font-family: denominatorshiftdown3000-axisheight1000-rulethickness1000;"> <mspace id="ref0005" width="3em" height="1em" style="background: green"/> <mfrac> <mspace width="3em"/> @@ -219,7 +219,7 @@ </p> <hr/> <p> - <math display="block" style="font-family: numeratordisplaystyleshiftup2000-rulethickness1000;"> + <math display="block" style="font-family: numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000;"> <mspace id="ref0007" width="3em" depth="1em" style="background: green"/> <mfrac> @@ -241,7 +241,7 @@ </p> <hr/> <p> - <math style="font-family: numeratorshiftup11000-rulethickness1000;"> + <math style="font-family: numeratorshiftup11000-axisheight1000-rulethickness1000;"> <mspace id="ref0009" width="3em" depth="1em" style="background: green"/> <mfrac> diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html index ce2d299f281..9c363866de0 100644 --- a/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html +++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html @@ -17,12 +17,12 @@ src: url("/fonts/math/stack-axisheight7000.woff"); } @font-face { - font-family: bottomdisplaystyleshiftdown5000; - src: url("/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff"); + font-family: bottomdisplaystyleshiftdown5000-axisheight1000; + src: url("/fonts/math/stack-bottomdisplaystyleshiftdown5000-axisheight1000.woff"); } @font-face { - font-family: bottomshiftdown6000; - src: url("/fonts/math/stack-bottomshiftdown6000.woff"); + font-family: bottomshiftdown6000-axisheight1000; + src: url("/fonts/math/stack-bottomshiftdown6000-axisheight1000.woff"); } @font-face { font-family: displaystylegapmin4000; @@ -33,12 +33,12 @@ src: url("/fonts/math/stack-gapmin8000.woff"); } @font-face { - font-family: topdisplaystyleshiftup3000; - src: url("/fonts/math/stack-topdisplaystyleshiftup3000.woff"); + font-family: topdisplaystyleshiftup3000-axisheight1000; + src: url("/fonts/math/stack-topdisplaystyleshiftup3000-axisheight1000.woff"); } @font-face { - font-family: topshiftup9000; - src: url("/fonts/math/stack-topshiftup9000.woff"); + font-family: topshiftup9000-axisheight1000; + src: url("/fonts/math/stack-topshiftup9000-axisheight1000.woff"); } </style> <script> @@ -129,7 +129,7 @@ </p> <hr/> <p> - <math display="block" style="font-family: bottomdisplaystyleshiftdown5000;"> + <math display="block" style="font-family: bottomdisplaystyleshiftdown5000-axisheight1000;"> <mspace id="ref0002" width="3em" height="1em" style="background: green"/> <mfrac linethickness="0px"> <mspace width="3em"/> @@ -139,7 +139,7 @@ </p> <hr/> <p> - <math style="font-family: bottomshiftdown6000;"> + <math style="font-family: bottomshiftdown6000-axisheight1000;"> <mspace id="ref0003" width="3em" height="1em" style="background: green"/> <mfrac linethickness="0px"> <mspace width="3em"/> @@ -167,7 +167,7 @@ </p> <hr/> <p> - <math display="block" style="font-family: topdisplaystyleshiftup3000;"> + <math display="block" style="font-family: topdisplaystyleshiftup3000-axisheight1000;"> <mspace id="ref0006" width="3em" depth="1em" style="background: green"/> <mfrac linethickness="0px"> <mspace width="3em" height="1em" id="num0006" style="background: blue"/> @@ -177,7 +177,7 @@ </p> <hr/> <p> - <math style="font-family: topshiftup9000;"> + <math style="font-family: topshiftup9000-axisheight1000;"> <mspace id="ref0007" width="3em" depth="1em" style="background: green"/> <mfrac linethickness="0px"> <mspace width="3em" height="1em" id="num0007" style="background: blue"/> diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout.html new file mode 100644 index 00000000000..89389fc6682 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout.html @@ -0,0 +1,74 @@ +<!DOCTYPE html> +<html> +<head> +<meta charset="utf-8"> +<title>Elements not participating to the layout of their parent</title> +<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#layout-algorithms"> +<meta name="assert" content="Verify that display: none and out-of-flow positioned elements do not participate to layout of their parent."> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/mathml/support/feature-detection.js"></script> +<script src="/mathml/support/layout-comparison.js"></script> +<script src="/mathml/support/mathml-fragments.js"></script> +<script> + var epsilon = 1; + + setup({ explicit_done: true }); + window.addEventListener("load", runTests); + + function runTests() { + + for (tag in MathMLFragments) { + if (!FragmentHelper.isValidChildOfMrow(tag) || + FragmentHelper.isEmpty(tag)) + continue; + // TODO: Add floats too? + ["display: none", + "position: absolute", + "position: fixed" + ].forEach(style => { + document.body.insertAdjacentHTML("beforeend", `<div style="position: absolute;">\ +<div style="display: inline-block"><math>${MathMLFragments[tag]}</math></div>\ +<div style="display: inline-block"><math>${MathMLFragments[tag]}</math></div>\ +</div>`); + var div = document.body.lastElementChild; + + var elementContainer = div.firstElementChild; + var elementContainerWidth = elementContainer.getBoundingClientRect().width; + var element = FragmentHelper.element(elementContainer); + FragmentHelper.forceNonEmptyElement(element); + var allowInvalid = true; + var child = FragmentHelper.appendChild(element, allowInvalid); + child.setAttribute("style", style); + + var referenceContainer = div.lastElementChild; + var referenceContainerWidth = referenceContainer.getBoundingClientRect().width; + var reference = FragmentHelper.element(referenceContainer); + FragmentHelper.forceNonEmptyElement(reference); + + var epsilon = 1; + + test(function() { + // FIXME(fwang): Feature detection should be done per-tag. + assert_true(MathMLFeatureDetection.has_mspace()); + assert_approx_equals(elementContainerWidth, referenceContainerWidth, epsilon); + }, `${tag} preferred width calculation is not affected by children with "${style}" style`); + + test(function() { + // FIXME(fwang): Feature detection should be done per-tag. + assert_true(MathMLFeatureDetection.has_mspace()); + compareLayout(element, reference, epsilon); + }, `${tag} layout is not affected by children with "${style}" style`); + + div.style = "display: none;"; // Hide the div after measurement. + }); + } + + done(); + } +</script> +</head> +<body> + <div id="log"></div> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/mathml/support/layout-comparison.js b/tests/wpt/web-platform-tests/mathml/support/layout-comparison.js index b1a68995178..f9111d02ee3 100644 --- a/tests/wpt/web-platform-tests/mathml/support/layout-comparison.js +++ b/tests/wpt/web-platform-tests/mathml/support/layout-comparison.js @@ -37,36 +37,46 @@ function compareSize(element, reference, epsilon) { } } -function compareLayout(element, reference, epsilon) { - if (element.children.length != reference.children.length) - throw "Reference should have the same number of children." +function participateToParentLayout(child) { + var style = window.getComputedStyle(child); + return style.getPropertyValue("display") !== "none" && + style.getPropertyValue("position") !== "absolute" && + style.getPropertyValue("position") !== "fixed"; +} + +function childrenParticipatingToLayout(element) { + var children = []; + Array.from(element.children).forEach(child => { + if (participateToParentLayout(child)) + children.push(child); + }) + return children; +} +function compareLayout(element, reference, epsilon) { // Compare sizes of elements and children. var param = getWritingMode(element, reference); compareSize(element, reference, epsilon); var elementBox = element.getBoundingClientRect(); var referenceBox = reference.getBoundingClientRect(); - for (var i = 0; i < element.children.length; i++) { - var childDisplay = window. - getComputedStyle(element.children[i]).getPropertyValue("display"); - var referenceChildDisplay = window. - getComputedStyle(reference.children[i]).getPropertyValue("display"); - if (referenceChildDisplay !== childDisplay) - throw "compareLayout: children of reference should have the same display values."; - if (childDisplay === "none") - continue; - compareSize(element.children[i], reference.children[i], epsilon); + var elementChildren = childrenParticipatingToLayout(element); + var referenceChildren = childrenParticipatingToLayout(reference); + if (elementChildren.length != referenceChildren.length) + throw "Reference should have the same number of children participating to layout." + + for (var i = 0; i < elementChildren.length; i++) { + compareSize(elementChildren[i], referenceChildren[i], epsilon); - var childBox = element.children[i].getBoundingClientRect(); - var referenceChildBox = reference.children[i].getBoundingClientRect(); + var childBox = elementChildren[i].getBoundingClientRect(); + var referenceChildBox = referenceChildren[i].getBoundingClientRect(); switch(param.mode) { case "horizontal-tb": - if (!param.rtl) - throw "compareLayout: unexpected writing-mode value"; - assert_approx_equals(elementBox.right - childBox.right, + assert_approx_equals(param.rtl ? + elementBox.right - childBox.right : + childBox.left - elementBox.left, referenceChildBox.left - referenceBox.left, epsilon, `inline position (child ${i})`); diff --git a/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js b/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js index 013171cf8c2..7c7b003e9e6 100644 --- a/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js +++ b/tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js @@ -138,17 +138,25 @@ var FragmentHelper = { return fragment.getElementsByClassName('element')[0]; }, - forceNonEmptyElement: function(fragment) { + appendChild: function(fragment, allowInvalid) { var element = this.element(fragment) || fragment; - if (element.firstElementChild) - return element.firstElementChild; - if (element.classList.contains("mathml-container")) - return element.appendChild(this.createElement("mrow")); if (element.classList.contains("foreign-container")) { var el = document.createElement("span"); el.textContent = "a"; return element.appendChild(el); } - throw "Cannot make the element nonempty"; + if (element.classList.contains("mathml-container") || allowInvalid) { + var el = this.createElement("mi"); + el.textContent = "a"; + return element.appendChild(el); + } + throw "Cannot append child to the element"; + }, + + forceNonEmptyElement: function(fragment) { + var element = this.element(fragment) || fragment; + if (element.firstElementChild) + return element.firstElementChild; + return this.appendChild(fragment); } } diff --git a/tests/wpt/web-platform-tests/mathml/tools/fractions.py b/tests/wpt/web-platform-tests/mathml/tools/fractions.py index 8652806b297..42cfe468219 100644 --- a/tests/wpt/web-platform-tests/mathml/tools/fractions.py +++ b/tests/wpt/web-platform-tests/mathml/tools/fractions.py @@ -35,8 +35,8 @@ mathfont.save(f) v1 = 6 * mathfont.em v2 = 1 * mathfont.em -f = mathfont.create("fraction-denominatordisplaystyleshiftdown%d-rulethickness%d" % (v1, v2)) -f.math.AxisHeight = 0 +f = mathfont.create("fraction-denominatordisplaystyleshiftdown%d-axisheight%d-rulethickness%d" % (v1, v2, v2)) +f.math.AxisHeight = v2 f.math.FractionDenominatorDisplayStyleGapMin = 0 f.math.FractionDenominatorDisplayStyleShiftDown = v1 f.math.FractionDenominatorGapMin = 0 @@ -65,8 +65,8 @@ mathfont.save(f) v1 = 3 * mathfont.em v2 = 1 * mathfont.em -f = mathfont.create("fraction-denominatorshiftdown%d-rulethickness%d" % (v1, v2)) -f.math.AxisHeight = 0 +f = mathfont.create("fraction-denominatorshiftdown%d-axisheight%d-rulethickness%d" % (v1, v2, v2)) +f.math.AxisHeight = v2 f.math.FractionDenominatorDisplayStyleGapMin = 0 f.math.FractionDenominatorDisplayStyleShiftDown = 0 f.math.FractionDenominatorGapMin = 0 @@ -95,8 +95,8 @@ mathfont.save(f) v1 = 2 * mathfont.em v2 = 1 * mathfont.em -f = mathfont.create("fraction-numeratordisplaystyleshiftup%d-rulethickness%d" % (v1, v2)) -f.math.AxisHeight = 0 +f = mathfont.create("fraction-numeratordisplaystyleshiftup%d-axisheight%d-rulethickness%d" % (v1, v2, v2)) +f.math.AxisHeight = v2 f.math.FractionDenominatorDisplayStyleGapMin = 0 f.math.FractionDenominatorDisplayStyleShiftDown = 0 f.math.FractionDenominatorGapMin = 0 @@ -125,8 +125,8 @@ mathfont.save(f) v1 = 11 * mathfont.em v2 = 1 * mathfont.em -f = mathfont.create("fraction-numeratorshiftup%d-rulethickness%d" % (v1, v2)) -f.math.AxisHeight = 0 +f = mathfont.create("fraction-numeratorshiftup%d-axisheight%d-rulethickness%d" % (v1, v2, v2)) +f.math.AxisHeight = v2 f.math.FractionDenominatorDisplayStyleGapMin = 0 f.math.FractionDenominatorDisplayStyleShiftDown = 0 f.math.FractionDenominatorGapMin = 0 diff --git a/tests/wpt/web-platform-tests/mathml/tools/stacks.py b/tests/wpt/web-platform-tests/mathml/tools/stacks.py index 81f79befb69..18626291336 100644 --- a/tests/wpt/web-platform-tests/mathml/tools/stacks.py +++ b/tests/wpt/web-platform-tests/mathml/tools/stacks.py @@ -14,10 +14,11 @@ f.math.StackTopDisplayStyleShiftUp = 0 f.math.StackTopShiftUp = 0 mathfont.save(f) -v = 5 * mathfont.em -f = mathfont.create("stack-bottomdisplaystyleshiftdown%d" % v) -f.math.AxisHeight = 0 -f.math.StackBottomDisplayStyleShiftDown = v +v1 = 5 * mathfont.em +v2 = 1 * mathfont.em +f = mathfont.create("stack-bottomdisplaystyleshiftdown%d-axisheight%d" % (v1, v2)) +f.math.AxisHeight = v2 +f.math.StackBottomDisplayStyleShiftDown = v1 f.math.StackBottomShiftDown = 0 f.math.StackDisplayStyleGapMin = 0 f.math.StackGapMin = 0 @@ -25,11 +26,12 @@ f.math.StackTopDisplayStyleShiftUp = 0 f.math.StackTopShiftUp = 0 mathfont.save(f) -v = 6 * mathfont.em -f = mathfont.create("stack-bottomshiftdown%d" % v) -f.math.AxisHeight = 0 +v1 = 6 * mathfont.em +v2 = 1 * mathfont.em +f = mathfont.create("stack-bottomshiftdown%d-axisheight%d" % (v1, v2)) +f.math.AxisHeight = v2 f.math.StackBottomDisplayStyleShiftDown = 0 -f.math.StackBottomShiftDown = v +f.math.StackBottomShiftDown = v1 f.math.StackDisplayStyleGapMin = 0 f.math.StackGapMin = 0 f.math.StackTopDisplayStyleShiftUp = 0 @@ -58,24 +60,26 @@ f.math.StackTopDisplayStyleShiftUp = 0 f.math.StackTopShiftUp = 0 mathfont.save(f) -v = 3 * mathfont.em -f = mathfont.create("stack-topdisplaystyleshiftup%d" % v) -f.math.AxisHeight = 0 +v1 = 3 * mathfont.em +v2 = 1 * mathfont.em +f = mathfont.create("stack-topdisplaystyleshiftup%d-axisheight%d" % (v1, v2)) +f.math.AxisHeight = v2 f.math.StackBottomDisplayStyleShiftDown = 0 f.math.StackBottomShiftDown = 0 f.math.StackDisplayStyleGapMin = 0 f.math.StackGapMin = 0 -f.math.StackTopDisplayStyleShiftUp = v +f.math.StackTopDisplayStyleShiftUp = v1 f.math.StackTopShiftUp = 0 mathfont.save(f) -v = 9 * mathfont.em -f = mathfont.create("stack-topshiftup%d" % v) -f.math.AxisHeight = 0 +v1 = 9 * mathfont.em +v2 = 1 * mathfont.em +f = mathfont.create("stack-topshiftup%d-axisheight%d" % (v1, v2)) +f.math.AxisHeight = v2 f.math.StackBottomDisplayStyleShiftDown = 0 f.math.StackBottomShiftDown = 0 f.math.StackDisplayStyleGapMin = 0 f.math.StackGapMin = 0 f.math.StackTopDisplayStyleShiftUp = 0 -f.math.StackTopShiftUp = v +f.math.StackTopShiftUp = v1 mathfont.save(f) diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_sequence_at_implicit_release_on_drag.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_sequence_at_implicit_release_on_drag.html index 9b1de2270e4..52f9e439a4b 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_sequence_at_implicit_release_on_drag.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_sequence_at_implicit_release_on_drag.html @@ -27,13 +27,16 @@ var test_pointer_event = setup_pointerevent_test("Event sequence at implicit release on drag", ["touch"]); var button = document.getElementById("done"); - var clickIsReceived = false; + var actions_promise; on_event(document.getElementById("done"), "click", function() { test_pointer_event.step(function () { var expected_events = "pointercancel, lostpointercapture, pointerout, pointerleave"; assert_equals(event_log.join(", "), expected_events); }); - clickIsReceived = true; + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_pointer_event.done(); + }); }); var target = document.getElementById("target"); @@ -55,13 +58,8 @@ }); // Inject touch inputs. - pointerDragInTarget("touch", target, 'right').then(function() { + actions_promise = pointerDragInTarget("touch", target, 'right').then(function() { return clickInTarget("touch", button); - }).then(function() { - test_pointer_event.step(function () { - assert_true(clickIsReceived, "click should be received before the test finishes"); - }, "click should be received before the test finishes"); - test_pointer_event.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-auto-css_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-auto-css_touch.html index e995ccd5d6e..c486d77c111 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-auto-css_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-auto-css_touch.html @@ -89,6 +89,7 @@ var target0 = document.getElementById("target0"); var test_touchaction = async_test("touch-action attribute test"); + var actions_promise; xScr0 = target0.scrollLeft; yScr0 = target0.scrollTop; @@ -117,18 +118,17 @@ } if(xScrollIsReceived && yScrollIsReceived) { + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); } }); // Inject touch inputs and wait for all the actions finish to end the test. - touchScrollInTarget(target0, 'down').then(function() { + actions_promise = touchScrollInTarget(target0, 'down').then(function() { return touchScrollInTarget(target0, 'right'); - }).then(function() { - test_touchaction.step(function () { - assert_true(xScrollIsReceived && yScrollIsReceived, "x-scroll and y-scroll should be received before the test finishes"); - }, "x-scroll and y-scroll should be received before the test finishes"); - test_touchaction.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-none_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-none_touch.html index 4f9e75d3ce5..dc234cbef3d 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-none_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-none_touch.html @@ -87,7 +87,7 @@ function run() { var target0 = document.getElementById("target0"); var btnComplete = document.getElementById("btnComplete"); - var clickIsReceived = false; + var actions_promise; // Check if touch-action attribute works properly for embedded divs // @@ -98,7 +98,11 @@ assert_equals(target0.scrollLeft, 0, "scroll x offset should be 0 in the end of the test"); assert_equals(target0.scrollTop, 0, "scroll y offset should be 0 in the end of the test"); }); - clickIsReceived = true; + + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); }); @@ -107,15 +111,10 @@ }); // Inject touch inputs. - touchScrollInTarget(scrollTarget, 'down').then(function() { + actions_promise = touchScrollInTarget(scrollTarget, 'down').then(function() { return touchScrollInTarget(scrollTarget, 'right'); }).then(function() { return clickInTarget("touch", btnComplete); - }).then(function() { - test_touchaction.step(function () { - assert_true(clickIsReceived, "click should be received before the test finishes"); - }, "click should be received before the test finishes"); - test_touchaction.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html index 62fc8c22c07..c2f4bd35aeb 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html @@ -91,7 +91,7 @@ function run() { var target0 = document.getElementById("target0"); var btnComplete = document.getElementById("btnComplete"); - var clickIsReceived = false; + var actions_promise; // Check if touch-action attribute works properly for embedded divs // @@ -102,20 +102,19 @@ assert_not_equals(target0.scrollLeft, 0, "scroll x offset should not be 0 in the end of the test"); assert_equals(target0.scrollTop, 0, "scroll y offset should be 0 in the end of the test"); }); - clickIsReceived = true; + + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); }); // Inject touch inputs. - touchScrollInTarget(scrollTarget, 'down').then(function() { + actions_promise = touchScrollInTarget(scrollTarget, 'down').then(function() { return touchScrollInTarget(scrollTarget, 'right'); }).then(function() { return clickInTarget("touch", btnComplete); - }).then(function() { - test_touchaction.step(function () { - assert_true(clickIsReceived, "click should be received before the test finishes"); - }, "click should be received before the test finishes"); - test_touchaction.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html index a1fefe16982..3ec5998b54d 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html @@ -92,6 +92,7 @@ var target0 = document.getElementById("target0"); var test_touchaction = async_test("touch-action attribute test"); + var actions_promise; xScr0 = target0.scrollLeft; yScr0 = target0.scrollTop; @@ -117,18 +118,17 @@ } if(xScrollIsReceived && yScrollIsReceived) { + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); } }); // Inject touch inputs and wait for all the actions finish to end the test. - touchScrollInTarget(target0, 'down').then(function() { + actions_promise = touchScrollInTarget(target0, 'down').then(function() { return touchScrollInTarget(target0, 'right'); - }).then(function() { - test_touchaction.step(function () { - assert_true(xScrollIsReceived && yScrollIsReceived, "x-scroll and y-scroll should be received before the test finishes"); - }, "x-scroll and y-scroll should be received before the test finishes"); - test_touchaction.done(); }); } diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_parent-none_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_parent-none_touch.html index d525fe6ccd1..04db243676f 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_parent-none_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_parent-none_touch.html @@ -87,7 +87,7 @@ function run() { var target0 = document.getElementById("target0"); var btnComplete = document.getElementById("btnComplete"); - var clickIsReceived = false; + var actions_promise; // Check if touch-action attribute works properly for embedded divs // @@ -98,7 +98,11 @@ assert_equals(target0.scrollLeft, 0, "scroll x offset should be 0 in the end of the test"); assert_equals(target0.scrollTop, 0, "scroll y offset should be 0 in the end of the test"); }); - clickIsReceived = true; + + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); }); @@ -107,15 +111,10 @@ }); // Inject touch inputs. - touchScrollInTarget(scrollTarget, 'down').then(function() { + actions_promise = touchScrollInTarget(scrollTarget, 'down').then(function() { return touchScrollInTarget(scrollTarget, 'right'); }).then(function() { return clickInTarget("touch", btnComplete); - }).then(function() { - test_touchaction.step(function () { - assert_true(clickIsReceived, "click should be received before the test finishes"); - }, "click should be received before the test finishes"); - test_touchaction.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-none-css_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-none-css_touch.html index 5e963abfe0f..2ff161a915c 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-none-css_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-none-css_touch.html @@ -87,7 +87,7 @@ function run() { var target0 = document.getElementById("target0"); var btnComplete = document.getElementById("btnComplete"); - var clickIsReceived = false; + var actions_promise; // Check if "touch-action: none" attribute works properly //TA: 15.2 @@ -97,7 +97,11 @@ assert_equals(target0.scrollLeft, 0, "scroll x offset should be 0 in the end of the test"); assert_equals(target0.scrollTop, 0, "scroll y offset should be 0 in the end of the test"); }); - clickIsReceived = true; + + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); }); @@ -106,15 +110,10 @@ }); // Inject touch inputs. - touchScrollInTarget(target0, 'down').then(function() { + actions_promise = touchScrollInTarget(target0, 'down').then(function() { return touchScrollInTarget(target0, 'right'); }).then(function() { return clickInTarget("touch", btnComplete); - }).then(function() { - test_touchaction.step(function () { - assert_true(clickIsReceived, "click should be received before the test finishes"); - }, "click should be received before the test finishes"); - test_touchaction.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-css_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-css_touch.html index ebdc180792c..d2b147da0a0 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-css_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-css_touch.html @@ -86,7 +86,7 @@ function run() { var target0 = document.getElementById("target0"); var btnComplete = document.getElementById("btnComplete"); - var clickIsReceived = false; + var actions_promise; // Check if "touch-action: pan-x" attribute works properly //TA: 15.3 @@ -96,20 +96,19 @@ assert_not_equals(target0.scrollLeft, 0, "scroll x offset should not be 0 in the end of the test"); assert_equals(target0.scrollTop, 0, "scroll y offset should be 0 in the end of the test"); }); - clickIsReceived = true; + + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); }); // Inject touch inputs. - touchScrollInTarget(target0, 'down').then(function() { + actions_promise = touchScrollInTarget(target0, 'down').then(function() { return touchScrollInTarget(target0, 'right'); }).then(function() { return clickInTarget("touch", btnComplete); - }).then(function() { - test_touchaction.step(function () { - assert_true(clickIsReceived, "click should be received before the test finishes"); - }, "click should be received before the test finishes"); - test_touchaction.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html index ef59c9951cd..e081cacbe42 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html @@ -90,7 +90,7 @@ function run() { var target0 = document.getElementById("target0"); var btnComplete = document.getElementById("btnComplete"); - var clickIsReceived = false; + var actions_promise; // Check if touch-action attribute works properly for embedded divs // @@ -101,20 +101,19 @@ assert_equals(target0.scrollLeft, 0, "scroll x offset should be 0 in the end of the test"); assert_not_equals(target0.scrollTop, 0, "scroll y offset should not be 0 in the end of the test"); }); - clickIsReceived = true; + + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); }); // Inject touch inputs. - touchScrollInTarget(target0, 'down').then(function() { + actions_promise = touchScrollInTarget(target0, 'down').then(function() { return touchScrollInTarget(target0, 'right'); }).then(function() { return clickInTarget("touch", btnComplete); - }).then(function() { - test_touchaction.step(function () { - assert_true(clickIsReceived, "click should be received before the test finishes"); - }, "click should be received before the test finishes"); - test_touchaction.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html index 0c880543795..b80035c98df 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html @@ -89,6 +89,7 @@ var target0 = document.getElementById("target0"); var test_touchaction = async_test("touch-action attribute test"); + var actions_promise; xScr0 = target0.scrollLeft; yScr0 = target0.scrollTop; @@ -114,18 +115,17 @@ } if(xScrollIsReceived && yScrollIsReceived) { + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); } }); // Inject touch inputs and wait for all the actions finish to end the test. - touchScrollInTarget(target0, 'down').then(function() { + actions_promise = touchScrollInTarget(target0, 'down').then(function() { return touchScrollInTarget(target0, 'right'); - }).then(function() { - test_touchaction.step(function () { - assert_true(xScrollIsReceived && yScrollIsReceived, "x-scroll and y-scroll should be received before the test finishes"); - }, "x-scroll and y-scroll should be received before the test finishes"); - test_touchaction.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-y-css_touch.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-y-css_touch.html index b6444ede334..adf502f1d8e 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-y-css_touch.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-y-css_touch.html @@ -87,7 +87,7 @@ function run() { var target0 = document.getElementById("target0"); var btnComplete = document.getElementById("btnComplete"); - var clickIsReceived = false; + var actions_promise; // Check if "touch-action: pan-y" attribute works properly //TA: 15.4 @@ -97,20 +97,19 @@ assert_equals(target0.scrollLeft, 0, "scroll x offset should be 0 in the end of the test"); assert_not_equals(target0.scrollTop, 0, "scroll y offset should not be 0 in the end of the test"); }); - clickIsReceived = true; + + // Make sure the test finishes after all the input actions are completed. + actions_promise.then( () => { + test_touchaction.done(); + }); updateDescriptionComplete(); }); // Inject touch inputs. - touchScrollInTarget(target0, 'down').then(function() { + actions_promise = touchScrollInTarget(target0, 'down').then(function() { return touchScrollInTarget(target0, 'right'); }).then(function() { return clickInTarget("touch", btnComplete); - }).then(function() { - test_touchaction.step(function () { - assert_true(clickIsReceived, "click should be received before the test finishes"); - }, "click should be received before the test finishes"); - test_touchaction.done(); }); } </script> diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy.html b/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy.html index 2d6147dae56..260ef4829cb 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy.html @@ -38,16 +38,24 @@ </style> <script> var expectedPointerId = NaN; - var startSummation = false; - var lastScreenX = 0; - var lastScreenY = 0; + var lastScreenX = null; + var lastScreenY = null; function resetTestState() { - startSummation = false; - lastScreenX = 0; - lastScreenY = 0; + lastScreenX = null; + lastScreenY = null; } + var nonPointermoveEventList = [ + "pointerover", + "pointerenter", + "pointerdown", + "pointerup", + "pointerout", + "pointerleave", + "gotpointercapture", + "lostpointercapture"]; + function injectInput(pointerType) { var pointerId = pointerType + "Pointer1"; return new test_driver.Actions() @@ -55,7 +63,9 @@ .pointerMove(0, 0, {origin: box1}) .pointerDown() .pointerMove(20, 30, {origin: box1}) - .pointerMove(60, 40, {origin: box1}) + .pointerMove(50, 40, {origin: box1}) + .pointerMove(80, 30, {origin: box1}) + .pointerMove(110, 20, {origin: box1}) .pointerMove(0, 0, {origin: box2}) .pointerUp() .send(); @@ -65,15 +75,31 @@ var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", ALL_POINTERS); [document, document.getElementById('innerFrame').contentDocument].forEach(function(element) { + nonPointermoveEventList.forEach(function(eventName) { + on_event(element, eventName, function (event) { + if (lastScreenX && lastScreenY) { + test_pointerEvent.step(function() { + assert_equals(event.movementX, 0, "movementX should be 0 for event other than pointermove."); + assert_equals(event.movementY, 0, "movementY should be 0 for event other than pointermove."); + }); + // Reset when entering the new frame. + if (event.type == "pointerenter") { + lastScreenX = null; + lastScreenY = null; + } + } + }); + }); + on_event(element, 'pointermove', function (event) { - if (startSummation) { - test_pointerEvent.step(function() { + test_pointerEvent.step(function() { + if (lastScreenX && lastScreenY) { assert_equals(event.movementX, event.screenX - lastScreenX, "movementX should be the delta between current event's and last event's screenX"); assert_equals(event.movementY, event.screenY - lastScreenY, "movementY should be the delta between current event's and last event's screenY"); - }); - lastScreenX = event.screenX; - lastScreenY = event.screenY; - } + } + }); + lastScreenX = event.screenX; + lastScreenY = event.screenY; }); }); on_event(document.querySelector('#box1'), 'pointerdown', function(event) { @@ -81,12 +107,10 @@ test_pointerEvent.step(function() { assert_equals(event.pointerType, expectedPointerType, "Use the instructed pointer type."); }); - startSummation = true; lastScreenX = event.screenX; lastScreenY = event.screenY; }); on_event(document.querySelector('#box2'), 'pointerup', function(event) { - startSummation = false; test_pointerEvent.done(); }); diff --git a/tests/wpt/web-platform-tests/svg/animations/discard-on-discard.html b/tests/wpt/web-platform-tests/svg/animations/discard-on-discard.html new file mode 100644 index 00000000000..4a6b9f9368d --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/discard-on-discard.html @@ -0,0 +1,54 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Test the behavior of one discard applied on another discard</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <animate id="anim" attributeName="visibility" to="visible" begin="0s" end="5s"/> + <rect x="0" y="0" width="50" height="50" fill="rgb(255, 0, 0)"> + <set id="set1" attributeName="fill" to="rgb(0, 255, 0)" begin="2s" fill="freeze"/> + <set id="set2" attributeName="fill" to="rgb(0, 0, 255)" begin="3s" fill="freeze"/> + </rect> + + <discard id="discard1" xlink:href="#set1" begin="1s"/> + <discard id="discard2" xlink:href="#set2"/> + <discard id="discard3" xlink:href="#discard1"/> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function sample1() { + expectFillColor(rect1, 255, 0, 0); +} + +function sample2() { + expectFillColor(rect1, 0, 255, 0); +} + +smil_async_test((t) => { + var rects = rootSVGElement.ownerDocument.getElementsByTagName("rect"); + rect1 = rects[0]; + + const expectedValues = [ + // [animationId, time, sampleCallback] + ["anim", 0.0, sample1], + ["anim", 0.01, sample1], + ["anim", 2.0, sample2], + ["anim", 2.01, sample2], + ["anim", 3.0, sample2], + ["anim", 3.01, sample2] + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/force-use-shadow-tree-recreation-while-animating.html b/tests/wpt/web-platform-tests/svg/animations/force-use-shadow-tree-recreation-while-animating.html new file mode 100644 index 00000000000..7a60e0280ba --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/force-use-shadow-tree-recreation-while-animating.html @@ -0,0 +1,65 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>This test forces use shadow tree recreation while an animating is running</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + +<defs> + <rect id="rect" width="10" height="100" fill="red"> + <animate id="an1" attributeName="width" fill="freeze" from="10" to="100" begin="0s" dur="4s"/> + </rect> +</defs> + +<use xlink:href="#rect"/> + +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function sample1() { + assert_approx_equals(rect.width.animVal.value, 10, epsilon); + assert_equals(rect.width.baseVal.value, 10); +} + +function sample2() { + assert_approx_equals(rect.width.animVal.value, 55, epsilon); + assert_equals(rect.width.baseVal.value, 10); +} + +function forceUseShadowTreeRecreation() { + rect.setAttribute("fill", "green"); +} + +function sample3() { + assert_approx_equals(rect.width.animVal.value, 100, epsilon); + assert_equals(rect.width.baseVal.value, 10); +} + +smil_async_test((t) => { + rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0]; + + const expectedValues = [ + // [animationId, time, sampleCallback] + ["an1", 0.0, sample1], + ["an1", 1.999, sample2], + ["an1", 2.0, forceUseShadowTreeRecreation], + ["an1", 2.001, sample2], + ["an1", 4.0, sample3], + ["an1", 60.0, sample3], + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/multiple-animations-ending.html b/tests/wpt/web-platform-tests/svg/animations/multiple-animations-ending.html new file mode 100644 index 00000000000..a9b7853bb0e --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/multiple-animations-ending.html @@ -0,0 +1,421 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>This checks the effect on multiple animations ending on one target</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + +<!-- Test that the first element can end while others continue without crashing, and the second + can end and remain frozen. Also test that a third element can animate after the second has ended + but that the result is still to return to the second animation's freeze position. --> +<rect x='0' y='0' width='50' height='50' fill='green'> + <animate id="an1" attributeName='x' from='0' to='100' begin='0s' dur='1s' /> + <animate id="an2" attributeName='x' from='200' to='250' begin='1.5s' dur='1s' fill='freeze' /> + <animate id="an3" attributeName='x' from='50' to='0' begin='2.5s' dur='0.5s' /> +</rect> + +<!-- Test that a second element can take priority over the first from 0-1s, then + test that the first element can animate for 1s, and finally test that the + second element can once again animate after the first has ended. After all + animations end, test that they are removed and the rect returns to its home. --> +<rect x='200' y='75' width='50' height='50' fill='green'> + <animate id="an4" attributeName='x' from='0' to='10' begin='1s' dur='1s'/> + <animate id="an5" attributeName='x' from='100' to='0' begin='0s' dur='2.5s'/> +</rect> + +<!-- Test that a repeating animation can take priority over another animation, and that the + end state is the second animation's freeze value. Also test that, after a pause, a third + animation can take over and have its freeze value satisfied at the end. --> +<rect x='0' y='150' width='50' height='50' fill='green'> + <animate id="an6" attributeName='x' from='200' to='240' begin='0s' dur='2s' fill='freeze'/> + <animate id="an7" attributeName='x' from='0' to='5' begin='1s' dur='0.1s' repeatCount="5" fill='freeze'/> + <animate id="an8" attributeName='x' from='250' to='150' begin='3s' dur='1s' fill='freeze'/> +</rect> + +<!-- Test that 4 animations can animate a rect in 20px 'steps' and that correct freeze values are + honored even though the animation elements are specified in non-sequential order. Also test + that two repeating animations (active for only a short duration) only momentarily + affect the overall animation and are correctly removed. --> +<rect x='0' y='225' width='50' height='50' fill='green'> + <animate id="an9" attributeName='x' from='200' to='250' begin='1.6s' dur='0.1s' repeatCount="2" fill='remove'/> + <animate id="anA" attributeName='x' from='160' to='180' begin='3s' dur='0.5s' fill='freeze'/> + <animate id="anB" attributeName='x' from='110' to='130' begin='2s' dur='0.5s' fill='freeze'/> + <animate id="anC" attributeName='x' from='10' to='30' begin='0s' dur='0.5s' fill='freeze'/> + <animate id="anD" attributeName='x' from='60' to='80' begin='1s' dur='0.5s' fill='freeze'/> + <animate id="anE" attributeName='x' from='200' to='250' begin='3.6s' dur='0.1s' repeatCount="2" fill='remove'/> +</rect> + +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function sample1() { + assert_approx_equals(rect1.x.animVal.value, 0, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 100, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 200, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 10, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample2() { + assert_approx_equals(rect1.x.animVal.value, 50, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 80, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 210, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 30, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample3() { + assert_approx_equals(rect1.x.animVal.value, 50, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 80, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 210, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 30, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample4() { + assert_approx_equals(rect1.x.animVal.value, 50, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 80, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 210, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 30, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample5() { + assert_approx_equals(rect1.x.animVal.value, 100, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 60, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 220, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 30, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample6() { + assert_approx_equals(rect1.x.animVal.value, 0, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 0, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 0, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 60, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample7() { + assert_approx_equals(rect1.x.animVal.value, 0, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 0, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 0, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 60, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample8() { + assert_approx_equals(rect1.x.animVal.value, 0, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 5, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 80, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample9() { + assert_approx_equals(rect1.x.animVal.value, 200, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 5, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 80, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample10() { + assert_approx_equals(rect1.x.animVal.value, 200, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 5, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 80, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample11() { + assert_approx_equals(rect1.x.animVal.value, 225, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 10, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 80, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample12() { + assert_approx_equals(rect1.x.animVal.value, 225, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 20, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 110, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample13() { + assert_approx_equals(rect1.x.animVal.value, 225, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 20, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 110, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample14() { + assert_approx_equals(rect1.x.animVal.value, 250, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 0, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 130, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample15() { + assert_approx_equals(rect1.x.animVal.value, 50, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 130, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample16() { + assert_approx_equals(rect1.x.animVal.value, 50, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 130, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample17() { + assert_approx_equals(rect1.x.animVal.value, 0, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 5, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 130, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample18() { + assert_approx_equals(rect1.x.animVal.value, 250, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 250, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 160, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample19() { + assert_approx_equals(rect1.x.animVal.value, 250, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 250, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 160, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample20() { + assert_approx_equals(rect1.x.animVal.value, 250, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 200, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 180, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample21() { + assert_approx_equals(rect1.x.animVal.value, 250, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 200, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 180, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample22() { + assert_approx_equals(rect1.x.animVal.value, 250, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 150, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 180, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +function sample23() { + assert_approx_equals(rect1.x.animVal.value, 250, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 200); + + assert_approx_equals(rect3.x.animVal.value, 150, epsilon); + assert_equals(rect3.x.baseVal.value, 0); + + assert_approx_equals(rect4.x.animVal.value, 180, epsilon); + assert_equals(rect4.x.baseVal.value, 0); +} + +smil_async_test((t) => { + var rects = rootSVGElement.ownerDocument.getElementsByTagName("rect"); + rect1 = rects[0]; + rect2 = rects[1]; + rect3 = rects[2]; + rect4 = rects[3]; + + const expectedValues = [ + // [animationId, time, sampleCallback] + ["an1", 0.0, sample1], + ["an1", 0.499, sample2], + ["an1", 0.5, sample3], + ["an1", 0.501, sample4], + ["an1", 0.999, sample5], + ["an1", 1.0, sample6], + ["an1", 1.001, sample7], + ["an1", 1.499, sample8], + ["an1", 1.5, sample9], + ["an1", 1.501, sample10], + ["an1", 1.999, sample11], + ["an1", 2.0, sample12], + ["an1", 2.001, sample13], + ["an1", 2.499, sample14], + ["an1", 2.5, sample15], + ["an1", 2.501, sample16], + ["an1", 2.999, sample17], + ["an1", 3.0, sample18], + ["an1", 3.001, sample19], + ["an1", 3.499, sample20], + ["an1", 3.5, sample21], + ["an1", 4.0, sample22], + ["an1", 9.0, sample23] + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/multiple-animations-fill-freeze.html b/tests/wpt/web-platform-tests/svg/animations/multiple-animations-fill-freeze.html new file mode 100644 index 00000000000..d4a71dcac28 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/multiple-animations-fill-freeze.html @@ -0,0 +1,149 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>This checks the effect on multiple animations on one target</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + +<rect x='0' y='0' width='50' height='50' fill='green'> + <animate id="an1" attributeName='x' from='0' to='100' begin='0s' dur='2s' fill='freeze'/> + <animate id="an2" attributeName='x' from='150' to='250' begin='4s' dur='2s' fill='freeze'/> +</rect> + +<rect x='0' y='100' width='50' height='50' fill='green'> + <animate id="an3" attributeName='x' from='0' to='100' begin='0s' dur='2s' fill='remove'/> + <animate id="an4" attributeName='x' from='150' to='250' begin='4s' dur='2s' fill='freeze'/> +</rect> + +<rect x='0' y='200' width='50' height='50' fill='green'> + <animate id="an5" attributeName='x' from='0' to='100' begin='0s' dur='2s' fill='freeze'/> + <animate id="an6" attributeName='x' from='150' to='250' begin='4s' dur='2s' fill='remove'/> +</rect> + +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function sample1() { + assert_approx_equals(rect1.x.animVal.value, 0, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 0, epsilon); + assert_equals(rect2.x.baseVal.value, 0); + + assert_approx_equals(rect3.x.animVal.value, 0, epsilon); + assert_equals(rect3.x.baseVal.value, 0); +} + +function sample2() { + assert_approx_equals(rect1.x.animVal.value, 50, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 50, epsilon); + assert_equals(rect2.x.baseVal.value, 0); + + assert_approx_equals(rect3.x.animVal.value, 50, epsilon); + assert_equals(rect3.x.baseVal.value, 0); +} + +function sample3() { + assert_approx_equals(rect1.x.animVal.value, 100, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 100, epsilon); + assert_equals(rect2.x.baseVal.value, 0); + + assert_approx_equals(rect3.x.animVal.value, 100, epsilon); + assert_equals(rect3.x.baseVal.value, 0); +} + +function sample4() { + assert_approx_equals(rect1.x.animVal.value, 100, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 0, epsilon); + assert_equals(rect2.x.baseVal.value, 0); + + assert_approx_equals(rect3.x.animVal.value, 100, epsilon); + assert_equals(rect3.x.baseVal.value, 0); +} + +function sample5() { + assert_approx_equals(rect1.x.animVal.value, 150, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 150, epsilon); + assert_equals(rect2.x.baseVal.value, 0); + + assert_approx_equals(rect3.x.animVal.value, 150, epsilon); + assert_equals(rect3.x.baseVal.value, 0); +} + +function sample6() { + assert_approx_equals(rect1.x.animVal.value, 200, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 200, epsilon); + assert_equals(rect2.x.baseVal.value, 0); + + assert_approx_equals(rect3.x.animVal.value, 200, epsilon); + assert_equals(rect3.x.baseVal.value, 0); +} + +function sample7() { + assert_approx_equals(rect1.x.animVal.value, 250, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 250, epsilon); + assert_equals(rect2.x.baseVal.value, 0); + + assert_approx_equals(rect3.x.animVal.value, 250, epsilon); + assert_equals(rect3.x.baseVal.value, 0); +} + +function sample8() { + assert_equals(rect1.x.animVal.value, 250); + assert_equals(rect1.x.baseVal.value, 0); + + assert_equals(rect2.x.animVal.value, 250); + assert_equals(rect2.x.baseVal.value, 0); + + assert_equals(rect3.x.animVal.value, 100); + assert_equals(rect3.x.baseVal.value, 0); +} + +smil_async_test((t) => { + var rects = rootSVGElement.ownerDocument.getElementsByTagName("rect"); + rect1 = rects[0]; + rect2 = rects[1]; + rect3 = rects[2]; + + const expectedValues = [ + // [animationId, time, sampleCallback] + ["an1", 0.0, sample1], + ["an1", 1.0, sample2], + ["an1", 1.999, sample3], + ["an1", 2.001, sample4], + ["an1", 3.0, sample4], + ["an1", 3.999, sample4], + ["an1", 4.0, sample5], + ["an1", 5.0, sample6], + ["an1", 5.999, sample7], + ["an1", 6.001, sample8], + ["an1", 60.0, sample8] + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/multiple-begin-additive-animation.html b/tests/wpt/web-platform-tests/svg/animations/multiple-begin-additive-animation.html new file mode 100644 index 00000000000..9e75bdf17a4 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/multiple-begin-additive-animation.html @@ -0,0 +1,136 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>This tests additive='sum' support on animate elements with multiple begin times</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000"> +<rect width="100" height="100" fill="green"> + <animate id="an1" attributeName="y" attributeType="XML" begin="0s" dur="12s" from="100" to="900" fill="freeze" /> + <animate attributeName="x" attributeType="XML" calcMode="discrete" begin="0s; 2s" from="0" to="400" dur="8s" additive="sum" /> +</rect> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function checkBaseValues() { +return; + assert_equals(rect.x.baseVal.value, 0); + assert_equals(rect.y.baseVal.value, 0); +} + +function sample1() { + assert_equals(rect.x.animVal.value, 0); + assert_approx_equals(rect.y.animVal.value, 100, epsilon); + checkBaseValues(); +} + +function sample2() { + assert_equals(rect.x.animVal.value, 0); + assert_approx_equals(rect.y.animVal.value, 166.67, epsilon); + checkBaseValues(); +} + +function sample3() { + assert_equals(rect.x.animVal.value, 0); + assert_approx_equals(rect.y.animVal.value, 366.60, epsilon); + checkBaseValues(); +} + +function sample4() { + assert_equals(rect.x.animVal.value, 0); + assert_approx_equals(rect.y.animVal.value, 366.73, epsilon); + checkBaseValues(); +} + +function sample5() { + assert_equals(rect.x.animVal.value, 0); + assert_approx_equals(rect.y.animVal.value, 499.93, epsilon); + checkBaseValues(); +} + +function sample6() { + assert_equals(rect.x.animVal.value, 400); + assert_approx_equals(rect.y.animVal.value, 500.06, epsilon); + checkBaseValues(); +} + +function sample7() { + assert_equals(rect.x.animVal.value, 400); + assert_approx_equals(rect.y.animVal.value, 566.67, epsilon); + checkBaseValues(); +} + +function sample8() { + assert_equals(rect.x.animVal.value, 400); + assert_approx_equals(rect.y.animVal.value, 633.33, epsilon); + checkBaseValues(); +} + +function sample9() { + assert_equals(rect.x.animVal.value, 400); + assert_approx_equals(rect.y.animVal.value, 700, epsilon); + checkBaseValues(); +} + +function sample10() { + assert_equals(rect.x.animVal.value, 400); + assert_approx_equals(rect.y.animVal.value, 766.60, epsilon); + checkBaseValues(); +} + +function sample11() { + assert_equals(rect.x.animVal.value, 0); + assert_approx_equals(rect.y.animVal.value, 766.67, epsilon); + checkBaseValues(); +} + +function sample12() { + assert_equals(rect.x.animVal.value, 0); + assert_approx_equals(rect.y.animVal.value, 833.33, epsilon); + checkBaseValues(); +} + +function sample13() { + assert_equals(rect.x.animVal.value, 0); + assert_approx_equals(rect.y.animVal.value, 900, epsilon); + checkBaseValues(); +} + +smil_async_test((t) => { + rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0]; + + // All animations in the test file use the same duration, so it's not needed to list all sample points individually for an5/an6/an7/an8. + const expectedValues = [ + // [animationId, time, sampleCallback] + ["an1", 0.0, sample1], + ["an1", 1.0, sample2], + ["an1", 3.999, sample3], + ["an1", 4.001, sample4], + ["an1", 5.999, sample5], + ["an1", 6.001, sample6], + ["an1", 7.0, sample7], + ["an1", 7.999, sample8], + ["an1", 8.001, sample8], + ["an1", 9.0, sample9], + ["an1", 9.999, sample10], + ["an1", 10.001, sample11], + ["an1", 11.0, sample12], + ["an1", 11.999, sample13], + ["an1", 12.001, sample13], + ["an1", 60.0, sample13] + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/non-additive-type-by-animation.html b/tests/wpt/web-platform-tests/svg/animations/non-additive-type-by-animation.html new file mode 100644 index 00000000000..b596f735446 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/non-additive-type-by-animation.html @@ -0,0 +1,72 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>This by animation for all non-additive property types - should have no effect.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg id="svg" viewBox="0 0 200 200" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<defs> + <filter id="filter"> + <feConvolveMatrix id="feConvolveMatrix" kernelMatrix="0 1 0 0 1 0 0 1 0" order="6 6" targetX="5" preserveAlpha="false"/> + </filter> +</defs> + +<rect id="rect" y="100" width="100" height="100" fill="black" filter="url(#filter)"/> + +<!-- AnimatedBoolean --> +<animate id="an1" xlink:href="#feConvolveMatrix" attributeName="preserveAlpha" begin="0s" dur="4s" by="true" fill="freeze"/> + +<!-- AnimatedEnumeration --> +<animate xlink:href="#filter" attributeName="filterUnits" begin="0s" dur="4s" by="userSpaceOnUse" fill="freeze"/> + +<!-- AnimatedPreserveAspectRatio --> +<animate xlink:href="#svg" attributeName="preserveAspectRatio" begin="0s" dur="4s" by="xMaxYMax slice" fill="freeze"/> + +<!-- AnimatedString --> +<animate xlink:href="#feConvolveMatrix" attributeName="result" begin="0s" dur="4s" by="test" fill="freeze"/> + +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function sample() { + assert_equals(feConvolveMatrix.preserveAlpha.animVal, false); + assert_equals(filter.filterUnits.animVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX); + assert_equals(svg.preserveAspectRatio.animVal.align, SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE); + assert_equals(svg.preserveAspectRatio.animVal.meetOrSlice, SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET); + assert_equals(feConvolveMatrix.result.animVal, ""); + + assert_equals(feConvolveMatrix.preserveAlpha.baseVal, false); + assert_equals(filter.filterUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX); + assert_equals(svg.preserveAspectRatio.baseVal.align, SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE); + assert_equals(svg.preserveAspectRatio.baseVal.meetOrSlice, SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET); + assert_equals(feConvolveMatrix.result.baseVal, ""); +} + +smil_async_test((t) => { + filter = rootSVGElement.ownerDocument.getElementsByTagName("filter")[0]; + feConvolveMatrix = rootSVGElement.ownerDocument.getElementsByTagName("feConvolveMatrix")[0]; + svg = rootSVGElement.ownerDocument.getElementsByTagName("svg")[0]; + + const expectedValues = [ + // [animationId, time, sampleCallback] + ["an1", 0.0, sample], + ["an1", 1.999, sample], + ["an1", 2.001, sample], + ["an1", 3.999, sample], + ["an1", 4.001, sample] + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/non-additive-type-from-by-animation.html b/tests/wpt/web-platform-tests/svg/animations/non-additive-type-from-by-animation.html new file mode 100644 index 00000000000..e974e381775 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/non-additive-type-from-by-animation.html @@ -0,0 +1,72 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>This is a from by animation for all non-additive property types - should have no effect.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg id="svg" viewBox="0 0 200 200" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> +<defs> + <filter id="filter"> + <feConvolveMatrix id="feConvolveMatrix" kernelMatrix="0 1 0 0 1 0 0 1 0" order="6 6" targetX="5" preserveAlpha="false"/> + </filter> +</defs> + +<rect id="rect" y="100" width="100" height="100" fill="black" filter="url(#filter)"/> + +<!-- AnimatedBoolean --> +<animate id="an1" xlink:href="#feConvolveMatrix" attributeName="preserveAlpha" begin="0s" dur="4s" from="false" by="true" fill="freeze"/> + +<!-- AnimatedEnumeration --> +<animate xlink:href="#filter" attributeName="filterUnits" begin="0s" dur="4s" from="objectBoundingBox" by="userSpaceOnUse" fill="freeze"/> + +<!-- AnimatedPreserveAspectRatio --> +<animate xlink:href="#svg" attributeName="preserveAspectRatio" begin="0s" dur="4s" from="xMaxYMax meet" by="xMaxYMax slice" fill="freeze"/> + +<!-- AnimatedString --> +<animate xlink:href="#feConvolveMatrix" attributeName="result" begin="0s" dur="4s" from="foo" by="test" fill="freeze"/> + +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function sample() { + assert_equals(feConvolveMatrix.preserveAlpha.animVal, false); + assert_equals(filter.filterUnits.animVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX); + assert_equals(svg.preserveAspectRatio.animVal.align, SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE); + assert_equals(svg.preserveAspectRatio.animVal.meetOrSlice, SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET); + assert_equals(feConvolveMatrix.result.animVal, ""); + + assert_equals(feConvolveMatrix.preserveAlpha.baseVal, false); + assert_equals(filter.filterUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX); + assert_equals(svg.preserveAspectRatio.baseVal.align, SVGPreserveAspectRatio.SVG_PRESERVEASPECTRATIO_NONE); + assert_equals(svg.preserveAspectRatio.baseVal.meetOrSlice, SVGPreserveAspectRatio.SVG_MEETORSLICE_MEET); + assert_equals(feConvolveMatrix.result.baseVal, ""); +} + +smil_async_test((t) => { + filter = rootSVGElement.ownerDocument.getElementsByTagName("filter")[0]; + feConvolveMatrix = rootSVGElement.ownerDocument.getElementsByTagName("feConvolveMatrix")[0]; + svg = rootSVGElement.ownerDocument.getElementsByTagName("svg")[0]; + + const expectedValues = [ + // [animationId, time, sampleCallback] + ["an1", 0.0, sample], + ["an1", 1.999, sample], + ["an1", 2.001, sample], + ["an1", 3.999, sample], + ["an1", 4.001, sample] + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/remove-animation-element-while-animation-is-running.html b/tests/wpt/web-platform-tests/svg/animations/remove-animation-element-while-animation-is-running.html new file mode 100644 index 00000000000..764d25b69f1 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/remove-animation-element-while-animation-is-running.html @@ -0,0 +1,85 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>This removes an animation element while the animation is running</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + +<rect x='0' y='0' width='50' height='50' fill='green'> + <animate id="an1" attributeName='x' from='50' to='150' begin='0s' dur='2s' fill='freeze'/> +</rect> + +<rect x='0' y='100' width='50' height='50' fill='green'> + <animate id="an2" attributeName='x' from='50' to='150' begin='0s' dur='2s' fill='remove'/> +</rect> + +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function sample1() { + assert_approx_equals(rect1.x.animVal.value, 50, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 50, epsilon); + assert_equals(rect2.x.baseVal.value, 0); +} + +function sample2() { + assert_approx_equals(rect1.x.animVal.value, 100, epsilon); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 100, epsilon); + assert_equals(rect2.x.baseVal.value, 0); + + // Remove the animation element animating rect1 + // The effect is that rect1 is now reset to the initial state, before any animation was applied to it. + // Compatible with FF. In Opera it shows a repainting bug currently (two rects are visible!). + var an1 = rootSVGElement.ownerDocument.getElementById("an1"); + an1.parentNode.removeChild(an1); +} + +function sample3() { + assert_equals(rect1.x.animVal.value, 0); + assert_equals(rect1.x.baseVal.value, 0); + + assert_approx_equals(rect2.x.animVal.value, 100, epsilon); + assert_equals(rect2.x.baseVal.value, 0); +} + +function sample4() { + assert_equals(rect1.x.animVal.value, 0); + assert_equals(rect1.x.baseVal.value, 0); + + assert_equals(rect2.x.animVal.value, 0); + assert_equals(rect2.x.baseVal.value, 0); +} + +smil_async_test((t) => { + var rects = rootSVGElement.ownerDocument.getElementsByTagName("rect"); + rect1 = rects[0]; + rect2 = rects[1]; + + const expectedValues = [ + // [animationId, time, sampleCallback] + ["an1", 0.0, sample1], + ["an1", 1.0, sample2], + ["an2", 1.001, sample3], + ["an2", 2.001, sample4], + ["an2", 60.0, sample4] + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/repeatn-remove-add-animation.html b/tests/wpt/web-platform-tests/svg/animations/repeatn-remove-add-animation.html new file mode 100644 index 00000000000..f192d27dfbd --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/repeatn-remove-add-animation.html @@ -0,0 +1,100 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>This removes and adds an animation element while the animation is repeating</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + + <animate id="anim" attributeName="visibility" to="visible" begin="0s" dur="2s" repeatCount="4"/> + <rect x="0" y="0" width="100" height="100" fill="rgb(0, 255, 0)"> + <set attributeName="fill" to="rgb(255, 0, 0)" begin="anim.repeat(0)"/> + </rect> + <rect x="200" y="0" width="100" height="100" fill="rgb(255, 0, 0)"> + <set attributeName="fill" to="rgb(0, 255, 0)" begin="anim.repeat(1)"/> + </rect> + <rect x="0" y="200" width="100" height="100" fill="rgb(255, 0, 0)"> + <set attributeName="fill" to="rgb(0, 255, 0)" begin="anim.repeat(2)"/> + </rect> + <rect x="200" y="200" width="100" height="100" fill="rgb(255, 0, 0)"> + <set attributeName="fill" to="rgb(0, 255, 0)" begin="anim.repeat(3)"/> + </rect> + +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function sample1() { + expectFillColor(rect1, 0, 255, 0); + expectFillColor(rect2, 255, 0, 0); + expectFillColor(rect3, 255, 0, 0); + expectFillColor(rect4, 255, 0, 0); +} + +function sample2() { + expectFillColor(rect1, 0, 255, 0); + expectFillColor(rect2, 0, 255, 0); + expectFillColor(rect3, 255, 0, 0); + expectFillColor(rect4, 255, 0, 0); +} + +function sample3() { + expectFillColor(rect1, 0, 255, 0); + expectFillColor(rect2, 0, 255, 0); + expectFillColor(rect3, 0, 255, 0); + expectFillColor(rect4, 255, 0, 0); +} + +function sample4() { + expectFillColor(rect1, 0, 255, 0); + expectFillColor(rect2, 0, 255, 0); + expectFillColor(rect3, 0, 255, 0); + expectFillColor(rect4, 0, 255, 0); +} + +function recreate() { + var anim1 = rootSVGElement.ownerDocument.getElementById("anim"); + anim1.parentNode.removeChild(anim1); + var anim2 = createSVGElement("animate"); + anim2.setAttribute("id", "anim"); + anim2.setAttribute("attributeName", "visibility"); + anim2.setAttribute("to", "visible"); + anim2.setAttribute("begin", "0s"); + anim2.setAttribute("dur", "2s"); + anim2.setAttribute("repeatCount", "4"); + rootSVGElement.appendChild(anim2); +} + +smil_async_test((t) => { + var rects = rootSVGElement.ownerDocument.getElementsByTagName("rect"); + rect1 = rects[0]; + rect2 = rects[1]; + rect3 = rects[2]; + rect4 = rects[3]; + + const expectedValues = [ + // [animationId, time, sampleCallback] + ["anim", 0.0, sample1], + ["anim", 0.001, sample1], + ["anim", 2.0, sample1], + ["anim", 2.001, sample2], + ["anim", 4.0, sample2], + ["anim", 4.001, sample3], + ["anim", 5.0, recreate], + ["anim", 6.0, sample3], + ["anim", 6.001, sample4] + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/single-values-animation.html b/tests/wpt/web-platform-tests/svg/animations/single-values-animation.html new file mode 100644 index 00000000000..40aa3461866 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/single-values-animation.html @@ -0,0 +1,51 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>This tests values animation with just a single entry</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd"> +<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + +<!-- an1: Change width immediately to 100 at 2s --> +<rect width="10" height="100" fill="green"> + <animate id="an1" attributeType="XML" attributeName="width" fill="freeze" values="100" begin="2s"/> +</rect> + +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup animation test +function sample1() { + assert_approx_equals(rect.width.animVal.value, 10, epsilon); + assert_equals(rect.width.baseVal.value, 10); +} + +function sample2() { + assert_approx_equals(rect.width.animVal.value, 100, epsilon); + assert_equals(rect.width.baseVal.value, 10); +} + +smil_async_test((t) => { + rect = rootSVGElement.ownerDocument.getElementsByTagName("rect")[0]; + + const expectedValues = [ + // [animationId, time, sampleCallback] + ["an1", 0.0, sample1], + ["an1", 2.0, sample2], + ["an1", 4.0, sample2], + ["an1", 60.0, sample2] + ]; + + runAnimationTest(t, expectedValues); +}); + +window.animationStartsImmediately = true; + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-deg-to-grad.html b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-deg-to-grad.html new file mode 100644 index 00000000000..7a814633687 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-deg-to-grad.html @@ -0,0 +1,93 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Tests SVGAngle animation from deg to grad.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defs = createSVGElement("defs"); + +var marker = createSVGElement("marker"); +marker.setAttribute("id", "marker"); +marker.setAttribute("viewBox", "0 0 10 10"); +marker.setAttribute("markerWidth", "4"); +marker.setAttribute("markerHeight", "3"); +marker.setAttribute("markerUnits", "strokeWidth"); +marker.setAttribute("refX", "1"); +marker.setAttribute("refY", "5"); +marker.setAttribute("orient", "0deg"); +defs.appendChild(marker); + +var polyline = createSVGElement("polyline"); +polyline.setAttribute("id", "polyline"); +polyline.setAttribute("points", "0,0 10,5 0,10 1,5"); +polyline.setAttribute("fill", "green"); +marker.appendChild(polyline); + +var path = createSVGElement("path"); +path.setAttribute("id", "path"); +path.setAttribute("d", "M45,50 L55,50"); +path.setAttribute("stroke-width","10"); +path.setAttribute("stroke", "green"); +path.setAttribute("marker-end", "url(#marker)"); +path.setAttribute("onclick", "executeTest()"); + +var animate = createSVGElement("animate"); +animate.setAttribute("id", "animation"); +animate.setAttribute("attributeName", "orient"); +animate.setAttribute("begin", "0s"); +animate.setAttribute("dur", "4s"); +animate.setAttribute("from", "0deg"); +animate.setAttribute("to", "200grad"); +marker.appendChild(animate); +rootSVGElement.appendChild(defs); +rootSVGElement.appendChild(path); + +// Setup animation test +function sample1() { + // Check initial/end conditions + assert_approx_equals(marker.orientAngle.animVal.value, 0, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample2() { + assert_approx_equals(marker.orientAngle.animVal.value, 90, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample3() { + assert_approx_equals(marker.orientAngle.animVal.value, 180, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 2.0, sample2], + ["animation", 3.999, sample3], + ["animation", 4.001, sample1] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-deg-to-rad.html b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-deg-to-rad.html new file mode 100644 index 00000000000..b8ad7300cfa --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-deg-to-rad.html @@ -0,0 +1,93 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Tests SVGAngle animation from deg to rad.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defs = createSVGElement("defs"); + +var marker = createSVGElement("marker"); +marker.setAttribute("id", "marker"); +marker.setAttribute("viewBox", "0 0 10 10"); +marker.setAttribute("markerWidth", "4"); +marker.setAttribute("markerHeight", "3"); +marker.setAttribute("markerUnits", "strokeWidth"); +marker.setAttribute("refX", "1"); +marker.setAttribute("refY", "5"); +marker.setAttribute("orient", "0deg"); +defs.appendChild(marker); + +var polyline = createSVGElement("polyline"); +polyline.setAttribute("id", "polyline"); +polyline.setAttribute("points", "0,0 10,5 0,10 1,5"); +polyline.setAttribute("fill", "green"); +marker.appendChild(polyline); + +var path = createSVGElement("path"); +path.setAttribute("id", "path"); +path.setAttribute("d", "M45,50 L55,50"); +path.setAttribute("stroke-width","10"); +path.setAttribute("stroke", "green"); +path.setAttribute("marker-end", "url(#marker)"); +path.setAttribute("onclick", "executeTest()"); + +var animate = createSVGElement("animate"); +animate.setAttribute("id", "animation"); +animate.setAttribute("attributeName", "orient"); +animate.setAttribute("begin", "0s"); +animate.setAttribute("dur", "4s"); +animate.setAttribute("from", "0deg"); +animate.setAttribute("to", "3.14159265rad"); +marker.appendChild(animate); +rootSVGElement.appendChild(defs); +rootSVGElement.appendChild(path); + +// Setup animation test +function sample1() { + // Check initial/end conditions + assert_approx_equals(marker.orientAngle.animVal.value, 0, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample2() { + assert_approx_equals(marker.orientAngle.animVal.value, 90, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample3() { + assert_approx_equals(marker.orientAngle.animVal.value, 180, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 2.0, sample2], + ["animation", 3.999, sample3], + ["animation", 4.001, sample1] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-grad-to-deg.html b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-grad-to-deg.html new file mode 100644 index 00000000000..dd5822db812 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-grad-to-deg.html @@ -0,0 +1,93 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Tests SVGAngle animation from grad to deg.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defs = createSVGElement("defs"); + +var marker = createSVGElement("marker"); +marker.setAttribute("id", "marker"); +marker.setAttribute("viewBox", "0 0 10 10"); +marker.setAttribute("markerWidth", "4"); +marker.setAttribute("markerHeight", "3"); +marker.setAttribute("markerUnits", "strokeWidth"); +marker.setAttribute("refX", "1"); +marker.setAttribute("refY", "5"); +marker.setAttribute("orient", "0deg"); +defs.appendChild(marker); + +var polyline = createSVGElement("polyline"); +polyline.setAttribute("id", "polyline"); +polyline.setAttribute("points", "0,0 10,5 0,10 1,5"); +polyline.setAttribute("fill", "green"); +marker.appendChild(polyline); + +var path = createSVGElement("path"); +path.setAttribute("id", "path"); +path.setAttribute("d", "M45,50 L55,50"); +path.setAttribute("stroke-width","10"); +path.setAttribute("stroke", "green"); +path.setAttribute("marker-end", "url(#marker)"); +path.setAttribute("onclick", "executeTest()"); + +var animate = createSVGElement("animate"); +animate.setAttribute("id", "animation"); +animate.setAttribute("attributeName", "orient"); +animate.setAttribute("begin", "0s"); +animate.setAttribute("dur", "4s"); +animate.setAttribute("from", "0grad"); +animate.setAttribute("to", "180deg"); +marker.appendChild(animate); +rootSVGElement.appendChild(defs); +rootSVGElement.appendChild(path); + +// Setup animation test +function sample1() { + // Check initial/end conditions + assert_approx_equals(marker.orientAngle.animVal.value, 0, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample2() { + assert_approx_equals(marker.orientAngle.animVal.value, 90, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample3() { + assert_approx_equals(marker.orientAngle.animVal.value, 180, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 2.0, sample2], + ["animation", 3.999, sample3], + ["animation", 4.001, sample1] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-grad-to-rad.html b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-grad-to-rad.html new file mode 100644 index 00000000000..28bef66d0ff --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-grad-to-rad.html @@ -0,0 +1,93 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Tests SVGAngle animation from grad to rad.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defs = createSVGElement("defs"); + +var marker = createSVGElement("marker"); +marker.setAttribute("id", "marker"); +marker.setAttribute("viewBox", "0 0 10 10"); +marker.setAttribute("markerWidth", "4"); +marker.setAttribute("markerHeight", "3"); +marker.setAttribute("markerUnits", "strokeWidth"); +marker.setAttribute("refX", "1"); +marker.setAttribute("refY", "5"); +marker.setAttribute("orient", "0deg"); +defs.appendChild(marker); + +var polyline = createSVGElement("polyline"); +polyline.setAttribute("id", "polyline"); +polyline.setAttribute("points", "0,0 10,5 0,10 1,5"); +polyline.setAttribute("fill", "green"); +marker.appendChild(polyline); + +var path = createSVGElement("path"); +path.setAttribute("id", "path"); +path.setAttribute("d", "M45,50 L55,50"); +path.setAttribute("stroke-width","10"); +path.setAttribute("stroke", "green"); +path.setAttribute("marker-end", "url(#marker)"); +path.setAttribute("onclick", "executeTest()"); + +var animate = createSVGElement("animate"); +animate.setAttribute("id", "animation"); +animate.setAttribute("attributeName", "orient"); +animate.setAttribute("begin", "0s"); +animate.setAttribute("dur", "4s"); +animate.setAttribute("from", "0grad"); +animate.setAttribute("to", "3.14159265rad"); +marker.appendChild(animate); +rootSVGElement.appendChild(defs); +rootSVGElement.appendChild(path); + +// Setup animation test +function sample1() { + // Check initial/end conditions + assert_approx_equals(marker.orientAngle.animVal.value, 0, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample2() { + assert_approx_equals(marker.orientAngle.animVal.value, 90, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample3() { + assert_approx_equals(marker.orientAngle.animVal.value, 180, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 2.0, sample2], + ["animation", 3.999, sample3], + ["animation", 4.001, sample1] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-rad-to-deg.html b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-rad-to-deg.html new file mode 100644 index 00000000000..412f384cc7b --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-rad-to-deg.html @@ -0,0 +1,93 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Tests SVGAngle animation from rad to deg.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defs = createSVGElement("defs"); + +var marker = createSVGElement("marker"); +marker.setAttribute("id", "marker"); +marker.setAttribute("viewBox", "0 0 10 10"); +marker.setAttribute("markerWidth", "4"); +marker.setAttribute("markerHeight", "3"); +marker.setAttribute("markerUnits", "strokeWidth"); +marker.setAttribute("refX", "1"); +marker.setAttribute("refY", "5"); +marker.setAttribute("orient", "0deg"); +defs.appendChild(marker); + +var polyline = createSVGElement("polyline"); +polyline.setAttribute("id", "polyline"); +polyline.setAttribute("points", "0,0 10,5 0,10 1,5"); +polyline.setAttribute("fill", "green"); +marker.appendChild(polyline); + +var path = createSVGElement("path"); +path.setAttribute("id", "path"); +path.setAttribute("d", "M45,50 L55,50"); +path.setAttribute("stroke-width","10"); +path.setAttribute("stroke", "green"); +path.setAttribute("marker-end", "url(#marker)"); +path.setAttribute("onclick", "executeTest()"); + +var animate = createSVGElement("animate"); +animate.setAttribute("id", "animation"); +animate.setAttribute("attributeName", "orient"); +animate.setAttribute("begin", "0s"); +animate.setAttribute("dur", "4s"); +animate.setAttribute("from", "0rad"); +animate.setAttribute("to", "180deg"); +marker.appendChild(animate); +rootSVGElement.appendChild(defs); +rootSVGElement.appendChild(path); + +// Setup animation test +function sample1() { + // Check initial/end conditions + assert_approx_equals(marker.orientAngle.animVal.value, 0, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample2() { + assert_approx_equals(marker.orientAngle.animVal.value, 90, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample3() { + assert_approx_equals(marker.orientAngle.animVal.value, 180, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 2.0, sample2], + ["animation", 3.999, sample3], + ["animation", 4.001, sample1] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-rad-to-grad.html b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-rad-to-grad.html new file mode 100644 index 00000000000..d27c052be2e --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgangle-animation-rad-to-grad.html @@ -0,0 +1,93 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Tests SVGAngle animation from rad to grad.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defs = createSVGElement("defs"); + +var marker = createSVGElement("marker"); +marker.setAttribute("id", "marker"); +marker.setAttribute("viewBox", "0 0 10 10"); +marker.setAttribute("markerWidth", "4"); +marker.setAttribute("markerHeight", "3"); +marker.setAttribute("markerUnits", "strokeWidth"); +marker.setAttribute("refX", "1"); +marker.setAttribute("refY", "5"); +marker.setAttribute("orient", "0deg"); +defs.appendChild(marker); + +var polyline = createSVGElement("polyline"); +polyline.setAttribute("id", "polyline"); +polyline.setAttribute("points", "0,0 10,5 0,10 1,5"); +polyline.setAttribute("fill", "green"); +marker.appendChild(polyline); + +var path = createSVGElement("path"); +path.setAttribute("id", "path"); +path.setAttribute("d", "M45,50 L55,50"); +path.setAttribute("stroke-width","10"); +path.setAttribute("stroke", "green"); +path.setAttribute("marker-end", "url(#marker)"); +path.setAttribute("onclick", "executeTest()"); + +var animate = createSVGElement("animate"); +animate.setAttribute("id", "animation"); +animate.setAttribute("attributeName", "orient"); +animate.setAttribute("begin", "0s"); +animate.setAttribute("dur", "4s"); +animate.setAttribute("from", "0rad"); +animate.setAttribute("to", "200grad"); +marker.appendChild(animate); +rootSVGElement.appendChild(defs); +rootSVGElement.appendChild(path); + +// Setup animation test +function sample1() { + // Check initial/end conditions + assert_approx_equals(marker.orientAngle.animVal.value, 0, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample2() { + assert_approx_equals(marker.orientAngle.animVal.value, 90, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +function sample3() { + assert_approx_equals(marker.orientAngle.animVal.value, 180, epsilon); + assert_equals(marker.orientAngle.baseVal.value, 0); + + assert_equals(marker.orientType.animVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); + assert_equals(marker.orientType.baseVal, SVGMarkerElement.SVG_MARKER_ORIENT_ANGLE); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 2.0, sample2], + ["animation", 3.999, sample3], + ["animation", 4.001, sample1] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgboolean-animation-1.html b/tests/wpt/web-platform-tests/svg/animations/svgboolean-animation-1.html new file mode 100644 index 00000000000..3e3de673a3c --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgboolean-animation-1.html @@ -0,0 +1,76 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Test 'to' animation of SVGBoolean.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defs = createSVGElement("defs"); +rootSVGElement.appendChild(defs); + +var filter = createSVGElement("filter"); +filter.setAttribute("id", "filter"); +defs.appendChild(filter); + +var feConvolveMatrix = createSVGElement("feConvolveMatrix"); +feConvolveMatrix.setAttribute("id", "effect"); +feConvolveMatrix.setAttribute("kernelMatrix", "0 0 0 0 1 0 0 0 0"); +feConvolveMatrix.setAttribute("preserveAlpha", "false"); +filter.appendChild(feConvolveMatrix); + +var rect = createSVGElement("rect"); +rect.setAttribute("id", "rect"); +rect.setAttribute("width", "100"); +rect.setAttribute("height", "100"); +rect.setAttribute("fill", "green"); +rect.setAttribute("filter", "url(#filter)"); +rect.setAttribute("onclick", "executeTest()"); +rootSVGElement.appendChild(rect); + +var animate = createSVGElement("animate"); +animate.setAttribute("id", "animation"); +animate.setAttribute("attributeName", "preserveAlpha"); +animate.setAttribute("begin", "0s"); +animate.setAttribute("dur", "4s"); +animate.setAttribute("from", "false"); +animate.setAttribute("to", "true"); +feConvolveMatrix.appendChild(animate); + +// Setup animation test +function sample1() { + assert_equals(feConvolveMatrix.preserveAlpha.animVal, false); + assert_equals(feConvolveMatrix.preserveAlpha.baseVal, false); +} + +function sample2() { + assert_equals(feConvolveMatrix.preserveAlpha.animVal, false); + assert_equals(feConvolveMatrix.preserveAlpha.baseVal, false); +} + +function sample3() { + assert_equals(feConvolveMatrix.preserveAlpha.animVal, true); + assert_equals(feConvolveMatrix.preserveAlpha.baseVal, false); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 2.0, sample2], + ["animation", 3.999, sample3], + ["animation", 4.001, sample1] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-1.html b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-1.html new file mode 100644 index 00000000000..05b75e9ad81 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-1.html @@ -0,0 +1,76 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Test SVGUnitTypes enumeration animations</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defs = createSVGElement("defs"); +rootSVGElement.appendChild(defs); + +var pattern = createSVGElement("pattern"); +pattern.setAttribute("id", "pattern"); +pattern.setAttribute("patternUnits", "userSpaceOnUse"); +pattern.setAttribute("patternContentUnits", "userSpaceOnUse"); +pattern.setAttribute("width", "50"); +pattern.setAttribute("height", "50"); +defs.appendChild(pattern); + +var patternChild = createSVGElement("rect"); +patternChild.setAttribute("width", "1"); +patternChild.setAttribute("height", "1"); +patternChild.setAttribute("fill", "green"); +pattern.appendChild(patternChild); + +var rect = createSVGElement("rect"); +rect.setAttribute("id", "rect"); +rect.setAttribute("width", "100"); +rect.setAttribute("height", "100"); +rect.setAttribute("fill", "url(#pattern)"); +rect.setAttribute("onclick", "executeTest()"); +rootSVGElement.appendChild(rect); + +var animate = createSVGElement("animate"); +animate.setAttribute("id", "animation"); +animate.setAttribute("attributeName", "patternContentUnits"); +animate.setAttribute("begin", "0s"); +animate.setAttribute("dur", "4s"); +animate.setAttribute("from", "userSpaceOnUse"); +animate.setAttribute("to", "objectBoundingBox"); +animate.setAttribute("fill", "freeze"); +pattern.appendChild(animate); + +// Setup animation test +function sample1() { + assert_equals(pattern.patternContentUnits.animVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE); + assert_equals(pattern.patternContentUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE); +} + +function sample2() { + assert_equals(pattern.patternContentUnits.animVal, SVGUnitTypes.SVG_UNIT_TYPE_OBJECTBOUNDINGBOX); + assert_equals(pattern.patternContentUnits.baseVal, SVGUnitTypes.SVG_UNIT_TYPE_USERSPACEONUSE); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 1.999, sample1], + ["animation", 2.001, sample2], + ["animation", 3.999, sample2], + ["animation", 4.001, sample2] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-10.html b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-10.html new file mode 100644 index 00000000000..e645ea5066f --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-10.html @@ -0,0 +1,81 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Test SVGMarkerUnitsType enumeration animations</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var marker = createSVGElement("marker"); +marker.setAttribute("id", "marker"); +marker.setAttribute("viewBox", "0 0 10 10"); +marker.setAttribute("markerWidth", "2"); +marker.setAttribute("markerHeight", "2"); +marker.setAttribute("refX", "5"); +marker.setAttribute("refY", "5"); +marker.setAttribute("markerUnits", "userSpaceOnUse"); + +var markerPath = createSVGElement("path"); +markerPath.setAttribute("fill", "blue"); +markerPath.setAttribute("d", "M 5 0 L 10 10 L 0 10 Z"); +marker.appendChild(markerPath); + +var defsElement = createSVGElement("defs"); +defsElement.appendChild(marker); +rootSVGElement.appendChild(defsElement); + +var path = createSVGElement("path"); +path.setAttribute("id", "path"); +path.setAttribute("onclick", "executeTest()"); +path.setAttribute("fill", "none"); +path.setAttribute("stroke", "green"); +path.setAttribute("stroke-width", "10"); +path.setAttribute("marker-start", "url(#marker)"); +path.setAttribute("marker-end", "url(#marker)"); +path.setAttribute("d", "M 130 135 L 180 135 L 180 185"); +path.setAttribute("transform", "translate(-130, -120)"); +rootSVGElement.appendChild(path); + +var animate1 = createSVGElement("animate"); +animate1.setAttribute("id", "animation"); +animate1.setAttribute("attributeName", "markerUnits"); +animate1.setAttribute("begin", "0s"); +animate1.setAttribute("dur", "4s"); +animate1.setAttribute("from", "userSpaceOnUse"); +animate1.setAttribute("to", "strokeWidth"); +animate1.setAttribute("fill", "freeze"); +marker.appendChild(animate1); + +// Setup animation test +function sample1() { + assert_equals(marker.markerUnits.animVal, SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE); + assert_equals(marker.markerUnits.baseVal, SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE); +} + +function sample2() { + assert_equals(marker.markerUnits.animVal, SVGMarkerElement.SVG_MARKERUNITS_STROKEWIDTH); + assert_equals(marker.markerUnits.baseVal, SVGMarkerElement.SVG_MARKERUNITS_USERSPACEONUSE); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 1.999, sample1], + ["animation", 2.001, sample2], + ["animation", 3.999, sample2], + ["animation", 4.001, sample2] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-11.html b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-11.html new file mode 100644 index 00000000000..ebf8409f2e0 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-11.html @@ -0,0 +1,95 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Test BlendModeType enumeration animations</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var filter = createSVGElement("filter"); +filter.setAttribute("id", "filter"); +rootSVGElement.appendChild(filter); + +var feFlood = createSVGElement("feFlood"); +feFlood.setAttribute("in", "SourceGraphic"); +feFlood.setAttribute("flood-color", "green"); +feFlood.setAttribute("flood-opacity", "0.5"); +feFlood.setAttribute("result", "img"); +filter.appendChild(feFlood); + +var feBlend = createSVGElement("feBlend"); +feBlend.setAttribute("in", "SourceGraphic"); +feBlend.setAttribute("in2", "img"); +feBlend.setAttribute("mode", "lighten"); +filter.appendChild(feBlend); + +var rect = createSVGElement("rect"); +rect.setAttribute("id", "rect"); +rect.setAttribute("onclick", "executeTest()"); +rect.setAttribute("filter", "url(#filter)"); +rect.setAttribute("width", "100"); +rect.setAttribute("height", "100"); +rootSVGElement.appendChild(rect); + +var animate1 = createSVGElement("animate"); +animate1.setAttribute("id", "animation"); +animate1.setAttribute("attributeName", "mode"); +animate1.setAttribute("begin", "0s"); +animate1.setAttribute("dur", "5s"); +animate1.setAttribute("values", "normal;multiply;screen;darken;lighten"); +animate1.setAttribute("fill", "freeze"); +feBlend.appendChild(animate1); + +// Setup animation test +function sample1() { + assert_equals(feBlend.mode.animVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN); + assert_equals(feBlend.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN); +} + +function sample2() { + assert_equals(feBlend.mode.animVal, SVGFEBlendElement.SVG_FEBLEND_MODE_NORMAL); + assert_equals(feBlend.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN); +} + +function sample3() { + assert_equals(feBlend.mode.animVal, SVGFEBlendElement.SVG_FEBLEND_MODE_MULTIPLY); + assert_equals(feBlend.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN); +} + +function sample4() { + assert_equals(feBlend.mode.animVal, SVGFEBlendElement.SVG_FEBLEND_MODE_SCREEN); + assert_equals(feBlend.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN); +} + +function sample5() { + assert_equals(feBlend.mode.animVal, SVGFEBlendElement.SVG_FEBLEND_MODE_DARKEN); + assert_equals(feBlend.mode.baseVal, SVGFEBlendElement.SVG_FEBLEND_MODE_LIGHTEN); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 0.001, sample2], + ["animation", 0.999, sample2], + ["animation", 1.001, sample3], + ["animation", 1.999, sample3], + ["animation", 2.001, sample4], + ["animation", 2.999, sample4], + ["animation", 3.001, sample5], + ["animation", 3.999, sample5], + ["animation", 4.001, sample1] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-12.html b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-12.html new file mode 100644 index 00000000000..bd60bbc20c4 --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-12.html @@ -0,0 +1,81 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Test SVGSpreadMethodType enumeration animations</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var gradient = createSVGElement("linearGradient"); +gradient.setAttribute("id", "gradient"); +rootSVGElement.appendChild(gradient); + +var stop = createSVGElement("stop"); +stop.setAttribute("offset", "1"); +stop.setAttribute("stop-color", "green"); +gradient.appendChild(stop); + +var feBlend = createSVGElement("feBlend"); +feBlend.setAttribute("in", "SourceGraphic"); +feBlend.setAttribute("in2", "img"); +feBlend.setAttribute("mode", "lighten"); +gradient.appendChild(feBlend); + +var rect = createSVGElement("rect"); +rect.setAttribute("id", "rect"); +rect.setAttribute("onclick", "executeTest()"); +rect.setAttribute("fill", "url(#gradient)"); +rect.setAttribute("width", "100"); +rect.setAttribute("height", "100"); +rootSVGElement.appendChild(rect); + +var animate1 = createSVGElement("animate"); +animate1.setAttribute("id", "animation"); +animate1.setAttribute("attributeName", "spreadMethod"); +animate1.setAttribute("begin", "0s"); +animate1.setAttribute("dur", "3s"); +animate1.setAttribute("values", "pad;reflect;repeat"); +animate1.setAttribute("fill", "freeze"); +gradient.appendChild(animate1); + +// Setup animation test +function sample1() { + assert_equals(gradient.spreadMethod.animVal, SVGGradientElement.SVG_SPREADMETHOD_PAD); + assert_equals(gradient.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_PAD); +} + +function sample2() { + assert_equals(gradient.spreadMethod.animVal, SVGGradientElement.SVG_SPREADMETHOD_REFLECT); + assert_equals(gradient.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_PAD); +} + +function sample3() { + assert_equals(gradient.spreadMethod.animVal, SVGGradientElement.SVG_SPREADMETHOD_REPEAT); + assert_equals(gradient.spreadMethod.baseVal, SVGGradientElement.SVG_SPREADMETHOD_PAD); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 0.001, sample1], + ["animation", 0.999, sample1], + ["animation", 1.001, sample2], + ["animation", 1.999, sample2], + ["animation", 2.001, sample3], + ["animation", 2.999, sample3], + ["animation", 3.001, sample3] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-13.html b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-13.html new file mode 100644 index 00000000000..c6dbb0c44de --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-13.html @@ -0,0 +1,103 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Test ChannelSelectorType enumeration animations</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defsElement = createSVGElement("defs"); +rootSVGElement.appendChild(defsElement); + +var feImage1 = createSVGElement("feImage"); +feImage1.setAttribute("result", "Map"); +feImage1.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/sphere.png"); + +var feImage2 = createSVGElement("feImage"); +feImage2.setAttribute("result", "Texture"); +feImage2.setAttributeNS(xlinkNS, "xlink:href", "../W3C-SVG-1.1/resources/DisplaceChecker.png"); + +var displacementMap = createSVGElement("feDisplacementMap"); +displacementMap.setAttribute("in", "Texture"); +displacementMap.setAttribute("in2", "Map"); +displacementMap.setAttribute("scale", "64"); +displacementMap.setAttribute("xChannelSelector", "B"); +displacementMap.setAttribute("yChannelSelector", "G"); + +var filter = createSVGElement("filter"); +filter.setAttribute("id", "filter"); +filter.setAttribute("filterUnit", "objectBoundingBox"); +filter.setAttribute("x", "0"); +filter.setAttribute("y", "0"); +filter.setAttribute("width", "1"); +filter.setAttribute("height", "1"); +filter.appendChild(feImage1); +filter.appendChild(feImage2); +filter.appendChild(displacementMap); +defsElement.appendChild(filter); + +var rect = createSVGElement("rect"); +rect.setAttribute("id", "rect"); +rect.setAttribute("onclick", "executeTest()"); +rect.setAttribute("width", "100"); +rect.setAttribute("height", "100"); +rect.setAttribute("filter", "url(#filter)"); +rootSVGElement.appendChild(rect); + +var animate1 = createSVGElement("animate"); +animate1.setAttribute("id", "animation"); +animate1.setAttribute("attributeName", "xChannelSelector"); +animate1.setAttribute("begin", "0s"); +animate1.setAttribute("dur", "4s"); +animate1.setAttribute("values", "R;G;B;A"); +animate1.setAttribute("fill", "freeze"); +displacementMap.appendChild(animate1); + +// Setup animation test +function sample1() { + assert_equals(displacementMap.xChannelSelector.animVal, SVGFEDisplacementMapElement.SVG_CHANNEL_B); + assert_equals(displacementMap.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_B); +} + +function sample2() { + assert_equals(displacementMap.xChannelSelector.animVal, SVGFEDisplacementMapElement.SVG_CHANNEL_R); + assert_equals(displacementMap.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_B); +} + +function sample3() { + assert_equals(displacementMap.xChannelSelector.animVal, SVGFEDisplacementMapElement.SVG_CHANNEL_G); + assert_equals(displacementMap.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_B); +} + +function sample4() { + assert_equals(displacementMap.xChannelSelector.animVal, SVGFEDisplacementMapElement.SVG_CHANNEL_A); + assert_equals(displacementMap.xChannelSelector.baseVal, SVGFEDisplacementMapElement.SVG_CHANNEL_B); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 0.001, sample2], + ["animation", 0.999, sample2], + ["animation", 1.001, sample3], + ["animation", 1.999, sample3], + ["animation", 2.001, sample1], + ["animation", 2.999, sample1], + ["animation", 3.001, sample4], + ["animation", 3.999, sample4], + ["animation", 4.001, sample4] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-2.html b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-2.html new file mode 100644 index 00000000000..a1e27a5ef3e --- /dev/null +++ b/tests/wpt/web-platform-tests/svg/animations/svgenum-animation-2.html @@ -0,0 +1,83 @@ +<!doctype html> +<html> +<meta charset="utf-8"> +<title>Test EdgeModeType enumeration animations</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/SVGAnimationTestCase-testharness.js"></script> + +<svg> +</svg> + +<script> +var rootSVGElement = document.querySelector("svg"); +var epsilon = 1.0; + +// Setup test document +var defs = createSVGElement("defs"); +rootSVGElement.appendChild(defs); + +var convolveMatrix = createSVGElement("feConvolveMatrix"); +convolveMatrix.setAttribute("in", "SourceGraphic"); +convolveMatrix.setAttribute("order", "3"); +convolveMatrix.setAttribute("kernelMatrix", "3 0 3 0 0 0 3 0 3"); +convolveMatrix.setAttribute("targetX", "0"); +convolveMatrix.setAttribute("edgeMode", "wrap"); + +var filter = createSVGElement("filter"); +filter.setAttribute("id", "filter"); +filter.setAttribute("filterUnits", "userSpaceOnUse"); +filter.setAttribute("x", "0"); +filter.setAttribute("y", "0"); +filter.setAttribute("width", "200"); +filter.setAttribute("height", "200"); +filter.appendChild(convolveMatrix); +defs.appendChild(filter); + +var rect = createSVGElement("rect"); +rect.setAttribute("id", "rect"); +rect.setAttribute("width", "100"); +rect.setAttribute("height", "100"); +rect.setAttribute("filter", "url(#filter)"); +rect.setAttribute("onclick", "executeTest()"); +rootSVGElement.appendChild(rect); + +var animate = createSVGElement("animate"); +animate.setAttribute("id", "animation"); +animate.setAttribute("attributeName", "edgeMode"); +animate.setAttribute("begin", "0s"); +animate.setAttribute("dur", "4s"); +animate.setAttribute("values", "duplicate;none"); +convolveMatrix.appendChild(animate); + +// Setup animation test +function sample1() { + assert_equals(convolveMatrix.edgeMode.animVal, SVGFEConvolveMatrixElement.SVG_EDGEMODE_WRAP); + assert_equals(convolveMatrix.edgeMode.baseVal, SVGFEConvolveMatrixElement.SVG_EDGEMODE_WRAP); +} + +function sample2() { + assert_equals(convolveMatrix.edgeMode.animVal, SVGFEConvolveMatrixElement.SVG_EDGEMODE_DUPLICATE); + assert_equals(convolveMatrix.edgeMode.baseVal, SVGFEConvolveMatrixElement.SVG_EDGEMODE_WRAP); +} + +function sample3() { + assert_equals(convolveMatrix.edgeMode.animVal, SVGFEConvolveMatrixElement.SVG_EDGEMODE_NONE); + assert_equals(convolveMatrix.edgeMode.baseVal, SVGFEConvolveMatrixElement.SVG_EDGEMODE_WRAP); +} + +smil_async_test((t) => { + const expectedValues = [ + // [animationId, time, sampleCallback] + ["animation", 0.0, sample1], + ["animation", 0.001, sample2], + ["animation", 1.999, sample2], + ["animation", 2.001, sample3], + ["animation", 3.999, sample3], + ["animation", 4.001, sample1] + ]; + + runAnimationTest(t, expectedValues); +}); + +</script>
\ No newline at end of file diff --git a/tests/wpt/web-platform-tests/tools/wptserve/README.md b/tests/wpt/web-platform-tests/tools/wptserve/README.md index 30a7dccc93e..6821dee38a4 100644 --- a/tests/wpt/web-platform-tests/tools/wptserve/README.md +++ b/tests/wpt/web-platform-tests/tools/wptserve/README.md @@ -3,4 +3,4 @@ wptserve Web server designed for use with web-platform-tests. -[wptserve.readthedocs.io](http://wptserve.readthedocs.io/en/latest/index.html) +See the docs on [web-platform-tests.org](https://web-platform-tests.org/tools/wptserve/docs/index.html). diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html index 4f9a998c6de..20780d94b73 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html @@ -149,22 +149,20 @@ buffer.copyFromChannel(x, 3); }, '7: buffer.copyFromChannel(x, 3)').throw(DOMException, 'IndexSizeError'); - if (window.SharedArrayBuffer) { - let shared_buffer = new Float32Array(new SharedArrayBuffer(32)); - should( - () => { - buffer.copyFromChannel(shared_buffer, 0); - }, - '8: buffer.copyFromChannel(SharedArrayBuffer view, 0)') - .throw(TypeError); - - should( - () => { - buffer.copyFromChannel(shared_buffer, 0, 0); - }, - '9: buffer.copyFromChannel(SharedArrayBuffer view, 0, 0)') - .throw(TypeError); - } + let shared_buffer = new Float32Array(new SharedArrayBuffer(32)); + should( + () => { + buffer.copyFromChannel(shared_buffer, 0); + }, + '8: buffer.copyFromChannel(SharedArrayBuffer view, 0)') + .throw(TypeError); + + should( + () => { + buffer.copyFromChannel(shared_buffer, 0, 0); + }, + '9: buffer.copyFromChannel(SharedArrayBuffer view, 0, 0)') + .throw(TypeError); task.done(); }); @@ -204,22 +202,20 @@ buffer.copyToChannel(x, 3); }, '6: buffer.copyToChannel(x, 3)').throw(DOMException, 'IndexSizeError'); - if (window.SharedArrayBuffer) { - let shared_buffer = new Float32Array(new SharedArrayBuffer(32)); - should( - () => { - buffer.copyToChannel(shared_buffer, 0); - }, - '7: buffer.copyToChannel(SharedArrayBuffer view, 0)') - .throw(TypeError); - - should( - () => { - buffer.copyToChannel(shared_buffer, 0, 0); - }, - '8: buffer.copyToChannel(SharedArrayBuffer view, 0, 0)') - .throw(TypeError); - } + let shared_buffer = new Float32Array(new SharedArrayBuffer(32)); + should( + () => { + buffer.copyToChannel(shared_buffer, 0); + }, + '7: buffer.copyToChannel(SharedArrayBuffer view, 0)') + .throw(TypeError); + + should( + () => { + buffer.copyToChannel(shared_buffer, 0, 0); + }, + '8: buffer.copyToChannel(SharedArrayBuffer view, 0, 0)') + .throw(TypeError); task.done(); }); diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html index 8194d1977ad..a5dd0049811 100644 --- a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html @@ -16,65 +16,56 @@ let filePath = 'processors/sharedarraybuffer-processor.js'; - if (window.SharedArrayBuffer) { - audit.define( - 'Test postMessage from AudioWorkletProcessor to AudioWorkletNode', - (task, should) => { - let workletNode = - new AudioWorkletNode(context, 'sharedarraybuffer-processor'); + audit.define( + 'Test postMessage from AudioWorkletProcessor to AudioWorkletNode', + (task, should) => { + let workletNode = + new AudioWorkletNode(context, 'sharedarraybuffer-processor'); - // After it is created, the worklet will send a new - // SharedArrayBuffer to the main thread. - // - // The worklet will then wait to receive a message from the main - // thread. - // - // When it receives the message, it will check whether it is a - // SharedArrayBuffer, and send this information back to the main - // thread. + // After it is created, the worklet will send a new + // SharedArrayBuffer to the main thread. + // + // The worklet will then wait to receive a message from the main + // thread. + // + // When it receives the message, it will check whether it is a + // SharedArrayBuffer, and send this information back to the main + // thread. - workletNode.port.onmessage = (event) => { - let data = event.data; - switch (data.state) { - case 'created': - should( - data.sab instanceof SharedArrayBuffer, - 'event.data.sab from worklet is an instance of SharedArrayBuffer') - .beTrue(); + workletNode.port.onmessage = (event) => { + let data = event.data; + switch (data.state) { + case 'created': + should( + data.sab instanceof SharedArrayBuffer, + 'event.data.sab from worklet is an instance of SharedArrayBuffer') + .beTrue(); - // Send a SharedArrayBuffer back to the worklet. - let sab = new SharedArrayBuffer(8); - workletNode.port.postMessage(sab); - break; + // Send a SharedArrayBuffer back to the worklet. + let sab = new SharedArrayBuffer(8); + workletNode.port.postMessage(sab); + break; - case 'received message': - should(data.isSab, 'event.data from main thread is an instance of SharedArrayBuffer') - .beTrue(); - task.done(); - break; + case 'received message': + should(data.isSab, 'event.data from main thread is an instance of SharedArrayBuffer') + .beTrue(); + task.done(); + break; - default: - should(false, - `Got unexpected message from worklet: ${data.state}`) - .beTrue(); - task.done(); - break; - } - }; + default: + should(false, + `Got unexpected message from worklet: ${data.state}`) + .beTrue(); + task.done(); + break; + } + }; - workletNode.port.onmessageerror = (event) => { - should(false, 'Got messageerror from worklet').beTrue(); - task.done(); - }; - }); - } else { - // NOTE(binji): SharedArrayBuffer is only enabled where we have site - // isolation. - audit.define('Skipping test because SharedArrayBuffer is not defined', - (task, should) => { - task.done(); + workletNode.port.onmessageerror = (event) => { + should(false, 'Got messageerror from worklet').beTrue(); + task.done(); + }; }); - } context.audioWorklet.addModule(filePath).then(() => { audit.run(); diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html.headers b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html.headers new file mode 100644 index 00000000000..63b60e490f4 --- /dev/null +++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html.headers @@ -0,0 +1,2 @@ +Cross-Origin-Opener-Policy: same-origin +Cross-Origin-Embedder-Policy: require-corp |