aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWPT Sync Bot <josh+wptsync@joshmatthews.net>2020-05-13 08:18:25 +0000
committerWPT Sync Bot <josh+wptsync@joshmatthews.net>2020-05-13 11:06:53 +0000
commitab5c81c0bbdefd798c58923cf726e866a3c9c185 (patch)
tree929d7af51f62bef9354e5e26b07f0126f6f8c684
parentbdfa6b0751f23c105182bbfe9929c8997c2d7073 (diff)
downloadservo-ab5c81c0bbdefd798c58923cf726e866a3c9c185.tar.gz
servo-ab5c81c0bbdefd798c58923cf726e866a3c9c185.zip
Update web-platform-tests to revision 85ffed21f7a96f6d67a5a0110459d67f50cff624
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/compositing/mix-blend-mode/mix-blend-mode-animation.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-001.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-002.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-003.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-004.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-005.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-006.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-007.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-008.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-009.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-010.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini15
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini4
-rw-r--r--tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini11
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini8
-rw-r--r--tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini (renamed from tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini)2
-rw-r--r--tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini (renamed from tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini)2
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini2
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini3
-rw-r--r--tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini5
-rw-r--r--tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html.ini7
-rw-r--r--tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini5
-rw-r--r--tests/wpt/metadata/MANIFEST.json750
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini4
-rw-r--r--tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini4
-rw-r--r--tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-animation.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative.html.ini16
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-001.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-002.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-003.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-004.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-005.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-006.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-007.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-008.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-009.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-images/image-resolution/image-resolution-010.html.ini2
-rw-r--r--tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini3
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini4
-rw-r--r--tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini3
-rw-r--r--tests/wpt/metadata/fetch/content-type/response.window.js.ini11
-rw-r--r--tests/wpt/metadata/fetch/content-type/script.window.js.ini8
-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_2.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/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini2
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini2
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini2
-rw-r--r--tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini2
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini3
-rw-r--r--tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini5
-rw-r--r--tests/wpt/metadata/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html.ini7
-rw-r--r--tests/wpt/metadata/webmessaging/without-ports/017.html.ini5
-rw-r--r--tests/wpt/web-platform-tests/.azure-pipelines.yml70
-rw-r--r--tests/wpt/web-platform-tests/cookie-store/cookieListItem_attributes.tentative.https.any.js18
-rw-r--r--tests/wpt/web-platform-tests/cookie-store/cookieStore_delete_insecure.tentative.https.any.js22
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative.html65
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html113
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-003.tentative-ref.html25
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-003.tentative.html29
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html387
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-005.tentative-ref.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-005.tentative.html24
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-001.tentative.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-002.tentative.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-003.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-004.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-005.tentative.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-font-size-clamping-001.tentative.html4
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-001.html18
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-002.html18
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-003.html18
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-004.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-005.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-006.html19
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-007.html18
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-008.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-009.html21
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-010.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-011.html22
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/reference/100x100-blue-blur4px.html2
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-192dpi.pngbin0 -> 1892 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-48dpi.pngbin0 -> 1650 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-48x192dpi.pngbin0 -> 1864 bytes
-rw-r--r--tests/wpt/web-platform-tests/css/css-scroll-anchoring/fragment-scrolling-anchors.html54
-rw-r--r--tests/wpt/web-platform-tests/css/css-scroll-anchoring/history-restore-anchors.html50
-rw-r--r--tests/wpt/web-platform-tests/css/css-scroll-anchoring/table-collapsed-borders-crash.html25
-rw-r--r--tests/wpt/web-platform-tests/css/css-ui/outline-with-001-crash.html5
-rw-r--r--tests/wpt/web-platform-tests/docs/writing-tests/server-features.md32
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/en-windows-1252.tentative.html14
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/es-maria-windows-1252.html14
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/es-nuestra-senora-windows-1252.tentative.html14
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/es-number-one-windows-1252.tentative.html14
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/es-ordinal-windows-1252.html14
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/it-number-one-windows-1252.tentative.html14
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/it-ordinal-windows-1252.html14
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/it-roman-ordinal-windows-1252.html14
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/nbsp-even-windows-1252.tentative.html14
-rw-r--r--tests/wpt/web-platform-tests/encoding-detection/nbsp-odd-windows-1252.tentative.html14
-rw-r--r--tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https.html16
-rw-r--r--tests/wpt/web-platform-tests/html/dom/elements/global-attributes/mapped-attribute-adopt-001.html23
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html82
-rw-r--r--tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/submit.jpgbin0 -> 7782 bytes
-rw-r--r--tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html14
-rw-r--r--tests/wpt/web-platform-tests/interfaces/web-animations.idl1
-rw-r--r--tests/wpt/web-platform-tests/lint.ignore4
-rw-r--r--tests/wpt/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html108
-rw-r--r--tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html39
-rw-r--r--tests/wpt/web-platform-tests/mathml/relations/css-styling/scriptlevel-001.html219
-rw-r--r--tests/wpt/web-platform-tests/orientation-event/resources/orientation-event-helpers.js10
-rw-r--r--tests/wpt/web-platform-tests/resize-observer/change-layout-in-error.html33
-rw-r--r--tests/wpt/web-platform-tests/resources/testdriver-actions.js4
-rw-r--r--tests/wpt/web-platform-tests/svg/animations/attribute-value-unaffected-by-animation.html34
-rw-r--r--tests/wpt/web-platform-tests/tools/manifest/item.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/manifest/sourcefile.py35
-rw-r--r--tests/wpt/web-platform-tests/tools/manifest/tests/test_sourcefile.py39
-rw-r--r--tests/wpt/web-platform-tests/tools/quic/README.md30
-rw-r--r--tests/wpt/web-platform-tests/tools/quic/certs/README.md12
-rw-r--r--tests/wpt/web-platform-tests/tools/quic/certs/cert.key28
-rw-r--r--tests/wpt/web-platform-tests/tools/quic/certs/cert.pem240
-rw-r--r--tests/wpt/web-platform-tests/tools/quic/certs/config.json17
-rw-r--r--tests/wpt/web-platform-tests/tools/quic/quic_transport_server.py244
-rw-r--r--tests/wpt/web-platform-tests/tools/requirements_flake8.txt4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py17
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py11
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py10
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py7
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py10
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py2
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py4
-rw-r--r--tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py22
-rw-r--r--tests/wpt/web-platform-tests/tools/wptserve/wptserve/sslutils/openssl.py2
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString-regression.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString-regression.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.html (renamed from tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy-callback-arguments.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/default-policy-callback-arguments.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.window.js (renamed from tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.https.window.js)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/nonsecure-require-trusted-types-for.tentative.html24
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/nonsecure-require-trusted-types-for.tentative.html.headers1
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.html.sub.headers (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.https.html.sub.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.html.headers (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html.headers)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/trusted-types-svg-script.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/trusted-types-svg-script.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html (renamed from tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.https.html)0
-rw-r--r--tests/wpt/web-platform-tests/visual-viewport/idlharness.window.js1
-rw-r--r--tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html77
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js9
-rw-r--r--tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-videoDetectorTest.html84
-rw-r--r--tests/wpt/web-platform-tests/webtransport/quic/client-indication.any.js32
-rw-r--r--tests/wpt/web-platform-tests/webtransport/quic/handlers/README.md2
-rw-r--r--tests/wpt/web-platform-tests/webtransport/quic/handlers/client-indication.quic.py28
240 files changed, 2991 insertions, 918 deletions
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
deleted file mode 100644
index f64b45fea6b..00000000000
--- a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-002.html]
- [Hit test float]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini
new file mode 100644
index 00000000000..4bfb0c2053a
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-004.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-004.html]
+ [Miss float below something else]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
new file mode 100644
index 00000000000..baa9f1a7541
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-005.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-005.html]
+ [Miss clipped float]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/compositing/mix-blend-mode/mix-blend-mode-animation.html.ini b/tests/wpt/metadata-layout-2020/css/compositing/mix-blend-mode/mix-blend-mode-animation.html.ini
deleted file mode 100644
index a647125277a..00000000000
--- a/tests/wpt/metadata-layout-2020/css/compositing/mix-blend-mode/mix-blend-mode-animation.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[mix-blend-mode-animation.html]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-001.html.ini
new file mode 100644
index 00000000000..874c28a9338
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-001.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-002.html.ini
new file mode 100644
index 00000000000..5768f2b9259
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-002.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-003.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-003.html.ini
new file mode 100644
index 00000000000..5e047f1f0ec
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-003.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-003.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-004.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-004.html.ini
new file mode 100644
index 00000000000..971198db35b
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-004.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-004.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-005.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-005.html.ini
new file mode 100644
index 00000000000..fe09e8a56df
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-005.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-005.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-006.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-006.html.ini
new file mode 100644
index 00000000000..88c411d4246
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-006.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-006.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-007.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-007.html.ini
new file mode 100644
index 00000000000..faf7899f3b5
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-007.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-007.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-008.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-008.html.ini
new file mode 100644
index 00000000000..f918390c553
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-008.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-008.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-009.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-009.html.ini
new file mode 100644
index 00000000000..db0026a5889
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-009.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-009.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-010.html.ini b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-010.html.ini
new file mode 100644
index 00000000000..0f4c441222f
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/css-images/image-resolution/image-resolution-010.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-010.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
index d871d11ef54..628b1fab770 100644
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -2,18 +2,3 @@
[listeners are called when <iframe> is resized]
expected: FAIL
- [listeners are called correct number of times]
- expected: FAIL
-
- [removing listener from one MQL doesn't remove it from all MQLs]
- expected: FAIL
-
- [listeners are called in order they were added]
- expected: FAIL
-
- [listeners are called in order their MQLs were created]
- expected: FAIL
-
- [listener that was added twice is called only once]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini
new file mode 100644
index 00000000000..e38782d8c85
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-001.html.ini
@@ -0,0 +1,4 @@
+[elementFromPoint-001.html]
+ [CSSOM View - 5 - extensions to the Document interface]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini
index 23c61ede1a1..c131078eace 100644
--- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini
+++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini
@@ -17,6 +17,3 @@
[test the top of layer]
expected: FAIL
- [test some point of the element: top left corner]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
index 7fdbb3a1fa2..a5195409b91 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-type/response.window.js.ini
@@ -312,24 +312,15 @@
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
expected: NOTRUN
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
- expected: FAIL
-
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: combined response Content-Type: */* text/html]
- expected: FAIL
-
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html */*]
- expected: FAIL
-
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
index 646a46c0cbb..a5b9b3752be 100644
--- a/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/content-type/script.window.js.ini
@@ -53,12 +53,6 @@
[combined text/javascript ]
expected: FAIL
- [separate text/javascript x/x]
- expected: FAIL
-
- [separate text/javascript;charset=windows-1252 error text/javascript]
- expected: FAIL
-
- [separate text/javascript error]
+ [separate text/javascript;charset=windows-1252 text/javascript]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
index 28f4c9616f6..1d1d4af041d 100644
--- a/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata-layout-2020/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -8,6 +8,9 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
- [X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
+ [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
+ expected: FAIL
+
+ [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
index 385376c7321..75d75b4cda2 100644
--- a/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
@@ -1,4 +1,4 @@
-[traverse_the_history_4.html]
+[traverse_the_history_2.html]
[Multiple history traversals, last would be aborted]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
index 385376c7321..dc2e45516de 100644
--- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
@@ -1,4 +1,4 @@
-[traverse_the_history_4.html]
+[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
index 2769c8aadf1..42ebcc9d57e 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
@@ -1,2 +1,5 @@
[iframe_sandbox_popups_escaping-1.html]
- expected: CRASH
+ expected: TIMEOUT
+ [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
+ expected: TIMEOUT
+
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
index ab43ed7acf4..295031c1812 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
@@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-3.html]
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
index 9eb581fcf1f..0407f0cc2b7 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
@@ -1,5 +1,5 @@
[iframe_sandbox_popups_nonescaping-2.html]
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
diff --git a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index f4f994c5d6f..0fbc49ea1c1 100644
--- a/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,5 +1,5 @@
[iframe_sandbox_popups_nonescaping-3.html]
- expected: TIMEOUT
+ expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
index 450c88bd32b..dbec6f2c2ff 100644
--- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
@@ -3,6 +3,3 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
- [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
- expected: FAIL
-
diff --git a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
index a1effd5f801..5ddb9bfeff6 100644
--- a/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
+++ b/tests/wpt/metadata-layout-2020/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
@@ -1,9 +1,10 @@
[promise-job-entry.html]
+ expected: TIMEOUT
[Fulfillment handler on fulfilled promise]
expected: FAIL
[Rejection handler on pending-then-rejected promise]
- expected: FAIL
+ expected: TIMEOUT
[Sanity check: this all works as expected with no promises involved]
expected: FAIL
@@ -15,5 +16,5 @@
expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html.ini b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html.ini
new file mode 100644
index 00000000000..82583c932a2
--- /dev/null
+++ b/tests/wpt/metadata-layout-2020/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html.ini
@@ -0,0 +1,7 @@
+[k-rate-audioworklet-connections.https.html]
+ [Executing "Create Test Worklet"]
+ expected: FAIL
+
+ [Executing "AudioWorklet k-rate AudioParam"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini
deleted file mode 100644
index 064cf47545b..00000000000
--- a/tests/wpt/metadata-layout-2020/webmessaging/without-ports/017.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[017.html]
- expected: TIMEOUT
- [origin of the script that invoked the method, about:blank]
- expected: TIMEOUT
-
diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json
index bf0c9acfeac..7fb55d4460c 100644
--- a/tests/wpt/metadata/MANIFEST.json
+++ b/tests/wpt/metadata/MANIFEST.json
@@ -263,6 +263,15 @@
]
]
},
+ "css-scroll-anchoring": {
+ "table-collapsed-borders-crash.html": [
+ "aa699317e2734fece3d662ad102fdd2772680e25",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
"css-shapes": {
"shape-outside": {
"supported-shapes": {
@@ -360,6 +369,15 @@
]
}
},
+ "css-ui": {
+ "outline-with-001-crash.html": [
+ "d46ba8080c3ce4fddc55698e598707384ba810b1",
+ [
+ null,
+ {}
+ ]
+ ]
+ },
"css-writing-modes": {
"bidi-inline-fragment-crash.html": [
"5d3796566b9c68abdc0defb016c1675d1ea8c9d0",
@@ -139534,34 +139552,8 @@
]
},
"math-script-level-and-math-style": {
- "math-script-level-003.tentative.html": [
- "f5bf9982e27f0fde970761d0506eff7f5b6ec741",
- [
- null,
- [
- [
- "/css/css-fonts/math-script-level-and-math-style/math-script-level-003.tentative-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
- "math-script-level-005.tentative.html": [
- "34860d7a5c2734d08984ddd061520320aeaa46e1",
- [
- null,
- [
- [
- "/css/css-fonts/math-script-level-and-math-style/math-script-level-005.tentative-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"math-script-level-auto-and-math-style-001.tentative.html": [
- "ad187b5dc254e672a66eedb2ae219ddf953156a6",
+ "51d90d131c64f7248a8d92d2ec93b0df7c7619a2",
[
null,
[
@@ -139574,7 +139566,7 @@
]
],
"math-script-level-auto-and-math-style-002.tentative.html": [
- "c111f2c38d5d0f5c614f125bde292c73727f754a",
+ "c56fc20c9c5133405996073e49a21b539d26a02a",
[
null,
[
@@ -139587,7 +139579,7 @@
]
],
"math-script-level-auto-and-math-style-003.tentative.html": [
- "4282481761207d8a947ddb8f462a9a2cd555ede8",
+ "a7b22d921bf244589442458f089e932147832b7a",
[
null,
[
@@ -139600,7 +139592,7 @@
]
],
"math-script-level-auto-and-math-style-004.tentative.html": [
- "150d4285e9802beabe7b677c96465ba261633b1c",
+ "9eca5716d8dc8452d7b6f3d9232a68d37ffbc2ec",
[
null,
[
@@ -139613,7 +139605,7 @@
]
],
"math-script-level-auto-and-math-style-005.tentative.html": [
- "718a564070d9b5c91023b1c3c054f6380527cbde",
+ "fd6d2936a9b2e4ce153525a6ba46fbec397fe174",
[
null,
[
@@ -139626,7 +139618,7 @@
]
],
"math-script-level-font-size-clamping-001.tentative.html": [
- "e25ee56c3e334d83158149528193fb7ee734df81",
+ "8570954641d81dfd02db05fde19a2d0e474ac376",
[
null,
[
@@ -146943,6 +146935,151 @@
]
]
},
+ "image-resolution": {
+ "image-resolution-001.html": [
+ "ad1ca8ba8e54258d9061ffb120a2460279832064",
+ [
+ null,
+ [
+ [
+ "/css/css-images/reference/100x100-blue.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-002.html": [
+ "334ec840aa6ca82fc2e01975c3aecdf9b82a16ef",
+ [
+ null,
+ [
+ [
+ "/css/css-images/reference/100x100-blue.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-003.html": [
+ "c7a5cd5836620ee723b06a49b1c8f8d9dfc425af",
+ [
+ null,
+ [
+ [
+ "/css/css-images/reference/100x100-blue.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-004.html": [
+ "dd6a1b997b6d1b547a5650d7ee9031170f7bb6fe",
+ [
+ null,
+ [
+ [
+ "/css/css-images/image-resolution/reference/100x100-blue-blur4px.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-005.html": [
+ "0496ec5955c5ceb34cb2295177e06a5d8a7ecaf7",
+ [
+ null,
+ [
+ [
+ "/css/css-images/image-resolution/reference/100x100-blue-blur4px.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-006.html": [
+ "0ffbbd6331ffe6ec94acbf20efc2406d239f57be",
+ [
+ null,
+ [
+ [
+ "/css/css-images/image-resolution/reference/100x100-blue-blur4px.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-007.html": [
+ "f47777ff9e30f46414382e363a2996083e37a754",
+ [
+ null,
+ [
+ [
+ "/css/css-images/reference/100x100-blue.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-008.html": [
+ "9ec62d38ae7eb1358c64ee7c8be25cb3182bbe91",
+ [
+ null,
+ [
+ [
+ "/css/css-images/reference/100x100-blue.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-009.html": [
+ "fcd4970517126827a1899cd83dd982dee306659b",
+ [
+ null,
+ [
+ [
+ "/css/css-images/reference/100x100-blue.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-010.html": [
+ "a512d5c4b00ebdc7aae63e122813a71db639f48e",
+ [
+ null,
+ [
+ [
+ "/css/css-images/image-resolution/reference/100x100-blue-blur4px.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "image-resolution-011.html": [
+ "b7a1724be1546f08307c5512c384e5e7dfb3084c",
+ [
+ null,
+ [
+ [
+ "/css/css-images/image-resolution/reference/100x100-blue-blur4px.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ]
+ },
"image-set": {
"image-set-rendering.html": [
"44ce35414f33b895930c738b95c6ced6afa7177a",
@@ -242346,7 +242483,7 @@
},
"support": {
".azure-pipelines.yml": [
- "0bf63f7a374f69063654169e0b74169fce8dc5fd",
+ "264e5d076d15df90e657ec3fe921dd089a9a6ccf",
[]
],
".codecov.yml": [
@@ -289530,14 +289667,6 @@
]
},
"math-script-level-and-math-style": {
- "math-script-level-003.tentative-ref.html": [
- "5fd8d7fed9a52b9e7b9ea3bbd885b1348899e7bf",
- []
- ],
- "math-script-level-005.tentative-ref.html": [
- "f0538695a9f5eb7d276134667b5e285508c7a7ac",
- []
- ],
"math-script-level-auto-and-math-style-001.tentative-ref.html": [
"8540de41942ffa37f8457dcee3e198bb9b06b208",
[]
@@ -297155,6 +297284,28 @@
]
}
},
+ "image-resolution": {
+ "reference": {
+ "100x100-blue-blur4px.html": [
+ "f7b541ceec963556e39c84adb7e197bbc8f9c73f",
+ []
+ ]
+ },
+ "support": {
+ "swatch-blue-192dpi.png": [
+ "2e81d91d08dd396adfed1c803c50ddf844f1554b",
+ []
+ ],
+ "swatch-blue-48dpi.png": [
+ "6c3dbbd410381ce863dc25a4a67bdeda3d363642",
+ []
+ ],
+ "swatch-blue-48x192dpi.png": [
+ "ee02902174a7ef06f0ade0799b7568b2fa740381",
+ []
+ ]
+ }
+ },
"image-set": {
"image-set-rendering-ref.html": [
"0f6a372b4ac34fedf695d2dfd9f08aa3546ce748",
@@ -316002,7 +316153,7 @@
[]
],
"server-features.md": [
- "4feb898fa96a0fd55df97235c4dd254e4be532a2",
+ "980a27d3d02f01b04ad9ff164b2da61eef8478d9",
[]
],
"server-pipes.md": [
@@ -329793,6 +329944,10 @@
"common.js": [
"c72ed7f19c4544a203be1d8e6b72a8d3214b1ec7",
[]
+ ],
+ "submit.jpg": [
+ "8909de24309e77c606b0f2a1795f69378a36a151",
+ []
]
}
}
@@ -333099,7 +333254,7 @@
[]
],
"web-animations.idl": [
- "006b27b2820f81e89a0088b996acf61fb634f325",
+ "64265c3bf3fc32cd4071d6d8386a00578f67f49f",
[]
],
"web-bluetooth.idl": [
@@ -333372,7 +333527,7 @@
]
},
"lint.ignore": [
- "49f88ddc7b339434e071522958fcc2a6aec5d237",
+ "8cfef1eded28757dc13edda1bd30c002fa6dd80d",
[]
],
"loading": {
@@ -335204,7 +335359,7 @@
],
"resources": {
"orientation-event-helpers.js": [
- "84bfc5115f38b6999a3d0fb234ce7b0a3e7608b3",
+ "307c52f00032d913bda5ac40e5bc8b39c9a72f98",
[]
]
}
@@ -338633,7 +338788,7 @@
]
},
"testdriver-actions.js": [
- "d3dc00b4d0f002670258e56d59d33061f4fc5775",
+ "870a2e8e26678085f80c030d436dd13686fb9b0b",
[]
],
"testdriver-vendor.js": [
@@ -343302,7 +343457,7 @@
[]
],
"item.py": [
- "728027589416624a22f497a4d539b289106a1b6e",
+ "6601f9c719e040219e45bc7d0dce8c4a77a2734c",
[]
],
"log.py": [
@@ -343314,7 +343469,7 @@
[]
],
"sourcefile.py": [
- "d0794a2851ebf5a30ad92b3f41c80a3e5a2f6dbb",
+ "f36ce1ab3304d7ae7b7ae1da9c25e0d7c1a3846f",
[]
],
"testpaths.py": [
@@ -343339,7 +343494,7 @@
[]
],
"test_sourcefile.py": [
- "feae1fc3fd1c53f5c761f6292a91ad2de3836470",
+ "a8fbc27071408da061e7e166026f0baa0cb518e1",
[]
],
"test_utils.py": [
@@ -343381,14 +343536,40 @@
[]
],
"quic": {
+ "README.md": [
+ "5a64b701cfb85900c219463624e6afa299a3813d",
+ []
+ ],
"__init__.py": [
"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
[]
],
+ "certs": {
+ "README.md": [
+ "216cf13fffc1bba87d610e22cf60e11043f53918",
+ []
+ ],
+ "cert.key": [
+ "993cdfa543728b6369b05eefe20811cd6662b717",
+ []
+ ],
+ "cert.pem": [
+ "7e70f1b082acb3053213bc7ee74f5e367c89ff27",
+ []
+ ],
+ "config.json": [
+ "72a6d0529fb9449c4bfb0c93546a7962a5abd22c",
+ []
+ ]
+ },
"commands.json": [
"044322eed3baf467c6d809fc26ac958598942311",
[]
],
+ "quic_transport_server.py": [
+ "10d81743693b431acba1eaa082e03f73124e050a",
+ []
+ ],
"requirements.txt": [
"165260c78f7ac8579bd911bcf9cce63645c80e45",
[]
@@ -343399,7 +343580,7 @@
]
},
"requirements_flake8.txt": [
- "2a4c7e5d7b27439f49c2c7de57a585830858b004",
+ "3be95a40de7847a8328d0401a88353c62fe05a4d",
[]
],
"requirements_mypy.txt": [
@@ -348967,7 +349148,7 @@
[]
],
"environment.py": [
- "cbbee8213266bf2f914a4066437dbfa63c774701",
+ "f76836ea66b59bb16f2d3792451bcf28ecb2fb44",
[]
],
"executors": {
@@ -348980,7 +349161,7 @@
[]
],
"base.py": [
- "5d6c283737e6a768279f69503094345c0f942880",
+ "c75a8ef320f2d149206c9ab82ce55bb754ddbb68",
[]
],
"executorchrome.py": [
@@ -349000,7 +349181,7 @@
[]
],
"executormarionette.py": [
- "3f0b92f23b3e7797918cf171566f3b4b8acbbcb0",
+ "535923fdb5e9140f8b2c593557a50398f6532b47",
[]
],
"executoropera.py": [
@@ -349012,19 +349193,19 @@
[]
],
"executorselenium.py": [
- "45692a0488bdf6ea096cc5b75448a002e1dd6c38",
+ "96312f3f9f9542fede609e6f99ef93127f122d1a",
[]
],
"executorservo.py": [
- "4816c3df06e87f8e85301918c341bbff97817777",
+ "f83f0115e0068114bb62a804b3055cb510814b15",
[]
],
"executorservodriver.py": [
- "2e47a22a9c92b4caada29db358c08104793d2770",
+ "0680c4ed2299035146c2b1e478f4b3fa1c301101",
[]
],
"executorwebdriver.py": [
- "2a0e9c7136dc147fec9a690509d6c05813ead5f0",
+ "c5f2965ec18586131bc20d394f56b78827c102ec",
[]
],
"executorwebkit.py": [
@@ -349163,11 +349344,11 @@
[]
],
"testloader.py": [
- "78967371537bed79e5a660f04c05b79decb9778b",
+ "cc9d1e539ac57c3dd5de355a66a59d2490c28351",
[]
],
"testrunner.py": [
- "f0d830787a46ad143f1e33c7783f5ff6dd1ff830",
+ "49a3525e883d15a059022a54911eecf531d836ff",
[]
],
"tests": {
@@ -349265,7 +349446,7 @@
[]
],
"wptcommandline.py": [
- "93bd886aac1e2574ab239ec615a2d866a0510ae4",
+ "96227bb46905e168d691e350946dbfba68098271",
[]
],
"wptlogging.py": [
@@ -349335,11 +349516,11 @@
}
},
"wptrunner.py": [
- "7c3adde72538463c2d9981812fb4f6fb4d53eb6b",
+ "ce15c5fbbf0bdd3d1227612a4dac9f9e9c4c3f7c",
[]
],
"wpttest.py": [
- "7c58610a7c522a3319cf6c20c1eebe15046637f9",
+ "27d7fbbbd7f41fd89261299986a18d5a4fdbb3ef",
[]
]
},
@@ -349686,7 +349867,7 @@
[]
],
"openssl.py": [
- "aea1c7380b179ced1366b6617057578b35d9e14b",
+ "64f6d5fb2db27958f33dd36b57b7c174df0bd7e9",
[]
],
"pregenerated.py": [
@@ -349738,31 +349919,27 @@
"d0743949b6a122d8bd0adf7b1ed0181f0c51429d",
[]
],
- "default-policy-report-only.tentative.https.html.headers": [
+ "default-policy-report-only.tentative.html.headers": [
"4c1ff15e167a9581839c64532078440689ca741c",
[]
],
- "default-policy.tentative.https.html.headers": [
+ "default-policy.tentative.html.headers": [
"604e765da46d85fe8ab85d3097fe7c2cbe00a930",
[]
],
- "empty-default-policy-report-only.tentative.https.html.headers": [
+ "empty-default-policy-report-only.tentative.html.headers": [
"4c1ff15e167a9581839c64532078440689ca741c",
[]
],
- "empty-default-policy.tentative.https.html.headers": [
+ "empty-default-policy.tentative.html.headers": [
"604e765da46d85fe8ab85d3097fe7c2cbe00a930",
[]
],
- "no-require-trusted-types-for-report-only.tentative.https.html.headers": [
+ "no-require-trusted-types-for-report-only.tentative.html.headers": [
"aa00fcc15a30ef1f8968be44abc1a9e934a31979",
[]
],
- "nonsecure-require-trusted-types-for.tentative.html.headers": [
- "af6596b29a8080e5cd8d688d0d6933caf49a2090",
- []
- ],
- "require-trusted-types-for-report-only.tentative.https.html.headers": [
+ "require-trusted-types-for-report-only.tentative.html.headers": [
"c6412f8d472fcfd6022b0ae485f52b3d3dedd820",
[]
],
@@ -349804,31 +349981,31 @@
[]
]
},
- "trusted-types-duplicate-names-list-report-only.tentative.https.html.headers": [
+ "trusted-types-duplicate-names-list-report-only.tentative.html.headers": [
"b6608515aa85a08dbb56531c46c097e179c76200",
[]
],
- "trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers": [
+ "trusted-types-eval-reporting-no-unsafe-eval.tentative.html.headers": [
"e4147bd2e372e4498f9a6ca138f9f29f4750561f",
[]
],
- "trusted-types-eval-reporting-report-only.tentative.https.html.headers": [
+ "trusted-types-eval-reporting-report-only.tentative.html.headers": [
"b5e94c400bb00aef7a9231c05500375f418c1065",
[]
],
- "trusted-types-eval-reporting.tentative.https.html.headers": [
+ "trusted-types-eval-reporting.tentative.html.headers": [
"3f55bba7d1b8d0965d3f9f29c7db301806f7c1a0",
[]
],
- "trusted-types-report-only.tentative.https.html.headers": [
+ "trusted-types-report-only.tentative.html.headers": [
"857a8b31e86bc395e95913ee521d4fc73109c74c",
[]
],
- "trusted-types-reporting-check-report.https.html.sub.headers": [
+ "trusted-types-reporting-check-report.html.sub.headers": [
"5830239f5ca4c45ff97f8fa9f53daba82e0e9685",
[]
],
- "trusted-types-reporting.tentative.https.html.headers": [
+ "trusted-types-reporting.tentative.html.headers": [
"fa8aceab74b0f6e937da3999d471f6afaac4c24e",
[]
]
@@ -351905,7 +352082,7 @@
[]
],
"RTCPeerConnection-helper.js": [
- "25d126f9a9badddac4169cc5884a9e3a91b66082",
+ "29145c8b927dd0df3ec35b40c49d8ded2afaa559",
[]
],
"RTCRtpCapabilities-helper.js": [
@@ -352337,6 +352514,20 @@
]
}
},
+ "webtransport": {
+ "quic": {
+ "handlers": {
+ "README.md": [
+ "22073e783a209733097b7749e11019486a237d17",
+ []
+ ],
+ "client-indication.quic.py": [
+ "da0701cc04b17b461344879a62631d65326c167b",
+ []
+ ]
+ }
+ }
+ },
"webusb": {
"META.yml": [
"546094855e50f17ef6d92f4bec412af644f155ad",
@@ -376764,7 +376955,7 @@
]
],
"cookieListItem_attributes.tentative.https.any.js": [
- "5d46b2d119c6662473eaa950fb6922f4091ed832",
+ "344277382ddfe9e72d60bd441b2fb6d9f6f7f7de",
[
"cookie-store/cookieListItem_attributes.tentative.https.any.html",
{
@@ -376985,39 +377176,6 @@
}
]
],
- "cookieStore_delete_insecure.tentative.https.any.js": [
- "aec0e28615c8cf43a87ebd5bdbfb394f9df080df",
- [
- "cookie-store/cookieStore_delete_insecure.tentative.https.any.html",
- {
- "script_metadata": [
- [
- "title",
- "Cookie Store API: cookieStore.delete() with insecure cookies"
- ],
- [
- "global",
- "window,serviceworker"
- ]
- ]
- }
- ],
- [
- "cookie-store/cookieStore_delete_insecure.tentative.https.any.serviceworker.html",
- {
- "script_metadata": [
- [
- "title",
- "Cookie Store API: cookieStore.delete() with insecure cookies"
- ],
- [
- "global",
- "window,serviceworker"
- ]
- ]
- }
- ]
- ],
"cookieStore_event_arguments.tentative.https.window.js": [
"bcb698eeb0d6ce760033ba628120ebf7772a1084",
[
@@ -383613,22 +383771,15 @@
]
],
"math-script-level-and-math-style": {
- "math-script-level-001.tentative.html": [
- "6a353a635b82d89fb6a933aad2d7554059aa3da2",
- [
- null,
- {}
- ]
- ],
"math-script-level-002.tentative.html": [
- "0abce02e72d3687023a232d7398cd014aa0633f7",
+ "1272f9559857f0b171fb4dfbebc5dff94504996f",
[
null,
{}
]
],
"math-script-level-004.tentative.html": [
- "cb82472a0c0af76af8174eaea43e1ab3e6346fd9",
+ "a938bd4d01194ad90d2ed76bbf849c6b8ffebb4c",
[
null,
{}
@@ -390388,6 +390539,13 @@
{}
]
],
+ "fragment-scrolling-anchors.html": [
+ "74b633be987ac6a2dd63ebab3ddb427836f78b7a",
+ [
+ null,
+ {}
+ ]
+ ],
"heuristic-with-offset-update-from-scroll-event-listener.html": [
"b3964dfcc71e9928c640a4e696e79352be90b40c",
[
@@ -390402,6 +390560,13 @@
{}
]
],
+ "history-restore-anchors.html": [
+ "24dfcf72ec334627b2308821037f20ab5a700d68",
+ [
+ null,
+ {}
+ ]
+ ],
"image-001.html": [
"475c9170b846f60bd5143fa43a4f10680bae1ed7",
[
@@ -419298,6 +419463,41 @@
{}
]
],
+ "en-windows-1252.tentative.html": [
+ "ac8cbe83fe201e7c538d17434fdfbab9456e6bff",
+ [
+ null,
+ {}
+ ]
+ ],
+ "es-maria-windows-1252.html": [
+ "be7a7400c693c32a9b69f27caab6f412d2dde7e7",
+ [
+ null,
+ {}
+ ]
+ ],
+ "es-nuestra-senora-windows-1252.tentative.html": [
+ "5f151395821c0072cb202432dccb145377ab3897",
+ [
+ null,
+ {}
+ ]
+ ],
+ "es-number-one-windows-1252.tentative.html": [
+ "dba025e25e81fd69f5281c0f64868fcfacc5ca1c",
+ [
+ null,
+ {}
+ ]
+ ],
+ "es-ordinal-windows-1252.html": [
+ "322621240e228617d5d864f2e010b3f85d7d22d4",
+ [
+ null,
+ {}
+ ]
+ ],
"fa-windows-1256-late.tentative.html": [
"5398445c0ee03c091ed427aec99335b4721dd3ed",
[
@@ -419368,6 +419568,27 @@
{}
]
],
+ "it-number-one-windows-1252.tentative.html": [
+ "5f5363e7a4d3ccabcb563e6b4e0d366ca5bb2e10",
+ [
+ null,
+ {}
+ ]
+ ],
+ "it-ordinal-windows-1252.html": [
+ "e75998646c0483201ec91efd63bead3da832c8ce",
+ [
+ null,
+ {}
+ ]
+ ],
+ "it-roman-ordinal-windows-1252.html": [
+ "131f9322ab82ff84142074d14624d1f3fbba20cf",
+ [
+ null,
+ {}
+ ]
+ ],
"it-windows-1252-late.tentative.html": [
"5729d20ad3c84ae602239184ce2c5c3346e3290f",
[
@@ -419466,6 +419687,20 @@
{}
]
],
+ "nbsp-even-windows-1252.tentative.html": [
+ "2450591d3d24d123f058937d9a9728d726fab10e",
+ [
+ null,
+ {}
+ ]
+ ],
+ "nbsp-odd-windows-1252.tentative.html": [
+ "2ebc33745c0bcf080fff83700d4f330fcc1a3cd8",
+ [
+ null,
+ {}
+ ]
+ ],
"pl-ISO-8859-2-late.tentative.html": [
"e5db00b005637078130753bc05aa11bca2887be8",
[
@@ -446205,7 +446440,7 @@
]
],
"coop-sandbox.https.html": [
- "5fd11643d5720f54e0b5112e96a9cfea5cafdf9d",
+ "6f10945cfafb5c2c4c00d0f29fe12c4ddaacd228",
[
null,
{}
@@ -447049,6 +447284,13 @@
{}
]
],
+ "mapped-attribute-adopt-001.html": [
+ "66ff3d64f13cdffe4413ee19534604af020203df",
+ [
+ null,
+ {}
+ ]
+ ],
"the-lang-attribute-001.html": [
"c2966f362060cd0025fa79cd4a5dbea540079656",
[
@@ -456151,6 +456393,15 @@
{}
]
],
+ "dialog-form-submission.html": [
+ "3ed9dad92341ec4c023385e50bc6087a236e42d1",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
+ ],
"dialog-open.html": [
"4719f63b853ded4577d09066eb7ef2cedf7cd934",
[
@@ -463264,7 +463515,7 @@
]
],
"navigator_user_agent.https.html": [
- "a8ed461b2e7bac8aa21b07d9fbc7a6268e952026",
+ "302f702c65f1a8781b97598983200fd816d42ad2",
[
null,
{}
@@ -466090,6 +466341,13 @@
"timeout": "long"
}
]
+ ],
+ "operator-dictionary-combining.html": [
+ "21befc92f01673ca7f3d4d2c007e9973d0f142e7",
+ [
+ null,
+ {}
+ ]
]
},
"radicals": {
@@ -466272,7 +466530,7 @@
]
],
"attribute-mapping-002.html": [
- "329578dc95a5cc6548ec70d0d0ef80e229950149",
+ "3ac942f81782fc867582243a2c42980653a6d775",
[
null,
{}
@@ -466371,6 +466629,13 @@
]
]
},
+ "scriptlevel-001.html": [
+ "11ad68d818829e2fe63510560b6d56ff39d833a8",
+ [
+ null,
+ {}
+ ]
+ ],
"width-height-001.html": [
"3947a938664882354648d78d7e32a021e2bd25c5",
[
@@ -486085,6 +486350,13 @@
]
},
"resize-observer": {
+ "change-layout-in-error.html": [
+ "9083fb48f94efe2a4d402fda2e452d72f94b1e17",
+ [
+ null,
+ {}
+ ]
+ ],
"eventloop.html": [
"3a9e453faf2eaef798daaa1171a426ea281009f5",
[
@@ -497458,6 +497730,13 @@
{}
]
],
+ "attribute-value-unaffected-by-animation.html": [
+ "55ebb0a3c9a019f921bf585bc83a0b3a1ff3422a",
+ [
+ null,
+ {}
+ ]
+ ],
"attributeTypes.html": [
"7a9ad43dd98e00f7e2af4957365441a29aedf8e6",
[
@@ -500080,77 +500359,77 @@
]
},
"trusted-types": {
- "DOMParser-parseFromString-regression.tentative.https.html": [
+ "DOMParser-parseFromString-regression.tentative.html": [
"941d1750b4a3d4fd0c53a48c62689f9665e64dc3",
[
null,
{}
]
],
- "DOMParser-parseFromString.tentative.https.html": [
+ "DOMParser-parseFromString.tentative.html": [
"2dfc37686bca15431c216a50d29f9f9eed2782e0",
[
null,
{}
]
],
- "DOMWindowTimers-setTimeout-setInterval.tentative.https.html": [
+ "DOMWindowTimers-setTimeout-setInterval.tentative.html": [
"2ad47555a92dd09f3d47e378be86e826c270d544",
[
null,
{}
]
],
- "Document-write.tentative.https.html": [
+ "Document-write.tentative.html": [
"87e9e724699efc3f0edde3afade4cf53ec2c9c3e",
[
null,
{}
]
],
- "Element-insertAdjacentHTML.tentative.https.html": [
+ "Element-insertAdjacentHTML.tentative.html": [
"6a9329b3fbf2fdfb4f00ce2acde7c38d6843d92f",
[
null,
{}
]
],
- "Element-insertAdjacentText.tentative.https.html": [
+ "Element-insertAdjacentText.tentative.html": [
"f6221362c17d6231e0921d866b1cdc642fea9d39",
[
null,
{}
]
],
- "Element-outerHTML.tentative.https.html": [
+ "Element-outerHTML.tentative.html": [
"c8daddfe9955196bf0b69410263cb7c01e473e5e",
[
null,
{}
]
],
- "Element-setAttribute.tentative.https.html": [
+ "Element-setAttribute.tentative.html": [
"cd6617915bdd16343ff2499e09991fba50b444bc",
[
null,
{}
]
],
- "Element-setAttributeNS.tentative.https.html": [
+ "Element-setAttributeNS.tentative.html": [
"67e8236febd77ed3b544126d8c5f9dd37cc513ab",
[
null,
{}
]
],
- "GlobalEventHandlers-onclick.tentative.https.html": [
+ "GlobalEventHandlers-onclick.tentative.html": [
"0fdde778cc8863600ecdcc57a6d6281b52a777d4",
[
null,
{}
]
],
- "HTMLElement-generic.tentative.https.html": [
+ "HTMLElement-generic.tentative.html": [
"3ec6cfa60da6d86e6be2e3ce68ae227441e6c5bb",
[
null,
@@ -500164,126 +500443,126 @@
{}
]
],
- "HTMLScriptElement-internal-slot.tentative.https.html": [
+ "HTMLScriptElement-internal-slot.tentative.html": [
"4f523bb4e4eec2c048d44b1beeab2a94b9e7bd31",
[
null,
{}
]
],
- "Node-multiple-arguments.tentative.https.html": [
+ "Node-multiple-arguments.tentative.html": [
"e3e4a2635e9820c762ca0c10ccd54e244e7bb499",
[
null,
{}
]
],
- "Range-createContextualFragment.tentative.https.html": [
+ "Range-createContextualFragment.tentative.html": [
"3a880a53778acb165fd5d957eeaca22685baf2b5",
[
null,
{}
]
],
- "TrustedType-AttributeNodes.tentative.https.html": [
+ "TrustedType-AttributeNodes.tentative.html": [
"6b0066570043cf320a9b3a58c30d6afa88cc1ec6",
[
null,
{}
]
],
- "TrustedTypePolicy-CSP-no-name.tentative.https.html": [
+ "TrustedTypePolicy-CSP-no-name.tentative.html": [
"b1c7f51ddb3a14603cf6f11ea437484f09366c74",
[
null,
{}
]
],
- "TrustedTypePolicy-CSP-wildcard.tentative.https.html": [
+ "TrustedTypePolicy-CSP-wildcard.tentative.html": [
"cdc683dad3b6d3028166f23ade82a8b8cd30d001",
[
null,
{}
]
],
- "TrustedTypePolicy-createXXX.tentative.https.html": [
+ "TrustedTypePolicy-createXXX.tentative.html": [
"112d1ae636aaa8f0ffafd68bd73aff11208874fb",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-constants.tentative.https.html": [
+ "TrustedTypePolicyFactory-constants.tentative.html": [
"551084ca4b6e001ce49213a3d12491a4aedaf8f4",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.https.html": [
+ "TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html": [
"746d89fa3f8c3f21cb64d6fb348de15ef9b1f3e2",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.https.html": [
+ "TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html": [
"15728b9888f3cb0c7d9f509c86949f8942a66a22",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.https.html": [
+ "TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.html": [
"9200708545c0420f8882a85fcfbfa8b4d464f6bf",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-cspTests.tentative.https.html": [
+ "TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html": [
"3a56546151e4e8fcef6bfecafa42cd50dd01ebcc",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-nameTests.tentative.https.html": [
+ "TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html": [
"9fdafb2ccf04bf2808e3399d64c83a131c8648d2",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-createPolicy-unenforced.tentative.https.html": [
+ "TrustedTypePolicyFactory-createPolicy-unenforced.tentative.html": [
"293444820216e17adb8c4f02a1615d7dfbfe2e6e",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-defaultPolicy.tentative.https.html": [
+ "TrustedTypePolicyFactory-defaultPolicy.tentative.html": [
"7ac09d8bb96c0ef163590db1552012651648b68b",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-getPropertyType.tentative.https.html": [
+ "TrustedTypePolicyFactory-getPropertyType.tentative.html": [
"861dd8bb7c6db20e59700f1d5a96af262b1d79bb",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-isXXX.tentative.https.html": [
+ "TrustedTypePolicyFactory-isXXX.tentative.html": [
"a7df477d00e26b65e72624edb9dd0fe4bb9ee90a",
[
null,
{}
]
],
- "TrustedTypePolicyFactory-metadata.tentative.https.html": [
+ "TrustedTypePolicyFactory-metadata.tentative.html": [
"a5fe7864b12df24d4ca31df66eea7b471aa80f94",
[
null,
@@ -500292,185 +500571,185 @@
}
]
],
- "Window-TrustedTypes.tentative.https.html": [
+ "Window-TrustedTypes.tentative.html": [
"718c763afafd12bfa498eb8827fb1b12b509c51d",
[
null,
{}
]
],
- "WorkerGlobalScope-importScripts.https.html": [
+ "WorkerGlobalScope-importScripts.html": [
"9853b1bc44845155ef889b7b5ee93c877844e019",
[
null,
{}
]
],
- "block-Node-multiple-arguments.tentative.https.html": [
+ "block-Node-multiple-arguments.tentative.html": [
"e87c8fca238d4dfaa4e5ca4b70ef73290aa167a7",
[
null,
{}
]
],
- "block-string-assignment-to-DOMParser-parseFromString.tentative.https.html": [
+ "block-string-assignment-to-DOMParser-parseFromString.tentative.html": [
"dd912e6b8dea596141630d7b9d18ab6bbe8c9925",
[
null,
{}
]
],
- "block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html": [
+ "block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html": [
"f36ae94ea10ce95d7087ec22ef4a25f157f7e6a8",
[
null,
{}
]
],
- "block-string-assignment-to-Document-write.tentative.https.html": [
+ "block-string-assignment-to-Document-write.tentative.html": [
"974203c1133a43afd87069b41b29ab1e5460a36d",
[
null,
{}
]
],
- "block-string-assignment-to-Element-insertAdjacentHTML.tentative.https.html": [
+ "block-string-assignment-to-Element-insertAdjacentHTML.tentative.html": [
"228887d0423d3144afd684ace223bc16a7124f9f",
[
null,
{}
]
],
- "block-string-assignment-to-Element-outerHTML.tentative.https.html": [
+ "block-string-assignment-to-Element-outerHTML.tentative.html": [
"9b6cf72cb4017c86e0d0862f967c9b26cea0c149",
[
null,
{}
]
],
- "block-string-assignment-to-Element-setAttribute.tentative.https.html": [
+ "block-string-assignment-to-Element-setAttribute.tentative.html": [
"1d39a804f39c0891bc59c0d08f14fd22ee278de1",
[
null,
{}
]
],
- "block-string-assignment-to-Element-setAttributeNS.tentative.https.html": [
+ "block-string-assignment-to-Element-setAttributeNS.tentative.html": [
"346e077a666507d0a5eba4bed6893c8c16adad6a",
[
null,
{}
]
],
- "block-string-assignment-to-HTMLElement-generic.tentative.https.html": [
+ "block-string-assignment-to-HTMLElement-generic.tentative.html": [
"9e780c1ed23dccb92ea10eaa83613422a9e59a77",
[
null,
{}
]
],
- "block-string-assignment-to-Range-createContextualFragment.tentative.https.html": [
+ "block-string-assignment-to-Range-createContextualFragment.tentative.html": [
"79111204934e689d2ce56fbb010cc3b261537c6b",
[
null,
{}
]
],
- "block-text-node-insertion-into-script-element.tentative.https.html": [
+ "block-text-node-insertion-into-script-element.tentative.html": [
"819753652a975247415d85cb77b65ba9a358bfa5",
[
null,
{}
]
],
- "csp-block-eval.tentative.https.html": [
+ "csp-block-eval.tentative.html": [
"e3911bf9e6a9340a35906d9ec70f71f6b8152951",
[
null,
{}
]
],
- "default-policy-callback-arguments.tentative.https.html": [
+ "default-policy-callback-arguments.tentative.html": [
"5944b0e92d67117a8140430dc96028cc3d8ab8ce",
[
null,
{}
]
],
- "default-policy-report-only.tentative.https.html": [
+ "default-policy-report-only.tentative.html": [
"1cff751a80194bfaef6095617a89a423b76e70b2",
[
null,
{}
]
],
- "default-policy.tentative.https.html": [
+ "default-policy.tentative.html": [
"debde85cdac9d7bb1bcb19b56f7063fea0a53241",
[
null,
{}
]
],
- "empty-default-policy-report-only.tentative.https.html": [
+ "empty-default-policy-report-only.tentative.html": [
"1ba9c5ec18e5da33725aaa9499977930563c4ba9",
[
null,
{}
]
],
- "empty-default-policy.tentative.https.html": [
+ "empty-default-policy.tentative.html": [
"d31b48ecd5a86670b7c6ea3c4d993cd3f11946df",
[
null,
{}
]
],
- "eval-csp-no-tt.tentative.https.html": [
+ "eval-csp-no-tt.tentative.html": [
"e8ed57708ef158d36cff2c0d0883910c84bb75e8",
[
null,
{}
]
],
- "eval-csp-tt-default-policy.tentative.https.html": [
+ "eval-csp-tt-default-policy.tentative.html": [
"106a024f2c1a8f4e2b2e99d2f15a81457179d807",
[
null,
{}
]
],
- "eval-csp-tt-no-default-policy.tentative.https.html": [
+ "eval-csp-tt-no-default-policy.tentative.html": [
"2f1e2a281b8859c0bda41f78818da4b48a2b46b5",
[
null,
{}
]
],
- "eval-no-csp-no-tt-default-policy.tentative.https.html": [
+ "eval-no-csp-no-tt-default-policy.tentative.html": [
"84c224eac28f6b26d4c0a15d7390185a576df716",
[
null,
{}
]
],
- "eval-no-csp-no-tt.tentative.https.html": [
+ "eval-no-csp-no-tt.tentative.html": [
"45086a1d6abdec58df8f3d5de5421bab0a2162a5",
[
null,
{}
]
],
- "eval-with-permissive-csp.tentative.https.html": [
+ "eval-with-permissive-csp.tentative.html": [
"abc698a46d31569cd105776b1c933d71c8bebf78",
[
null,
{}
]
],
- "idlharness.tentative.https.window.js": [
+ "idlharness.tentative.window.js": [
"5a854a12b78026a3318dad70ffa0d6a690e39f55",
[
- "trusted-types/idlharness.tentative.https.window.html",
+ "trusted-types/idlharness.tentative.window.html",
{
"script_metadata": [
[
@@ -500485,112 +500764,105 @@
}
]
],
- "no-require-trusted-types-for-report-only.tentative.https.html": [
+ "no-require-trusted-types-for-report-only.tentative.html": [
"651bf0a7199beab43e4f00d3c72462ffda1905f2",
[
null,
{}
]
],
- "no-require-trusted-types-for.tentative.https.html": [
+ "no-require-trusted-types-for.tentative.html": [
"651bf0a7199beab43e4f00d3c72462ffda1905f2",
[
null,
{}
]
],
- "nonsecure-require-trusted-types-for.tentative.html": [
- "46dae7a966142f4946767ac8ea8784c81f97ce15",
- [
- null,
- {}
- ]
- ],
- "require-trusted-types-for-report-only.tentative.https.html": [
+ "require-trusted-types-for-report-only.tentative.html": [
"25b4440ef4117010bb7da7c8f3ad87f01d3bf55f",
[
null,
{}
]
],
- "require-trusted-types-for.tentative.https.html": [
+ "require-trusted-types-for.tentative.html": [
"2a3820a89b8ad36c324139bf75fab8d72d7087a4",
[
null,
{}
]
],
- "trusted-types-createHTMLDocument.tentative.https.html": [
+ "trusted-types-createHTMLDocument.tentative.html": [
"e4af2eb59029a11aaa5490023fbb942063cd3722",
[
null,
{}
]
],
- "trusted-types-duplicate-names-list-report-only.tentative.https.html": [
+ "trusted-types-duplicate-names-list-report-only.tentative.html": [
"46ca2edb6fb57b354b3a80f327dbfbe6760f21c6",
[
null,
{}
]
],
- "trusted-types-duplicate-names-list.tentative.https.html": [
+ "trusted-types-duplicate-names-list.tentative.html": [
"afb2f5f7c4b7f6ddfe8da004750017e6c7f01f9a",
[
null,
{}
]
],
- "trusted-types-duplicate-names.tentative.https.html": [
+ "trusted-types-duplicate-names.tentative.html": [
"decce5356467f9f4e6a8886c6b6eff7194bf2385",
[
null,
{}
]
],
- "trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html": [
+ "trusted-types-eval-reporting-no-unsafe-eval.tentative.html": [
"081f9becbd09e7875ca3786842b9d2495df7e9ba",
[
null,
{}
]
],
- "trusted-types-eval-reporting-report-only.tentative.https.html": [
+ "trusted-types-eval-reporting-report-only.tentative.html": [
"3fd1c9ffa8d115a939348a149121103d7b97c2ae",
[
null,
{}
]
],
- "trusted-types-eval-reporting.tentative.https.html": [
+ "trusted-types-eval-reporting.tentative.html": [
"9621aaba9749a9522703f87bfd23466545f14a70",
[
null,
{}
]
],
- "trusted-types-navigation.tentative.https.html": [
+ "trusted-types-navigation.tentative.html": [
"4e784611dd64ecf2f9995403b1d4e5a19f8b4548",
[
null,
{}
]
],
- "trusted-types-report-only.tentative.https.html": [
+ "trusted-types-report-only.tentative.html": [
"fcb77841163d9a09774497d2b8588f85c2a42b06",
[
null,
{}
]
],
- "trusted-types-reporting-check-report.https.html": [
+ "trusted-types-reporting-check-report.html": [
"fc98f5cbc586e4238dbf1c8dc20b74105693bec4",
[
null,
{}
]
],
- "trusted-types-reporting.tentative.https.html": [
+ "trusted-types-reporting.tentative.html": [
"5003fc7fad5fab912e678c6fe0ec60e7935d0613",
[
null,
@@ -500599,14 +500871,14 @@
}
]
],
- "trusted-types-svg-script.tentative.https.html": [
+ "trusted-types-svg-script.tentative.html": [
"330efc0c0ac8cc316019367c298e14fdc0439af6",
[
null,
{}
]
],
- "tt-block-eval.tentative.https.html": [
+ "tt-block-eval.tentative.html": [
"13178bd44bf17f06c6d6d46433dcad273367a364",
[
null,
@@ -503679,7 +503951,7 @@
},
"visual-viewport": {
"idlharness.window.js": [
- "f0b5aeb173a567dd1160caf262a57e6ecf8328b4",
+ "8a41f8d6b87e4b383bc38e86369ea9ab42b11037",
[
"visual-viewport/idlharness.window.html",
{
@@ -503691,8 +503963,13 @@
[
"script",
"/resources/idlharness.js"
+ ],
+ [
+ "timeout",
+ "long"
]
- ]
+ ],
+ "timeout": "long"
}
]
],
@@ -508744,6 +509021,13 @@
{}
]
],
+ "k-rate-audioworklet-connections.https.html": [
+ "4d2eb40d5520fd49310ab2dc16934890fdc858a2",
+ [
+ null,
+ {}
+ ]
+ ],
"k-rate-audioworklet.https.html": [
"e891da6da2b02924aac74b9e850677dc080b57b0",
[
@@ -511624,6 +511908,15 @@
}
]
],
+ "RTCPeerConnection-videoDetectorTest.html": [
+ "c9d0f24b12b3354808795cdf293ec3ecec0914b2",
+ [
+ null,
+ {
+ "timeout": "long"
+ }
+ ]
+ ],
"RTCPeerConnectionIceEvent-constructor.html": [
"447002dca1fa35816fdd24c74dd761c1d48cf028",
[
@@ -516524,6 +516817,45 @@
]
]
},
+ "webtransport": {
+ "quic": {
+ "client-indication.any.js": [
+ "15baa5f8542cb2d1a1c73f03dca24dcd09cfc5f6",
+ [
+ "webtransport/quic/client-indication.any.html",
+ {
+ "quic": true,
+ "script_metadata": [
+ [
+ "quic",
+ "true"
+ ],
+ [
+ "script",
+ "/common/get-host-info.sub.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "webtransport/quic/client-indication.any.worker.html",
+ {
+ "quic": true,
+ "script_metadata": [
+ [
+ "quic",
+ "true"
+ ],
+ [
+ "script",
+ "/common/get-host-info.sub.js"
+ ]
+ ]
+ }
+ ]
+ ]
+ }
+ },
"webusb": {
"idlharness.https.any.js": [
"04cbf708267b0687cffc50e5138622c951b0cd9f",
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
deleted file mode 100644
index f64b45fea6b..00000000000
--- a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-002.html.ini
+++ /dev/null
@@ -1,4 +0,0 @@
-[hit-test-floats-002.html]
- [Hit test float]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini
new file mode 100644
index 00000000000..4bfb0c2053a
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-004.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-004.html]
+ [Miss float below something else]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
new file mode 100644
index 00000000000..baa9f1a7541
--- /dev/null
+++ b/tests/wpt/metadata/css/CSS2/floats/hit-test-floats-005.html.ini
@@ -0,0 +1,4 @@
+[hit-test-floats-005.html]
+ [Miss clipped float]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-animation.html.ini b/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-animation.html.ini
deleted file mode 100644
index a647125277a..00000000000
--- a/tests/wpt/metadata/css/compositing/mix-blend-mode/mix-blend-mode-animation.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[mix-blend-mode-animation.html]
- expected: TIMEOUT
diff --git a/tests/wpt/metadata/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative.html.ini b/tests/wpt/metadata/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative.html.ini
deleted file mode 100644
index 0226a9e459d..00000000000
--- a/tests/wpt/metadata/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative.html.ini
+++ /dev/null
@@ -1,16 +0,0 @@
-[math-script-level-001.tentative.html]
- [Initial value of math-script-level]
- expected: FAIL
-
- [Specified math-script-level: auto]
- expected: FAIL
-
- [Inherited values of math-script-level]
- expected: FAIL
-
- [Specified math-script-level: add(<integer>)]
- expected: FAIL
-
- [Specified math-script-level: <integer>]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-001.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-001.html.ini
new file mode 100644
index 00000000000..874c28a9338
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-001.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-001.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-002.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-002.html.ini
new file mode 100644
index 00000000000..5768f2b9259
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-002.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-002.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-003.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-003.html.ini
new file mode 100644
index 00000000000..5e047f1f0ec
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-003.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-003.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-004.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-004.html.ini
new file mode 100644
index 00000000000..971198db35b
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-004.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-004.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-005.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-005.html.ini
new file mode 100644
index 00000000000..fe09e8a56df
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-005.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-005.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-006.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-006.html.ini
new file mode 100644
index 00000000000..88c411d4246
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-006.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-006.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-007.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-007.html.ini
new file mode 100644
index 00000000000..faf7899f3b5
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-007.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-007.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-008.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-008.html.ini
new file mode 100644
index 00000000000..f918390c553
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-008.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-008.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-009.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-009.html.ini
new file mode 100644
index 00000000000..db0026a5889
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-009.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-009.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-010.html.ini b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-010.html.ini
new file mode 100644
index 00000000000..0f4c441222f
--- /dev/null
+++ b/tests/wpt/metadata/css/css-images/image-resolution/image-resolution-010.html.ini
@@ -0,0 +1,2 @@
+[image-resolution-010.html]
+ expected: FAIL
diff --git a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini
index 4a1e8110f6f..f8e7e539aae 100644
--- a/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini
+++ b/tests/wpt/metadata/css/css-transforms/transform-scale-hittest.html.ini
@@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
+ [Hit test within unscaled box]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
index c884dc82eab..628b1fab770 100644
--- a/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -2,6 +2,3 @@
[listeners are called when <iframe> is resized]
expected: FAIL
- [listeners are called correct number of times]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
new file mode 100644
index 00000000000..e38782d8c85
--- /dev/null
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPoint-001.html.ini
@@ -0,0 +1,4 @@
+[elementFromPoint-001.html]
+ [CSSOM View - 5 - extensions to the Document interface]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
index 5733d536fd3..85e94926cb3 100644
--- a/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
+++ b/tests/wpt/metadata/css/cssom-view/elementFromPosition.html.ini
@@ -21,6 +21,3 @@
[test the top of layer]
expected: FAIL
- [test some point of the element: top left corner]
- expected: FAIL
-
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 205fe66890e..338b03e7fcf 100644
--- a/tests/wpt/metadata/fetch/content-type/response.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/response.window.js.ini
@@ -312,24 +312,15 @@
[fetch(): separate response Content-Type: text/plain ]
expected: NOTRUN
- [<iframe>: separate response Content-Type: text/html;x=" text/plain]
- expected: FAIL
-
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: combined response Content-Type: */* text/html]
- expected: FAIL
-
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
- [<iframe>: separate response Content-Type: text/html */*]
- expected: FAIL
-
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
- [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
+ [<iframe>: separate response Content-Type: text/html */*;charset=gbk]
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 646a46c0cbb..a5b9b3752be 100644
--- a/tests/wpt/metadata/fetch/content-type/script.window.js.ini
+++ b/tests/wpt/metadata/fetch/content-type/script.window.js.ini
@@ -53,12 +53,6 @@
[combined text/javascript ]
expected: FAIL
- [separate text/javascript x/x]
- expected: FAIL
-
- [separate text/javascript;charset=windows-1252 error text/javascript]
- expected: FAIL
-
- [separate text/javascript error]
+ [separate text/javascript;charset=windows-1252 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 28f4c9616f6..1d1d4af041d 100644
--- a/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
+++ b/tests/wpt/metadata/fetch/nosniff/parsing-nosniff.window.js.ini
@@ -8,6 +8,9 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
- [X-Content-Type-Options%3A%0D%0AX-Content-Type-Options%3A%20nosniff]
+ [X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
+ expected: FAIL
+
+ [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
new file mode 100644
index 00000000000..75d75b4cda2
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_2.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
new file mode 100644
index 00000000000..dc2e45516de
--- /dev/null
+++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
@@ -0,0 +1,4 @@
+[traverse_the_history_5.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
index 2a166bb97b7..fc37df7e3fa 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini
@@ -1,6 +1,6 @@
[iframe_sandbox_popups_escaping-1.html]
type: testharness
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
index b3bd9f4c289..5f60c78e73c 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini
@@ -1,6 +1,6 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
index 45d8be1c898..d43f38b40cd 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
@@ -1,6 +1,6 @@
[iframe_sandbox_popups_nonescaping-2.html]
type: testharness
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index e440b1e38c6..71edac2c5ed 100644
--- a/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/metadata/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,6 +1,6 @@
[iframe_sandbox_popups_nonescaping-3.html]
type: testharness
- expected: TIMEOUT
+ expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
diff --git a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
index 01f7b72cbe7..0cef5158fae 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/events/compile-event-handler-settings-objects.html.ini
@@ -4,6 +4,3 @@
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
- [The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
- expected: FAIL
-
diff --git a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
index a1effd5f801..5ddb9bfeff6 100644
--- a/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
+++ b/tests/wpt/metadata/html/webappapis/scripting/processing-model-2/integration-with-the-javascript-job-queue/promise-job-entry.html.ini
@@ -1,9 +1,10 @@
[promise-job-entry.html]
+ expected: TIMEOUT
[Fulfillment handler on fulfilled promise]
expected: FAIL
[Rejection handler on pending-then-rejected promise]
- expected: FAIL
+ expected: TIMEOUT
[Sanity check: this all works as expected with no promises involved]
expected: FAIL
@@ -15,5 +16,5 @@
expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html.ini
new file mode 100644
index 00000000000..82583c932a2
--- /dev/null
+++ b/tests/wpt/metadata/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html.ini
@@ -0,0 +1,7 @@
+[k-rate-audioworklet-connections.https.html]
+ [Executing "Create Test Worklet"]
+ expected: FAIL
+
+ [Executing "AudioWorklet k-rate AudioParam"]
+ expected: FAIL
+
diff --git a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini b/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
deleted file mode 100644
index 064cf47545b..00000000000
--- a/tests/wpt/metadata/webmessaging/without-ports/017.html.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[017.html]
- expected: TIMEOUT
- [origin of the script that invoked the method, about:blank]
- expected: TIMEOUT
-
diff --git a/tests/wpt/web-platform-tests/.azure-pipelines.yml b/tests/wpt/web-platform-tests/.azure-pipelines.yml
index 0bf63f7a374..264e5d076d1 100644
--- a/tests/wpt/web-platform-tests/.azure-pipelines.yml
+++ b/tests/wpt/web-platform-tests/.azure-pipelines.yml
@@ -81,7 +81,7 @@ jobs:
name: test_jobs
displayName: 'Run ./wpt test-jobs'
-- job: infrastructure_macOS
+- job: infrastructure_mac
displayName: 'infrastructure/ tests: macOS'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_infrastructure']
@@ -114,7 +114,7 @@ jobs:
artifactName: 'infrastructure'
condition: always()
-- job: tools_unittest_macOS
+- job: tools_unittest_mac
displayName: 'tools/ unittests: macOS'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest']
@@ -132,8 +132,8 @@ jobs:
directory: tools/
toxenv: py27
-- job: tools_unittest_macOS_py3
- displayName: 'tools/ unittests: macOS (Python 3.6)'
+- job: tools_unittest_mac_py36
+ displayName: 'tools/ unittests: macOS + Python 3.6'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest']
pool:
@@ -148,8 +148,8 @@ jobs:
directory: tools/
toxenv: py36
-- job: tools_unittest_macOS_py38
- displayName: 'tools/ unittests: macOS (Python 3.8)'
+- job: tools_unittest_mac_py38
+ displayName: 'tools/ unittests: macOS + Python 3.8'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest']
pool:
@@ -164,7 +164,7 @@ jobs:
directory: tools/
toxenv: py38
-- job: wptrunner_unittest_macOS
+- job: wptrunner_unittest_mac
displayName: 'tools/wptrunner/ unittests: macOS'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
@@ -182,8 +182,8 @@ jobs:
directory: tools/wptrunner/
toxenv: py27
-- job: wptrunner_unittest_macOS_py3
- displayName: 'tools/wptrunner/ unittests: macOS (Python 3.6)'
+- job: wptrunner_unittest_mac_py36
+ displayName: 'tools/wptrunner/ unittests: macOS + Python 3.6'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
pool:
@@ -198,8 +198,8 @@ jobs:
directory: tools/wptrunner/
toxenv: py36
-- job: wptrunner_unittest_macOS_py38
- displayName: 'tools/wptrunner/ unittests: macOS (Python 3.8)'
+- job: wptrunner_unittest_mac_py38
+ displayName: 'tools/wptrunner/ unittests: macOS + Python 3.8'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
pool:
@@ -214,7 +214,7 @@ jobs:
directory: tools/wptrunner/
toxenv: py38
-- job: wpt_integration_macOS
+- job: wpt_integration_mac
displayName: 'tools/wpt/ tests: macOS'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wpt_integration']
@@ -236,8 +236,8 @@ jobs:
directory: tools/wpt/
toxenv: py27
-- job: wpt_integration_macOS_py3
- displayName: 'tools/wpt/ tests: macOS (Python 3.6)'
+- job: wpt_integration_mac_py36
+ displayName: 'tools/wpt/ tests: macOS + Python 3.6'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wpt_integration']
pool:
@@ -247,10 +247,6 @@ jobs:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.6.x'
- # Python 2.7 still needed to update manifest.
- - task: UsePythonVersion@0
- inputs:
- versionSpec: '2.7.x'
- template: tools/ci/azure/install_chrome.yml
- template: tools/ci/azure/install_firefox.yml
- template: tools/ci/azure/update_hosts.yml
@@ -260,8 +256,8 @@ jobs:
directory: tools/wpt/
toxenv: py36
-- job: wpt_integration_macOS_py38
- displayName: 'tools/wpt/ tests: macOS (Python 3.8)'
+- job: wpt_integratio_mac_py38
+ displayName: 'tools/wpt/ tests: macOS + Python 3.8'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wpt_integration']
pool:
@@ -271,10 +267,6 @@ jobs:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8.x'
- # Python 2.7 still needed to update manifest.
- - task: UsePythonVersion@0
- inputs:
- versionSpec: '2.7.x'
- template: tools/ci/azure/install_chrome.yml
- template: tools/ci/azure/install_firefox.yml
- template: tools/ci/azure/update_hosts.yml
@@ -302,8 +294,8 @@ jobs:
directory: tools/
toxenv: py27
-- job: tools_unittest_win_py3
- displayName: 'tools/ unittests: Windows (Python 3.6)'
+- job: tools_unittest_win_py36
+ displayName: 'tools/ unittests: Windows + Python 3.6'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest']
pool:
@@ -322,7 +314,7 @@ jobs:
toxenv: py36
- job: tools_unittest_win_py38
- displayName: 'tools/ unittests: Windows (Python 3.8)'
+ displayName: 'tools/ unittests: Windows + Python 3.8'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.tools_unittest']
pool:
@@ -356,8 +348,8 @@ jobs:
directory: tools/wptrunner/
toxenv: py27
-- job: wptrunner_unittest_win_py3
- displayName: 'tools/wptrunner/ unittests: Windows (Python 3.6)'
+- job: wptrunner_unittest_win_py36
+ displayName: 'tools/wptrunner/ unittests: Windows + Python 3.6'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
pool:
@@ -374,7 +366,7 @@ jobs:
toxenv: py36
- job: wptrunner_unittest_win_py38
- displayName: 'tools/wptrunner/ unittests: Windows (Python 3.8)'
+ displayName: 'tools/wptrunner/ unittests: Windows + Python 3.8'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wptrunner_unittest']
pool:
@@ -414,8 +406,8 @@ jobs:
directory: tools/wpt/
toxenv: py27
-- job: wpt_integration_win_py3
- displayName: 'tools/wpt/ tests: Windows (Python 3.6)'
+- job: wpt_integration_win_py36
+ displayName: 'tools/wpt/ tests: Windows + Python 3.6'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wpt_integration']
pool:
@@ -425,12 +417,6 @@ jobs:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.6.x'
- addToPath: false
- # Python 2.7 still needed to update manifest.
- - task: UsePythonVersion@0
- inputs:
- versionSpec: '2.7.x'
- addToPath: true
# currently just using the outdated Chrome/Firefox on the VM rather than
# figuring out how to install Chrome Dev channel on Windows
# - template: tools/ci/azure/install_chrome.yml
@@ -443,7 +429,7 @@ jobs:
toxenv: py36
- job: wpt_integration_win_py38
- displayName: 'tools/wpt/ tests: Windows (Python 3.8)'
+ displayName: 'tools/wpt/ tests: Windows + Python 3.8'
dependsOn: decision
condition: dependencies.decision.outputs['test_jobs.wpt_integration']
pool:
@@ -453,12 +439,6 @@ jobs:
- task: UsePythonVersion@0
inputs:
versionSpec: '3.8.x'
- addToPath: false
- # Python 2.7 still needed to update manifest.
- - task: UsePythonVersion@0
- inputs:
- versionSpec: '2.7.x'
- addToPath: true
# currently just using the outdated Chrome/Firefox on the VM rather than
# figuring out how to install Chrome Dev channel on Windows
# - template: tools/ci/azure/install_chrome.yml
diff --git a/tests/wpt/web-platform-tests/cookie-store/cookieListItem_attributes.tentative.https.any.js b/tests/wpt/web-platform-tests/cookie-store/cookieListItem_attributes.tentative.https.any.js
index 5d46b2d119c..344277382dd 100644
--- a/tests/wpt/web-platform-tests/cookie-store/cookieListItem_attributes.tentative.https.any.js
+++ b/tests/wpt/web-platform-tests/cookie-store/cookieListItem_attributes.tentative.https.any.js
@@ -191,24 +191,6 @@ promise_test(async testCase => {
assert_array_equals(Object.keys(cookie).sort(), kCookieListItemKeys);
}, 'CookieListItem - cookieStore.set adds / to path if it does not end with /');
-promise_test(async testCase => {
- await cookieStore.delete('cookie-name');
-
- await cookieStore.set('cookie-name', 'cookie-value', { secure: false });
- testCase.add_cleanup(async () => {
- await cookieStore.delete('cookie-name');
- });
- const cookie = await cookieStore.get('cookie-name');
- assert_equals(cookie.name, 'cookie-name');
- assert_equals(cookie.value, 'cookie-value');
- assert_equals(cookie.domain, null);
- assert_equals(cookie.path, '/');
- assert_equals(cookie.expires, null);
- assert_equals(cookie.secure, false);
- assert_equals(cookie.sameSite, 'strict');
- assert_array_equals(Object.keys(cookie).sort(), kCookieListItemKeys);
-}, 'CookieListItem - cookieStore.set with secure set to false');
-
['strict', 'lax', 'none'].forEach(sameSiteValue => {
promise_test(async testCase => {
await cookieStore.delete('cookie-name');
diff --git a/tests/wpt/web-platform-tests/cookie-store/cookieStore_delete_insecure.tentative.https.any.js b/tests/wpt/web-platform-tests/cookie-store/cookieStore_delete_insecure.tentative.https.any.js
deleted file mode 100644
index aec0e28615c..00000000000
--- a/tests/wpt/web-platform-tests/cookie-store/cookieStore_delete_insecure.tentative.https.any.js
+++ /dev/null
@@ -1,22 +0,0 @@
-// META: title=Cookie Store API: cookieStore.delete() with insecure cookies
-// META: global=window,serviceworker
-
-'use strict';
-
-promise_test(async t => {
- await cookieStore.set('cookie-name', 'cookie-value', { secure: false });
- t.add_cleanup(async () => { await cookieStore.delete('cookie-name'); });
-
- await cookieStore.delete('cookie-name');
- const cookie = await cookieStore.get('cookie-name');
- assert_equals(cookie, null);
-}, 'cookieStore.delete(name) can delete an insecure cookie');
-
-promise_test(async t => {
- await cookieStore.set('cookie-name', 'cookie-value', { secure: false });
- t.add_cleanup(async () => { await cookieStore.delete('cookie-name'); });
-
- await cookieStore.delete({ name: 'cookie-name' });
- const cookie = await cookieStore.get('cookie-name');
- assert_equals(cookie, null);
-}, 'cookieStore.delete(options) can delete an insecure cookie');
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative.html
deleted file mode 100644
index 6a353a635b8..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-001.tentative.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>math-script-level</title>
- <meta charset="utf-8">
- <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3746">
- <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-math-script-level-property">
- <meta name="assert" content="Check the resolved value of math-script-level">
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
- <script>
- function mathScriptLevel(id) {
- return window.getComputedStyle(document.getElementById(id)).
- getPropertyValue("math-script-level");
- }
- setup({ explicit_done: true });
- window.addEventListener("load", function() {
- test(function() {
- assert_equals(mathScriptLevel("initial"), "0");
- assert_equals(mathScriptLevel("initialFrom11"), "0");
- }, "Initial value of math-script-level");
- test(function() {
- assert_equals(mathScriptLevel("inherited11"), "11");
- assert_equals(mathScriptLevel("inherited-7"), "-7");
- }, "Inherited values of math-script-level");
- test(function() {
- assert_equals(mathScriptLevel("inherited9specifiedAutoInline"), "10");
- assert_equals(mathScriptLevel("inherited9specifiedAutoDisplay"), "9");
- }, "Specified math-script-level: auto");
- test(function() {
- assert_equals(mathScriptLevel("specified11"), "11");
- assert_equals(mathScriptLevel("specified-7"), "-7");
- }, "Specified math-script-level: <integer>");
- test(function() {
- assert_equals(mathScriptLevel("specifiedAdd10From5"), "15");
- assert_equals(mathScriptLevel("specifiedAdd-15From5"), "-10");
- }, "Specified math-script-level: add(<integer>)");
- done();
- });
- </script>
- </head>
- <body>
- <div id="log"></div>
- <div id="initial"></div>
- <div id="specified11" style="math-script-level: 11">
- <div id="initialFrom11" style="math-script-level: initial"></div>
- <div id="inherited11"></div>
- </div>
- <div id="specified-7" style="math-script-level: -7">
- <div id="inherited-7"></div>
- </div>
- <div style="math-script-level: 9">
- <div style="math-style: inline">
- <div id="inherited9specifiedAutoInline" style="math-script-level: auto" ></div>
- </div>
- <div style="math-style: display">
- <div id="inherited9specifiedAutoDisplay" style="math-script-level: auto" ></div>
- </div>
- </div>
- <div style="math-script-level: 5">
- <div id="specifiedAdd10From5" style="math-script-level: add(10)"></div>
- <div id="specifiedAdd-15From5" style="math-script-level: add(-15)"></div>
- </div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html
index 0abce02e72d..1272f955985 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-002.tentative.html
@@ -5,7 +5,8 @@
<meta charset="utf-8">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3746">
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-math-script-level-property">
- <meta name="assert" content="Verify effect of math-script-level auto | add(<integer>) | <integer>, starting from different values of math-script-level.">
+ <link rel="help" href="https://www.w3.org/TR/cssom-1/#serialize-a-css-component-value">
+ <meta name="assert" content="Verify effect of font-size: scriptlevel(auto) | scriptlevel(add(<integer>)) | scriptlevel(<integer>), starting from different values of math-script-level.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
@@ -17,6 +18,7 @@
}
</style>
<script>
+ var epsilon = .1;
function fontSize(id) {
return parseFloat((/(.+)px/).exec(getComputedStyle(document.getElementById(id)).getPropertyValue("font-size"))[1]);
}
@@ -25,11 +27,12 @@
document.fonts.ready.then(function() {
test(function() {
assert_equals(fontSize("autoDisplay"), 200);
- assert_equals(fontSize("autoInline"), 355);
+ assert_equals(fontSize("autoInline"), 500 * .71);
}, "auto");
test(function() {
- assert_equals(fontSize("autoDisplayFrom7"), 200);
- assert_equals(fontSize("autoInlineFrom7"), 355);
+ var initialSize = 2000 * Math.pow(.71, 7);
+ assert_approx_equals(fontSize("autoDisplayFrom7"), initialSize, epsilon);
+ assert_approx_equals(fontSize("autoInlineFrom7"), initialSize * .71, epsilon);
}, "auto ; starting from level 7");
test(function() {
assert_equals(fontSize("add0"), 200);
@@ -78,111 +81,111 @@
<div class="container">
<div>
<div style="font-size: 200px; math-style: display">
- <div id="autoDisplay" style="math-script-level: auto"></div>
+ <div id="autoDisplay" style="font-size: scriptlevel(auto)"></div>
</div>
<div style="font-size: 500px; math-style: inline">
- <div id="autoInline" style="math-script-level: auto"></div>
+ <div id="autoInline" style="font-size: scriptlevel(auto)"></div>
</div>
</div>
- <div>
- <div style="font-size: 200px; math-style: display; math-script-level: 7">
- <div id="autoDisplayFrom7" style="math-script-level: auto"></div>
+ <div style="font-size: 2000px;">
+ <div style="math-style: display; font-size: scriptlevel(7)">
+ <div id="autoDisplayFrom7" style="font-size: scriptlevel(auto)"></div>
</div>
- <div style="font-size: 500px; math-style: inline; math-script-level: 7">
- <div id="autoInlineFrom7" style="math-script-level: auto"></div>
+ <div style="math-style: inline; font-size: scriptlevel(7)">
+ <div id="autoInlineFrom7" style="font-size: scriptlevel(auto)"></div>
</div>
</div>
<div>
<div style="font-size: 200px">
- <div id="add0" style="math-script-level: add(0)"></div>
+ <div id="add0" style="font-size: scriptlevel(add(0))"></div>
</div>
<div style="font-size: 71px">
- <div id="add-1" style="math-script-level: add(-1)"></div>
+ <div id="add-1" style="font-size: scriptlevel(add(-1))"></div>
</div>
<div style="font-size: 500px">
- <div id="add1" style="math-script-level: add(1)"></div>
+ <div id="add1" style="font-size: scriptlevel(add(1))"></div>
</div>
<div style="font-size: 200px">
- <div id="add-2" style="math-script-level: add(-2)"></div>
+ <div id="add-2" style="font-size: scriptlevel(add(-2))"></div>
</div>
<div style="font-size: 1000px">
- <div id="add2" style="math-script-level: add(2)"></div>
+ <div id="add2" style="font-size: scriptlevel(add(2))"></div>
</div>
<div style="font-size: 30px">
- <div id="add-9" style="math-script-level: add(-9)"></div>
+ <div id="add-9" style="font-size: scriptlevel(add(-9))"></div>
</div>
<div style="font-size: 2000px">
- <div id="add9" style="math-script-level: add(9)"></div>
+ <div id="add9" style="font-size: scriptlevel(add(9))"></div>
</div>
</div>
- <div>
- <div style="font-size: 200px; math-script-level: 3;">
- <div id="add0from3" style="math-script-level: add(0)"></div>
+ <div style="font-size: scriptlevel(3);">
+ <div style="font-size: 200px;">
+ <div id="add0from3" style="font-size: scriptlevel(add(0))"></div>
</div>
- <div style="font-size: 71px; math-script-level: 3;">
- <div id="add-1from3" style="math-script-level: add(-1)"></div>
+ <div style="font-size: 71px;">
+ <div id="add-1from3" style="font-size: scriptlevel(add(-1))"></div>
</div>
- <div style="font-size: 500px; math-script-level: 3;">
- <div id="add1from3" style="math-script-level: add(1)"></div>
+ <div style="font-size: 500px;">
+ <div id="add1from3" style="font-size: scriptlevel(add(1))"></div>
</div>
- <div style="font-size: 200px; math-script-level: 3;">
- <div id="add-2from3" style="math-script-level: add(-2)"></div>
+ <div style="font-size: 200px;">
+ <div id="add-2from3" style="font-size: scriptlevel(add(-2))"></div>
</div>
- <div style="font-size: 1000px; math-script-level: 3;">
- <div id="add2from3" style="math-script-level: add(2)"></div>
+ <div style="font-size: 1000px;">
+ <div id="add2from3" style="font-size: scriptlevel(add(2))"></div>
</div>
- <div style="font-size: 30px; math-script-level: 3;">
- <div id="add-9from3" style="math-script-level: add(-9)"></div>
+ <div style="font-size: 30px;">
+ <div id="add-9from3" style="font-size: scriptlevel(add(-9))"></div>
</div>
- <div style="font-size: 2000px; math-script-level: 3;">
- <div id="add9from3" style="math-script-level: add(9)"></div>
+ <div style="font-size: 2000px;">
+ <div id="add9from3" style="font-size: scriptlevel(add(9))"></div>
</div>
</div>
<div>
<div style="font-size: 200px">
- <div id="set0" style="math-script-level: 0"></div>
+ <div id="set0" style="font-size: scriptlevel(0)"></div>
</div>
<div style="font-size: 71px">
- <div id="set-1" style="math-script-level: -1"></div>
+ <div id="set-1" style="font-size: scriptlevel(-1)"></div>
</div>
<div style="font-size: 500px">
- <div id="set1" style="math-script-level: 1"></div>
+ <div id="set1" style="font-size: scriptlevel(1)"></div>
</div>
<div style="font-size: 200px">
- <div id="set-2" style="math-script-level: -2"></div>
+ <div id="set-2" style="font-size: scriptlevel(-2)"></div>
</div>
<div style="font-size: 1000px">
- <div id="set2" style="math-script-level: 2"></div>
+ <div id="set2" style="font-size: scriptlevel(2)"></div>
</div>
<div style="font-size: 30px">
- <div id="set-9" style="math-script-level: -9"></div>
+ <div id="set-9" style="font-size: scriptlevel(-9)"></div>
</div>
<div style="font-size: 2000px">
- <div id="set9" style="math-script-level: 9"></div>
+ <div id="set9" style="font-size: scriptlevel(9)"></div>
</div>
</div>
</div>
- <div>
- <div style="font-size: 200px; math-script-level: 50">
- <div id="set50" style="math-script-level: 50"></div>
+ <div style="font-size: scriptlevel(50)">
+ <div style="font-size: 200px;">
+ <div id="set50" style="font-size: scriptlevel(50)"></div>
</div>
- <div style="font-size: 71px; math-script-level: 50">
- <div id="set49" style="math-script-level: 49"></div>
+ <div style="font-size: 71px;">
+ <div id="set49" style="font-size: scriptlevel(49)"></div>
</div>
- <div style="font-size: 500px; math-script-level: 50">
- <div id="set51" style="math-script-level: 51"></div>
+ <div style="font-size: 500px;">
+ <div id="set51" style="font-size: scriptlevel(51)"></div>
</div>
- <div style="font-size: 200px; math-script-level: 50">
- <div id="set48" style="math-script-level: 48"></div>
+ <div style="font-size: 200px;">
+ <div id="set48" style="font-size: scriptlevel(48)"></div>
</div>
- <div style="font-size: 1000px; math-script-level: 50">
- <div id="set52" style="math-script-level: 52"></div>
+ <div style="font-size: 1000px;">
+ <div id="set52" style="font-size: scriptlevel(52)"></div>
</div>
- <div style="font-size: 30px; math-script-level: 50">
- <div id="set41" style="math-script-level: 41"></div>
+ <div style="font-size: 30px;">
+ <div id="set41" style="font-size: scriptlevel(41)"></div>
</div>
- <div style="font-size: 2000px; math-script-level: 50">
- <div id="set59" style="math-script-level: 59"></div>
+ <div style="font-size: 2000px;">
+ <div id="set59" style="font-size: scriptlevel(59)"></div>
</div>
</div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-003.tentative-ref.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-003.tentative-ref.html
deleted file mode 100644
index 5fd8d7fed9a..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-003.tentative-ref.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>math-script-level</title>
- <meta charset="utf-8">
- <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
- <style>
- .container {
- /* Ahem font does not have a MATH table so the font-size scale factor
- is always 0.71^{computed - inherited math script level} */
- font: 100px/1 Ahem;
- }
- </style>
- </head>
- <body>
- <p>Test passes if you see two squares of side 100px.</p>
- <div class="container">
- <div>X</div>
- </div>
- <br/>
- <div class="container">
- <div>X</div>
- </div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-003.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-003.tentative.html
deleted file mode 100644
index f5bf9982e27..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-003.tentative.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>math-script-level</title>
- <meta charset="utf-8">
- <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3746">
- <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-math-script-level-property">
- <meta name="assert" content="If font-size is specified or if the specified value of math-script-level is initial then math-script-level does not affect the computed value of font-size.">
- <link rel="match" href="math-script-level-003.tentative-ref.html">
- <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
- <style>
- .container {
- /* Ahem font does not have a MATH table so the font-size scale factor
- is always 0.71^{computed - inherited math script level} */
- font: 100px/1 Ahem;
- }
- </style>
- </head>
- <body>
- <p>Test passes if you see two squares of side 100px.</p>
- <div class="container" style="math-script-level: 3;">
- <div style="math-script-level: 9; font-size: 100px;">X</div>
- </div>
- <br/>
- <div class="container" style="math-script-level: 3;">
- <div style="math-script-level: initial;">X</div>
- </div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html
index cb82472a0c0..a938bd4d011 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-004.tentative.html
@@ -37,13 +37,13 @@
}
.big { font-size: 3000px; }
.small { font-size: 150px; }
- .level-3 { math-script-level: -3; }
- .level-1 { math-script-level: -1; }
- .level0 { math-script-level: 0; }
- .level1 { math-script-level: 1; }
- .level2 { math-script-level: 2; }
- .level3 { math-script-level: 3; }
- .level5 { math-script-level: 5; }
+ .level-3 { font-size: scriptlevel(-3); }
+ .level-1 { font-size: scriptlevel(-1); }
+ .level0 { font-size: scriptlevel(0); }
+ .level1 { font-size: scriptlevel(1); }
+ .level2 { font-size: scriptlevel(2); }
+ .level3 { font-size: scriptlevel(3); }
+ .level5 { font-size: scriptlevel(5); }
</style>
<script>
const big = 3000;
@@ -53,10 +53,6 @@
// Delay the check to workaround WebKit's bug https://webkit.org/b/174030.
requestAnimationFrame(() => { document.fonts.ready.then(runTests); });
});
- function mathScriptLevel(element) {
- return window.getComputedStyle(element).
- getPropertyValue("math-script-level");
- }
function fontSize(element) {
return parseFloat((/(.+)px/).exec(getComputedStyle(element).
getPropertyValue("font-size"))[1]);
@@ -66,7 +62,6 @@
for (var level in sizes) {
var divs = container.getElementsByClassName(`level${level}`);
for (var i = 0; i < divs.length; i++) {
- assert_equals(mathScriptLevel(divs[i]), level);
assert_approx_equals(fontSize(divs[i]), sizes[level], 1, `Wrong font-size (id=${id} ; level=${level} ; i=${i})`);
}
}
@@ -166,28 +161,30 @@
<body>
<div id="log"></div>
- <div class="level-3 big" id="scale80-40-scaledown">
- <div class="level5"><!-- -3 to 5 --></div>
- <div class="level3"><!-- -3 to 3 --></div>
- <div class="level2"><!-- -3 to 2 --></div>
- <div class="level1"><!-- -3 to 1 --></div>
- <div class="level0"><!-- -3 to 0 --></div>
- <div class="level-1"><!-- -3 to -1 -->
- <div class="level5"><!-- -1 to 5 --></div>
- <div class="level3"><!-- -1 to 3 --></div>
- <div class="level2"><!-- -1 to 2 --></div>
- <div class="level1"><!-- -1 to 1 --></div>
- <div class="level0"><!-- -1 to 0 -->
- <div class="level5"><!-- 0 to 5 --></div>
- <div class="level3"><!-- 0 to 3 --></div>
- <div class="level2"><!-- 0 to 2 --></div>
- <div class="level1"><!-- 0 to 1 -->
- <div class="level5"><!-- 1 to 5 --></div>
- <div class="level3"><!-- 1 to 3 --></div>
- <div class="level2"><!-- 1 to 2 -->
- <div class="level5"><!-- 2 to 5 --></div>
- <div class="level3"><!-- 2 to 3 -->
- <div class="level5"><!-- 3 to 5 --></div>
+ <div class="level-3" id="scale80-40-scaledown">
+ <div class="big">
+ <div class="level5"><!-- -3 to 5 --></div>
+ <div class="level3"><!-- -3 to 3 --></div>
+ <div class="level2"><!-- -3 to 2 --></div>
+ <div class="level1"><!-- -3 to 1 --></div>
+ <div class="level0"><!-- -3 to 0 --></div>
+ <div class="level-1"><!-- -3 to -1 -->
+ <div class="level5"><!-- -1 to 5 --></div>
+ <div class="level3"><!-- -1 to 3 --></div>
+ <div class="level2"><!-- -1 to 2 --></div>
+ <div class="level1"><!-- -1 to 1 --></div>
+ <div class="level0"><!-- -1 to 0 -->
+ <div class="level5"><!-- 0 to 5 --></div>
+ <div class="level3"><!-- 0 to 3 --></div>
+ <div class="level2"><!-- 0 to 2 --></div>
+ <div class="level1"><!-- 0 to 1 -->
+ <div class="level5"><!-- 1 to 5 --></div>
+ <div class="level3"><!-- 1 to 3 --></div>
+ <div class="level2"><!-- 1 to 2 -->
+ <div class="level5"><!-- 2 to 5 --></div>
+ <div class="level3"><!-- 2 to 3 -->
+ <div class="level5"><!-- 3 to 5 --></div>
+ </div>
</div>
</div>
</div>
@@ -195,28 +192,30 @@
</div>
</div>
- <div class="level5 small" id="scale80-40-scaleup">
- <div class="level-3"><!-- 5 to -3 --></div>
- <div class="level-1"><!-- 5 to -1 --></div>
- <div class="level0"><!-- 5 to 0 --></div>
- <div class="level1"><!-- 5 to 1 --></div>
- <div class="level2"><!-- 5 to 2 --></div>
- <div class="level3"><!-- 5 to 3 -->
- <div class="level-3"><!-- 3 to -3 --></div>
- <div class="level-1"><!-- 3 to -1 --></div>
- <div class="level0"><!-- 3 to 0 --></div>
- <div class="level1"><!-- 3 to 1 --></div>
- <div class="level2"><!-- 3 to 2 -->
- <div class="level-3"><!-- 2 to -3 --></div>
- <div class="level-1"><!-- 2 to -1 --></div>
- <div class="level0"><!-- 2 to 0 --></div>
- <div class="level1"><!-- 2 to 1 -->
- <div class="level-3"><!-- 1 to -3 --></div>
- <div class="level-1"><!-- 1 to -1 --></div>
- <div class="level0"><!-- 1 to 0 -->
- <div class="level-3"><!-- 0 to -3 --></div>
- <div class="level-1"><!-- 0 to -1 -->
- <div class="level-3"><!-- -1 to -3 --></div>
+ <div class="level5" id="scale80-40-scaleup">
+ <div class="small">
+ <div class="level-3"><!-- 5 to -3 --></div>
+ <div class="level-1"><!-- 5 to -1 --></div>
+ <div class="level0"><!-- 5 to 0 --></div>
+ <div class="level1"><!-- 5 to 1 --></div>
+ <div class="level2"><!-- 5 to 2 --></div>
+ <div class="level3"><!-- 5 to 3 -->
+ <div class="level-3"><!-- 3 to -3 --></div>
+ <div class="level-1"><!-- 3 to -1 --></div>
+ <div class="level0"><!-- 3 to 0 --></div>
+ <div class="level1"><!-- 3 to 1 --></div>
+ <div class="level2"><!-- 3 to 2 -->
+ <div class="level-3"><!-- 2 to -3 --></div>
+ <div class="level-1"><!-- 2 to -1 --></div>
+ <div class="level0"><!-- 2 to 0 --></div>
+ <div class="level1"><!-- 2 to 1 -->
+ <div class="level-3"><!-- 1 to -3 --></div>
+ <div class="level-1"><!-- 1 to -1 --></div>
+ <div class="level0"><!-- 1 to 0 -->
+ <div class="level-3"><!-- 0 to -3 --></div>
+ <div class="level-1"><!-- 0 to -1 -->
+ <div class="level-3"><!-- -1 to -3 --></div>
+ </div>
</div>
</div>
</div>
@@ -224,28 +223,30 @@
</div>
</div>
- <div class="level-3 big" id="scale0-40-scaledown">
- <div class="level5"><!-- -3 to 5 --></div>
- <div class="level3"><!-- -3 to 3 --></div>
- <div class="level2"><!-- -3 to 2 --></div>
- <div class="level1"><!-- -3 to 1 --></div>
- <div class="level0"><!-- -3 to 0 --></div>
- <div class="level-1"><!-- -3 to -1 -->
- <div class="level5"><!-- -1 to 5 --></div>
- <div class="level3"><!-- -1 to 3 --></div>
- <div class="level2"><!-- -1 to 2 --></div>
- <div class="level1"><!-- -1 to 1 --></div>
- <div class="level0"><!-- -1 to 0 -->
- <div class="level5"><!-- 0 to 5 --></div>
- <div class="level3"><!-- 0 to 3 --></div>
- <div class="level2"><!-- 0 to 2 --></div>
- <div class="level1"><!-- 0 to 1 -->
- <div class="level5"><!-- 1 to 5 --></div>
- <div class="level3"><!-- 1 to 3 --></div>
- <div class="level2"><!-- 1 to 2 -->
- <div class="level5"><!-- 2 to 5 --></div>
- <div class="level3"><!-- 2 to 3 -->
- <div class="level5"><!-- 3 to 5 --></div>
+ <div class="level-3" id="scale0-40-scaledown">
+ <div class="big">
+ <div class="level5"><!-- -3 to 5 --></div>
+ <div class="level3"><!-- -3 to 3 --></div>
+ <div class="level2"><!-- -3 to 2 --></div>
+ <div class="level1"><!-- -3 to 1 --></div>
+ <div class="level0"><!-- -3 to 0 --></div>
+ <div class="level-1"><!-- -3 to -1 -->
+ <div class="level5"><!-- -1 to 5 --></div>
+ <div class="level3"><!-- -1 to 3 --></div>
+ <div class="level2"><!-- -1 to 2 --></div>
+ <div class="level1"><!-- -1 to 1 --></div>
+ <div class="level0"><!-- -1 to 0 -->
+ <div class="level5"><!-- 0 to 5 --></div>
+ <div class="level3"><!-- 0 to 3 --></div>
+ <div class="level2"><!-- 0 to 2 --></div>
+ <div class="level1"><!-- 0 to 1 -->
+ <div class="level5"><!-- 1 to 5 --></div>
+ <div class="level3"><!-- 1 to 3 --></div>
+ <div class="level2"><!-- 1 to 2 -->
+ <div class="level5"><!-- 2 to 5 --></div>
+ <div class="level3"><!-- 2 to 3 -->
+ <div class="level5"><!-- 3 to 5 --></div>
+ </div>
</div>
</div>
</div>
@@ -253,28 +254,30 @@
</div>
</div>
- <div class="level5 small" id="scale0-40-scaleup">
- <div class="level-3"><!-- 5 to -3 --></div>
- <div class="level-1"><!-- 5 to -1 --></div>
- <div class="level0"><!-- 5 to 0 --></div>
- <div class="level1"><!-- 5 to 1 --></div>
- <div class="level2"><!-- 5 to 2 --></div>
- <div class="level3"><!-- 5 to 3 -->
- <div class="level-3"><!-- 3 to -3 --></div>
- <div class="level-1"><!-- 3 to -1 --></div>
- <div class="level0"><!-- 3 to 0 --></div>
- <div class="level1"><!-- 3 to 1 --></div>
- <div class="level2"><!-- 3 to 2 -->
- <div class="level-3"><!-- 2 to -3 --></div>
- <div class="level-1"><!-- 2 to -1 --></div>
- <div class="level0"><!-- 2 to 0 --></div>
- <div class="level1"><!-- 2 to 1 -->
- <div class="level-3"><!-- 1 to -3 --></div>
- <div class="level-1"><!-- 1 to -1 --></div>
- <div class="level0"><!-- 1 to 0 -->
- <div class="level-3"><!-- 0 to -3 --></div>
- <div class="level-1"><!-- 0 to -1 -->
- <div class="level-3"><!-- -1 to -3 --></div>
+ <div class="level5" id="scale0-40-scaleup">
+ <div class="small">
+ <div class="level-3"><!-- 5 to -3 --></div>
+ <div class="level-1"><!-- 5 to -1 --></div>
+ <div class="level0"><!-- 5 to 0 --></div>
+ <div class="level1"><!-- 5 to 1 --></div>
+ <div class="level2"><!-- 5 to 2 --></div>
+ <div class="level3"><!-- 5 to 3 -->
+ <div class="level-3"><!-- 3 to -3 --></div>
+ <div class="level-1"><!-- 3 to -1 --></div>
+ <div class="level0"><!-- 3 to 0 --></div>
+ <div class="level1"><!-- 3 to 1 --></div>
+ <div class="level2"><!-- 3 to 2 -->
+ <div class="level-3"><!-- 2 to -3 --></div>
+ <div class="level-1"><!-- 2 to -1 --></div>
+ <div class="level0"><!-- 2 to 0 --></div>
+ <div class="level1"><!-- 2 to 1 -->
+ <div class="level-3"><!-- 1 to -3 --></div>
+ <div class="level-1"><!-- 1 to -1 --></div>
+ <div class="level0"><!-- 1 to 0 -->
+ <div class="level-3"><!-- 0 to -3 --></div>
+ <div class="level-1"><!-- 0 to -1 -->
+ <div class="level-3"><!-- -1 to -3 --></div>
+ </div>
</div>
</div>
</div>
@@ -282,28 +285,30 @@
</div>
</div>
- <div class="level-3 big" id="scale80-0-scaledown">
- <div class="level5"><!-- -3 to 5 --></div>
- <div class="level3"><!-- -3 to 3 --></div>
- <div class="level2"><!-- -3 to 2 --></div>
- <div class="level1"><!-- -3 to 1 --></div>
- <div class="level0"><!-- -3 to 0 --></div>
- <div class="level-1"><!-- -3 to -1 -->
- <div class="level5"><!-- -1 to 5 --></div>
- <div class="level3"><!-- -1 to 3 --></div>
- <div class="level2"><!-- -1 to 2 --></div>
- <div class="level1"><!-- -1 to 1 --></div>
- <div class="level0"><!-- -1 to 0 -->
- <div class="level5"><!-- 0 to 5 --></div>
- <div class="level3"><!-- 0 to 3 --></div>
- <div class="level2"><!-- 0 to 2 --></div>
- <div class="level1"><!-- 0 to 1 -->
- <div class="level5"><!-- 1 to 5 --></div>
- <div class="level3"><!-- 1 to 3 --></div>
- <div class="level2"><!-- 1 to 2 -->
- <div class="level5"><!-- 2 to 5 --></div>
- <div class="level3"><!-- 2 to 3 -->
- <div class="level5"><!-- 3 to 5 --></div>
+ <div class="level-3" id="scale80-0-scaledown">
+ <div class="big">
+ <div class="level5"><!-- -3 to 5 --></div>
+ <div class="level3"><!-- -3 to 3 --></div>
+ <div class="level2"><!-- -3 to 2 --></div>
+ <div class="level1"><!-- -3 to 1 --></div>
+ <div class="level0"><!-- -3 to 0 --></div>
+ <div class="level-1"><!-- -3 to -1 -->
+ <div class="level5"><!-- -1 to 5 --></div>
+ <div class="level3"><!-- -1 to 3 --></div>
+ <div class="level2"><!-- -1 to 2 --></div>
+ <div class="level1"><!-- -1 to 1 --></div>
+ <div class="level0"><!-- -1 to 0 -->
+ <div class="level5"><!-- 0 to 5 --></div>
+ <div class="level3"><!-- 0 to 3 --></div>
+ <div class="level2"><!-- 0 to 2 --></div>
+ <div class="level1"><!-- 0 to 1 -->
+ <div class="level5"><!-- 1 to 5 --></div>
+ <div class="level3"><!-- 1 to 3 --></div>
+ <div class="level2"><!-- 1 to 2 -->
+ <div class="level5"><!-- 2 to 5 --></div>
+ <div class="level3"><!-- 2 to 3 -->
+ <div class="level5"><!-- 3 to 5 --></div>
+ </div>
</div>
</div>
</div>
@@ -311,28 +316,30 @@
</div>
</div>
- <div class="level5 small" id="scale80-0-scaleup">
- <div class="level-3"><!-- 5 to -3 --></div>
- <div class="level-1"><!-- 5 to -1 --></div>
- <div class="level0"><!-- 5 to 0 --></div>
- <div class="level1"><!-- 5 to 1 --></div>
- <div class="level2"><!-- 5 to 2 --></div>
- <div class="level3"><!-- 5 to 3 -->
- <div class="level-3"><!-- 3 to -3 --></div>
- <div class="level-1"><!-- 3 to -1 --></div>
- <div class="level0"><!-- 3 to 0 --></div>
- <div class="level1"><!-- 3 to 1 --></div>
- <div class="level2"><!-- 3 to 2 -->
- <div class="level-3"><!-- 2 to -3 --></div>
- <div class="level-1"><!-- 2 to -1 --></div>
- <div class="level0"><!-- 2 to 0 --></div>
- <div class="level1"><!-- 2 to 1 -->
- <div class="level-3"><!-- 1 to -3 --></div>
- <div class="level-1"><!-- 1 to -1 --></div>
- <div class="level0"><!-- 1 to 0 -->
- <div class="level-3"><!-- 0 to -3 --></div>
- <div class="level-1"><!-- 0 to -1 -->
- <div class="level-3"><!-- -1 to -3 --></div>
+ <div class="level5" id="scale80-0-scaleup">
+ <div class="small">
+ <div class="level-3"><!-- 5 to -3 --></div>
+ <div class="level-1"><!-- 5 to -1 --></div>
+ <div class="level0"><!-- 5 to 0 --></div>
+ <div class="level1"><!-- 5 to 1 --></div>
+ <div class="level2"><!-- 5 to 2 --></div>
+ <div class="level3"><!-- 5 to 3 -->
+ <div class="level-3"><!-- 3 to -3 --></div>
+ <div class="level-1"><!-- 3 to -1 --></div>
+ <div class="level0"><!-- 3 to 0 --></div>
+ <div class="level1"><!-- 3 to 1 --></div>
+ <div class="level2"><!-- 3 to 2 -->
+ <div class="level-3"><!-- 2 to -3 --></div>
+ <div class="level-1"><!-- 2 to -1 --></div>
+ <div class="level0"><!-- 2 to 0 --></div>
+ <div class="level1"><!-- 2 to 1 -->
+ <div class="level-3"><!-- 1 to -3 --></div>
+ <div class="level-1"><!-- 1 to -1 --></div>
+ <div class="level0"><!-- 1 to 0 -->
+ <div class="level-3"><!-- 0 to -3 --></div>
+ <div class="level-1"><!-- 0 to -1 -->
+ <div class="level-3"><!-- -1 to -3 --></div>
+ </div>
</div>
</div>
</div>
@@ -340,28 +347,30 @@
</div>
</div>
- <div class="level-3 big" id="default-scaledown">
- <div class="level5"><!-- -3 to 5 --></div>
- <div class="level3"><!-- -3 to 3 --></div>
- <div class="level2"><!-- -3 to 2 --></div>
- <div class="level1"><!-- -3 to 1 --></div>
- <div class="level0"><!-- -3 to 0 --></div>
- <div class="level-1"><!-- -3 to -1 -->
- <div class="level5"><!-- -1 to 5 --></div>
- <div class="level3"><!-- -1 to 3 --></div>
- <div class="level2"><!-- -1 to 2 --></div>
- <div class="level1"><!-- -1 to 1 --></div>
- <div class="level0"><!-- -1 to 0 -->
- <div class="level5"><!-- 0 to 5 --></div>
- <div class="level3"><!-- 0 to 3 --></div>
- <div class="level2"><!-- 0 to 2 --></div>
- <div class="level1"><!-- 0 to 1 -->
- <div class="level5"><!-- 1 to 5 --></div>
- <div class="level3"><!-- 1 to 3 --></div>
- <div class="level2"><!-- 1 to 2 -->
- <div class="level5"><!-- 2 to 5 --></div>
- <div class="level3"><!-- 2 to 3 -->
- <div class="level5"><!-- 3 to 5 --></div>
+ <div class="level-3" id="default-scaledown">
+ <div class="big">
+ <div class="level5"><!-- -3 to 5 --></div>
+ <div class="level3"><!-- -3 to 3 --></div>
+ <div class="level2"><!-- -3 to 2 --></div>
+ <div class="level1"><!-- -3 to 1 --></div>
+ <div class="level0"><!-- -3 to 0 --></div>
+ <div class="level-1"><!-- -3 to -1 -->
+ <div class="level5"><!-- -1 to 5 --></div>
+ <div class="level3"><!-- -1 to 3 --></div>
+ <div class="level2"><!-- -1 to 2 --></div>
+ <div class="level1"><!-- -1 to 1 --></div>
+ <div class="level0"><!-- -1 to 0 -->
+ <div class="level5"><!-- 0 to 5 --></div>
+ <div class="level3"><!-- 0 to 3 --></div>
+ <div class="level2"><!-- 0 to 2 --></div>
+ <div class="level1"><!-- 0 to 1 -->
+ <div class="level5"><!-- 1 to 5 --></div>
+ <div class="level3"><!-- 1 to 3 --></div>
+ <div class="level2"><!-- 1 to 2 -->
+ <div class="level5"><!-- 2 to 5 --></div>
+ <div class="level3"><!-- 2 to 3 -->
+ <div class="level5"><!-- 3 to 5 --></div>
+ </div>
</div>
</div>
</div>
@@ -369,28 +378,30 @@
</div>
</div>
- <div class="level5 small" id="default-scaleup">
- <div class="level-3"><!-- 5 to -3 --></div>
- <div class="level-1"><!-- 5 to -1 --></div>
- <div class="level0"><!-- 5 to 0 --></div>
- <div class="level1"><!-- 5 to 1 --></div>
- <div class="level2"><!-- 5 to 2 --></div>
- <div class="level3"><!-- 5 to 3 -->
- <div class="level-3"><!-- 3 to -3 --></div>
- <div class="level-1"><!-- 3 to -1 --></div>
- <div class="level0"><!-- 3 to 0 --></div>
- <div class="level1"><!-- 3 to 1 --></div>
- <div class="level2"><!-- 3 to 2 -->
- <div class="level-3"><!-- 2 to -3 --></div>
- <div class="level-1"><!-- 2 to -1 --></div>
- <div class="level0"><!-- 2 to 0 --></div>
- <div class="level1"><!-- 2 to 1 -->
- <div class="level-3"><!-- 1 to -3 --></div>
- <div class="level-1"><!-- 1 to -1 --></div>
- <div class="level0"><!-- 1 to 0 -->
- <div class="level-3"><!-- 0 to -3 --></div>
- <div class="level-1"><!-- 0 to -1 -->
- <div class="level-3"><!-- -1 to -3 --></div>
+ <div class="level5" id="default-scaleup">
+ <div class="small">
+ <div class="level-3"><!-- 5 to -3 --></div>
+ <div class="level-1"><!-- 5 to -1 --></div>
+ <div class="level0"><!-- 5 to 0 --></div>
+ <div class="level1"><!-- 5 to 1 --></div>
+ <div class="level2"><!-- 5 to 2 --></div>
+ <div class="level3"><!-- 5 to 3 -->
+ <div class="level-3"><!-- 3 to -3 --></div>
+ <div class="level-1"><!-- 3 to -1 --></div>
+ <div class="level0"><!-- 3 to 0 --></div>
+ <div class="level1"><!-- 3 to 1 --></div>
+ <div class="level2"><!-- 3 to 2 -->
+ <div class="level-3"><!-- 2 to -3 --></div>
+ <div class="level-1"><!-- 2 to -1 --></div>
+ <div class="level0"><!-- 2 to 0 --></div>
+ <div class="level1"><!-- 2 to 1 -->
+ <div class="level-3"><!-- 1 to -3 --></div>
+ <div class="level-1"><!-- 1 to -1 --></div>
+ <div class="level0"><!-- 1 to 0 -->
+ <div class="level-3"><!-- 0 to -3 --></div>
+ <div class="level-1"><!-- 0 to -1 -->
+ <div class="level-3"><!-- -1 to -3 --></div>
+ </div>
</div>
</div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-005.tentative-ref.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-005.tentative-ref.html
deleted file mode 100644
index f0538695a9f..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-005.tentative-ref.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>math-script-level</title>
- <meta charset="utf-8">
- </head>
- </head>
- <body>
- <p>Test passes if you see two lines of monospace text rendered with the same font-size:</p>
- <div style="font-size: xx-large; font-family: serif">
- <div style="font-family: monospace;">
- <div>level 0</div>
- </div>
- <div style="font-family: monospace;">
- <div>level 1</div>
- </div>
- </div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-005.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-005.tentative.html
deleted file mode 100644
index 34860d7a5c2..00000000000
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-005.tentative.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<html>
- <head>
- <title>math-script-level</title>
- <meta charset="utf-8">
- <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3746">
- <link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3906">
- <link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-math-script-level-property">
- <meta name="assert" content="If the computed font-size is changed because of font-family change, math-script-level does not affect the computed value of font-size.">
- <link rel="match" href="math-script-level-005.tentative-ref.html">
- </head>
- </head>
- <body>
- <p>Test passes if you see two lines of monospace text rendered with the same font-size:</p>
- <div style="font-size: xx-large; font-family: serif">
- <div style="font-family: monospace;">
- <div>level 0</div>
- </div>
- <div style="math-script-level: 1; font-family: monospace;">
- <div>level 1</div>
- </div>
- </div>
- </body>
-</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-001.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-001.tentative.html
index ad187b5dc25..51d90d131c6 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-001.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-001.tentative.html
@@ -6,7 +6,7 @@
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3746">
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-math-script-level-property">
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-math-style-property">
- <meta name="assert" content="If math-script-level is 'auto' and the inherited value of math-style is 'display' then the computed value of math-script-level is the inherited value.">
+ <meta name="assert" content="If font-size is scriptlevel('auto') and the inherited value of math-style is 'display' then the internal scriptlevel is the one of its parent.">
<link rel="match" href="math-script-level-auto-and-math-style-001.tentative-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
@@ -20,7 +20,7 @@
<body>
<p>Test passes if you see a square of side 100 × 0.71^(0 − 0) = 100px.</p>
<div class="container" style="math-style: display;">
- <div style="math-script-level: auto">X</div>
+ <div style="font-size: scriptlevel(auto)">X</div>
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-002.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-002.tentative.html
index c111f2c38d5..c56fc20c9c5 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-002.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-002.tentative.html
@@ -6,7 +6,7 @@
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/3746">
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-math-script-level-property">
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-math-style-property">
- <meta name="assert" content="If math-script-level is 'auto' and the inherited value of math-style is 'inline' then the computed value of math-script-level is the inherited value plus one.">
+ <meta name="assert" content="If font-size is scriptlevel('auto') and the inherited value of math-style is 'inline' then the internal scriptlevel is the one of its parent.">
<link rel="match" href="math-script-level-auto-and-math-style-002.tentative-ref.html">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
@@ -20,7 +20,7 @@
<body>
<p>Test passes if you see a square of side 500 × 0.71^(1 − 0) = 355px.</p>
<div class="container" style="math-style: inline;">
- <div style="math-script-level: auto">X</div>
+ <div style="font-size: scriptlevel(auto)">X</div>
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-003.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-003.tentative.html
index 42824817612..a7b22d921bf 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-003.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-003.tentative.html
@@ -20,7 +20,7 @@
<body>
<p>Test passes if you see a square of side 500 × 0.71^(1 − 0) = 355px.</p>
<div class="container">
- <div style="math-script-level: auto">X</div>
+ <div style="font-size: scriptlevel(auto)">X</div>
</div>
</body>
</html>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-004.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-004.tentative.html
index 150d4285e98..9eca5716d8d 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-004.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-004.tentative.html
@@ -22,7 +22,7 @@
<div class="container">
<div style="math-style: display">
<div style="math-style: initial">
- <div style="math-script-level: auto">X</div>
+ <div style="font-size: scriptlevel(auto)">X</div>
</div>
</div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-005.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-005.tentative.html
index 718a564070d..fd6d2936a9b 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-005.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-auto-and-math-style-005.tentative.html
@@ -23,7 +23,7 @@
<div style="math-style: display;">
<div>
<div>
- <div style="math-script-level: auto">X</div>
+ <div style="font-size: scriptlevel(auto)">X</div>
</div>
</div>
</div>
diff --git a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-font-size-clamping-001.tentative.html b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-font-size-clamping-001.tentative.html
index e25ee56c3e3..8570954641d 100644
--- a/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-font-size-clamping-001.tentative.html
+++ b/tests/wpt/web-platform-tests/css/css-fonts/math-script-level-and-math-style/math-script-level-font-size-clamping-001.tentative.html
@@ -19,8 +19,8 @@
<body>
<p>Test passes if you see a square of side 12px.</p>
<div class="container"><!-- Initial size is 12px. -->
- <div style="math-script-level: add(8);"><!-- Size is 12*.71^8 = 0.7749042374949131 < 1px. -->
- <div style="math-script-level: add(-8);">X</div><!-- back to 12px. -->
+ <div style="font-size: scriptlevel(add(8));"><!-- Size is 12*.71^8 = 0.7749042374949131 < 1px. -->
+ <div style="font-size: scriptlevel(add(-8));">X</div><!-- back to 12px. -->
</div>
</div>
</body>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-001.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-001.html
new file mode 100644
index 00000000000..ad1ca8ba8e5
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-001.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: image-resolution set manually</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="../reference/100x100-blue.html">
+<style>
+img {
+ image-resolution: 14.4dpi;
+}
+</style>
+</head>
+<body>
+ <img src="../support/swatch-blue.png" />
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-002.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-002.html
new file mode 100644
index 00000000000..334ec840aa6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-002.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: image-resolution scaling up from image</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="../reference/100x100-blue.html">
+<style>
+img {
+ image-resolution: from-image;
+}
+</style>
+</head>
+<body>
+ <img src="support/swatch-blue-48dpi.png" />
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-003.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-003.html
new file mode 100644
index 00000000000..c7a5cd58366
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-003.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: image-resolution scaling down from image</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="../reference/100x100-blue.html">
+<style>
+img {
+ image-resolution: from-image;
+}
+</style>
+</head>
+<body>
+ <img src="support/swatch-blue-192dpi.png" />
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-004.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-004.html
new file mode 100644
index 00000000000..dd6a1b997b6
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-004.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: units in filters are not affected by manual image-resolution</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="reference/100x100-blue-blur4px.html">
+<style>
+img {
+ image-resolution: 14.4dpi;
+ filter: blur(4px);
+}
+</style>
+</head>
+<body>
+ <img src="../support/swatch-blue.png" />
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-005.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-005.html
new file mode 100644
index 00000000000..0496ec5955c
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-005.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: units in filters are not affected by image-resolution</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="reference/100x100-blue-blur4px.html">
+<style>
+img {
+ image-resolution: from-image;
+ filter: blur(4px);
+}
+</style>
+</head>
+<body>
+ <img src="support/swatch-blue-48dpi.png" />
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-006.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-006.html
new file mode 100644
index 00000000000..0ffbbd6331f
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-006.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: units in filters are not affected by image-resolution</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="reference/100x100-blue-blur4px.html">
+<style>
+img {
+ image-resolution: from-image;
+ filter: blur(4px);
+}
+</style>
+</head>
+<body>
+ <img src="support/swatch-blue-192dpi.png" />
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-007.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-007.html
new file mode 100644
index 00000000000..f47777ff9e3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-007.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: image-resolution scaling from image with animorphic aspect ratio</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="../reference/100x100-blue.html">
+<style>
+img {
+ image-resolution: from-image;
+}
+</style>
+</head>
+<body>
+ <img src="support/swatch-blue-48x192dpi.png" />
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-008.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-008.html
new file mode 100644
index 00000000000..9ec62d38ae7
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-008.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: image-resolution set manually applies to background images</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="../reference/100x100-blue.html">
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ image-resolution: 14.4dpi;
+ background: url("../support/swatch-blue.png") top left no-repeat;
+}
+</style>
+</head>
+<body>
+ <div></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-009.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-009.html
new file mode 100644
index 00000000000..fcd49705171
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-009.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: image-resolution from images applies to background images</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="../reference/100x100-blue.html">
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ image-resolution: from-image;
+ background: url("support/swatch-blue-48dpi.png") top left no-repeat;
+}
+</style>
+</head>
+<body>
+ <div></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-010.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-010.html
new file mode 100644
index 00000000000..a512d5c4b00
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-010.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: image-resolution set manually applies to background images and filters are unaffected</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="reference/100x100-blue-blur4px.html">
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ image-resolution: 14.4dpi;
+ background: url("../support/swatch-blue.png") top left no-repeat;
+ filter: blur(4px);
+}
+</style>
+</head>
+<body>
+ <div></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-011.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-011.html
new file mode 100644
index 00000000000..b7a1724be15
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/image-resolution-011.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>CSS Images Module Level 4: image-resolution set manually applies to background images and filters are unaffected</title>
+<link rel="author" title="Mike Bremford" href="http://bfo.com/">
+<link rel="help" href="https://drafts.csswg.org/css-images-4/#propdef-image-resolution">
+<link rel="match" href="reference/100x100-blue-blur4px.html">
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ /* Not exactly an image-resolution test, but confirming that background-size is applied before filter */
+ background: url("../support/swatch-blue.png") top left / 100px 100px no-repeat;
+ filter: blur(4px);
+}
+</style>
+</head>
+<body>
+ <div></div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/reference/100x100-blue-blur4px.html b/tests/wpt/web-platform-tests/css/css-images/image-resolution/reference/100x100-blue-blur4px.html
new file mode 100644
index 00000000000..f7b541ceec9
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/reference/100x100-blue-blur4px.html
@@ -0,0 +1,2 @@
+<!doctype html>
+<div style="width: 100px;height: 100px;background-color: blue;filter:blur(4px)"></div>
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-192dpi.png b/tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-192dpi.png
new file mode 100644
index 00000000000..2e81d91d08d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-192dpi.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-48dpi.png b/tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-48dpi.png
new file mode 100644
index 00000000000..6c3dbbd4103
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-48dpi.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-48x192dpi.png b/tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-48x192dpi.png
new file mode 100644
index 00000000000..ee02902174a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-images/image-resolution/support/swatch-blue-48x192dpi.png
Binary files differ
diff --git a/tests/wpt/web-platform-tests/css/css-scroll-anchoring/fragment-scrolling-anchors.html b/tests/wpt/web-platform-tests/css/css-scroll-anchoring/fragment-scrolling-anchors.html
new file mode 100644
index 00000000000..74b633be987
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-scroll-anchoring/fragment-scrolling-anchors.html
@@ -0,0 +1,54 @@
+<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring/">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ body {
+ margin: 0px;
+ height: 2000px;
+ width: 2000px;
+ }
+
+ #first {
+ height: 1000px;
+ background-color: #FFA5D2;
+ }
+
+ #anchor {
+ position: absolute;
+ background-color: #84BE6A;
+ height: 600px;
+ width: 100%;
+ }
+
+ #fragment {
+ position: relative;
+ background-color: orange;
+ height: 200px;
+ width: 200px;
+ margin: 10px;
+ }
+</style>
+
+<div id="first"></div>
+<div id="changer"></div>
+<div id="anchor">
+ <div id="fragment" name="fragment"></div>
+</div>
+
+<script>
+ test(function(t) {
+ // Note that this test passes even without scroll anchoring because of
+ // fragment anchoring.
+ window.location.hash = 'fragment';
+ // Height of first + fragment margin-top.
+ assert_equals(window.scrollY, 1010);
+
+ // Change height of content above fragment.
+ var ch = document.getElementById('changer');
+ ch.style.height = 100;
+
+ // Height of first + height changer + fragment margin-top.
+ assert_equals(window.scrollY, 1110);
+ }, 'Verify scroll anchoring interaction with fragment scrolls');
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-scroll-anchoring/history-restore-anchors.html b/tests/wpt/web-platform-tests/css/css-scroll-anchoring/history-restore-anchors.html
new file mode 100644
index 00000000000..24dfcf72ec3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-scroll-anchoring/history-restore-anchors.html
@@ -0,0 +1,50 @@
+<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring/">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ body {
+ margin: 0px;
+ height: 2000px;
+ width: 2000px;
+ }
+
+ #first {
+ height: 1000px;
+ background-color: #FFA5D2;
+ }
+
+ #anchor {
+ position: absolute;
+ background-color: #84BE6A;
+ height: 600px;
+ width: 100%;
+ }
+</style>
+
+<div id="first"></div>
+<div id="changer"></div>
+<div id="anchor"></div>
+
+<script>
+ // Navigation steps:
+ // 1- page gets loaded and anchor element gets scrolled into view.
+ // 2- loaded page refreshed.
+ async_test(function(t) {
+ if (window.name == 'second/load') {
+ assert_equals(window.scrollY, 1000);
+ // Change height of content above anchor.
+ var ch = document.getElementById('changer');
+ ch.style.height = 100;
+ // Height of first + height changer.
+ assert_equals(window.scrollY, 1100)
+ t.done();
+ } else {
+ var anchor = document.getElementById('anchor');
+ anchor.scrollIntoView();
+ assert_equals(window.scrollY, 1000);
+ window.name = "second/load";
+ window.location.reload();
+ }
+ }, 'Verify scroll anchoring interaction with history restoration');
+</script>
diff --git a/tests/wpt/web-platform-tests/css/css-scroll-anchoring/table-collapsed-borders-crash.html b/tests/wpt/web-platform-tests/css/css-scroll-anchoring/table-collapsed-borders-crash.html
new file mode 100644
index 00000000000..aa699317e27
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-scroll-anchoring/table-collapsed-borders-crash.html
@@ -0,0 +1,25 @@
+<!doctype html>
+<html class="test-wait">
+<link rel="help" href="https://drafts.csswg.org/css-scroll-anchoring/">
+<link rel="help" href="https://bugs.chromium.org/p/chromium/issues/detail?id=746570">
+<meta name="assert" content="No crash when a table with dirty internal layout is the scroll anchor."/>
+<style>
+body {
+ height:200vh;
+}
+table {
+ height: 200px;
+ width: 200px;
+ background-color: lime;
+ border-collapse: collapse; /* triggers problematic border calculation */
+}
+</style>
+
+<table id=table1></table>
+
+<script>
+ window.scrollBy(0, 10);
+ table1.innerHTML = "<tr><td style='background-color:lightblue'></td></tr>";
+ document.documentElement.classList.remove('test-wait');
+</script>
+</html>
diff --git a/tests/wpt/web-platform-tests/css/css-ui/outline-with-001-crash.html b/tests/wpt/web-platform-tests/css/css-ui/outline-with-001-crash.html
new file mode 100644
index 00000000000..d46ba8080c3
--- /dev/null
+++ b/tests/wpt/web-platform-tests/css/css-ui/outline-with-001-crash.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<title>CSS Basic User Interface Test: outline-width very big value</title>
+<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-ui/#outline-width">
+<div style="outline: solid black 100000000000000000px;"></div>
diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/server-features.md b/tests/wpt/web-platform-tests/docs/writing-tests/server-features.md
index 4feb898fa96..980a27d3d02 100644
--- a/tests/wpt/web-platform-tests/docs/writing-tests/server-features.md
+++ b/tests/wpt/web-platform-tests/docs/writing-tests/server-features.md
@@ -18,10 +18,12 @@ To make writing such tests possible, we are using a number of
server-side components designed to make it easy to manipulate the
precise details of the response:
-* *wptserve*, a custom Python HTTP server.
+* *wptserve*, a custom Python HTTP server
* *pywebsocket*, an existing websockets server
+* *tools/quic*, a custom Python 3 QUIC server using `aioquic`
+
wptserve is a Python-based web server. By default it serves static
files in the test suite. For more sophisticated requirements, several
mechanisms are available to take control of the response. These are
@@ -116,7 +118,8 @@ The server also provides the ability to write [Python
data and can manipulate the content and timing of the response. Responses are
also influenced by [the `pipe` query string parameter](server-pipes).
-### Writing tests for HTTP/2.0
+
+### Tests Requiring HTTP/2.0
The server now has a prototype HTTP/2.0 server which gives you access to
some of the HTTP/2.0 specific functionality. Currently, the server is off
@@ -126,4 +129,27 @@ API are documented in [Writing H2 Tests](h2tests).
> <b>Important:</b> The HTTP/2.0 server requires you to have Python 2.7.10+
and OpenSSL 1.0.2+. This is because HTTP/2.0 is negotiated using the
-[TLS ALPN](https://tools.ietf.org/html/rfc7301) extension, which is only supported in [OpenSSL 1.0.2](https://www.openssl.org/news/openssl-1.0.2-notes.html) and up.
+[TLS ALPN](https://tools.ietf.org/html/rfc7301) extension, which is only
+supported in
+[OpenSSL 1.0.2](https://www.openssl.org/news/openssl-1.0.2-notes.html) and up.
+
+
+### Tests Requiring QUIC
+
+We do not support loading a test over QUIC yet, but a test can establish a QUIC
+connection to the test server (e.g. for WebTransport, similar to WebSocket).
+Since the QUIC server is not yet enabled by default, tests must explicitly
+declare that they need access to the QUIC server:
+
+* For HTML tests (including testharness.js and reference tests), add the
+ following element:
+```html
+<meta name="quic" content="true">
+```
+* For JavaScript tests (auto-generated tests), add the following comment:
+```js
+// META: quic=true
+```
+
+The QUIC server is not yet enabled by default, so QUIC tests will be skipped
+unless `--enable-quic` is specified to `./wpt run`.
diff --git a/tests/wpt/web-platform-tests/encoding-detection/en-windows-1252.tentative.html b/tests/wpt/web-platform-tests/encoding-detection/en-windows-1252.tentative.html
new file mode 100644
index 00000000000..ac8cbe83fe2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/en-windows-1252.tentative.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>en windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>Ive made an encoding test.</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/encoding-detection/es-maria-windows-1252.html b/tests/wpt/web-platform-tests/encoding-detection/es-maria-windows-1252.html
new file mode 100644
index 00000000000..be7a7400c69
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/es-maria-windows-1252.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>es windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>M</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/encoding-detection/es-nuestra-senora-windows-1252.tentative.html b/tests/wpt/web-platform-tests/encoding-detection/es-nuestra-senora-windows-1252.tentative.html
new file mode 100644
index 00000000000..5f151395821
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/es-nuestra-senora-windows-1252.tentative.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>es windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>N S</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/encoding-detection/es-number-one-windows-1252.tentative.html b/tests/wpt/web-platform-tests/encoding-detection/es-number-one-windows-1252.tentative.html
new file mode 100644
index 00000000000..dba025e25e8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/es-number-one-windows-1252.tentative.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>es windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>n.1</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/encoding-detection/es-ordinal-windows-1252.html b/tests/wpt/web-platform-tests/encoding-detection/es-ordinal-windows-1252.html
new file mode 100644
index 00000000000..322621240e2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/es-ordinal-windows-1252.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>es windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>42.</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/encoding-detection/it-number-one-windows-1252.tentative.html b/tests/wpt/web-platform-tests/encoding-detection/it-number-one-windows-1252.tentative.html
new file mode 100644
index 00000000000..5f5363e7a4d
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/it-number-one-windows-1252.tentative.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>fi windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>N1</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/encoding-detection/it-ordinal-windows-1252.html b/tests/wpt/web-platform-tests/encoding-detection/it-ordinal-windows-1252.html
new file mode 100644
index 00000000000..e75998646c0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/it-ordinal-windows-1252.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>it windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>42</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/encoding-detection/it-roman-ordinal-windows-1252.html b/tests/wpt/web-platform-tests/encoding-detection/it-roman-ordinal-windows-1252.html
new file mode 100644
index 00000000000..131f9322ab8
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/it-roman-ordinal-windows-1252.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>it windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>III</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/encoding-detection/nbsp-even-windows-1252.tentative.html b/tests/wpt/web-platform-tests/encoding-detection/nbsp-even-windows-1252.tentative.html
new file mode 100644
index 00000000000..2450591d3d2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/nbsp-even-windows-1252.tentative.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>nbsp even windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>No-break spaces</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/encoding-detection/nbsp-odd-windows-1252.tentative.html b/tests/wpt/web-platform-tests/encoding-detection/nbsp-odd-windows-1252.tentative.html
new file mode 100644
index 00000000000..2ebc33745c0
--- /dev/null
+++ b/tests/wpt/web-platform-tests/encoding-detection/nbsp-odd-windows-1252.tentative.html
@@ -0,0 +1,14 @@
+<!doctype html>
+<title>nbsp odd windows-1252</title>
+<script src=/resources/testharness.js></script>
+<script src=/resources/testharnessreport.js></script>
+<p>No-break spaces</p>
+<script>
+setup({explicit_done:true});
+onload = function() {
+ test(function() {
+ assert_equals(document.characterSet, "windows-1252", 'Expected windows-1252');
+ }, "Check detection result");
+ done();
+};
+</script>
diff --git a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https.html b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https.html
index 5fd11643d57..6f10945cfaf 100644
--- a/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https.html
+++ b/tests/wpt/web-platform-tests/html/cross-origin-opener-policy/coop-sandbox.https.html
@@ -26,4 +26,20 @@
}));
}, `<iframe sandbox="${sandboxValue}"> ${document.title}`);
});
+
+async_test(t => {
+ const frame = document.createElement("iframe");
+ const channel = new BroadcastChannel(token());
+ frame.sandbox = "allow-scripts allow-same-origin";
+ frame.name = `iframe-${channel.name}`;
+ frame.src = `resources/coop-coep.py?coop=same-origin&coep=&channel=${channel.name}`;
+ channel.onmessage = t.step_func( event => {
+ const payload = event.data;
+ assert_equals(payload.name, frame.name, "name");
+ t.done();
+ });
+ t.step_timeout(t.unreached_func("Timed out while waiting for iframe's message"), 1500);
+ t.add_cleanup(() => frame.remove());
+ document.body.append(frame);
+}, `Iframe with sandbox and COOP must load.`);
</script>
diff --git a/tests/wpt/web-platform-tests/html/dom/elements/global-attributes/mapped-attribute-adopt-001.html b/tests/wpt/web-platform-tests/html/dom/elements/global-attributes/mapped-attribute-adopt-001.html
new file mode 100644
index 00000000000..66ff3d64f13
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/dom/elements/global-attributes/mapped-attribute-adopt-001.html
@@ -0,0 +1,23 @@
+<!doctype html>
+<title>Adoption doesn't mess with mapped attributes</title>
+<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
+<link rel="author" title="Mozilla" href="https://mozilla.org">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1636516">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<div hidden="unlikely">Should be hidden</div>
+<script>
+test(function() {
+ var tmpl = document.createElement("template");
+ var fragment = tmpl.content;
+ var newEl = document.createElement("div");
+ newEl.setAttribute("hidden", "unlikely");
+ fragment.append(newEl);
+ document.adoptNode(newEl);
+ assert_equals(
+ getComputedStyle(document.querySelector("div")).display,
+ "none",
+ "hidden attribute should have an effect"
+ );
+}, "Adoption of an unrelated node shouldn't prevent mapped attributes from applying");
+</script>
diff --git a/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html
new file mode 100644
index 00000000000..3ed9dad9234
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission.html
@@ -0,0 +1,82 @@
+<!DOCTYPE html>
+<meta charset=urf-8>
+<title>Test dialog form submission</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/resources/testdriver.js"></script>
+<script src="/resources/testdriver-actions.js"></script>
+<script src="/resources/testdriver-vendor.js"></script>
+
+<body>
+<dialog id="favDialog">
+ <form method="dialog">
+ <button id="confirmBtn" value="default">Confirm</button>
+ <input id="confirmImgBtn" src="./resources/submit.jpg" width="41"
+ height="41" type="image" alt="Hello">
+ </form>
+ <form method="post">
+ <input id="confirmImgBtn2" src="./resources/submit.jpg" width="41"
+ formmethod="dialog" height="41" type="image" alt="Hello">
+ </form>
+</dialog>
+<script>
+promise_test(async () => {
+ const dialog = document.querySelector('dialog');
+ dialog.showModal();
+
+ const button = document.querySelector('button');
+ button.click();
+
+ assert_false(dialog.open, "dialog should be closed now");
+ assert_equals(dialog.returnValue, "default", "Return the default value");
+}, 'click the form submission button should close the dialog');
+
+promise_test(async () => {
+ const dialog = document.querySelector('dialog');
+ dialog.showModal();
+
+ const button = document.querySelector('button');
+ button.value = "sushi";
+ button.click();
+
+ assert_false(dialog.open, "dialog should be closed now");
+ assert_equals(dialog.returnValue, "sushi", "Return the updated value");
+}, 'form submission should return correct value');
+
+promise_test(async () => {
+ const dialog = document.querySelector('dialog');
+ dialog.showModal();
+
+ const button = document.querySelector('button');
+ button.removeAttribute("value");
+ button.click();
+ assert_false(dialog.open, "dialog should be closed now");
+ assert_false(dialog.returnValue === undefined, "returnValue should not be set");
+}, "no returnValue when there's no result.");
+
+promise_test(async () => {
+ const dialog = document.querySelector('dialog');
+ dialog.showModal();
+
+ const button = document.querySelector('input');
+ let expectedReturnValue = "";
+ button.addEventListener('click', function(event) {
+ expectedReturnValue = event.offsetX + "," + event.offsetY;
+ });
+ await test_driver.click(button);
+
+ assert_false(dialog.open, "dialog should be closed now");
+ assert_not_equals(dialog.returnValue, "", "returnValue shouldn't be empty string");
+ assert_equals(dialog.returnValue, expectedReturnValue, "returnValue should be the offsets of the click");
+}, "input image button should return the coordianates");
+
+promise_test(async () => {
+ const dialog = document.querySelector('dialog');
+ dialog.showModal();
+ const button = document.getElementById('confirmImgBtn2');
+ await test_driver.click(button);
+ assert_false(dialog.open, "dialog should be closed now");
+}, "formmethod attribute should use dialog form submission");
+
+</script>
+</body>
diff --git a/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/submit.jpg b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/submit.jpg
new file mode 100644
index 00000000000..8909de24309
--- /dev/null
+++ b/tests/wpt/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/resources/submit.jpg
Binary files differ
diff --git a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html
index a8ed461b2e7..302f702c65f 100644
--- a/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html
+++ b/tests/wpt/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator_user_agent.https.html
@@ -16,17 +16,19 @@
assert_equals(typeof brandVersionPair.version, "string", "version should be a string");
}
assert_equals(typeof uaData.mobile, "boolean", "mobile should be a boolean");
- const highEntropyData = await uaData.getHighEntropyValues(["platform", "platformVersion", "architecture", "model"]);
+ const highEntropyData = await uaData.getHighEntropyValues(["platform", "platformVersion", "architecture", "model", "uaFullVersion"]);
assert_equals(typeof highEntropyData["platform"], "string", "Platform brand should be a string");
assert_equals(typeof highEntropyData["platformVersion"], "string", "Platform version should be a string");
assert_equals(typeof highEntropyData["architecture"], "string", "Architecture should be a string");
assert_equals(typeof highEntropyData["model"], "string", "Model should be a string");
+ assert_equals(typeof highEntropyData["uaFullVersion"], "string", "UAFullVersion should be a string");
const highEntropyData2 = await uaData.getHighEntropyValues([]);
- assert_equals(highEntropyData2["platform"], "", "Platform brand should be an empty string");
- assert_equals(highEntropyData2["platformVersion"], "", "Platform version should be an empty string");
- assert_equals(highEntropyData2["architecture"], "", "Architecture should be an empty string");
- assert_equals(highEntropyData2["model"], "", "Model should be an empty string");
- let finalPromise = uaData.getHighEntropyValues([]).then(() => {
+ assert_false("platform" in highEntropyData2, "Platform brand should be an empty string");
+ assert_false("platformVersion" in highEntropyData2, "Platform version should be an empty string");
+ assert_false("architecture" in highEntropyData2, "Architecture should be an empty string");
+ assert_false("model" in highEntropyData2, "Model should be an empty string");
+ assert_false("uaFullVersion" in highEntropyData2, "UAFullVersion should be an empty string");
+ let finalPromise = uaData.getHighEntropyValues([]).then(() => {
assert_true(didMicrotaskRun, "getHighEntropyValues queued on a task");
});
await Promise.resolve().then(function() {
diff --git a/tests/wpt/web-platform-tests/interfaces/web-animations.idl b/tests/wpt/web-platform-tests/interfaces/web-animations.idl
index 006b27b2820..64265c3bf3f 100644
--- a/tests/wpt/web-platform-tests/interfaces/web-animations.idl
+++ b/tests/wpt/web-platform-tests/interfaces/web-animations.idl
@@ -139,6 +139,7 @@ interface mixin Animatable {
dictionary KeyframeAnimationOptions : KeyframeEffectOptions {
DOMString id = "";
+ AnimationTimeline? timeline;
};
dictionary GetAnimationsOptions {
diff --git a/tests/wpt/web-platform-tests/lint.ignore b/tests/wpt/web-platform-tests/lint.ignore
index 49f88ddc7b3..8cfef1eded2 100644
--- a/tests/wpt/web-platform-tests/lint.ignore
+++ b/tests/wpt/web-platform-tests/lint.ignore
@@ -201,8 +201,8 @@ SET TIMEOUT: service-workers/service-worker/resources/resource-timing-worker.js
SET TIMEOUT: shadow-dom/Document-prototype-currentScript.html
SET TIMEOUT: shadow-dom/scroll-to-the-fragment-in-shadow-tree.html
SET TIMEOUT: shadow-dom/slotchange-event.html
-SET TIMEOUT: trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html
-SET TIMEOUT: trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.https.html
+SET TIMEOUT: trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html
+SET TIMEOUT: trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.html
SET TIMEOUT: user-timing/*
SET TIMEOUT: web-animations/timing-model/animations/*
SET TIMEOUT: webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/mediaElementAudioSourceToScriptProcessorTest.html
diff --git a/tests/wpt/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html b/tests/wpt/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html
new file mode 100644
index 00000000000..21befc92f01
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/presentation-markup/operators/operator-dictionary-combining.html
@@ -0,0 +1,108 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Operator dictionary (combining char)</title>
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#operator-fence-separator-or-accent-mo">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dictionary-based-attributes">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#operator-dictionary">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#layout-of-mrow">
+<link rel="stylesheet" href="./support/operator-dictionary-tests.css"/>
+<meta name="assert" content="Verify special handling of 2-char operator with a combining character">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/mathml/support/feature-detection.js"></script>
+<style>
+ mo {
+ color: blue;
+ }
+ mn {
+ background: black;
+ }
+</style>
+<script>
+ setup({ explicit_done: true });
+ window.addEventListener("load", runTests);
+
+ function spaceBetween(element, i, j) {
+ return element.children[j].getBoundingClientRect().left -
+ element.children[i].getBoundingClientRect().right;
+ }
+ function runTests() {
+ var epsilon = 1;
+ var emToPx = 25;
+
+ ["equal", "vertical_bar"].forEach(id => {
+ var div = document.getElementById(id);
+ var ref = div.getElementsByClassName("reference")[0];
+ var totalSpaceRef = spaceBetween(ref, 0, 2);
+ var lspaceRef = spaceBetween(ref, 0, 1);
+ var rspaceRef = spaceBetween(ref, 1, 2);
+ Array.from(div.getElementsByClassName("combining")).forEach(element => {
+ test(function() {
+ assert_true(MathMLFeatureDetection.has_operator_spacing());
+ var totalSpace = spaceBetween(element, 0, 2);
+ var lspace = spaceBetween(element, 0, 1);
+ var rspace = spaceBetween(element, 1, 2);
+ assert_approx_equals(totalSpace, totalSpaceRef, epsilon);
+ assert_approx_equals(rspace, rspaceRef, epsilon);
+ assert_approx_equals(lspace, lspaceRef, epsilon);
+ }, `Spacing around ${element.children[1].textContent}`);
+ });
+ });
+
+ done();
+ }
+</script>
+</head>
+<body>
+ <div id="log"></div>
+ <div id="equal">
+ <p>
+ <math class="reference">
+ <mn>&nbsp;</mn>
+ <mo>=</mo>
+ <mn>&nbsp;</mn>
+ </math>
+ </p>
+ <p>
+ <math class="combining">
+ <mn>&nbsp;</mn>
+ <mo>=&#x338;</mo>
+ <mn>&nbsp;</mn>
+ </math>
+ </p>
+ <p>
+ <math class="combining">
+ <mn>&nbsp;</mn>
+ <mo>=&#x20D2;</mo>
+ <mn>&nbsp;</mn>
+ </math>
+ </p>
+ </div>
+ <div id="vertical_bar">
+ <p>
+ <math class="reference">
+ <mn>&nbsp;</mn>
+ <mo stretchy="false">|</mo>
+ <mn>&nbsp;</mn>
+ </math>
+ </p>
+ <p>
+ <math class="combining">
+ <mn>&nbsp;</mn>
+ <mo stretchy="false">|&#x338;</mo>
+ <mn>&nbsp;</mn>
+ </math>
+ </p>
+ <p>
+ <math class="combining">
+ <mn>&nbsp;</mn>
+ <mo stretchy="false">|&#x20D2;</mo>
+ <mn>&nbsp;</mn>
+ </math>
+ </p>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html
index 329578dc95a..3ac942f8178 100644
--- a/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html
+++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/attribute-mapping-002.html
@@ -6,12 +6,23 @@
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-mathvariant-attribute">
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-displaystyle-and-scriptlevel-attributes">
<meta name="assert" content="Verify that mathvariant, scriptlevel, displaystyle are mapped to CSS">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<style>
+ #container {
+ /* Ahem font does not have a MATH table so the font-size scale factor
+ is always 0.71^{computed - inherited math script level} */
+ font: 100px/1 Ahem;
+ }
+</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/mathml/support/mathml-fragments.js"></script>
<script>
setup({ explicit_done: true });
window.addEventListener("load", runTests);
+ function fontSize(style) {
+ return parseFloat((/(.+)px/).exec(style.getPropertyValue("font-size"))[1]);
+ }
function runTests() {
var container = document.getElementById("container");
for (tag in MathMLFragments) {
@@ -32,10 +43,30 @@
}, `mathvariant on the ${tag} element is mapped to CSS text-transform`)
test(function() {
- assert_equals(style.getPropertyValue("math-script-level"), "0", "no attribute");
- element.setAttribute("scriptlevel", "10");
- assert_equals(style.getPropertyValue("math-script-level"), "10", "attribute specified");
- }, `scriptlevel on the ${tag} element is mapped to CSS math-script-level`);
+ var epsilon = .1
+ var fontSizeAtScriptLevelZero = fontSize(window.getComputedStyle(container));
+ var inheritedSize = fontSize(window.getComputedStyle(element.parentNode));
+
+ // none and mprescripts appear as scripts
+ assert_approx_equals(fontSize(style), tag === "none" || tag === "mprescripts" ? inheritedSize * .71 : inheritedSize, epsilon, "no attribute");
+
+ var absoluteScriptlevel = 2;
+ element.setAttribute("scriptlevel", absoluteScriptlevel);
+ assert_approx_equals(fontSize(style), fontSizeAtScriptLevelZero * Math.pow(.71, absoluteScriptlevel), epsilon, "attribute specified (<U>)");
+
+ var positiveScriptlevelDelta = 1;
+ element.setAttribute("scriptlevel", `+${positiveScriptlevelDelta}`);
+ assert_approx_equals(fontSize(style), inheritedSize * Math.pow(.71, positiveScriptlevelDelta), epsilon, "attribute specified (+<U>)");
+
+ var negativeScriptlevelDelta = -3;
+ element.setAttribute("scriptlevel", negativeScriptlevelDelta);
+ assert_approx_equals(fontSize(style), inheritedSize * Math.pow(.71, negativeScriptlevelDelta), epsilon, "attribute specified (-<U>)");
+
+ element.setAttribute("scriptlevel", absoluteScriptlevel);
+ element.setAttribute("mathsize", "42px");
+ assert_approx_equals(fontSize(style), 42, epsilon, "mathsize wins over scriptlevel");
+
+ }, `scriptlevel on the ${tag} element is mapped to font-size: scriptlevel(...)`);
test(function() {
assert_equals(style.getPropertyValue("math-style"), "inline", "no attribute");
diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/scriptlevel-001.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/scriptlevel-001.html
new file mode 100644
index 00000000000..11ad68d8188
--- /dev/null
+++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/scriptlevel-001.html
@@ -0,0 +1,219 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>Automatic scriptlevel</title>
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-mathvariant-attribute">
+<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#the-displaystyle-and-scriptlevel-attributes">
+<link rel="stylesheet" href="/fonts/ahem.css">
+<meta name="assert" content="Verify automatic scriptlevel changes">
+<style>
+ #container, math {
+ /* Ahem font does not have a MATH table so the font-size scale factor
+ is always 0.71^{computed - inherited math script level} */
+ font: 100px/1 Ahem;
+ }
+</style>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/mathml/support/mathml-fragments.js"></script>
+<script>
+ setup({ explicit_done: true });
+ window.addEventListener("load", runTests);
+ function fontSize(element) {
+ return parseFloat((/(.+)px/).exec(window.getComputedStyle(element).getPropertyValue("font-size"))[1]);
+ }
+ function runTests() {
+ var container = document.getElementById("container");
+ var epsilon = .1
+ var fontSizeAtScriptLevelZero = fontSize(container);
+
+ test(function() {
+ var element = document.getElementById("mfrac_displaystyle");
+ assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "numerator");
+ assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero, epsilon, "denominator");
+ }, "automatic scriptlevel on mfrac (displaystyle=true)");
+
+ test(function() {
+ var element = document.getElementById("mfrac_notdisplaystyle");
+ assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero * .71, epsilon, "numerator");
+ assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero * .71, epsilon, "denominator");
+ }, "automatic scriptlevel on mfrac (displaystyle=false)");
+
+ test(function() {
+ var element = document.getElementsByTagName("mroot")[0];
+ assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "base");
+ assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero * .71 * .71, epsilon, "index");
+ }, "automatic scriptlevel on mroot");
+
+ ["msub", "msup", "msubsup", "munder", "mover", "munderover", "mmultiscripts"].forEach(tag => {
+ test(function() {
+ var element = document.getElementsByTagName(tag)[0];
+ for (var i = 0; i < element.children.length; i++)
+ assert_approx_equals(fontSize(element.children[i]), i > 0 ? fontSizeAtScriptLevelZero * .71 : fontSizeAtScriptLevelZero, epsilon, `child ${i}`);
+ }, `automatic scriptlevel on ${tag}`);
+ });
+
+ test(function() {
+ var element = document.querySelector("munder[accentunder='true']");
+ assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "base");
+ assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero, epsilon, "under");
+ }, `automatic scriptlevel on munder (accentunder=true)`);
+
+ test(function() {
+ var element = document.querySelector("mover[accent='true']");
+ assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "base");
+ assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero, epsilon, "over");
+ }, `automatic scriptlevel on mover (accent=true)`);
+
+ test(function() {
+ var element = document.querySelector("munderover[accentunder='true']");
+ assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "base");
+ assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero, epsilon, "under");
+ assert_approx_equals(fontSize(element.children[2]), fontSizeAtScriptLevelZero * .71, epsilon, "over");
+ }, `automatic scriptlevel on munderover (accentunder=true)`);
+
+ test(function() {
+ var element = document.querySelector("munderover[accent='true']");
+ assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "base");
+ assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero * .71, epsilon, "under");
+ assert_approx_equals(fontSize(element.children[2]), fontSizeAtScriptLevelZero, epsilon, "over");
+ }, `automatic scriptlevel on munderover (accent=true)`);
+
+ test(function() {
+ var element = document.getElementById("munderover-dynamic-case-insensitive")
+ assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "base");
+ assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero * .71, epsilon, "under");
+ assert_approx_equals(fontSize(element.children[2]), fontSizeAtScriptLevelZero, epsilon, "over");
+
+ element.removeAttribute("accent");
+ element.setAttribute("accentunder", "TrUe");
+ assert_approx_equals(fontSize(element.children[0]), fontSizeAtScriptLevelZero, epsilon, "base");
+ assert_approx_equals(fontSize(element.children[1]), fontSizeAtScriptLevelZero, epsilon, "under");
+ assert_approx_equals(fontSize(element.children[2]), fontSizeAtScriptLevelZero * .71, epsilon, "over");
+ }, "checking dynamic/case-insensitive accent/accentunder");
+
+ done();
+ }
+</script>
+</head>
+<body>
+ <div id="log"></div>
+ <div id="container">
+ <p>
+ <math displaystyle="true">
+ <mfrac id="mfrac_displaystyle">
+ <mn>0</mn>
+ <mn>1</mn>
+ </mfrac>
+ </math>
+
+ <math displaystyle="false">
+ <mfrac id="mfrac_notdisplaystyle">
+ <mn>0</mn>
+ <mn>1</mn>
+ </mfrac>
+ </math>
+ </p>
+ <p>
+ <math>
+ <mroot>
+ <mn>0</mn>
+ <mn>1</mn>
+ </mroot>
+ </math>
+ </p>
+ <p>
+ <math>
+ <msub>
+ <mn>0</mn>
+ <mn>1</mn>
+ </msub>
+ </math>
+ <math>
+ <msup>
+ <mn>0</mn>
+ <mn>1</mn>
+ </msup>
+ </math>
+ <math>
+ <msubsup>
+ <mn>0</mn>
+ <mn>1</mn>
+ <mn>2</mn>
+ </msubsup>
+ </math>
+ <math>
+ <munder>
+ <mn>0</mn>
+ <mn>1</mn>
+ </munder>
+ </math>
+ <math>
+ <mover>
+ <mn>0</mn>
+ <mn>1</mn>
+ </mover>
+ </math>
+ <math>
+ <munderover>
+ <mn>0</mn>
+ <mn>1</mn>
+ <mn>2</mn>
+ </munderover>
+ </math>
+ <math>
+ <mmultiscripts>
+ <mn>0</mn>
+ <mn>1</mn>
+ <mn>2</mn>
+ <mn>3</mn>
+ <mn>4</mn>
+ <mprescripts/>
+ <mn>6</mn>
+ <mn>7</mn>
+ <mn>8</mn>
+ <mn>9</mn>
+ </mmultiscripts>
+ </math>
+ </p>
+ <p>
+ <math>
+ <munder accentunder="true">
+ <mn>0</mn>
+ <mn>1</mn>
+ </munder>
+ </math>
+ <math>
+ <mover accent="true">
+ <mn>0</mn>
+ <mn>1</mn>
+ </mover>
+ </math>
+ <math>
+ <munderover accent="true">
+ <mn>0</mn>
+ <mn>1</mn>
+ <mn>2</mn>
+ </munderover>
+ </math>
+ <math>
+ <munderover accentunder="true">
+ <mn>0</mn>
+ <mn>1</mn>
+ <mn>2</mn>
+ </munderover>
+ </math>
+ </p>
+ <p>
+ <math>
+ <munderover id="munderover-dynamic-case-insensitive" accent="TrUe">
+ <mn>0</mn>
+ <mn>1</mn>
+ <mn>2</mn>
+ </munderover>
+ </math>
+ </p>
+ </div>
+</body>
+</html>
diff --git a/tests/wpt/web-platform-tests/orientation-event/resources/orientation-event-helpers.js b/tests/wpt/web-platform-tests/orientation-event/resources/orientation-event-helpers.js
index 84bfc5115f3..307c52f0003 100644
--- a/tests/wpt/web-platform-tests/orientation-event/resources/orientation-event-helpers.js
+++ b/tests/wpt/web-platform-tests/orientation-event/resources/orientation-event-helpers.js
@@ -181,10 +181,14 @@ function getExpectedMotionEvent(expectedMotionData) {
}
function waitForEvent(expected_event) {
- return new Promise(resolve => {
+ return new Promise((resolve, reject) => {
window.addEventListener(expected_event.type, (event) => {
- assertEventEquals(event, expected_event);
- resolve();
+ try {
+ assertEventEquals(event, expected_event);
+ resolve();
+ } catch (e) {
+ reject(e);
+ }
}, { once: true });
});
}
diff --git a/tests/wpt/web-platform-tests/resize-observer/change-layout-in-error.html b/tests/wpt/web-platform-tests/resize-observer/change-layout-in-error.html
new file mode 100644
index 00000000000..9083fb48f94
--- /dev/null
+++ b/tests/wpt/web-platform-tests/resize-observer/change-layout-in-error.html
@@ -0,0 +1,33 @@
+<!doctype HTML>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<style>
+ div {
+ width: 100px;
+ height: 100px;
+ }
+</style>
+<div id="observeme"></div>
+
+<script>
+setup({allow_uncaught_exception: true});
+
+async_test(a => {
+ let t = document.querySelector("#observeme");
+ let i = 0;
+ window.onerror = function (err) {
+ t.style.height = "112px";
+ i++;
+ requestAnimationFrame(a.step_func_done(() => {
+ assert_equals(i, 1);
+ }), 0);
+ };
+
+ new ResizeObserver(function() {
+ t.style.height = "111px";
+ }).observe(observeme);
+ observeme.style.height = "110px";
+
+}, "Changing layout in window error handler should not result in lifecyle loop when resize observer loop limit is reached.");
+</script>
diff --git a/tests/wpt/web-platform-tests/resources/testdriver-actions.js b/tests/wpt/web-platform-tests/resources/testdriver-actions.js
index d3dc00b4d0f..870a2e8e266 100644
--- a/tests/wpt/web-platform-tests/resources/testdriver-actions.js
+++ b/tests/wpt/web-platform-tests/resources/testdriver-actions.js
@@ -130,9 +130,9 @@
/**
* Add a new pointer input source with the given name
*
- * @param {String} type - Name of the key source
+ * @param {String} type - Name of the pointer source
* @param {String} pointerType - Type of pointing device
- * @param {Bool} set - Set source as the default key source
+ * @param {Bool} set - Set source as the default pointer source
* @returns {Actions}
*/
addPointer: function(name, pointerType="mouse", set=true) {
diff --git a/tests/wpt/web-platform-tests/svg/animations/attribute-value-unaffected-by-animation.html b/tests/wpt/web-platform-tests/svg/animations/attribute-value-unaffected-by-animation.html
new file mode 100644
index 00000000000..55ebb0a3c9a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/svg/animations/attribute-value-unaffected-by-animation.html
@@ -0,0 +1,34 @@
+<!doctype html>
+<title>An animation of an attribute does not change the DOM attribute value</title>
+<link rel="help" href="https://www.w3.org/TR/2001/REC-smil-animation-20010904/#BasicAnim">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ .animated {
+ fill: blue;
+ }
+</style>
+<svg>
+ <rect class="base">
+ <set attributeName="class" to="animated"/>
+ </rect>
+ <rect>
+ <set attributeName="class" to="animated"/>
+ </rect>
+</svg>
+<script>
+ async_test(t => {
+ onload = t.step_func(() => {
+ requestAnimationFrame(t.step_func_done(() => {
+ let rects = document.getElementsByTagName('rect');
+ assert_true(rects[0].hasAttribute('class'));
+ assert_equals(rects[0].getAttribute('class'), 'base');
+ assert_equals(getComputedStyle(rects[0]).getPropertyValue('fill'), 'rgb(0, 0, 255)');
+
+ assert_false(rects[1].hasAttribute('class'));
+ assert_equals(rects[1].getAttribute('class'), null);
+ assert_equals(getComputedStyle(rects[0]).getPropertyValue('fill'), 'rgb(0, 0, 255)');
+ }));
+ });
+ });
+</script>
diff --git a/tests/wpt/web-platform-tests/tools/manifest/item.py b/tests/wpt/web-platform-tests/tools/manifest/item.py
index 72802758941..6601f9c719e 100644
--- a/tests/wpt/web-platform-tests/tools/manifest/item.py
+++ b/tests/wpt/web-platform-tests/tools/manifest/item.py
@@ -191,6 +191,11 @@ class TestharnessTest(URLManifestItem):
return self._extras.get("jsshell")
@property
+ def quic(self):
+ # type: () -> Optional[bool]
+ return self._extras.get("quic")
+
+ @property
def script_metadata(self):
# type: () -> Optional[Text]
return self._extras.get("script_metadata")
@@ -204,6 +209,8 @@ class TestharnessTest(URLManifestItem):
rv[-1]["testdriver"] = self.testdriver
if self.jsshell:
rv[-1]["jsshell"] = True
+ if self.quic is not None:
+ rv[-1]["quic"] = self.quic
if self.script_metadata:
rv[-1]["script_metadata"] = [(k.decode('utf8'), v.decode('utf8')) for (k,v) in self.script_metadata]
return rv
diff --git a/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py b/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py
index d0794a2851e..f36ce1ab330 100644
--- a/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py
+++ b/tests/wpt/web-platform-tests/tools/manifest/sourcefile.py
@@ -675,6 +675,36 @@ class SourceFile(object):
return bool(self.testdriver_nodes)
@cached_property
+ def quic_nodes(self):
+ # type: () -> List[ElementTree.Element]
+ """List of ElementTree Elements corresponding to nodes in a test that
+ specify whether it needs QUIC server."""
+ assert self.root is not None
+ return self.root.findall(".//{http://www.w3.org/1999/xhtml}meta[@name='quic']")
+
+ @cached_property
+ def quic(self):
+ # type: () -> Optional[bool]
+ """Boolean indicating whether a test requires QUIC server
+
+ Determined by <meta> elements (`quic_nodes()`) and "// META" comments
+ (`script_metadata()`).
+ """
+ if self.script_metadata:
+ if any(m == (b"quic", b"true") for m in self.script_metadata):
+ return True
+
+ if self.root is None:
+ return None
+
+ if self.quic_nodes:
+ quic_str = self.quic_nodes[0].attrib.get("content", "false") # type: Text
+ if quic_str.lower() == "true":
+ return True
+
+ return None
+
+ @cached_property
def reftest_nodes(self):
# type: () -> List[ElementTree.Element]
"""List of ElementTree Elements corresponding to nodes representing a
@@ -850,6 +880,7 @@ class SourceFile(object):
global_variant_url(self.rel_url, suffix) + variant,
timeout=self.timeout,
jsshell=jsshell,
+ quic=self.quic,
script_metadata=self.script_metadata
)
for (suffix, jsshell) in sorted(global_suffixes(globals))
@@ -866,6 +897,7 @@ class SourceFile(object):
self.url_base,
test_url + variant,
timeout=self.timeout,
+ quic=self.quic,
script_metadata=self.script_metadata
)
for variant in self.test_variants
@@ -881,6 +913,7 @@ class SourceFile(object):
self.url_base,
test_url + variant,
timeout=self.timeout,
+ quic=self.quic,
script_metadata=self.script_metadata
)
for variant in self.test_variants
@@ -917,6 +950,7 @@ class SourceFile(object):
self.url_base,
url,
timeout=self.timeout,
+ quic=self.quic,
testdriver=testdriver,
script_metadata=self.script_metadata
))
@@ -930,6 +964,7 @@ class SourceFile(object):
self.rel_url,
references=self.references,
timeout=self.timeout,
+ quic=self.quic,
viewport_size=self.viewport_size,
dpi=self.dpi,
fuzzy=self.fuzzy
diff --git a/tests/wpt/web-platform-tests/tools/manifest/tests/test_sourcefile.py b/tests/wpt/web-platform-tests/tools/manifest/tests/test_sourcefile.py
index feae1fc3fd1..a8fbc270714 100644
--- a/tests/wpt/web-platform-tests/tools/manifest/tests/test_sourcefile.py
+++ b/tests/wpt/web-platform-tests/tools/manifest/tests/test_sourcefile.py
@@ -6,6 +6,7 @@ from six import BytesIO
from ...lint.lint import check_global_metadata
from ..sourcefile import SourceFile, read_script_metadata, js_meta_re, python_meta_re
+
def create(filename, contents=b""):
assert isinstance(contents, bytes)
return SourceFile("/", filename, "/", contents=contents)
@@ -144,6 +145,8 @@ def test_worker():
for item, url in zip(items, expected_urls):
assert item.url == url
assert item.timeout is None
+ assert item.quic is None
+
def test_window():
s = create("html/test.window.js")
@@ -168,6 +171,7 @@ def test_window():
for item, url in zip(items, expected_urls):
assert item.url == url
assert item.timeout is None
+ assert item.quic is None
def test_worker_long_timeout():
@@ -233,6 +237,7 @@ test()"""
for item, url in zip(items, expected_urls):
assert item.url == url
assert item.timeout is None
+ assert item.quic is None
def test_window_with_variants():
@@ -263,6 +268,7 @@ test()"""
for item, url in zip(items, expected_urls):
assert item.url == url
assert item.timeout is None
+ assert item.quic is None
def test_python_long_timeout():
@@ -307,6 +313,7 @@ def test_multi_global():
for item, url in zip(items, expected_urls):
assert item.url == url
assert item.timeout is None
+ assert item.quic is None
def test_multi_global_long_timeout():
@@ -366,6 +373,7 @@ test()""" % input
assert item.url == url
assert item.jsshell is False
assert item.timeout is None
+ assert item.quic is None
def test_multi_global_with_jsshell_globals():
@@ -396,6 +404,7 @@ test()"""
assert item.url == url
assert item.jsshell == jsshell
assert item.timeout is None
+ assert item.quic is None
def test_multi_global_with_variants():
@@ -434,6 +443,7 @@ test()"""
for item, url in zip(items, expected_urls):
assert item.url == url
assert item.timeout is None
+ assert item.quic is None
@pytest.mark.parametrize("input,expected", [
@@ -643,6 +653,35 @@ def test_relative_testdriver(ext):
@pytest.mark.parametrize("ext", ["htm", "html"])
+def test_quic_html(ext):
+ filename = "html/test." + ext
+
+ content = b'<meta name="quic" content="true">'
+ s = create(filename, content)
+ assert s.quic
+
+ content = b'<meta name="quic" content="false">'
+ s = create(filename, content)
+ assert s.quic is None
+
+
+def test_quic_js():
+ filename = "html/test.any.js"
+
+ content = b"// META: quic=true"
+ s = create(filename, content)
+ _, items = s.manifest_items()
+ for item in items:
+ assert item.quic
+
+ content = b"// META: quic=false"
+ s = create(filename, content)
+ _, items = s.manifest_items()
+ for item in items:
+ assert item.quic is None
+
+
+@pytest.mark.parametrize("ext", ["htm", "html"])
def test_reftest(ext):
content = b"<link rel=match href=ref.html>"
diff --git a/tests/wpt/web-platform-tests/tools/quic/README.md b/tests/wpt/web-platform-tests/tools/quic/README.md
new file mode 100644
index 00000000000..5a64b701cfb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/quic/README.md
@@ -0,0 +1,30 @@
+This directory contains
+[QUIC](https://tools.ietf.org/html/draft-ietf-quic-transport) related tools.
+
+# QuicTransport
+[quic_transport_server.py](./quic_transport_server.py) implements a simple
+[QuicTransport](https://tools.ietf.org/html/draft-vvv-webtransport-quic) server
+for testing. It uses [aioquic](https://github.com/aiortc/aioquic/), and test
+authors can implement custom handlers by putting python scripts in
+[wpt/webtransport/quic/handlers/](../../webtransport/quic/handlers/).
+
+## Custom Handlers
+The QuicTransportServer calls functions defined in each handler script.
+
+ - handle_client_indication is called during the client indication process.
+ This function is called with three arguments:
+
+ - connection: aioquic.asyncio.QuicConnectionProtocol
+ - origin: str The origin of the initiator.
+ - query: Dict[str, str] The dictionary of query parameters of the URL of the
+ connection.
+
+ A handler can abort the client indication process either by raising an
+ exception or closing the connection.
+
+ - handle_event is called when a QuicEvent arrives.
+ - connection: aioquic.asyncio.QuicConnectionProtocol
+ - event: aioquic.quic.events.QuicEvent
+
+ This function is not called until the client indication process finishes
+ successfully.
diff --git a/tests/wpt/web-platform-tests/tools/quic/certs/README.md b/tests/wpt/web-platform-tests/tools/quic/certs/README.md
new file mode 100644
index 00000000000..216cf13fffc
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/quic/certs/README.md
@@ -0,0 +1,12 @@
+To generate cert.key and cert.pem:
+
+ 1. Remove web-platform.test.key and web-platform.test.pem in ../../certs.
+ 1. From the root, run
+ `./wpt serve --config tools/quic/certs/config.json` and terminate it
+ after it has started up.
+ 1. Move tools/certs/web-platform.test.key to tools/quic/certs/cert.key.
+ 1. Move tools/certs/web-platform.test.pem to tools/quic/certs/cert.pem.
+ 1. Recover the original web-platform.test.key and web-platform.test.pem in
+ ../../certs.
+
+See also: ../../certs/README.md \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/tools/quic/certs/cert.key b/tests/wpt/web-platform-tests/tools/quic/certs/cert.key
new file mode 100644
index 00000000000..993cdfa5437
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/quic/certs/cert.key
@@ -0,0 +1,28 @@
+-----BEGIN PRIVATE KEY-----
+MIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDbyPuiBGpxhavF
+3j7pI6g+A0gC4BTLTqMObKSTkQWsjq1GOd2LA1lwTPLObwrvhIUFzbwoIbOwoPMe
+MkjssFCHG3FMj56cKiAQ2DFI6dK5PjGUVNSRxk/F4Hh2Zx9DTENl/Eb/cRT2yuu+
+W9HCu/BWfbWwlwwN5vxyneCoh5cBB/jd1KTORguYpuatHb85AD5BRhYLXwHF7yVH
+NVxHeuGlK31yuYCHNKvBHDgZF5Tp8FqKXnVU+PlKXCSU5602c2U5xHIFvKTyiZlM
+cYXNSUp0lcNw/iTSVtsPE4k1stu6qkWdT7H/uU+GUB+aLqO+svA/s9GGX8HZgt+r
+vSFE8lIJAgMBAAECggEBAJA96D9djIoygxhaEompmCoStzkD3UHMuyClVqFuRP4J
+qVh0c5xfN1yHc7bdk5y8KR00966S574c81G3CLslv8Pb09C+VQcCcob7i+ThaCWg
+1qMVxWhicUpZVlXGufLN41HUbrgIfAy4Al2tHw4hj8sDt7FMgGHDXZzPVnjke8r1
+O9YiJl1Qx4L7vMWruGa9QWjFgHnG+uhaKjsL2v7JQOGy5t8aboVyb7h8rGg/mC+e
+HIYOucV1aEMgYVaAnhGsKMHkx5A1xWpXBSruG+GRBx/kXWZ+kCNckLXuVdrhq4HI
+AdbxIzqQTPMXpO3RAujyrxkHabENMPA/FGH4szmdLoECgYEA9z8pe7/vSlWgfhsF
+z5QnwWHyFjruhgD/2sa4LB/cmwTQdGw8E5TNHDbCgmS499DZUXIZuBOTekdEVDQa
+ng8VyL3o7Dms+5iPi5cqscp1KkjLEMyPpqs4JTuixRpjmMfycdxVTpXhcuqnJpTL
+QC9pR5N/zZcAMDlBv0Fzc8T78XkCgYEA45DueWGHVf2u4uMYyWxyZhaNDagl13yx
+/oSSUTzoLvSpGQxKkv+fxSNqL3nu5Ia6uD4Gu5NubP4Hr/VeSKRfmkT1luvFcVfC
+kn8r8bssZq855AVJxXa5K1auWjCuFHj0pYf56sfhkPxpY0RQEgkvuE3iosQ12gFX
+vw147FtQURECgYEA85RpVP45S31iOPp8Vg16wRyyeE4ksSYI6kr+JJJbLummSBxd
+b1kYXSRhqj56r8I0ZvXG+r9men/9hAs08eSgrHzUHO2RSuj4+ie6Kx/vH/JJBErT
+dvqVvLCs4gvmdRz+8EeGT35/dkxQ0kSinKBY0ugwb6XEzL2L1VUw3awCHdkCgYEA
+qtQIgOv6uU2ndEDAQax8MDCrkF3yklHUGFkSsZNERMN7EQeOD81+9XFBbARflgOh
+tV8ylKr3ETCdOrS6I1PpRJiRt8qjvBMCSBDZPyygBzFxBsAFggs+s87tMV0rwMiP
+9pcdv+ZuaPVic5c7eF6XCQbGpCMgvdeWNCB77woZP9ECgYEAlobkPGDYCy/RaViU
+Fbq5Go6w0pMVnLzYbn4Gh1AJPeQKISqXtJZ7tqpdW+i7qzkLw74ELaYCBR2ZElrj
+EVe5aROx6TFN9RnjkFnyv9LeyYL+YPc8AIwVUCeSPikSGLFpJfa/jwDmWh3vHmmA
+NRUP40wbtBi42C2udrTxUWsHxqc=
+-----END PRIVATE KEY-----
diff --git a/tests/wpt/web-platform-tests/tools/quic/certs/cert.pem b/tests/wpt/web-platform-tests/tools/quic/certs/cert.pem
new file mode 100644
index 00000000000..7e70f1b082a
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/quic/certs/cert.pem
@@ -0,0 +1,240 @@
+Certificate:
+ Data:
+ Version: 3 (0x2)
+ Serial Number: 919492 (0xe07c4)
+ Signature Algorithm: sha256WithRSAEncryption
+ Issuer: CN=web-platform-tests
+ Validity
+ Not Before: Apr 20 11:20:56 2020 GMT
+ Not After : Apr 18 11:20:56 2030 GMT
+ Subject: CN=web-platform.test
+ Subject Public Key Info:
+ Public Key Algorithm: rsaEncryption
+ RSA Public-Key: (2048 bit)
+ Modulus:
+ 00:db:c8:fb:a2:04:6a:71:85:ab:c5:de:3e:e9:23:
+ a8:3e:03:48:02:e0:14:cb:4e:a3:0e:6c:a4:93:91:
+ 05:ac:8e:ad:46:39:dd:8b:03:59:70:4c:f2:ce:6f:
+ 0a:ef:84:85:05:cd:bc:28:21:b3:b0:a0:f3:1e:32:
+ 48:ec:b0:50:87:1b:71:4c:8f:9e:9c:2a:20:10:d8:
+ 31:48:e9:d2:b9:3e:31:94:54:d4:91:c6:4f:c5:e0:
+ 78:76:67:1f:43:4c:43:65:fc:46:ff:71:14:f6:ca:
+ eb:be:5b:d1:c2:bb:f0:56:7d:b5:b0:97:0c:0d:e6:
+ fc:72:9d:e0:a8:87:97:01:07:f8:dd:d4:a4:ce:46:
+ 0b:98:a6:e6:ad:1d:bf:39:00:3e:41:46:16:0b:5f:
+ 01:c5:ef:25:47:35:5c:47:7a:e1:a5:2b:7d:72:b9:
+ 80:87:34:ab:c1:1c:38:19:17:94:e9:f0:5a:8a:5e:
+ 75:54:f8:f9:4a:5c:24:94:e7:ad:36:73:65:39:c4:
+ 72:05:bc:a4:f2:89:99:4c:71:85:cd:49:4a:74:95:
+ c3:70:fe:24:d2:56:db:0f:13:89:35:b2:db:ba:aa:
+ 45:9d:4f:b1:ff:b9:4f:86:50:1f:9a:2e:a3:be:b2:
+ f0:3f:b3:d1:86:5f:c1:d9:82:df:ab:bd:21:44:f2:
+ 52:09
+ Exponent: 65537 (0x10001)
+ X509v3 extensions:
+ X509v3 Basic Constraints:
+ CA:FALSE
+ X509v3 Subject Key Identifier:
+ 79:96:E1:96:F3:7C:41:2B:3B:9F:1B:0D:D6:A9:B8:B7:4F:E6:61:5C
+ X509v3 Authority Key Identifier:
+ keyid:F6:B9:DA:16:07:05:BB:6F:C9:63:30:C6:67:40:CB:03:D3:1E:90:EC
+
+ X509v3 Key Usage:
+ Digital Signature, Non Repudiation, Key Encipherment
+ X509v3 Extended Key Usage:
+ TLS Web Server Authentication
+ X509v3 Subject Alternative Name:
+ DNS:web-platform.test, DNS:op8.web-platform.test, DNS:op7.web-platform.test, DNS:op9.web-platform.test, DNS:op4.web-platform.test, DNS:not-web-platform.test, DNS:op6.web-platform.test, DNS:op3.web-platform.test, DNS:op2.web-platform.test, DNS:op1.web-platform.test, DNS:www.web-platform.test, DNS:op5.web-platform.test, DNS:op88.web-platform.test, DNS:op98.web-platform.test, DNS:op85.web-platform.test, DNS:op89.web-platform.test, DNS:op66.web-platform.test, DNS:op72.web-platform.test, DNS:op24.web-platform.test, DNS:op41.web-platform.test, DNS:op79.web-platform.test, DNS:op91.web-platform.test, DNS:op59.web-platform.test, DNS:op39.web-platform.test, DNS:op60.web-platform.test, DNS:op58.web-platform.test, DNS:op28.web-platform.test, DNS:www1.web-platform.test, DNS:op14.web-platform.test, DNS:op69.web-platform.test, DNS:op40.web-platform.test, DNS:op74.web-platform.test, DNS:op31.web-platform.test, DNS:op18.web-platform.test, DNS:op73.web-platform.test, DNS:op77.web-platform.test, DNS:op12.web-platform.test, DNS:op54.web-platform.test, DNS:op63.web-platform.test, DNS:op71.web-platform.test, DNS:op95.web-platform.test, DNS:op16.web-platform.test, DNS:op36.web-platform.test, DNS:op27.web-platform.test, DNS:op29.web-platform.test, DNS:op94.web-platform.test, DNS:op44.web-platform.test, DNS:op33.web-platform.test, DNS:op84.web-platform.test, DNS:op32.web-platform.test, DNS:op61.web-platform.test, DNS:op70.web-platform.test, DNS:www2.web-platform.test, DNS:op43.web-platform.test, DNS:op78.web-platform.test, DNS:op26.web-platform.test, DNS:op76.web-platform.test, DNS:op52.web-platform.test, DNS:op99.web-platform.test, DNS:op86.web-platform.test, DNS:op46.web-platform.test, DNS:op17.web-platform.test, DNS:op90.web-platform.test, DNS:op93.web-platform.test, DNS:op10.web-platform.test, DNS:op55.web-platform.test, DNS:op47.web-platform.test, DNS:op51.web-platform.test, DNS:op45.web-platform.test, DNS:op80.web-platform.test, DNS:op68.web-platform.test, DNS:op49.web-platform.test, DNS:op57.web-platform.test, DNS:op35.web-platform.test, DNS:op67.web-platform.test, DNS:op92.web-platform.test, DNS:op15.web-platform.test, DNS:op13.web-platform.test, DNS:op75.web-platform.test, DNS:op64.web-platform.test, DNS:op97.web-platform.test, DNS:op37.web-platform.test, DNS:op56.web-platform.test, DNS:op62.web-platform.test, DNS:op82.web-platform.test, DNS:op25.web-platform.test, DNS:op11.web-platform.test, DNS:op50.web-platform.test, DNS:op38.web-platform.test, DNS:op83.web-platform.test, DNS:op81.web-platform.test, DNS:op20.web-platform.test, DNS:op21.web-platform.test, DNS:op23.web-platform.test, DNS:op42.web-platform.test, DNS:op22.web-platform.test, DNS:op65.web-platform.test, DNS:op96.web-platform.test, DNS:op87.web-platform.test, DNS:op19.web-platform.test, DNS:op53.web-platform.test, DNS:op30.web-platform.test, DNS:op48.web-platform.test, DNS:op34.web-platform.test, DNS:op6.not-web-platform.test, DNS:op3.not-web-platform.test, DNS:op2.not-web-platform.test, DNS:op5.not-web-platform.test, DNS:www.not-web-platform.test, DNS:www.www.web-platform.test, DNS:op7.not-web-platform.test, DNS:op4.not-web-platform.test, DNS:op8.not-web-platform.test, DNS:op9.not-web-platform.test, DNS:op1.not-web-platform.test, DNS:op36.not-web-platform.test, DNS:op53.not-web-platform.test, DNS:op50.not-web-platform.test, DNS:op24.not-web-platform.test, DNS:op31.not-web-platform.test, DNS:op95.not-web-platform.test, DNS:op83.not-web-platform.test, DNS:www2.not-web-platform.test, DNS:op73.not-web-platform.test, DNS:op19.not-web-platform.test, DNS:op21.not-web-platform.test, DNS:op81.not-web-platform.test, DNS:op70.not-web-platform.test, DNS:op78.not-web-platform.test, DNS:op40.not-web-platform.test, DNS:op25.not-web-platform.test, DNS:op65.not-web-platform.test, DNS:www.www2.web-platform.test, DNS:op80.not-web-platform.test, DNS:op52.not-web-platform.test, DNS:op68.not-web-platform.test, DNS:op45.not-web-platform.test, DNS:op71.not-web-platform.test, DNS:op72.not-web-platform.test, DNS:op90.not-web-platform.test, DNS:op89.not-web-platform.test, DNS:op49.not-web-platform.test, DNS:op77.not-web-platform.test, DNS:op79.not-web-platform.test, DNS:op82.not-web-platform.test, DNS:www.www1.web-platform.test, DNS:op12.not-web-platform.test, DNS:op39.not-web-platform.test, DNS:op44.not-web-platform.test, DNS:www1.not-web-platform.test, DNS:op58.not-web-platform.test, DNS:op14.not-web-platform.test, DNS:op30.not-web-platform.test, DNS:op62.not-web-platform.test, DNS:op61.not-web-platform.test, DNS:op92.not-web-platform.test, DNS:op29.not-web-platform.test, DNS:op98.not-web-platform.test, DNS:op64.not-web-platform.test, DNS:op26.not-web-platform.test, DNS:op22.not-web-platform.test, DNS:op94.not-web-platform.test, DNS:op38.not-web-platform.test, DNS:op33.not-web-platform.test, DNS:op23.not-web-platform.test, DNS:op57.not-web-platform.test, DNS:op54.not-web-platform.test, DNS:op85.not-web-platform.test, DNS:op46.not-web-platform.test, DNS:op97.not-web-platform.test, DNS:op32.not-web-platform.test, DNS:op60.not-web-platform.test, DNS:op96.not-web-platform.test, DNS:op51.not-web-platform.test, DNS:op41.not-web-platform.test, DNS:op35.not-web-platform.test, DNS:op99.not-web-platform.test, DNS:op42.not-web-platform.test, DNS:op67.not-web-platform.test, DNS:op37.not-web-platform.test, DNS:op48.not-web-platform.test, DNS:op55.not-web-platform.test, DNS:op56.not-web-platform.test, DNS:op84.not-web-platform.test, DNS:op34.not-web-platform.test, DNS:op69.not-web-platform.test, DNS:op11.not-web-platform.test, DNS:op93.not-web-platform.test, DNS:www1.www.web-platform.test, DNS:op86.not-web-platform.test, DNS:op13.not-web-platform.test, DNS:op20.not-web-platform.test, DNS:op76.not-web-platform.test, DNS:op27.not-web-platform.test, DNS:op17.not-web-platform.test, DNS:op75.not-web-platform.test, DNS:op15.not-web-platform.test, DNS:op47.not-web-platform.test, DNS:op18.not-web-platform.test, DNS:op63.not-web-platform.test, DNS:op28.not-web-platform.test, DNS:op43.not-web-platform.test, DNS:op66.not-web-platform.test, DNS:www2.www.web-platform.test, DNS:op91.not-web-platform.test, DNS:op74.not-web-platform.test, DNS:op59.not-web-platform.test, DNS:op88.not-web-platform.test, DNS:op87.not-web-platform.test, DNS:op10.not-web-platform.test, DNS:op16.not-web-platform.test, DNS:www1.www2.web-platform.test, DNS:www2.www2.web-platform.test, DNS:www2.www1.web-platform.test, DNS:www1.www1.web-platform.test, DNS:www.www.not-web-platform.test, DNS:xn--lve-6lad.web-platform.test, DNS:www1.www.not-web-platform.test, DNS:www.www2.not-web-platform.test, DNS:www2.www.not-web-platform.test, DNS:www.www1.not-web-platform.test, DNS:www2.www2.not-web-platform.test, DNS:www2.www1.not-web-platform.test, DNS:www1.www1.not-web-platform.test, DNS:www1.www2.not-web-platform.test, DNS:xn--lve-6lad.www.web-platform.test, DNS:xn--lve-6lad.not-web-platform.test, DNS:www.xn--lve-6lad.web-platform.test, DNS:www2.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www2.web-platform.test, DNS:xn--lve-6lad.www1.web-platform.test, DNS:www1.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.www.not-web-platform.test, DNS:www.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www1.not-web-platform.test, DNS:www2.xn--lve-6lad.not-web-platform.test, DNS:www1.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.www2.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--lve-6lad.xn--lve-6lad.not-web-platform.test, DNS:www.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www2.not-web-platform.test, DNS:www1.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:www2.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.www1.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--lve-6lad.not-web-platform.test, DNS:xn--lve-6lad.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.web-platform.test, DNS:xn--n8j6ds53lwwkrqhv28a.xn--n8j6ds53lwwkrqhv28a.not-web-platform.test
+ Signature Algorithm: sha256WithRSAEncryption
+ 0b:8b:55:6a:b4:65:a8:2a:3b:c0:62:0e:85:d5:dc:99:9f:3f:
+ d0:b7:ff:cb:b6:68:e5:ae:d3:a2:4e:c8:d4:aa:34:95:e4:9e:
+ 4b:e4:74:e4:c4:ec:11:31:67:e5:a6:da:85:6b:0f:d7:64:b7:
+ e7:eb:fe:09:b6:88:e1:74:1d:0c:15:a3:2e:01:03:fc:67:9c:
+ 7c:ba:e6:fb:52:1d:58:cd:68:a3:55:8c:9b:57:bb:89:32:10:
+ 41:71:99:a3:1a:dc:25:2d:d0:b9:1a:af:e6:76:40:d7:f5:23:
+ a9:d8:59:45:8a:ab:53:53:87:cc:14:b3:87:de:1d:01:99:7a:
+ 4f:72:47:69:9c:98:73:94:79:90:25:70:02:ec:75:b2:77:11:
+ 28:97:cd:43:3d:d5:68:38:73:71:fd:a9:0b:a2:ed:2d:1c:6e:
+ e1:05:d4:30:a6:64:04:10:ca:e8:e6:e0:7a:a9:f4:26:94:6b:
+ a4:28:aa:0c:eb:3e:e0:ef:d2:be:0b:70:e4:dd:4c:fc:a2:87:
+ 0c:24:83:72:e2:e4:6f:25:a8:ee:c5:12:89:d9:dd:8f:82:14:
+ c3:d6:06:ae:1d:bb:7b:3c:fc:9b:27:56:50:b4:28:44:60:80:
+ 17:87:1c:b1:ce:6d:77:b4:d1:2b:32:e8:d0:ba:06:6f:4d:04:
+ ff:60:fe:e3
+-----BEGIN CERTIFICATE-----
+MIIgvDCCH6SgAwIBAgIDDgfEMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMMEndl
+Yi1wbGF0Zm9ybS10ZXN0czAeFw0yMDA0MjAxMTIwNTZaFw0zMDA0MTgxMTIwNTZa
+MBwxGjAYBgNVBAMMEXdlYi1wbGF0Zm9ybS50ZXN0MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA28j7ogRqcYWrxd4+6SOoPgNIAuAUy06jDmykk5EFrI6t
+RjndiwNZcEzyzm8K74SFBc28KCGzsKDzHjJI7LBQhxtxTI+enCogENgxSOnSuT4x
+lFTUkcZPxeB4dmcfQ0xDZfxG/3EU9srrvlvRwrvwVn21sJcMDeb8cp3gqIeXAQf4
+3dSkzkYLmKbmrR2/OQA+QUYWC18Bxe8lRzVcR3rhpSt9crmAhzSrwRw4GReU6fBa
+il51VPj5SlwklOetNnNlOcRyBbyk8omZTHGFzUlKdJXDcP4k0lbbDxOJNbLbuqpF
+nU+x/7lPhlAfmi6jvrLwP7PRhl/B2YLfq70hRPJSCQIDAQABo4IeBDCCHgAwCQYD
+VR0TBAIwADAdBgNVHQ4EFgQUeZbhlvN8QSs7nxsN1qm4t0/mYVwwHwYDVR0jBBgw
+FoAU9rnaFgcFu2/JYzDGZ0DLA9MekOwwCwYDVR0PBAQDAgXgMBMGA1UdJQQMMAoG
+CCsGAQUFBwMBMIIdjwYDVR0RBIIdhjCCHYKCEXdlYi1wbGF0Zm9ybS50ZXN0ghVv
+cDgud2ViLXBsYXRmb3JtLnRlc3SCFW9wNy53ZWItcGxhdGZvcm0udGVzdIIVb3A5
+LndlYi1wbGF0Zm9ybS50ZXN0ghVvcDQud2ViLXBsYXRmb3JtLnRlc3SCFW5vdC13
+ZWItcGxhdGZvcm0udGVzdIIVb3A2LndlYi1wbGF0Zm9ybS50ZXN0ghVvcDMud2Vi
+LXBsYXRmb3JtLnRlc3SCFW9wMi53ZWItcGxhdGZvcm0udGVzdIIVb3AxLndlYi1w
+bGF0Zm9ybS50ZXN0ghV3d3cud2ViLXBsYXRmb3JtLnRlc3SCFW9wNS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A4OC53ZWItcGxhdGZvcm0udGVzdIIWb3A5OC53ZWItcGxh
+dGZvcm0udGVzdIIWb3A4NS53ZWItcGxhdGZvcm0udGVzdIIWb3A4OS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A2Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A3Mi53ZWItcGxh
+dGZvcm0udGVzdIIWb3AyNC53ZWItcGxhdGZvcm0udGVzdIIWb3A0MS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A3OS53ZWItcGxhdGZvcm0udGVzdIIWb3A5MS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A1OS53ZWItcGxhdGZvcm0udGVzdIIWb3AzOS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A2MC53ZWItcGxhdGZvcm0udGVzdIIWb3A1OC53ZWItcGxh
+dGZvcm0udGVzdIIWb3AyOC53ZWItcGxhdGZvcm0udGVzdIIWd3d3MS53ZWItcGxh
+dGZvcm0udGVzdIIWb3AxNC53ZWItcGxhdGZvcm0udGVzdIIWb3A2OS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A0MC53ZWItcGxhdGZvcm0udGVzdIIWb3A3NC53ZWItcGxh
+dGZvcm0udGVzdIIWb3AzMS53ZWItcGxhdGZvcm0udGVzdIIWb3AxOC53ZWItcGxh
+dGZvcm0udGVzdIIWb3A3My53ZWItcGxhdGZvcm0udGVzdIIWb3A3Ny53ZWItcGxh
+dGZvcm0udGVzdIIWb3AxMi53ZWItcGxhdGZvcm0udGVzdIIWb3A1NC53ZWItcGxh
+dGZvcm0udGVzdIIWb3A2My53ZWItcGxhdGZvcm0udGVzdIIWb3A3MS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A5NS53ZWItcGxhdGZvcm0udGVzdIIWb3AxNi53ZWItcGxh
+dGZvcm0udGVzdIIWb3AzNi53ZWItcGxhdGZvcm0udGVzdIIWb3AyNy53ZWItcGxh
+dGZvcm0udGVzdIIWb3AyOS53ZWItcGxhdGZvcm0udGVzdIIWb3A5NC53ZWItcGxh
+dGZvcm0udGVzdIIWb3A0NC53ZWItcGxhdGZvcm0udGVzdIIWb3AzMy53ZWItcGxh
+dGZvcm0udGVzdIIWb3A4NC53ZWItcGxhdGZvcm0udGVzdIIWb3AzMi53ZWItcGxh
+dGZvcm0udGVzdIIWb3A2MS53ZWItcGxhdGZvcm0udGVzdIIWb3A3MC53ZWItcGxh
+dGZvcm0udGVzdIIWd3d3Mi53ZWItcGxhdGZvcm0udGVzdIIWb3A0My53ZWItcGxh
+dGZvcm0udGVzdIIWb3A3OC53ZWItcGxhdGZvcm0udGVzdIIWb3AyNi53ZWItcGxh
+dGZvcm0udGVzdIIWb3A3Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A1Mi53ZWItcGxh
+dGZvcm0udGVzdIIWb3A5OS53ZWItcGxhdGZvcm0udGVzdIIWb3A4Ni53ZWItcGxh
+dGZvcm0udGVzdIIWb3A0Ni53ZWItcGxhdGZvcm0udGVzdIIWb3AxNy53ZWItcGxh
+dGZvcm0udGVzdIIWb3A5MC53ZWItcGxhdGZvcm0udGVzdIIWb3A5My53ZWItcGxh
+dGZvcm0udGVzdIIWb3AxMC53ZWItcGxhdGZvcm0udGVzdIIWb3A1NS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A0Ny53ZWItcGxhdGZvcm0udGVzdIIWb3A1MS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A0NS53ZWItcGxhdGZvcm0udGVzdIIWb3A4MC53ZWItcGxh
+dGZvcm0udGVzdIIWb3A2OC53ZWItcGxhdGZvcm0udGVzdIIWb3A0OS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A1Ny53ZWItcGxhdGZvcm0udGVzdIIWb3AzNS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A2Ny53ZWItcGxhdGZvcm0udGVzdIIWb3A5Mi53ZWItcGxh
+dGZvcm0udGVzdIIWb3AxNS53ZWItcGxhdGZvcm0udGVzdIIWb3AxMy53ZWItcGxh
+dGZvcm0udGVzdIIWb3A3NS53ZWItcGxhdGZvcm0udGVzdIIWb3A2NC53ZWItcGxh
+dGZvcm0udGVzdIIWb3A5Ny53ZWItcGxhdGZvcm0udGVzdIIWb3AzNy53ZWItcGxh
+dGZvcm0udGVzdIIWb3A1Ni53ZWItcGxhdGZvcm0udGVzdIIWb3A2Mi53ZWItcGxh
+dGZvcm0udGVzdIIWb3A4Mi53ZWItcGxhdGZvcm0udGVzdIIWb3AyNS53ZWItcGxh
+dGZvcm0udGVzdIIWb3AxMS53ZWItcGxhdGZvcm0udGVzdIIWb3A1MC53ZWItcGxh
+dGZvcm0udGVzdIIWb3AzOC53ZWItcGxhdGZvcm0udGVzdIIWb3A4My53ZWItcGxh
+dGZvcm0udGVzdIIWb3A4MS53ZWItcGxhdGZvcm0udGVzdIIWb3AyMC53ZWItcGxh
+dGZvcm0udGVzdIIWb3AyMS53ZWItcGxhdGZvcm0udGVzdIIWb3AyMy53ZWItcGxh
+dGZvcm0udGVzdIIWb3A0Mi53ZWItcGxhdGZvcm0udGVzdIIWb3AyMi53ZWItcGxh
+dGZvcm0udGVzdIIWb3A2NS53ZWItcGxhdGZvcm0udGVzdIIWb3A5Ni53ZWItcGxh
+dGZvcm0udGVzdIIWb3A4Ny53ZWItcGxhdGZvcm0udGVzdIIWb3AxOS53ZWItcGxh
+dGZvcm0udGVzdIIWb3A1My53ZWItcGxhdGZvcm0udGVzdIIWb3AzMC53ZWItcGxh
+dGZvcm0udGVzdIIWb3A0OC53ZWItcGxhdGZvcm0udGVzdIIWb3AzNC53ZWItcGxh
+dGZvcm0udGVzdIIZb3A2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3AzLm5vdC13
+ZWItcGxhdGZvcm0udGVzdIIZb3AyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A1
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZd3d3Lm5vdC13ZWItcGxhdGZvcm0udGVz
+dIIZd3d3Lnd3dy53ZWItcGxhdGZvcm0udGVzdIIZb3A3Lm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIZb3A0Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3A4Lm5vdC13ZWIt
+cGxhdGZvcm0udGVzdIIZb3A5Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIZb3AxLm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIab3AzNi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+Gm9wNTMubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDUwLm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIab3AyNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzEubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0ghpvcDk1Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A4
+My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dzIubm90LXdlYi1wbGF0Zm9ybS50
+ZXN0ghpvcDczLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AxOS5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCGm9wMjEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDgxLm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIab3A3MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+Gm9wNzgubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQwLm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIab3AyNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNjUubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0ghp3d3cud3d3Mi53ZWItcGxhdGZvcm0udGVzdIIab3A4
+MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNTIubm90LXdlYi1wbGF0Zm9ybS50
+ZXN0ghpvcDY4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A0NS5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCGm9wNzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDcyLm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIab3A5MC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+Gm9wODkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQ5Lm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIab3A3Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNzkubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0ghpvcDgyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIad3d3
+Lnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCGm9wMTIubm90LXdlYi1wbGF0Zm9ybS50
+ZXN0ghpvcDM5Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A0NC5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCGnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDU4Lm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIab3AxNC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+Gm9wMzAubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDYyLm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIab3A2MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wOTIubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0ghpvcDI5Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5
+OC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNjQubm90LXdlYi1wbGF0Zm9ybS50
+ZXN0ghpvcDI2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AyMi5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCGm9wOTQubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDM4Lm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIab3AzMy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+Gm9wMjMubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDU3Lm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIab3A1NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wODUubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0ghpvcDQ2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5
+Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzIubm90LXdlYi1wbGF0Zm9ybS50
+ZXN0ghpvcDYwLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A5Ni5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCGm9wNTEubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQxLm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIab3AzNS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+Gm9wOTkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQyLm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIab3A2Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMzcubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0ghpvcDQ4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A1
+NS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNTYubm90LXdlYi1wbGF0Zm9ybS50
+ZXN0ghpvcDg0Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AzNC5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCGm9wNjkubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDExLm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIab3A5My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+Gnd3dzEud3d3LndlYi1wbGF0Zm9ybS50ZXN0ghpvcDg2Lm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIab3AxMy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMjAubm90LXdl
+Yi1wbGF0Zm9ybS50ZXN0ghpvcDc2Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3Ay
+Ny5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wMTcubm90LXdlYi1wbGF0Zm9ybS50
+ZXN0ghpvcDc1Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3AxNS5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCGm9wNDcubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDE4Lm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIab3A2My5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SC
+Gm9wMjgubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDQzLm5vdC13ZWItcGxhdGZv
+cm0udGVzdIIab3A2Ni5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGnd3dzIud3d3Lndl
+Yi1wbGF0Zm9ybS50ZXN0ghpvcDkxLm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A3
+NC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCGm9wNTkubm90LXdlYi1wbGF0Zm9ybS50
+ZXN0ghpvcDg4Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIab3A4Ny5ub3Qtd2ViLXBs
+YXRmb3JtLnRlc3SCGm9wMTAubm90LXdlYi1wbGF0Zm9ybS50ZXN0ghpvcDE2Lm5v
+dC13ZWItcGxhdGZvcm0udGVzdIIbd3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0
+ght3d3cyLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCG3d3dzIud3d3MS53ZWItcGxh
+dGZvcm0udGVzdIIbd3d3MS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0gh13d3cud3d3
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIeeG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9y
+bS50ZXN0gh53d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCHnd3dy53d3cy
+Lm5vdC13ZWItcGxhdGZvcm0udGVzdIIed3d3Mi53d3cubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0gh53d3cud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3
+Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzIud3d3MS5ub3Qtd2ViLXBsYXRm
+b3JtLnRlc3SCH3d3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCH3d3dzEu
+d3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC53d3cud2Vi
+LXBsYXRmb3JtLnRlc3SCInhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCInd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCI3d3dzIueG4t
+LWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0giN4bi0tbHZlLTZsYWQud3d3Mi53
+ZWItcGxhdGZvcm0udGVzdIIjeG4tLWx2ZS02bGFkLnd3dzEud2ViLXBsYXRmb3Jt
+LnRlc3SCI3d3dzEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0giZ4bi0t
+bHZlLTZsYWQud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdIImd3d3LnhuLS1sdmUt
+NmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCJ3huLS1sdmUtNmxhZC53d3cxLm5v
+dC13ZWItcGxhdGZvcm0udGVzdIInd3d3Mi54bi0tbHZlLTZsYWQubm90LXdlYi1w
+bGF0Zm9ybS50ZXN0gid3d3cxLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3Jt
+LnRlc3SCJ3huLS1sdmUtNmxhZC53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIp
+eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCK3huLS1s
+dmUtNmxhZC54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3SCLXd3dy54bi0t
+bjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdIIteG4tLW44ajZk
+czUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gi14bi0tbjhqNmRz
+NTNsd3drcnFodjI4YS53d3cud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzEueG4tLW44
+ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1
+M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRlc3SCLnhuLS1uOGo2ZHM1
+M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3SCLnd3dzIueG4tLW44
+ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCL3huLS1sdmUtNmxh
+ZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF3d3cueG4tLW44
+ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjF4bi0tbjhq
+NmRzNTNsd3drcnFodjI4YS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0gjJ4bi0t
+bjhqNmRzNTNsd3drcnFodjI4YS53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdIIy
+d3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCMnd3dzIueG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9y
+bS50ZXN0gjJ4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cxLm5vdC13ZWItcGxh
+dGZvcm0udGVzdII2eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2ZS02bGFk
+LndlYi1wbGF0Zm9ybS50ZXN0gjZ4bi0tbHZlLTZsYWQueG4tLW44ajZkczUzbHd3
+a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1uOGo2ZHM1M2x3d2tycWh2
+MjhhLnhuLS1sdmUtNmxhZC5ub3Qtd2ViLXBsYXRmb3JtLnRlc3SCOnhuLS1sdmUt
+NmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl
+c3SCQXhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2
+MjhhLndlYi1wbGF0Zm9ybS50ZXN0gkV4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54
+bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QwDQYJ
+KoZIhvcNAQELBQADggEBAAuLVWq0ZagqO8BiDoXV3JmfP9C3/8u2aOWu06JOyNSq
+NJXknkvkdOTE7BExZ+Wm2oVrD9dkt+fr/gm2iOF0HQwVoy4BA/xnnHy65vtSHVjN
+aKNVjJtXu4kyEEFxmaMa3CUt0Lkar+Z2QNf1I6nYWUWKq1NTh8wUs4feHQGZek9y
+R2mcmHOUeZAlcALsdbJ3ESiXzUM91Wg4c3H9qQui7S0cbuEF1DCmZAQQyujm4Hqp
+9CaUa6QoqgzrPuDv0r4LcOTdTPyihwwkg3Li5G8lqO7FEonZ3Y+CFMPWBq4du3s8
+/JsnVlC0KERggBeHHLHObXe00Ssy6NC6Bm9NBP9g/uM=
+-----END CERTIFICATE-----
diff --git a/tests/wpt/web-platform-tests/tools/quic/certs/config.json b/tests/wpt/web-platform-tests/tools/quic/certs/config.json
new file mode 100644
index 00000000000..72a6d0529fb
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/quic/certs/config.json
@@ -0,0 +1,17 @@
+{
+ "ports": {
+ "http": [],
+ "https": ["auto"],
+ "ws": [],
+ "wss": []
+ },
+ "check_subdomains": false,
+ "ssl": {
+ "type": "openssl",
+ "openssl": {
+ "duration": 3650,
+ "force_regenerate": false,
+ "base_path": "tools/certs"
+ }
+ }
+}
diff --git a/tests/wpt/web-platform-tests/tools/quic/quic_transport_server.py b/tests/wpt/web-platform-tests/tools/quic/quic_transport_server.py
new file mode 100644
index 00000000000..10d81743693
--- /dev/null
+++ b/tests/wpt/web-platform-tests/tools/quic/quic_transport_server.py
@@ -0,0 +1,244 @@
+#!/usr/bin/env python3
+import argparse
+import asyncio
+import io
+import logging
+import os
+import re
+import struct
+import urllib.parse
+from typing import Dict, Optional
+
+from aioquic.asyncio import QuicConnectionProtocol, serve
+from aioquic.quic.configuration import QuicConfiguration
+from aioquic.quic.connection import END_STATES
+from aioquic.quic.events import StreamDataReceived, QuicEvent
+from aioquic.tls import SessionTicket
+
+SERVER_NAME = 'aioquic-transport'
+
+handlers_path = None
+
+
+class EventHandler:
+ def __init__(self, connection: QuicConnectionProtocol, global_dict: Dict):
+ self.connection = connection
+ self.global_dict = global_dict
+
+ def handle_client_indication(
+ self,
+ origin: str,
+ query: Dict[str, str]) -> None:
+ name = 'handle_client_indication'
+ if name in self.global_dict:
+ self.global_dict[name](self.connection, origin, query)
+
+ def handle_event(self, event: QuicEvent) -> None:
+ name = 'handle_event'
+ if name in self.global_dict:
+ self.global_dict[name](self.connection, event)
+
+
+class QuicTransportProtocol(QuicConnectionProtocol):
+ def __init__(self, *args, **kwargs) -> None:
+ super().__init__(*args, **kwargs)
+ self.streams = dict()
+ self.pending_events = []
+ self.client_indication_finished = False
+ self.client_indication_data = b''
+ self.handler = None
+
+ def quic_event_received(self, event: QuicEvent) -> None:
+ prefix = '!!'
+ logging.log(logging.INFO, 'QUIC event: %s' % type(event))
+ try:
+ if (not self.client_indication_finished and
+ isinstance(event, StreamDataReceived) and
+ event.stream_id == 2):
+ # client indication process
+ self.client_indication_data += event.data
+ if event.end_stream:
+ prefix = 'Client inditation error: '
+ self.process_client_indication()
+ if self.is_closing_or_closed():
+ return
+ prefix = 'Event handling Error: '
+ for e in self.pending_events:
+ self.handler.handle_event(e)
+ self.pending_events.clear()
+ elif not self.client_indication_finished:
+ self.pending_events.append(event)
+ elif self.handler is not None:
+ prefix = 'Event handling Error: '
+ self.handler.handle_event(event)
+ except Exception as e:
+ self.handler = None
+ logging.log(logging.WARN, prefix + str(e))
+ self.close()
+
+ def parse_client_indication(self, bs):
+ while True:
+ key_b = bs.read(2)
+ if len(key_b) == 0:
+ return
+ length_b = bs.read(2)
+ if len(key_b) != 2:
+ raise Exception('failed to get "Key" field')
+ if len(length_b) != 2:
+ raise Exception('failed to get "Length" field')
+ key = struct.unpack('!H', key_b)[0]
+ length = struct.unpack('!H', length_b)[0]
+ value = bs.read(length)
+ if len(value) != length:
+ raise Exception('truncated "Value" field')
+ yield (key, value)
+
+ def process_client_indication(self) -> None:
+ origin = None
+ origin_string = None
+ path = None
+ path_string = None
+ KEY_ORIGIN = 0
+ KEY_PATH = 1
+ for (key, value) in self.parse_client_indication(
+ io.BytesIO(self.client_indication_data)):
+ if key == KEY_ORIGIN:
+ origin_string = value.decode()
+ origin = urllib.parse.urlparse(origin_string)
+ elif key == KEY_PATH:
+ path_string = value.decode()
+ path = urllib.parse.urlparse(path_string)
+ else:
+ # We must ignore unrecognized fields.
+ pass
+ logging.log(logging.INFO,
+ 'origin = %s, path = %s' % (origin_string, path_string))
+ if origin is None:
+ raise Exception('No origin is given')
+ if path is None:
+ raise Exception('No path is given')
+ if origin.scheme != 'https' and origin.scheme != 'http':
+ raise Exception('Invalid origin: %s' % origin_string)
+ if origin.netloc == '':
+ raise Exception('Invalid origin: %s' % origin_string)
+
+ # To make the situation simple we accept only simple path strings.
+ m = re.compile('^/([a-zA-Z0-9\._\-]+)$').match(path.path)
+ if m is None:
+ raise Exception('Invalid path: %s' % path_string)
+
+ handler_name = m.group(1)
+ query = dict(urllib.parse.parse_qsl(path.query))
+ self.handler = self.create_event_handler(handler_name)
+ self.handler.handle_client_indication(origin_string, query)
+ if self.is_closing_or_closed():
+ return
+ self.client_indication_finished = True
+ logging.log(logging.INFO, 'Client indication finished')
+
+ def create_event_handler(self, handler_name: str) -> None:
+ global_dict = {}
+ with open(handlers_path + '/' + handler_name) as f:
+ exec(f.read(), global_dict)
+ return EventHandler(self, global_dict)
+
+ def is_closing_or_closed(self) -> bool:
+ if self._quic._close_pending:
+ return True
+ if self._quic._state in END_STATES:
+ return True
+ return False
+
+
+class SessionTicketStore:
+ '''
+ Simple in-memory store for session tickets.
+ '''
+
+ def __init__(self) -> None:
+ self.tickets: Dict[bytes, SessionTicket] = {}
+
+ def add(self, ticket: SessionTicket) -> None:
+ self.tickets[ticket.ticket] = ticket
+
+ def pop(self, label: bytes) -> Optional[SessionTicket]:
+ return self.tickets.pop(label, None)
+
+
+if __name__ == '__main__':
+ parser = argparse.ArgumentParser(description='QUIC server')
+ parser.add_argument(
+ '-c',
+ '--certificate',
+ type=str,
+ required=True,
+ help='load the TLS certificate from the specified file',
+ )
+ parser.add_argument(
+ '--host',
+ type=str,
+ default='::',
+ help='listen on the specified address (defaults to ::)',
+ )
+ parser.add_argument(
+ '--port',
+ type=int,
+ default=4433,
+ help='listen on the specified port (defaults to 4433)',
+ )
+ parser.add_argument(
+ '-k',
+ '--private-key',
+ type=str,
+ required=True,
+ help='load the TLS private key from the specified file',
+ )
+ parser.add_argument(
+ '--handlers-path',
+ type=str,
+ required=True,
+ help='the directory path of QuicTransport event handlers',
+ )
+ parser.add_argument(
+ '-v',
+ '--verbose',
+ action='store_true',
+ help='increase logging verbosity'
+ )
+ args = parser.parse_args()
+
+ logging.basicConfig(
+ format='%(asctime)s %(levelname)s %(name)s %(message)s',
+ level=logging.DEBUG if args.verbose else logging.INFO,
+ )
+
+ configuration = QuicConfiguration(
+ alpn_protocols=['wq-vvv-01'] + ['siduck'],
+ is_client=False,
+ max_datagram_frame_size=65536,
+ )
+
+ handlers_path = os.path.abspath(os.path.expanduser(args.handlers_path))
+ logging.log(logging.INFO, 'port = %s' % args.port)
+ logging.log(logging.INFO, 'handlers path = %s' % handlers_path)
+
+ # load SSL certificate and key
+ configuration.load_cert_chain(args.certificate, args.private_key)
+
+ ticket_store = SessionTicketStore()
+
+ loop = asyncio.get_event_loop()
+ loop.run_until_complete(
+ serve(
+ args.host,
+ args.port,
+ configuration=configuration,
+ create_protocol=QuicTransportProtocol,
+ session_ticket_fetcher=ticket_store.pop,
+ session_ticket_handler=ticket_store.add,
+ )
+ )
+ try:
+ loop.run_forever()
+ except KeyboardInterrupt:
+ pass
diff --git a/tests/wpt/web-platform-tests/tools/requirements_flake8.txt b/tests/wpt/web-platform-tests/tools/requirements_flake8.txt
index 2a4c7e5d7b2..3be95a40de7 100644
--- a/tests/wpt/web-platform-tests/tools/requirements_flake8.txt
+++ b/tests/wpt/web-platform-tests/tools/requirements_flake8.txt
@@ -1,4 +1,4 @@
-flake8==3.7.9
-pycodestyle==2.5.0
+flake8==3.8.1
+pycodestyle==2.6.0
pyflakes==2.2.0
pep8-naming==0.10.0
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py
index cbbee821326..f76836ea66b 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/environment.py
@@ -53,7 +53,9 @@ class TestEnvironmentError(Exception):
class TestEnvironment(object):
"""Context manager that owns the test environment i.e. the http and
websockets servers"""
- def __init__(self, test_paths, testharness_timeout_multipler, pause_after_test, debug_info, options, ssl_config, env_extras):
+ def __init__(self, test_paths, testharness_timeout_multipler,
+ pause_after_test, debug_info, options, ssl_config, env_extras,
+ enable_quic=False):
self.test_paths = test_paths
self.server = None
self.config_ctx = None
@@ -69,6 +71,7 @@ class TestEnvironment(object):
self.env_extras = env_extras
self.env_extras_cms = None
self.ssl_config = ssl_config
+ self.enable_quic = enable_quic
def __enter__(self):
self.config_ctx = self.build_config()
@@ -130,6 +133,8 @@ class TestEnvironment(object):
"wss": [8889],
"h2": [9000],
}
+ if self.enable_quic:
+ config.ports["quic"] = [10000]
if os.path.exists(override_path):
with open(override_path) as f:
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py
index 5d6c283737e..c75a8ef320f 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/base.py
@@ -216,8 +216,9 @@ class TestExecutor(object):
extra_timeout = 5 # seconds
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
debug_info=None, **kwargs):
+ self.logger = logger
self.runner = None
self.browser = browser
self.server_config = server_config
@@ -227,12 +228,6 @@ class TestExecutor(object):
"prefs": {}}
self.protocol = None # This must be set in subclasses
- @property
- def logger(self):
- """StructuredLogger for this executor"""
- if self.runner is not None:
- return self.runner.logger
-
def setup(self, runner):
"""Run steps needed before tests can be started e.g. connecting to
browser instance
@@ -318,9 +313,9 @@ class TestharnessExecutor(TestExecutor):
class RefTestExecutor(TestExecutor):
convert_result = reftest_result_converter
- def __init__(self, browser, server_config, timeout_multiplier=1, screenshot_cache=None,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1, screenshot_cache=None,
debug_info=None, **kwargs):
- TestExecutor.__init__(self, browser, server_config,
+ TestExecutor.__init__(self, logger, browser, server_config,
timeout_multiplier=timeout_multiplier,
debug_info=debug_info)
@@ -504,11 +499,11 @@ class WdspecExecutor(TestExecutor):
convert_result = pytest_result_converter
protocol_cls = None
- def __init__(self, browser, server_config, webdriver_binary,
+ def __init__(self, logger, browser, server_config, webdriver_binary,
webdriver_args, timeout_multiplier=1, capabilities=None,
debug_info=None, **kwargs):
self.do_delayed_imports()
- TestExecutor.__init__(self, browser, server_config,
+ TestExecutor.__init__(self, logger, browser, server_config,
timeout_multiplier=timeout_multiplier,
debug_info=debug_info)
self.webdriver_binary = webdriver_binary
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py
index 3f0b92f23b3..535923fdb5e 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executormarionette.py
@@ -669,11 +669,11 @@ class ExecuteAsyncScriptRun(TimedRunner):
class MarionetteTestharnessExecutor(TestharnessExecutor):
supports_testdriver = True
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
close_after_done=True, debug_info=None, capabilities=None,
debug=False, ccov=False, **kwargs):
"""Marionette-based executor for testharness.js tests"""
- TestharnessExecutor.__init__(self, browser, server_config,
+ TestharnessExecutor.__init__(self, logger, browser, server_config,
timeout_multiplier=timeout_multiplier,
debug_info=debug_info)
self.protocol = MarionetteProtocol(self,
@@ -765,13 +765,14 @@ class MarionetteTestharnessExecutor(TestharnessExecutor):
class MarionetteRefTestExecutor(RefTestExecutor):
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
screenshot_cache=None, close_after_done=True,
debug_info=None, reftest_internal=False,
reftest_screenshot="unexpected", ccov=False,
group_metadata=None, capabilities=None, debug=False, **kwargs):
"""Marionette-based executor for reftests"""
RefTestExecutor.__init__(self,
+ logger,
browser,
server_config,
screenshot_cache=screenshot_cache,
@@ -949,11 +950,11 @@ class MarionetteWdspecExecutor(WdspecExecutor):
class MarionetteCrashtestExecutor(CrashtestExecutor):
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
debug_info=None, capabilities=None, debug=False,
ccov=False, **kwargs):
"""Marionette-based executor for testharness.js tests"""
- CrashtestExecutor.__init__(self, browser, server_config,
+ CrashtestExecutor.__init__(self, logger, browser, server_config,
timeout_multiplier=timeout_multiplier,
debug_info=debug_info)
self.protocol = MarionetteProtocol(self,
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
index 45692a0488b..96312f3f9f9 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorselenium.py
@@ -271,11 +271,11 @@ class SeleniumRun(TimedRunner):
class SeleniumTestharnessExecutor(TestharnessExecutor):
supports_testdriver = True
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
close_after_done=True, capabilities=None, debug_info=None,
supports_eager_pageload=True, **kwargs):
"""Selenium-based executor for testharness.js tests"""
- TestharnessExecutor.__init__(self, browser, server_config,
+ TestharnessExecutor.__init__(self, logger, browser, server_config,
timeout_multiplier=timeout_multiplier,
debug_info=debug_info)
self.protocol = SeleniumProtocol(self, browser, capabilities)
@@ -356,11 +356,12 @@ if (location.href === "about:blank") {
class SeleniumRefTestExecutor(RefTestExecutor):
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
screenshot_cache=None, close_after_done=True,
debug_info=None, capabilities=None, **kwargs):
"""Selenium WebDriver-based executor for reftests"""
RefTestExecutor.__init__(self,
+ logger,
browser,
server_config,
screenshot_cache=screenshot_cache,
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py
index 4816c3df06e..f83f0115e00 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservo.py
@@ -65,9 +65,9 @@ def build_servo_command(test, test_url_func, browser, binary, pause_after_test,
class ServoTestharnessExecutor(ProcessTestExecutor):
convert_result = testharness_result_converter
- def __init__(self, browser, server_config, timeout_multiplier=1, debug_info=None,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1, debug_info=None,
pause_after_test=False, **kwargs):
- ProcessTestExecutor.__init__(self, browser, server_config,
+ ProcessTestExecutor.__init__(self, logger, browser, server_config,
timeout_multiplier=timeout_multiplier,
debug_info=debug_info)
self.pause_after_test = pause_after_test
@@ -182,10 +182,11 @@ class TempFilename(object):
class ServoRefTestExecutor(ProcessTestExecutor):
convert_result = reftest_result_converter
- def __init__(self, browser, server_config, binary=None, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, binary=None, timeout_multiplier=1,
screenshot_cache=None, debug_info=None, pause_after_test=False,
**kwargs):
ProcessTestExecutor.__init__(self,
+ logger,
browser,
server_config,
timeout_multiplier=timeout_multiplier,
@@ -308,10 +309,11 @@ class ServoTimedRunner(TimedRunner):
class ServoCrashtestExecutor(ProcessTestExecutor):
convert_result = crashtest_result_converter
- def __init__(self, browser, server_config, binary=None, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, binary=None, timeout_multiplier=1,
screenshot_cache=None, debug_info=None, pause_after_test=False,
**kwargs):
ProcessTestExecutor.__init__(self,
+ logger,
browser,
server_config,
timeout_multiplier=timeout_multiplier,
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py
index 2e47a22a9c9..0680c4ed229 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py
@@ -155,10 +155,10 @@ class ServoWebDriverRun(TimedRunner):
class ServoWebDriverTestharnessExecutor(TestharnessExecutor):
supports_testdriver = True
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
close_after_done=True, capabilities=None, debug_info=None,
**kwargs):
- TestharnessExecutor.__init__(self, browser, server_config, timeout_multiplier=1,
+ TestharnessExecutor.__init__(self, logger, browser, server_config, timeout_multiplier=1,
debug_info=None)
self.protocol = ServoWebDriverProtocol(self, browser, capabilities=capabilities)
with open(os.path.join(here, "testharness_servodriver.js")) as f:
@@ -221,11 +221,12 @@ class TimeoutError(Exception):
class ServoWebDriverRefTestExecutor(RefTestExecutor):
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
screenshot_cache=None, capabilities=None, debug_info=None,
**kwargs):
"""Selenium WebDriver-based executor for reftests"""
RefTestExecutor.__init__(self,
+ logger,
browser,
server_config,
screenshot_cache=screenshot_cache,
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
index 2a0e9c7136d..c5f2965ec18 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py
@@ -350,11 +350,11 @@ class WebDriverRun(TimedRunner):
class WebDriverTestharnessExecutor(TestharnessExecutor):
supports_testdriver = True
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
close_after_done=True, capabilities=None, debug_info=None,
supports_eager_pageload=True, **kwargs):
"""WebDriver-based executor for testharness.js tests"""
- TestharnessExecutor.__init__(self, browser, server_config,
+ TestharnessExecutor.__init__(self, logger, browser, server_config,
timeout_multiplier=timeout_multiplier,
debug_info=debug_info)
self.protocol = WebDriverProtocol(self, browser, capabilities)
@@ -449,11 +449,12 @@ if (location.href === "about:blank") {
class WebDriverRefTestExecutor(RefTestExecutor):
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
screenshot_cache=None, close_after_done=True,
debug_info=None, capabilities=None, **kwargs):
"""WebDriver-based executor for reftests"""
RefTestExecutor.__init__(self,
+ logger,
browser,
server_config,
screenshot_cache=screenshot_cache,
@@ -517,11 +518,12 @@ class WebDriverRefTestExecutor(RefTestExecutor):
class WebDriverCrashtestExecutor(CrashtestExecutor):
- def __init__(self, browser, server_config, timeout_multiplier=1,
+ def __init__(self, logger, browser, server_config, timeout_multiplier=1,
screenshot_cache=None, close_after_done=True,
debug_info=None, capabilities=None, **kwargs):
"""WebDriver-based executor for reftests"""
CrashtestExecutor.__init__(self,
+ logger,
browser,
server_config,
screenshot_cache=screenshot_cache,
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py
index 78967371537..cc9d1e539ac 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testloader.py
@@ -168,6 +168,7 @@ class TestLoader(object):
total_chunks=1,
chunk_number=1,
include_https=True,
+ include_quic=False,
skip_timeout=False,
skip_implementation_status=None,
chunker_kwargs=None):
@@ -181,6 +182,7 @@ class TestLoader(object):
self.tests = None
self.disabled_tests = None
self.include_https = include_https
+ self.include_quic = include_quic
self.skip_timeout = skip_timeout
self.skip_implementation_status = skip_implementation_status
@@ -267,6 +269,8 @@ class TestLoader(object):
enabled = not test.disabled()
if not self.include_https and test.environment["protocol"] == "https":
enabled = False
+ if not self.include_quic and test.environment["quic"]:
+ enabled = False
if self.skip_timeout and test.expected() == "TIMEOUT":
enabled = False
if self.skip_implementation_status and test.implementation_status() in self.skip_implementation_status:
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py
index f0d830787a4..49a3525e883 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/testrunner.py
@@ -158,7 +158,7 @@ def start_runner(runner_command_queue, runner_result_queue,
with capture.CaptureIO(logger, capture_stdio):
try:
browser = executor_browser_cls(**executor_browser_kwargs)
- executor = executor_cls(browser, **executor_kwargs)
+ executor = executor_cls(logger, browser, **executor_kwargs)
with TestRunner(logger, runner_command_queue, runner_result_queue, executor) as runner:
try:
runner.run()
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
index 93bd886aac1..96227bb4690 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptcommandline.py
@@ -141,6 +141,10 @@ scheme host and port.""")
action="append",
choices=["not-implementing", "backlog", "implementing"],
help="Skip tests that have the given implementation status")
+ # TODO: Remove this when QUIC is enabled by default.
+ test_selection_group.add_argument("--enable-quic", action="store_true", default=False,
+ help="Enable tests that require QUIC server (default: false)")
+
test_selection_group.add_argument("--tag", action="append", dest="tags",
help="Labels applied to tests to include in the run. "
"Labels starting dir: are equivalent to top-level directories.")
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py
index 7c3adde7253..ce15c5fbbf0 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wptrunner.py
@@ -78,6 +78,7 @@ def get_loader(test_paths, product, debug=None, run_info_extras=None, chunker_kw
total_chunks=kwargs["total_chunks"],
chunk_number=kwargs["this_chunk"],
include_https=ssl_enabled,
+ include_quic=kwargs["enable_quic"],
skip_timeout=kwargs["skip_timeout"],
skip_implementation_status=kwargs["skip_implementation_status"],
chunker_kwargs=chunker_kwargs)
@@ -211,7 +212,8 @@ def run_tests(config, test_paths, product, **kwargs):
kwargs["debug_info"],
product.env_options,
ssl_config,
- env_extras) as test_environment:
+ env_extras,
+ kwargs["enable_quic"]) as test_environment:
recording.set(["startup", "ensure_environment"])
try:
test_environment.ensure_started()
diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py
index 7c58610a7c5..27d7fbbbd7f 100644
--- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py
+++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/wpttest.py
@@ -124,7 +124,6 @@ class RunInfo(dict):
self["headless"] = extras.get("headless", False)
self["webrender"] = enable_webrender
-
def _update_mozinfo(self, metadata_root):
"""Add extra build information from a mozinfo.json file in a parent
directory"""
@@ -159,14 +158,14 @@ class Test(object):
long_timeout = 60 # seconds
def __init__(self, tests_root, url, inherit_metadata, test_metadata,
- timeout=None, path=None, protocol="http"):
+ timeout=None, path=None, protocol="http", quic=False):
self.tests_root = tests_root
self.url = url
self._inherit_metadata = inherit_metadata
self._test_metadata = test_metadata
self.timeout = timeout if timeout is not None else self.default_timeout
self.path = path
- self.environment = {"protocol": protocol, "prefs": self.prefs}
+ self.environment = {"protocol": protocol, "prefs": self.prefs, "quic": quic}
def __eq__(self, other):
if not isinstance(other, Test):
@@ -396,9 +395,9 @@ class TestharnessTest(Test):
def __init__(self, tests_root, url, inherit_metadata, test_metadata,
timeout=None, path=None, protocol="http", testdriver=False,
- jsshell=False, scripts=None):
+ jsshell=False, scripts=None, quic=False):
Test.__init__(self, tests_root, url, inherit_metadata, test_metadata, timeout,
- path, protocol)
+ path, protocol, quic)
self.testdriver = testdriver
self.jsshell = jsshell
@@ -409,6 +408,7 @@ class TestharnessTest(Test):
timeout = cls.long_timeout if manifest_item.timeout == "long" else cls.default_timeout
testdriver = manifest_item.testdriver if hasattr(manifest_item, "testdriver") else False
jsshell = manifest_item.jsshell if hasattr(manifest_item, "jsshell") else False
+ quic = manifest_item.quic if hasattr(manifest_item, "quic") else False
script_metadata = manifest_item.script_metadata or []
scripts = [v for (k, v) in script_metadata if k == b"script"]
return cls(manifest_file.tests_root,
@@ -420,8 +420,8 @@ class TestharnessTest(Test):
protocol=server_protocol(manifest_item),
testdriver=testdriver,
jsshell=jsshell,
- scripts=scripts
- )
+ scripts=scripts,
+ quic=quic)
@property
def id(self):
@@ -452,9 +452,9 @@ class ReftestTest(Test):
test_type = "reftest"
def __init__(self, tests_root, url, inherit_metadata, test_metadata, references,
- timeout=None, path=None, viewport_size=None, dpi=None, fuzzy=None, protocol="http"):
+ timeout=None, path=None, viewport_size=None, dpi=None, fuzzy=None, protocol="http", quic=False):
Test.__init__(self, tests_root, url, inherit_metadata, test_metadata, timeout,
- path, protocol)
+ path, protocol, quic)
for _, ref_type in references:
if ref_type not in ("==", "!="):
@@ -473,6 +473,7 @@ class ReftestTest(Test):
test_metadata):
timeout = cls.long_timeout if manifest_test.timeout == "long" else cls.default_timeout
+ quic = manifest_test.quic if hasattr(manifest_test, "quic") else False
url = manifest_test.url
@@ -486,7 +487,8 @@ class ReftestTest(Test):
viewport_size=manifest_test.viewport_size,
dpi=manifest_test.dpi,
protocol=server_protocol(manifest_test),
- fuzzy=manifest_test.fuzzy)
+ fuzzy=manifest_test.fuzzy,
+ quic=quic)
refs_by_type = defaultdict(list)
diff --git a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/sslutils/openssl.py b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/sslutils/openssl.py
index aea1c7380b1..64f6d5fb2db 100644
--- a/tests/wpt/web-platform-tests/tools/wptserve/wptserve/sslutils/openssl.py
+++ b/tests/wpt/web-platform-tests/tools/wptserve/wptserve/sslutils/openssl.py
@@ -402,6 +402,8 @@ class OpenSSLEnvironment(object):
def _generate_host_cert(self, hosts):
host = hosts[0]
+ if not self.force_regenerate:
+ self._load_ca_cert()
if self._ca_key_path is None:
self._generate_ca(hosts)
ca_key_path = self._ca_key_path
diff --git a/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString-regression.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString-regression.tentative.html
index 941d1750b4a..941d1750b4a 100644
--- a/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString-regression.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString-regression.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.html
index 2dfc37686bc..2dfc37686bc 100644
--- a/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/DOMParser-parseFromString.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.html
index 2ad47555a92..2ad47555a92 100644
--- a/tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/DOMWindowTimers-setTimeout-setInterval.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.html
index 87e9e724699..87e9e724699 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Document-write.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.html
index 6a9329b3fbf..6a9329b3fbf 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentHTML.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html
index f6221362c17..f6221362c17 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-insertAdjacentText.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.html
index c8daddfe995..c8daddfe995 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-outerHTML.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.html
index cd6617915bd..cd6617915bd 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-setAttribute.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.html
index 67e8236febd..67e8236febd 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Element-setAttributeNS.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html
index 0fdde778cc8..0fdde778cc8 100644
--- a/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/GlobalEventHandlers-onclick.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.html
index 3ec6cfa60da..3ec6cfa60da 100644
--- a/tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/HTMLElement-generic.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.html
index 4f523bb4e4e..4f523bb4e4e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/HTMLScriptElement-internal-slot.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.html
index e3e4a2635e9..e3e4a2635e9 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Node-multiple-arguments.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.html
index 3a880a53778..3a880a53778 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Range-createContextualFragment.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.html
index 6b006657004..6b006657004 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedType-AttributeNodes.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.html
index b1c7f51ddb3..b1c7f51ddb3 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-no-name.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.html
index cdc683dad3b..cdc683dad3b 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-CSP-wildcard.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.html
index 112d1ae636a..112d1ae636a 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicy-createXXX.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html
index 551084ca4b6..551084ca4b6 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-constants.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html
index 746d89fa3f8..746d89fa3f8 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-createXYZTests.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html
index 15728b9888f..15728b9888f 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-noNamesGiven.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.html
index 9200708545c..9200708545c 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests-wildcard.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html
index 3a56546151e..3a56546151e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-cspTests.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html
index 9fdafb2ccf0..9fdafb2ccf0 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-nameTests.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.html
index 29344482021..29344482021 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-createPolicy-unenforced.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.html
index 7ac09d8bb96..7ac09d8bb96 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-defaultPolicy.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.html
index 861dd8bb7c6..861dd8bb7c6 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-getPropertyType.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.html
index a7df477d00e..a7df477d00e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-isXXX.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html
index a5fe7864b12..a5fe7864b12 100644
--- a/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/TrustedTypePolicyFactory-metadata.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.html
index 718c763afaf..718c763afaf 100644
--- a/tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/Window-TrustedTypes.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html b/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.html
index 9853b1bc448..9853b1bc448 100644
--- a/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/WorkerGlobalScope-importScripts.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html
index e87c8fca238..e87c8fca238 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-Node-multiple-arguments.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html
index dd912e6b8de..dd912e6b8de 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html
index f36ae94ea10..f36ae94ea10 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html
index 974203c1133..974203c1133 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Document-write.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html
index 228887d0423..228887d0423 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html
index 9b6cf72cb40..9b6cf72cb40 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-outerHTML.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html
index 1d39a804f39..1d39a804f39 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttribute.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html
index 346e077a666..346e077a666 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Element-setAttributeNS.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html
index 9e780c1ed23..9e780c1ed23 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-HTMLElement-generic.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html
index 79111204934..79111204934 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html
index 819753652a9..819753652a9 100644
--- a/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/block-text-node-insertion-into-script-element.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.html
index e3911bf9e6a..e3911bf9e6a 100644
--- a/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/csp-block-eval.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy-callback-arguments.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/default-policy-callback-arguments.tentative.html
index 5944b0e92d6..5944b0e92d6 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy-callback-arguments.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy-callback-arguments.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html
index 1cff751a801..1cff751a801 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers
index 4c1ff15e167..4c1ff15e167 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy-report-only.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html
index debde85cdac..debde85cdac 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers
index 604e765da46..604e765da46 100644
--- a/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/default-policy.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html
index 1ba9c5ec18e..1ba9c5ec18e 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers
index 4c1ff15e167..4c1ff15e167 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy-report-only.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html
index d31b48ecd5a..d31b48ecd5a 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers
index 604e765da46..604e765da46 100644
--- a/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/empty-default-policy.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.html
index e8ed57708ef..e8ed57708ef 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-csp-no-tt.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html
index 106a024f2c1..106a024f2c1 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-default-policy.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html
index 2f1e2a281b8..2f1e2a281b8 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-csp-tt-no-default-policy.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.html
index 84c224eac28..84c224eac28 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt-default-policy.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.html
index 45086a1d6ab..45086a1d6ab 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-no-csp-no-tt.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html
index abc698a46d3..abc698a46d3 100644
--- a/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/eval-with-permissive-csp.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.https.window.js b/tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.window.js
index 5a854a12b78..5a854a12b78 100644
--- a/tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.https.window.js
+++ b/tests/wpt/web-platform-tests/trusted-types/idlharness.tentative.window.js
diff --git a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html
index 651bf0a7199..651bf0a7199 100644
--- a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers
index aa00fcc15a3..aa00fcc15a3 100644
--- a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for-report-only.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html
index 651bf0a7199..651bf0a7199 100644
--- a/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/no-require-trusted-types-for.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/nonsecure-require-trusted-types-for.tentative.html b/tests/wpt/web-platform-tests/trusted-types/nonsecure-require-trusted-types-for.tentative.html
deleted file mode 100644
index 46dae7a9661..00000000000
--- a/tests/wpt/web-platform-tests/trusted-types/nonsecure-require-trusted-types-for.tentative.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<head>
- <script src="/resources/testharness.js"></script>
- <script src="/resources/testharnessreport.js"></script>
- <meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'">
-</head>
-<body>
-<script>
- const testCases = [
- ["script", "src"],
- ["div", "innerHTML"],
- ["script", "text"],
- ];
-
- testCases.forEach(c => {
- const name = `${c[0]}.${c[1]} `;
- test(t => {
- s = document.createElement(c[0]);
- s[c[1]] = "https://example.com/";
- assert_equals("https://example.com/", s[c[1]].toString());
- }, name + "without trusted types is not blocked by require-trusted-types-for on non-secure pages");
- });
-</script>
-</body>
diff --git a/tests/wpt/web-platform-tests/trusted-types/nonsecure-require-trusted-types-for.tentative.html.headers b/tests/wpt/web-platform-tests/trusted-types/nonsecure-require-trusted-types-for.tentative.html.headers
deleted file mode 100644
index af6596b29a8..00000000000
--- a/tests/wpt/web-platform-tests/trusted-types/nonsecure-require-trusted-types-for.tentative.html.headers
+++ /dev/null
@@ -1 +0,0 @@
-Content-Security-Policy: require-trusted-types-for 'script'
diff --git a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html
index 25b4440ef41..25b4440ef41 100644
--- a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers
index c6412f8d472..c6412f8d472 100644
--- a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for-report-only.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html
index 2a3820a89b8..2a3820a89b8 100644
--- a/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/require-trusted-types-for.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html
index e4af2eb5902..e4af2eb5902 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-createHTMLDocument.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html
index 46ca2edb6fb..46ca2edb6fb 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html.headers
index b6608515aa8..b6608515aa8 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list-report-only.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.html
index afb2f5f7c4b..afb2f5f7c4b 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names-list.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.html
index decce535646..decce535646 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-duplicate-names.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.html
index 081f9becbd0..081f9becbd0 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.html.headers
index e4147bd2e37..e4147bd2e37 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-no-unsafe-eval.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.html
index 3fd1c9ffa8d..3fd1c9ffa8d 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.html.headers
index b5e94c400bb..b5e94c400bb 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting-report-only.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.html
index 9621aaba974..9621aaba974 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.html.headers
index 3f55bba7d1b..3f55bba7d1b 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-eval-reporting.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html
index 4e784611dd6..4e784611dd6 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-navigation.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.html
index fcb77841163..fcb77841163 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.html.headers
index 857a8b31e86..857a8b31e86 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-report-only.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.html
index fc98f5cbc58..fc98f5cbc58 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.https.html.sub.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.html.sub.headers
index 5830239f5ca..5830239f5ca 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.https.html.sub.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting-check-report.html.sub.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.html
index 5003fc7fad5..5003fc7fad5 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html.headers b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.html.headers
index fa8aceab74b..fa8aceab74b 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.https.html.headers
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-reporting.tentative.html.headers
diff --git a/tests/wpt/web-platform-tests/trusted-types/trusted-types-svg-script.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/trusted-types-svg-script.tentative.html
index 330efc0c0ac..330efc0c0ac 100644
--- a/tests/wpt/web-platform-tests/trusted-types/trusted-types-svg-script.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/trusted-types-svg-script.tentative.html
diff --git a/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.https.html b/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html
index 13178bd44bf..13178bd44bf 100644
--- a/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.https.html
+++ b/tests/wpt/web-platform-tests/trusted-types/tt-block-eval.tentative.html
diff --git a/tests/wpt/web-platform-tests/visual-viewport/idlharness.window.js b/tests/wpt/web-platform-tests/visual-viewport/idlharness.window.js
index f0b5aeb173a..8a41f8d6b87 100644
--- a/tests/wpt/web-platform-tests/visual-viewport/idlharness.window.js
+++ b/tests/wpt/web-platform-tests/visual-viewport/idlharness.window.js
@@ -1,5 +1,6 @@
// META: script=/resources/WebIDLParser.js
// META: script=/resources/idlharness.js
+// META: timeout=long
'use strict';
diff --git a/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html
new file mode 100644
index 00000000000..4d2eb40d552
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webaudio/the-audio-api/the-audioparam-interface/k-rate-audioworklet-connections.https.html
@@ -0,0 +1,77 @@
+<!doctype html>
+<html>
+ <head>
+ <title>Test k-rate AudioParams with inputs for AudioWorkletNode</title>
+ <script src="/resources/testharness.js"></script>
+ <script src="/resources/testharnessreport.js"></script>
+ <script src="/webaudio/resources/audit-util.js"></script>
+ <script src="/webaudio/resources/audit.js"></script>
+ </head>
+
+ <body>
+ <script>
+ const audit = Audit.createTaskRunner();
+
+ // Use the worklet gain node to test k-rate parameters.
+ const filePath =
+ '../the-audioworklet-interface/processors/gain-processor.js';
+
+ // Context for testing
+ let context;
+
+ audit.define('Create Test Worklet', (task, should) => {
+ // Arbitrary sample rate and duration.
+ const sampleRate = 8000;
+
+ // Only new a few render quanta to verify things are working.
+ const testDuration = 4 * 128 / sampleRate;
+
+ context = new OfflineAudioContext({
+ numberOfChannels: 3,
+ sampleRate: sampleRate,
+ length: testDuration * sampleRate
+ });
+
+ should(
+ context.audioWorklet.addModule(filePath),
+ 'Construction of AudioWorklet')
+ .beResolved()
+ .then(() => task.done());
+ });
+
+ audit.define('AudioWorklet k-rate AudioParam', async (task, should) => {
+ let src = new ConstantSourceNode(context);
+ let kRateNode = new AudioWorkletNode(context, 'gain');
+ src.connect(kRateNode).connect(context.destination);
+
+ let kRateParam = kRateNode.parameters.get('gain');
+ kRateParam.automationRate = 'k-rate';
+ kRateParam.value = 0;
+
+ let mod = new ConstantSourceNode(context);
+ mod.offset.setValueAtTime(0, 0);
+ mod.offset.linearRampToValueAtTime(
+ 10, context.length / context.sampleRate);
+ mod.connect(kRateParam);
+
+ mod.start();
+ src.start();
+
+ const audioBuffer = await context.startRendering();
+ let output = audioBuffer.getChannelData(0);
+
+ // Verify that the output isn't constantly zero.
+ should(output, 'output').notBeConstantValueOf(0);
+ // Verify that the output from the worklet is step-wise
+ // constant.
+ for (let k = 0; k < output.length; k += 128) {
+ should(output.slice(k, k + 128), ` k-rate output [${k}: ${k + 127}]`)
+ .beConstantValueOf(output[k]);
+ }
+ task.done();
+ });
+
+ audit.run();
+ </script>
+ </body>
+</html>
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js
index 25d126f9a9b..29145c8b927 100644
--- a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js
+++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-helper.js
@@ -594,7 +594,8 @@ const trackFactories = {
ctx.fillStyle = `rgb(${count%255}, ${count*count%255}, ${count%255})`;
count += 1;
ctx.fillRect(0, 0, width, height);
- // If signal is set, add a constant-color box to the video frame.
+ // If signal is set, add a constant-color box to the video frame
+ // at coordinates 10 to 30 in both X and Y direction.
if (signal !== null) {
ctx.fillStyle = `rgb(${signal}, ${signal}, ${signal})`;
ctx.fillRect(10, 10, 20, 20);
@@ -623,7 +624,9 @@ function getVideoSignal(v) {
context.drawImage(v, 0, 0, v.videoWidth, v.videoHeight);
// Extract pixel value at position 20, 20
let pixel = context.getImageData(20, 20, 1, 1);
- return (pixel.data[0] + pixel.data[1] + pixel.data[2]) / 3;
+ // Use luma reconstruction to get back original value according to
+ // ITU-R rec BT.709
+ return (pixel.data[0] * 0.21 + pixel.data[1] * 0.72 + pixel.data[2] * 0.07);
}
function detectSignal(t, v, value) {
@@ -633,6 +636,8 @@ function detectSignal(t, v, value) {
if (signal !== null && signal < value + 1 && signal > value - 1) {
resolve();
} else {
+ // We would like to wait for each new frame instead here,
+ // but there seems to be no such callback.
t.step_timeout(check, 100);
}
}
diff --git a/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-videoDetectorTest.html b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-videoDetectorTest.html
new file mode 100644
index 00000000000..c9d0f24b12b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webrtc/RTCPeerConnection-videoDetectorTest.html
@@ -0,0 +1,84 @@
+<!doctype html>
+<meta charset=utf-8>
+<meta name="timeout" content="long">
+<title>RTCPeerConnection Video detector test</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="RTCPeerConnection-helper.js"></script>
+<script>
+'use strict';
+
+// This test verifies that the helper function "detectSignal" from
+// RTCPeerConnectionHelper, which is used to detect changes in a video
+// signal, performs properly for a range of "signal" values.
+
+// If it fails, it indicates that the video codec used in this particular
+// browser at this time doesn't reproduce the luma signal reliably enough
+// for this particular application, which may lead to other tests that
+// use the "detectSignal" helper failing without an obvious cause.
+
+// The most likely failure is timeout - which will happen if the
+// luma value detected doesn't settle within the margin of error before
+// the test times out.
+
+async function signalSettlementTime(t, v, sender, signal, backgroundTrack) {
+ const detectionStream = await getNoiseStream({video: {signal: signal}});
+ const [detectionTrack] = detectionStream.getTracks();
+ await sender.replaceTrack(detectionTrack);
+ const framesBefore = v.getVideoPlaybackQuality().totalVideoFrames;
+ await detectSignal(t, v, signal);
+ const framesAfter = v.getVideoPlaybackQuality().totalVideoFrames;
+ await sender.replaceTrack(backgroundTrack);
+ await detectSignal(t, v, 100);
+ detectionStream.getTracks().forEach(track => track.stop());
+ return (framesAfter - framesBefore);
+}
+
+promise_test(async t => {
+ const v = document.createElement('video');
+ v.autoplay = true;
+ const pc1 = new RTCPeerConnection();
+ t.add_cleanup(() => pc1.close());
+ const pc2 = new RTCPeerConnection();
+ t.add_cleanup(() => pc2.close());
+ const stream1 = await getNoiseStream({video: {signal: 100}});
+ t.add_cleanup(() => stream1.getTracks().forEach(track => track.stop()));
+ const [track1] = stream1.getTracks();
+ const sender = pc1.addTrack(track1);
+ pc2.ontrack = t.step_func((e) => {
+ v.srcObject = new MediaStream([e.track]);
+ });
+ const metadataToBeLoaded = new Promise((resolve) => {
+ v.addEventListener('loadedmetadata', resolve);
+ });
+ exchangeIceCandidates(pc1, pc2);
+ doSignalingHandshake(pc1, pc2);
+ await metadataToBeLoaded;
+ // The basic signal is a track with signal 100. We replace this
+ // with tracks with signal from 0 to 255 and see if they are all
+ // reliably detected.
+ await detectSignal(t, v, 100);
+ // A few buffered frames are received with the old content, and a few
+ // frames may not have settled on exactly the right value. In testing,
+ // this test passes with maxFrames = 3; give a little more margin.
+ const maxFrames = 7;
+ // Test values 0 and 255
+ let maxCount = await signalSettlementTime(t, v, sender, 0, track1);
+ assert_less_than(maxCount, maxFrames,
+ 'Should get the black value within ' + maxFrames + ' frames');
+ maxCount = Math.max(
+ await signalSettlementTime(t, v, sender, 255, track1), maxCount);
+ assert_less_than(maxCount, maxFrames,
+ 'Should get the white value within ' + maxFrames + ' frames');
+ // Test a set of other values - far enough apart to make the test fast.
+ for (let signal = 2; signal <= 255; signal += 47) {
+ if (Math.abs(signal - 100) > 10) {
+ const count = await signalSettlementTime(t, v, sender, signal, track1);
+ maxCount = Math.max(count, maxCount);
+ assert_less_than(maxCount, 10,
+ 'Should get value ' + signal + ' within ' + maxFrames + ' frames');
+ }
+ }
+ assert_less_than(maxCount, 10, 'Should get the right value within 10 frames');
+}, 'Signal detector detects track change within reasonable time');
+</script>
diff --git a/tests/wpt/web-platform-tests/webtransport/quic/client-indication.any.js b/tests/wpt/web-platform-tests/webtransport/quic/client-indication.any.js
new file mode 100644
index 00000000000..15baa5f8542
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webtransport/quic/client-indication.any.js
@@ -0,0 +1,32 @@
+// META: quic=true
+// META: script=/common/get-host-info.sub.js
+
+const PORT = 8983;
+const {ORIGINAL_HOST: HOST, ORIGIN} = get_host_info();
+const BASE = `quic-transport://${HOST}:${PORT}`;
+
+promise_test(async (test) => {
+ function onClosed() {
+ assert_unreached('The closed promise should be ' +
+ 'fulfilled or rejected after getting a PASS signal.');
+ }
+ const qt = new QuicTransport(
+ `${BASE}/client-indication.quic.py?origin=${ORIGIN}`);
+ qt.closed.then(test.step_func(onClosed), test.step_func(onClosed));
+
+ const streams = qt.receiveStreams();
+ const {done, value} = await streams.getReader().read();
+ assert_false(done, 'getting an incoming stream');
+
+ const readable = value.readable.pipeThrough(new TextDecoderStream());
+ const reader = readable.getReader();
+ let result = '';
+ while (true) {
+ const {done, value} = await reader.read();
+ if (done) {
+ break;
+ }
+ result += value;
+ }
+ assert_equals(result, 'PASS');
+}, 'Client indication');
diff --git a/tests/wpt/web-platform-tests/webtransport/quic/handlers/README.md b/tests/wpt/web-platform-tests/webtransport/quic/handlers/README.md
new file mode 100644
index 00000000000..22073e783a2
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webtransport/quic/handlers/README.md
@@ -0,0 +1,2 @@
+This directory contains custom handlers for testing QuicTransport. Please see
+https://github.com/web-platform-tests/wpt/tools/quic. \ No newline at end of file
diff --git a/tests/wpt/web-platform-tests/webtransport/quic/handlers/client-indication.quic.py b/tests/wpt/web-platform-tests/webtransport/quic/handlers/client-indication.quic.py
new file mode 100644
index 00000000000..da0701cc04b
--- /dev/null
+++ b/tests/wpt/web-platform-tests/webtransport/quic/handlers/client-indication.quic.py
@@ -0,0 +1,28 @@
+import asyncio
+import logging
+
+from aioquic.asyncio import QuicConnectionProtocol
+from aioquic.quic.events import QuicEvent
+from typing import Dict
+
+
+async def notify_pass(connection: QuicConnectionProtocol):
+ _, writer = await connection.create_stream(is_unidirectional=True)
+ writer.write(b'PASS')
+ writer.write_eof()
+
+
+def handle_client_indication(connection: QuicConnectionProtocol,
+ origin: str, query: Dict[str, str]):
+ logging.log(logging.INFO, 'origin = %s, query = %s' % (origin, query))
+ if 'origin' not in query or query['origin'] != origin:
+ logging.log(logging.WARN, 'Client indication failure: invalid origin')
+ connection.close()
+ return
+
+ loop = asyncio.get_event_loop()
+ loop.create_task(notify_pass(connection))
+
+
+def handle_event(connection: QuicConnectionProtocol, event: QuicEvent) -> None:
+ pass