aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-08-07 10:23:18 +0000
committerWPT Sync Bot <josh+wptsync@joshmatthews.net>2019-08-07 14:09:56 +0000
commitb09e82fc9f9a1504a115dbcccf7976fdaf977483 (patch)
tree3e65eb07678976a092733cca0da11c422188bfd2
parentb6cdf931987e71707c217f2953e0b2a62a92868c (diff)
downloadservo-b09e82fc9f9a1504a115dbcccf7976fdaf977483.tar.gz
servo-b09e82fc9f9a1504a115dbcccf7976fdaf977483.zip
Update web-platform-tests to revision 66b4fab488695f98d15ad75b549e302a8d29f865
-rw-r--r--tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini3
-rw-r--r--tests/wpt/metadata/MANIFEST.json725
-rw-r--r--tests/wpt/metadata/css/css-transitions/properties-value-001.html.ini6
-rw-r--r--tests/wpt/metadata/css/css-transitions/properties-value-inherit-001.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/matchMedia-display-none-iframe.html.ini2
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini17
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini2
-rw-r--r--tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini5
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_1.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini4
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-innerwidth-innerheight.html.ini19
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-screenx-screeny.html.ini19
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-top-left.html.ini19
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-negative-width-height.html.ini19
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-height.html.ini34
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerheight.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-innerwidth.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-left.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screenx.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-screeny.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-top.html.ini28
-rw-r--r--tests/wpt/metadata/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-non-integer-width.html.ini34
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.ini4
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.ini10
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.ini4
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.ini4
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js.ini18
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.ini10
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.ini4
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.ini5
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.ini4
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.ini4
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.ini4
-rw-r--r--tests/wpt/metadata/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.ini40
-rw-r--r--tests/wpt/metadata/html/semantics/forms/form-submission-0/form-submission-algorithm.html.ini4
-rw-r--r--tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini7
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/processing-model-2/unhandled-promise-rejections/promise-rejection-events.html.ini4
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini3
-rw-r--r--tests/wpt/metadata/webxr/xrBoundedReferenceSpace_updates.https.html.ini2
-rw-r--r--tests/wpt/metadata/workers/baseurl/alpha/sharedworker-in-worker.html.ini1
-rw-r--r--tests/wpt/metadata/workers/constructors/Worker/Worker-constructor.html.ini2
-rw-r--r--tests/wpt/web-platform-tests/README.md5
-rw-r--r--tests/wpt/web-platform-tests/css/CSS2/floats-clear/adjoining-float-new-fc-crash.html16
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-invalid.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-columns-valid.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-invalid.html1
-rw-r--r--tests/wpt/web-platform-tests/css/css-grid/parsing/grid-auto-rows-valid.html3
-rw-r--r--tests/wpt/web-platform-tests/css/css-paint-api/background-repeat-x-ref.html12
-rw-r--r--tests/wpt/web-platform-tests/css/css-paint-api/background-repeat-x.https.html32
-rw-r--r--tests/wpt/web-platform-tests/docs/running-tests/from-local-system.md5
-rw-r--r--tests/wpt/web-platform-tests/docs/writing-tests/file-names.md2
-rw-r--r--tests/wpt/web-platform-tests/docs/writing-tests/general-guidelines.md3
-rw-r--r--tests/wpt/web-platform-tests/docs/writing-tests/testharness.md2
-rw-r--r--tests/wpt/web-platform-tests/fetch/corb/script-resource-with-nonsniffable-types.tentative.sub.html1
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000.woffbin0 -> 1308 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woffbin1276 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-axisheight1000-rulethickness1000.woffbin0 -> 1272 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woffbin1236 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000.woffbin0 -> 1292 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woffbin1260 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-axisheight1000-rulethickness1000.woffbin0 -> 1260 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woffbin1224 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000-axisheight1000.woffbin0 -> 1244 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woffbin1204 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000-axisheight1000.woffbin0 -> 1208 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woffbin1168 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000-axisheight1000.woffbin0 -> 1228 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woffbin1184 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000-axisheight1000.woffbin0 -> 1192 bytes
-rw-r--r--tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woffbin1152 -> 0 bytes
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/resources/echo-iframe.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/resources/echo-worker.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/broadcastchannel-success-and-failure.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/identity-not-preserved.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html8
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-sharedworker-success.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html8
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-coop-coep.https.any.js18
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/no-transferring.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-iframe.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-sharedworker.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/broadcastchannel-worker.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-domain.sub.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe-messagechannel.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-iframe.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-popup.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker-with-channel.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/incrementer-worker.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-1.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-2.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-3.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-iframe-4-incrementer.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/nested-worker-success.any.js)9
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/nested-worker-success.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js.headers1
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/serialization-via-history.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.sub.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-success.https.sub.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-iframe-messagechannel-success.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-messagechannel-success.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.sub.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-similar-but-cross-origin-success.https.sub.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html (renamed from tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.html)0
-rw-r--r--tests/wpt/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-simple-success.https.html.headers2
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-1.html24
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/fractions/frac-parameters-2.html24
-rw-r--r--tests/wpt/web-platform-tests/mathml/relations/css-styling/not-participating-to-parent-layout.html74
-rw-r--r--tests/wpt/web-platform-tests/mathml/support/layout-comparison.js46
-rw-r--r--tests/wpt/web-platform-tests/mathml/support/mathml-fragments.js20
-rw-r--r--tests/wpt/web-platform-tests/mathml/tools/fractions.py16
-rw-r--r--tests/wpt/web-platform-tests/mathml/tools/stacks.py36
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_sequence_at_implicit_release_on_drag.html14
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-auto-css_touch.html12
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-none_touch.html15
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_child-pan-x-child-pan-x_touch.html15
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_highest-parent-none_touch.html12
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-inherit_parent-none_touch.html15
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-none-css_touch.html15
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-css_touch.html15
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y-pan-y_touch.html15
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-x-pan-y_touch.html12
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerevent_touch-action-pan-y-css_touch.html15
-rw-r--r--tests/wpt/web-platform-tests/pointerevents/pointerlock/pointerevent_movementxy.html54
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/discard-on-discard.html54
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/force-use-shadow-tree-recreation-while-animating.html65
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/multiple-animations-ending.html421
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/multiple-animations-fill-freeze.html149
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/multiple-begin-additive-animation.html136
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/non-additive-type-by-animation.html72
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/non-additive-type-from-by-animation.html72
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/remove-animation-element-while-animation-is-running.html85
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/repeatn-remove-add-animation.html100
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/single-values-animation.html51
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgangle-animation-deg-to-grad.html93
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgangle-animation-deg-to-rad.html93
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgangle-animation-grad-to-deg.html93
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgangle-animation-grad-to-rad.html93
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgangle-animation-rad-to-deg.html93
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgangle-animation-rad-to-grad.html93
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgboolean-animation-1.html76
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgenum-animation-1.html76
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgenum-animation-10.html81
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgenum-animation-11.html95
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgenum-animation-12.html81
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgenum-animation-13.html103
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/svgenum-animation-2.html83
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/README.md2
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/audiobuffer-copy-channel.html60
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html95
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworklet-postmessage-sharedarraybuffer.https.html.headers2
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
new file mode 100644
index 00000000000..28e41f5cfb3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-axisheight1000-rulethickness1000.woff
Binary files differ
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
deleted file mode 100644
index 3d90e64302a..00000000000
--- a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff
+++ /dev/null
Binary files differ
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
new file mode 100644
index 00000000000..f0e0d5cbc2b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-axisheight1000-rulethickness1000.woff
Binary files differ
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
deleted file mode 100644
index 0b7efbaf706..00000000000
--- a/tests/wpt/web-platform-tests/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff
+++ /dev/null
Binary files differ
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
new file mode 100644
index 00000000000..d6f530d8e10
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-axisheight1000-rulethickness1000.woff
Binary files differ
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
deleted file mode 100644
index 920c81eb1bf..00000000000
--- a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff
+++ /dev/null
Binary files differ
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
new file mode 100644
index 00000000000..d2685397960
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-axisheight1000-rulethickness1000.woff
Binary files differ
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
deleted file mode 100644
index 3e70cd29a34..00000000000
--- a/tests/wpt/web-platform-tests/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff
+++ /dev/null
Binary files differ
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
new file mode 100644
index 00000000000..d8f8ae48a6d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000-axisheight1000.woff
Binary files differ
diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff
deleted file mode 100644
index 8761585484b..00000000000
--- a/tests/wpt/web-platform-tests/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff
+++ /dev/null
Binary files differ
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
new file mode 100644
index 00000000000..a3a491dbaf1
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000-axisheight1000.woff
Binary files differ
diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff
deleted file mode 100644
index 96ebce2da51..00000000000
--- a/tests/wpt/web-platform-tests/fonts/math/stack-bottomshiftdown6000.woff
+++ /dev/null
Binary files differ
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
new file mode 100644
index 00000000000..bb286182e47
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000-axisheight1000.woff
Binary files differ
diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff
deleted file mode 100644
index 556226f1226..00000000000
--- a/tests/wpt/web-platform-tests/fonts/math/stack-topdisplaystyleshiftup3000.woff
+++ /dev/null
Binary files differ
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
new file mode 100644
index 00000000000..52bc04458ca
--- /dev/null
+++ b/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000-axisheight1000.woff
Binary files differ
diff --git a/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woff b/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woff
deleted file mode 100644
index d036e893087..00000000000
--- a/tests/wpt/web-platform-tests/fonts/math/stack-topshiftup9000.woff
+++ /dev/null
Binary files differ
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