diff --git a/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-navigation.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-navigation.tentative.https.html.ini new file mode 100644 index 00000000000..575e16729cb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-navigation.tentative.https.html.ini @@ -0,0 +1,2 @@ +[cross-partition-navigation.tentative.https.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-worker-creation.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-worker-creation.tentative.https.html.ini new file mode 100644 index 00000000000..06d580aa061 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-worker-creation.tentative.https.html.ini @@ -0,0 +1,2 @@ +[cross-partition-worker-creation.tentative.https.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition.tentative.https.html.ini new file mode 100644 index 00000000000..5f8ed6cf262 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition.tentative.https.html.ini @@ -0,0 +1,2 @@ +[cross-partition.tentative.https.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/animations/font-style-interpolation.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/animations/font-style-interpolation.html.ini index dba9bfafaf6..833bcae410d 100644 --- a/tests/wpt/meta-legacy-layout/css/css-fonts/animations/font-style-interpolation.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/animations/font-style-interpolation.html.ini @@ -97,3 +97,51 @@ [An interpolation to inherit updates correctly on a parent style change.] expected: FAIL + + [CSS Transitions: property from [normal\] to [oblique 10deg\] at (0) should be [oblique 0deg\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [normal\] to [oblique 10deg\] at (0) should be [oblique 0deg\]] + expected: FAIL + + [CSS Animations: property from [normal\] to [oblique 10deg\] at (0) should be [oblique 0deg\]] + expected: FAIL + + [Web Animations: property from [normal\] to [oblique 10deg\] at (0) should be [oblique 0deg\]] + expected: FAIL + + [CSS Transitions: property from [initial\] to [inherit\] at (0) should be [oblique 0deg\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [initial\] to [inherit\] at (0) should be [oblique 0deg\]] + expected: FAIL + + [CSS Animations: property from [initial\] to [inherit\] at (0) should be [oblique 0deg\]] + expected: FAIL + + [Web Animations: property from [initial\] to [inherit\] at (0) should be [oblique 0deg\]] + expected: FAIL + + [CSS Transitions: property from [oblique 20deg\] to [normal\] at (1) should be [oblique 0deg\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [oblique 20deg\] to [normal\] at (1) should be [oblique 0deg\]] + expected: FAIL + + [CSS Animations: property from [oblique 20deg\] to [normal\] at (1) should be [oblique 0deg\]] + expected: FAIL + + [Web Animations: property from [oblique 20deg\] to [normal\] at (1) should be [oblique 0deg\]] + expected: FAIL + + [CSS Transitions: property from [oblique -90deg\] to [oblique 90deg\] at (0.5) should be [oblique 0deg\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [oblique -90deg\] to [oblique 90deg\] at (0.5) should be [oblique 0deg\]] + expected: FAIL + + [CSS Animations: property from [oblique -90deg\] to [oblique 90deg\] at (0.5) should be [oblique 0deg\]] + expected: FAIL + + [Web Animations: property from [oblique -90deg\] to [oblique 90deg\] at (0.5) should be [oblique 0deg\]] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini index a4bb3c727dd..9c0e7068746 100644 --- a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini @@ -23,14 +23,5 @@ [@font-face matching for quoted and unquoted serif] expected: FAIL - [@font-face matching for quoted and unquoted sans-serif] - expected: FAIL - - [@font-face matching for quoted and unquoted cursive] - expected: FAIL - - [@font-face matching for quoted and unquoted fantasy] - expected: FAIL - [@font-face matching for quoted and unquoted monospace] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-size-adjust-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-size-adjust-valid.html.ini index f8e4c08b6f2..2e7ee2b973d 100644 --- a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-size-adjust-valid.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-size-adjust-valid.html.ini @@ -37,3 +37,21 @@ [e.style['font-size-adjust'\] = "ic-height from-font" should set the property value] expected: FAIL + + [e.style['font-size-adjust'\] = "calc(0.5)" should set the property value] + expected: FAIL + + [e.style['font-size-adjust'\] = "ex-height calc(0.5)" should set the property value] + expected: FAIL + + [e.style['font-size-adjust'\] = "cap-height calc(0.5)" should set the property value] + expected: FAIL + + [e.style['font-size-adjust'\] = "cap-height calc(0.5 + 1)" should set the property value] + expected: FAIL + + [e.style['font-size-adjust'\] = "cap-height calc(-0.5)" should set the property value] + expected: FAIL + + [e.style['font-size-adjust'\] = "cap-height calc(10 + (sign(20cqw - 10px) * 5))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-stretch-computed.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-stretch-computed.html.ini new file mode 100644 index 00000000000..1e985cb770a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-stretch-computed.html.ini @@ -0,0 +1,3 @@ +[font-stretch-computed.html] + [Property font-stretch value 'calc(100% + (sign(20cqw - 10px) * 5%))'] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-stretch-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-stretch-valid.html.ini new file mode 100644 index 00000000000..8d0d3962761 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-stretch-valid.html.ini @@ -0,0 +1,3 @@ +[font-stretch-valid.html] + [e.style['font-stretch'\] = "calc(100% + (sign(20cqw - 10px) * 5%))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-style-computed.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-style-computed.html.ini new file mode 100644 index 00000000000..161a55b8912 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-style-computed.html.ini @@ -0,0 +1,3 @@ +[font-style-computed.html] + [Property font-style value 'oblique calc(30deg + (sign(20cqw - 10px) * 5deg))'] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-style-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-style-valid.html.ini new file mode 100644 index 00000000000..30877373762 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-style-valid.html.ini @@ -0,0 +1,3 @@ +[font-style-valid.html] + [e.style['font-style'\] = "oblique calc(30deg + (sign(2cqw - 10px) * 5deg))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-weight-computed.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-weight-computed.html.ini new file mode 100644 index 00000000000..6a48bb48b49 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-weight-computed.html.ini @@ -0,0 +1,3 @@ +[font-weight-computed.html] + [Property font-weight value 'calc(100 + (sign(20cqw - 10px) * 5))'] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-weight-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-weight-valid.html.ini new file mode 100644 index 00000000000..63edb8c3fef --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-weight-valid.html.ini @@ -0,0 +1,3 @@ +[font-weight-valid.html] + [e.style['font-weight'\] = "calc(100 + (sign(20cqw - 10px) * 5))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-increment-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-increment-valid.html.ini new file mode 100644 index 00000000000..f3020b1c660 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-increment-valid.html.ini @@ -0,0 +1,6 @@ +[counter-increment-valid.html] + [e.style['counter-increment'\] = "section calc(-2.5)" should set the property value] + expected: FAIL + + [e.style['counter-increment'\] = "section calc(10 + (5 * sign(2cqw - 10px)))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-reset-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-reset-valid.html.ini new file mode 100644 index 00000000000..26276286e56 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-reset-valid.html.ini @@ -0,0 +1,6 @@ +[counter-reset-valid.html] + [e.style['counter-reset'\] = "section calc(-2.5)" should set the property value] + expected: FAIL + + [e.style['counter-reset'\] = "section calc(10 + (5 * sign(2cqw - 10px)))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-set-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-set-valid.html.ini index ef1547ada36..430cd2c3cae 100644 --- a/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-set-valid.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-lists/parsing/counter-set-valid.html.ini @@ -10,3 +10,12 @@ [e.style['counter-set'\] = "first -1 second third 99" should set the property value] expected: FAIL + + [e.style['counter-set'\] = "section calc(1)" should set the property value] + expected: FAIL + + [e.style['counter-set'\] = "section calc(-2.5)" should set the property value] + expected: FAIL + + [e.style['counter-set'\] = "section calc(10 + (5 * sign(2cqw - 10px)))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-check-pseudo-element.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-check-pseudo-element.tentative.html.ini new file mode 100644 index 00000000000..062a58a6e3f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-check-pseudo-element.tentative.html.ini @@ -0,0 +1,2 @@ +[the-check-pseudo-element.tentative.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-select-arrow-pseudo-element.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-select-arrow-pseudo-element.tentative.html.ini new file mode 100644 index 00000000000..a4c4197b59b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-select-arrow-pseudo-element.tentative.html.ini @@ -0,0 +1,2 @@ +[the-select-arrow-pseudo-element.tentative.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini b/tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini deleted file mode 100644 index 35256741d38..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[dynamic-available-size-iframe.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-1.html.ini b/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-1.html.ini deleted file mode 100644 index 5c9d7ecf7ea..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-1.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[block-height-1.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-2.html.ini b/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-2.html.ini deleted file mode 100644 index 8e53e770c55..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-2.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[block-height-2.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini index bb1cd591418..f71bc17f66d 100644 --- a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini @@ -40,3 +40,6 @@ [sec-fetch-storage-access - Not sent to non-trustworthy same-site destination] expected: FAIL + + [sec-fetch-mode - Not sent to non-trustworthy same-site destination] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/element-picture.https.sub.html.ini b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/element-picture.https.sub.html.ini index 37e26a62baa..ea347e106eb 100644 --- a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/element-picture.https.sub.html.ini +++ b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/element-picture.https.sub.html.ini @@ -70,6 +70,3 @@ [sec-fetch-storage-access - source[srcset\] - Cross-site, no attributes] expected: FAIL - - [sec-fetch-mode - img[src\] - attributes: crossorigin=use-credentials] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini index 1bca09f21d6..5f9a07f92f0 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini @@ -2,8 +2,5 @@ [Navigating to a different document with window.open] expected: FAIL - [Navigating to a different document with link click] - expected: FAIL - [Navigating to a different document with form submission] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-submit-cross-frame.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-submit-cross-frame.html.ini deleted file mode 100644 index 08ed6def090..00000000000 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/form-submit-cross-frame.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[form-submit-cross-frame.html] - [No replace before load, triggered by cross-iframe formElement.submit()] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini deleted file mode 100644 index dc8137a3a4e..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edge-cases.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html.ini deleted file mode 100644 index c1d026a098f..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edges.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position.tentative.html.ini deleted file mode 100644 index 51ffef6397a..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini deleted file mode 100644 index dc8137a3a4e..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edge-cases.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js.ini deleted file mode 100644 index 074dbcf4af4..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edge-cases.tentative.worker.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html.ini deleted file mode 100644 index c1d026a098f..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edges.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js.ini deleted file mode 100644 index 0133a89a2ff..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edges.tentative.worker.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html.ini deleted file mode 100644 index 51ffef6397a..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index 7f5e282e3e2..2d3fbf0f308 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,5 +1,5 @@ [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/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini index 26704422bbe..68203d2a082 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_escaping-2.html] - expected: TIMEOUT + expected: CRASH [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/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini index a6c31bc671e..eacbe5794ea 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini @@ -1,4 +1,5 @@ [iframe_sandbox_popups_escaping-3.html] type: testharness + 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/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini index f9138fb999a..4041e43a4fd 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini @@ -1,5 +1,5 @@ [iframe_sandbox_popups_nonescaping-1.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/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index f2378357bcc..ff0e825b9a1 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -2,4 +2,4 @@ type: testharness expected: CRASH [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html.ini deleted file mode 100644 index d44f3ccff52..00000000000 --- a/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[form-submit-iframe-then-location-navigate.html] - [Verifies that location navigations take precedence when following form submissions.] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/detached-frame.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/detached-frame.html.ini new file mode 100644 index 00000000000..c5aac72fad4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/detached-frame.html.ini @@ -0,0 +1,2 @@ +[detached-frame.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A-A.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A-A.html.ini new file mode 100644 index 00000000000..3a52ab8c6bb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A-A.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-A-A.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A.html.ini new file mode 100644 index 00000000000..be55d35736e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-A.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AA.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AA.html.ini new file mode 100644 index 00000000000..53d60ea5e29 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AA.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-AA.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AB.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AB.html.ini new file mode 100644 index 00000000000..f2edd3bd1d8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AB.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-AB.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-A.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-A.html.ini new file mode 100644 index 00000000000..f9edb91a6d9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-A.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-B-A.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-B.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-B.html.ini new file mode 100644 index 00000000000..fe446b62c4c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-B.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-B-B.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B.html.ini new file mode 100644 index 00000000000..c37ba79c265 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-B.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/performance-entry-source.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/performance-entry-source.html.ini new file mode 100644 index 00000000000..9590b722a6d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/performance-entry-source.html.ini @@ -0,0 +1,2 @@ +[performance-entry-source.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/with-filter-options-originA.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/with-filter-options-originA.html.ini new file mode 100644 index 00000000000..8f143701190 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/with-filter-options-originA.html.ini @@ -0,0 +1,2 @@ +[with-filter-options-originA.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/workers/WorkerGlobalScope-close.html.ini b/tests/wpt/meta-legacy-layout/workers/WorkerGlobalScope-close.html.ini new file mode 100644 index 00000000000..24daae4c2e7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/workers/WorkerGlobalScope-close.html.ini @@ -0,0 +1,3 @@ +[WorkerGlobalScope-close.html] + [Test sending a message after closing.] + expected: FAIL diff --git a/tests/wpt/meta/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/meta/FileAPI/url/url-in-tags-revoke.window.js.ini index 745f3e84edb..62c2d998e8f 100644 --- a/tests/wpt/meta/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/meta/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -14,6 +14,3 @@ [Opening a blob URL in a new window by clicking an tag works immediately before revoking the URL.] expected: TIMEOUT - - [Fetching a blob URL immediately before revoking it works in diff --git a/tests/wpt/tests/css/css-animations/parsing/animation-name-valid.html b/tests/wpt/tests/css/css-animations/parsing/animation-name-valid.html index 1906f9bdb76..4c17b876276 100644 --- a/tests/wpt/tests/css/css-animations/parsing/animation-name-valid.html +++ b/tests/wpt/tests/css/css-animations/parsing/animation-name-valid.html @@ -11,6 +11,7 @@ diff --git a/tests/wpt/tests/css/css-backgrounds/background-clip/clip-border-area-on-body-not-propagated-to-root.html b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-border-area-on-body-not-propagated-to-root.html new file mode 100644 index 00000000000..6530d2aa1f2 --- /dev/null +++ b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-border-area-on-body-not-propagated-to-root.html @@ -0,0 +1,22 @@ + +background-clip:border-area on the root + + + + +There should be a 20px green border around the edge of the viewport. This text should be black on a white background. \ No newline at end of file diff --git a/tests/wpt/tests/css/css-backgrounds/background-clip/clip-border-area-on-body-propagated-to-root.html b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-border-area-on-body-propagated-to-root.html new file mode 100644 index 00000000000..c1713a108eb --- /dev/null +++ b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-border-area-on-body-propagated-to-root.html @@ -0,0 +1,21 @@ + +background-clip:border-area on the root + + + + +The border should not be visible; the page should be entirely green. diff --git a/tests/wpt/tests/css/css-backgrounds/background-clip/clip-border-area-on-root.html b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-border-area-on-root.html new file mode 100644 index 00000000000..c3e49c8124f --- /dev/null +++ b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-border-area-on-root.html @@ -0,0 +1,20 @@ + +background-clip:border-area on the root + + + + +The border should not be visible; the page should be entirely green. diff --git a/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-body-not-propagated-to-root-ref.html b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-body-not-propagated-to-root-ref.html new file mode 100644 index 00000000000..5c52749ad3d --- /dev/null +++ b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-body-not-propagated-to-root-ref.html @@ -0,0 +1,13 @@ + + + + +This text should be green
+on a white background. \ No newline at end of file diff --git a/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-body-not-propagated-to-root.html b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-body-not-propagated-to-root.html new file mode 100644 index 00000000000..7a2f36aff6f --- /dev/null +++ b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-body-not-propagated-to-root.html @@ -0,0 +1,20 @@ + +background-clip:text on the root + + + + + +This text should be green
+on a white background. \ No newline at end of file diff --git a/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-body-propagated-to-root.html b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-body-propagated-to-root.html new file mode 100644 index 00000000000..ad37acb58ea --- /dev/null +++ b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-body-propagated-to-root.html @@ -0,0 +1,16 @@ + +background-clip:text on the root + + + + +This text should not be visible; the page should be entirely green. diff --git a/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-root.html b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-root.html new file mode 100644 index 00000000000..58d29d7d570 --- /dev/null +++ b/tests/wpt/tests/css/css-backgrounds/background-clip/clip-text-on-root.html @@ -0,0 +1,14 @@ + +background-clip:text on the root + + + + +This text should not be visible; the page should be entirely green. diff --git a/tests/wpt/tests/css/css-backgrounds/reference/green-root-background.html b/tests/wpt/tests/css/css-backgrounds/reference/green-root-background.html new file mode 100644 index 00000000000..070f1926f43 --- /dev/null +++ b/tests/wpt/tests/css/css-backgrounds/reference/green-root-background.html @@ -0,0 +1,6 @@ + + diff --git a/tests/wpt/tests/css/css-cascade/revert-val-006.html b/tests/wpt/tests/css/css-cascade/revert-val-006.html index 2b238f6d7e5..2f7d5811990 100644 --- a/tests/wpt/tests/css/css-cascade/revert-val-006.html +++ b/tests/wpt/tests/css/css-cascade/revert-val-006.html @@ -11,7 +11,7 @@ } #h1 { margin-top: 0px; - animation: test linear 1000s -500s; + animation: test linear 1000s -500s paused; }

diff --git a/tests/wpt/tests/css/css-contain/contain-layout-baseline-005.html b/tests/wpt/tests/css/css-contain/contain-layout-baseline-005.html index fb706cbf030..61d17a08f7b 100644 --- a/tests/wpt/tests/css/css-contain/contain-layout-baseline-005.html +++ b/tests/wpt/tests/css/css-contain/contain-layout-baseline-005.html @@ -1,6 +1,6 @@ -CSS Containment Test: Layout containment supress baseline +CSS Containment Test: Layout containment suppresses baseline diff --git a/tests/wpt/tests/css/css-contain/contain-layout-baseline-006-ref.html b/tests/wpt/tests/css/css-contain/contain-layout-baseline-006-ref.html new file mode 100644 index 00000000000..f4a45859d96 --- /dev/null +++ b/tests/wpt/tests/css/css-contain/contain-layout-baseline-006-ref.html @@ -0,0 +1,7 @@ + + +
PASS if this is all on the same line.
diff --git a/tests/wpt/tests/css/css-contain/contain-layout-baseline-006.html b/tests/wpt/tests/css/css-contain/contain-layout-baseline-006.html new file mode 100644 index 00000000000..68e02948b3c --- /dev/null +++ b/tests/wpt/tests/css/css-contain/contain-layout-baseline-006.html @@ -0,0 +1,28 @@ + +CSS Containment Test: Layout containment suppresses baseline + + + + +
+ PASS if +
+ this is all on +
but not this
+
+ the same line. +
diff --git a/tests/wpt/tests/css/css-flexbox/empty-flex-box-and-margin-collapsing-ref.html b/tests/wpt/tests/css/css-flexbox/empty-flex-box-and-margin-collapsing-ref.html new file mode 100644 index 00000000000..a80999d9bd9 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/empty-flex-box-and-margin-collapsing-ref.html @@ -0,0 +1,10 @@ + + +

Test passes if there is a filled green square.

+
diff --git a/tests/wpt/tests/css/css-flexbox/empty-flex-box-and-margin-collapsing.html b/tests/wpt/tests/css/css-flexbox/empty-flex-box-and-margin-collapsing.html new file mode 100644 index 00000000000..e2c6ecc5a69 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/empty-flex-box-and-margin-collapsing.html @@ -0,0 +1,23 @@ + + + + + +

Test passes if there is a filled green square.

+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-flexbox/flex-item-content-is-min-width-max-content-ref.html b/tests/wpt/tests/css/css-flexbox/flex-item-content-is-min-width-max-content-ref.html new file mode 100644 index 00000000000..090e9a79aa1 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/flex-item-content-is-min-width-max-content-ref.html @@ -0,0 +1,11 @@ + + +
X X X
diff --git a/tests/wpt/tests/css/css-flexbox/flex-item-content-is-min-width-max-content.html b/tests/wpt/tests/css/css-flexbox/flex-item-content-is-min-width-max-content.html new file mode 100644 index 00000000000..961c4b47b30 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/flex-item-content-is-min-width-max-content.html @@ -0,0 +1,27 @@ + + + + + + +
+
+
X X X
+
+
diff --git a/tests/wpt/tests/css/css-fonts/animations/font-style-interpolation.html b/tests/wpt/tests/css/css-fonts/animations/font-style-interpolation.html index 4666025d545..452b5215ec4 100644 --- a/tests/wpt/tests/css/css-fonts/animations/font-style-interpolation.html +++ b/tests/wpt/tests/css/css-fonts/animations/font-style-interpolation.html @@ -46,7 +46,7 @@ test_interpolation({ }, [ {at: -2, expect: 'oblique -20deg'}, {at: -0.25, expect: 'oblique -2.5deg'}, - {at: 0, expect: 'normal'}, + {at: 0, expect: 'oblique 0deg'}, {at: 0.3, expect: 'oblique 3deg'}, {at: 0.6, expect: 'oblique 6deg'}, {at: 1, expect: 'oblique 10deg'}, @@ -74,7 +74,7 @@ test_interpolation({ }, [ { at: -2, expect: 'oblique -40deg' }, { at: -0.25, expect: 'oblique -5deg' }, - { at: 0, expect: 'normal' }, + { at: 0, expect: 'oblique 0deg' }, { at: 0.3, expect: 'oblique 6deg' }, { at: 0.6, expect: 'oblique 12deg' }, { at: 1, expect: 'oblique 20deg' }, @@ -89,7 +89,7 @@ test_interpolation({ { at: -1, expect: 'oblique 40deg' }, { at: 0, expect: 'oblique 20deg' }, { at: 0.5, expect: 'oblique 10deg' }, - { at: 1, expect: 'normal' }, + { at: 1, expect: 'oblique 0deg' }, { at: 1.5, expect: 'oblique -10deg' }, ]); @@ -101,7 +101,7 @@ test_interpolation({ { at: -2, expect: 'oblique -90deg' }, { at: -1, expect: 'oblique -90deg' }, { at: 0, expect: 'oblique -90deg' }, - { at: 0.5, expect: 'normal' }, + { at: 0.5, expect: 'oblique 0deg' }, { at: 1, expect: 'oblique 90deg' }, { at: 1.5, expect: 'oblique 90deg' }, ]); diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-size-adjust-computed.html b/tests/wpt/tests/css/css-fonts/parsing/font-size-adjust-computed.html index 9dbfb09e67e..f463d2f6526 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-size-adjust-computed.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-size-adjust-computed.html @@ -19,10 +19,16 @@ font-family: ahem-ex-500 !important; font-size: 1000px; } +#container { + container-type: inline-size; + width: 10px; +} -
+
+
+
diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-size-adjust-valid.html b/tests/wpt/tests/css/css-fonts/parsing/font-size-adjust-valid.html index cb3c367c6f7..35f71ca9f73 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-size-adjust-valid.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-size-adjust-valid.html @@ -26,6 +26,13 @@ test_valid_value('font-size-adjust', 'cap-height from-font'); test_valid_value('font-size-adjust', 'ch-width from-font'); test_valid_value('font-size-adjust', 'ic-width from-font'); test_valid_value('font-size-adjust', 'ic-height from-font'); + +test_valid_value('font-size-adjust', 'calc(0.5)'); +test_valid_value('font-size-adjust', 'ex-height calc(0.5)', 'calc(0.5)'); // default basis 'ex' omitted from serialization +test_valid_value('font-size-adjust', 'cap-height calc(0.5)'); +test_valid_value('font-size-adjust', 'cap-height calc(0.5 + 1)', 'cap-height calc(1.5)'); +test_valid_value('font-size-adjust', 'cap-height calc(-0.5)', 'cap-height calc(-0.5)'); +test_valid_value('font-size-adjust', 'cap-height calc(10 + (sign(20cqw - 10px) * 5))', 'cap-height calc(10 + (5 * sign(20cqw - 10px)))'); diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-stretch-computed.html b/tests/wpt/tests/css/css-fonts/parsing/font-stretch-computed.html index 9d1136ef693..42e1989b1ae 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-stretch-computed.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-stretch-computed.html @@ -8,9 +8,17 @@ + -
+
+
+
diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-stretch-invalid.html b/tests/wpt/tests/css/css-fonts/parsing/font-stretch-invalid.html index 9ff8fa5dcf8..0f7f7c88975 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-stretch-invalid.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-stretch-invalid.html @@ -4,7 +4,7 @@ CSS Fonts Module Level 4: parsing font-stretch with invalid values - + diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-stretch-valid.html b/tests/wpt/tests/css/css-fonts/parsing/font-stretch-valid.html index 38452c2699e..90cde603133 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-stretch-valid.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-stretch-valid.html @@ -4,7 +4,7 @@ CSS Fonts Module Level 4: parsing font-stretch with valid values - + @@ -22,6 +22,11 @@ test_valid_value('font-stretch', 'extra-expanded'); test_valid_value('font-stretch', 'ultra-expanded'); test_valid_value('font-stretch', '234.5%'); +test_valid_value('font-stretch', 'calc(100%)'); +test_valid_value('font-stretch', 'calc(0%)'); +test_valid_value('font-stretch', 'calc(-100%)'); +test_valid_value('font-stretch', 'calc(100% + 100%)', 'calc(200%)'); +test_valid_value('font-stretch', 'calc(100% + (sign(20cqw - 10px) * 5%))', 'calc(100% + (5% * sign(20cqw - 10px)))'); diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-style-computed.html b/tests/wpt/tests/css/css-fonts/parsing/font-style-computed.html index 46074c42198..fde74150080 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-style-computed.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-style-computed.html @@ -3,24 +3,42 @@ CSS Fonts Module Level 3: getComputedStyle().fontStyle - + -
+
+
+
diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-style-valid.html b/tests/wpt/tests/css/css-fonts/parsing/font-style-valid.html index b61864478ba..e26733aaddd 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-style-valid.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-style-valid.html @@ -2,9 +2,9 @@ -CSS Fonts Module Level 3: parsing font-style with valid values - - +CSS Fonts Module Level 4: parsing font-style with valid values + + @@ -14,6 +14,18 @@ test_valid_value('font-style', 'normal'); test_valid_value('font-style', 'italic'); test_valid_value('font-style', 'oblique'); + +test_valid_value('font-style', 'oblique 10deg'); +test_valid_value('font-style', 'oblique -10deg'); +test_valid_value('font-style', 'oblique 0deg'); +test_valid_value('font-style', 'oblique -90deg'); +test_valid_value('font-style', 'oblique 90deg'); +test_valid_value('font-style', 'oblique 10grad'); +test_valid_value('font-style', 'oblique calc(90deg)'); +test_valid_value('font-style', 'oblique calc(100deg)'); +test_valid_value('font-style', 'oblique calc(-100deg)'); +test_valid_value('font-style', 'oblique calc(30deg * 2)', 'oblique calc(60deg)'); +test_valid_value('font-style', 'oblique calc(30deg + (sign(2cqw - 10px) * 5deg))', 'oblique calc(30deg + (5deg * sign(2cqw - 10px)))'); diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-weight-computed.html b/tests/wpt/tests/css/css-fonts/parsing/font-weight-computed.html index 08208e5dd49..cad1f7a6796 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-weight-computed.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-weight-computed.html @@ -3,11 +3,17 @@ CSS Fonts Module Level 3: getComputedStyle().fontWeight - + +
@@ -17,6 +23,7 @@ 'use strict'; test_computed_value('font-weight', 'normal', '400'); test_computed_value('font-weight', 'bold', '700'); +test_computed_value('font-weight', '1'); test_computed_value('font-weight', '100'); test_computed_value('font-weight', '200'); test_computed_value('font-weight', '300'); @@ -26,6 +33,14 @@ test_computed_value('font-weight', '600'); test_computed_value('font-weight', '700'); test_computed_value('font-weight', '800'); test_computed_value('font-weight', '900'); +test_computed_value('font-weight', '1000'); +test_computed_value('font-weight', '101'); +test_computed_value('font-weight', '150.25'); +test_computed_value('font-weight', 'calc(100)', '100'); +test_computed_value('font-weight', 'calc(0)', '1'); +test_computed_value('font-weight', 'calc(-100)', '1'); +test_computed_value('font-weight', 'calc(100 + 100)', '200'); +test_computed_value('font-weight', 'calc(100 + (sign(20cqw - 10px) * 5))', '95'); function test_relative(specified, inherited, computed) { test(() => { @@ -37,25 +52,45 @@ function test_relative(specified, inherited, computed) { }, inherited + ' made ' + specified + ' computes to ' + computed); } +test_relative('bolder', '1', '400'); +test_relative('bolder', '50', '400'); test_relative('bolder', '100', '400'); test_relative('bolder', '200', '400'); test_relative('bolder', '300', '400'); +test_relative('bolder', '349', '400'); +test_relative('bolder', '350', '700'); test_relative('bolder', '400', '700'); test_relative('bolder', '500', '700'); +test_relative('bolder', '549', '700'); +test_relative('bolder', '550', '900'); test_relative('bolder', '600', '900'); test_relative('bolder', '700', '900'); +test_relative('bolder', '749', '900'); +test_relative('bolder', '750', '900'); test_relative('bolder', '800', '900'); test_relative('bolder', '900', '900'); +test_relative('bolder', '950', '950'); +test_relative('bolder', '1000', '1000'); +test_relative('lighter', '1', '1'); +test_relative('lighter', '50', '50'); test_relative('lighter', '100', '100'); test_relative('lighter', '200', '100'); test_relative('lighter', '300', '100'); +test_relative('lighter', '349', '100'); +test_relative('lighter', '350', '100'); test_relative('lighter', '400', '100'); test_relative('lighter', '500', '100'); +test_relative('lighter', '549', '100'); +test_relative('lighter', '550', '400'); test_relative('lighter', '600', '400'); test_relative('lighter', '700', '400'); +test_relative('lighter', '749', '400'); +test_relative('lighter', '750', '700'); test_relative('lighter', '800', '700'); test_relative('lighter', '900', '700'); +test_relative('lighter', '950', '700'); +test_relative('lighter', '1000', '700'); diff --git a/tests/wpt/tests/css/css-fonts/parsing/font-weight-valid.html b/tests/wpt/tests/css/css-fonts/parsing/font-weight-valid.html index 090729287b2..2601a132e14 100644 --- a/tests/wpt/tests/css/css-fonts/parsing/font-weight-valid.html +++ b/tests/wpt/tests/css/css-fonts/parsing/font-weight-valid.html @@ -2,9 +2,9 @@ -CSS Fonts Module Level 3: parsing font-weight with valid values - - +CSS Fonts Module Level 4: parsing font-weight with valid values + + @@ -15,6 +15,7 @@ test_valid_value('font-weight', 'normal'); test_valid_value('font-weight', 'bold'); test_valid_value('font-weight', 'bolder'); test_valid_value('font-weight', 'lighter'); +test_valid_value('font-weight', '1'); test_valid_value('font-weight', '100'); test_valid_value('font-weight', '200'); test_valid_value('font-weight', '300'); @@ -24,6 +25,14 @@ test_valid_value('font-weight', '600'); test_valid_value('font-weight', '700'); test_valid_value('font-weight', '800'); test_valid_value('font-weight', '900'); +test_valid_value('font-weight', '1000'); +test_valid_value('font-weight', '101'); +test_valid_value('font-weight', '150.25'); +test_valid_value('font-weight', 'calc(100)'); +test_valid_value('font-weight', 'calc(0)'); +test_valid_value('font-weight', 'calc(-100)'); +test_valid_value('font-weight', 'calc(100 + 100)', 'calc(200)'); +test_valid_value('font-weight', 'calc(100 + (sign(20cqw - 10px) * 5))', 'calc(100 + (5 * sign(20cqw - 10px)))'); diff --git a/tests/wpt/tests/css/css-grid/img-src-changes.html b/tests/wpt/tests/css/css-grid/img-src-changes.html new file mode 100644 index 00000000000..19e19d7f5d7 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/img-src-changes.html @@ -0,0 +1,26 @@ + + + + + + + + +

Test passes if there is a filled green square.

+
+ +
+ + + diff --git a/tests/wpt/tests/css/css-inline/text-box-trim/text-box-on-non-root-inline-box.html b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-on-non-root-inline-box.html new file mode 100644 index 00000000000..eea80895c5d --- /dev/null +++ b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-on-non-root-inline-box.html @@ -0,0 +1,28 @@ + +text-box on non-root inline box does not affect layout bounds only the box's size. + + + + + + + +
+ ApÉx + ApÉx + ApÉx +
+
+ ApÉx +
+ diff --git a/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-on-button-ref.html b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-on-button-ref.html new file mode 100644 index 00000000000..86d644e546f --- /dev/null +++ b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-on-button-ref.html @@ -0,0 +1,18 @@ + + +
+
ApÉx
+
diff --git a/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-on-button.html b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-on-button.html new file mode 100644 index 00000000000..6172e319a32 --- /dev/null +++ b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-on-button.html @@ -0,0 +1,30 @@ + +Test that text-box-trim works on button + + + + +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-lists/parsing/counter-increment-valid.html b/tests/wpt/tests/css/css-lists/parsing/counter-increment-valid.html index 277269000a2..c77fd74ac76 100644 --- a/tests/wpt/tests/css/css-lists/parsing/counter-increment-valid.html +++ b/tests/wpt/tests/css/css-lists/parsing/counter-increment-valid.html @@ -15,6 +15,9 @@ test_valid_value('counter-increment', 'none'); test_valid_value('counter-increment', 'chapter', 'chapter 1'); test_valid_value('counter-increment', 'section -1'); test_valid_value('counter-increment', 'first -1 second third 99', 'first -1 second 1 third 99'); +test_valid_value('counter-increment', 'section calc(1)'); +test_valid_value('counter-increment', 'section calc(-2.5)'); +test_valid_value('counter-increment', 'section calc(10 + (5 * sign(2cqw - 10px)))'); diff --git a/tests/wpt/tests/css/css-lists/parsing/counter-reset-valid.html b/tests/wpt/tests/css/css-lists/parsing/counter-reset-valid.html index 2e6b37d0fcf..b74ce160c7c 100644 --- a/tests/wpt/tests/css/css-lists/parsing/counter-reset-valid.html +++ b/tests/wpt/tests/css/css-lists/parsing/counter-reset-valid.html @@ -21,6 +21,9 @@ test_valid_value('counter-reset', 'section -1'); test_valid_value('counter-reset', 'reversed(section) -1'); test_valid_value('counter-reset', 'first -1 second third 99', 'first -1 second 0 third 99'); test_valid_value('counter-reset', 'reversed(first) -1 reversed(second) third 99', 'reversed(first) -1 reversed(second) third 99'); +test_valid_value('counter-reset', 'section calc(1)'); +test_valid_value('counter-reset', 'section calc(-2.5)'); +test_valid_value('counter-reset', 'section calc(10 + (5 * sign(2cqw - 10px)))'); diff --git a/tests/wpt/tests/css/css-lists/parsing/counter-set-valid.html b/tests/wpt/tests/css/css-lists/parsing/counter-set-valid.html index 3a4a16af926..96cb71e398c 100644 --- a/tests/wpt/tests/css/css-lists/parsing/counter-set-valid.html +++ b/tests/wpt/tests/css/css-lists/parsing/counter-set-valid.html @@ -15,6 +15,9 @@ test_valid_value('counter-set', 'none'); test_valid_value('counter-set', 'chapter', 'chapter 0'); test_valid_value('counter-set', 'section -1'); test_valid_value('counter-set', 'first -1 second third 99', 'first -1 second 0 third 99'); +test_valid_value('counter-set', 'section calc(1)'); +test_valid_value('counter-set', 'section calc(-2.5)'); +test_valid_value('counter-set', 'section calc(10 + (5 * sign(2cqw - 10px)))'); diff --git a/tests/wpt/tests/css/css-nesting/cssom.html b/tests/wpt/tests/css/css-nesting/cssom.html index 226fb791b57..c1c620f6bec 100644 --- a/tests/wpt/tests/css/css-nesting/cssom.html +++ b/tests/wpt/tests/css/css-nesting/cssom.html @@ -185,4 +185,41 @@ assert_equals(getComputedStyle(inner1).zIndex, '1'); assert_equals(getComputedStyle(inner2).zIndex, '1'); }, 'Mutating the selectorText of outer rule invalidates inner rules'); + + // CSSNestedDeclarations + test((t) => { + const main = document.createElement('main'); + main.innerHTML = ` + +
+
+ `; + document.documentElement.append(main); + t.add_cleanup(() => main.remove()); + assert_equals(getComputedStyle(outer).zIndex, '1'); + const main_ss = document.getElementById("main_ss").sheet; + const rule = main_ss.cssRules[0]; + assert_equals(rule.cssRules.length, 1); + rule.insertRule('z-index: 3;'); + assert_equals(rule.cssRules.length, 2); + assert_equals(getComputedStyle(outer).zIndex, '3'); + + // Throw only when no valid declaration https://github.com/w3c/csswg-drafts/issues/10520 + assert_throws_dom('SyntaxError', () => { rule.insertRule('nothing-to-insert-because-invalid-property-should-throw: 2;'); }); + assert_equals(rule.cssRules.length, 2); + + // Test the insertion of nested declarations inside grouping rule + rule.insertRule('@media screen { a { color: blue; }}',2); + assert_equals(rule.cssRules.length, 3); + const mediaRule = rule.cssRules[2]; + mediaRule.insertRule('z-index: 3;'); + assert_equals(mediaRule.cssRules.length, 2); + assert_throws_dom('SyntaxError', () => { mediaRule.insertRule('nothing-to-insert-because-invalid-property-should-throw: 2;'); }); + }, 'Manipulation of nested declarations through CSSOM'); + diff --git a/tests/wpt/tests/css/css-nesting/mixed-declarations-rules.html b/tests/wpt/tests/css/css-nesting/mixed-declarations-rules.html new file mode 100644 index 00000000000..fbc9b54717c --- /dev/null +++ b/tests/wpt/tests/css/css-nesting/mixed-declarations-rules.html @@ -0,0 +1,20 @@ + +Mixed declarations and rules + + + + + +

Tests pass if block is green

+
+ diff --git a/tests/wpt/tests/css/css-overflow/clipped-scroller-add-content-ref.html b/tests/wpt/tests/css/css-overflow/clipped-scroller-add-content-ref.html new file mode 100644 index 00000000000..d9edfb1f855 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/clipped-scroller-add-content-ref.html @@ -0,0 +1,10 @@ + +
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-overflow/clipped-scroller-add-content.html b/tests/wpt/tests/css/css-overflow/clipped-scroller-add-content.html new file mode 100644 index 00000000000..d7f2eb1c919 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/clipped-scroller-add-content.html @@ -0,0 +1,26 @@ + + + + + + + +
+
+
+ +
+
+ diff --git a/tests/wpt/tests/css/css-overflow/column-scroll-marker-no-content-crash.html b/tests/wpt/tests/css/css-overflow/column-scroll-marker-no-content-crash.html new file mode 100644 index 00000000000..12879ec6f2f --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/column-scroll-marker-no-content-crash.html @@ -0,0 +1,16 @@ + +::column::scroll-marker without content should not crash + + +

PASS if no crash.

+
Two columns
diff --git a/tests/wpt/tests/css/css-overflow/incremental-scroll-002-ref.html b/tests/wpt/tests/css/css-overflow/incremental-scroll-002-ref.html new file mode 100644 index 00000000000..ea6f5575278 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/incremental-scroll-002-ref.html @@ -0,0 +1,14 @@ + + +
+
+ diff --git a/tests/wpt/tests/css/css-overflow/incremental-scroll-002.html b/tests/wpt/tests/css/css-overflow/incremental-scroll-002.html new file mode 100644 index 00000000000..ee43074badf --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/incremental-scroll-002.html @@ -0,0 +1,30 @@ + + + + + + + +
+
+ diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/line-clamp-content-height-with-dynamic-change-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/line-clamp-content-height-with-dynamic-change-ref.html new file mode 100644 index 00000000000..2b33ab558c9 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/line-clamp-content-height-with-dynamic-change-ref.html @@ -0,0 +1,11 @@ + +CSS Overflow: appending to a box with -webkit-line-clamp + + +
first line
second line…
+ diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/line-clamp-content-height-with-dynamic-change.html b/tests/wpt/tests/css/css-overflow/line-clamp/line-clamp-content-height-with-dynamic-change.html new file mode 100644 index 00000000000..0b157f86d31 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/line-clamp-content-height-with-dynamic-change.html @@ -0,0 +1,23 @@ + +CSS Overflow: appending to a box with -webkit-line-clamp + + + + +
first line
second line
PASS if this is not visible
+ + diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-025-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-025-ref.html index c33a6b50338..bac253d1937 100644 --- a/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-025-ref.html +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-025-ref.html @@ -16,4 +16,4 @@ color: orange; } -
[f]
A B C D…
+
[f]
A B C D…
diff --git a/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root-both-edges-ref.html b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root-both-edges-ref.html new file mode 100644 index 00000000000..7ee4fb7bb9e --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root-both-edges-ref.html @@ -0,0 +1,50 @@ + + +CSS Overflow: scrollbar-gutter on the root element + + + + +
+
+
+ + + +

Should not have space around me in the inline axis.

+
diff --git a/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root-both-edges.html b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root-both-edges.html new file mode 100644 index 00000000000..0a312fa72a1 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root-both-edges.html @@ -0,0 +1,38 @@ + + +CSS Overflow: scrollbar-gutter on the root element + + + + +

Should not have space around me in the inline axis.

+
diff --git a/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root-ref.html b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root-ref.html new file mode 100644 index 00000000000..06ad9ecb39a --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root-ref.html @@ -0,0 +1,47 @@ + + +CSS Overflow: scrollbar-gutter on the root element + + + + +
+
+
+ + +

Should not have space around me in the inline axis.

+
diff --git a/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root.html b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root.html new file mode 100644 index 00000000000..08c6f481edd --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-root.html @@ -0,0 +1,38 @@ + + +CSS Overflow: scrollbar-gutter on the root element + + + + +

Should not have space around me in the inline axis.

+
diff --git a/tests/wpt/tests/css/css-position/absolute-pos-box-inside-fixed-pos-box-with-changing-height-ref.html b/tests/wpt/tests/css/css-position/absolute-pos-box-inside-fixed-pos-box-with-changing-height-ref.html new file mode 100644 index 00000000000..b42bf53a923 --- /dev/null +++ b/tests/wpt/tests/css/css-position/absolute-pos-box-inside-fixed-pos-box-with-changing-height-ref.html @@ -0,0 +1,12 @@ + + +
diff --git a/tests/wpt/tests/css/css-position/absolute-pos-box-inside-fixed-pos-box-with-changing-height.html b/tests/wpt/tests/css/css-position/absolute-pos-box-inside-fixed-pos-box-with-changing-height.html new file mode 100644 index 00000000000..bb907d8f108 --- /dev/null +++ b/tests/wpt/tests/css/css-position/absolute-pos-box-inside-fixed-pos-box-with-changing-height.html @@ -0,0 +1,40 @@ + + + + + +
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-position/block-axis-constraint-changes-for-out-of-flow-box-ref.html b/tests/wpt/tests/css/css-position/block-axis-constraint-changes-for-out-of-flow-box-ref.html new file mode 100644 index 00000000000..91a67c2fec5 --- /dev/null +++ b/tests/wpt/tests/css/css-position/block-axis-constraint-changes-for-out-of-flow-box-ref.html @@ -0,0 +1,17 @@ + + +
+
+
+
diff --git a/tests/wpt/tests/css/css-position/block-axis-constraint-changes-for-out-of-flow-box.html b/tests/wpt/tests/css/css-position/block-axis-constraint-changes-for-out-of-flow-box.html new file mode 100644 index 00000000000..50c86f779a6 --- /dev/null +++ b/tests/wpt/tests/css/css-position/block-axis-constraint-changes-for-out-of-flow-box.html @@ -0,0 +1,30 @@ + + + + + +
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-properties-values-api/animation/custom-property-animation-used-in-shorthand.html b/tests/wpt/tests/css/css-properties-values-api/animation/custom-property-animation-used-in-shorthand.html index 63f7fd3fe79..70975dfa378 100644 --- a/tests/wpt/tests/css/css-properties-values-api/animation/custom-property-animation-used-in-shorthand.html +++ b/tests/wpt/tests/css/css-properties-values-api/animation/custom-property-animation-used-in-shorthand.html @@ -17,7 +17,7 @@ } #target { - animation: angle-animation 1000s linear -500s; + animation: angle-animation 1000s linear -500s paused; background: linear-gradient(var(--angle), black, white); } diff --git a/tests/wpt/tests/css/css-scoping/host-descendant-003.html b/tests/wpt/tests/css/css-scoping/host-descendant-003.html new file mode 100644 index 00000000000..eb2cc7d343e --- /dev/null +++ b/tests/wpt/tests/css/css-scoping/host-descendant-003.html @@ -0,0 +1,31 @@ + + +:host combined with :not + + + +

Test passes if there is a filled green square.

+ + diff --git a/tests/wpt/tests/css/css-scoping/host-multiple-002.html b/tests/wpt/tests/css/css-scoping/host-multiple-002.html new file mode 100644 index 00000000000..c3f76a50918 --- /dev/null +++ b/tests/wpt/tests/css/css-scoping/host-multiple-002.html @@ -0,0 +1,23 @@ + + +:host + + +

Test passes if there is a filled green square.

+
+
+ diff --git a/tests/wpt/tests/css/css-scoping/host-multiple-003.html b/tests/wpt/tests/css/css-scoping/host-multiple-003.html new file mode 100644 index 00000000000..97774b5bedf --- /dev/null +++ b/tests/wpt/tests/css/css-scoping/host-multiple-003.html @@ -0,0 +1,23 @@ + + +:host + + +

Test passes if there is a filled green square.

+
+
+ diff --git a/tests/wpt/tests/css/css-scoping/host-multiple-004.html b/tests/wpt/tests/css/css-scoping/host-multiple-004.html new file mode 100644 index 00000000000..65a605a922e --- /dev/null +++ b/tests/wpt/tests/css/css-scoping/host-multiple-004.html @@ -0,0 +1,23 @@ + + +:host + + +

Test passes if there is a filled green square.

+
+
+ diff --git a/tests/wpt/tests/css/css-scoping/host-multiple-005.html b/tests/wpt/tests/css/css-scoping/host-multiple-005.html new file mode 100644 index 00000000000..d834954f3b3 --- /dev/null +++ b/tests/wpt/tests/css/css-scoping/host-multiple-005.html @@ -0,0 +1,23 @@ + + +:host + + +

Test passes if there is a filled green square.

+
+
+ diff --git a/tests/wpt/tests/css/css-scoping/host-multiple-006.html b/tests/wpt/tests/css/css-scoping/host-multiple-006.html new file mode 100644 index 00000000000..c3f76a50918 --- /dev/null +++ b/tests/wpt/tests/css/css-scoping/host-multiple-006.html @@ -0,0 +1,23 @@ + + +:host + + +

Test passes if there is a filled green square.

+
+
+ diff --git a/tests/wpt/tests/css/css-scoping/host-not-001.html b/tests/wpt/tests/css/css-scoping/host-not-001.html new file mode 100644 index 00000000000..a5cfcbd8ea7 --- /dev/null +++ b/tests/wpt/tests/css/css-scoping/host-not-001.html @@ -0,0 +1,41 @@ + + +:host combined with :not + + +

Test passes if there is a filled green square.

+
+
+ diff --git a/tests/wpt/tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-034.html b/tests/wpt/tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-034.html index 60fac07dd57..51e23b34615 100644 --- a/tests/wpt/tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-034.html +++ b/tests/wpt/tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-034.html @@ -10,6 +10,7 @@ + + +

Test passes if the short inline content has a thick green underline.

+
X
+ + diff --git a/tests/wpt/tests/css/css-text/line-breaking/segment-break-transformation-punctuation-001-ref.html b/tests/wpt/tests/css/css-text/line-breaking/segment-break-transformation-punctuation-001-ref.html new file mode 100644 index 00000000000..d339aebda9d --- /dev/null +++ b/tests/wpt/tests/css/css-text/line-breaking/segment-break-transformation-punctuation-001-ref.html @@ -0,0 +1,7 @@ + + +Segment break transformation: CJK punctuation + + +

本システムはサポート切れのブラウザに対応しません。Internet Explorerをお使いの場合、Edge・Chrome・Firefoxなどに移行してください。(EdgeはChromium阪をお使いください)

+

ユーザメイ「ジョン・スミス」、ID「smith」ノアカウントヲショウキョシマス。y/N

diff --git a/tests/wpt/tests/css/css-text/line-breaking/segment-break-transformation-punctuation-001.html b/tests/wpt/tests/css/css-text/line-breaking/segment-break-transformation-punctuation-001.html new file mode 100644 index 00000000000..68e4589625d --- /dev/null +++ b/tests/wpt/tests/css/css-text/line-breaking/segment-break-transformation-punctuation-001.html @@ -0,0 +1,29 @@ + + +Segment break transformation: CJK punctuation + + + + + +

+ 本システムはサポート切れのブラウザに対応しません。 + Internet Explorerをお使いの場合、 + Edge + ・ + Chrome + ・ + Firefoxなどに移行してください。 + (EdgeはChromium阪をお使いください) +

+

+ ユーザメイ + 「ジョン + ・ + スミス」 + 、 + ID + 「smith」 + ノアカウントヲショウキョシマス。 + y/N +

diff --git a/tests/wpt/tests/css/css-typed-om/the-stylepropertymap/properties/animation-name.html b/tests/wpt/tests/css/css-typed-om/the-stylepropertymap/properties/animation-name.html index df5d44ae38f..7de53f188fa 100644 --- a/tests/wpt/tests/css/css-typed-om/the-stylepropertymap/properties/animation-name.html +++ b/tests/wpt/tests/css/css-typed-om/the-stylepropertymap/properties/animation-name.html @@ -20,8 +20,4 @@ runListValuedPropertyTests('animation-name', [ { syntax: 'custom-ident' }, ]); -runUnsupportedPropertyTests('animation-name', [ - '"foo"' -]); - diff --git a/tests/wpt/tests/css/css-values/attr-null-namespace.xhtml b/tests/wpt/tests/css/css-values/attr-null-namespace.xhtml new file mode 100644 index 00000000000..a9bf9b0addd --- /dev/null +++ b/tests/wpt/tests/css/css-values/attr-null-namespace.xhtml @@ -0,0 +1,76 @@ + + + + CSS Values: attr() substitution with implicit null namespace + + + + + +
+ Test +
+ + + + diff --git a/tests/wpt/tests/css/css-view-transitions/dynamic-stylesheet-animations.html b/tests/wpt/tests/css/css-view-transitions/dynamic-stylesheet-animations.html new file mode 100644 index 00000000000..d737d3ab570 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/dynamic-stylesheet-animations.html @@ -0,0 +1,116 @@ + + +View transitions: Dynamic stylesheet sets correct animations + + + + + +
+ + + + + + + diff --git a/tests/wpt/tests/css/css-writing-modes/orthogonal-containing-block-height-changes-ref.html b/tests/wpt/tests/css/css-writing-modes/orthogonal-containing-block-height-changes-ref.html new file mode 100644 index 00000000000..b7d32e4dc27 --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/orthogonal-containing-block-height-changes-ref.html @@ -0,0 +1,9 @@ + + +
diff --git a/tests/wpt/tests/css/css-writing-modes/orthogonal-containing-block-height-changes.html b/tests/wpt/tests/css/css-writing-modes/orthogonal-containing-block-height-changes.html new file mode 100644 index 00000000000..bfa2d7065f7 --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/orthogonal-containing-block-height-changes.html @@ -0,0 +1,23 @@ + + + + + +
+
+
+ diff --git a/tests/wpt/tests/css/cssom/cssstyledeclaration-removeProperty-all.html b/tests/wpt/tests/css/cssom/cssstyledeclaration-removeProperty-all.html new file mode 100644 index 00000000000..6e9caacd235 --- /dev/null +++ b/tests/wpt/tests/css/cssom/cssstyledeclaration-removeProperty-all.html @@ -0,0 +1,17 @@ + + +CSSStyleDeclaration.removeProperty("all") + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-datalist-element/input-text-datalist-removal.html b/tests/wpt/tests/html/semantics/forms/the-datalist-element/input-text-datalist-removal.html index c85bd288ed5..503b82e0012 100644 --- a/tests/wpt/tests/html/semantics/forms/the-datalist-element/input-text-datalist-removal.html +++ b/tests/wpt/tests/html/semantics/forms/the-datalist-element/input-text-datalist-removal.html @@ -5,6 +5,12 @@ + + diff --git a/tests/wpt/tests/html/semantics/forms/the-datalist-element/input-text-focused-ref.html b/tests/wpt/tests/html/semantics/forms/the-datalist-element/input-text-focused-ref.html index df8ea576069..f78a937f178 100644 --- a/tests/wpt/tests/html/semantics/forms/the-datalist-element/input-text-focused-ref.html +++ b/tests/wpt/tests/html/semantics/forms/the-datalist-element/input-text-focused-ref.html @@ -1,5 +1,10 @@ + diff --git a/tests/wpt/tests/html/semantics/forms/the-label-element/proxy-modifier-click-to-associated-element.tentative.html b/tests/wpt/tests/html/semantics/forms/the-label-element/proxy-modifier-click-to-associated-element.tentative.html index fa50c080250..a4fe0f7bc32 100644 --- a/tests/wpt/tests/html/semantics/forms/the-label-element/proxy-modifier-click-to-associated-element.tentative.html +++ b/tests/wpt/tests/html/semantics/forms/the-label-element/proxy-modifier-click-to-associated-element.tentative.html @@ -18,50 +18,54 @@ "use strict"; function clickWithModifier(label, key) { - new test_driver.Actions() + return (new test_driver.Actions() .keyDown(key) .pointerMove(0, 0, { origin: label }) .pointerDown() .pointerUp() .addTick() - .keyUp(key) + .keyUp(key)) .send() } - async_test(t => { + promise_test(async () => { const label = document.getElementById("click-label"); const input = document.getElementById("click"); - input.addEventListener("click", t.step_func_done()); - new test_driver.click(label) - + let receivedClick = false; + input.addEventListener("click", () => receivedClick = true); + await test_driver.click(label); + assert_true(receivedClick); }, "label with for attribute should proxy click events to the associated element on click"); - async_test(t => { + promise_test(async () => { const label = document.getElementById("shift-label"); const input = document.getElementById("shift"); - input.addEventListener("click", t.step_func_done()); - clickWithModifier(label, "\uE008"); // ShiftLeft - + let receivedClick = false; + input.addEventListener("click", () => receivedClick = true); + await clickWithModifier(label, "\uE008"); // ShiftLeft + assert_true(receivedClick); }, "label with for attribute should proxy click events to the associated element on shift click"); - async_test(t => { + promise_test(async () => { const label = document.getElementById("alt-label"); const input = document.getElementById("alt"); - input.addEventListener("click", t.step_func_done()); - clickWithModifier(label, "\uE00A"); // AltLeft - + let receivedClick = false; + input.addEventListener("click", () => receivedClick = true); + await clickWithModifier(label, "\uE00A"); // AltLeft + assert_true(receivedClick); }, "label with for attribute should proxy click events to the associated element on alt click"); - async_test(t => { + promise_test(async () => { const label = document.getElementById("meta-label"); const input = document.getElementById("meta"); - input.addEventListener("click", t.step_func_done()); - clickWithModifier(label, "\uE03D"); // OSLeft - + let receivedClick = false; + input.addEventListener("click", () => receivedClick = true); + await clickWithModifier(label, "\uE03D"); // OSLeft + assert_true(receivedClick); }, "label with for attribute should proxy click events to the associated element on meta click"); diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-dialog-mode-focus.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-dialog-mode-focus.tentative.html new file mode 100644 index 00000000000..b335db07fbc --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-dialog-mode-focus.tentative.html @@ -0,0 +1,49 @@ + + + + + + + + + + + + diff --git a/tests/wpt/tests/lint.ignore b/tests/wpt/tests/lint.ignore index 7dea1c5e395..759ef41ca2b 100644 --- a/tests/wpt/tests/lint.ignore +++ b/tests/wpt/tests/lint.ignore @@ -283,7 +283,7 @@ 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.html +SET TIMEOUT: trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js SET TIMEOUT: trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js SET TIMEOUT: user-timing/* SET TIMEOUT: web-animations/crashtests/reparent-animating-element-002.html diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py index 94014ff8690..b8c0a73e265 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py @@ -206,6 +206,11 @@ def update_properties(): return (["debug", "os", "processor"], {"os": ["version"], "processor": ["bits"]}) class ChromeBrowser(WebDriverBrowser): + + # Chrome browser's default startup timeout is 60 seconds. Use 65 seconds here + # to allow error message be displayed if that happens. + init_timeout: float = 65 + def __init__(self, logger: StructuredLogger, leak_check: bool = False, diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py index e84f5df1992..64668fc470b 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py @@ -994,7 +994,9 @@ class TestRunnerManager(threading.Thread): self.logger.debug("Recreating command queue") self.command_queue.cancel_join_thread() self.command_queue.close() - self.command_queue = mp.Queue() + # Reset the command queue for BrowserManager also as that won't + # be set again during retry. + self.browser.command_queue = self.command_queue = mp.Queue() self.logger.debug("Recreating remote queue") self.remote_queue.cancel_join_thread() self.remote_queue.close() diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.html index dd912e6b8de..6dbebd29a43 100644 --- a/tests/wpt/tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.html +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-DOMParser-parseFromString.html @@ -33,7 +33,13 @@ // After default policy creation string assignment implicitly calls createHTML. test(t => { - let p = window.trustedTypes.createPolicy("default", { createHTML: createHTMLJS }, true); + let p = window.trustedTypes.createPolicy("default", { + createHTML: (value, type, sink) => { + assert_equals(sink, "DOMParser parseFromString"); + return createHTMLJS(value); + } + }); + let parser = new DOMParser(); let doc = parser.parseFromString(INPUTS.HTML, "text/html"); assert_equals(doc.body.innerText, RESULTS.HTML); diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.html index 2f8a99a9429..d80e34e7823 100644 --- a/tests/wpt/tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.html +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.html @@ -5,71 +5,22 @@ - + diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-Document-parseHTMLUnsafe.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-Document-parseHTMLUnsafe.html index 405da5f1643..22adc48a792 100644 --- a/tests/wpt/tests/trusted-types/block-string-assignment-to-Document-parseHTMLUnsafe.html +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-Document-parseHTMLUnsafe.html @@ -7,6 +7,8 @@ + + diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.html index af1f982e5a1..f2e89f0dc9f 100644 --- a/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.html +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-insertAdjacentHTML.html @@ -136,7 +136,18 @@ // After default policy creation string assignment implicitly calls createHTML. test(t => { - let p = window.trustedTypes.createPolicy("default", { createHTML: createHTMLJS }); + const kAssertSinkIsElementInsertAdjacentHTML = + "assertSinkIsElementInsertAdjacentHTML"; + + let p = window.trustedTypes.createPolicy("default", { createHTML: + (s, _, sink) => { + if (s == kAssertSinkIsElementInsertAdjacentHTML) { + assert_equals(sink, "Element insertAdjacentHTML"); + } + + return createHTMLJS(s); + } + }); var d = document.createElement('div'); container.appendChild(d); @@ -159,6 +170,8 @@ assert_equals(d.nextSibling.nodeType, Node.TEXT_NODE); assert_equals(d.nextSibling.data, RESULTS.HTML); + d.insertAdjacentHTML('afterend', kAssertSinkIsElementInsertAdjacentHTML); + while (container.firstChild) container.firstChild.remove(); }, "`insertAdjacentHTML(string)` assigned via default policy (successful HTML transformation)."); diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-outerHTML.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-outerHTML.html index acf5a42622c..eec0dfc3bc9 100644 --- a/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-outerHTML.html +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-outerHTML.html @@ -65,7 +65,12 @@ // After default policy creation string assignment implicitly calls createHTML. test(t => { - let p = window.trustedTypes.createPolicy("default", { createHTML: createHTMLJS }, true); + let p = window.trustedTypes.createPolicy("default", { + createHTML: (value, type, sink) => { + assert_equals(sink, "Element outerHTML"); + return createHTMLJS(value); + } + }); var d = document.createElement('div'); document.querySelector('#container').appendChild(d); diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-setHTMLUnsafe.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-setHTMLUnsafe.html index 34975f9d688..6bbf9d1572f 100644 --- a/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-setHTMLUnsafe.html +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-Element-setHTMLUnsafe.html @@ -53,7 +53,12 @@ // After default policy creation string assignment implicitly calls createHTML. test(t => { - let p = window.trustedTypes.createPolicy("default", { createHTML: createHTMLJS }, true); + let p = window.trustedTypes.createPolicy("default", { + createHTML: (value, type, sink) => { + assert_equals(sink, "Element setHTMLUnsafe"); + return createHTMLJS(value); + } + }); var d = document.createElement('div'); document.querySelector('#container').appendChild(d); diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.html index 79111204934..55566589dea 100644 --- a/tests/wpt/tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.html +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-Range-createContextualFragment.html @@ -36,7 +36,13 @@ // After default policy creation string assignment implicitly calls createHTML test(t => { - let p = window.trustedTypes.createPolicy("default", { createHTML: createHTMLJS }, true); + let p = window.trustedTypes.createPolicy("default", { createHTML: + (value, _, sink) => { + assert_equals(sink, "Range createContextualFragment"); + return createHTMLJS(value); + } + }); + var range = document.createRange(); range.selectNodeContents(document.documentElement); var result = range.createContextualFragment(INPUTS.HTML); diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-ShadowRoot-innerHTML.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-ShadowRoot-innerHTML.html index 4b32db16581..ace67942904 100644 --- a/tests/wpt/tests/trusted-types/block-string-assignment-to-ShadowRoot-innerHTML.html +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-ShadowRoot-innerHTML.html @@ -55,7 +55,12 @@ // After default policy creation string assignment implicitly calls createHTML. test(t => { t.add_cleanup(cleanup); - let p = window.trustedTypes.createPolicy("default", { createHTML: createHTMLJS }); + let p = window.trustedTypes.createPolicy("default", { + createHTML: (value, type, sink) => { + assert_equals(sink, "ShadowRoot innerHTML"); + return createHTMLJS(value); + } + }); let d = document.createElement('div'); let s = d.attachShadow({mode: 'open'}); diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html index f61de6891f3..e42b39795ab 100644 --- a/tests/wpt/tests/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-ShadowRoot-setHTMLUnsafe.html @@ -56,7 +56,12 @@ // After default policy creation string assignment implicitly calls createHTML. test(t => { t.add_cleanup(cleanup); - let p = window.trustedTypes.createPolicy("default", { createHTML: createHTMLJS }); + let p = window.trustedTypes.createPolicy("default", { createHTML: + (value, type, sink) => { + assert_equals(sink, "ShadowRoot setHTMLUnsafe"); + return createHTMLJS(value); + } + }); let d = document.createElement('div'); let s = d.attachShadow({mode: 'open'}); diff --git a/tests/wpt/tests/trusted-types/get-trusted-types-compliant-attribute-value.html b/tests/wpt/tests/trusted-types/get-trusted-types-compliant-attribute-value.html new file mode 100644 index 00000000000..1f9a373cc87 --- /dev/null +++ b/tests/wpt/tests/trusted-types/get-trusted-types-compliant-attribute-value.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js b/tests/wpt/tests/trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js index 7c72dc3e60a..e03329cdce0 100644 --- a/tests/wpt/tests/trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js +++ b/tests/wpt/tests/trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js @@ -1,5 +1,4 @@ -// `globalThis.toString()` is of the form "[Object ]". -const globalThisStr = globalThis.toString().split(" ")[1].slice(0, -1); +const globalThisStr = getGlobalThisStr(); async_test(t => { globalThis.timeoutTrustedTest = t; diff --git a/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval-worker.js b/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval-worker.js new file mode 100644 index 00000000000..456780247f2 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval-worker.js @@ -0,0 +1,10 @@ +const testSetupPolicy = trustedTypes.createPolicy("p", { createScriptURL: s => s }); + +importScripts(testSetupPolicy.createScriptURL("/resources/testharness.js")); +importScripts(testSetupPolicy.createScriptURL("helper.sub.js")); + +importScripts(testSetupPolicy.createScriptURL( + "block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js" +)); + +done(); diff --git a/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval-worker.js.headers b/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval-worker.js.headers new file mode 100644 index 00000000000..604e765da46 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval-worker.js.headers @@ -0,0 +1 @@ +Content-Security-Policy: require-trusted-types-for 'script'; diff --git a/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js b/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js new file mode 100644 index 00000000000..f1218e1915a --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js @@ -0,0 +1,77 @@ +const globalThisStr = getGlobalThisStr(); + +// setTimeout tests +// TrustedScript assignments do not throw. +async_test(t => { + globalThis.timeoutTest = t; + let policy = createScript_policy(globalThis, 'timeout'); + let script = policy.createScript("globalThis.timeoutTest.done();"); + setTimeout(script); +}, `${globalThisStr}.setTimeout assigned via policy (successful Script transformation).`); + +// String assignments throw. +test(t => { + globalThis.timeoutTestString = t.unreached_func(); + assert_throws_js(TypeError, _ => { + setTimeout("globalThis.timeoutTestString();"); + }); +}, `\`${globalThisStr}.setTimeout(string)\` throws.`); + +// Null assignment throws. +test(t => { + assert_throws_js(TypeError, _ => { + globalThis.setTimeout(null); + }); +}, `\`${globalThisStr}.setTimeout(null)\` throws.`); + +// setInterval tests +// TrustedScript assignments do not throw. +async_test(t => { + globalThis.intervalTest = t; + let policy = createScript_policy(globalThis, 'script'); + let script = policy.createScript("globalThis.intervalTest.done();"); + globalThis.setInterval(script); +}, `${globalThisStr}.setInterval assigned via policy (successful Script transformation).`); + +// String assignments throw. +test(t => { + globalThis.intervalTestString = t.unreached_func(); + assert_throws_js(TypeError, _ => { + globalThis.setInterval("globalThis.intervalTestString()"); + }); +}, `\`${globalThisStr}.setInterval(string)\` throws.`); + +// Null assignment throws. +test(t => { + assert_throws_js(TypeError, _ => { + globalThis.setInterval(null); + }); +}, `\`${globalThisStr}.setInterval(null)\` throws.`); + +const kTimeoutTestString = "timeoutTestString"; +const kIntervalTestString = "intervalTestString"; + +let policy = globalThis.trustedTypes.createPolicy("default", { createScript: (x, _, sink) => { + if (x === kTimeoutTestString) { + assert_equals(sink, `${globalThisStr} setTimeout`); + } else if (x === kIntervalTestString) { + assert_equals(sink, `${globalThisStr} setInterval`); + } + return "0"; +}}); +// After default policy creation string assignment implicitly calls createScript. +test(t => { + globalThis.setTimeout(INPUTS.SCRIPT); + globalThis.setInterval(INPUTS.SCRIPT); +}, `\`${globalThisStr}.setTimeout(string)\`, \`${globalThisStr}.setInterval(string)\` via default policy (successful Script transformation).`); +// After default policy creation null assignment implicitly calls createScript. +test(t => { + globalThis.setTimeout(null); + globalThis.setInterval(null); +}, `\`${globalThisStr}.setTimeout(null)\`, \`${globalThisStr}.setInterval(null)\` via default policy (successful Script transformation).`); + +test(t => { + globalThis.setTimeout(kTimeoutTestString); + globalThis.setInterval(kIntervalTestString); +}, `${globalThisStr}.setTimeout and ${globalThisStr}.setInterval pass the correct sink to the default policy` +) diff --git a/tests/wpt/tests/trusted-types/support/helper.sub.js b/tests/wpt/tests/trusted-types/support/helper.sub.js index dcde42a1673..b680256b7a2 100644 --- a/tests/wpt/tests/trusted-types/support/helper.sub.js +++ b/tests/wpt/tests/trusted-types/support/helper.sub.js @@ -165,3 +165,8 @@ function assert_element_accepts_value_set_ns(tag, attribute, value, expected, let attr_node = elem.getAttributeNodeNS(attributeNamespace, attribute); assert_equals(attr_node.value + "", expected); } + +function getGlobalThisStr() { + // `globalThis.toString()` is of the form "[Object ]". + return globalThis.toString().split(" ")[1].slice(0, -1); +} diff --git a/tests/wpt/tests/webcodecs/video-decoder-no-size-in-configure.https.any.js b/tests/wpt/tests/webcodecs/video-decoder-no-size-in-configure.https.any.js new file mode 100644 index 00000000000..3481b465f9e --- /dev/null +++ b/tests/wpt/tests/webcodecs/video-decoder-no-size-in-configure.https.any.js @@ -0,0 +1,77 @@ +// META: global=window,dedicatedworker +// META: script=/webcodecs/video-encoder-utils.js +// META: variant=?av1 +// META: variant=?vp8 +// META: variant=?vp9_p0 +// META: variant=?h264_avc +// META: variant=?h264_annexb + +var CODEC = null; +promise_setup(async () => { + CODEC = { + '?av1': { codec: 'av01.0.04M.08' }, + '?vp8': { codec: 'vp8' }, + '?vp9_p0': { codec: 'vp09.00.10.08' }, + '?h264_avc': { codec: 'avc1.42001E', avc: { format: 'avc' } }, + '?h264_annexb': { codec: 'avc1.42001E', avc: { format: 'annexb' } }, + }[location.search]; +}); + +promise_test(async t => { + let encoderConfig = { + ...CODEC, + width: 320, + height: 240, + }; + + const encoderSupport = await VideoEncoder.isConfigSupported(encoderConfig); + assert_implements_optional(encoderSupport.supported, `${encoderConfig.codec} encoder is unsupported`); + + let encodedResult; + const encoder = new VideoEncoder({ + output: (chunk, metadata) => { + encodedResult = { chunk, metadata }; + }, + error: e => { + t.unreached_func('Unexpected encoding error: ' + e); + }, + }); + + encoderConfig.framerate = 30; + encoderConfig.bitrate = 3000000; + encoder.configure(encoderConfig); + + let frame = createFrame(encoderConfig.width, encoderConfig.height, 0); + encoder.encode(frame); + frame.close(); + + await encoder.flush(); + encoder.close(); + + let decoderConfig = encodedResult.metadata.decoderConfig; + delete decoderConfig.codedWidth; + delete decoderConfig.codedHeight; + delete decoderConfig.displayAspectWidth; + delete decoderConfig.displayAspectHeight; + + const decoderSupport = await VideoDecoder.isConfigSupported(decoderConfig); + assert_implements_optional(decoderSupport.supported, `${decoderConfig.codec} decoder is unsupported`); + + let decodedResult; + const decoder = new VideoDecoder({ + output: frame => { + decodedResult = frame; + }, + error: e => { + t.unreached_func('Unexpected decoding error: ' + e); + }, + }); + + + decoder.configure(decoderConfig); + decoder.decode(encodedResult.chunk); + await decoder.flush(); + + assert_equals(decodedResult.codedWidth, encoderConfig.width, 'decoded frame width'); + assert_equals(decodedResult.codedHeight, encoderConfig.height, 'decoded frame height'); +}, 'Test configure() without setting width and height'); diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigation_failed/navigation_failed.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigation_failed/navigation_failed.py index bf72e6e4278..85cab4d7d97 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigation_failed/navigation_failed.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigation_failed/navigation_failed.py @@ -9,6 +9,7 @@ from .. import assert_navigation_info pytestmark = pytest.mark.asyncio +NAVIGATION_ABORTED_EVENT = "browsingContext.navigationAborted" NAVIGATION_FAILED_EVENT = "browsingContext.navigationFailed" NAVIGATION_STARTED_EVENT = "browsingContext.navigationStarted" USER_PROMPT_OPENED_EVENT = "browsingContext.userPromptOpened" @@ -233,12 +234,26 @@ async def test_with_new_navigation( slow_page_url = url( "/webdriver/tests/bidi/browsing_context/support/empty.html?pipe=trickle(d10)" ) - await subscribe_events(events=[NAVIGATION_FAILED_EVENT]) + # Depending on implementation, the `trickle(d10)` page can or can not yet + # create a new document. Depending on this, `aborted` or `failed` event + # should be emitted. + await subscribe_events( + events=[NAVIGATION_ABORTED_EVENT, NAVIGATION_FAILED_EVENT]) result = await bidi_session.browsing_context.navigate( context=new_tab["context"], url=slow_page_url, wait="none" ) - on_navigation_failed = wait_for_event(NAVIGATION_FAILED_EVENT) + + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener_1 = bidi_session.add_event_listener( + NAVIGATION_ABORTED_EVENT, on_event) + remove_listener_2 = bidi_session.add_event_listener(NAVIGATION_FAILED_EVENT, + on_event) + second_url = inline("
foo
") # Trigger the second navigation which should fail the first one. @@ -246,11 +261,13 @@ async def test_with_new_navigation( context=new_tab["context"], url=second_url, wait="none" ) - event = await wait_for_future_safe(on_navigation_failed) + wait = AsyncPoll(bidi_session, timeout=1) + await wait.until(lambda _: len(events) > 0) + assert len(events) == 1 - # Make sure that the first navigation failed. + # Make sure that the first navigation failed or aborted. assert_navigation_info( - event, + events[0], { "context": new_tab["context"], "navigation": result["navigation"], @@ -258,6 +275,9 @@ async def test_with_new_navigation( }, ) + remove_listener_1() + remove_listener_2() + async def test_with_new_navigation_inside_page( bidi_session, @@ -282,18 +302,34 @@ async def test_with_new_navigation_inside_page( """ ) - await subscribe_events(events=[NAVIGATION_FAILED_EVENT]) - on_navigation_failed = wait_for_event(NAVIGATION_FAILED_EVENT) + + # Depending on implementation, the `trickle(d10)` page can or can not yet + # create a new document. Depending on this, `aborted` or `failed` event + # should be emitted. + await subscribe_events( + events=[NAVIGATION_ABORTED_EVENT, NAVIGATION_FAILED_EVENT]) + + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener_1 = bidi_session.add_event_listener( + NAVIGATION_ABORTED_EVENT, on_event) + remove_listener_2 = bidi_session.add_event_listener(NAVIGATION_FAILED_EVENT, + on_event) result = await bidi_session.browsing_context.navigate( context=new_tab["context"], url=slow_page_url, wait="none" ) - event = await wait_for_future_safe(on_navigation_failed) + wait = AsyncPoll(bidi_session, timeout=1) + await wait.until(lambda _: len(events) > 0) + assert len(events) == 1 # Make sure that the first navigation failed. assert_navigation_info( - event, + events[0], { "context": new_tab["context"], "navigation": result["navigation"], @@ -301,6 +337,9 @@ async def test_with_new_navigation_inside_page( }, ) + remove_listener_1() + remove_listener_2() + @pytest.mark.parametrize("type_hint", ["tab", "window"]) async def test_close_context( @@ -315,19 +354,35 @@ async def test_close_context( slow_page_url = url( "/webdriver/tests/bidi/browsing_context/support/empty.html?pipe=trickle(d10)" ) - await subscribe_events(events=[NAVIGATION_FAILED_EVENT]) + # Depending on implementation, the `trickle(d10)` page can or can not yet + # create a new document. Depending on this, `aborted` or `failed` event + # should be emitted. + await subscribe_events( + events=[NAVIGATION_ABORTED_EVENT, NAVIGATION_FAILED_EVENT]) result = await bidi_session.browsing_context.navigate( context=new_context["context"], url=slow_page_url, wait="none" ) - on_navigation_failed = wait_for_event(NAVIGATION_FAILED_EVENT) + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener_1 = bidi_session.add_event_listener( + NAVIGATION_ABORTED_EVENT, on_event) + remove_listener_2 = bidi_session.add_event_listener(NAVIGATION_FAILED_EVENT, + on_event) + await bidi_session.browsing_context.close(context=new_context["context"]) - event = await wait_for_future_safe(on_navigation_failed) + + wait = AsyncPoll(bidi_session, timeout=1) + await wait.until(lambda _: len(events) > 0) + assert len(events) == 1 # Make sure that the navigation failed. assert_navigation_info( - event, + events[0], { "context": new_context["context"], "navigation": result["navigation"], @@ -335,6 +390,9 @@ async def test_close_context( }, ) + remove_listener_1() + remove_listener_2() + async def test_close_iframe( bidi_session, @@ -348,9 +406,13 @@ async def test_close_iframe( iframe_url = inline("
foo
") page_url = inline(f"