diff --git a/tests/wpt/metadata-layout-2020/FileAPI/url/url-charset.window.js.ini b/tests/wpt/metadata-layout-2020/FileAPI/url/url-charset.window.js.ini index 33fc78f48d9..08ab7bd35cd 100644 --- a/tests/wpt/metadata-layout-2020/FileAPI/url/url-charset.window.js.ini +++ b/tests/wpt/metadata-layout-2020/FileAPI/url/url-charset.window.js.ini @@ -2,6 +2,3 @@ expected: TIMEOUT [Blob charset should override any auto-detected charset.] expected: TIMEOUT - - [Blob charset should override .] - expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini new file mode 100644 index 00000000000..968f62a2553 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/floats/hit-test-floats-002.html.ini @@ -0,0 +1,3 @@ +[hit-test-floats-002.html] + [Hit test float] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini index 66a6e016faa..39069192147 100644 --- a/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini +++ b/tests/wpt/metadata-layout-2020/css/CSS2/linebox/inline-negative-margin-001.html.ini @@ -5,5 +5,8 @@ [[data-expected-height\] 3] expected: FAIL - [[data-expected-height\] 4] + [[data-expected-height\] 1] + expected: FAIL + + [[data-expected-height\] 2] expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini new file mode 100644 index 00000000000..b4eea326212 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-001.html.ini @@ -0,0 +1,3 @@ +[block-in-inline-hittest-001.html] + [block-in-inline-hittest-001] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-002.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-002.html.ini index 51432362d66..ee34bc91078 100644 --- a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-002.html.ini +++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-002.html.ini @@ -1,3 +1,6 @@ [block-in-inline-hittest-002.html] [elementsFromPoint] expected: FAIL + + [elementFromPoint] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-relpos-zindex.html.ini b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-relpos-zindex.html.ini index f9e216a8cfc..cdd8b55f192 100644 --- a/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-relpos-zindex.html.ini +++ b/tests/wpt/metadata-layout-2020/css/CSS2/normal-flow/block-in-inline-hittest-relpos-zindex.html.ini @@ -1,6 +1,3 @@ [block-in-inline-hittest-relpos-zindex.html] [position: relative; z-index: -1;] expected: FAIL - - [block-in-inline-hittest-relpos-zindex] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-animations/parsing/animation-delay-shorthand-computed.html.ini b/tests/wpt/metadata-layout-2020/css/css-animations/parsing/animation-delay-shorthand-computed.html.ini new file mode 100644 index 00000000000..1967721ce03 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-animations/parsing/animation-delay-shorthand-computed.html.ini @@ -0,0 +1,60 @@ +[animation-delay-shorthand-computed.html] + [Property animation-delay value '1s 2s'] + expected: FAIL + + [Property animation-delay value '1s 2s, 3s'] + expected: FAIL + + [Property animation-delay value '1s, 2s 3s'] + expected: FAIL + + [Property animation-delay value 'cover'] + expected: FAIL + + [Property animation-delay value 'contain'] + expected: FAIL + + [Property animation-delay value 'enter'] + expected: FAIL + + [Property animation-delay value 'exit'] + expected: FAIL + + [Property animation-delay value 'enter, exit'] + expected: FAIL + + [Property animation-delay value 'enter 0% enter 100%'] + expected: FAIL + + [Property animation-delay value 'exit 0% exit 100%'] + expected: FAIL + + [Property animation-delay value 'cover 0% cover 100%'] + expected: FAIL + + [Property animation-delay value 'contain 0% contain 100%'] + expected: FAIL + + [Property animation-delay value 'cover 50%'] + expected: FAIL + + [Property animation-delay value 'contain 50%'] + expected: FAIL + + [Property animation-delay value 'enter 50%'] + expected: FAIL + + [Property animation-delay value 'exit 50%'] + expected: FAIL + + [Property animation-delay value 'enter 50% 0s'] + expected: FAIL + + [Property animation-delay value '0s enter 50%'] + expected: FAIL + + [Property animation-delay value 'enter 50% exit 50%'] + expected: FAIL + + [Property animation-delay value 'cover 50% enter 50%, contain 50% exit 50%'] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-animations/parsing/animation-delay-shorthand.html.ini b/tests/wpt/metadata-layout-2020/css/css-animations/parsing/animation-delay-shorthand.html.ini new file mode 100644 index 00000000000..a67cdfc1609 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-animations/parsing/animation-delay-shorthand.html.ini @@ -0,0 +1,150 @@ +[animation-delay-shorthand.html] + [e.style['animation-delay'\] = "1s 2s" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s, 3s" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "1s, 2s 3s" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "cover" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "contain" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "enter" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "exit" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "enter, exit" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "enter 0% enter 100%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "exit 0% exit 100%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "cover 0% cover 100%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "contain 0% contain 100%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "cover 50%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "contain 50%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "enter 50%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "exit 50%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "enter 50% 0s" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "0s enter 50%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "enter 50% exit 50%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "cover 50% enter 50%, contain 50% exit 50%" should set the property value] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s" should not set unrelated longhands] + expected: FAIL + + [e.style['animation-delay'\] = "1s" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "1s" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "1s" should not set unrelated longhands] + expected: FAIL + + [e.style['animation-delay'\] = "cover" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "cover" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "cover" should not set unrelated longhands] + expected: FAIL + + [e.style['animation-delay'\] = "contain" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "contain" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "contain" should not set unrelated longhands] + expected: FAIL + + [e.style['animation-delay'\] = "enter 10% exit 20%" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "enter 10% exit 20%" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "enter 10% exit 20%" should not set unrelated longhands] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s, 3s 4s" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s, 3s 4s" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s, 3s 4s" should not set unrelated longhands] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s, 3s, 4s 5s" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s, 3s, 4s 5s" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "1s 2s, 3s, 4s 5s" should not set unrelated longhands] + expected: FAIL + + [e.style['animation-delay'\] = "enter, exit" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "enter, exit" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "enter, exit" should not set unrelated longhands] + expected: FAIL + + [e.style['animation-delay'\] = "enter 0%, exit" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "enter 0%, exit" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "enter 0%, exit" should not set unrelated longhands] + expected: FAIL + + [e.style['animation-delay'\] = "enter 0% 1s, 2s exit 50%" should set animation-delay-end] + expected: FAIL + + [e.style['animation-delay'\] = "enter 0% 1s, 2s exit 50%" should set animation-delay-start] + expected: FAIL + + [e.style['animation-delay'\] = "enter 0% 1s, 2s exit 50%" should not set unrelated longhands] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-animations/parsing/animation-shorthand.tentative.html.ini b/tests/wpt/metadata-layout-2020/css/css-animations/parsing/animation-shorthand.tentative.html.ini new file mode 100644 index 00000000000..8c3b64ad054 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-animations/parsing/animation-shorthand.tentative.html.ini @@ -0,0 +1,12 @@ +[animation-shorthand.tentative.html] + [e.style['animation'\] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-delay-end] + expected: FAIL + + [e.style['animation'\] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-delay-start] + expected: FAIL + + [e.style['animation'\] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should set animation-timeline] + expected: FAIL + + [e.style['animation'\] = "anim paused both reverse 4 1s -3s cubic-bezier(0, -2, 1, 3)" should not set unrelated longhands] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-color/parsing/color-computed-lab.html.ini b/tests/wpt/metadata-layout-2020/css/css-color/parsing/color-computed-lab.html.ini index 60d3ed90fd9..26fa6b63414 100644 --- a/tests/wpt/metadata-layout-2020/css/css-color/parsing/color-computed-lab.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-color/parsing/color-computed-lab.html.ini @@ -274,3 +274,15 @@ [Property color value 'oklch(0 0 0 / none)'] expected: FAIL + + [Property color value 'lab(20% 0 10/0.5)'] + expected: FAIL + + [Property color value 'oklab(20% 0 10/0.5)'] + expected: FAIL + + [Property color value 'lch(20% 0 10/0.5)'] + expected: FAIL + + [Property color value 'oklch(20% 0 10/0.5)'] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-flexbox/hittest-anonymous-box.html.ini b/tests/wpt/metadata-layout-2020/css/css-flexbox/hittest-anonymous-box.html.ini deleted file mode 100644 index b8f8d45a31f..00000000000 --- a/tests/wpt/metadata-layout-2020/css/css-flexbox/hittest-anonymous-box.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[hittest-anonymous-box.html] - [Hit-testing within an anonymous flex-item should return the flexbox as the hittest result.] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-fonts/parsing/font-face-src-list.html.ini b/tests/wpt/metadata-layout-2020/css/css-fonts/parsing/font-face-src-list.html.ini new file mode 100644 index 00000000000..4cd7f216588 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/css-fonts/parsing/font-face-src-list.html.ini @@ -0,0 +1,2 @@ +[font-face-src-list.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/css/css-fonts/variations/at-font-face-font-matching.html.ini b/tests/wpt/metadata-layout-2020/css/css-fonts/variations/at-font-face-font-matching.html.ini index c9a742b2bbb..e8a5ecbf0a2 100644 --- a/tests/wpt/metadata-layout-2020/css/css-fonts/variations/at-font-face-font-matching.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-fonts/variations/at-font-face-font-matching.html.ini @@ -8,9 +8,6 @@ [Descriptor matching priority: Style has higher priority than weight] expected: FAIL - [Matching font-weight: '400' should prefer '400' over '450 460'] - expected: FAIL - [Matching font-weight: '400' should prefer '450 460' over '500'] expected: FAIL @@ -128,9 +125,6 @@ [Matching font-style: 'italic' should prefer 'oblique 40deg 50deg' over 'oblique 5deg 10deg'] expected: FAIL - [Matching font-style: 'italic' should prefer 'normal' over 'oblique 0deg'] - expected: FAIL - [Matching font-style: 'italic' should prefer 'oblique -60deg -30deg' over 'oblique -50deg -40deg'] expected: FAIL @@ -140,12 +134,6 @@ [Matching font-style: 'oblique 20deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'] expected: FAIL - [Matching font-style: 'oblique 20deg' should prefer 'oblique 40deg 50deg' over 'oblique 10deg'] - expected: FAIL - - [Matching font-style: 'oblique 20deg' should prefer 'italic' over 'oblique 0deg'] - expected: FAIL - [Matching font-style: 'oblique 20deg' should prefer 'oblique -50deg -20deg' over 'oblique -40deg -30deg'] expected: FAIL @@ -203,15 +191,6 @@ [Matching font-style: 'oblique -20deg' should prefer 'oblique 0deg' over 'oblique 30deg 60deg'] expected: FAIL - [Matching font-style: 'oblique -20deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg'] - expected: FAIL - - [Matching font-style: 'oblique -21deg' should prefer 'oblique -60deg -40deg' over 'oblique -10deg'] - expected: FAIL - - [Matching font-style: 'oblique -21deg' should prefer 'oblique -10deg' over 'italic'] - expected: FAIL - [Matching font-style: 'oblique -21deg' should prefer 'italic' over 'oblique 0deg'] expected: FAIL @@ -290,9 +269,6 @@ [Matching font-style: 'oblique 20deg' should prefer 'oblique 10deg' over 'italic'] expected: FAIL - [Matching font-style: 'oblique 20deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg'] - expected: FAIL - [Matching font-style: 'oblique 21deg' should prefer 'oblique 21deg' over 'oblique 30deg 60deg'] expected: FAIL @@ -319,3 +295,9 @@ [Matching font-style: 'oblique -10deg' should prefer 'italic' over 'oblique 0deg 10deg'] expected: FAIL + + [Matching font-stretch: '110%' should prefer '105%' over '100%'] + expected: FAIL + + [Matching font-style: 'oblique 21deg' should prefer 'italic' over 'oblique 0deg'] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-003.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-003.html.ini index 008e464677a..3ef5c3a21c0 100644 --- a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-003.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-003.html.ini @@ -490,3 +490,33 @@ [object-view-box object-view-box(xywh) / events] expected: FAIL + + [border-top-left-radius border-radius(px) / values] + expected: FAIL + + [border-top-left-radius border-radius(px-px) / values] + expected: FAIL + + [border-top-right-radius border-radius(px) / values] + expected: FAIL + + [border-top-right-radius border-radius(px-px) / values] + expected: FAIL + + [border-bottom-left-radius border-radius(px) / values] + expected: FAIL + + [border-bottom-left-radius border-radius(px-px) / values] + expected: FAIL + + [border-bottom-right-radius border-radius(px) / values] + expected: FAIL + + [border-bottom-right-radius border-radius(px-px) / values] + expected: FAIL + + [box-shadow box-shadow(shadow) / values] + expected: FAIL + + [font-stretch font-stretch(keyword) / values] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-001.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-001.html.ini index 270150fa9f4..542ee41ded7 100644 --- a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-001.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-001.html.ini @@ -178,153 +178,3 @@ [padding-bottom length(em) / events] expected: FAIL - - [padding-bottom length(ex) / events] - expected: FAIL - - [padding-bottom length(mm) / events] - expected: FAIL - - [padding-bottom length(cm) / events] - expected: FAIL - - [padding-bottom length(in) / events] - expected: FAIL - - [padding-left length(pt) / events] - expected: FAIL - - [padding-left length(pc) / events] - expected: FAIL - - [padding-left length(px) / events] - expected: FAIL - - [padding-left length(em) / events] - expected: FAIL - - [padding-left length(ex) / events] - expected: FAIL - - [padding-left length(mm) / events] - expected: FAIL - - [padding-left length(cm) / events] - expected: FAIL - - [padding-left length(in) / events] - expected: FAIL - - [padding-right length(pt) / events] - expected: FAIL - - [padding-right length(pc) / events] - expected: FAIL - - [padding-right length(px) / events] - expected: FAIL - - [padding-right length(em) / events] - expected: FAIL - - [padding-right length(ex) / events] - expected: FAIL - - [padding-right length(mm) / events] - expected: FAIL - - [padding-right length(cm) / events] - expected: FAIL - - [padding-right length(in) / events] - expected: FAIL - - [padding-top length(pt) / events] - expected: FAIL - - [padding-top length(pc) / events] - expected: FAIL - - [padding-top length(px) / events] - expected: FAIL - - [padding-top length(em) / events] - expected: FAIL - - [padding-top length(ex) / events] - expected: FAIL - - [padding-top length(mm) / events] - expected: FAIL - - [padding-top length(cm) / events] - expected: FAIL - - [padding-top length(in) / events] - expected: FAIL - - [margin-bottom length(pt) / events] - expected: FAIL - - [margin-bottom length(pc) / events] - expected: FAIL - - [margin-bottom length(px) / events] - expected: FAIL - - [margin-bottom length(em) / events] - expected: FAIL - - [margin-bottom length(ex) / events] - expected: FAIL - - [margin-bottom length(mm) / events] - expected: FAIL - - [margin-bottom length(cm) / events] - expected: FAIL - - [margin-bottom length(in) / events] - expected: FAIL - - [margin-left length(pt) / events] - expected: FAIL - - [margin-left length(pc) / events] - expected: FAIL - - [margin-left length(px) / events] - expected: FAIL - - [margin-left length(em) / events] - expected: FAIL - - [margin-left length(ex) / events] - expected: FAIL - - [margin-left length(mm) / events] - expected: FAIL - - [margin-left length(cm) / events] - expected: FAIL - - [margin-left length(in) / events] - expected: FAIL - - [margin-right length(pt) / events] - expected: FAIL - - [margin-right length(pc) / events] - expected: FAIL - - [margin-right length(px) / events] - expected: FAIL - - [margin-right length(em) / events] - expected: FAIL - - [margin-right length(ex) / events] - expected: FAIL - - [margin-right length(mm) / events] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini index a8b624d26cb..4a3c8112e13 100644 --- a/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-transitions/properties-value-inherit-002.html.ini @@ -53,156 +53,6 @@ [background-position length(px) / events] expected: FAIL - [color color(rgba) / values] - expected: FAIL - - [font-size length(pt) / values] - expected: FAIL - - [font-size length(pc) / values] - expected: FAIL - - [font-size length(px) / values] - expected: FAIL - - [font-size length(em) / values] - expected: FAIL - - [font-size length(ex) / values] - expected: FAIL - - [font-size length(mm) / values] - expected: FAIL - - [font-size length(cm) / values] - expected: FAIL - - [font-size length(in) / values] - expected: FAIL - - [font-size percentage(%) / values] - expected: FAIL - - [font-weight font-weight(keyword) / values] - expected: FAIL - - [font-weight font-weight(numeric) / values] - expected: FAIL - - [line-height number(integer) / values] - expected: FAIL - - [line-height number(decimal) / values] - expected: FAIL - - [line-height length(pt) / values] - expected: FAIL - - [line-height length(pc) / values] - expected: FAIL - - [line-height length(px) / values] - expected: FAIL - - [line-height length(em) / values] - expected: FAIL - - [line-height length(ex) / values] - expected: FAIL - - [line-height length(mm) / values] - expected: FAIL - - [line-height length(cm) / values] - expected: FAIL - - [line-height length(in) / values] - expected: FAIL - - [line-height percentage(%) / values] - expected: FAIL - - [letter-spacing length(pt) / values] - expected: FAIL - - [letter-spacing length(pc) / values] - expected: FAIL - - [letter-spacing length(px) / values] - expected: FAIL - - [letter-spacing length(em) / values] - expected: FAIL - - [letter-spacing length(ex) / values] - expected: FAIL - - [letter-spacing length(mm) / values] - expected: FAIL - - [letter-spacing length(cm) / values] - expected: FAIL - - [letter-spacing length(in) / values] - expected: FAIL - - [word-spacing length(pt) / values] - expected: FAIL - - [word-spacing length(pc) / values] - expected: FAIL - - [word-spacing length(px) / values] - expected: FAIL - - [word-spacing length(em) / values] - expected: FAIL - - [word-spacing length(ex) / values] - expected: FAIL - - [word-spacing length(mm) / values] - expected: FAIL - - [word-spacing length(cm) / values] - expected: FAIL - - [word-spacing length(in) / values] - expected: FAIL - - [word-spacing percentage(%) / values] - expected: FAIL - - [text-indent length(pt) / values] - expected: FAIL - - [text-indent length(pc) / values] - expected: FAIL - - [text-indent length(px) / values] - expected: FAIL - - [text-indent length(em) / values] - expected: FAIL - - [text-indent length(ex) / values] - expected: FAIL - - [text-indent length(mm) / values] - expected: FAIL - - [text-indent length(cm) / values] - expected: FAIL - - [text-indent length(in) / values] - expected: FAIL - - [text-indent percentage(%) / values] - expected: FAIL - - [text-shadow shadow(shadow) / values] - expected: FAIL - [padding-bottom length(ex) / values] expected: FAIL @@ -352,3 +202,276 @@ [margin-right length(mm) / values] expected: FAIL + + [background-color color(rgba) / values] + expected: FAIL + + [border-top-width length(pt) / values] + expected: FAIL + + [border-top-width length(pc) / values] + expected: FAIL + + [border-top-width length(px) / values] + expected: FAIL + + [border-top-width length(em) / values] + expected: FAIL + + [border-top-width length(ex) / values] + expected: FAIL + + [border-top-width length(mm) / values] + expected: FAIL + + [border-top-width length(cm) / values] + expected: FAIL + + [border-top-width length(in) / values] + expected: FAIL + + [border-right-width length(pt) / values] + expected: FAIL + + [border-right-width length(pc) / values] + expected: FAIL + + [border-right-width length(px) / values] + expected: FAIL + + [border-right-width length(em) / values] + expected: FAIL + + [border-right-width length(ex) / values] + expected: FAIL + + [border-right-width length(mm) / values] + expected: FAIL + + [border-right-width length(cm) / values] + expected: FAIL + + [border-right-width length(in) / values] + expected: FAIL + + [border-bottom-width length(pt) / values] + expected: FAIL + + [border-bottom-width length(pc) / values] + expected: FAIL + + [border-bottom-width length(px) / values] + expected: FAIL + + [border-bottom-width length(em) / values] + expected: FAIL + + [border-bottom-width length(ex) / values] + expected: FAIL + + [border-bottom-width length(mm) / values] + expected: FAIL + + [border-bottom-width length(cm) / values] + expected: FAIL + + [border-bottom-width length(in) / values] + expected: FAIL + + [border-left-width length(pt) / values] + expected: FAIL + + [border-left-width length(pc) / values] + expected: FAIL + + [border-left-width length(px) / values] + expected: FAIL + + [border-left-width length(em) / values] + expected: FAIL + + [border-left-width length(ex) / values] + expected: FAIL + + [border-left-width length(mm) / values] + expected: FAIL + + [border-left-width length(cm) / values] + expected: FAIL + + [border-left-width length(in) / values] + expected: FAIL + + [border-top-color color(rgba) / values] + expected: FAIL + + [border-right-color color(rgba) / values] + expected: FAIL + + [border-bottom-color color(rgba) / values] + expected: FAIL + + [border-left-color color(rgba) / values] + expected: FAIL + + [padding-bottom length(pt) / values] + expected: FAIL + + [padding-bottom length(pc) / values] + expected: FAIL + + [padding-bottom length(px) / values] + expected: FAIL + + [padding-bottom length(em) / values] + expected: FAIL + + [max-height length(ex) / values] + expected: FAIL + + [max-height length(mm) / values] + expected: FAIL + + [max-height length(cm) / values] + expected: FAIL + + [max-height length(in) / values] + expected: FAIL + + [max-height percentage(%) / values] + expected: FAIL + + [max-width length(pt) / values] + expected: FAIL + + [max-width length(pc) / values] + expected: FAIL + + [max-width length(px) / values] + expected: FAIL + + [max-width length(em) / values] + expected: FAIL + + [max-width length(ex) / values] + expected: FAIL + + [max-width length(mm) / values] + expected: FAIL + + [max-width length(cm) / values] + expected: FAIL + + [max-width length(in) / values] + expected: FAIL + + [max-width percentage(%) / values] + expected: FAIL + + [top length(pt) / values] + expected: FAIL + + [top length(pc) / values] + expected: FAIL + + [top length(px) / values] + expected: FAIL + + [top length(em) / values] + expected: FAIL + + [top length(ex) / values] + expected: FAIL + + [top length(mm) / values] + expected: FAIL + + [top length(cm) / values] + expected: FAIL + + [top length(in) / values] + expected: FAIL + + [top percentage(%) / values] + expected: FAIL + + [right length(pt) / values] + expected: FAIL + + [right length(pc) / values] + expected: FAIL + + [right length(px) / values] + expected: FAIL + + [right length(em) / values] + expected: FAIL + + [right length(ex) / values] + expected: FAIL + + [right length(mm) / values] + expected: FAIL + + [right length(cm) / values] + expected: FAIL + + [right length(in) / values] + expected: FAIL + + [right percentage(%) / values] + expected: FAIL + + [bottom length(pt) / values] + expected: FAIL + + [bottom length(pc) / values] + expected: FAIL + + [bottom length(px) / values] + expected: FAIL + + [bottom length(em) / values] + expected: FAIL + + [bottom length(ex) / values] + expected: FAIL + + [bottom length(mm) / values] + expected: FAIL + + [bottom length(cm) / values] + expected: FAIL + + [bottom length(in) / values] + expected: FAIL + + [bottom percentage(%) / values] + expected: FAIL + + [left length(pt) / values] + expected: FAIL + + [left length(pc) / values] + expected: FAIL + + [left length(px) / values] + expected: FAIL + + [left length(em) / values] + expected: FAIL + + [left length(ex) / values] + expected: FAIL + + [left length(mm) / values] + expected: FAIL + + [left length(cm) / values] + expected: FAIL + + [left length(in) / values] + expected: FAIL + + [left percentage(%) / values] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-values/acos-asin-atan-atan2-serialize.html.ini b/tests/wpt/metadata-layout-2020/css/css-values/acos-asin-atan-atan2-serialize.html.ini index 73059e17aea..ec0d4fa343f 100644 --- a/tests/wpt/metadata-layout-2020/css/css-values/acos-asin-atan-atan2-serialize.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-values/acos-asin-atan-atan2-serialize.html.ini @@ -163,3 +163,57 @@ ['rotate(calc(atan(tan(-90deg))))' as a specified value should serialize as 'rotate(calc(-90deg))'.] expected: FAIL + + ['rotate(atan2(37.320508075, 10))' as a specified value should serialize as 'rotate(calc(75deg))'.] + expected: FAIL + + ['rotate(calc(atan2(37.320508075, 10)))' as a specified value should serialize as 'rotate(calc(75deg))'.] + expected: FAIL + + ['rotate(atan2(1s, 1000ms))' as a specified value should serialize as 'rotate(calc(45deg))'.] + expected: FAIL + + ['rotate(calc(atan2(1s, 1000ms)))' as a specified value should serialize as 'rotate(calc(45deg))'.] + expected: FAIL + + ['rotate(atan2(infinity, infinity))' as a specified value should serialize as 'rotate(calc(45deg))'.] + expected: FAIL + + ['rotate(calc(atan2(infinity, infinity)))' as a specified value should serialize as 'rotate(calc(45deg))'.] + expected: FAIL + + ['rotate(atan2(-infinity, -infinity))' as a specified value should serialize as 'rotate(calc(-135deg))'.] + expected: FAIL + + ['rotate(calc(atan2(-infinity, -infinity)))' as a specified value should serialize as 'rotate(calc(-135deg))'.] + expected: FAIL + + ['rotate(atan2(infinity, 10))' as a specified value should serialize as 'rotate(calc(90deg))'.] + expected: FAIL + + ['rotate(calc(atan2(infinity, 10)))' as a specified value should serialize as 'rotate(calc(90deg))'.] + expected: FAIL + + ['rotate(atan2(10, infinity))' as a specified value should serialize as 'rotate(calc(0deg))'.] + expected: FAIL + + ['rotate(calc(atan2(10, infinity)))' as a specified value should serialize as 'rotate(calc(0deg))'.] + expected: FAIL + + ['rotate(atan2(NaN, 10))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.] + expected: FAIL + + ['rotate(calc(atan2(NaN, 10)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.] + expected: FAIL + + ['rotate(atan2(10, NaN))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.] + expected: FAIL + + ['rotate(calc(atan2(10, NaN)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.] + expected: FAIL + + ['rotate(atan2(NaN, NaN))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.] + expected: FAIL + + ['rotate(calc(atan2(NaN, NaN)))' as a specified value should serialize as 'rotate(calc(NaN * 1deg))'.] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/css-values/round-mod-rem-computed.html.ini b/tests/wpt/metadata-layout-2020/css/css-values/round-mod-rem-computed.html.ini index f2edcdd5883..456c441bca8 100644 --- a/tests/wpt/metadata-layout-2020/css/css-values/round-mod-rem-computed.html.ini +++ b/tests/wpt/metadata-layout-2020/css/css-values/round-mod-rem-computed.html.ini @@ -286,3 +286,72 @@ [round(10000ms,6s) should be used-value-equivalent to 12s] expected: FAIL + + [calc(mod(rem(1,18)* -1,5)) should be used-value-equivalent to 4] + expected: FAIL + + [mod(10%,1px) should be used-value-equivalent to 0.5px] + expected: FAIL + + [mod(10%,5px) should be used-value-equivalent to 2.5px] + expected: FAIL + + [mod(2rem,5px) should be used-value-equivalent to 2px] + expected: FAIL + + [mod(100px,1rem) should be used-value-equivalent to 4px] + expected: FAIL + + [mod(10s,6000ms) should be used-value-equivalent to 4s] + expected: FAIL + + [mod(10000ms,6s) should be used-value-equivalent to 4s] + expected: FAIL + + [mod(18px,100% / 15) should be used-value-equivalent to 3px] + expected: FAIL + + [mod(-18px,100% / 15) should be used-value-equivalent to 2px] + expected: FAIL + + [mod(18%,5%) should be used-value-equivalent to 3%] + expected: FAIL + + [mod(-18%,5%) should be used-value-equivalent to 2%] + expected: FAIL + + [mod(18vw,5vw) should be used-value-equivalent to 3vw] + expected: FAIL + + [mod(-18vw,5vw) should be used-value-equivalent to 2vw] + expected: FAIL + + [rem(10%,1px) should be used-value-equivalent to 0.5px] + expected: FAIL + + [rem(10%,5px) should be used-value-equivalent to 2.5px] + expected: FAIL + + [rem(2rem,5px) should be used-value-equivalent to 2px] + expected: FAIL + + [rem(100px,1rem) should be used-value-equivalent to 4px] + expected: FAIL + + [rem(10s,6000ms) should be used-value-equivalent to 4s] + expected: FAIL + + [rem(10000ms,6s) should be used-value-equivalent to 4s] + expected: FAIL + + [rem(18px,100% / 15) should be used-value-equivalent to 3px] + expected: FAIL + + [rem(-18px,100% / 15) should be used-value-equivalent to -3px] + expected: FAIL + + [rem(18vw,5vw) should be used-value-equivalent to 3vw] + expected: FAIL + + [rem(-18vw,5vw) should be used-value-equivalent to -3vw] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini deleted file mode 100644 index f18b8d2fcf9..00000000000 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/CaretPosition-001.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[CaretPosition-001.html] - [Element at (400, 100)] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/cssom-getBoxQuads-001.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/cssom-getBoxQuads-001.html.ini index 61e793df399..9772a6df3aa 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/cssom-getBoxQuads-001.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/cssom-getBoxQuads-001.html.ini @@ -2,3 +2,20 @@ [CSSOM View - getBoxQuads() returns proper border and margin boxes for block and flex] expected: FAIL + [Block layout border box is expected width.] + expected: FAIL + + [Block layout margin box is expected width.] + expected: FAIL + + [Flex layout border box is expected width.] + expected: FAIL + + [Flex layout margin box is expected width.] + expected: FAIL + + [Flex layout border box is expected height.] + expected: FAIL + + [Flex layout margin box is expected height.] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-dynamic-anon-box.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-dynamic-anon-box.html.ini new file mode 100644 index 00000000000..cf67b5d03dd --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-dynamic-anon-box.html.ini @@ -0,0 +1,3 @@ +[elementFromPoint-dynamic-anon-box.html] + [Link should be clickable after hiding a scrollbox with an anonymous table inside] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini new file mode 100644 index 00000000000..b905fe70fcb --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-ellipsis-in-inline-box.html.ini @@ -0,0 +1,3 @@ +[elementFromPoint-ellipsis-in-inline-box.html] + [elementFromPoint-ellipsis-in-inline-box] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-subpixel.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-subpixel.html.ini deleted file mode 100644 index 8f6f663ba61..00000000000 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPoint-subpixel.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[elementFromPoint-subpixel.html] - [Hit test top left corner of box] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini index 3ddd598f5c4..1bf6ea475bf 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom-view/elementFromPosition.html.ini @@ -16,6 +16,3 @@ [test the top of layer] expected: FAIL - - [test some point of the element: top left corner] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom/CSSFontFeatureValuesRule.html.ini b/tests/wpt/metadata-layout-2020/css/cssom/CSSFontFeatureValuesRule.html.ini new file mode 100644 index 00000000000..601430b639c --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/cssom/CSSFontFeatureValuesRule.html.ini @@ -0,0 +1,21 @@ +[CSSFontFeatureValuesRule.html] + [CSSFontFeatureValuesRule is correctly parsed and accessible via CSSOM.] + expected: FAIL + + [CSSFontFeatureValuesRule family is settable and readable.] + expected: FAIL + + [CSSFontFeatureValuesMap entries are settable to single values.] + expected: FAIL + + [CSSFontFeatureValuesMap entries are settable to sequences of numbers.] + expected: FAIL + + [New rules can be added.] + expected: FAIL + + [Deleting single entries is possible.] + expected: FAIL + + [Clearing all entries is possible.] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom/flex-serialization.html.ini b/tests/wpt/metadata-layout-2020/css/cssom/flex-serialization.html.ini index 621ae91ce8d..8cffedde1f9 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom/flex-serialization.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom/flex-serialization.html.ini @@ -2,3 +2,5 @@ [CSSOM - Flex serialization] expected: FAIL + [Single value flex with non-CSS-wide value should serialize correctly.] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/cssom/shorthand-values.html.ini b/tests/wpt/metadata-layout-2020/css/cssom/shorthand-values.html.ini index 118fe40c77c..4930b97a3ca 100644 --- a/tests/wpt/metadata-layout-2020/css/cssom/shorthand-values.html.ini +++ b/tests/wpt/metadata-layout-2020/css/cssom/shorthand-values.html.ini @@ -2,12 +2,6 @@ [The serialization of border: 1px; border-top: 2px; should be canonical.] expected: FAIL - [The serialization of list-style-type: lower-alpha; should be canonical.] - expected: FAIL - - [The serialization of outline-width: 2px; outline-style: dotted; outline-color: blue; should be canonical.] - expected: FAIL - [The serialization of border: 1px; border-top: 1px; should be canonical.] expected: FAIL @@ -35,3 +29,5 @@ [The serialization of border: 1px; border-top: 1px !important; should be canonical.] expected: FAIL + [The serialization of list-style-type: circle; list-style-position: inside; list-style-image: none; should be canonical.] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/selectors/focus-visible-010.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/focus-visible-010.html.ini new file mode 100644 index 00000000000..ab3f0b4ea6e --- /dev/null +++ b/tests/wpt/metadata-layout-2020/css/selectors/focus-visible-010.html.ini @@ -0,0 +1,4 @@ +[focus-visible-010.html] + expected: ERROR + [Programmatic focus on page load should match :focus-visible] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html.ini index 6c939c14e4a..48b39b6115a 100644 --- a/tests/wpt/metadata-layout-2020/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html.ini +++ b/tests/wpt/metadata-layout-2020/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html.ini @@ -7,3 +7,9 @@ [".a:has(.b:is(.c:has(.d) .e))" should be a valid selector] expected: FAIL + + [".a:has(:is(.b:has(.c)))" should be a valid selector] + expected: FAIL + + [".a:has(:is(.b:has(.c), .d))" should be a valid selector] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/css/selectors/parsing/parse-has.html.ini b/tests/wpt/metadata-layout-2020/css/selectors/parsing/parse-has.html.ini index fbb5fb326f5..8c802d73953 100644 --- a/tests/wpt/metadata-layout-2020/css/selectors/parsing/parse-has.html.ini +++ b/tests/wpt/metadata-layout-2020/css/selectors/parsing/parse-has.html.ini @@ -76,3 +76,6 @@ [".a:has()" should be a valid selector] expected: FAIL + + [":has(:is(.a, 123))" should be a valid selector] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/dom/ranges/Range-cloneContents.html.ini b/tests/wpt/metadata-layout-2020/dom/ranges/Range-cloneContents.html.ini new file mode 100644 index 00000000000..e9dec4e7d3f --- /dev/null +++ b/tests/wpt/metadata-layout-2020/dom/ranges/Range-cloneContents.html.ini @@ -0,0 +1,2 @@ +[Range-cloneContents.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/dom/ranges/Range-deleteContents.html.ini b/tests/wpt/metadata-layout-2020/dom/ranges/Range-deleteContents.html.ini new file mode 100644 index 00000000000..fb958044113 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/dom/ranges/Range-deleteContents.html.ini @@ -0,0 +1,2 @@ +[Range-deleteContents.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/dom/ranges/Range-extractContents.html.ini b/tests/wpt/metadata-layout-2020/dom/ranges/Range-extractContents.html.ini new file mode 100644 index 00000000000..5ecae010acf --- /dev/null +++ b/tests/wpt/metadata-layout-2020/dom/ranges/Range-extractContents.html.ini @@ -0,0 +1,2 @@ +[Range-extractContents.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/dom/ranges/Range-insertNode.html.ini b/tests/wpt/metadata-layout-2020/dom/ranges/Range-insertNode.html.ini new file mode 100644 index 00000000000..ca10364a152 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/dom/ranges/Range-insertNode.html.ini @@ -0,0 +1,2 @@ +[Range-insertNode.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/dom/ranges/Range-surroundContents.html.ini b/tests/wpt/metadata-layout-2020/dom/ranges/Range-surroundContents.html.ini new file mode 100644 index 00000000000..5d76192b344 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/dom/ranges/Range-surroundContents.html.ini @@ -0,0 +1,2 @@ +[Range-surroundContents.html] + expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/fetch/api/basic/request-forbidden-headers.any.js.ini b/tests/wpt/metadata-layout-2020/fetch/api/basic/request-forbidden-headers.any.js.ini index 973396c60cd..88c14114e79 100644 --- a/tests/wpt/metadata-layout-2020/fetch/api/basic/request-forbidden-headers.any.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/api/basic/request-forbidden-headers.any.js.ini @@ -125,6 +125,9 @@ [header X-METHOD-OVERRIDE is forbidden to use value trace,] expected: FAIL + [Access-Control-Request-Private-Network is a forbidden request header] + expected: FAIL + [request-forbidden-headers.any.sharedworker.html] expected: ERROR @@ -256,6 +259,9 @@ [header X-METHOD-OVERRIDE is forbidden to use value trace,] expected: FAIL + [Access-Control-Request-Private-Network is a forbidden request header] + expected: FAIL + [request-forbidden-headers.any.serviceworker.html] expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/fetch/api/request/request-headers.any.js.ini b/tests/wpt/metadata-layout-2020/fetch/api/request/request-headers.any.js.ini index e0dc09a3cf1..2e9dbd2cf7e 100644 --- a/tests/wpt/metadata-layout-2020/fetch/api/request/request-headers.any.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/api/request/request-headers.any.js.ini @@ -2,11 +2,17 @@ [Adding invalid request header "Set-Cookie: KO"] expected: FAIL + [Adding invalid request header "Access-Control-Request-Private-Network: KO"] + expected: FAIL + [request-headers.any.worker.html] [Adding invalid request header "Set-Cookie: KO"] expected: FAIL + [Adding invalid request header "Access-Control-Request-Private-Network: KO"] + expected: FAIL + [request-headers.any.serviceworker.html] expected: ERROR diff --git a/tests/wpt/metadata-layout-2020/fetch/content-length/parsing.window.js.ini b/tests/wpt/metadata-layout-2020/fetch/content-length/parsing.window.js.ini index e8237fbb8f9..3285a4f15ac 100644 --- a/tests/wpt/metadata-layout-2020/fetch/content-length/parsing.window.js.ini +++ b/tests/wpt/metadata-layout-2020/fetch/content-length/parsing.window.js.ini @@ -76,6 +76,3 @@ [Input: "Content-Length: ". Expected: 42.] expected: FAIL - - [Input: "Content-Length: 42,42". Expected: 42.] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/metadata/generated/css-images.sub.tentative.html.ini b/tests/wpt/metadata-layout-2020/fetch/metadata/generated/css-images.sub.tentative.html.ini index 36a410bfecb..f9de5391ad6 100644 --- a/tests/wpt/metadata-layout-2020/fetch/metadata/generated/css-images.sub.tentative.html.ini +++ b/tests/wpt/metadata-layout-2020/fetch/metadata/generated/css-images.sub.tentative.html.ini @@ -146,6 +146,3 @@ [list-style-image sec-fetch-site - HTTPS downgrade-upgrade] expected: FAIL - - [border-image sec-fetch-site - HTTPS downgrade (header not sent)] - expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/orb/tentative/content-range.sub.any.js.ini b/tests/wpt/metadata-layout-2020/fetch/orb/tentative/content-range.sub.any.js.ini new file mode 100644 index 00000000000..c397469e41d --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fetch/orb/tentative/content-range.sub.any.js.ini @@ -0,0 +1,8 @@ +[content-range.sub.any.html] + [ORB should block opaque range of image/png not starting at zero, that isn't subsequent] + expected: FAIL + + +[content-range.sub.any.worker.html] + [ORB should block opaque range of image/png not starting at zero, that isn't subsequent] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/orb/tentative/known-mime-type.sub.any.js.ini b/tests/wpt/metadata-layout-2020/fetch/orb/tentative/known-mime-type.sub.any.js.ini new file mode 100644 index 00000000000..462b0e35384 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fetch/orb/tentative/known-mime-type.sub.any.js.ini @@ -0,0 +1,20 @@ +[known-mime-type.sub.any.html] + [ORB should block opaque font/ttf] + expected: FAIL + + [ORB should block opaque text/plain] + expected: FAIL + + [ORB should block opaque application/json] + expected: FAIL + + +[known-mime-type.sub.any.worker.html] + [ORB should block opaque font/ttf] + expected: FAIL + + [ORB should block opaque text/plain] + expected: FAIL + + [ORB should block opaque application/json] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/orb/tentative/nosniff.sub.any.js.ini b/tests/wpt/metadata-layout-2020/fetch/orb/tentative/nosniff.sub.any.js.ini new file mode 100644 index 00000000000..134f31556a2 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fetch/orb/tentative/nosniff.sub.any.js.ini @@ -0,0 +1,20 @@ +[nosniff.sub.any.html] + [ORB should block opaque text/plain with nosniff] + expected: FAIL + + [ORB should block opaque-response-blocklisted MIME type with nosniff] + expected: FAIL + + [ORB should block opaque response with empty Content-Type and nosniff] + expected: FAIL + + +[nosniff.sub.any.worker.html] + [ORB should block opaque text/plain with nosniff] + expected: FAIL + + [ORB should block opaque-response-blocklisted MIME type with nosniff] + expected: FAIL + + [ORB should block opaque response with empty Content-Type and nosniff] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fetch/orb/tentative/status.sub.any.js.ini b/tests/wpt/metadata-layout-2020/fetch/orb/tentative/status.sub.any.js.ini new file mode 100644 index 00000000000..55c1fca1894 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fetch/orb/tentative/status.sub.any.js.ini @@ -0,0 +1,14 @@ +[status.sub.any.html] + [ORB should block opaque-response-blocklisted MIME type with status 206] + expected: FAIL + + [ORB should block opaque response with non-ok status] + expected: FAIL + + +[status.sub.any.worker.html] + [ORB should block opaque-response-blocklisted MIME type with status 206] + expected: FAIL + + [ORB should block opaque response with non-ok status] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fullscreen/api/document-exit-fullscreen-active-document.html.ini b/tests/wpt/metadata-layout-2020/fullscreen/api/document-exit-fullscreen-active-document.html.ini new file mode 100644 index 00000000000..6af65a88a6e --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fullscreen/api/document-exit-fullscreen-active-document.html.ini @@ -0,0 +1,4 @@ +[document-exit-fullscreen-active-document.html] + expected: TIMEOUT + [\n Document#exitFullscreen() when the document is not the active document\n] + expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/fullscreen/api/document-fullscreen-enabled-active-document.html.ini b/tests/wpt/metadata-layout-2020/fullscreen/api/document-fullscreen-enabled-active-document.html.ini new file mode 100644 index 00000000000..d55ed655dd4 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fullscreen/api/document-fullscreen-enabled-active-document.html.ini @@ -0,0 +1,3 @@ +[document-fullscreen-enabled-active-document.html] + [\n Document#fullscreenEnabled when the document is not the active document\n] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen-timing.sub.html.ini b/tests/wpt/metadata-layout-2020/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen-timing.sub.html.ini new file mode 100644 index 00000000000..3367a03d6c6 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen-timing.sub.html.ini @@ -0,0 +1,3 @@ +[document-fullscreen-enabled-setting-allowfullscreen-timing.sub.html] + [Document#fullscreenEnabled setting allowfullscreen after document creation, before response] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fullscreen/api/document-onfullscreenerror.html.ini b/tests/wpt/metadata-layout-2020/fullscreen/api/document-onfullscreenerror.html.ini new file mode 100644 index 00000000000..c7d17b344fb --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fullscreen/api/document-onfullscreenerror.html.ini @@ -0,0 +1,3 @@ +[document-onfullscreenerror.html] + [Checks that the fullscreenerror event is fired when entering fullscreen fails] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fullscreen/api/element-request-fullscreen-active-document.html.ini b/tests/wpt/metadata-layout-2020/fullscreen/api/element-request-fullscreen-active-document.html.ini new file mode 100644 index 00000000000..2f0e41c2a04 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fullscreen/api/element-request-fullscreen-active-document.html.ini @@ -0,0 +1,4 @@ +[element-request-fullscreen-active-document.html] + expected: TIMEOUT + [\n Element#requestFullscreen() when the document is not the active document\n] + expected: TIMEOUT diff --git a/tests/wpt/metadata-layout-2020/fullscreen/api/element-request-fullscreen-not-allowed.html.ini b/tests/wpt/metadata-layout-2020/fullscreen/api/element-request-fullscreen-not-allowed.html.ini new file mode 100644 index 00000000000..9b1021cc08f --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fullscreen/api/element-request-fullscreen-not-allowed.html.ini @@ -0,0 +1,3 @@ +[element-request-fullscreen-not-allowed.html] + [requestFullscreen() when not allowed to request fullscreen] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/fullscreen/api/element-request-fullscreen-options.html.ini b/tests/wpt/metadata-layout-2020/fullscreen/api/element-request-fullscreen-options.html.ini new file mode 100644 index 00000000000..90855235cd8 --- /dev/null +++ b/tests/wpt/metadata-layout-2020/fullscreen/api/element-request-fullscreen-options.html.ini @@ -0,0 +1,3 @@ +[element-request-fullscreen-options.html] + [requestFullscreen() with invalid navigationUI values] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini index 5f9a07f92f0..dc1144214ef 100644 --- a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini +++ b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini @@ -4,3 +4,6 @@ [Navigating to a different document with form submission] expected: FAIL + + [Navigating to a different document with link click] + expected: FAIL diff --git a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini index 574b2fd8927..c2a30741798 100644 --- a/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini +++ b/tests/wpt/metadata-layout-2020/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-iframe-contentWindow.html.ini @@ -7,3 +7,6 @@ [load & pageshow events do not fire on contentWindow of + diff --git a/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-auto-in-iframe.html b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-auto-in-iframe.html new file mode 100644 index 00000000000..ba02cac6684 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-auto-in-iframe.html @@ -0,0 +1,28 @@ + + + +CSS Content Visibility: auto container in an iframe + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-auto-intrinsic-width.html b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-auto-intrinsic-width.html new file mode 100644 index 00000000000..bd90fff5143 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-auto-intrinsic-width.html @@ -0,0 +1,25 @@ + + + +Content Visibility: Elements with content-visibility: auto and intrinsic width should render correctly + + + + + + + +
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-005.html b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-005.html new file mode 100644 index 00000000000..5283aea1973 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-005.html @@ -0,0 +1,31 @@ + + + +CSS Content Visibility: dialog shows under c-v auto + + + + + + + + + +
+
+content +
PASS
+
+ + diff --git a/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-006.html b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-006.html new file mode 100644 index 00000000000..f533f3dfa59 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-006.html @@ -0,0 +1,39 @@ + + +CSS Content Visibility: offscreen c-v auto content is relevant when in top layer + + + + + + + + + + +
+
+
content
+
+
+ + diff --git a/tests/wpt/web-platform-tests/css/css-contain/crashtests/contain-nested-crash-003.html b/tests/wpt/web-platform-tests/css/css-contain/crashtests/contain-nested-crash-003.html new file mode 100644 index 00000000000..a7dbe7dcc31 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/crashtests/contain-nested-crash-003.html @@ -0,0 +1,18 @@ + + + +
+
+
+
+
+
+
+
+
+
+ diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-palette-vs-shorthand.html b/tests/wpt/web-platform-tests/css/css-fonts/font-palette-vs-shorthand.html index 6c5cc97da94..fa8308ef009 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-palette-vs-shorthand.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-palette-vs-shorthand.html @@ -4,7 +4,7 @@ CSS Fonts Module Level 4: interaction of font-palette and font shorthand - + -

The first and third examples should use the 'dark' palette; the second and fourth, 'normal'.

+

The first three examples should use the 'dark' palette; the fourth, 'normal'.

A
A
A
@@ -47,7 +47,10 @@ test(function() { let testElem = document.getElementById("a"); let computed = window.getComputedStyle(testElem); assert_equals(computed.fontPalette, "dark"); - assert_equals(computed.font, ""); + assert_not_equals(computed.font, ""); + /* The exact form of the font shorthand varies, but should include these pieces: */ + assert_not_equals(computed.font.indexOf("50px"), -1); + assert_not_equals(computed.font.indexOf("colr"), -1); assert_equals(computed.fontFamily, "colr"); assert_equals(computed.fontSize, "50px"); }); @@ -55,20 +58,22 @@ test(function() { test(function() { let testElem = document.getElementById("b"); let computed = window.getComputedStyle(testElem); - assert_equals(computed.fontPalette, "normal"); + assert_equals(computed.fontPalette, "dark"); assert_not_equals(computed.font, ""); - /* The exact form of the font shorthand varies, but should include these pieces: */ assert_not_equals(computed.font.indexOf("50px"), -1); assert_not_equals(computed.font.indexOf("colr"), -1); - /* And there should be no trace of this: */ - assert_equals(computed.font.indexOf("dark"), -1); + assert_equals(computed.fontFamily, "colr"); + assert_equals(computed.fontSize, "50px"); }); test(function() { let testElem = document.getElementById("c"); let computed = window.getComputedStyle(testElem); assert_equals(computed.fontPalette, "dark"); - assert_equals(computed.font, ""); + assert_not_equals(computed.font.indexOf("50px"), -1); + assert_not_equals(computed.font.indexOf("colr"), -1); + assert_equals(computed.fontFamily, "colr"); + assert_equals(computed.fontSize, "50px"); }); test(function() { @@ -77,6 +82,8 @@ test(function() { assert_equals(computed.fontPalette, "normal"); assert_not_equals(computed.font.indexOf("50px"), -1); assert_not_equals(computed.font.indexOf("colr"), -1); + assert_equals(computed.fontFamily, "colr"); + assert_equals(computed.fontSize, "50px"); }); diff --git a/tests/wpt/web-platform-tests/css/css-fonts/font-shorthand-serialization-prevention.html b/tests/wpt/web-platform-tests/css/css-fonts/font-shorthand-serialization-prevention.html index 223c2fa2cbe..f6a1ea9e610 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/font-shorthand-serialization-prevention.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/font-shorthand-serialization-prevention.html @@ -92,6 +92,5 @@ test_font_shorthand_serialization_after_setting_subproperty('font-feature-settin test_font_shorthand_serialization_after_setting_subproperty('font-language-override', 'normal', '"SRB"') test_font_shorthand_serialization_after_setting_subproperty('font-optical-sizing', 'auto', 'none') test_font_shorthand_serialization_after_setting_subproperty('font-variation-settings', 'normal', '"aaaa" 1') -test_font_shorthand_serialization_after_setting_subproperty('font-palette', 'normal', 'light') diff --git a/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-format.html b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-format.html index e38ebebcf66..36abbb44dc5 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-format.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-format.html @@ -46,12 +46,12 @@ { src: 'url("foo.ttf") format(embedded-opentype), url("bar.html")', valid: true }, { src: 'url("foo.ttf") format("svg"), url("bar.html")', valid: true }, { src: 'url("foo.ttf") format(svg), url("bar.html")', valid: true }, - // Hard parsing errors should make the line invalid. - { src: 'url("foo.ttf") format(xyzz 200px), url("bar.html")', valid: false }, - { src: 'url("foo.ttf") format(xyzz), url("bar.html")', valid: false }, - { src: 'url("foo.ttf") dummy(xyzzy), url("bar.html")', valid: false }, - { src: 'url("foo.ttf") format(), url("bar.html")', valid: false }, - { src: 'url("foo.ttf") format(none), url("bar.html")', valid: false }, + // A parsing error in one component does not make the entire descriptor invalid. + { src: 'url("foo.ttf") format(xyzz 200px), url("bar.html")', valid: true }, + { src: 'url("foo.ttf") format(xyzz), url("bar.html")', valid: true }, + { src: 'url("foo.ttf") dummy(xyzzy), url("bar.html")', valid: true }, + { src: 'url("foo.ttf") format(), url("bar.html")', valid: true }, + { src: 'url("foo.ttf") format(none), url("bar.html")', valid: true }, ]; for (let t of tests) { diff --git a/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-list.html b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-list.html new file mode 100644 index 00000000000..c87705109fd --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-list.html @@ -0,0 +1,43 @@ + +CSS Fonts 4 test: parsing the src descriptor list + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-tech.html b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-tech.html index 240bb2d2eaf..fb7d92f8e4c 100644 --- a/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-tech.html +++ b/tests/wpt/web-platform-tests/css/css-fonts/parsing/font-face-src-tech.html @@ -53,9 +53,10 @@ { src: 'url("foo.ttf") dummy("opentype") tech(variations)', valid: false }, { src: 'url("foo.ttf") dummy("opentype") dummy(variations)', valid: false }, { src: 'url("foo.ttf") format(opentype) tech(features-opentype) dummy(something)', valid: false }, - // Valid value after unparseable value must be ignored. - { src: 'url("foo.ttf") format(dummy), url("foo.ttf") tech(variations)', valid: false }, - { src: 'url("foo.ttf") tech(color, url("bar.html")', valid: false }, + // A parsing error in one component does not make the entire descriptor invalid. + { src: 'url("foo.ttf") format(dummy), url("foo.ttf") tech(variations)', valid: true }, + // check_same_tech isn't currently smart enough to handle this. + { src: 'url("foo.ttf") tech(color), url("bar.html")', dontcomparetech: true, valid: true }, ]; // Assert that the two arguments have the same set of keywords in the tech() function, @@ -69,7 +70,9 @@ const tech = /tech\((.+)\)/; var specified_techs = tech.exec(specified)[1].split(/,\s*/).sort().join(", "); var serialized_techs = tech.exec(serialized)[1].split(/,\s*/).sort().join(", "); - assert_equals(serialized_techs, specified_techs, "expected matching tech() lists"); + // Per CSSOM spec, keywords are serialized in ASCII-lowercase form: + // https://drafts.csswg.org/cssom/#serialize-a-css-component-value + assert_equals(serialized_techs, specified_techs.toLowerCase(), "expected matching tech() lists"); } for (let t of tests) { diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-002.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-003-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-003-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-003-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-003-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-003.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-003.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-003.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-003.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-004-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-004-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-004-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-004-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-004.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-004.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-content-004.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-content/masonry-align-content-004.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-multi-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-multi-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-multi-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-multi-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-multi-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-multi-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-multi-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-multi-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-stretch-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-stretch-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-stretch-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-stretch-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-stretch-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-stretch-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-stretch-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-align-tracks-stretch-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/align-tracks/masonry-align-tracks-stretch-002.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-content-baseline-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-content-baseline-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-content-baseline-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-content-baseline-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-content-baseline-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-content-baseline-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-content-baseline-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-content-baseline-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002a-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-002a-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002a-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-002a-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002a.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-002a.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002a.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-002a.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002b-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-002b-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002b-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-002b-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002b.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-002b.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-item-self-baseline-002b.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/baseline/masonry-grid-item-self-baseline-002b.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-002.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-003-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-003-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-003-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-003-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-003.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-003.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-003.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-003.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-004-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-004-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-004-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-004-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-004.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-004.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-004.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-004.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-005-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-005-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-005-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-005-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-005.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-005.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-005.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-005.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-006-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-006-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-006-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-006-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-006.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-006.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-fragmentation-006.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/fragmentation/masonry-fragmentation-006.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-gap-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/gap/masonry-gap-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-gap-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/gap/masonry-gap-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-gap-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/gap/masonry-gap-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-gap-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/gap/masonry-gap-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/grid-placement/masonry-grid-placement-named-lines-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/grid-placement/masonry-grid-placement-named-lines-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/grid-placement/masonry-grid-placement-named-lines-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/grid-placement/masonry-grid-placement-named-lines-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/grid-placement/masonry-grid-placement-named-lines-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/grid-placement/masonry-grid-placement-named-lines-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/grid-placement/masonry-grid-placement-named-lines-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-placement-named-lines-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/grid-placement/masonry-grid-placement-named-lines-002.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-002.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-003-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-003-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-003-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-003-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-003.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-003.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-003.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-003.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-004-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-004-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-004-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-004-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-004.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-004.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-004.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-004.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-005-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-005-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-005-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-005-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-005.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-005.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-005.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-005.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-006-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-006-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-006-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-006-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-006.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-006.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-intrinsic-sizing-006.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/intrinsic-sizing/masonry-intrinsic-sizing-006.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-columns-item-placement-auto-flow-next-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-columns-item-placement-auto-flow-next-001-ref.html new file mode 100644 index 00000000000..b6373f8d2dc --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-columns-item-placement-auto-flow-next-001-ref.html @@ -0,0 +1,47 @@ + + + + + CSS Grid masonry columns masonry-auto-flow next + + + + + + + + + 1 + 2 + 3 + 4 + + + + diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-columns-item-placement-auto-flow-next-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-columns-item-placement-auto-flow-next-001.html new file mode 100644 index 00000000000..eacc943bf77 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-columns-item-placement-auto-flow-next-001.html @@ -0,0 +1,48 @@ + + + + + CSS Grid masonry columns masonry-auto-flow next + + + + + + + + + + 1 + 2 + 3 + 4 + + + + diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-002.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-003-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-003-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-003-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-003-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-003.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-003.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-003.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-003.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-004-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-004-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-004-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-004-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-004.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-004.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-004.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-004.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-005-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-005-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-005-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-005-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-005.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-005.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-005.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-005.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-006-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-006-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-006-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-006-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-006.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-006.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-006.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-006.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-007-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-007-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-007-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-007-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-007.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-007.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-item-placement-007.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-item-placement-007.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-rows-item-placement-auto-flow-next-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-rows-item-placement-auto-flow-next-001-ref.html new file mode 100644 index 00000000000..cbb3e825a4b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-rows-item-placement-auto-flow-next-001-ref.html @@ -0,0 +1,46 @@ + + + + + CSS Grid masonry rows masonry-auto-flow next + + + + + + + + + 1 + 2 + 3 + 4 + + + + diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-rows-item-placement-auto-flow-next-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-rows-item-placement-auto-flow-next-001.html new file mode 100644 index 00000000000..c425490d2d8 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/item-placement/masonry-rows-item-placement-auto-flow-next-001.html @@ -0,0 +1,48 @@ + + + + + CSS Grid masonry rows masonry-auto-flow next + + + + + + + + + + 1 + 2 + 3 + 4 + + + + diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-002.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-003-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-003-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-003-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-003-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-003.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-003.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-003.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-003.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-004-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-004-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-004-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-004-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-004.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-004.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-content-004.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-content/masonry-justify-content-004.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-multi-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-multi-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-multi-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-multi-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-multi-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-multi-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-multi-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-multi-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-stretch-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-stretch-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-stretch-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-stretch-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-stretch-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-stretch-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-stretch-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-justify-tracks-stretch-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/justify-tracks/masonry-justify-tracks-stretch-002.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-template-columns-computed-withcontent.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-template-columns-computed-withcontent.html index f2a47d9809a..b36efb664da 100644 --- a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-template-columns-computed-withcontent.html +++ b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-grid-template-columns-computed-withcontent.html @@ -77,7 +77,7 @@ test_computed_value("grid-template-columns", '[] 150px [] 1fr []', '150px 150px' // = repeat( [ auto-fill | auto-fit ] , [ ? ]+ ? ) test_computed_value("grid-template-columns", 'repeat(auto-fill, 200px)', '200px'); test_computed_value("grid-template-columns", 'repeat(auto-fit, [one] 20%)', - '[one] 60px [one] 0px [one] 0px [one] 0px [one] 0px'); + '[one] 60px [one] 60px [one] 60px [one] 60px [one] 60px'); test_computed_value("grid-template-columns", 'repeat(auto-fill, minmax(100px, 5fr) [two])', '100px [two] 100px [two] 100px [two]'); test_computed_value("grid-template-columns", 'repeat(auto-fit, [three] minmax(max-content, 6em) [four])', diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-order-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/order/masonry-order-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-order-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/order/masonry-order-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-order-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/order/masonry-order-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-order-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/order/masonry-order-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-order-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/order/masonry-order-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-order-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/order/masonry-order-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-order-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/order/masonry-order-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-order-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/order/masonry-order-002.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-parsing.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/parsing/masonry-parsing.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-parsing.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/parsing/masonry-parsing.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-001-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/subgrid/masonry-subgrid-001-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-001-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/subgrid/masonry-subgrid-001-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-001.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/subgrid/masonry-subgrid-001.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-001.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/subgrid/masonry-subgrid-001.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-002-ref.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/subgrid/masonry-subgrid-002-ref.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-002-ref.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/subgrid/masonry-subgrid-002-ref.html diff --git a/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-002.html b/tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/subgrid/masonry-subgrid-002.html similarity index 100% rename from tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/masonry-subgrid-002.html rename to tests/wpt/web-platform-tests/css/css-grid/masonry/tentative/subgrid/masonry-subgrid-002.html diff --git a/tests/wpt/web-platform-tests/css/css-images/tiled-gradients.html b/tests/wpt/web-platform-tests/css/css-images/tiled-gradients.html index f6f5f5bd53e..fdafa1fe99f 100644 --- a/tests/wpt/web-platform-tests/css/css-images/tiled-gradients.html +++ b/tests/wpt/web-platform-tests/css/css-images/tiled-gradients.html @@ -5,6 +5,7 @@ Eight Red Triangles on White Ground (with gradients) + @@ -37,7 +36,7 @@
BC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
-
BC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
+
BC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
BC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/Initial-letter-breaking-rtl-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/Initial-letter-breaking-rtl-ref.html index c9ff86ee90f..986e2945ae9 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/Initial-letter-breaking-rtl-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/Initial-letter-breaking-rtl-ref.html @@ -3,12 +3,11 @@ Tests interaction with fragmentation in RTL. - + @@ -43,7 +42,7 @@
BC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
-
BC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
+
BC ABC ABC ABC ABC ABC ABC ABC
ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
BC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC ABC
diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/Initial-letter-breaking-rtl.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/Initial-letter-breaking-rtl.html index 3f8327fda90..14222f4ca94 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/Initial-letter-breaking-rtl.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/Initial-letter-breaking-rtl.html @@ -3,13 +3,12 @@ Tests interaction with fragmentation in RTL. - + diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-over-ruby-tall-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-over-ruby-tall-ref.html index 3ce5ba91584..c170adcae30 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-over-ruby-tall-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-over-ruby-tall-ref.html @@ -21,7 +21,7 @@ background: lime; float: left; height: 80px; - margin-top: 92px; + margin-top: 80px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-under-ruby-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-under-ruby-ref.html index f490dc55603..db3c809965a 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-under-ruby-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-under-ruby-ref.html @@ -19,7 +19,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-under-ruby-tall-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-under-ruby-tall-ref.html index 07b6c98335c..c56ef2efb7e 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-under-ruby-tall-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-drop-under-ruby-tall-ref.html @@ -21,7 +21,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-margins-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-margins-ref.html index ffcc8bf284c..a2c48782707 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-margins-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-margins-ref.html @@ -22,7 +22,7 @@ margin-bottom: 30px; margin-left: 15px; margin-right: 45px; - margin-top: 24px; + margin-top: 12px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-margins-rtl-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-margins-rtl-ref.html index 6feb72dc7da..00dd32be9a7 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-margins-rtl-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-margins-rtl-ref.html @@ -23,7 +23,7 @@ margin-bottom: 30px; margin-left: 15px; margin-right: 45px; - margin-top: 24px; + margin-top: 12px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-over-ruby-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-over-ruby-ref.html index c5222c99be0..43222b43dac 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-over-ruby-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-over-ruby-ref.html @@ -19,7 +19,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-over-ruby-tall-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-over-ruby-tall-ref.html index 74f29445feb..f1086074c2a 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-over-ruby-tall-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-over-ruby-tall-ref.html @@ -21,7 +21,7 @@ background: lime; float: left; height: 80px; - margin-top: 20px; + margin-top: 8px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-ref.html index da28721a217..9adde375569 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-ref.html @@ -19,7 +19,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-tall-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-tall-ref.html index c88f02bbbab..7e334e55dbf 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-tall-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-block-position-raise-under-ruby-tall-ref.html @@ -21,7 +21,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-drop-initial-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-drop-initial-ref.html index 40208550d13..aa261595714 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-drop-initial-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-drop-initial-ref.html @@ -19,7 +19,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-drop-initial-rtl-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-drop-initial-rtl-ref.html index 0b99ceffcc3..1b55ae05e6b 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-drop-initial-rtl-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-drop-initial-rtl-ref.html @@ -20,7 +20,7 @@ background: lime; float: right; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-001-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-001-ref.html index ebb90a64dd4..a269513a000 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-001-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-001-ref.html @@ -27,7 +27,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-001-rtl-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-001-rtl-ref.html index 62df03f30d6..22b93e1a3f1 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-001-rtl-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-001-rtl-ref.html @@ -28,7 +28,7 @@ background: lime; float: right; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-002-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-002-ref.html index df71adc04a5..f451a265be9 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-002-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-002-ref.html @@ -27,7 +27,7 @@ background: lime; display: inline-block; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } @@ -40,8 +40,7 @@ .surrounding2 { display: block; margin-left: 50px; - margin-top: -4px; - vertical-align: top; + margin-top: 0px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-003-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-003-ref.html similarity index 97% rename from tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-003-ref.html rename to tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-003-ref.html index 86770a93989..54c30de947b 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-003-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-003-ref.html @@ -28,7 +28,7 @@ float: left; height: 80px; margin-right: 10px; - margin-top: -36px; + margin-top: -48px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-003.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-003.html similarity index 94% rename from tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-003.html rename to tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-003.html index c16645fc0c3..985227533ae 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-003.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-003.html @@ -6,7 +6,7 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-004.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-004.html similarity index 94% rename from tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-004.html rename to tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-004.html index 32beedf5f8e..07dd52cc9c0 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-004.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-004.html @@ -6,7 +6,7 @@ - +
-bc def

+bc def

ghi
jkl
mno
diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-005.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-005.html similarity index 94% rename from tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-005.html rename to tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-005.html index 0ad557bff09..6cdd851e4dc 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-floats-005.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-float-005.html @@ -6,7 +6,7 @@ - + diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-indentation-rtl-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-indentation-rtl-ref.html index 8c72718ab92..3a7c17145a8 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-indentation-rtl-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-indentation-rtl-ref.html @@ -21,7 +21,7 @@ float: right; height: 80px; margin-right: 20px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline-ref.html new file mode 100644 index 00000000000..4559c4db02b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline-ref.html @@ -0,0 +1,45 @@ + + + +Tests initial letter with text-decoration + + + + + + + +
+
+bc
def
ghi
jkl
mno
+
+ + diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline.html new file mode 100644 index 00000000000..af70ecd1bd6 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-layout-text-decoration-underline.html @@ -0,0 +1,40 @@ + + + +Tests initial letter with text-decoration + + + + + + + + +
+Abc
def
ghi
jkl
mno
+
+ + diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raise-initial-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raise-initial-ref.html index 983e5802bc5..f59625a4a9d 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raise-initial-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raise-initial-ref.html @@ -19,7 +19,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raise-initial-rtl-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raise-initial-rtl-ref.html index fbf155df783..9dce9e6e14c 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raise-initial-rtl-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raise-initial-rtl-ref.html @@ -20,7 +20,7 @@ background: lime; float: right; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-raise-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-raise-ref.html index 3585854384c..7285ed8a822 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-raise-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-raise-ref.html @@ -19,7 +19,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-sunken-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-sunken-ref.html index a70288d80e6..a68a760ac62 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-sunken-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-raised-sunken-caps-sunken-ref.html @@ -19,7 +19,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-clears-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-clears-ref.html index 8f96d661e05..07b93dd0eee 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-clears-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-clears-ref.html @@ -19,13 +19,14 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; + clear: left; }
bc
Def
-
XY
ABC
+
XY
ABC
diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-wraps-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-wraps-ref.html index 2808ba5fe64..efdfc61a679 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-wraps-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-short-para-initial-letter-wraps-ref.html @@ -19,7 +19,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-sunk-initial-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-sunk-initial-ref.html index 06b9ad9b975..9b036a2be38 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-sunk-initial-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-sunk-initial-ref.html @@ -19,7 +19,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-sunk-initial-rtl-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-sunk-initial-rtl-ref.html index e686e982690..3318c7e8bdd 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-sunk-initial-rtl-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-sunk-initial-rtl-ref.html @@ -20,7 +20,7 @@ background: lime; float: right; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-first-line-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-first-line-ref.html index f3e01e14c4f..5b54045363d 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-first-line-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-first-line-ref.html @@ -20,7 +20,7 @@ background: cyan; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-tab-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-tab-ref.html index 43cba30d512..332dc003772 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-tab-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-tab-ref.html @@ -17,7 +17,7 @@ background: lime; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } @@ -25,7 +25,7 @@ background: yellow; float: left; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 640px; } diff --git a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-tab-rtl-ref.html b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-tab-rtl-ref.html index 13f633a2598..0b9a074af70 100644 --- a/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-tab-rtl-ref.html +++ b/tests/wpt/web-platform-tests/css/css-inline/initial-letter/initial-letter-with-tab-rtl-ref.html @@ -18,7 +18,7 @@ background: lime; float: right; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 80px; } @@ -26,7 +26,7 @@ background: yellow; float: right; height: 80px; - margin-top: 14px; + margin-top: 2px; width: 640px; } diff --git a/tests/wpt/web-platform-tests/css/css-masking/mask-svg-content/mask-with-rotation.svg b/tests/wpt/web-platform-tests/css/css-masking/mask-svg-content/mask-with-rotation.svg new file mode 100644 index 00000000000..9964fd524a1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-masking/mask-svg-content/mask-with-rotation.svg @@ -0,0 +1,16 @@ + + + CSS Masking: mask with rotation transform + + + + svg + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/balancing-flex-item-trailing-margin-freeze.html b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/balancing-flex-item-trailing-margin-freeze.html new file mode 100644 index 00000000000..3cbf2f853e2 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/balancing-flex-item-trailing-margin-freeze.html @@ -0,0 +1,13 @@ + + + + +
+
PASS if no freeze.
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/balancing-tall-borders-freeze.html b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/balancing-tall-borders-freeze.html new file mode 100644 index 00000000000..2672690669e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/balancing-tall-borders-freeze.html @@ -0,0 +1,8 @@ + + + +
+
PASS if no freeze.
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/float-becomes-non-float-spanner-surprises-inside.html b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/float-becomes-non-float-spanner-surprises-inside.html index 073c85e10c6..39fccf4522c 100644 --- a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/float-becomes-non-float-spanner-surprises-inside.html +++ b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/float-becomes-non-float-spanner-surprises-inside.html @@ -10,4 +10,5 @@ diff --git a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/move-linebreak-to-different-column.html b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/move-linebreak-to-different-column.html index aff5ddce0cd..abe83ca1948 100644 --- a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/move-linebreak-to-different-column.html +++ b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/move-linebreak-to-different-column.html @@ -1,16 +1,19 @@ - - -
-
-





+ + + +
+
+





+
-
- + + diff --git a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/move-newline-pre-text.html b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/move-newline-pre-text.html index 86892a1d39c..13833ae946e 100644 --- a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/move-newline-pre-text.html +++ b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/move-newline-pre-text.html @@ -1,20 +1,23 @@ - - -
+ + + +


- + + diff --git a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/multicol-column-change-crash.html b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/multicol-column-change-crash.html new file mode 100644 index 00000000000..6f0a05be296 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/multicol-column-change-crash.html @@ -0,0 +1,19 @@ + + +
+
+
+
+ + diff --git a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/oof-in-additional-column-before-spanner.html b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/oof-in-additional-column-before-spanner.html index e59df7039a2..afdeabe174e 100644 --- a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/oof-in-additional-column-before-spanner.html +++ b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/oof-in-additional-column-before-spanner.html @@ -1,19 +1,22 @@ - - -
-
-
-
+ + + +
+
+
+
+
+ +
+
- -
-
-
- + + diff --git a/tests/wpt/web-platform-tests/css/css-multicol/crashtests/restricted-height-bottom-border-overflow-and-spanner.html b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/restricted-height-bottom-border-overflow-and-spanner.html new file mode 100644 index 00000000000..43c356509c7 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-multicol/crashtests/restricted-height-bottom-border-overflow-and-spanner.html @@ -0,0 +1,11 @@ + + + +
+
+
+
+
+
+
+
diff --git a/tests/wpt/web-platform-tests/css/css-multicol/multicol-fill-balance-024.html b/tests/wpt/web-platform-tests/css/css-multicol/multicol-fill-balance-024.html index c31f0770678..900dca8636a 100644 --- a/tests/wpt/web-platform-tests/css/css-multicol/multicol-fill-balance-024.html +++ b/tests/wpt/web-platform-tests/css/css-multicol/multicol-fill-balance-024.html @@ -1,28 +1,31 @@ - - - - - -

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

-
-
-
-
-
- - - - -
- + + diff --git a/tests/wpt/web-platform-tests/css/css-multicol/resize-multicol-with-fixed-size-children.html b/tests/wpt/web-platform-tests/css/css-multicol/resize-multicol-with-fixed-size-children.html index 47c041b994e..a3963d06a3d 100644 --- a/tests/wpt/web-platform-tests/css/css-multicol/resize-multicol-with-fixed-size-children.html +++ b/tests/wpt/web-platform-tests/css/css-multicol/resize-multicol-with-fixed-size-children.html @@ -1,26 +1,29 @@ - - - - -

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

-
-
-
-
-
-
+ + + + + +

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

+
+
+
+
+
+
- + + diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/highlight-styling-003-ref.html b/tests/wpt/web-platform-tests/css/css-pseudo/highlight-styling-003-ref.html new file mode 100644 index 00000000000..d6db9cfdd2b --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/highlight-styling-003-ref.html @@ -0,0 +1,16 @@ + + + + + +

Test passes if the text below is yellow with a green outline. +

quick
diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/highlight-styling-003.tentative.html b/tests/wpt/web-platform-tests/css/css-pseudo/highlight-styling-003.tentative.html new file mode 100644 index 00000000000..70d3dc63e52 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/highlight-styling-003.tentative.html @@ -0,0 +1,25 @@ + + +CSS Pseudo-Elements Test: highlight styling: compat stroke/fill properties + + + + + + + + +

Test passes if the text below is yellow with a green outline. +

quick
+ diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/marker-variable-computed-style.html b/tests/wpt/web-platform-tests/css/css-pseudo/marker-variable-computed-style.html new file mode 100644 index 00000000000..c50ee33ae91 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/marker-variable-computed-style.html @@ -0,0 +1,44 @@ + + + + + + + + + + + ::marker with variables + + + + +
    +
  • Item 1
  • +
  • Item 2
  • +
+ + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/marker-variable-ref.html b/tests/wpt/web-platform-tests/css/css-pseudo/marker-variable-ref.html new file mode 100644 index 00000000000..d966437560d --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/marker-variable-ref.html @@ -0,0 +1,31 @@ + + + + + + + + ::marker with variables + + + +
    +
  • Item 1
  • +
  • Item 2
  • +
+ + diff --git a/tests/wpt/web-platform-tests/css/css-pseudo/marker-variable.html b/tests/wpt/web-platform-tests/css/css-pseudo/marker-variable.html new file mode 100644 index 00000000000..3d0a7c8596e --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-pseudo/marker-variable.html @@ -0,0 +1,30 @@ + + + + + + + + + ::marker with variables + + + + +
    +
  • Item 1
  • +
  • Item 2
  • +
+ + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-039.html b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-039.html new file mode 100644 index 00000000000..91cce9e1208 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-039.html @@ -0,0 +1,11 @@ + +Replaced element honors transferred max-height + + + + + + +

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

+ + diff --git a/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-040.html b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-040.html new file mode 100644 index 00000000000..7a2df908ca0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/aspect-ratio/replaced-element-040.html @@ -0,0 +1,11 @@ + +Replaced element honors transferred max-width + + + + + + +

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

+ + diff --git a/tests/wpt/web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-006.html b/tests/wpt/web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-006.html index 7276e2ed5d7..422b730c2e8 100644 --- a/tests/wpt/web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-006.html +++ b/tests/wpt/web-platform-tests/css/css-sizing/contain-intrinsic-size/auto-006.html @@ -76,6 +76,7 @@ function cleanup() { parent.className = ""; target.className = ""; contents.className = ""; + checkSize(0, 0, "Sizing after cleanup"); } promise_test(async function() { diff --git a/tests/wpt/web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-033.html b/tests/wpt/web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-033.html new file mode 100644 index 00000000000..68192a83790 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-sizing/contain-intrinsic-size/contain-intrinsic-size-033.html @@ -0,0 +1,110 @@ + + +CIS + content-visibility:hidden and contain:size + + + + + + + +
+ +
+ +
+
+
+
+
+
+ + + + + + + + + +
+ + + + + diff --git a/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-line-spelling-error-001-crash.html b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-line-spelling-error-001-crash.html new file mode 100644 index 00000000000..100f5f83a96 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-text-decor/text-decoration-line-spelling-error-001-crash.html @@ -0,0 +1,6 @@ + +CSS Text Decoration Test: spelling error with very small zoom + + + +quikc diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/canvas-webgl-translate-in-animation-ref.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/canvas-webgl-translate-in-animation-ref.html new file mode 100644 index 00000000000..6610c6f68bb --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/canvas-webgl-translate-in-animation-ref.html @@ -0,0 +1,27 @@ + + +CSS Test: translate webgl canvas in an animation via set current time (ref). + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-transforms/animation/canvas-webgl-translate-in-animation.html b/tests/wpt/web-platform-tests/css/css-transforms/animation/canvas-webgl-translate-in-animation.html new file mode 100644 index 00000000000..e1138a87e44 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-transforms/animation/canvas-webgl-translate-in-animation.html @@ -0,0 +1,41 @@ + + +CSS Test: translate webgl canvas in an animation via set current time. + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js b/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js index c22a963a938..4c9ed78c78c 100644 --- a/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js +++ b/tests/wpt/web-platform-tests/css/css-typed-om/resources/testhelper.js @@ -31,6 +31,9 @@ function assert_color_channel_approx_equals(a, b) { assert_approx_equals(a[i].value, b[i].value, epsilonForUnitType(a.unit)); } break; + case 'CSSKeywordValue': + assert_equals(a.value, b.value); + break; default: assert_equals(a.unit, b.unit); assert_approx_equals(a.value, b.value, epsilonForUnitType(a.unit)); diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHSL.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHSL.html index 732d06e164b..b38d7403834 100644 --- a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHSL.html +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHSL.html @@ -8,35 +8,38 @@ \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHWB.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHWB.html index 192db5181c7..8fce6133fb8 100644 --- a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHWB.html +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssHWB.html @@ -14,12 +14,15 @@ const gValidHueInputs = [ {hue: CSS.grad(81), desc: 'gradians'}, ]; -const gInvalidHueInputs = [ +const gInvalidHueInputsNotNumericValue = [ {hue: 180, desc: "a number"}, - {hue: CSS.px(1), desc: "css pixels"}, {hue: undefined, desc: "undefined"}, ] +const gInvalidHueInputsNumericValue = [ + {hue: CSS.px(1), desc: "css pixels"}, +] + for (const {hue, desc} of gValidHueInputs) { test(() => { const result = new CSSHWB(hue, 0.5, 0.5); @@ -33,10 +36,16 @@ for (const {hue, desc} of gValidHueInputs) { }, `CSSHWB.h can be updated with a ${desc}.`); } -for (const {hue, desc} of gInvalidHueInputs) { +for (const {hue, desc} of gInvalidHueInputsNotNumericValue) { test(() => { assert_throws_js(TypeError, () => new CSSHWB(hue, 0, 0)); - }, `Constructing a CSSHWB with ${desc} for hue throws a type error.`); + }, `Constructing a CSSHWB with ${desc} for hue throws a TypeError.`); +} + +for (const {hue, desc} of gInvalidHueInputsNumericValue) { + test(() => { + assert_throws_dom("SyntaxError", () => new CSSHWB(hue, 0, 0)); + }, `Constructing a CSSHWB with ${desc} for hue throws a SyntaxError.`); } test(() => { @@ -56,16 +65,16 @@ test(() => { }, 'CSSHWB can be constructed from four numbers.'); test(() => { - assert_throws_js(TypeError, () => new CSSHWB(CSS.deg(0), CSS.number(1), 0, 0)); - assert_throws_js(TypeError, () => new CSSHWB(CSS.deg(0), 0, CSS.number(1), 0)); - assert_throws_js(TypeError, () => new CSSHWB(CSS.deg(0), 0, 0, CSS.number(1))); -}, `Constructing a CSSHWB with CSS.number for s, l or alpha throws a TypeError`); + assert_throws_dom("SyntaxError", () => new CSSHWB(CSS.deg(0), CSS.number(1), 0, 0)); + assert_throws_dom("SyntaxError", () => new CSSHWB(CSS.deg(0), 0, CSS.number(1), 0)); + assert_throws_dom("SyntaxError", () => new CSSHWB(CSS.deg(0), 0, 0, CSS.number(1))); +}, `Constructing a CSSHWB with CSS.number for s, l or alpha throws a SyntaxError`); for (const attr of ['w', 'b', 'alpha']) { test(() => { const result = new CSSHWB(CSS.deg(0), 0, 0); - assert_throws_js(TypeError, () => result[attr] = CSS.number(1)); - }, `Updating a CSSHWB with CSS.number for ${attr} throws a TypeError`); + assert_throws_dom("SyntaxError", () => result[attr] = CSS.number(1)); + }, `Updating a CSSHWB with CSS.number for ${attr} throws a SyntaxError`); test(() => { const result = new CSSHWB(CSS.deg(0), 0, 0); @@ -79,4 +88,4 @@ for (const attr of ['w', 'b', 'alpha']) { assert_color_channel_approx_equals(result[attr], CSS.percent(50)); }, 'CSSHWB.' + attr + ' can be updated with a CSS percent.'); } - \ No newline at end of file + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssLCH.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssLCH.html new file mode 100644 index 00000000000..ffd288f0f7a --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssLCH.html @@ -0,0 +1,81 @@ + + +CSSLCH tests + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssLab.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssLab.html new file mode 100644 index 00000000000..2c396b538e4 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssLab.html @@ -0,0 +1,79 @@ + + +CSSLab tests + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssOKLCH.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssOKLCH.html new file mode 100644 index 00000000000..dc3f34feddd --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssOKLCH.html @@ -0,0 +1,81 @@ + + +CSSOKLCH tests + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssOKLab.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssOKLab.html new file mode 100644 index 00000000000..b597845a546 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssOKLab.html @@ -0,0 +1,79 @@ + + +CSSOKLab tests + + + + + diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative.html b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative.html index 8236b326a8c..f8a3412488c 100644 --- a/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative.html +++ b/tests/wpt/web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/parse.tentative.html @@ -46,4 +46,13 @@ test(() => { assert_style_value_equals(expected, CSSNumericValue.parse('clamp(10px, 10%, 20px)')); }, 'Parsing clamp() is successful'); +test(() => { + const expected = new CSSMathSum(...[1, 2, 3].map(x => new CSSMathMin(CSS.number(x)))); + assert_style_value_equals(expected, CSSNumericValue.parse('min(1) + min(2) + min(3)')); +}, 'Parsing sum of multiple min() is successful'); + +test(() => { + const expected = new CSSMathProduct(...[1, 2, 3].map(x => new CSSMathMin(CSS.number(x)))); + assert_style_value_equals(expected, CSSNumericValue.parse('min(1) * min(2) * min(3)')); +}, 'Parsing product of multiple min() is successful'); diff --git a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/line-height-step.html b/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/line-height-step.html deleted file mode 100644 index 2a25562f0f5..00000000000 --- a/tests/wpt/web-platform-tests/css/css-typed-om/the-stylepropertymap/properties/line-height-step.html +++ /dev/null @@ -1,23 +0,0 @@ - - -'line-height-step' property - - - - - - - - -
- diff --git a/tests/wpt/web-platform-tests/css/css-values/acos-asin-atan-atan2-invalid.html b/tests/wpt/web-platform-tests/css/css-values/acos-asin-atan-atan2-invalid.html index a6d5d0a5251..2f94c49ac8c 100644 --- a/tests/wpt/web-platform-tests/css/css-values/acos-asin-atan-atan2-invalid.html +++ b/tests/wpt/web-platform-tests/css/css-values/acos-asin-atan-atan2-invalid.html @@ -67,10 +67,6 @@ test_invalid_angle('atan2(1deg / )'); test_invalid_angle('atan2(1deg 2deg)'); test_invalid_angle('atan2(1deg, , 2deg)'); test_invalid_angle('atan2(90px)'); - -// atan2() has to resolve to the same dimension. -test_invalid_angle('atan2(90px, 90vw)'); -test_invalid_angle('atan2(90px, 90em)'); test_invalid_angle('atan2(90px, 100%)'); test_invalid_angle('atan2(30deg + 1.0471967rad, 0)'); diff --git a/tests/wpt/web-platform-tests/css/css-values/acos-asin-atan-atan2-serialize.html b/tests/wpt/web-platform-tests/css/css-values/acos-asin-atan-atan2-serialize.html index 27c0a4fb856..c867f34d475 100644 --- a/tests/wpt/web-platform-tests/css/css-values/acos-asin-atan-atan2-serialize.html +++ b/tests/wpt/web-platform-tests/css/css-values/acos-asin-atan-atan2-serialize.html @@ -46,6 +46,15 @@ var test_map = { "atan(infinity)" :"calc(90deg)", "atan(tan(90deg))" :"calc(90deg)", "atan(tan(-90deg))" :"calc(-90deg)", + "atan2(37.320508075, 10)" :"calc(75deg)", + "atan2(1s, 1000ms)" :"calc(45deg)", + "atan2(infinity, infinity)" :"calc(45deg)", + "atan2(-infinity, -infinity)" :"calc(-135deg)", + "atan2(infinity, 10)" :"calc(90deg)", + "atan2(10, infinity)" :"calc(0deg)", + "atan2(NaN, 10)" :"calc(NaN * 1deg)", + "atan2(10, NaN)" :"calc(NaN * 1deg)", + "atan2(NaN, NaN)" :"calc(NaN * 1deg)", }; for (var exp in test_map) { diff --git a/tests/wpt/web-platform-tests/css/css-values/round-mod-rem-computed.html b/tests/wpt/web-platform-tests/css/css-values/round-mod-rem-computed.html index 581b838744f..3e76014cf80 100644 --- a/tests/wpt/web-platform-tests/css/css-values/round-mod-rem-computed.html +++ b/tests/wpt/web-platform-tests/css/css-values/round-mod-rem-computed.html @@ -44,7 +44,7 @@ test_math_used('calc(mod(18,5) * 2 + mod(17,5))', '8', {type:'number'}); test_math_used('calc(rem(mod(18,5),5))', '3', {type:'number'}); test_math_used('calc(rem(mod(18,5),mod(17,5)))', '1', {type:'number'}); test_math_used('calc(mod(-140,-90))', '-50', {type:'number'}); -test_math_used('calc(mod(rem(1,18)* -1,5))', '-1', {type:'number'}); +test_math_used('calc(mod(rem(1,18)* -1,5))', '4', {type:'number'}); // Type check test_math_used('round(10px,6px)', '12px'); @@ -118,4 +118,29 @@ test_math_used('round(2rem,5px)', '30px'); test_math_used('round(100px,1rem)', '96px'); test_math_used('round(10s,6000ms)', '12s', {type:'time'}); test_math_used('round(10000ms,6s)', '12s', {type:'time'}); - \ No newline at end of file + +test_math_used('mod(10%,1px)', '0.5px'); +test_math_used('mod(10%,5px)', '2.5px'); +test_math_used('mod(2rem,5px)', '2px'); +test_math_used('mod(100px,1rem)', '4px'); +test_math_used('mod(10s,6000ms)', '4s', {type:'time'}); +test_math_used('mod(10000ms,6s)', '4s', {type:'time'}); +test_math_used('mod(18px,100% / 15)', '3px'); +test_math_used('mod(-18px,100% / 15)', '2px'); +test_math_used('mod(18%,5%)', '3%'); +test_math_used('mod(-18%,5%)', '2%'); +test_math_used('mod(18vw,5vw)', '3vw'); +test_math_used('mod(-18vw,5vw)', '2vw'); + +test_math_used('rem(10%,1px)', '0.5px'); +test_math_used('rem(10%,5px)', '2.5px'); +test_math_used('rem(2rem,5px)', '2px'); +test_math_used('rem(100px,1rem)', '4px'); +test_math_used('rem(10s,6000ms)', '4s', {type:'time'}); +test_math_used('rem(10000ms,6s)', '4s', {type:'time'}); +test_math_used('rem(18px,100% / 15)', '3px'); +test_math_used('rem(-18px,100% / 15)', '-3px'); +test_math_used('rem(18vw,5vw)', '3vw'); +test_math_used('rem(-18vw,5vw)', '-3vw'); + + diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/3d-transform-incoming.html b/tests/wpt/web-platform-tests/css/css-view-transitions/3d-transform-incoming.html index 1c3a20debbc..d852108ffa4 100644 --- a/tests/wpt/web-platform-tests/css/css-view-transitions/3d-transform-incoming.html +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/3d-transform-incoming.html @@ -50,6 +50,8 @@ div { box-sizing: border-box; will-change: transform }
diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/hit-test-unpainted-element.html b/tests/wpt/web-platform-tests/css/css-view-transitions/hit-test-unpainted-element.html index 792ddc1a5d9..ef4bc6613a4 100644 --- a/tests/wpt/web-platform-tests/css/css-view-transitions/hit-test-unpainted-element.html +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/hit-test-unpainted-element.html @@ -46,6 +46,8 @@ html::view-transition-new(shared) {
diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/inline-child-with-filter-ref.html b/tests/wpt/web-platform-tests/css/css-view-transitions/inline-child-with-filter-ref.html new file mode 100644 index 00000000000..44a41f1bf93 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/inline-child-with-filter-ref.html @@ -0,0 +1,29 @@ + +View transitions: inline child with filter (ref) + + + + + +
+ INLINEBOX +
diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/inline-child-with-filter.html b/tests/wpt/web-platform-tests/css/css-view-transitions/inline-child-with-filter.html new file mode 100644 index 00000000000..fbacc332462 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/inline-child-with-filter.html @@ -0,0 +1,52 @@ + + +View transitions: inline child with filter + + + + + + + +
+ INLINEBOX +
+ + diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/input-blocked-when-rendering-suppressed.html b/tests/wpt/web-platform-tests/css/css-view-transitions/input-blocked-when-rendering-suppressed.html index a571b2342fb..7f550c86550 100644 --- a/tests/wpt/web-platform-tests/css/css-view-transitions/input-blocked-when-rendering-suppressed.html +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/input-blocked-when-rendering-suppressed.html @@ -1,5 +1,5 @@ - + Shared transitions: ensure input is discarded when rendering is suppressed @@ -58,6 +58,7 @@ async function runTest(resolve, reject) { } promise_test(async t => { + assert_implements(document.startViewTransition, "Missing document.startViewTransition"); return new Promise(async (resolve, reject) => { // Dispatch an event before starting the test to finish init logic in // synthetic input dispatch. diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/japanese-tag.html b/tests/wpt/web-platform-tests/css/css-view-transitions/japanese-tag.html index d9ad8c57974..6d04155813e 100644 --- a/tests/wpt/web-platform-tests/css/css-view-transitions/japanese-tag.html +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/japanese-tag.html @@ -73,6 +73,8 @@ html::view-transition { background: lightpink; }
T
+ + +
+ + + diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/set-current-time-transform.html b/tests/wpt/web-platform-tests/css/css-view-transitions/set-current-time-transform.html new file mode 100644 index 00000000000..9958a0bdca0 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/set-current-time-transform.html @@ -0,0 +1,61 @@ + + +View transitions: set current time + + + + + + +
+ + + diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/set-current-time.html b/tests/wpt/web-platform-tests/css/css-view-transitions/set-current-time.html new file mode 100644 index 00000000000..efb5ffb8ae1 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/set-current-time.html @@ -0,0 +1,47 @@ + + +View transitions: set current time + + + + + + +
+ + + diff --git a/tests/wpt/web-platform-tests/css/css-view-transitions/set-universal-specificity.html b/tests/wpt/web-platform-tests/css/css-view-transitions/set-universal-specificity.html index 95c0cfe0490..80dc8272b54 100644 --- a/tests/wpt/web-platform-tests/css/css-view-transitions/set-universal-specificity.html +++ b/tests/wpt/web-platform-tests/css/css-view-transitions/set-universal-specificity.html @@ -34,6 +34,8 @@ html::view-transition-new(root) { animation: unset; opacity: 0 }
diff --git a/tests/wpt/web-platform-tests/css/cssom-view/negativeMargins.html b/tests/wpt/web-platform-tests/css/cssom-view/negativeMargins.html index 0616e8b4999..0deb7ca623e 100644 --- a/tests/wpt/web-platform-tests/css/cssom-view/negativeMargins.html +++ b/tests/wpt/web-platform-tests/css/cssom-view/negativeMargins.html @@ -9,7 +9,6 @@ Hello
diff --git a/tests/wpt/web-platform-tests/css/cssom/CSSFontFeatureValuesRule.html b/tests/wpt/web-platform-tests/css/cssom/CSSFontFeatureValuesRule.html new file mode 100644 index 00000000000..a267675cbad --- /dev/null +++ b/tests/wpt/web-platform-tests/css/cssom/CSSFontFeatureValuesRule.html @@ -0,0 +1,136 @@ + + +CSSOM - CSSFontFeatureValuesRule interface + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/cssom/flex-serialization.html b/tests/wpt/web-platform-tests/css/cssom/flex-serialization.html index 189481a3947..350877c3ce3 100644 --- a/tests/wpt/web-platform-tests/css/cssom/flex-serialization.html +++ b/tests/wpt/web-platform-tests/css/cssom/flex-serialization.html @@ -15,15 +15,22 @@ diff --git a/tests/wpt/web-platform-tests/css/cssom/overflow-serialization.html b/tests/wpt/web-platform-tests/css/cssom/overflow-serialization.html index 136b8aba117..2e4bd97d5c1 100644 --- a/tests/wpt/web-platform-tests/css/cssom/overflow-serialization.html +++ b/tests/wpt/web-platform-tests/css/cssom/overflow-serialization.html @@ -15,35 +15,47 @@ diff --git a/tests/wpt/web-platform-tests/css/cssom/shorthand-values.html b/tests/wpt/web-platform-tests/css/cssom/shorthand-values.html index 5a50bc44b78..699c4e6b56c 100644 --- a/tests/wpt/web-platform-tests/css/cssom/shorthand-values.html +++ b/tests/wpt/web-platform-tests/css/cssom/shorthand-values.html @@ -36,7 +36,7 @@ 'overflow-x: scroll; overflow-y: scroll;': 'overflow: scroll;', 'outline-width: 2px; outline-style: dotted; outline-color: blue;': 'outline: blue dotted 2px;', 'margin-top: 1px; margin-right: 2px; margin-bottom: 3px; margin-left: 4px;': 'margin: 1px 2px 3px 4px;', - 'list-style-type: circle; list-style-position: inside; list-style-image: initial;': 'list-style: inside circle;', + 'list-style-type: circle; list-style-position: inside; list-style-image: none;': 'list-style: inside circle;', 'list-style-type: lower-alpha;': 'list-style-type: lower-alpha;', 'font-family: sans-serif; line-height: 2em; font-size: 3em; font-style: italic; font-weight: bold;': 'font-family: sans-serif; line-height: 2em; font-size: 3em; font-style: italic; font-weight: bold;', 'padding-top: 1px; padding-right: 2px; padding-bottom: 3px; padding-left: 4px;': 'padding: 1px 2px 3px 4px;' diff --git a/tests/wpt/web-platform-tests/css/filter-effects/svg-mutation-filter-used-by-mask.html b/tests/wpt/web-platform-tests/css/filter-effects/svg-mutation-filter-used-by-mask.html new file mode 100644 index 00000000000..59ac6accbca --- /dev/null +++ b/tests/wpt/web-platform-tests/css/filter-effects/svg-mutation-filter-used-by-mask.html @@ -0,0 +1,32 @@ + + +Mutating filter primitive in <filter> referenced by <mask> + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/css/mediaqueries/negation-001.html b/tests/wpt/web-platform-tests/css/mediaqueries/negation-001.html new file mode 100644 index 00000000000..9badf8ee17f --- /dev/null +++ b/tests/wpt/web-platform-tests/css/mediaqueries/negation-001.html @@ -0,0 +1,40 @@ + + + + Test: support for negated conditions in Media Queries + + + + + + + +

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

+
+
+
+
+
+ + diff --git a/tests/wpt/web-platform-tests/css/mediaqueries/negation-002.html b/tests/wpt/web-platform-tests/css/mediaqueries/negation-002.html new file mode 100644 index 00000000000..ca5fb74dfbf --- /dev/null +++ b/tests/wpt/web-platform-tests/css/mediaqueries/negation-002.html @@ -0,0 +1,44 @@ + + + + Test: It is invalid to mix "and" and "or" and "not" at the same level of a media query. + + + + + + + +

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

+
+
+
+
+ + diff --git a/tests/wpt/web-platform-tests/css/selectors/has-error-recovery.html b/tests/wpt/web-platform-tests/css/selectors/has-error-recovery.html deleted file mode 100644 index b435d8c8f35..00000000000 --- a/tests/wpt/web-platform-tests/css/selectors/has-error-recovery.html +++ /dev/null @@ -1,53 +0,0 @@ - -CSS Selectors: :has() error recovery - - - - - -
-
-
-
- diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/fullscreen-pseudo-class-in-has.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/fullscreen-pseudo-class-in-has.html new file mode 100644 index 00000000000..dbbcea25021 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/fullscreen-pseudo-class-in-has.html @@ -0,0 +1,53 @@ + + +CSS Selectors Invalidation: :fullscreen pseudo class in :has() + + + + + + + + + + +
+ This is some text. +
This is going to be fullscreened
+
+ + diff --git a/tests/wpt/web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has.html b/tests/wpt/web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has.html index 9c487fba16f..1bff896d49e 100644 --- a/tests/wpt/web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has.html +++ b/tests/wpt/web-platform-tests/css/selectors/invalidation/modal-pseudo-class-in-has.html @@ -5,14 +5,19 @@ + +
This is some text. This is a dialog +
This is going to be fullscreened
\ No newline at end of file + "ancestor should be black since dialog is removed"); + }, ":modal pseudo-class invalidation with showModal + remove"); + + // Fullscreen tests + let waitForFullscreenChange = () => { + return new Promise((resolve) => { + document.addEventListener("fullscreenchange", resolve, { once: true }); + }); + }; + promise_test(async function() { + assert_equals(getComputedStyle(subject).color, "rgb(0, 0, 0)", + "ancestor should be black"); + test_driver.bless("fullscreen", () => fullscreenTarget.requestFullscreen()); + await waitForFullscreenChange(); + assert_equals(getComputedStyle(subject).color, "rgb(0, 0, 255)", + "ancestor should be blue since target is fullscreen"); + document.exitFullscreen(); + await waitForFullscreenChange(); + assert_equals(getComputedStyle(subject).color, "rgb(0, 0, 0)", + "ancestor should be black since target is no longer fullscreen"); + }, ":modal pseudo-class invalidation with requestFullscreen + exitFullscreen"); + promise_test(async function() { + assert_equals(getComputedStyle(subject).color, "rgb(0, 0, 0)", + "ancestor should be black"); + test_driver.bless("fullscreen", () => fullscreenTarget.requestFullscreen()); + await waitForFullscreenChange(); + assert_equals(getComputedStyle(subject).color, "rgb(0, 0, 255)", + "ancestor should be blue since target is fullscreen"); + fullscreenTarget.remove(); + await waitForFullscreenChange(); + assert_equals(getComputedStyle(subject).color, "rgb(0, 0, 0)", + "ancestor should be black since target is removed"); + }, ":modal pseudo-class invalidation with requestFullscreen + remove"); + diff --git a/tests/wpt/web-platform-tests/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html b/tests/wpt/web-platform-tests/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html index 0a30718df04..9cf989fcbeb 100644 --- a/tests/wpt/web-platform-tests/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html +++ b/tests/wpt/web-platform-tests/css/selectors/parsing/parse-has-disallow-nesting-has-inside-has.html @@ -7,7 +7,7 @@ diff --git a/tests/wpt/web-platform-tests/css/selectors/parsing/parse-has.html b/tests/wpt/web-platform-tests/css/selectors/parsing/parse-has.html index e15d33532bc..5d071010b42 100644 --- a/tests/wpt/web-platform-tests/css/selectors/parsing/parse-has.html +++ b/tests/wpt/web-platform-tests/css/selectors/parsing/parse-has.html @@ -30,8 +30,12 @@ test_valid_selector('.a:has(.b):has(.c)'); test_valid_selector('*|*:has(*)', ':has(*)'); test_valid_selector(':has(*|*)', ':has(*)'); - test_valid_selector('.a:has()', '.a:has()'); test_invalid_selector(':has'); test_invalid_selector('.a:has'); test_invalid_selector('.a:has b'); + /* :has() is unforgiving, but :is() can still forgive */ + test_invalid_selector(':has()'); + test_invalid_selector(':has(123)'); + test_invalid_selector(':has(.a, 123)'); + test_valid_selector(':has(:is(.a, 123))', ':has(:is(.a))'); diff --git a/tests/wpt/web-platform-tests/direct-sockets/direct-sockets-disabled-by-permissions-policy.https.sub.html b/tests/wpt/web-platform-tests/direct-sockets/disabled-by-permissions-policy.https.sub.html similarity index 83% rename from tests/wpt/web-platform-tests/direct-sockets/direct-sockets-disabled-by-permissions-policy.https.sub.html rename to tests/wpt/web-platform-tests/direct-sockets/disabled-by-permissions-policy.https.sub.html index 9e81223de1c..f2f6e50be0f 100644 --- a/tests/wpt/web-platform-tests/direct-sockets/direct-sockets-disabled-by-permissions-policy.https.sub.html +++ b/tests/wpt/web-platform-tests/direct-sockets/disabled-by-permissions-policy.https.sub.html @@ -9,6 +9,6 @@ - + diff --git a/tests/wpt/web-platform-tests/direct-sockets/direct-sockets-disabled-by-permissions-policy.https.sub.html.headers b/tests/wpt/web-platform-tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers similarity index 100% rename from tests/wpt/web-platform-tests/direct-sockets/direct-sockets-disabled-by-permissions-policy.https.sub.html.headers rename to tests/wpt/web-platform-tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers diff --git a/tests/wpt/web-platform-tests/direct-sockets/direct-sockets-disabled-by-permissions-policy.js b/tests/wpt/web-platform-tests/direct-sockets/disabled-by-permissions-policy.js similarity index 100% rename from tests/wpt/web-platform-tests/direct-sockets/direct-sockets-disabled-by-permissions-policy.js rename to tests/wpt/web-platform-tests/direct-sockets/disabled-by-permissions-policy.js diff --git a/tests/wpt/web-platform-tests/docs/writing-tests/testdriver.md b/tests/wpt/web-platform-tests/docs/writing-tests/testdriver.md index 82ad4ff624c..11193b147f0 100644 --- a/tests/wpt/web-platform-tests/docs/writing-tests/testdriver.md +++ b/tests/wpt/web-platform-tests/docs/writing-tests/testdriver.md @@ -206,15 +206,13 @@ _Note: these special-key codepoints are not necessarily what you would expect. F ### set_permission -Usage: `test_driver.set_permission(descriptor, state, one_realm=false, context=null)` +Usage: `test_driver.set_permission(descriptor, state, context=null)` * _descriptor_: a [PermissionDescriptor](https://w3c.github.io/permissions/#dictdef-permissiondescriptor) or derived object * _state_: a [PermissionState](https://w3c.github.io/permissions/#enumdef-permissionstate) value - * _one_realm_: a boolean that indicates whether the permission settings - apply to only one realm * context: a WindowProxy for the browsing context in which to perform the call This function causes permission requests and queries for the status of a @@ -226,5 +224,5 @@ Example: ``` js await test_driver.set_permission({ name: "background-fetch" }, "denied"); -await test_driver.set_permission({ name: "push", userVisibleOnly: true }, "granted", true); +await test_driver.set_permission({ name: "push", userVisibleOnly: true }, "granted"); ``` diff --git a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-replaceChildren.html b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-replaceChildren.html index 8f2fda9d99c..ee22009fcb7 100644 --- a/tests/wpt/web-platform-tests/dom/nodes/ParentNode-replaceChildren.html +++ b/tests/wpt/web-platform-tests/dom/nodes/ParentNode-replaceChildren.html @@ -121,6 +121,85 @@ test_replacechildren(document.createElement('div'), 'Element'); test_replacechildren(document.createDocumentFragment(), 'DocumentFragment'); + + async_test(t => { + let root = document.createElement("div"); + root.innerHTML = "
text
text2
"; + const a = root.firstChild; + const b = a.lastChild; + const txt = b.previousSibling; + const txt2 = b.firstChild; + + const observer = new MutationObserver((mutations) => { + + assert_equals(mutations.length, 2, "mutations.length"); + + assert_equals(mutations[0].target.id, "a", "Target of the removal"); + assert_equals(mutations[0].addedNodes.length, 0, "Should not have added nodes"); + assert_equals(mutations[0].removedNodes.length, 1, "Should have 1 removed node"); + assert_equals(mutations[0].removedNodes[0], txt, "Should have removed txt node"); + + assert_equals(mutations[1].target.id, "b", "Target of the replaceChildren"); + assert_equals(mutations[1].removedNodes.length, 1, "Should have removed 1 node"); + assert_equals(mutations[1].removedNodes[0], txt2, "Should have removed txt2 node"); + assert_equals(mutations[1].addedNodes.length, 1, "Should have added a node"); + assert_equals(mutations[1].addedNodes[0], txt, "Should have added txt node"); + + observer.disconnect(); + t.done(); + }); + + observer.observe(a, { + subtree: true, + childList: true + }); + + b.replaceChildren(txt); + }, "There should be a MutationRecord for the node removed from another parent node."); + + async_test(t => { + // This is almost the same test as above, but passes two nodes to replaceChildren. + + let root = document.createElement("div"); + root.innerHTML = "
text
text2
"; + const a = root.firstChild; + const b = a.lastChild; + const c = a.firstChild; + const txt = b.previousSibling; + const txt2 = b.firstChild; + + const observer = new MutationObserver((mutations) => { + + assert_equals(mutations.length, 3, "mutations.length"); + + assert_equals(mutations[0].target.id, "a", "Target of the removal"); + assert_equals(mutations[0].addedNodes.length, 0, "Should not have added nodes"); + assert_equals(mutations[0].removedNodes.length, 1, "Should have 1 removed node"); + assert_equals(mutations[0].removedNodes[0], c, "Should have removed c node"); + + assert_equals(mutations[1].target.id, "a", "Target of the removal"); + assert_equals(mutations[1].addedNodes.length, 0, "Should not have added nodes"); + assert_equals(mutations[1].removedNodes.length, 1, "Should have 1 removed node"); + assert_equals(mutations[1].removedNodes[0], txt, "Should have removed txt node"); + + assert_equals(mutations[2].target.id, "b", "Target of the replaceChildren"); + assert_equals(mutations[2].removedNodes.length, 1, "Should have removed 1 node"); + assert_equals(mutations[2].removedNodes[0], txt2, "Should have removed txt2 node"); + assert_equals(mutations[2].addedNodes.length, 2, "Should have added a node"); + assert_equals(mutations[2].addedNodes[0], c, "Should have added c node"); + assert_equals(mutations[2].addedNodes[1], txt, "Should have added txt node"); + + observer.disconnect(); + t.done(); + }); + + observer.observe(a, { + subtree: true, + childList: true + }); + + b.replaceChildren(c, txt); + }, "There should be MutationRecords for the nodes removed from another parent node."); diff --git a/tests/wpt/web-platform-tests/editing/crashtests/bold-in-output.html b/tests/wpt/web-platform-tests/editing/crashtests/bold-in-output.html new file mode 100644 index 00000000000..43d78ec4e99 --- /dev/null +++ b/tests/wpt/web-platform-tests/editing/crashtests/bold-in-output.html @@ -0,0 +1,20 @@ + + + + + + + + + +A + + diff --git a/tests/wpt/web-platform-tests/editing/crashtests/justifycenter-then-delete-selection-on-DOMSubtreeModified.html b/tests/wpt/web-platform-tests/editing/crashtests/justifycenter-then-delete-selection-on-DOMSubtreeModified.html new file mode 100644 index 00000000000..1ee9ac35cb8 --- /dev/null +++ b/tests/wpt/web-platform-tests/editing/crashtests/justifycenter-then-delete-selection-on-DOMSubtreeModified.html @@ -0,0 +1,24 @@ + + + + + + + +
  • +

    + +

    +
  • + + diff --git a/tests/wpt/web-platform-tests/editing/data/bold.js b/tests/wpt/web-platform-tests/editing/data/bold.js index 61ccf4f8adf..14147e4266c 100644 --- a/tests/wpt/web-platform-tests/editing/data/bold.js +++ b/tests/wpt/web-platform-tests/editing/data/bold.js @@ -257,7 +257,7 @@ var browserTests = [ {"bold":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","true"],["bold",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"bold":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -265,34 +265,39 @@ var browserTests = [ "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"bold":[false,false,"",false,true,""]}], +// Should not use the near as alternative container of and +// . ["foobar[baz]", [["bold",""]], - "foobar[baz]", + "foobarbaz", [true], {"bold":[false,false,"",false,true,""]}], ["[foo]barbaz", [["bold",""]], - "[foo]barbaz", + "foobarbaz", [true], {"bold":[false,false,"",false,true,""]}], ["foo[bar]baz", [["bold",""]], - "foo[bar]baz", + "foobarbaz", [true], {"bold":[false,false,"",false,true,""]}], ["foo[bar]baz", [["bold",""]], - "foo[bar]baz", + "foo[bar]baz", [true], {"bold":[false,false,"",false,true,""]}], +// Should not use the near as alternative container of +// ["foo[bar]baz", [["stylewithcss","true"],["bold",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"bold":[false,false,"",false,true,""]}], +// Should use the near as new container ["foo[bar]baz", [["stylewithcss","false"],["bold",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"bold":[false,false,"",false,true,""]}], ["foo[bar]baz", diff --git a/tests/wpt/web-platform-tests/editing/data/italic.js b/tests/wpt/web-platform-tests/editing/data/italic.js index b7bd63f95b9..bb744135e36 100644 --- a/tests/wpt/web-platform-tests/editing/data/italic.js +++ b/tests/wpt/web-platform-tests/editing/data/italic.js @@ -280,14 +280,15 @@ var browserTests = [ "foob[a]rbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"italic":[false,true,"",false,false,""]}], +// Should not replace existing when partially removing the italic style. ["foob[a]rbaz", [["stylewithcss","true"],["italic",""]], - "foob[a]rbaz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"italic":[false,true,"",false,false,""]}], ["foob[a]rbaz", [["stylewithcss","false"],["italic",""]], - "foob[a]rbaz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"italic":[false,true,"",false,false,""]}], ["foob[a]rbaz", @@ -340,6 +341,7 @@ var browserTests = [ "fo[obarb]az", [true,true], {"stylewithcss":[false,true,"",false,false,""],"italic":[true,false,"",false,true,""]}], +// Replace with or when whole of it is wrapped in a new element. ["fo[obarb]az", [["stylewithcss","true"],["italic",""]], "fo[obarb]az", diff --git a/tests/wpt/web-platform-tests/editing/data/strikethrough.js b/tests/wpt/web-platform-tests/editing/data/strikethrough.js index 9817f4f0f85..83cc7edf7ac 100644 --- a/tests/wpt/web-platform-tests/editing/data/strikethrough.js +++ b/tests/wpt/web-platform-tests/editing/data/strikethrough.js @@ -12,7 +12,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["

    [foo

    bar]

    ", [["stylewithcss","false"],["strikethrough",""]], - "

    [foo

    bar]

    ", + "

    [foo

    bar]

    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["[foo bar]", @@ -22,7 +22,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["[foo bar]", [["stylewithcss","false"],["strikethrough",""]], - "[foo bar]", + "[foo bar]", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["

    [foo

    bar

    baz]

    ", @@ -32,7 +32,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["

    [foo

    bar

    baz]

    ", [["stylewithcss","false"],["strikethrough",""]], - "

    [foo

    bar

    baz]

    ", + "

    [foo

    bar

    baz]

    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["

    [foo


    bar]", @@ -42,7 +42,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["

    [foo


    bar]", [["stylewithcss","false"],["strikethrough",""]], - "

    [foo


    bar]

    ", + "

    [foo


    bar]

    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[]bar", @@ -72,7 +72,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[barbaz]qozquz", @@ -82,7 +82,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[barbaz]qozquz", [["stylewithcss","false"],["strikethrough",""]], - "foo[barbaz]qozquz", + "foo[barbaz]qozquz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[barbaz]qozquz", @@ -92,7 +92,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[barbaz]qozquz", [["stylewithcss","false"],["strikethrough",""]], - "foo[barbaz]qozquz", + "foo[barbaz]qozquz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["{

    foo

    }", @@ -102,7 +102,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["{

    foo

    }", [["stylewithcss","false"],["strikethrough",""]], - "{

    foo

    }", + "{

    foo

    }", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foob[a]rbaz
    ", @@ -112,7 +112,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foob[a]rbaz
    ", [["stylewithcss","false"],["strikethrough",""]], - "
    foob[a]rbaz
    ", + "
    foob[a]rbaz
    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foobarbaz
    ", @@ -122,7 +122,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foobarbaz
    ", [["stylewithcss","false"],["strikethrough",""]], - "{}
    foobarbaz
    ", + "{}
    foobarbaz
    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foobarbaz
    ", @@ -132,7 +132,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foobarbaz
    ", [["stylewithcss","false"],["strikethrough",""]], - "{}
    foobarbaz
    ", + "{}
    foobarbaz
    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foobarbaz
    ", @@ -142,7 +142,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foobarbaz
    ", [["stylewithcss","false"],["strikethrough",""]], - "{}
    foobarbaz
    ", + "{}
    foobarbaz
    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foobarbaz
    ", @@ -152,7 +152,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["
    foobarbaz
    ", [["stylewithcss","false"],["strikethrough",""]], - "{}
    foobarbaz
    ", + "{}
    foobarbaz
    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["{
    foobarbaz
    }", @@ -162,27 +162,33 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["{
    foobarbaz
    }", [["stylewithcss","false"],["strikethrough",""]], - "{
    foobarbaz
    }", + "{
    foobarbaz
    }", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], +// is just representing underline style. Therefore, browsers should not +// keep it. Instead, it should be replaced with new and set its +// text-decoration to line-through (requested style) and underline (default +// style of ). ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], +// The which is a container of the range has text-decoration style. +// Therefore, it should be updated rather than creating new element. ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -192,7 +198,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -202,7 +208,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -212,7 +218,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -222,7 +228,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -232,7 +238,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["

    foo[bar]baz

    ", @@ -242,7 +248,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["

    foo[bar]baz

    ", [["stylewithcss","false"],["strikethrough",""]], - "

    foo[bar]baz

    ", + "

    foo[bar]baz

    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -255,9 +261,11 @@ var browserTests = [ "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], +// Should not replace existing with / when removing the style +// partially. ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", @@ -267,42 +275,42 @@ var browserTests = [ {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", @@ -322,7 +330,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", @@ -332,7 +340,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", @@ -342,7 +350,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", @@ -352,7 +360,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", @@ -362,17 +370,20 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], +// Should set text-decoration of because it has underline style by +// default and it is not only representing it, thus, replacing it with +// changes the meaning. ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -382,7 +393,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -392,7 +403,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -402,7 +413,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -412,7 +423,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -422,7 +433,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -467,27 +478,28 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foob[a]rbaz", [["stylewithcss","false"],["strikethrough",""]], - "foob[a]rbaz", + "foob[a]rbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], +// should be replaced with or element. ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foob[a]rbaz", [["stylewithcss","true"],["strikethrough",""]], - "foob[a]rbaz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foob[a]rbaz", [["stylewithcss","false"],["strikethrough",""]], - "foob[a]rbaz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -507,37 +519,41 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foob[a]rbaz", [["stylewithcss","false"],["strikethrough",""]], - "foob[a]rbaz", + "foob[a]rbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foob[a]rbaz", [["stylewithcss","true"],["strikethrough",""]], - "foob[a]rbaz", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foob[a]rbaz", [["stylewithcss","false"],["strikethrough",""]], - "foob[a]rbaz", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], +// Should replace with new and set its `text-decoration` to +// line-though (for applying the requested style) and overline (which was +// specified to the ). Note that underline was removed by the +// text-decoration setting. Therefore, it should not appear. ["foo[bar]baz", [["stylewithcss","true"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foob[a]rbaz", @@ -547,7 +563,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foob[a]rbaz", [["stylewithcss","false"],["strikethrough",""]], - "foob[a]rbaz", + "foob[a]rbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["

    foo[bar]baz

    ", @@ -557,7 +573,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["

    foo[bar]baz

    ", [["stylewithcss","false"],["strikethrough",""]], - "

    foo[bar]baz

    ", + "

    foo[bar]baz

    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["

    foo[bar]baz

    ", @@ -567,7 +583,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["

    foo[bar]baz

    ", [["stylewithcss","false"],["strikethrough",""]], - "

    foo[bar]baz

    ", + "

    foo[bar]baz

    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -577,7 +593,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["strikethrough",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foob[a]rbaz", @@ -587,7 +603,7 @@ var browserTests = [ {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,false,"",false,true,""]}], ["foob[a]rbaz", [["stylewithcss","false"],["strikethrough",""]], - "foob[a]rbaz", + "foob[a]rbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -610,29 +626,30 @@ var browserTests = [ "foob[a]rbaz", [true], {"strikethrough":[false,true,"",false,true,""]}], +// Should wrap in new only when it's not wrapped in ["fo[ob]arbaz", [["strikethrough",""]], - "fo[ob]arbaz", + "foobarbaz", [true], {"strikethrough":[true,false,"",false,true,""]}], ["fooba[rb]az", [["strikethrough",""]], - "fooba[rb]az", + "foobarbaz", [true], {"strikethrough":[true,false,"",false,true,""]}], ["fo[obarb]az", [["stylewithcss","true"],["strikethrough",""]], - "fo[obarb]az", + "foobarbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[true,false,"",false,true,""]}], ["fo[obarb]az", [["stylewithcss","false"],["strikethrough",""]], - "fo[obarb]az", + "foobarbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[true,false,"",false,true,""]}], ["foo[b]arbaz", [["stylewithcss","true"],["strikethrough",""]], - "foo[b]arbaz", + "foo[b]arbaz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["foo[b]arbaz", @@ -642,7 +659,7 @@ var browserTests = [ {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["fooba[r]baz", [["stylewithcss","true"],["strikethrough",""]], - "fooba[r]baz", + "fooba[r]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["fooba[r]baz", @@ -682,27 +699,68 @@ var browserTests = [ {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["fo[ob]arbaz", [["strikethrough",""]], - "fo[ob]arbaz", + "foobarbaz", [true], {"strikethrough":[true,false,"",false,true,""]}], ["fo[ob]ar", [["stylewithcss","true"],["strikethrough",""]], - "fo[ob]ar", + "fo[ob]ar", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",false,false,""]}], ["fo[ob]ar", [["stylewithcss","false"],["strikethrough",""]], - "fo[ob]ar", + "fo[ob]ar", [true,true], {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",false,false,""]}], ["fo[ob]ar", [["stylewithcss","true"],["strikethrough",""]], - "fo[ob]ar", + "fo[ob]ar", [true,true], {"stylewithcss":[false,false,"",false,true,""],"strikethrough":[false,true,"",true,false,""]}], ["fo[ob]ar", [["stylewithcss","false"],["strikethrough",""]], "fo[ob]ar", [true,true], - {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",true,false,""]}] + {"stylewithcss":[false,true,"",false,false,""],"strikethrough":[false,true,"",true,false,""]}], + + +// Tests to remove only strikethrough from existing text-decoration +["abc[def]ghi", + [["stylewithcss","true"],["strikethrough",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], + +// blink, text-decoration-color and text-decoration-style values should be +// dropped. This rule is odd because executing "underline" command causes +// the data loss, but for now, the compatibility between browsers is more +// important. Once you want/need to change the behavior of a browser, you +// should file a spec issue first. +// And these tests allows the difference between text-decoration vs. +// text-decoration-line because these tests want to check the data loss. +["abc[def]ghi", + [["stylewithcss","true"],["strikethrough",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], +["abc[def]ghi", + [["stylewithcss","true"],["strikethrough",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], +["abc[def]ghi", + [["stylewithcss","true"],["strikethrough",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], +["abc[def]ghi", + [["stylewithcss","true"],["strikethrough",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], ] diff --git a/tests/wpt/web-platform-tests/editing/data/subscript.js b/tests/wpt/web-platform-tests/editing/data/subscript.js index 212981438b6..4129f4f0e81 100644 --- a/tests/wpt/web-platform-tests/editing/data/subscript.js +++ b/tests/wpt/web-platform-tests/editing/data/subscript.js @@ -5,6 +5,11 @@ var browserTests = [ "foo[]bar", [true], {"subscript":[false,false,"",false,true,""]}], +// should be used instead of because +// changes font-size too, thus, they are not equivalent. Additionally, +// even if specifying `font-size`, it'd be removed by the other commands. +// Therefore, it's hard to maintain only with CSS. +// See also . ["

    [foo

    bar]

    ", [["stylewithcss","true"],["subscript",""]], "

    [foo

    bar]

    ", @@ -195,24 +200,27 @@ var browserTests = [ "foob[a]rbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"subscript":[false,false,"",false,true,""]}], +// Although is not equivalent to `vertical-align: sub` as mentioned above, +// they are obviously conflict. Therefore, `vertical-align` style of ancestor +// and descendants elements of selection should be removed to make work. ["foo[bar]baz", [["stylewithcss","true"],["subscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"subscript":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["subscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"subscript":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","true"],["subscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"subscript":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["subscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"subscript":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -380,39 +388,44 @@ var browserTests = [ "foo{bar}baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"subscript":[false,true,"",false,false,""]}], +// The selected text not in should be moved into the existing . ["fo[ob]ar", [["subscript",""]], "fo[ob]ar", [true], {"subscript":[true,false,"",false,true,""]}], +// In the following cases, the vertical-align style in the range should be +// removed first, then, apply . ["fo[ob]ar", [["stylewithcss","true"],["subscript",""]], - "fo[ob]ar", + "fo[ob]ar", [true,true], {"stylewithcss":[false,false,"",false,true,""],"subscript":[true,false,"",false,true,""]}], ["fo[ob]ar", [["stylewithcss","false"],["subscript",""]], - "fo[ob]ar", + "fo[ob]ar", [true,true], {"stylewithcss":[false,true,"",false,false,""],"subscript":[true,false,"",false,true,""]}], +["fo[ob]ar", + [["stylewithcss","true"],["subscript",""]], + "fo[ob]ar", + [true,true], + {"stylewithcss":[false,false,"",false,true,""],"subscript":[true,false,"",false,true,""]}], +["fo[ob]ar", + [["stylewithcss","false"],["subscript",""]], + "fo[ob]ar", + [true,true], + {"stylewithcss":[false,true,"",false,false,""],"subscript":[true,false,"",false,true,""]}], +// Even if a vertical-align value is not related to /, it should be +// removed to make new work cleanly. ["foo[bar]baz", [["stylewithcss","true"],["subscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"subscript":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["subscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"subscript":[false,false,"",false,true,""]}], -["fo[ob]ar", - [["stylewithcss","true"],["subscript",""]], - "fo[ob]ar", - [true,true], - {"stylewithcss":[false,false,"",false,true,""],"subscript":[true,false,"",false,true,""]}], -["fo[ob]ar", - [["stylewithcss","false"],["subscript",""]], - "fo[ob]ar", - [true,true], - {"stylewithcss":[false,true,"",false,false,""],"subscript":[true,false,"",false,true,""]}] ] diff --git a/tests/wpt/web-platform-tests/editing/data/superscript.js b/tests/wpt/web-platform-tests/editing/data/superscript.js index e06fe6f4b17..310f471a97f 100644 --- a/tests/wpt/web-platform-tests/editing/data/superscript.js +++ b/tests/wpt/web-platform-tests/editing/data/superscript.js @@ -5,6 +5,11 @@ var browserTests = [ "foo[]bar", [true], {"superscript":[false,false,"",false,true,""]}], +// should be used instead of because +// changes font-size too, thus, they are not equivalent. Additionally, +// even if specifying `font-size`, it'd be removed by the other commands. +// Therefore, it's hard to maintain only with CSS. +// See also . ["

    [foo

    bar]

    ", [["stylewithcss","true"],["superscript",""]], "

    [foo

    bar]

    ", @@ -195,24 +200,28 @@ var browserTests = [ "foob[a]rbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"superscript":[false,true,"",false,false,""]}], +// Although is not equivalent to `vertical-align: super` as mentioned +// above, they are obviously conflict. Therefore, `vertical-align` style of +// ancestor and descendants elements of selection should be removed to make +// work. ["foo[bar]baz", [["stylewithcss","true"],["superscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"superscript":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["superscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"superscript":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","true"],["superscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"superscript":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["superscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"superscript":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -380,41 +389,47 @@ var browserTests = [ "foo{bar}baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"superscript":[false,true,"",false,false,""]}], +// The selected text not in should be moved into the existing . ["fo[ob]ar", [["superscript",""]], "fo[ob]ar", [true], {"superscript":[true,false,"",false,true,""]}], +// In the following cases, the vertical-align style in the range should be +// removed first, then, apply . ["fo[ob]ar", [["stylewithcss","true"],["superscript",""]], - "fo[ob]ar", + "fo[ob]ar", [true,true], {"stylewithcss":[false,false,"",false,true,""],"superscript":[true,false,"",false,true,""]}], ["fo[ob]ar", [["stylewithcss","false"],["superscript",""]], - "fo[ob]ar", + "fo[ob]ar", [true,true], {"stylewithcss":[false,true,"",false,false,""],"superscript":[true,false,"",false,true,""]}], +["fo[ob]ar", + [["stylewithcss","true"],["superscript",""]], + "fo[ob]ar", + [true,true], + {"stylewithcss":[false,false,"",false,true,""],"superscript":[true,false,"",false,true,""]}], +["fo[ob]ar", + [["stylewithcss","false"],["superscript",""]], + "fo[ob]ar", + [true,true], + {"stylewithcss":[false,true,"",false,false,""],"superscript":[true,false,"",false,true,""]}], +// Even if a vertical-align value is not related to /, it should be +// removed to make new work cleanly. ["foo[bar]baz", [["stylewithcss","true"],["superscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"superscript":[false,false,"",false,true,""]}], ["foo[bar]baz", [["stylewithcss","false"],["superscript",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"superscript":[false,false,"",false,true,""]}], -["fo[ob]ar", - [["stylewithcss","true"],["superscript",""]], - "fo[ob]ar", - [true,true], - {"stylewithcss":[false,false,"",false,true,""],"superscript":[true,false,"",false,true,""]}], -["fo[ob]ar", - [["stylewithcss","false"],["superscript",""]], - "fo[ob]ar", - [true,true], - {"stylewithcss":[false,true,"",false,false,""],"superscript":[true,false,"",false,true,""]}], +// Remove when it becomes only having an invisible
    element. ["foo[bar]
    ", [["stylewithcss","true"],["superscript",""]], "foo[bar]
    ", diff --git a/tests/wpt/web-platform-tests/editing/data/underline.js b/tests/wpt/web-platform-tests/editing/data/underline.js index 4dac89f66e1..4092e5a808f 100644 --- a/tests/wpt/web-platform-tests/editing/data/underline.js +++ b/tests/wpt/web-platform-tests/editing/data/underline.js @@ -235,9 +235,12 @@ var browserTests = [ "

    foo[bar]baz

    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"underline":[false,true,"",false,false,""]}], +// should be replaced with new because it just represents line-though +// style, and should set its text-decoration to underline (requested style) and +// line-through (default style of ). ["foo[bar]baz", [["stylewithcss","true"],["underline",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"underline":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -245,9 +248,11 @@ var browserTests = [ "foo[bar]baz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"underline":[false,false,"",false,true,""]}], +// Should update text-decoration declaration in the which is a container +// of the range. ["foo[bar]baz", [["stylewithcss","true"],["underline",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"underline":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -315,9 +320,12 @@ var browserTests = [ "

    foo[bar]baz

    ", [true,true], {"stylewithcss":[false,true,"",false,false,""],"underline":[false,false,"",false,true,""]}], +// Should replace with new because is just representing +// line-through style, and set its text-decoration to underline (requested +// style) and line-though (default style of ). ["foo[bar]baz", [["stylewithcss","true"],["underline",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"underline":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -405,9 +413,12 @@ var browserTests = [ "foo[bar]baz", [true], {"underline":[false,true,"",false,true,""]}], +// Should set text-decoration of because it has line-through style by +// default and it is not only representing it, thus, replacing it with +// changes the meaning. ["foo[bar]baz", [["stylewithcss","true"],["underline",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"underline":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -520,9 +531,13 @@ var browserTests = [ "foob[a]rbaz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"underline":[false,false,"",false,true,""]}], +// Should replace with new and set its `text-decoration` to underline +// (for applying the requested style) and overline (which was specified to the +// ). Note that line-though was removed by the text-decoration setting. +// Therefore, it should not appear. ["foo[bar]baz", [["stylewithcss","true"],["underline",""]], - "foo[bar]baz", + "foo[bar]baz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"underline":[false,false,"",false,true,""]}], ["foo[bar]baz", @@ -704,5 +719,45 @@ var browserTests = [ [["stylewithcss","false"],["underline",""]], "fo[ob]ar", [true,true], - {"stylewithcss":[false,true,"",false,false,""],"underline":[false,true,"",true,false,""]}] -] + {"stylewithcss":[false,true,"",false,false,""],"underline":[false,true,"",true,false,""]}], + +// Tests to remove only underline from existing text-decoration +["abc[def]ghi", + [["stylewithcss","true"],["underline",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], + +// blink, text-decoration-color and text-decoration-style values should be +// dropped. This rule is odd because executing "underline" command causes +// the data loss, but for now, the compatibility between browsers is more +// important. Once you want/need to change the behavior of a browser, you +// should file a spec issue first. +// And these tests allows the difference between text-decoration vs. +// text-decoration-line because these tests want to check the data loss. +["abc[def]ghi", + [["stylewithcss","true"],["underline",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], +["abc[def]ghi", + [["stylewithcss","true"],["underline",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], +["abc[def]ghi", + [["stylewithcss","true"],["underline",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], +["abc[def]ghi", + [["stylewithcss","true"],["underline",""]], + ["abc[def]ghi", + "abc[def]ghi"], + [true,true], + {}], +] \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-events.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-events.https.html index 4f3b6222b86..7563eb33bd7 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-events.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-events.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html index af6e76c2b33..9f86d89b47d 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-invalid-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-invalid-license.https.html index 09ff934a04d..702f934d2d2 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-invalid-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-invalid-license.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html index 3474f9d5151..3dec1ad165c 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses-multiple-sessions.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses.https.html index 6edec35cd02..3acce4d4368 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-keystatuses.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html index 547f01b3608..2fb1db4dccf 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-destroy-persistent-license.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html index 99aba6386c9..66720946d4b 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license-events.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license.https.html index 352a2a7b0f8..b65cf5337ff 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-license.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html index 795cf5b602f..11b3e8f15ce 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record-events.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html index a2eb397d64d..3f0d55e4138 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-persistent-usage-record.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html index 85510b24bb5..c8838d2b7dc 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-destroy-persistent-license.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html index 7d8fe57ffb1..072b885d21e 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-license.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html index c612b8cd98d..63e792c2987 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-retrieve-persistent-usage-record.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-segmented.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-segmented.https.html index f63fd51ca80..e402688aacf 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-segmented.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted-segmented.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html index 9eca41cc08b..b8d7cf978eb 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-clear-encrypted.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html index 884d22d7577..73df333979d 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear-sources.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html index 1e190246372..9ab8fd854cf 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-encrypted-clear.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.https.html index c4d4ea37de6..be40082fa88 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-events.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html index 66313e727e1..ff5bb476399 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential-readyState.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html index 64b00cd2902..a001e6a4d72 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey-sequential.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html index 29d1a2eed5d..b036a051a41 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multikey.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html index 8f32120f14e..b64befda178 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-multisession.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html index bade71626bb..209f08231b2 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-src.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html index 1085ce4e772..1b1242ba39b 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-after-update.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html index 7f362f44251..24484847780 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-immediately.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html index a49bc28d3d0..b7a9ede97dd 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-setMediaKeys-onencrypted.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html index 95de680e477..ea69fc41e76 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-two-videos.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html index 94d35daa510..443aec81b73 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary.https.html index 909f2af6406..f6bff6992a5 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html index f8402c99a56..c768bc4c869 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-requestmediakeysystemaccess.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html index 61da9d86743..0acd27fbff6 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-reset-src-after-setmediakeys.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https.html index 697cf207cfb..b744182be21 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-playback.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html index d695445ef1f..4700f5d2cc6 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-again-after-resetting-src.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html index 91e6b9ec3f3..860cb6cb229 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-at-same-time.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html index 064d7ed05c1..088e3c2d7c3 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html index 9e383afc3cc..a38d1305fef 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html index cf73b8085c6..de85169d617 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys-to-multiple-video-elements.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.https.html index 14a6a73e07a..ea04f954089 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-setmediakeys.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html index 6b4a08a9171..e76f509616e 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeys.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html index 2748c31a57f..447560d74b3 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysession.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html index 22e72ccc82d..1991f588fe0 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-syntax-mediakeysystemaccess.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.https.html index 2871862dd40..0823a9e882d 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-unique-origin.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html index 2876a54a479..03f0787fcd0 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-mp4-waiting-for-a-key.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/clearkey-not-callable-after-createsession.https.html b/tests/wpt/web-platform-tests/encrypted-media/clearkey-not-callable-after-createsession.https.html index 22e8b38615c..ca0622d9fc8 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/clearkey-not-callable-after-createsession.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/clearkey-not-callable-after-createsession.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-events.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-events.https.html index ece798ac87c..5dd2ed774de 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-events.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-events.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-expiration.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-expiration.https.html index d907090efe0..7a9993af8d4 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-expiration.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-expiration.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-generate-request-disallowed-input.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-generate-request-disallowed-input.https.html index 70c46edc7cc..45f2bc6957f 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-generate-request-disallowed-input.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-generate-request-disallowed-input.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-invalid-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-invalid-license.https.html index 9584f499ce2..14433860383 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-invalid-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-invalid-license.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.https.html index cd14fe38054..61b7c33bdcc 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses-multiple-sessions.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses.https.html index 0d98f7411f2..3fc61a4f7f0 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-keystatuses.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-onencrypted.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-onencrypted.https.html index 9e4aff330d4..8fc820ce265 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-onencrypted.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-onencrypted.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html index b8a1bfd41e1..bc3f5b189fd 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-destroy-persistent-license.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license-events.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license-events.https.html index 4b5956c4086..88660e88f40 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license-events.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license-events.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license.https.html index a119d3826b0..0c1f94b8601 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-license.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html index 29c44f89591..5cbb8021b07 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record-events.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html index 1a9f8fb6fad..69876be9892 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-persistent-usage-record.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html index d70dc9811f0..9bba71f89aa 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-destroy-persistent-license.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html index 416093c1491..8429d1922d5 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-license.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html index 55736e8c447..4059bff0cfc 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-retrieve-persistent-usage-record.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html index e929251978c..6b6e1ce6216 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-clear-encrypted.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html index 491e32a6fe8..f4ad811df90 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear-sources.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html index 10450f0a6ad..f9cce58a906 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-encrypted-clear.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-events.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-events.https.html index 9846eeeecdc..c621de0520d 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-events.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-events.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.https.html index a87687fbaca..4d9cc71ac71 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-expired.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html index 42d563a5de3..ec69118d690 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential-readyState.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html index 0b23721b6fa..7f0c23f2301 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey-sequential.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey.https.html index ba5a586abfc..5be9bda0288 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multikey.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.https.html index ebb0e66bc34..e22e4f93505 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-multisession.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-playduration-keystatus.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-playduration-keystatus.html index cbecb0deae7..46cf5c9184f 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-playduration-keystatus.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-playduration-keystatus.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-playduration.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-playduration.html index 24012b6ac8c..173e0f0d593 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-playduration.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-playduration.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html index fab98edbbda..3560e0ab85a 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-src.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html index 63de51be68f..f225859dc57 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-after-update.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html index 59ed1e498de..2c198ef8fea 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-immediately.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html index 45dc70b39fc..d3efc80f616 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-setMediaKeys-onencrypted.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html index cf062125f0d..cbd6c9c6593 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-two-videos.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html index c9b78e615f1..edd5e372041 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary-waitingforkey.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary.https.html index f28a6fe2f0f..b0ad0ef0c6f 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-playback-temporary.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html index b18a36f0e47..ae0165f09e7 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-requestmediakeysystemaccess.https.html @@ -11,7 +11,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html index b91211df444..bbcefee8cf0 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-reset-src-after-setmediakeys.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html index 71a1f70afcb..a60b764772c 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-playback.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html index 749962c62d5..bff89c0a443 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-again-after-resetting-src.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html index 135c9893bf7..571d3543530 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-at-same-time.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html index b7f2fec65f0..453ded031c4 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-different-mediakeys.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html index 5cbbe52da9a..adf91b826ad 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-multiple-times-with-the-same-mediakeys.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html index dddbe3059c2..952815184a9 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys-to-multiple-video-elements.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys.https.html index 447ca60f745..45318acaa54 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-setmediakeys.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeys.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeys.https.html index f6d03926132..22fa605f45e 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeys.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeys.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysession.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysession.https.html index 0c737df9eff..ea158841259 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysession.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysession.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html index d54e1943765..5714ed35e34 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-syntax-mediakeysystemaccess.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-unique-origin.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-unique-origin.https.html index a344ae5c070..3e13ab5a6c1 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-unique-origin.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-unique-origin.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.https.html index 772806ae87a..dc5197b3569 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-mp4-waiting-for-a-key.https.html @@ -14,7 +14,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-not-callable-after-createsession.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-not-callable-after-createsession.https.html index 2fcdc839f22..c783a179a82 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-not-callable-after-createsession.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-not-callable-after-createsession.https.html @@ -12,7 +12,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/drm-temporary-license-type.https.html b/tests/wpt/web-platform-tests/encrypted-media/drm-temporary-license-type.https.html index dd114659003..90d84cc86bd 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/drm-temporary-license-type.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/drm-temporary-license-type.https.html @@ -13,7 +13,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/idlharness.https.html b/tests/wpt/web-platform-tests/encrypted-media/idlharness.https.html index b8bdf46c100..18c8f89ea21 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/idlharness.https.html +++ b/tests/wpt/web-platform-tests/encrypted-media/idlharness.https.html @@ -10,7 +10,6 @@ -

    Description

    diff --git a/tests/wpt/web-platform-tests/encrypted-media/resources/clearkey-retrieve-destroy-persistent-license.html b/tests/wpt/web-platform-tests/encrypted-media/resources/clearkey-retrieve-destroy-persistent-license.html index 3178c860150..a5a63dbf636 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/resources/clearkey-retrieve-destroy-persistent-license.html +++ b/tests/wpt/web-platform-tests/encrypted-media/resources/clearkey-retrieve-destroy-persistent-license.html @@ -7,7 +7,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/resources/clearkey-retrieve-persistent-license.html b/tests/wpt/web-platform-tests/encrypted-media/resources/clearkey-retrieve-persistent-license.html index 0562322203c..4716b425499 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/resources/clearkey-retrieve-persistent-license.html +++ b/tests/wpt/web-platform-tests/encrypted-media/resources/clearkey-retrieve-persistent-license.html @@ -7,7 +7,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html b/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html index 0803eb14960..6564d8e6067 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html +++ b/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-destroy-persistent-license.html @@ -7,7 +7,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-license.html b/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-license.html index b6a0ae2a6cf..bf554248f43 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-license.html +++ b/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-license.html @@ -7,7 +7,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-usage-record.html b/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-usage-record.html index a98c438ef5c..d1b3e0c6949 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-usage-record.html +++ b/tests/wpt/web-platform-tests/encrypted-media/resources/drm-retrieve-persistent-usage-record.html @@ -7,7 +7,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/resources/retrieve-persistent-usage-record.html b/tests/wpt/web-platform-tests/encrypted-media/resources/retrieve-persistent-usage-record.html index 3a4262b179c..c09134b5469 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/resources/retrieve-persistent-usage-record.html +++ b/tests/wpt/web-platform-tests/encrypted-media/resources/retrieve-persistent-usage-record.html @@ -7,7 +7,6 @@ - diff --git a/tests/wpt/web-platform-tests/encrypted-media/util/fetch.js b/tests/wpt/web-platform-tests/encrypted-media/util/fetch.js deleted file mode 100644 index d14d00bdbe2..00000000000 --- a/tests/wpt/web-platform-tests/encrypted-media/util/fetch.js +++ /dev/null @@ -1,456 +0,0 @@ -// https://github.com/github/fetch -// -// Copyright (c) 2014-2016 GitHub, Inc. -// -// Permission is hereby granted, free of charge, to any person obtaining -// a copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to -// permit persons to whom the Software is furnished to do so, subject to -// the following conditions: -// -// The above copyright notice and this permission notice shall be -// included in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -(function(self) { - 'use strict'; - - if (self.fetch) { - return - } - - var support = { - searchParams: 'URLSearchParams' in self, - iterable: 'Symbol' in self && 'iterator' in Symbol, - blob: 'FileReader' in self && 'Blob' in self && (function() { - try { - new Blob() - return true - } catch(e) { - return false - } - })(), - formData: 'FormData' in self, - arrayBuffer: 'ArrayBuffer' in self - } - - function normalizeName(name) { - if (typeof name !== 'string') { - name = String(name) - } - if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) { - throw new TypeError('Invalid character in header field name') - } - return name.toLowerCase() - } - - function normalizeValue(value) { - if (typeof value !== 'string') { - value = String(value) - } - return value - } - - // Build a destructive iterator for the value list - function iteratorFor(items) { - var iterator = { - next: function() { - var value = items.shift() - return {done: value === undefined, value: value} - } - } - - if (support.iterable) { - iterator[Symbol.iterator] = function() { - return iterator - } - } - - return iterator - } - - function Headers(headers) { - this.map = {} - - if (headers instanceof Headers) { - headers.forEach(function(value, name) { - this.append(name, value) - }, this) - - } else if (headers) { - Object.getOwnPropertyNames(headers).forEach(function(name) { - this.append(name, headers[name]) - }, this) - } - } - - Headers.prototype.append = function(name, value) { - name = normalizeName(name) - value = normalizeValue(value) - var list = this.map[name] - if (!list) { - list = [] - this.map[name] = list - } - list.push(value) - } - - Headers.prototype['delete'] = function(name) { - delete this.map[normalizeName(name)] - } - - Headers.prototype.get = function(name) { - var values = this.map[normalizeName(name)] - return values ? values[0] : null - } - - Headers.prototype.getAll = function(name) { - return this.map[normalizeName(name)] || [] - } - - Headers.prototype.has = function(name) { - return this.map.hasOwnProperty(normalizeName(name)) - } - - Headers.prototype.set = function(name, value) { - this.map[normalizeName(name)] = [normalizeValue(value)] - } - - Headers.prototype.forEach = function(callback, thisArg) { - Object.getOwnPropertyNames(this.map).forEach(function(name) { - this.map[name].forEach(function(value) { - callback.call(thisArg, value, name, this) - }, this) - }, this) - } - - Headers.prototype.keys = function() { - var items = [] - this.forEach(function(value, name) { items.push(name) }) - return iteratorFor(items) - } - - Headers.prototype.values = function() { - var items = [] - this.forEach(function(value) { items.push(value) }) - return iteratorFor(items) - } - - Headers.prototype.entries = function() { - var items = [] - this.forEach(function(value, name) { items.push([name, value]) }) - return iteratorFor(items) - } - - if (support.iterable) { - Headers.prototype[Symbol.iterator] = Headers.prototype.entries - } - - function consumed(body) { - if (body.bodyUsed) { - return Promise.reject(new TypeError('Already read')) - } - body.bodyUsed = true - } - - function fileReaderReady(reader) { - return new Promise(function(resolve, reject) { - reader.onload = function() { - resolve(reader.result) - } - reader.onerror = function() { - reject(reader.error) - } - }) - } - - function readBlobAsArrayBuffer(blob) { - var reader = new FileReader() - reader.readAsArrayBuffer(blob) - return fileReaderReady(reader) - } - - function readBlobAsText(blob) { - var reader = new FileReader() - reader.readAsText(blob) - return fileReaderReady(reader) - } - - function Body() { - this.bodyUsed = false - - this._initBody = function(body) { - this._bodyInit = body - if (typeof body === 'string') { - this._bodyText = body - } else if (support.blob && Blob.prototype.isPrototypeOf(body)) { - this._bodyBlob = body - } else if (support.formData && FormData.prototype.isPrototypeOf(body)) { - this._bodyFormData = body - } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { - this._bodyText = body.toString() - } else if (!body) { - this._bodyText = '' - } else if (support.arrayBuffer && ArrayBuffer.prototype.isPrototypeOf(body)) { - // Only support ArrayBuffers for POST method. - // Receiving ArrayBuffers happens via Blobs, instead. - } else { - throw new Error('unsupported BodyInit type') - } - - if (!this.headers.get('content-type')) { - if (typeof body === 'string') { - this.headers.set('content-type', 'text/plain;charset=UTF-8') - } else if (this._bodyBlob && this._bodyBlob.type) { - this.headers.set('content-type', this._bodyBlob.type) - } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) { - this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8') - } - } - } - - if (support.blob) { - this.blob = function() { - var rejected = consumed(this) - if (rejected) { - return rejected - } - - if (this._bodyBlob) { - return Promise.resolve(this._bodyBlob) - } else if (this._bodyFormData) { - throw new Error('could not read FormData body as blob') - } else { - return Promise.resolve(new Blob([this._bodyText])) - } - } - - this.arrayBuffer = function() { - return this.blob().then(readBlobAsArrayBuffer) - } - - this.text = function() { - var rejected = consumed(this) - if (rejected) { - return rejected - } - - if (this._bodyBlob) { - return readBlobAsText(this._bodyBlob) - } else if (this._bodyFormData) { - throw new Error('could not read FormData body as text') - } else { - return Promise.resolve(this._bodyText) - } - } - } else { - this.text = function() { - var rejected = consumed(this) - return rejected ? rejected : Promise.resolve(this._bodyText) - } - } - - if (support.formData) { - this.formData = function() { - return this.text().then(decode) - } - } - - this.json = function() { - return this.text().then(JSON.parse) - } - - return this - } - - // HTTP methods whose capitalization should be normalized - var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'] - - function normalizeMethod(method) { - var upcased = method.toUpperCase() - return (methods.indexOf(upcased) > -1) ? upcased : method - } - - function Request(input, options) { - options = options || {} - var body = options.body - if (Request.prototype.isPrototypeOf(input)) { - if (input.bodyUsed) { - throw new TypeError('Already read') - } - this.url = input.url - this.credentials = input.credentials - if (!options.headers) { - this.headers = new Headers(input.headers) - } - this.method = input.method - this.mode = input.mode - if (!body) { - body = input._bodyInit - input.bodyUsed = true - } - } else { - this.url = input - } - - this.credentials = options.credentials || this.credentials || 'omit' - if (options.headers || !this.headers) { - this.headers = new Headers(options.headers) - } - this.method = normalizeMethod(options.method || this.method || 'GET') - this.mode = options.mode || this.mode || null - this.referrer = null - - if ((this.method === 'GET' || this.method === 'HEAD') && body) { - throw new TypeError('Body not allowed for GET or HEAD requests') - } - this._initBody(body) - } - - Request.prototype.clone = function() { - return new Request(this) - } - - function decode(body) { - var form = new FormData() - body.trim().split('&').forEach(function(bytes) { - if (bytes) { - var split = bytes.split('=') - var name = split.shift().replace(/\+/g, ' ') - var value = split.join('=').replace(/\+/g, ' ') - form.append(decodeURIComponent(name), decodeURIComponent(value)) - } - }) - return form - } - - function headers(xhr) { - var head = new Headers() - var pairs = (xhr.getAllResponseHeaders() || '').trim().split('\n') - pairs.forEach(function(header) { - var split = header.trim().split(':') - var key = split.shift().trim() - var value = split.join(':').trim() - head.append(key, value) - }) - return head - } - - Body.call(Request.prototype) - - function Response(bodyInit, options) { - if (!options) { - options = {} - } - - this.type = 'default' - this.status = options.status - this.ok = this.status >= 200 && this.status < 300 - this.statusText = options.statusText - this.headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers) - this.url = options.url || '' - this._initBody(bodyInit) - } - - Body.call(Response.prototype) - - Response.prototype.clone = function() { - return new Response(this._bodyInit, { - status: this.status, - statusText: this.statusText, - headers: new Headers(this.headers), - url: this.url - }) - } - - Response.error = function() { - var response = new Response(null, {status: 0, statusText: ''}) - response.type = 'error' - return response - } - - var redirectStatuses = [301, 302, 303, 307, 308] - - Response.redirect = function(url, status) { - if (redirectStatuses.indexOf(status) === -1) { - throw new RangeError('Invalid status code') - } - - return new Response(null, {status: status, headers: {location: url}}) - } - - self.Headers = Headers - self.Request = Request - self.Response = Response - - self.fetch = function(input, init) { - return new Promise(function(resolve, reject) { - var request - if (Request.prototype.isPrototypeOf(input) && !init) { - request = input - } else { - request = new Request(input, init) - } - - var xhr = new XMLHttpRequest() - - function responseURL() { - if ('responseURL' in xhr) { - return xhr.responseURL - } - - // Avoid security warnings on getResponseHeader when not allowed by CORS - if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) { - return xhr.getResponseHeader('X-Request-URL') - } - - return - } - - xhr.onload = function() { - var options = { - status: xhr.status, - statusText: xhr.statusText, - headers: headers(xhr), - url: responseURL() - } - var body = 'response' in xhr ? xhr.response : xhr.responseText - resolve(new Response(body, options)) - } - - xhr.onerror = function() { - reject(new TypeError('Network request failed')) - } - - xhr.ontimeout = function() { - reject(new TypeError('Network request failed')) - } - - xhr.open(request.method, request.url, true) - - if (request.credentials === 'include') { - xhr.withCredentials = true - } - - if ('responseType' in xhr && support.blob) { - xhr.responseType = 'blob' - } - - request.headers.forEach(function(value, name) { - xhr.setRequestHeader(name, value) - }) - - xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit) - }) - } - self.fetch.polyfill = true -})(typeof self !== 'undefined' ? self : this); \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/encrypted-media/util/utf8.js b/tests/wpt/web-platform-tests/encrypted-media/util/utf8.js index 5b11760137c..aea5ad7626d 100644 --- a/tests/wpt/web-platform-tests/encrypted-media/util/utf8.js +++ b/tests/wpt/web-platform-tests/encrypted-media/util/utf8.js @@ -1,22 +1,2 @@ -if ( typeof TextEncoder !== "undefined" && typeof TextDecoder !== "undefined" ) -{ - utf8encoder = new TextEncoder('utf-8'); - utf8decoder = new TextDecoder('utf-8'); -} -else -{ - utf8encoder = { encode: function( text ) - { - var result = new Uint8Array(text.length); - for(var i = 0; i < text.length; i++) { result[i] = text.charCodeAt(i); } - return result; - } }; - - utf8decoder = { decode: function( buffer ) - { - return String.fromCharCode.apply(null, new Uint8Array(buffer)); - } }; -} - -toUtf8 = function( o ) { return utf8encoder.encode( JSON.stringify( o ) ); } -fromUtf8 = function( t ) { return JSON.parse( utf8decoder.decode( t ) ); } \ No newline at end of file +toUtf8 = function( o ) { return new TextEncoder().encode( JSON.stringify( o ) ); } +fromUtf8 = function( t ) { return JSON.parse( new TextDecoder().decode( t ) ); } diff --git a/tests/wpt/web-platform-tests/fetch/api/basic/request-forbidden-headers.any.js b/tests/wpt/web-platform-tests/fetch/api/basic/request-forbidden-headers.any.js index fa5e277abe2..511ce601e7c 100644 --- a/tests/wpt/web-platform-tests/fetch/api/basic/request-forbidden-headers.any.js +++ b/tests/wpt/web-platform-tests/fetch/api/basic/request-forbidden-headers.any.js @@ -36,6 +36,9 @@ requestForbiddenHeaders("Accept-Encoding is a forbidden request header", {"Accep requestForbiddenHeaders("Access-Control-Request-Headers is a forbidden request header", {"Access-Control-Request-Headers": ""}); requestForbiddenHeaders("Access-Control-Request-Method is a forbidden request header", {"Access-Control-Request-Method": ""}); +requestForbiddenHeaders( + 'Access-Control-Request-Private-Network is a forbidden request header', + {'Access-Control-Request-Private-Network': ''}); requestForbiddenHeaders("Connection is a forbidden request header", {"Connection": "close"}); requestForbiddenHeaders("Content-Length is a forbidden request header", {"Content-Length": "42"}); requestForbiddenHeaders("Cookie is a forbidden request header", {"Cookie": "cookie=none"}); diff --git a/tests/wpt/web-platform-tests/fetch/api/request/request-headers.any.js b/tests/wpt/web-platform-tests/fetch/api/request/request-headers.any.js index cb34e5a790a..b73b398013a 100644 --- a/tests/wpt/web-platform-tests/fetch/api/request/request-headers.any.js +++ b/tests/wpt/web-platform-tests/fetch/api/request/request-headers.any.js @@ -17,6 +17,7 @@ var invalidRequestHeaders = [ ["Accept-Encoding", "KO"], ["Access-Control-Request-Headers", "KO"], ["Access-Control-Request-Method", "KO"], + ["Access-Control-Request-Private-Network", "KO"], ["Connection", "KO"], ["Content-Length", "KO"], ["Cookie", "KO"], diff --git a/tests/wpt/web-platform-tests/fetch/orb/resources/data.json b/tests/wpt/web-platform-tests/fetch/orb/resources/data.json new file mode 100644 index 00000000000..f2a886f39de --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/resources/data.json @@ -0,0 +1,3 @@ +{ + "hello": "world" +} diff --git a/tests/wpt/web-platform-tests/fetch/orb/resources/font.ttf b/tests/wpt/web-platform-tests/fetch/orb/resources/font.ttf new file mode 100644 index 00000000000..9023592ef5a Binary files /dev/null and b/tests/wpt/web-platform-tests/fetch/orb/resources/font.ttf differ diff --git a/tests/wpt/web-platform-tests/fetch/orb/resources/image.png b/tests/wpt/web-platform-tests/fetch/orb/resources/image.png new file mode 100644 index 00000000000..820f8cace21 Binary files /dev/null and b/tests/wpt/web-platform-tests/fetch/orb/resources/image.png differ diff --git a/tests/wpt/web-platform-tests/fetch/orb/resources/script.js b/tests/wpt/web-platform-tests/fetch/orb/resources/script.js new file mode 100644 index 00000000000..19675d25d83 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/resources/script.js @@ -0,0 +1,4 @@ +"use strict"; +function fn() { + return 42; +} diff --git a/tests/wpt/web-platform-tests/fetch/orb/resources/sound.mp3 b/tests/wpt/web-platform-tests/fetch/orb/resources/sound.mp3 new file mode 100644 index 00000000000..a15d1de328f Binary files /dev/null and b/tests/wpt/web-platform-tests/fetch/orb/resources/sound.mp3 differ diff --git a/tests/wpt/web-platform-tests/fetch/orb/resources/text.txt b/tests/wpt/web-platform-tests/fetch/orb/resources/text.txt new file mode 100644 index 00000000000..270c611ee72 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/resources/text.txt @@ -0,0 +1 @@ +hello, world! diff --git a/tests/wpt/web-platform-tests/fetch/orb/resources/utils.js b/tests/wpt/web-platform-tests/fetch/orb/resources/utils.js new file mode 100644 index 00000000000..94a2177f079 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/resources/utils.js @@ -0,0 +1,18 @@ +function header(name, value) { + return `header(${name},${value})`; +} + +function contentType(type) { + return header("Content-Type", type); +} + +function contentTypeOptions(type) { + return header("X-Content-Type-Options", type); +} + +function fetchORB(file, options, ...pipe) { + return fetch(`${file}${pipe.length ? `?pipe=${pipe.join("|")}` : ""}`, { + ...(options || {}), + mode: "no-cors", + }); +} diff --git a/tests/wpt/web-platform-tests/fetch/orb/tentative/content-range.sub.any.js b/tests/wpt/web-platform-tests/fetch/orb/tentative/content-range.sub.any.js new file mode 100644 index 00000000000..ee97521a55c --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/tentative/content-range.sub.any.js @@ -0,0 +1,31 @@ +// META: script=/fetch/orb/resources/utils.js + +const url = + "http://{{domains[www1]}}:{{ports[http][0]}}/fetch/orb/resources/image.png"; + +promise_test(async () => { + let headers = new Headers([["Range", "bytes=0-99"]]); + await fetchORB( + url, + { headers }, + header("Content-Range", "bytes 0-99/1010"), + "slice(null,100)", + "status(206)" + ); +}, "ORB shouldn't block opaque range of image/png starting at zero"); + +promise_test( + t => + promise_rejects_js( + t, + TypeError, + fetchORB( + url, + { headers: new Headers([["Range", "bytes 10-99"]]) }, + header("Content-Range", "bytes 10-99/1010"), + "slice(10,100)", + "status(206)" + ) + ), + "ORB should block opaque range of image/png not starting at zero, that isn't subsequent" +); diff --git a/tests/wpt/web-platform-tests/fetch/orb/tentative/known-mime-type.sub.any.js b/tests/wpt/web-platform-tests/fetch/orb/tentative/known-mime-type.sub.any.js new file mode 100644 index 00000000000..a7bb6630583 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/tentative/known-mime-type.sub.any.js @@ -0,0 +1,41 @@ +// META: script=/fetch/orb/resources/utils.js + +const path = "http://{{domains[www1]}}:{{ports[http][0]}}/fetch/orb/resources"; + +promise_test( + t => + promise_rejects_js( + t, + TypeError, + fetchORB(`${path}/font.ttf`, null, contentType("font/ttf")) + ), + "ORB should block opaque font/ttf" +); + +promise_test( + t => + promise_rejects_js( + t, + TypeError, + fetchORB(`${path}/text.txt`, null, contentType("text/plain")) + ), + "ORB should block opaque text/plain" +); + +promise_test( + t => + promise_rejects_js( + t, + TypeError, + fetchORB(`${path}/data.json`, null, contentType("application/json")) + ), + "ORB should block opaque application/json" +); + +promise_test(async () => { + fetchORB(`${path}/image.png`, null, contentType("image/png")); +}, "ORB shouldn't block opaque image/png"); + +promise_test(async () => { + await fetchORB(`${path}/script.js`, null, contentType("text/javascript")); +}, "ORB shouldn't block opaque text/javascript"); diff --git a/tests/wpt/web-platform-tests/fetch/orb/tentative/nosniff.sub.any.js b/tests/wpt/web-platform-tests/fetch/orb/tentative/nosniff.sub.any.js new file mode 100644 index 00000000000..3df9d22e0b7 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/tentative/nosniff.sub.any.js @@ -0,0 +1,59 @@ +// META: script=/fetch/orb/resources/utils.js + +const path = "http://{{domains[www1]}}:{{ports[http][0]}}/fetch/orb/resources"; + +promise_test( + t => + promise_rejects_js( + t, + TypeError, + fetchORB( + `${path}/text.txt`, + null, + contentType("text/plain"), + contentTypeOptions("nosniff") + ) + ), + "ORB should block opaque text/plain with nosniff" +); + +promise_test( + t => + promise_rejects_js( + t, + TypeError, + fetchORB( + `${path}/data.json`, + null, + contentType("application/json"), + contentTypeOptions("nosniff") + ) + ), + "ORB should block opaque-response-blocklisted MIME type with nosniff" +); + +promise_test( + t => + promise_rejects_js( + t, + TypeError, + fetchORB( + `${path}/data.json`, + null, + contentType(""), + contentTypeOptions("nosniff") + ) + ), + "ORB should block opaque response with empty Content-Type and nosniff" +); + +promise_test( + () => + fetchORB( + `${path}/image.png`, + null, + contentType(""), + contentTypeOptions("nosniff") + ), + "ORB shouldn't block opaque image with empty Content-Type and nosniff" +); diff --git a/tests/wpt/web-platform-tests/fetch/orb/tentative/script-js-unlabeled-gziped.sub.html b/tests/wpt/web-platform-tests/fetch/orb/tentative/script-js-unlabeled-gziped.sub.html new file mode 100644 index 00000000000..fe854407988 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/tentative/script-js-unlabeled-gziped.sub.html @@ -0,0 +1,24 @@ + + + + + +
    + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fetch/orb/tentative/status.sub.any.js b/tests/wpt/web-platform-tests/fetch/orb/tentative/status.sub.any.js new file mode 100644 index 00000000000..b94d8b7f635 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/tentative/status.sub.any.js @@ -0,0 +1,33 @@ +// META: script=/fetch/orb/resources/utils.js + +const path = "http://{{domains[www1]}}:{{ports[http][0]}}/fetch/orb/resources"; + +promise_test( + t => + promise_rejects_js( + t, + TypeError, + fetchORB( + `${path}/data.json`, + null, + contentType("application/json"), + "status(206)" + ) + ), + "ORB should block opaque-response-blocklisted MIME type with status 206" +); + +promise_test( + t => + promise_rejects_js( + t, + TypeError, + fetchORB( + `${path}/data.json`, + null, + contentType("application/json"), + "status(302)" + ) + ), + "ORB should block opaque response with non-ok status" +); diff --git a/tests/wpt/web-platform-tests/fetch/orb/tentative/status.sub.html b/tests/wpt/web-platform-tests/fetch/orb/tentative/status.sub.html new file mode 100644 index 00000000000..a62bdeb35e4 --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/tentative/status.sub.html @@ -0,0 +1,17 @@ +'use strict'; + + + +
    + diff --git a/tests/wpt/web-platform-tests/fetch/orb/tentative/unknown-mime-type.sub.any.js b/tests/wpt/web-platform-tests/fetch/orb/tentative/unknown-mime-type.sub.any.js new file mode 100644 index 00000000000..f72ff928adb --- /dev/null +++ b/tests/wpt/web-platform-tests/fetch/orb/tentative/unknown-mime-type.sub.any.js @@ -0,0 +1,28 @@ +// META: script=/fetch/orb/resources/utils.js + +const path = "http://{{domains[www1]}}:{{ports[http][0]}}/fetch/orb/resources"; + +promise_test( + () => fetchORB(`${path}/font.ttf`, null, contentType("")), + "ORB shouldn't block opaque failed missing MIME type (font/ttf)" +); + +promise_test( + () => fetchORB(`${path}/text.txt`, null, contentType("")), + "ORB shouldn't block opaque failed missing MIME type (text/plain)" +); + +promise_test( + t => fetchORB(`${path}/data.json`, null, contentType("")), + "ORB shouldn't block opaque failed missing MIME type (application/json)" +); + +promise_test( + () => fetchORB(`${path}/image.png`, null, contentType("")), + "ORB shouldn't block opaque failed missing MIME type (image/png)" +); + +promise_test( + () => fetchORB(`${path}/script.js`, null, contentType("")), + "ORB shouldn't block opaque failed missing MIME type (text/javascript)" +); diff --git a/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/revalidate-not-blocked-by-csp.html b/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/revalidate-not-blocked-by-csp.html index 9f31ef759a3..ea70b9a9c76 100644 --- a/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/revalidate-not-blocked-by-csp.html +++ b/tests/wpt/web-platform-tests/fetch/stale-while-revalidate/revalidate-not-blocked-by-csp.html @@ -54,12 +54,14 @@ promise_test(async t => { // Query the server again and again. At some point it must have received the // revalidation request. We poll, because we don't know when the revalidation // will occur. + let query = false; while(true) { await new Promise(r => step_timeout(r, 25)); - let response = await fetch(image_src + "&query"); + let response = await fetch(`${image_src}${query ? "&query" : ""}`); let count = response.headers.get("Count"); if (count == "2") break; + query ^= true; } }, "Request revalidation aren't blocked by CSP"); diff --git a/tests/wpt/web-platform-tests/file-system-access/local_FileSystemBaseHandle-remove-manual.https.html b/tests/wpt/web-platform-tests/file-system-access/local_FileSystemBaseHandle-remove-manual.https.html index 8fded21eb92..ef7edd3aa8a 100644 --- a/tests/wpt/web-platform-tests/file-system-access/local_FileSystemBaseHandle-remove-manual.https.html +++ b/tests/wpt/web-platform-tests/file-system-access/local_FileSystemBaseHandle-remove-manual.https.html @@ -7,4 +7,4 @@ - + diff --git a/tests/wpt/web-platform-tests/fs/FileSystemBaseHandle-buckets.https.any.js b/tests/wpt/web-platform-tests/fs/FileSystemBaseHandle-buckets.https.any.js new file mode 100644 index 00000000000..6bb7d771194 --- /dev/null +++ b/tests/wpt/web-platform-tests/fs/FileSystemBaseHandle-buckets.https.any.js @@ -0,0 +1,3 @@ +// META: script=resources/test-helpers.js +// META: script=resources/sandboxed-fs-test-helpers.js +// META: script=script-tests/FileSystemBaseHandle-buckets.js diff --git a/tests/wpt/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.js b/tests/wpt/web-platform-tests/fs/FileSystemBaseHandle-remove.https.any.js similarity index 62% rename from tests/wpt/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.js rename to tests/wpt/web-platform-tests/fs/FileSystemBaseHandle-remove.https.any.js index 19c48df438f..c3c1776784e 100644 --- a/tests/wpt/web-platform-tests/file-system-access/sandboxed_FileSystemBaseHandle-remove.https.any.js +++ b/tests/wpt/web-platform-tests/fs/FileSystemBaseHandle-remove.https.any.js @@ -1,3 +1,3 @@ // META: script=resources/test-helpers.js -// META: script=../fs/resources/sandboxed-fs-test-helpers.js +// META: script=resources/sandboxed-fs-test-helpers.js // META: script=script-tests/FileSystemBaseHandle-remove.js diff --git a/tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-buckets.js b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-buckets.js new file mode 100644 index 00000000000..98261995f96 --- /dev/null +++ b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-buckets.js @@ -0,0 +1,19 @@ +'use strict'; + +directory_test(async (t, root_dir) => { + const inboxBucket = await navigator.storageBuckets.open('inbox'); + const inboxRootDir = await inboxBucket.getDirectory(); + + assert_false(await inboxRootDir.isSameEntry(root_dir)); + + const handle1 = await createEmptyFile(t, 'mtime.txt', inboxRootDir); + const handle2 = await inboxRootDir.getFileHandle('mtime.txt'); + assert_true(await handle1.isSameEntry(handle2)); +}, 'isSameEntry works as expected with buckets'); + +directory_test(async (t, root_dir) => { + const inboxBucket = await navigator.storageBuckets.open('inbox'); + await navigator.storageBuckets.delete('inbox'); + const directoryPromise = inboxBucket.getDirectory(); + await promise_rejects_dom(t, 'InvalidStateError', directoryPromise); +}, 'getDirectory promise rejects if bucket has been deleted'); diff --git a/tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-isSameEntry.js b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-isSameEntry.js index d90752744a6..e3b6d1891e1 100644 --- a/tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-isSameEntry.js +++ b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-isSameEntry.js @@ -105,14 +105,3 @@ directory_test(async (t, root_dir) => { await file_handle.isSameEntry(dir_handle), 'a file and directory handle pointing at the same path should not be considered the same entry'); }, 'isSameEntry comparing a file to a directory of the same path returns false'); - -directory_test(async (t, root_dir) => { - const inboxBucket = await navigator.storageBuckets.open('inbox'); - const inboxRootDir = await inboxBucket.getDirectory(); - - assert_false(await inboxRootDir.isSameEntry(root_dir)); - - const handle1 = await createEmptyFile(t, 'mtime.txt', inboxRootDir); - const handle2 = await inboxRootDir.getFileHandle('mtime.txt'); - assert_true(await handle1.isSameEntry(handle2)); -}, 'isSameEntry works as expected with buckets'); diff --git a/tests/wpt/web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-remove.js b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-remove.js similarity index 91% rename from tests/wpt/web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-remove.js rename to tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-remove.js index 95196db62b3..fd27ff30850 100644 --- a/tests/wpt/web-platform-tests/file-system-access/script-tests/FileSystemBaseHandle-remove.js +++ b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemBaseHandle-remove.js @@ -94,5 +94,12 @@ directory_test(async (t, root) => { promise_test(async (t) => { const root = await navigator.storage.getDirectory(); - await promise_rejects_dom(t, 'NoModificationAllowedError', root.remove()); -}, 'cannot remove the root of a sandbox file system'); + await root.getFileHandle('file.txt', {create: true}); + assert_array_equals(await getSortedDirectoryEntries(root), ['file.txt']); + + await root.remove(); + + // Creates a fresh sandboxed file system. + const newRoot = await navigator.storage.getDirectory(); + assert_array_equals(await getSortedDirectoryEntries(newRoot), []); +}, 'can remove the root of a sandbox file system'); diff --git a/tests/wpt/web-platform-tests/fs/script-tests/FileSystemDirectoryHandle-getFileHandle.js b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemDirectoryHandle-getFileHandle.js index 8685f08203c..840e85b436d 100644 --- a/tests/wpt/web-platform-tests/fs/script-tests/FileSystemDirectoryHandle-getFileHandle.js +++ b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemDirectoryHandle-getFileHandle.js @@ -15,6 +15,47 @@ directory_test(async (t, dir) => { assert_equals(await getFileContents(handle), ''); }, 'getFileHandle(create=true) creates an empty file for non-existing files'); +directory_test(async (t, dir) => { + var name = ''; + // test the ascii characters -- start after the non-character ASCII values, exclude DEL + for (let i = 32; i < 127; i++) { + // Path separators are disallowed + let disallow = false; + for (let j = 0; j < kPathSeparators.length; ++j) { + if (String.fromCharCode(i) == kPathSeparators[j]) { + disallow = true; + } + } + if (!disallow) { + name += String.fromCharCode(i); + } + } + // Add in CR, LF, FF, Tab, Vertical Tab + for (let i = 9; i < 14; i++) { + name += String.fromCharCode(i); + } + const handle = await dir.getFileHandle(name, {create: true}); + t.add_cleanup(() => dir.removeEntry(name)); + + assert_equals(handle.kind, 'file'); + assert_equals(handle.name, name); + assert_equals(await getFileSize(handle), 0); + assert_equals(await getFileContents(handle), ''); +}, 'getFileHandle(create=true) creates an empty file with all valid ASCII characters in the name'); + +directory_test(async (t, dir) => { + var name; + // A non-ASCII name + name = 'Funny cat \u{1F639}' + const handle = await dir.getFileHandle(name, {create: true}); + t.add_cleanup(() => dir.removeEntry(name)); + + assert_equals(handle.kind, 'file'); + assert_equals(handle.name, name); + assert_equals(await getFileSize(handle), 0); + assert_equals(await getFileContents(handle), ''); +}, 'getFileHandle(create=true) creates an empty file with non-ASCII characters in the name'); + directory_test(async (t, dir) => { const existing_handle = await createFileWithContents( t, 'existing-file', '1234567890', /*parent=*/ dir); diff --git a/tests/wpt/web-platform-tests/fs/script-tests/FileSystemFileHandle-move.js b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemFileHandle-move.js index 447ff9a78d9..fba0929d415 100644 --- a/tests/wpt/web-platform-tests/fs/script-tests/FileSystemFileHandle-move.js +++ b/tests/wpt/web-platform-tests/fs/script-tests/FileSystemFileHandle-move.js @@ -94,14 +94,21 @@ directory_test(async (t, root) => { await promise_rejects_dom( t, 'NoModificationAllowedError', handle.move('file-after')); - // Can't move handle to overwrite an existing file. await stream.close(); - await promise_rejects_dom( - t, 'InvalidModificationError', handle.move('file-after')); assert_array_equals( await getSortedDirectoryEntries(root), ['file-after', 'file-before']); }, 'move(name) while the destination file has an open writable fails'); +directory_test(async (t, root) => { + const handle = await createFileWithContents(t, 'file-before', 'abc', root); + const handle_dest = + await createFileWithContents(t, 'file-after', '123', root); + + await handle.move('file-after'); + assert_array_equals(await getSortedDirectoryEntries(root), ['file-after']); + assert_equals(await getFileContents(handle), 'abc'); + assert_equals(await getFileContents(handle_dest), 'abc'); +}, 'move(name) can overwrite an existing file'); directory_test(async (t, root) => { const handle = await createFileWithContents(t, 'file-before', 'foo', root); @@ -290,13 +297,23 @@ directory_test(async (t, root) => { // Assert the file is still in the source directory. assert_array_equals(await getSortedDirectoryEntries(dir_src), ['file']); - // Can't move handle to overwrite an existing file. await stream.close(); - await promise_rejects_dom( - t, 'InvalidModificationError', file.move(dir_dest)); - assert_array_equals(await getSortedDirectoryEntries(dir_src), ['file']); + assert_array_equals(await getSortedDirectoryEntries(dir_dest), ['file']); }, 'move(dir) while the destination file has an open writable fails'); +directory_test(async (t, root) => { + const dir_src = await root.getDirectoryHandle('dir-src', {create: true}); + const dir_dest = await root.getDirectoryHandle('dir-dest', {create: true}); + const file = await createFileWithContents(t, 'file', 'abc', dir_src); + const file_dest = await createFileWithContents(t, 'file', '123', dir_dest); + + await file.move(dir_dest); + assert_array_equals(await getSortedDirectoryEntries(dir_src), []); + assert_array_equals(await getSortedDirectoryEntries(dir_dest), ['file']); + assert_equals(await getFileContents(file), 'abc'); + assert_equals(await getFileContents(file_dest), 'abc'); +}, 'move(dir) can overwrite an existing file'); + directory_test(async (t, root) => { const dir_src = await root.getDirectoryHandle('dir-src', {create: true}); const dir_dest = await root.getDirectoryHandle('dir-dest', {create: true}); @@ -314,12 +331,22 @@ directory_test(async (t, root) => { // Assert the file is still in the source directory. assert_array_equals(await getSortedDirectoryEntries(dir_src), ['file-src']); - // Can't move handle to overwrite an existing file. await stream.close(); - await promise_rejects_dom( - t, 'InvalidModificationError', file.move(dir_dest, 'file-dest')); - // Assert the file is still in the source directory. - assert_array_equals(await getSortedDirectoryEntries(dir_src), ['file-src']); - assert_equals(await getFileContents(file), 'abc'); - assert_equals(await getFileSize(file), 3); + assert_array_equals(await getSortedDirectoryEntries(dir_dest), ['file-dest']); }, 'move(dir, name) while the destination file has an open writable fails'); + +directory_test(async (t, root) => { + const dir_src = await root.getDirectoryHandle('dir-src', {create: true}); + const dir_dest = await root.getDirectoryHandle('dir-dest', {create: true}); + const file = await createFileWithContents(t, 'file-src', 'abc', dir_src); + const file_dest = + await createFileWithContents(t, 'file-dest', '123', dir_dest); + + await file.move(dir_dest, 'file-dest'); + + // Assert the file has been moved to the destination directory and renamed. + assert_array_equals(await getSortedDirectoryEntries(dir_src), []); + assert_array_equals(await getSortedDirectoryEntries(dir_dest), ['file-dest']); + assert_equals(await getFileContents(file), 'abc'); + assert_equals(await getFileContents(file_dest), 'abc'); +}, 'move(dir, name) can overwrite an existing file'); diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-active-document.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-active-document.html index 8279fae5337..c96a56f3520 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-active-document.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-active-document.html @@ -1,27 +1,27 @@ -Document#exitFullscreen() when the document is not the active document + + Document#exitFullscreen() when the document is not the active document +
    diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-manual.html deleted file mode 100644 index ebe7ea2f1ca..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-manual.html +++ /dev/null @@ -1,26 +0,0 @@ - -Document#exitFullscreen() - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-in-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-in-iframe-manual.html deleted file mode 100644 index 11e6a6ac328..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-in-iframe-manual.html +++ /dev/null @@ -1,40 +0,0 @@ - -Document#exitFullscreen() for nested fullscreen inside an iframe - - - - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-in-iframe.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-in-iframe.html new file mode 100644 index 00000000000..893814dec3a --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-in-iframe.html @@ -0,0 +1,35 @@ + +Document#exitFullscreen() for nested fullscreen inside an iframe + + + + + + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-manual.html deleted file mode 100644 index eefc7b46bed..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested-manual.html +++ /dev/null @@ -1,39 +0,0 @@ - -Document#exitFullscreen() for nested fullscreen - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested.html new file mode 100644 index 00000000000..37332b9b8f7 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-nested.html @@ -0,0 +1,47 @@ + +Document#exitFullscreen() for nested fullscreen + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-timing-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-timing-manual.html deleted file mode 100644 index 6ccc365c711..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-timing-manual.html +++ /dev/null @@ -1,35 +0,0 @@ - -Document#exitFullscreen() timing - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-timing.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-timing.html new file mode 100644 index 00000000000..43e01743b98 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-timing.html @@ -0,0 +1,46 @@ + +Document#exitFullscreen() timing + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-twice-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-twice-manual.html deleted file mode 100644 index 15824885b24..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-twice-manual.html +++ /dev/null @@ -1,40 +0,0 @@ - -Document#exitFullscreen() called twice - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-twice.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-twice.html new file mode 100644 index 00000000000..aa8538cce4b --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen-twice.html @@ -0,0 +1,54 @@ + +Document#exitFullscreen() called twice + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen.html b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen.html new file mode 100644 index 00000000000..666950ff55a --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-exit-fullscreen.html @@ -0,0 +1,28 @@ + +Document#exitFullscreen() + + + + + +
    + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-element-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-element-manual.html deleted file mode 100644 index acd24e1965c..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-element-manual.html +++ /dev/null @@ -1,32 +0,0 @@ - -Document#fullscreenElement - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-element.html b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-element.html new file mode 100644 index 00000000000..8b3a16a2a86 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-element.html @@ -0,0 +1,47 @@ + +Document#fullscreenElement + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-active-document.html b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-active-document.html index 40171b510b0..360982c4a54 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-active-document.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-active-document.html @@ -1,21 +1,19 @@ -Document#fullscreenEnabled when the document is not the active document + + Document#fullscreenEnabled when the document is not the active document +
    diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-cross-origin.sub.html b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-cross-origin.sub.html index f53c72c0243..bcfc98bbcaa 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-cross-origin.sub.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-cross-origin.sub.html @@ -5,8 +5,8 @@
    - - + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen-timing.sub.html b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen-timing.sub.html index 0986cce4de7..49d91c8501d 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen-timing.sub.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen-timing.sub.html @@ -12,7 +12,7 @@ async_test((t) => { // no allowfullscreen attribute const path = location.pathname.substring(0, location.pathname.lastIndexOf('/') + 1); - iframe.src = "http://{{domains[www1]}}:{{ports[http][0]}}" + path + "resources/echo-fullscreenEnabled.html?pipe=trickle(d1)"; + iframe.src = "http://{{hosts[][]}}:{{ports[http][0]}}" + path + "resources/echo-fullscreenEnabled.html?pipe=trickle(d1)"; iframe.onload = t.step_func(() => { iframe.contentWindow.postMessage('What is document.fullscreenEnabled?', '*'); }); diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen.sub.html b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen.sub.html index 3cedbf027e9..4894fa06633 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen.sub.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen.sub.html @@ -11,7 +11,7 @@ async_test((t) => { let i = 0; const path = location.pathname.substring(0, location.pathname.lastIndexOf('/') + 1); - iframe.src = "http://{{domains[www1]}}:{{ports[http][0]}}" + path + "resources/echo-fullscreenEnabled.html"; + iframe.src = "http://{{hosts[][]}}:{{ports[http][0]}}" + path + "resources/echo-fullscreenEnabled.html"; iframe.onload = t.step_func(() => { if (i === 0) { iframe.allowFullscreen = true; diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenchange-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenchange-manual.html deleted file mode 100644 index 7415c111a3e..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenchange-manual.html +++ /dev/null @@ -1,15 +0,0 @@ - -Document#onfullscreenchange - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenchange.html b/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenchange.html new file mode 100644 index 00000000000..10503c6ccb0 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenchange.html @@ -0,0 +1,26 @@ + +Document#onfullscreenchange + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenerror.html b/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenerror.html index 02cb94820fb..ac92a9c24b9 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenerror.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/document-onfullscreenerror.html @@ -4,26 +4,21 @@
    diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-allowed.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-allowed.html new file mode 100644 index 00000000000..79890fa82f1 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-allowed.html @@ -0,0 +1,33 @@ + +Element ready check with enabled flag not set + + + + + +
    + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-allowed-cross-origin-manual.sub.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-allowed-cross-origin-manual.sub.html deleted file mode 100644 index b3e43c78069..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-allowed-cross-origin-manual.sub.html +++ /dev/null @@ -1,34 +0,0 @@ - -Element ready check with allowfullscreen attribute - - - - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-allowed-cross-origin.sub.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-allowed-cross-origin.sub.html new file mode 100644 index 00000000000..9c93ed006b4 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-allowed-cross-origin.sub.html @@ -0,0 +1,31 @@ + +Element ready check with allowfullscreen attribute + + + + + + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-containing-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-containing-iframe-manual.html deleted file mode 100644 index 8cadbf72cf7..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-containing-iframe-manual.html +++ /dev/null @@ -1,23 +0,0 @@ - -Element ready check for containing iframe - - - -
    - - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-containing-iframe.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-containing-iframe.html new file mode 100644 index 00000000000..8d55aea563b --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-containing-iframe.html @@ -0,0 +1,40 @@ + +Element ready check for containing iframe + + + + + +
    + + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-element-sibling-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-element-sibling-manual.html deleted file mode 100644 index f800093ec8e..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-element-sibling-manual.html +++ /dev/null @@ -1,25 +0,0 @@ - -Element ready check for sibling of fullscreen element - - - -
    -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-element-sibling.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-element-sibling.html new file mode 100644 index 00000000000..6394c13ee33 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-element-sibling.html @@ -0,0 +1,25 @@ + +Element ready check for sibling of fullscreen element + + + + + +
    +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-iframe-child-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-iframe-child-manual.html deleted file mode 100644 index 2563e70aca8..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-iframe-child-manual.html +++ /dev/null @@ -1,33 +0,0 @@ - -Element ready check for child of a fullscreen iframe - - - -
    - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-iframe-child.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-iframe-child.html new file mode 100644 index 00000000000..77aad41e7dc --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-fullscreen-iframe-child.html @@ -0,0 +1,32 @@ + +Element ready check for child of a fullscreen iframe + + + + + +
    + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-iframe-child-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-iframe-child-manual.html deleted file mode 100644 index b8f4f2d0817..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-iframe-child-manual.html +++ /dev/null @@ -1,20 +0,0 @@ - -Element ready check for child of iframe - - - -
    - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-iframe-child.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-iframe-child.html new file mode 100644 index 00000000000..9b9d06ad75a --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-iframe-child.html @@ -0,0 +1,23 @@ + +Element ready check for child of iframe + + + + + +
    + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-cross-origin-manual.sub.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-cross-origin-manual.sub.html deleted file mode 100644 index 8aabe97ba14..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-cross-origin-manual.sub.html +++ /dev/null @@ -1,31 +0,0 @@ - -Element ready check with no allowfullscreen attribute - - - - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-cross-origin.sub.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-cross-origin.sub.html new file mode 100644 index 00000000000..a59906ba9fc --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-cross-origin.sub.html @@ -0,0 +1,42 @@ + +Element ready check with no allowfullscreen attribute + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-manual.html deleted file mode 100644 index fa5a923b2b2..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-allowed-manual.html +++ /dev/null @@ -1,21 +0,0 @@ - -Element ready check with enabled flag not set - - - -
    - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-in-document-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-in-document-manual.html deleted file mode 100644 index 498e71db8a8..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-in-document-manual.html +++ /dev/null @@ -1,15 +0,0 @@ - -Element ready check for element not in a document - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-in-document.html b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-in-document.html new file mode 100644 index 00000000000..210ccc2acec --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-ready-check-not-in-document.html @@ -0,0 +1,26 @@ + +Element ready check for element not in a document + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-active-document.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-active-document.html index afdaf457128..bac86310590 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-active-document.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-active-document.html @@ -1,38 +1,43 @@ -Element#requestFullscreen() when the document is not the active document + + Element#requestFullscreen() when the document is not the active document +
    diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-after-error.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-after-error.html new file mode 100644 index 00000000000..42783827700 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-after-error.html @@ -0,0 +1,40 @@ + +Element#requestFullscreen() after error + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-exit-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-exit-iframe-manual.html deleted file mode 100644 index 6d5bed19f3b..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-exit-iframe-manual.html +++ /dev/null @@ -1,45 +0,0 @@ - -Element#requestFullscreen() and Document#exitFullscreen() in iframe - - - -
    - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-exit-iframe.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-exit-iframe.html new file mode 100644 index 00000000000..f0bf5f6bacf --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-exit-iframe.html @@ -0,0 +1,97 @@ + + + Element#requestFullscreen() and Document#exitFullscreen() in iframe + + + + + + +
    + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move-manual.html deleted file mode 100644 index f86e75f215c..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move-manual.html +++ /dev/null @@ -1,25 +0,0 @@ - -Element#requestFullscreen() followed by moving the element within the document - - - -
    -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual.html deleted file mode 100644 index 67922627978..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move-to-iframe-manual.html +++ /dev/null @@ -1,28 +0,0 @@ - -Element#requestFullscreen() followed by moving the element into an iframe - - - -
    -
    - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html new file mode 100644 index 00000000000..f7588350127 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move-to-iframe.html @@ -0,0 +1,61 @@ + + + Element#requestFullscreen() followed by moving the element into an iframe + + + + + + +
    +
    + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move.html new file mode 100644 index 00000000000..f031461ce5d --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-move.html @@ -0,0 +1,26 @@ + + + Element#requestFullscreen() followed by moving the element within the + document + + + + + + +
    +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual.html deleted file mode 100644 index f9444919e22..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove-iframe-manual.html +++ /dev/null @@ -1,31 +0,0 @@ - -Element#requestFullscreen() in iframe followed by removing the iframe - - - -
    - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html new file mode 100644 index 00000000000..991799a48d6 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove-iframe.html @@ -0,0 +1,49 @@ + + + Element#requestFullscreen() in iframe followed by removing the iframe + + + + + + +
    + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove-manual.html deleted file mode 100644 index 55824be1764..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove-manual.html +++ /dev/null @@ -1,26 +0,0 @@ - -Element#requestFullscreen() followed by removing the element - - - -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove.html new file mode 100644 index 00000000000..436a61b6e1e --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-and-remove.html @@ -0,0 +1,24 @@ + +Element#requestFullscreen() followed by removing the element + + + + + +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-consume-user-activation.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-consume-user-activation.html new file mode 100644 index 00000000000..cc4806711da --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-consume-user-activation.html @@ -0,0 +1,25 @@ + +Element#requestFullscreen() consumes user activation + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-cross-origin-manual.sub.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-cross-origin-manual.sub.html deleted file mode 100644 index c01bd9a2cec..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-cross-origin-manual.sub.html +++ /dev/null @@ -1,116 +0,0 @@ - -Element#requestFullscreen() works properly with a tree of cross-origin iframes - - - - - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-cross-origin.sub.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-cross-origin.sub.html new file mode 100644 index 00000000000..5f3a397bbc6 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-cross-origin.sub.html @@ -0,0 +1,143 @@ + + + Element#requestFullscreen() works properly with a tree of cross-origin iframes + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-dialog.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-dialog.html index 08091ddc01f..ee5e21306a8 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-dialog.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-dialog.html @@ -7,12 +7,18 @@
    diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-namespaces.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-namespaces.html new file mode 100644 index 00000000000..dffa8dbc900 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-namespaces.html @@ -0,0 +1,37 @@ + +Element#requestFullscreen() for an element in null namespace + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-non-top-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-non-top-manual.html deleted file mode 100644 index 0764e9c8423..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-non-top-manual.html +++ /dev/null @@ -1,30 +0,0 @@ - -Element#requestFullscreen() for non-top element in fullscreen element stack - - - -
    -
    -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-non-top.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-non-top.html new file mode 100644 index 00000000000..9bed70d695b --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-non-top.html @@ -0,0 +1,28 @@ + + + Element#requestFullscreen() for non-top element in fullscreen element stack + + + + + + +
    +
    +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-not-allowed.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-not-allowed.html index 3170c184823..e52895ad7e5 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-not-allowed.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-not-allowed.html @@ -1,29 +1,24 @@ -Element#requestFullscreen() when not allowed to request fullscreen + + Element#requestFullscreen() when not allowed to request fullscreen +
    diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-null-ns-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-null-ns-manual.html deleted file mode 100644 index 443346be7c7..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-null-ns-manual.html +++ /dev/null @@ -1,16 +0,0 @@ - -Element#requestFullscreen() for an element in null namespace - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.html index 6a0bfa1f5fa..c11f54f7b5b 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.html @@ -2,20 +2,27 @@ Element#requestFullscreen({ navigationUI }) support - + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.html index 7930dbe6fa5..b2eb60088a3 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-options.tentative.html @@ -1,19 +1,27 @@ Element#requestFullscreen({ screen }) tentative support - + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element.html new file mode 100644 index 00000000000..a2b04dd1739 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-same-element.html @@ -0,0 +1,27 @@ + +Element#requestFullscreen() on the current fullscreen element + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-same-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-same-manual.html deleted file mode 100644 index defe9ce54d0..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-same-manual.html +++ /dev/null @@ -1,30 +0,0 @@ - -Element#requestFullscreen() on the current fullscreen element - - - -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-same.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-same.html new file mode 100644 index 00000000000..8569c4df793 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-same.html @@ -0,0 +1,34 @@ + +Element#requestFullscreen() on the current fullscreen element + + + + + +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-rect-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-rect-manual.html deleted file mode 100644 index 56ae56eec17..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-rect-manual.html +++ /dev/null @@ -1,17 +0,0 @@ - -Element#requestFullscreen() for SVG rect element - - - -
    - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-rect.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-rect.html new file mode 100644 index 00000000000..44adfa68986 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-rect.html @@ -0,0 +1,31 @@ + +Element#requestFullscreen() for SVG rect element + + + + + +
    + + + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-svg-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-svg-manual.html deleted file mode 100644 index c6e473c5681..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-svg-manual.html +++ /dev/null @@ -1,17 +0,0 @@ - -Element#requestFullscreen() for SVG svg element - - - -
    - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-svg.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-svg.html new file mode 100644 index 00000000000..e579f6e7d72 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-svg-svg.html @@ -0,0 +1,20 @@ + +Element#requestFullscreen() for SVG svg element + + + + + +
    + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-timing-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-timing.html similarity index 88% rename from tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-timing-manual.html rename to tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-timing.html index 1ebf7518c3c..b7986575ffe 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-timing-manual.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-timing.html @@ -2,12 +2,13 @@ Element#requestFullscreen() timing + +
    - - -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-top.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-top.html new file mode 100644 index 00000000000..59211856ab8 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-top.html @@ -0,0 +1,34 @@ + + + Element#requestFullscreen() for top element in fullscreen element stack + + + + + + +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-twice-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-twice-manual.html deleted file mode 100644 index 06641deb48b..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-twice-manual.html +++ /dev/null @@ -1,27 +0,0 @@ - -Element#requestFullscreen() twice - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-twice-manual.tentative.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-twice-manual.tentative.html deleted file mode 100644 index a8b5531fa18..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-twice-manual.tentative.html +++ /dev/null @@ -1,46 +0,0 @@ - - -Element#requestFullscreen() twice - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-twice.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-twice.html new file mode 100644 index 00000000000..db53aec544f --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-twice.html @@ -0,0 +1,36 @@ + +Element#requestFullscreen() twice + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-elements-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-elements-manual.html deleted file mode 100644 index 11baad7da78..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-elements-manual.html +++ /dev/null @@ -1,37 +0,0 @@ - -Element#requestFullscreen() on two elements in the same document - - - -
    -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-elements-manual.tentative.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-elements-manual.tentative.html deleted file mode 100644 index 5ebc628b3b3..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-elements-manual.tentative.html +++ /dev/null @@ -1,56 +0,0 @@ - - -Element#requestFullscreen() on two elements in the same document - - - -
    -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-elements.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-elements.html new file mode 100644 index 00000000000..54419ea8fd5 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-elements.html @@ -0,0 +1,30 @@ + +Element#requestFullscreen() on two elements in the same document + + + + + + +
    +
    + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-iframes-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-iframes-manual.html deleted file mode 100644 index 916ae796950..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-iframes-manual.html +++ /dev/null @@ -1,48 +0,0 @@ - -Element#requestFullscreen() on two elements in different iframes - - - - -
    - - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-iframes-manual.tentative.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-iframes-manual.tentative.html deleted file mode 100644 index 691c221904e..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen-two-iframes-manual.tentative.html +++ /dev/null @@ -1,65 +0,0 @@ - - -Element#requestFullscreen() on two elements in different iframes - - - - -
    - - - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen.html b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen.html index 23b4d2f5bfb..fd9f2495515 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/element-request-fullscreen.html @@ -4,24 +4,16 @@ +
    diff --git a/tests/wpt/web-platform-tests/fullscreen/api/fullscreen-display-contents-ref.html b/tests/wpt/web-platform-tests/fullscreen/api/fullscreen-display-contents-ref.html deleted file mode 100644 index 2fe14fae34d..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/fullscreen-display-contents-ref.html +++ /dev/null @@ -1,8 +0,0 @@ - -Test that display:contents on fullscreen elements acts like display:block - - -
    Fullscreen Element
    -

    Fullscreen is display:block

    -

    Fullscreen::backdrop is display:block

    -

    After exiting fullscreen, element is display:contents

    diff --git a/tests/wpt/web-platform-tests/fullscreen/api/fullscreen-display-contents.html b/tests/wpt/web-platform-tests/fullscreen/api/fullscreen-display-contents.html index 618b4d4848c..fc6f232747d 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/fullscreen-display-contents.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/fullscreen-display-contents.html @@ -1,49 +1,56 @@ -Test that display:contents on fullscreen elements acts like display:block - - - - - - + + Test that display:contents on fullscreen elements acts like + display:block + + + + + + + + + +
    + -
    Fullscreen Element
    -

    Fullscreen is display:INVALID

    -

    Fullscreen::backdrop is display:INVALID

    -

    After exiting fullscreen, element is display:INVALID

    - - - - + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/promises-reject.html b/tests/wpt/web-platform-tests/fullscreen/api/promises-reject.html index 2f47d4cdcd0..4385b1646d6 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/promises-reject.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/promises-reject.html @@ -4,14 +4,19 @@
    diff --git a/tests/wpt/web-platform-tests/fullscreen/api/promises-resolve-manual.html b/tests/wpt/web-platform-tests/fullscreen/api/promises-resolve-manual.html deleted file mode 100644 index e58b8d90fed..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/api/promises-resolve-manual.html +++ /dev/null @@ -1,21 +0,0 @@ - -Promises#resolve - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/api/promises-resolve.html b/tests/wpt/web-platform-tests/fullscreen/api/promises-resolve.html new file mode 100644 index 00000000000..5b8a090628b --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/promises-resolve.html @@ -0,0 +1,31 @@ + +Promises#resolve + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/resources/attempt-fullscreen.html b/tests/wpt/web-platform-tests/fullscreen/api/resources/attempt-fullscreen.html index 9885466ebb5..98cca045160 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/resources/attempt-fullscreen.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/resources/attempt-fullscreen.html @@ -1,23 +1,48 @@ - + IFrame Fullscreen API success reporter - + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/resources/recursive-iframe-fullscreen.html b/tests/wpt/web-platform-tests/fullscreen/api/resources/recursive-iframe-fullscreen.html index f28afddac72..d242a3b3e68 100644 --- a/tests/wpt/web-platform-tests/fullscreen/api/resources/recursive-iframe-fullscreen.html +++ b/tests/wpt/web-platform-tests/fullscreen/api/resources/recursive-iframe-fullscreen.html @@ -1,78 +1,86 @@ - + Recursive IFrame Fullscreen API success reporter - + + + + window.addEventListener("message", async (e) => { + // Massage is not for us, try to pass it on... + if (e.data.name !== window.name) { + child_frame?.contentWindow.postMessage(e.data, "*"); + return; + } + switch (e.data.action) { + case "requestReport": + send_report(); + break; + case "requestFullscreen": + await go_fullscreen(); + break; + case "addIframe": + await create_child_frame(e.data.iframe); + break; + default: + window.top.postMessage(e.data, "*"); + } + }); + + diff --git a/tests/wpt/web-platform-tests/fullscreen/api/shadowroot-fullscreen-element.html b/tests/wpt/web-platform-tests/fullscreen/api/shadowroot-fullscreen-element.html new file mode 100644 index 00000000000..5e605f00aa8 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/api/shadowroot-fullscreen-element.html @@ -0,0 +1,47 @@ + + + + shadowRoot.fullscreenElement works correctly + + + +
    + +
    + + + + + + + + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe-manual.html deleted file mode 100644 index 59b2c4330f2..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe-manual.html +++ /dev/null @@ -1,40 +0,0 @@ - -Moving fullscreen document's body into a fullscreen iframe - - - - - diff --git a/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe.html b/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe.html new file mode 100644 index 00000000000..0103b2979ff --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/move-to-fullscreen-iframe.html @@ -0,0 +1,65 @@ + +Moving fullscreen document's body into a fullscreen iframe + + + + + + + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/move-to-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/move-to-iframe.html similarity index 50% rename from tests/wpt/web-platform-tests/fullscreen/model/move-to-iframe-manual.html rename to tests/wpt/web-platform-tests/fullscreen/model/move-to-iframe.html index e65081d36ca..d3a7a672982 100644 --- a/tests/wpt/web-platform-tests/fullscreen/model/move-to-iframe-manual.html +++ b/tests/wpt/web-platform-tests/fullscreen/model/move-to-iframe.html @@ -2,17 +2,25 @@ Move the fullscreen element to another document + +
    diff --git a/tests/wpt/web-platform-tests/fullscreen/model/move-to-inactive-document-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/move-to-inactive-document-manual.html deleted file mode 100644 index 3d2d6f64919..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/model/move-to-inactive-document-manual.html +++ /dev/null @@ -1,23 +0,0 @@ - -Move the fullscreen element to an inactive document - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/model/move-to-inactive-document.html b/tests/wpt/web-platform-tests/fullscreen/model/move-to-inactive-document.html new file mode 100644 index 00000000000..b9a95f29548 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/move-to-inactive-document.html @@ -0,0 +1,40 @@ + +Move the fullscreen element to an inactive document + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-child-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-child-manual.html deleted file mode 100644 index 7699152744d..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/model/remove-child-manual.html +++ /dev/null @@ -1,33 +0,0 @@ - -Remove the child of the fullscreen element - - - -
    -
    -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-child.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-child.html new file mode 100644 index 00000000000..42355dc2dab --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-child.html @@ -0,0 +1,33 @@ + +Remove the child of the fullscreen element + + + + + +
    +
    +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-first-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-first-manual.html deleted file mode 100644 index 9bee030cf90..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/model/remove-first-manual.html +++ /dev/null @@ -1,40 +0,0 @@ - -Remove the first element on the fullscreen element stack - - - -
    -
    -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-first.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-first.html new file mode 100644 index 00000000000..b4058db320c --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-first.html @@ -0,0 +1,45 @@ + +Remove the first element on the fullscreen element stack + + + + + +
    +
    +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-last-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-last-manual.html deleted file mode 100644 index 6f461abca58..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/model/remove-last-manual.html +++ /dev/null @@ -1,42 +0,0 @@ - -Remove the last element on the fullscreen element stack - - - -
    -
    -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-last.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-last.html new file mode 100644 index 00000000000..760ccaa0bab --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-last.html @@ -0,0 +1,47 @@ + +Remove the last element on the fullscreen element stack + + + + + +
    +
    +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-parent-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-parent-manual.html deleted file mode 100644 index 01a06b9dcce..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/model/remove-parent-manual.html +++ /dev/null @@ -1,33 +0,0 @@ - -Remove the parent of the fullscreen element - - - -
    -
    -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-parent.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-parent.html new file mode 100644 index 00000000000..54ff5b83712 --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-parent.html @@ -0,0 +1,34 @@ + +Remove the parent of the fullscreen element + + + + + +
    +
    +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-single-manual.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-single-manual.html deleted file mode 100644 index ba92037b9c0..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/model/remove-single-manual.html +++ /dev/null @@ -1,31 +0,0 @@ - -Remove the single element on the fullscreen element stack - - - -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/model/remove-single.html b/tests/wpt/web-platform-tests/fullscreen/model/remove-single.html new file mode 100644 index 00000000000..0401f77953a --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/model/remove-single.html @@ -0,0 +1,34 @@ + +Remove the single element on the fullscreen element stack + + + + + +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-pseudo-class-manual.html b/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-pseudo-class-manual.html deleted file mode 100644 index 0c06ba3c6df..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-pseudo-class-manual.html +++ /dev/null @@ -1,34 +0,0 @@ - -:fullscreen pseudo-class - - - -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-pseudo-class.html b/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-pseudo-class.html new file mode 100644 index 00000000000..5b02c32ef3c --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-pseudo-class.html @@ -0,0 +1,46 @@ + +:fullscreen pseudo-class + + + + + +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-scroll-manual.html b/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-scroll.html similarity index 50% rename from tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-scroll-manual.html rename to tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-scroll.html index ae57d8a9f23..87147b42e01 100644 --- a/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-scroll-manual.html +++ b/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-scroll.html @@ -10,17 +10,25 @@ -
    This page tests that entering fullscreen doesn't adjust the scroll offset
    + + +
    + This page tests that entering fullscreen doesn't adjust the scroll offset +
    diff --git a/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-size-manual.html b/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-size.html similarity index 66% rename from tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-size-manual.html rename to tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-size.html index 989a85d91c4..5138494d5d9 100644 --- a/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-size-manual.html +++ b/tests/wpt/web-platform-tests/fullscreen/rendering/fullscreen-root-block-size.html @@ -1,6 +1,7 @@ @@ -14,15 +15,19 @@ in fullscreen mode. + + diff --git a/tests/wpt/web-platform-tests/fullscreen/rendering/ua-style-iframe-manual.html b/tests/wpt/web-platform-tests/fullscreen/rendering/ua-style-iframe-manual.html deleted file mode 100644 index f2a227437a5..00000000000 --- a/tests/wpt/web-platform-tests/fullscreen/rendering/ua-style-iframe-manual.html +++ /dev/null @@ -1,46 +0,0 @@ - -User-agent levels style sheet defaults for iframe - - - - -
    -
    - diff --git a/tests/wpt/web-platform-tests/fullscreen/rendering/ua-style-iframe.html b/tests/wpt/web-platform-tests/fullscreen/rendering/ua-style-iframe.html new file mode 100644 index 00000000000..dcf1656e00c --- /dev/null +++ b/tests/wpt/web-platform-tests/fullscreen/rendering/ua-style-iframe.html @@ -0,0 +1,80 @@ + +User-agent levels style sheet defaults for iframe + + + + + + +
    +
    + diff --git a/tests/wpt/web-platform-tests/fullscreen/trusted-click.js b/tests/wpt/web-platform-tests/fullscreen/trusted-click.js index 240ee01c234..51fbce7ee43 100644 --- a/tests/wpt/web-platform-tests/fullscreen/trusted-click.js +++ b/tests/wpt/web-platform-tests/fullscreen/trusted-click.js @@ -1,42 +1,65 @@ -// Invokes callback from a trusted click event. -// -// TODO(mustaq): This method needs a cleanup. This is based on an old version -// of the HTML spec. The new spec doesn't require a callback because the user -// activation is visible across the Window object: -// https://html.spec.whatwg.org/multipage/interaction.html#tracking-user-activation. -function trusted_click(test, callback, container) -{ +/** + * Invokes callback from a trusted click event, avoiding interception by fullscreen element. + * + * @param {Element} container - Element where button will be created and clicked. + */ +function trusted_click(container = document.body) { var document = container.ownerDocument; var button = document.createElement("button"); button.textContent = "click to continue test"; button.style.display = "block"; button.style.fontSize = "20px"; button.style.padding = "10px"; - button.onclick = test.step_func(function() - { - callback(); - container.removeChild(button); + button.addEventListener("click", () => { + button.remove(); }); container.appendChild(button); + if (window.top !== window) test_driver.set_test_context(window.top); + // Race them for manually testing... + return Promise.race([ + test_driver.click(button), + new Promise((resolve) => { + button.addEventListener("click", resolve); + }), + ]); } // Invokes element.requestFullscreen() from a trusted click. -function trusted_request(test, element, container) -{ - trusted_click(test, () => { - var promise = element.requestFullscreen(); - if (promise) { - // Keep the promise resolution silent. Otherwise unhandledrejection - // may fire for the failure test cases. - promise.then(() => {}, () => {}); - } - }, container || element.parentNode); +async function trusted_request(element = document.body, whereToCreateButton = null) { + await trusted_click(whereToCreateButton ?? element.parentNode ?? element); + return element.requestFullscreen(); } -// Invokes element.requestFullscreen() from a trusted click. -function trusted_request_with_promise(test, element, container, resolve, reject) -{ - trusted_click(test, () => { - element.requestFullscreen().then(resolve, reject); - }, container || element.parentNode); +/** + * Used to await a fullscreen change event, once. + * + * @param {EventTarget} target + * @returns + */ +function fullScreenChange(target = document) { + return new Promise((resolve) => + target.addEventListener("fullscreenchange", resolve, { once: true }) + ); +} + +/** + * Sets up a message event listener, and returns a promise that resolves + * when the message from the iframe is received. + * + * @param {HTMLIFrameElement} iframe + * @returns {Promise} + */ +function promiseMessage(iframe) { + return new Promise((resolve) => { + window.addEventListener( + "message", + (e) => { + if (e.data?.report.api === "fullscreen") { + resolve(e.data); + } + }, + { once: true } + ); + iframe.contentWindow.postMessage({ action: "report" }, "*"); + }); } diff --git a/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-permission.https.html b/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-permission.https.html index a86ed5dae21..5edc80026dd 100644 --- a/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-permission.https.html +++ b/tests/wpt/web-platform-tests/generic-sensor/generic-sensor-permission.https.html @@ -13,7 +13,7 @@ for (const entry of ['accelerometer', 'gyroscope', 'magnetometer', 'ambient-light-sensor']) { promise_test(async t => { - await test_driver.set_permission({ name: entry }, 'denied', false); + await test_driver.set_permission({ name: entry }, 'denied'); const status = await navigator.permissions.query({ name: entry }); assert_class_string(status, "PermissionStatus"); @@ -21,7 +21,7 @@ for (const entry of ['accelerometer', 'gyroscope', }, `Deny ${entry} permission should work.`); promise_test(async t => { - await test_driver.set_permission({ name: entry }, 'granted', false); + await test_driver.set_permission({ name: entry }, 'granted'); const status = await navigator.permissions.query({ name: entry }); assert_class_string(status, "PermissionStatus"); diff --git a/tests/wpt/web-platform-tests/geolocation-API/disabled-by-permissions-policy.https.sub.html b/tests/wpt/web-platform-tests/geolocation-API/disabled-by-permissions-policy.https.sub.html index 9b603982b99..6bd3e3500bc 100644 --- a/tests/wpt/web-platform-tests/geolocation-API/disabled-by-permissions-policy.https.sub.html +++ b/tests/wpt/web-platform-tests/geolocation-API/disabled-by-permissions-policy.https.sub.html @@ -17,8 +17,7 @@ promise_test(async (t) => { await test_driver.set_permission( { name: "geolocation" }, - "granted", - false + "granted" ); const posError = await new Promise((resolve, reject) => { diff --git a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js index 7a4b399af88..6978cef8321 100644 --- a/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js +++ b/tests/wpt/web-platform-tests/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js @@ -237,6 +237,15 @@ extraConfig, }); } + + async createContextWithUrl(extraConfig) { + let saveUrl; + let wrapper = await this.createContext({ + executorCreator: (url) => {saveUrl = url}, + extraConfig, + }); + return [wrapper, saveUrl]; + } } // Export this class. self.RemoteContextHelper = RemoteContextHelper; diff --git a/tests/wpt/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-goes-cross-origin-domain.sub.html b/tests/wpt/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-goes-cross-origin-domain.sub.html index 239fa6ddf2f..c2a6def6c24 100644 --- a/tests/wpt/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-goes-cross-origin-domain.sub.html +++ b/tests/wpt/web-platform-tests/html/browsers/the-windowproxy-exotic-object/windowproxy-prototype-setting-goes-cross-origin-domain.sub.html @@ -12,8 +12,6 @@ diff --git a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html index c8ed1903fd8..2ac6f446496 100644 --- a/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html +++ b/tests/wpt/web-platform-tests/html/rendering/non-replaced-elements/phrasing-content-0/font-element-text-decoration-color/001-a.html @@ -2,7 +2,7 @@ The font element text decoration color quirk, 001, almost standards mode -
    Quirk should apply:
    +
    Quirks should not apply:
    foo style bar
    foo color bar
    foo color and style bar
    @@ -12,7 +12,6 @@
    foo block bar
    foo line-through bar
    foo overline bar
    -
    Quirks should not apply:
    foo span bar
    FAIL (script didn't run)
    + diff --git a/tests/wpt/web-platform-tests/html/semantics/disabled-elements/disabled-event-dispatch.tentative.html b/tests/wpt/web-platform-tests/html/semantics/disabled-elements/disabled-event-dispatch.tentative.html index 66b12b41716..c5e34a2341b 100644 --- a/tests/wpt/web-platform-tests/html/semantics/disabled-elements/disabled-event-dispatch.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/disabled-elements/disabled-event-dispatch.tentative.html @@ -18,43 +18,27 @@ + +

    There should be a green box attached to the right side of each orange box.

    + +
    +
    +
    +
    + +
    +
    +
    +
    + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-display-none.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-display-none.tentative.html new file mode 100644 index 00000000000..a4285607fd3 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-display-none.tentative.html @@ -0,0 +1,33 @@ + + +Tests that a popover can be anchored to an unrendered element. + + + + + +
    +
    + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-display-ref.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-display-ref.tentative.html index a04d2dd5ac1..b9710ee5b5e 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-display-ref.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-display-ref.tentative.html @@ -6,6 +6,7 @@
    +
    diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-multicol-display.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-multicol-display.tentative.html new file mode 100644 index 00000000000..fe65ec5ba4e --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-multicol-display.tentative.html @@ -0,0 +1,62 @@ + +Tests popovers with implicit anchors in out-of-flow boxes + + + + + + + + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-nested-display-ref.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-nested-display-ref.html new file mode 100644 index 00000000000..17311f218b2 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-nested-display-ref.html @@ -0,0 +1,56 @@ + + + + + + + + + +
    + Baz +
    + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-nested-display.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-nested-display.tentative.html new file mode 100644 index 00000000000..426c0fcb855 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-nested-display.tentative.html @@ -0,0 +1,55 @@ + + + + + + + + + + +
    + Baz +
    + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-scroll-display-ref.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-scroll-display-ref.tentative.html new file mode 100644 index 00000000000..dbaa30b047f --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-scroll-display-ref.tentative.html @@ -0,0 +1,31 @@ + + + +
    + +

    There should be a green box attached to the right side of each orange box.

    +
    + +
    + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-scroll-display.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-scroll-display.tentative.html new file mode 100644 index 00000000000..06304778129 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-anchor-scroll-display.tentative.html @@ -0,0 +1,62 @@ + + + + + + + +
    + +

    There should be a green box attached to the right side of each orange box.

    + + +
    +
    +
    +
    + +
    + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-animation-corner-cases.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-animation-corner-cases.tentative.html index a61917ca8b8..f41f7a68df9 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-animation-corner-cases.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-animation-corner-cases.tentative.html @@ -100,7 +100,9 @@ promise_test(async (t) => { assert_true(isElementVisible(popover)); assert_equals(popover.getAnimations({subtree: true}).length,0); let animation; - popover.addEventListener('popoverhide', () => { + popover.addEventListener('beforetoggle', (e) => { + if (e.newState !== "closed") + return; animation = popover.animate([{opacity: 1},{opacity: 0}],1000000); }); assert_equals(popover.getAnimations({subtree: true}).length,0,'There should be no animations yet'); @@ -111,7 +113,7 @@ promise_test(async (t) => { animation.finish(); await waitForRender(); assert_false(isElementVisible(popover),'Once the animation ends, the popover is hidden'); -},'It should be possible to use the "popoverhide" event handler to animate the hide'); +},'It should be possible to use the "beforetoggle" event handler to animate the hide'); promise_test(async (t) => { @@ -121,27 +123,31 @@ promise_test(async (t) => { popover.showPopover(); assert_true(isElementVisible(popover)); assert_equals(popover.getAnimations({subtree: true}).length,0); - popover.addEventListener('popoverhide', () => { - popover.animate([{opacity: 1},{opacity: 0}],1000000); + let animation; + popover.addEventListener('beforetoggle', (e) => { + if (e.newState !== "closed") + return; + animation = popover.animate([{opacity: 1},{opacity: 0}],1000000); }); assert_equals(popover.getAnimations({subtree: true}).length,0,'There should be no animations yet'); dialog.showModal(); // Force hide the popover await waitForRender(); assert_equals(popover.getAnimations({subtree: true}).length,1,'the hide animation should now be running'); - assert_false(isElementVisible(popover),'But the animation should *not* keep the popover visible in this case'); -},'It should *not* be possible to use the "popoverhide" event handler to animate the hide, if the hide is due to dialog.showModal'); + assert_true(isElementVisible(popover),'And the animation should keep the popover visible'); + animation.finish(); + await waitForRender(); + assert_false(isElementVisible(popover),'Once the animation ends, the popover is hidden'); +},'It should be possible to use the "beforetoggle" event handler to animate the hide, even when the hide is due to dialog.showModal'); promise_test(async (t) => { const {popover, descendent} = createPopover(t,''); popover.showPopover(); assert_true(isElementVisible(popover)); - popover.addEventListener('popoverhide', (e) => { - e.preventDefault(); - }); + popover.addEventListener('beforetoggle', (e) => e.preventDefault()); popover.hidePopover(); await waitForRender(); assert_false(isElementVisible(popover),'Even if hide event is cancelled, the popover still closes'); -},'hide event cannot be cancelled'); +},'toggle event cannot be cancelled'); promise_test(async (t) => { const {popover, descendent} = createPopover(t,'animation'); @@ -169,7 +175,9 @@ promise_test(async (t) => { popover.showPopover(); assert_true(isElementVisible(popover)); assert_equals(popover.getAnimations({subtree: true}).length,0); - popover.addEventListener('popoverhide', () => { + popover.addEventListener('beforetoggle', (e) => { + if (e.newState !== "closed") + return; popover.animate([{opacity: 1},{opacity: 0}],1000000); }); assert_equals(popover.getAnimations({subtree: true}).length,0,'There should be no animations yet'); @@ -193,7 +201,9 @@ promise_test(async (t) => { promise_test(async (t) => { const {popover, descendent} = createPopover(t,''); popover.showPopover(); - popover.addEventListener('popoverhide', () => { + popover.addEventListener('beforetoggle', (e) => { + if (e.newState !== "closed") + return; popover.animate([{opacity: 1},{opacity: 0}],1000000); }); popover.hidePopover(); diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.tentative.html index 23aaf75d71d..37e7606670e 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-attribute-basic.tentative.html @@ -84,6 +84,14 @@ window.onload = () => { assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover() on hidden popover, it should be visible'); popover.togglePopover(); assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover() on visible popover, it should be hidden'); + popover.togglePopover(/*force=*/true); + assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover(true) on hidden popover, it should be visible'); + popover.togglePopover(/*force=*/true); + assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/true, 'After togglePopover(true) on visible popover, it should be visible'); + popover.togglePopover(/*force=*/false); + assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover(false) on visible popover, it should be hidden'); + popover.togglePopover(/*force=*/false); + assertPopoverVisibility(popover, /*isPopover*/true, /*expectedVisibility*/false, 'After togglePopover(false) on hidden popover, it should be hidden'); const parent = popover.parentElement; popover.remove(); assert_throws_dom("InvalidStateError",() => popover.showPopover(),'Calling showPopover on a disconnected popover should throw InvalidStateError'); @@ -275,7 +283,9 @@ window.onload = () => { other_popover.showPopover(); const popover = createPopover(t); popover.setAttribute('popover','auto'); - other_popover.addEventListener('popoverhide',() => { + other_popover.addEventListener('beforetoggle', (e) => { + if (e.newState !== "closed") + return; popover.setAttribute('popover','manual'); },{once: true}); assert_true(other_popover.matches(':open')); @@ -283,7 +293,7 @@ window.onload = () => { popover.showPopover(); assert_false(other_popover.matches(':open'),'unrelated popover is hidden'); assert_false(popover.matches(':open'),'popover is not shown if its type changed during show'); - },`Changing the popover type in a "popoverhide" event handler should not cause problems (during showPopover())`); + },`Changing the popover type in a "beforetoggle" event handler should not cause problems (during showPopover())`); test((t) => { const popover = createPopover(t); @@ -294,11 +304,15 @@ window.onload = () => { popover.showPopover(); other_popover.showPopover(); let nested_popover_hidden=false; - other_popover.addEventListener('popoverhide',() => { + other_popover.addEventListener('beforetoggle', (e) => { + if (e.newState !== "closed") + return; nested_popover_hidden = true; popover.setAttribute('popover','manual'); },{once: true}); - popover.addEventListener('popoverhide',() => { + popover.addEventListener('beforetoggle', (e) => { + if (e.newState !== "closed") + return; assert_true(nested_popover_hidden,'The nested popover should be hidden first'); },{once: true}); assert_true(popover.matches(':open')); @@ -307,7 +321,7 @@ window.onload = () => { assert_false(other_popover.matches(':open'),'unrelated popover is hidden'); assert_false(popover.matches(':open'),'popover is still hidden if its type changed during hide event'); assert_throws_dom("InvalidStateError",() => other_popover.hidePopover(),'Nested popover should already be hidden'); - },`Changing the popover type in a "popoverhide" event handler should not cause problems (during hidePopover())`); + },`Changing the popover type in a "beforetoggle" event handler should not cause problems (during hidePopover())`); function interpretedType(typeString,method) { if (validTypes.includes(typeString)) @@ -344,7 +358,9 @@ window.onload = () => { popover.showPopover(); assert_true(popover.matches(':open')); let gotEvent = false; - popover.addEventListener('popoverhide',() => { + popover.addEventListener('beforetoggle', (e) => { + if (e.newState !== "closed") + return; gotEvent = true; setPopoverValue(popover,inEventType,method); },{once:true}); @@ -380,7 +396,7 @@ window.onload = () => { } } } - },`Changing a popover from ${type} to ${newType} (via ${method}), and then ${inEventType} during 'popoverhide' works`); + },`Changing a popover from ${type} to ${newType} (via ${method}), and then ${inEventType} during 'beforetoggle' works`); }); }); }); @@ -403,8 +419,7 @@ window.onload = () => { assert_false(popover.matches(':closed'),'Not :closed until animations finish'); assert_true(getComputedStyle(popover).opacity > 0.9,'Animations should start on hide'); assert_throws_dom("InvalidStateError",() => popover.hidePopover(),'Calling hidePopover on a popover that is in the process of animating hide should throw InvalidStateError'); - popover.showPopover(); // But showPopover should still be ok. - popover.hidePopover(); // Clean up + assert_throws_dom("InvalidStateError",() => popover.showPopover(),'Calling showPopover on a popover that is in the process of animating hide should throw InvalidStateError'); await finishAnimations(popover); assert_true(popover.matches(':closed'),':closed should match once animations finish'); },'Exceptions are thrown even when show/hide are animated'); diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-show-event.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-beforetoggle-opening-event.tentative.html similarity index 82% rename from tests/wpt/web-platform-tests/html/semantics/popovers/popover-show-event.tentative.html rename to tests/wpt/web-platform-tests/html/semantics/popovers/popover-beforetoggle-opening-event.tentative.html index 69996bd65da..b2c3fa5d68b 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-show-event.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-beforetoggle-opening-event.tentative.html @@ -14,7 +14,9 @@ test(() => { requestAnimationFrame(() => {++frameCount;}); const popover = document.querySelector('[popover]'); const testText = 'Show Event Occurred'; - popover.addEventListener('popovershow',() => { + popover.addEventListener('beforetoggle',(e) => { + if (e.newState !== "open") + return; popover.textContent = testText; }) popover.offsetHeight; @@ -25,5 +27,5 @@ test(() => { assert_equals(popover.textContent,testText); assert_equals(frameCount,0,'nothing should be rendered before the popover is updated'); popover.hidePopover(); // Cleanup -},'Ensure the `show` event can be used to populate content before the popover renders'); +},'Ensure the `beforetoggle` event can be used to populate content before the popover renders'); diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-events.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-events.tentative.html index 78d4a22c78e..7d63ce74b7f 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-events.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-events.tentative.html @@ -17,31 +17,32 @@ window.onload = () => { assert_false(popover.matches(':open')); let showCount = 0; let hideCount = 0; - function showListener(e) { - assert_true(e.target.matches(':closed'),'The popover should be in the :closed state when the popovershow event fires.'); - assert_false(e.target.matches(':open'),'The popover should *not* be in the :open state when the popovershow event fires.'); - ++showCount; - }; - function hideListener(e) { - assert_true(e.target.matches(':open'),'The popover should be in the :open state when the popoverhide event fires.'); - assert_false(e.target.matches(':closed'),'The popover should *not* be in the :closed state when the popoverhide event fires.'); - ++hideCount; + function listener(e) { + if (e.newState === "open") { + assert_equals(e.currentState,"closed",'Popover toggleevent states should be "open" and "closed"') + assert_true(e.target.matches(':closed'),'The popover should be in the :closed state when the opening event fires.'); + assert_false(e.target.matches(':open'),'The popover should *not* be in the :open state when the opening event fires.'); + ++showCount; + } else { + assert_equals(e.currentState,"open",'Popover toggleevent states should be "open" and "closed"') + assert_equals(e.newState,"closed",'Popover toggleevent states should be "open" and "closed"') + assert_true(e.target.matches(':open'),'The popover should be in the :open state when the hiding event fires.'); + assert_false(e.target.matches(':closed'),'The popover should *not* be in the :closed state when the hiding event fires.'); + ++hideCount; + } }; switch (method) { case "listener": const controller = new AbortController(); const signal = controller.signal; t.add_cleanup(() => controller.abort()); - document.addEventListener('popovershow',showListener, {signal}); - document.addEventListener('popoverhide',hideListener, {signal}); + // The 'beforetoggle' event bubbles. + document.addEventListener('beforetoggle', listener, {signal}); break; case "attribute": - assert_false(popover.hasAttribute('onpopovershow')); - assert_false(popover.hasAttribute('onpopoverhide')); - t.add_cleanup(() => popover.removeAttribute('onpopovershow')); - t.add_cleanup(() => popover.removeAttribute('onpopoverhide')); - popover.onpopovershow = showListener; - popover.onpopoverhide = hideListener; + assert_false(popover.hasAttribute('onbeforetoggle')); + t.add_cleanup(() => popover.removeAttribute('onbeforetoggle')); + popover.onbeforetoggle = listener; break; default: assert_unreached(); } @@ -62,7 +63,7 @@ window.onload = () => { assert_false(popover.matches(':open')); assert_equals(1,showCount); assert_equals(1,hideCount); - }, `Popovershow and popoverhide events (${method}) get properly dispatched for popovers`); + }, `Toggle event (${method}) get properly dispatched for popovers`); } promise_test(async t => { @@ -71,18 +72,20 @@ window.onload = () => { const signal = controller.signal; t.add_cleanup(() => controller.abort()); let cancel = true; - popover.addEventListener('popovershow',(e) => { + popover.addEventListener('beforetoggle',(e) => { + if (e.newState !== "open") + return; if (cancel) e.preventDefault(); }, {signal}); assert_false(popover.matches(':open')); popover.showPopover(); - assert_false(popover.matches(':open'),'The "popovershow" event should be cancelable'); + assert_false(popover.matches(':open'),'The "beforetoggle" event should be cancelable for the "opening" transition'); cancel = false; popover.showPopover(); assert_true(popover.matches(':open')); popover.hidePopover(); assert_false(popover.matches(':open')); - }, 'Popovershow event is cancelable'); + }, 'Toggle event is cancelable for the "opening" transition'); }; diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-focus.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-focus.tentative.html index 10c91bcebba..82b8a5e62f6 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-focus.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-focus.tentative.html @@ -152,8 +152,9 @@ assert_equals(document.activeElement, expectedFocusedElement, `${testName} activated by popover.showPopover()`); const dialog = document.body.appendChild(document.createElement('dialog')); dialog.showModal(); - assert_false(isElementVisible(popover), 'Opening a modal dialog should hide the popover immediately'); + assert_false(popover.matches(':open'), 'Opening a modal dialog should hide the popover'); assert_not_equals(document.activeElement, priorFocus, 'prior element should *not* get focus when a modal dialog is shown'); + await finishAnimationsAndVerifyHide(popover); dialog.close(); dialog.remove(); diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-invoking-attribute.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-invoking-attribute.tentative.html index affe201b69a..5ce315ef1d9 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-invoking-attribute.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-invoking-attribute.tentative.html @@ -175,8 +175,12 @@ const popover = document.querySelector('[popover]'); const button = document.querySelector('button'); let showCount = 0; let hideCount = 0; -popover.addEventListener('popovershow',() => ++showCount); -popover.addEventListener('popoverhide',() => ++hideCount); +popover.addEventListener('beforetoggle',(e) => { + if (e.newState === "open") + ++showCount; + else + ++hideCount; + }); async function assertState(expectOpen,expectShow,expectHide) { assert_equals(popover.matches(':open'),expectOpen,'Popover open state is incorrect'); diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss-on-scroll.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss-on-scroll.tentative.html index 7a09712d814..73b3a2d6193 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss-on-scroll.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss-on-scroll.tentative.html @@ -44,7 +44,9 @@ } async_test(t => { for(let popover of popovers) { - popover.addEventListener('popoverhide',e => { + popover.addEventListener('beforetoggle',e => { + if (e.newState !== "closed") + return; assert_unreached('Scrolling should not light-dismiss a popover'); }); } diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss.tentative.html index 2a101483cb8..bdd0d12545f 100644 --- a/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss.tentative.html +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/popover-light-dismiss.tentative.html @@ -47,14 +47,18 @@ const afterp1 = document.querySelector('#after_p1'); let popover1HideCount = 0; - popover1.addEventListener('popoverhide',(e) => { + popover1.addEventListener('beforetoggle',(e) => { + if (e.newState !== "closed") + return; ++popover1HideCount; - e.preventDefault(); // 'popoverhide' should not be cancellable. + e.preventDefault(); // 'beforetoggle' should not be cancellable. }); let popover2HideCount = 0; - popover2.addEventListener('popoverhide',(e) => { + popover2.addEventListener('beforetoggle',(e) => { + if (e.newState !== "closed") + return; ++popover2HideCount; - e.preventDefault(); // 'popoverhide' should not be cancellable. + e.preventDefault(); // 'beforetoggle' should not be cancellable. }); promise_test(async () => { assert_false(popover1.matches(':open')); @@ -482,7 +486,9 @@ promise_test(async () => { p13.showPopover(); p14.showPopover(); p15.showPopover(); - p15.addEventListener('popoverhide',() => { + p15.addEventListener('beforetoggle', (e) => { + if (e.newState !== "closed") + return; p14.hidePopover(); },{once:true}); assert_true(p13.matches(':open') && p14.matches(':open') && p15.matches(':open'),'all three should be open'); diff --git a/tests/wpt/web-platform-tests/html/semantics/popovers/toggleevent-interface.tentative.html b/tests/wpt/web-platform-tests/html/semantics/popovers/toggleevent-interface.tentative.html new file mode 100644 index 00000000000..8ee63c40718 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/semantics/popovers/toggleevent-interface.tentative.html @@ -0,0 +1,207 @@ + + + + + + + + diff --git a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.html b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.html index 75d6b756a40..89ccc59817d 100644 --- a/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.html +++ b/tests/wpt/web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/valid-content-type.html @@ -29,11 +29,11 @@ import v from "../serve-with-content-type.py?fn=json-module/module.json&ct=appli check(t2, v); + + + diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/expected-fail/window-onload-test.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/expected-fail/window-onload-test.html.ini new file mode 100644 index 00000000000..e380f5e5815 --- /dev/null +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/expected-fail/window-onload-test.html.ini @@ -0,0 +1,16 @@ +[window-onload-test.html] + + [test 2] + expected: FAIL + + [test 3] + expected: FAIL + + [promise 1] + expected: FAIL + + [promise 2] + expected: FAIL + + [promise 3] + expected: FAIL diff --git a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/set_permission.https.html.ini b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/set_permission.https.html.ini index fe0d8cc157f..026e6823515 100644 --- a/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/set_permission.https.html.ini +++ b/tests/wpt/web-platform-tests/infrastructure/metadata/infrastructure/testdriver/set_permission.https.html.ini @@ -1,8 +1,8 @@ [set_permission.https.html] - [Grant Permission for one realm] + [Grant Permission] expected: if product != "chrome": FAIL - [Deny Permission, omit one realm] + [Deny Permission] expected: if product != "chrome": FAIL diff --git a/tests/wpt/web-platform-tests/infrastructure/testdriver/set_permission.https.html b/tests/wpt/web-platform-tests/infrastructure/testdriver/set_permission.https.html index af743f63828..7bc42a8538d 100644 --- a/tests/wpt/web-platform-tests/infrastructure/testdriver/set_permission.https.html +++ b/tests/wpt/web-platform-tests/infrastructure/testdriver/set_permission.https.html @@ -1,5 +1,5 @@ - + TestDriver set_permission method @@ -7,11 +7,17 @@ diff --git a/tests/wpt/web-platform-tests/interfaces/compute-pressure.idl b/tests/wpt/web-platform-tests/interfaces/compute-pressure.idl index ae409fc3046..92a105bd527 100644 --- a/tests/wpt/web-platform-tests/interfaces/compute-pressure.idl +++ b/tests/wpt/web-platform-tests/interfaces/compute-pressure.idl @@ -18,7 +18,7 @@ enum PressureSource { "cpu" }; interface PressureObserver { constructor(PressureUpdateCallback callback, optional PressureObserverOptions options = {}); - undefined observe(PressureSource source); + Promise observe(PressureSource source); undefined unobserve(PressureSource source); undefined disconnect(); sequence takeRecords(); diff --git a/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl b/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl index 19a3608b4b3..516fb59d8d4 100644 --- a/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl +++ b/tests/wpt/web-platform-tests/interfaces/picture-in-picture.idl @@ -9,7 +9,6 @@ partial interface HTMLVideoElement { attribute EventHandler onenterpictureinpicture; attribute EventHandler onleavepictureinpicture; - [CEReactions] attribute boolean autoPictureInPicture; [CEReactions] attribute boolean disablePictureInPicture; }; diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/first-letter-background.html b/tests/wpt/web-platform-tests/largest-contentful-paint/first-letter-background.html index 09fe1f5beb6..d2abd5d9c37 100644 --- a/tests/wpt/web-platform-tests/largest-contentful-paint/first-letter-background.html +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/first-letter-background.html @@ -28,7 +28,8 @@ div { assert_equals(entry.entryType, 'largest-contentful-paint'); assert_greater_than_equal(entry.renderTime, beforeLoad); assert_greater_than_equal(performance.now(), entry.renderTime); - assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime'); + assert_approx_equals(entry.startTime, entry.renderTime, 0.001, + 'startTime should be equal to renderTime to the precision of 1 millisecond.'); assert_equals(entry.duration, 0); assert_equals(entry.loadTime, 0); assert_equals(entry.id, 'target'); @@ -56,7 +57,8 @@ div { assert_equals(entry.entryType, 'largest-contentful-paint'); assert_greater_than_equal(entry.renderTime, beforeLoad, 'blaaa'); assert_greater_than_equal(performance.now(), entry.renderTime, 'bleee'); - assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime'); + assert_approx_equals(entry.startTime, entry.renderTime, 0.001, + 'startTime should be equal to renderTime to the precision of 1 millisecond.'); assert_equals(entry.duration, 0); assert_equals(entry.id, 'target2'); const div = document.getElementById('target2'); diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/larger-text.html b/tests/wpt/web-platform-tests/largest-contentful-paint/larger-text.html index ca711f22411..9ca33f06771 100644 --- a/tests/wpt/web-platform-tests/largest-contentful-paint/larger-text.html +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/larger-text.html @@ -30,7 +30,8 @@ assert_equals(entry.entryType, 'largest-contentful-paint'); assert_greater_than_equal(entry.renderTime, beforeRender); assert_greater_than_equal(performance.now(), entry.renderTime); - assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime'); + assert_approx_equals(entry.startTime, entry.renderTime, 0.001, + 'startTime should be equal to renderTime to the precision of 1 millisecond.'); assert_equals(entry.duration, 0); const div = document.getElementById('text2'); // The div styling makes it approximate the text size. diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/mouseover-heuristics-background.tentative.html b/tests/wpt/web-platform-tests/largest-contentful-paint/mouseover-heuristics-background.tentative.html new file mode 100644 index 00000000000..16cbd0f0cb9 --- /dev/null +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/mouseover-heuristics-background.tentative.html @@ -0,0 +1,19 @@ + + + + LCP mouseover heuristics ignore background-based zoom widgets + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/mouseover-heuristics-element.tentative.html b/tests/wpt/web-platform-tests/largest-contentful-paint/mouseover-heuristics-element.tentative.html new file mode 100644 index 00000000000..bbd87235e82 --- /dev/null +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/mouseover-heuristics-element.tentative.html @@ -0,0 +1,18 @@ + + + + LCP mouseover heuristics ignore element-based zoom widgets + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-load-after-fcp.tentative.html b/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-load-after-fcp.tentative.html new file mode 100644 index 00000000000..06b065be3ab --- /dev/null +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-load-after-fcp.tentative.html @@ -0,0 +1,30 @@ + + +Non-Tao Image Load and Render After FCP. + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-load-before-fcp-render-after.tentative.html b/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-load-before-fcp-render-after.tentative.html new file mode 100644 index 00000000000..57f29c35356 --- /dev/null +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-load-before-fcp-render-after.tentative.html @@ -0,0 +1,36 @@ + + +Non-Tao Image Load Before FCP and Render After FCP. + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-load-before-fcp-render-at-fcp.tentative.html b/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-load-before-fcp-render-at-fcp.tentative.html new file mode 100644 index 00000000000..b209b50c8b2 --- /dev/null +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-load-before-fcp-render-at-fcp.tentative.html @@ -0,0 +1,25 @@ + + +Non-Tao Image Load Before LCP and Render at the Same Time of FCP. + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-subsequent-lcp-candidate.tentative.html b/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-subsequent-lcp-candidate.tentative.html new file mode 100644 index 00000000000..50f9a229ea6 --- /dev/null +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/non-tao-image-subsequent-lcp-candidate.tentative.html @@ -0,0 +1,49 @@ + + +Non-Tao Image Subsequent LCP candidates. + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/observe-css-generated-text.html b/tests/wpt/web-platform-tests/largest-contentful-paint/observe-css-generated-text.html index 4869f4298cd..d4f10fb6bab 100644 --- a/tests/wpt/web-platform-tests/largest-contentful-paint/observe-css-generated-text.html +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/observe-css-generated-text.html @@ -27,8 +27,8 @@ 'Render time should be greater than time just before rendering'); assert_greater_than_equal(performance.now(), entry.renderTime, 'renderTime should be less than current time'); - assert_equals(entry.startTime, entry.renderTime, - 'startTime should equal renderTime'); + assert_approx_equals(entry.startTime, entry.renderTime, 0.001, + 'startTime should be equal to renderTime to the precision of 1 millisecond.'); assert_equals(entry.duration, 0, 'duration should be 0'); assert_greater_than_equal(entry.size, expectedSize, 'Size should match expected size'); diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/observe-text.html b/tests/wpt/web-platform-tests/largest-contentful-paint/observe-text.html index b4b485ddebd..5d0244b7e3a 100644 --- a/tests/wpt/web-platform-tests/largest-contentful-paint/observe-text.html +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/observe-text.html @@ -20,7 +20,8 @@ p { assert_equals(entry.entryType, 'largest-contentful-paint'); assert_greater_than_equal(entry.renderTime, beforeRender); assert_greater_than_equal(performance.now(), entry.renderTime); - assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime'); + assert_approx_equals(entry.startTime, entry.renderTime, 0.001, + 'startTime should be equal to renderTime to the precision of 1 millisecond.'); assert_equals(entry.duration, 0); // Some lower bound: height of at least 12 px. // Width of at least 100 px. diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/resources/largest-contentful-paint-helpers.js b/tests/wpt/web-platform-tests/largest-contentful-paint/resources/largest-contentful-paint-helpers.js index de359ebb8ad..043587ca654 100644 --- a/tests/wpt/web-platform-tests/largest-contentful-paint/resources/largest-contentful-paint-helpers.js +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/resources/largest-contentful-paint-helpers.js @@ -26,13 +26,15 @@ function checkImage(entry, expectedUrl, expectedID, expectedSize, timeLowerBound assert_equals(entry.renderTime, 0, 'renderTime should be 0'); assert_between_exclusive(entry.loadTime, timeLowerBound, performance.now(), 'loadTime should be between the lower bound and the current time'); - assert_equals(entry.startTime, entry.loadTime, 'startTime should equal loadTime'); + assert_approx_equals(entry.startTime, entry.loadTime, 0.001, + 'startTime should be equal to renderTime to the precision of 1 millisecond.'); } else { assert_between_exclusive(entry.loadTime, timeLowerBound, entry.renderTime, 'loadTime should occur between the lower bound and the renderTime'); assert_greater_than_equal(performance.now(), entry.renderTime, 'renderTime should occur before the entry is dispatched to the observer.'); - assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime'); + assert_approx_equals(entry.startTime, entry.renderTime, 0.001, + 'startTime should be equal to renderTime to the precision of 1 millisecond.'); } if (options.includes('sizeLowerBound')) { assert_greater_than(entry.size, expectedSize); @@ -62,7 +64,7 @@ const load_and_observe = url => { resolve(entryList.getEntries()[0]); } } - })).observe({type: 'largest-contentful-paint', buffered: true}); + })).observe({ type: 'largest-contentful-paint', buffered: true }); const img = new Image(); img.id = 'image_id'; img.src = url; @@ -78,7 +80,7 @@ const load_video_and_observe = url => { resolve(entryList.getEntries()[0]); } } - })).observe({type: 'largest-contentful-paint', buffered: true}); + })).observe({ type: 'largest-contentful-paint', buffered: true }); const video = document.createElement("video"); video.id = 'video_id'; video.src = url; @@ -88,3 +90,63 @@ const load_video_and_observe = url => { document.body.appendChild(video); }); }; + +const getLCPStartTime = (identifier) => { + return new Promise(resolve => { + new PerformanceObserver((entryList, observer) => { + entryList.getEntries().forEach(e => { + if (e.url.includes(identifier)) { + resolve(e); + observer.disconnect(); + } + }); + }).observe({ type: 'largest-contentful-paint', buffered: true }); + }); +} + +const getFCPStartTime = () => { + return performance.getEntriesByName('first-contentful-paint')[0]; +} + +const add_text = (text) => { + const paragraph = document.createElement('p'); + paragraph.innerHTML = text; + document.body.appendChild(paragraph); +} + +const loadImage = (url, shouldBeIgnoredForLCP = false) => { + return new Promise(function (resolve, reject) { + let image = document.createElement('img'); + image.addEventListener('load', () => { resolve(image); }); + image.addEventListener('error', reject); + image.src = url; + if (shouldBeIgnoredForLCP) + image.style.opacity = 0; + document.body.appendChild(image); + }); +} + +const checkLCPEntryForNonTaoImages = (times = {}) => { + const lcp = times['lcp']; + const fcp = times['fcp']; + const lcp_url_components = lcp.url.split('/'); + + if (lcp.loadTime <= fcp.startTime) { + assert_approx_equals(lcp.startTime, fcp.startTime, 0.001, + 'LCP start time should be the same as FCP for ' + + lcp_url_components[lcp_url_components.length - 1]) + + ' when LCP load time is less than FCP.'; + } else { + assert_approx_equals(lcp.startTime, lcp.loadTime, 0.001, + 'LCP start time should be the same as LCP load time for ' + + lcp_url_components[lcp_url_components.length - 1]) + + ' when LCP load time is no less than FCP.'; + } + + assert_equals(lcp.renderTime, 0, + 'The LCP render time of Non-Tao image should always be 0.'); +} + +const raf = () => { + return new Promise(resolve => requestAnimationFrame(resolve)); +} diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/resources/mouseover-utils.js b/tests/wpt/web-platform-tests/largest-contentful-paint/resources/mouseover-utils.js new file mode 100644 index 00000000000..1836f2e4ad2 --- /dev/null +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/resources/mouseover-utils.js @@ -0,0 +1,128 @@ +let counter = 0; +const loadImage = size => { + return event => { + let zoom; + if (location.search.includes("replace")) { + zoom = document.getElementById("image"); + } else { + zoom = new Image(); + } + zoom.src=`/images/green-${size}.png`; + ++counter; + zoom.elementTiming = "zoom" + counter; + document.body.appendChild(zoom); + } +}; +const loadBackgroundImage = size => { + return event => { + const div = document.createElement("div"); + const [width, height] = size.split("x"); + ++counter; + div.style = `background-image: + url(/images/green-${size}.png?${counter}); width: ${width}px; height: ${height}px`; + div.elementTiming = "zoom" + counter; + document.body.appendChild(div); + } +}; + +const registerMouseover = background => { + const image = document.getElementById("image"); + const span = document.getElementById("span"); + const func = background ? loadBackgroundImage : loadImage; + image.addEventListener("mouseover", func("100x50")); + span.addEventListener("mouseover", func("256x256")); +} + +const dispatch_mouseover = () => { + span.dispatchEvent(new Event("mouseover")) +}; + +const wait_for_lcp_entries = async entries_expected => { + await new Promise(resolve => { + let entries_seen = 0; + const PO = new PerformanceObserver(list => { + const entries = list.getEntries(); + for (let entry of entries) { + if (entry.url) { + entries_seen++; + } + } + if (entries_seen == entries_expected) { + PO.disconnect(); + resolve() + } else if (entries_seen > entries_expected) { + PO.disconnect(); + reject(); + } + }); + PO.observe({type: "largest-contentful-paint", buffered: true}); + }); +}; +const wait_for_element_timing_entry = async identifier => { + await new Promise(resolve => { + const PO = new PerformanceObserver(list => { + const entries = list.getEntries(); + for (let entry of entries) { + if (entry.identifier == identifier) { + PO.disconnect(); + resolve() + } + } + }); + PO.observe({type: "element", buffered: true}); + }); +}; +const wait_for_resource_timing_entry = async name => { + await new Promise(resolve => { + const PO = new PerformanceObserver(list => { + const entries = list.getEntries(); + for (let entry of entries) { + if (entry.name.includes(name)) { + PO.disconnect(); + resolve() + } + } + }); + PO.observe({type: "resource", buffered: true}); + }); +}; + +const run_mouseover_test = background => { + promise_test(async t => { + // await the first LCP entry + await wait_for_lcp_entries(1); + // Hover over the image + registerMouseover(background); + if (test_driver) { + await new test_driver.Actions().pointerMove(0, 0, {origin: image}).send(); + } + if (!background) { + await wait_for_element_timing_entry("zoom1"); + } else { + await wait_for_resource_timing_entry("png?1"); + await new Promise(r => requestAnimationFrame(r)); + } + // There's only a single LCP entry, because the zoom was skipped. + await wait_for_lcp_entries(1); + + // Wait 600 ms as the heuristic is 500 ms. + // This will no longer be necessary once the heuristic relies on Task + // Attribution. + await new Promise(r => step_timeout(r, 600)); + + // Hover over the span. + if (test_driver) { + await new test_driver.Actions().pointerMove(0, 0, {origin: span}).send(); + } + if (!background) { + await wait_for_element_timing_entry("zoom2"); + } else { + await wait_for_resource_timing_entry("png?2"); + await new Promise(r => requestAnimationFrame(r)); + } + // There are 2 LCP entries, as the image loaded due to span hover is a + // valid LCP candidate. + await wait_for_lcp_entries(2); + }, `LCP mouseover heuristics ignore ${background ? + "background" : "element"}-based zoom widgets`); +} diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/text-with-display-style.html b/tests/wpt/web-platform-tests/largest-contentful-paint/text-with-display-style.html index e041a9fc21a..69edc168c5b 100644 --- a/tests/wpt/web-platform-tests/largest-contentful-paint/text-with-display-style.html +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/text-with-display-style.html @@ -28,7 +28,8 @@ assert_equals(entry.entryType, 'largest-contentful-paint'); assert_greater_than_equal(entry.renderTime, beforeRender); assert_greater_than_equal(performance.now(), entry.renderTime); - assert_equals(entry.startTime, entry.renderTime, 'startTime should equal renderTime'); + assert_approx_equals(entry.startTime, entry.renderTime, 0.001, + 'startTime should be equal to renderTime to the precision of 1 millisecond.'); assert_equals(entry.duration, 0); // TODO: find a good way to bound text size. assert_greater_than_equal(entry.size, 500); diff --git a/tests/wpt/web-platform-tests/largest-contentful-paint/video-data-uri.html b/tests/wpt/web-platform-tests/largest-contentful-paint/video-data-uri.html new file mode 100644 index 00000000000..a26ddd14204 --- /dev/null +++ b/tests/wpt/web-platform-tests/largest-contentful-paint/video-data-uri.html @@ -0,0 +1,148 @@ + + +This test verifies a video element of data uri src triggers an LCP entry + to be emitted + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-inside-mathml-with-block-display-ref.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-inside-mathml-with-block-display-ref.html new file mode 100644 index 00000000000..8f25c9db065 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-inside-mathml-with-block-display-ref.html @@ -0,0 +1,15 @@ + + + + +floating inside display: block MathML (reference) + + +

    Test passes if you see a blue square on the left and a smaller magenta square on the right.

    +
    +
    +
    +
    +
    + + diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-inside-mathml-with-block-display.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-inside-mathml-with-block-display.html new file mode 100644 index 00000000000..f398094e15a --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-inside-mathml-with-block-display.html @@ -0,0 +1,20 @@ + + + + +floating inside display: block MathML + + + + + +

    Test passes if you see a blue square on the left and a smaller magenta square on the right.

    + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-math-ref.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-math-ref.html new file mode 100644 index 00000000000..c82f3956442 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-math-ref.html @@ -0,0 +1,14 @@ + + + + +floating math (reference) + + +

    Test passes if you see a blue square on the left and a smaller magenta square on the right.

    +
    +
    +
    +
    + + diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-math.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-math.html new file mode 100644 index 00000000000..1de54ccdcf8 --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/floating-math.html @@ -0,0 +1,19 @@ + + + + +floating math + + + + + +

    Test passes if you see a blue square on the left and a smaller magenta square on the right.

    +
    +
    + +
    + + + + diff --git a/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/not-floating-001.html b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/not-floating-001.html new file mode 100644 index 00000000000..7166dea5f8d --- /dev/null +++ b/tests/wpt/web-platform-tests/mathml/relations/css-styling/floats/not-floating-001.html @@ -0,0 +1,74 @@ + + + + +float property in math layout + + + + + + + + + +
    +
    + + + + diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.https.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.https.html index 3b52dd56936..1309d3bded8 100644 --- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.https.html +++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-getSettings.https.html @@ -11,7 +11,7 @@ image_capture_test(async t => { await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - 'granted', false); + 'granted'); const constraints = { advanced : [{ whiteBalanceMode : 'single-shot', exposureMode : 'manual', @@ -96,7 +96,7 @@ image_capture_test(async t => { image_capture_test(async t => { await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - 'denied', false); + 'denied'); let stream = await navigator.mediaDevices.getUserMedia({video: true}); let videoTrack = stream.getVideoTracks()[0]; diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-reject.https.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-reject.https.html index 2935327368d..ac6216ae199 100644 --- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-reject.https.html +++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints-reject.https.html @@ -11,7 +11,7 @@ var makePromiseTest = function(getConstraint) { image_capture_test(async (t, imageCaptureTest) => { await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - 'granted', false); + 'granted'); imageCaptureTest.mockImageCapture().state().supportsTorch = false; diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints.https.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints.https.html index e5466ede04a..bfbf04afdb5 100644 --- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints.https.html +++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-applyConstraints.https.html @@ -13,7 +13,7 @@ const meteringModeNames = ['none', 'manual', 'single-shot', 'continuous']; image_capture_test(async (t, imageCaptureTest) => { await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - 'granted', false); + 'granted'); const constraints = { advanced : [{ whiteBalanceMode : 'single-shot', exposureMode : 'manual', diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-clone.https.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-clone.https.html index c2b3e2bf8ab..3ee21031eb0 100644 --- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-clone.https.html +++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-clone.https.html @@ -11,7 +11,7 @@ // original, with a mock Mojo service implementation. image_capture_test(async (t, imageCaptureTest) => { await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - 'granted', false); + 'granted'); const constraints = { advanced : [{ whiteBalanceMode : 'single-shot', exposureMode : 'manual', @@ -126,7 +126,7 @@ image_capture_test(async (t, imageCaptureTest) => { // when cloning a MediaStreamTrack. image_capture_test(async (t, imageCaptureTest) => { await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - 'granted', false); + 'granted'); let stream = await navigator.mediaDevices.getUserMedia({video: true}); let originalVideoTrack = stream.getVideoTracks()[0]; @@ -199,7 +199,7 @@ image_capture_test(async (t, imageCaptureTest) => { // when cloning a MediaStreamTrack. image_capture_test(async (t, imageCaptureTest) => { await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - 'granted', false); + 'granted'); let stream = await navigator.mediaDevices.getUserMedia({video: true}); let originalVideoTrack = stream.getVideoTracks()[0]; diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getCapabilities.https.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getCapabilities.https.html index 8d22ad20949..6a4835a475f 100644 --- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getCapabilities.https.html +++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getCapabilities.https.html @@ -16,7 +16,7 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { image_capture_test(async (t, imageCaptureTest) => { const ptzPermission = hasPanTiltZoomPermissionGranted ? 'granted' : 'denied'; await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - ptzPermission, false); + ptzPermission); let mockCapabilities = imageCaptureTest.mockImageCapture().state(); diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getConstraints.https.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getConstraints.https.html index 18cb9dba978..70cd2f2b070 100644 --- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getConstraints.https.html +++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getConstraints.https.html @@ -32,7 +32,7 @@ const constraints = { whiteBalanceMode : "single-shot", function makePromiseTest(constraint) { image_capture_test(async function(t) { await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - 'granted', false); + 'granted'); let stream = await navigator.mediaDevices.getUserMedia({video: true}); let videoTrack = stream.getVideoTracks()[0]; diff --git a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getSettings.https.html b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getSettings.https.html index 907991d1522..bd8a1ea1008 100644 --- a/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getSettings.https.html +++ b/tests/wpt/web-platform-tests/mediacapture-image/MediaStreamTrack-getSettings.https.html @@ -17,7 +17,7 @@ function makeImageCaptureTest(hasPanTiltZoomPermissionGranted) { image_capture_test(async (t, imageCaptureTest) => { const ptzPermission = hasPanTiltZoomPermissionGranted ? 'granted' : 'denied'; await test_driver.set_permission({name: 'camera', panTiltZoom: true}, - ptzPermission, false); + ptzPermission); let mockSettings = imageCaptureTest.mockImageCapture().state(); diff --git a/tests/wpt/web-platform-tests/mediacapture-streams/permission-helper.js b/tests/wpt/web-platform-tests/mediacapture-streams/permission-helper.js index 769f3ee2424..0a237f7d438 100644 --- a/tests/wpt/web-platform-tests/mediacapture-streams/permission-helper.js +++ b/tests/wpt/web-platform-tests/mediacapture-streams/permission-helper.js @@ -4,7 +4,7 @@ async function setMediaPermission(status="granted", scope=["camera", "microphone"]) { try { for (let s of scope) { - await test_driver.set_permission({ name: s }, status, true); + await test_driver.set_permission({ name: s }, status); } } catch (e) { const noSetPermissionSupport = typeof e === "string" && e.match(/set_permission not implemented/); diff --git a/tests/wpt/web-platform-tests/mediasession/setactionhandler.html b/tests/wpt/web-platform-tests/mediasession/setactionhandler.html index 80dee47a4c2..a9df51968c6 100644 --- a/tests/wpt/web-platform-tests/mediasession/setactionhandler.html +++ b/tests/wpt/web-platform-tests/mediasession/setactionhandler.html @@ -4,20 +4,26 @@ - - - - - diff --git a/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache-reasons-stay.window.js b/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache-reasons-stay.tentative.window.js similarity index 100% rename from tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache-reasons-stay.window.js rename to tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache-reasons-stay.tentative.window.js diff --git a/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache.window.js b/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache.tentative.window.js similarity index 100% rename from tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache.window.js rename to tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-bfcache.tentative.window.js diff --git a/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.window.js b/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.tentative.window.js similarity index 100% rename from tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.window.js rename to tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-cross-origin-bfcache.tentative.window.js diff --git a/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.window.js b/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.tentative.window.js similarity index 100% rename from tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.window.js rename to tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-not-bfcached.tentative.window.js diff --git a/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-redirect-on-history.tentative.window.js b/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-redirect-on-history.tentative.window.js new file mode 100644 index 00000000000..a9d9facde82 --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-redirect-on-history.tentative.window.js @@ -0,0 +1,52 @@ +// META: title=RemoteContextHelper navigation using BFCache +// META: script=./test-helper.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js +// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js +// META: script=/websockets/constants.sub.js + +'use strict'; +const {ORIGIN, REMOTE_ORIGIN} = get_host_info(); + +// Ensure that notRestoredReasons reset after the server redirect. +promise_test(async t => { + const rcHelper = new RemoteContextHelper(); + // Open a window with noopener so that BFCache will work. + const rc1 = await rcHelper.addWindow( + /*config=*/ null, /*options=*/ {features: 'noopener'}); + // Use WebSocket to block BFCache. + await useWebSocket(rc1); + + // Create a remote context with the redirected URL. + let [rc1_redirected, saveUrl] = + await rcHelper.createContextWithUrl(/*extraConfig=*/ { + origin: 'HTTP_ORIGIN', + scripts: [], + headers: [], + }); + + const redirectUrl = `${ORIGIN}/common/redirect.py?location=${encodeURIComponent(saveUrl)}`; + // Replace the history state. + await rc1.executeScript((url) => { + window.history.replaceState(null, '', url); + }, [redirectUrl]); + + // Navigate away. + const newRemoteContextHelper = await rc1.navigateToNew(); + + // Go back. + await newRemoteContextHelper.historyBack(); + + const navigation_entry = await rc1_redirected.executeScript(() => { + return performance.getEntriesByType('navigation')[0]; + }); + assert_equals( + navigation_entry.redirectCount, 1, + 'Expected redirectCount is 1.'); + // Becauase of the redirect, notRestoredReasons is reset. + assert_equals( + navigation_entry.notRestoredReasons, null, + 'Expected notRestoredReasons is null.'); +}); diff --git a/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.window.js b/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js similarity index 100% rename from tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.window.js rename to tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-bfcache.tentative.window.js diff --git a/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-replace.tentative.window.js b/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-replace.tentative.window.js new file mode 100644 index 00000000000..5ee3c30c65f --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/not-restored-reasons/performance-navigation-timing-same-origin-replace.tentative.window.js @@ -0,0 +1,46 @@ +// META: title=RemoteContextHelper navigation using BFCache +// META: script=./test-helper.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js +// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js +// META: script=/websockets/constants.sub.js + +'use strict'; + +// Ensure that notRestoredReasons are accessible after history replace. +promise_test(async t => { + const rcHelper = new RemoteContextHelper(); + // Open a window with noopener so that BFCache will work. + const rc1 = await rcHelper.addWindow( + /*config=*/ null, /*options=*/ {features: 'noopener'}); + const rc1_url = await rc1.executeScript(() => { + return location.href; + }); + + // Use WebSocket to block BFCache. + await useWebSocket(rc1); + // Navigate away. + const newRemoteContextHelper = await rc1.navigateToNew(); + // Replace the history state to a same-origin site. + await newRemoteContextHelper.executeScript((destUrl) => { + window.history.replaceState(null, '', '#'); + }); + // Go back. + await newRemoteContextHelper.historyBack(); + + const navigation_entry = await rc1.executeScript(() => { + return performance.getEntriesByType('navigation')[0]; + }); + // Reasons are not reset for same-origin replace. + await assertNotRestoredReasonsEquals( + rc1, + /*blocked=*/ true, + /*url=*/ rc1_url, + /*src=*/ '', + /*id=*/ '', + /*name=*/ '', + /*reasons=*/['WebSocket'], + /*children=*/[]); +}); diff --git a/tests/wpt/web-platform-tests/performance-timeline/resources/child-frame.html b/tests/wpt/web-platform-tests/performance-timeline/resources/child-frame.html new file mode 100644 index 00000000000..846979358eb --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/resources/child-frame.html @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/resources/parent-frame-with-child.sub.html b/tests/wpt/web-platform-tests/performance-timeline/resources/parent-frame-with-child.sub.html new file mode 100644 index 00000000000..32dd4cb48bc --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/resources/parent-frame-with-child.sub.html @@ -0,0 +1,14 @@ + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-local-child-one-local-grandchild.html b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-local-child-one-local-grandchild.html new file mode 100644 index 00000000000..ee2dadde8f9 --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-local-child-one-local-grandchild.html @@ -0,0 +1,37 @@ + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-local-child-one-remote-child.sub.html b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-local-child-one-remote-child.sub.html new file mode 100644 index 00000000000..8e1ca9774fa --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-local-child-one-remote-child.sub.html @@ -0,0 +1,56 @@ + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-local-child.html b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-local-child.html new file mode 100644 index 00000000000..46d4079fd20 --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-local-child.html @@ -0,0 +1,37 @@ + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-remote-child-one-local-grandchild.sub.html b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-remote-child-one-local-grandchild.sub.html new file mode 100644 index 00000000000..a9efe414616 --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-remote-child-one-local-grandchild.sub.html @@ -0,0 +1,37 @@ + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-remote-child.sub.html b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-remote-child.sub.html new file mode 100644 index 00000000000..822924c18b6 --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-one-remote-child.sub.html @@ -0,0 +1,36 @@ + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-two-local-children.html b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-two-local-children.html new file mode 100644 index 00000000000..d0274050dbd --- /dev/null +++ b/tests/wpt/web-platform-tests/performance-timeline/tentative/include-frames-two-local-children.html @@ -0,0 +1,56 @@ + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/permissions-policy/resources/permissions-policy-compute-pressure.html b/tests/wpt/web-platform-tests/permissions-policy/resources/permissions-policy-compute-pressure.html index 7fac3e32767..fafe71ee049 100644 --- a/tests/wpt/web-platform-tests/permissions-policy/resources/permissions-policy-compute-pressure.html +++ b/tests/wpt/web-platform-tests/permissions-policy/resources/permissions-policy-compute-pressure.html @@ -2,11 +2,11 @@ + + + + + + + +
    +
    child
    +
    +
    done
    + + diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers.html index a6158d59d6e..c8443d99ff3 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_pointers.html @@ -31,36 +31,37 @@ return; var expectedEventType = eventList[Object.keys(detected_eventTypes).length]; detected_eventTypes[event.type] = true; - var pointerTestName = testNamePrefix + ' ' + expectedPointerType + ' ' + expectedEventType; + var pointerTestName = (testNamePrefix ? testNamePrefix + ' ' : '') + + expectedPointerType + ' ' + expectedEventType; detected_pointertypes[event.pointerType] = true; test(function() { - assert_equals(event.type, expectedEventType, "Event.type should be " + expectedEventType) - }, pointerTestName + "'s type should be " + expectedEventType); + assert_equals(event.type, expectedEventType); + }, pointerTestName + ".type should be " + expectedEventType); // Test button and buttons if (event.type == 'pointerdown') { test(function() { - assert_equals(event.button, 0, "Button attribute is 0") - }, pointerTestName + "'s button attribute is 0 when left mouse button is pressed."); + assert_equals(event.button, 0); + }, pointerTestName + ".button attribute is 0 when left mouse button is pressed."); test(function() { - assert_equals(event.buttons, 1, "Buttons attribute is 1") - }, pointerTestName + "'s buttons attribute is 1 when left mouse button is pressed."); + assert_equals(event.buttons, 1); + }, pointerTestName + ".buttons attribute is 1 when left mouse button is pressed."); } else if (event.type == 'pointerup') { test(function() { - assert_equals(event.button, 0, "Button attribute is 0") - }, pointerTestName + "'s button attribute is 0 when left mouse button is just released."); + assert_equals(event.button, 0); + }, pointerTestName + ".button attribute is 0 when left mouse button is just released."); test(function() { - assert_equals(event.buttons, 0, "Buttons attribute is 0") - }, pointerTestName + "'s buttons attribute is 0 when left mouse button is just released."); + assert_equals(event.buttons, 0); + }, pointerTestName + ".buttons attribute is 0 when left mouse button is just released."); } else { test(function() { - assert_equals(event.button, -1, "Button attribute is -1") - }, pointerTestName + "'s button is -1 when mouse buttons are in released state."); + assert_equals(event.button, -1); + }, pointerTestName + ".button is -1 when mouse buttons are in released state."); test(function() { - assert_equals(event.buttons, 0, "Buttons attribute is 0") - }, pointerTestName + "'s buttons is 0 when mouse buttons are in released state."); + assert_equals(event.buttons, 0); + }, pointerTestName + ".buttons is 0 when mouse buttons are in released state."); } // Test clientX and clientY @@ -70,38 +71,37 @@ assert_greater_than_equal(event.clientY, targetBoundingClientRect.top, "clientY should be greater or equal than top of the box"); assert_less_than_equal(event.clientX, targetBoundingClientRect.right, "clientX should be less or equal than right of the box"); assert_less_than_equal(event.clientY, targetBoundingClientRect.bottom, "clientY should be less or equal than bottom of the box"); - }, pointerTestName + "'s ClientX and ClientY attributes are correct."); + }, pointerTestName + ".clientX and .clientY attributes are correct."); } else { test(function () { - assert_true(event.clientX < targetBoundingClientRect.left || event.clientX >= targetBoundingClientRect.right || event.clientY < targetBoundingClientRect.top || event.clientY >= targetBoundingClientRect.bottom, "ClientX/Y should be out of the boundaries of the box"); - }, pointerTestName + "'s ClientX and ClientY attributes are correct."); + assert_true(event.clientX < targetBoundingClientRect.left || event.clientX >= targetBoundingClientRect.right || event.clientY < targetBoundingClientRect.top || event.clientY >= targetBoundingClientRect.bottom); + }, pointerTestName + ".clientX and .clientY attributes are correct."); } check_PointerEvent(event, testNamePrefix); // Test isPrimary test(function () { - assert_equals(event.isPrimary, true, "isPrimary should be true"); - }, pointerTestName + ".isPrimary attribute is correct."); + assert_equals(event.isPrimary, true); + }, pointerTestName + ".isPrimary attribute is true."); // Test pointerId value if (isNaN(expectedPointerId)) { expectedPointerId = event.pointerId; } else { test(function () { - assert_equals(event.pointerId, expectedPointerId, "pointerId should remain the same for the same active pointer"); + assert_equals(event.pointerId, expectedPointerId); }, pointerTestName + ".pointerId should be the same as previous pointer events for this active pointer."); } } - function run() { + async function run() { var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", [input_pointertype]); var square1 = document.getElementById("square1"); var rectSquare1 = square1.getBoundingClientRect(); var innerFrame = document.getElementById('innerFrame'); var square2 = innerFrame.contentDocument.getElementById('square2'); var rectSquare2 = square2.getBoundingClientRect(); - var actions_promise; eventList.forEach(function(eventName) { on_event(square1, eventName, function (event) { @@ -119,24 +119,16 @@ checkPointerEventAttributes(event, rectSquare2, "Inner frame "); if (Object.keys(detected_eventTypes).length == eventList.length) { square2.style.visibility = 'hidden'; - // Make sure the test finishes after all the input actions are completed. - actions_promise.then( () => { - test_pointerEvent.done(); - }); + test_pointerEvent.done(); } }); }); // Inject mouse or pen inputs. - actions_promise = clickInTarget(input_pointertype, square1).then(function() { - return moveToDocument(input_pointertype); - }).then(function() { - return clickInTarget(input_pointertype, square2); - }).then(function() { - return moveToDocument(input_pointertype); - }).then(function() { - test_pointerEvent.done(); - }); + await clickInTarget(input_pointertype, square1); + await moveToDocument(input_pointertype); + await clickInTarget(input_pointertype, square2); + await moveToDocument(input_pointertype); } diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_rightbutton.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_rightbutton.html new file mode 100644 index 00000000000..9a449ed753d --- /dev/null +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_hoverable_rightbutton.html @@ -0,0 +1,168 @@ + + + + Pointer Events properties tests + + + + + + + + + + + + + + +

    Pointer Events hoverable pointer attributes test

    +

    +
    + + + diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_nohover_pointers.html b/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_nohover_pointers.html index ec1aee83da7..d501ae0afd4 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_nohover_pointers.html +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_attributes_nohover_pointers.html @@ -28,59 +28,59 @@ return; var expectedEventType = eventList[Object.keys(detected_eventTypes).length]; detected_eventTypes[event.type] = true; - var pointerTestName = testNamePrefix + ' ' + expectedPointerType + ' ' + expectedEventType; + var pointerTestName = (testNamePrefix ? testNamePrefix + ' ' : '') + + expectedPointerType + ' ' + expectedEventType; detected_pointertypes[event.pointerType] = true; test(function() { - assert_equals(event.type, expectedEventType, "Event.type should be " + expectedEventType) - }, pointerTestName + "'s type should be " + expectedEventType); + assert_equals(event.type, expectedEventType); + }, pointerTestName + ".type should be " + expectedEventType); // Test button and buttons test(function() { - assert_equals(event.button, 0, "Button attribute is 0") - }, pointerTestName + "'s button attribute is 0 on touch-down."); + assert_equals(event.button, 0); + }, pointerTestName + ".button attribute is 0 on touch-down."); if (event.type == 'pointerdown' || event.type == 'pointerover' || event.type == 'pointerenter') { test(function() { - assert_equals(event.buttons, 1, "Buttons attribute is 1") - }, pointerTestName + "'s buttons attribute is 1 on touch-down."); + assert_equals(event.buttons, 1); + }, pointerTestName + ".buttons attribute is 1 on touch-down."); } else { test(function() { - assert_equals(event.buttons, 0, "Buttons attribute is 0") - }, pointerTestName + "'s buttons is 0 on touch-release."); + assert_equals(event.buttons, 0); + }, pointerTestName + ".buttons is 0 on touch-release."); } // Test clientX and clientY test(function () { - assert_true(event.clientX >= targetBoundingClientRect.left && event.clientX < targetBoundingClientRect.right && event.clientY >= targetBoundingClientRect.top && event.clientY < targetBoundingClientRect.bottom, "ClientX/Y should be in the boundaries of the box"); - }, pointerTestName + "'s ClientX and ClientY attributes are correct."); + assert_true(event.clientX >= targetBoundingClientRect.left && event.clientX < targetBoundingClientRect.right && event.clientY >= targetBoundingClientRect.top && event.clientY < targetBoundingClientRect.bottom); + }, pointerTestName + ".clientX and .clientY attributes are correct."); check_PointerEvent(event, testNamePrefix); // Test isPrimary test(function () { - assert_equals(event.isPrimary, true, "isPrimary should be true"); - }, pointerTestName + ".isPrimary attribute is correct."); + assert_equals(event.isPrimary, true); + }, pointerTestName + ".isPrimary attribute is true."); // Test pointerId value if (isNaN(expectedPointerId)) { expectedPointerId = event.pointerId; } else { test(function () { - assert_equals(event.pointerId, expectedPointerId, "pointerId should remain the same for the same active pointer"); + assert_equals(event.pointerId, expectedPointerId); }, pointerTestName + ".pointerId should be the same as previous pointer events for this active pointer."); } } - function run() { + async function run() { var test_pointerEvent = setup_pointerevent_test("pointerevent attributes", ['touch']); var square1 = document.getElementById("square1"); var rectSquare1 = square1.getBoundingClientRect(); var innerFrame = document.getElementById('innerFrame'); var square2 = innerFrame.contentDocument.getElementById('square2'); var rectSquare2 = square2.getBoundingClientRect(); - var actions_promise; eventList.forEach(function(eventName) { on_event(square1, eventName, function (event) { @@ -98,18 +98,14 @@ checkPointerEventAttributes(event, rectSquare2, "Inner frame "); if (Object.keys(detected_eventTypes).length == eventList.length) { square2.style.visibility = 'hidden'; - // Make sure the test finishes after all the input actions are completed. - actions_promise.then( () => { - test_pointerEvent.done(); - }); + test_pointerEvent.done(); } }); }); // Inject touch inputs. - actions_promise = clickInTarget("touch", square1).then(function() { - return clickInTarget("touch", square2); - }); + await clickInTarget("touch", square1); + await clickInTarget("touch", square2); } diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerevent_support.js b/tests/wpt/web-platform-tests/pointerevents/pointerevent_support.js index c50610a700c..a4b7adce3e5 100644 --- a/tests/wpt/web-platform-tests/pointerevents/pointerevent_support.js +++ b/tests/wpt/web-platform-tests/pointerevents/pointerevent_support.js @@ -42,30 +42,27 @@ const ButtonsBitfield = { }; // Check for conformance to PointerEvent interface -// TA: 1.1, 1.2, 1.6, 1.7, 1.8, 1.9, 1.10, 1.11, 1.12, 1.13 +// https://w3c.github.io/pointerevents/#pointerevent-interface function check_PointerEvent(event, testNamePrefix) { if (testNamePrefix === undefined) testNamePrefix = ""; // Use expectedPointerType if set otherwise just use the incoming event pointerType in the test name. - var pointerTestName = testNamePrefix + ' ' + (expectedPointerType == null ? event.pointerType : expectedPointerType) + ' ' + event.type; + var pointerTestName = (testNamePrefix ? testNamePrefix + ' ' : '') + + (expectedPointerType == null ? event.pointerType : expectedPointerType) + ' ' + event.type; if (expectedPointerType != null) { test(function () { - assert_equals(event.pointerType, expectedPointerType, "pointerType should be the one specified in the test page."); - }, pointerTestName + " event pointerType is correct."); + assert_equals(event.pointerType, expectedPointerType); + }, pointerTestName + ".pointerType is correct."); } test(function () { - assert_true(event instanceof event.target.ownerDocument.defaultView.PointerEvent, "event is a PointerEvent event"); + assert_true(event instanceof event.target.ownerDocument.defaultView.PointerEvent); }, pointerTestName + " event is a PointerEvent event"); - // Check attributes for conformance to WebIDL: - // * attribute exists - // * has proper type - // * if the attribute is "readonly", it cannot be changed - // TA: 1.1, 1.2 + // Check attributes for conformance to WebIDL (existence, type, being readable). var idl_type_check = { "long": function (v) { return typeof v === "number" && Math.round(v) === v; }, "float": function (v) { return typeof v === "number"; }, @@ -74,70 +71,68 @@ function check_PointerEvent(event, testNamePrefix) { "object": function (v) { return typeof v === "object" } }; [ - ["readonly", "long", "pointerId"], - ["readonly", "float", "width"], - ["readonly", "float", "height"], - ["readonly", "float", "pressure"], - ["readonly", "long", "tiltX"], - ["readonly", "long", "tiltY"], - ["readonly", "string", "pointerType"], - ["readonly", "boolean", "isPrimary"], - ["readonly", "long", "detail", 0], - ["readonly", "object", "fromElement", null], - ["readonly", "object", "toElement", null], - ["readonly", "boolean", "isTrusted", true] + ["long", "pointerId"], + ["float", "width"], + ["float", "height"], + ["float", "pressure"], + ["long", "tiltX"], + ["long", "tiltY"], + ["string", "pointerType"], + ["boolean", "isPrimary"], + ["long", "detail", 0], + ["object", "fromElement"], + ["object", "toElement"], + ["boolean", "isTrusted"], + ["boolean", "composed"], + ["boolean", "bubbles"] ].forEach(function (attr) { - var readonly = attr[0]; - var type = attr[1]; - var name = attr[2]; - var value = attr[3]; + var type = attr[0]; + var name = attr[1]; - // existence check test(function () { - assert_true(name in event, name + " attribute in " + event.type + " event"); - }, pointerTestName + "." + name + " attribute exists"); + // Existence check. + assert_true(name in event, "attribute exists"); - // readonly check - if (readonly === "readonly") { - test(function () { - assert_readonly(event.type, name, event.type + "." + name + " cannot be changed"); - }, pointerTestName + "." + name + " is readonly"); - } + // Readonly check. + assert_readonly(event.type, name, "attribute is readonly"); - // type check - test(function () { - assert_true(idl_type_check[type](event[name]), name + " attribute of type " + type); - }, pointerTestName + "." + name + " IDL type " + type + " (JS type was " + typeof event[name] + ")"); - - // value check if defined - if (value !== undefined) { - test(function () { - assert_equals(event[name], value, name + " attribute value"); - }, pointerTestName + "." + name + " value is " + value + "."); - } + // Type check. + assert_true(idl_type_check[type](event[name]), + "attribute type " + type + " (JS type was " + typeof event[name] + ")"); + }, pointerTestName + "." + name + " conforms to WebIDL"); }); - // Check the composed value + // Check values for inherited attributes. // https://w3c.github.io/pointerevents/#attributes-and-default-actions test(function () { - let expected = (event.type != 'pointerenter' && event.type != 'pointerleave'); - assert_equals(event.composed, expected, "composed attribute value"); - }, pointerTestName + ".composed value is valid"); - - // Check the pressure value - // TA: 1.6, 1.7, 1.8 + assert_equals(event.fromElement, null); + }, pointerTestName + ".fromElement value is null"); + test(function () { + assert_equals(event.toElement, null); + }, pointerTestName + ".toElement value is null"); + test(function () { + assert_equals(event.isTrusted, true); + }, pointerTestName + ".isTrusted value is true"); + test(function () { + let expected = (event.type != 'pointerenter' && event.type != 'pointerleave'); + assert_equals(event.composed, expected); + }, pointerTestName + ".composed value is valid"); + test(function () { + let expected = (event.type != 'pointerenter' && event.type != 'pointerleave'); + assert_equals(event.bubbles, expected); + }, pointerTestName + ".bubbles value is valid"); + + // Check the pressure value. + // https://w3c.github.io/pointerevents/#dom-pointerevent-pressure test(function () { - // TA: 1.6 assert_greater_than_equal(event.pressure, 0, "pressure is greater than or equal to 0"); assert_less_than_equal(event.pressure, 1, "pressure is less than or equal to 1"); if (event.buttons === 0) { - assert_equals(event.pressure, 0, "pressure is 0 for mouse with no buttons pressed"); - } - - // TA: 1.7, 1.8 - if (event.pointerType === "mouse") { - if (event.buttons !== 0) { + assert_equals(event.pressure, 0, "pressure is 0 with no buttons pressed"); + } else { + assert_greater_than(event.pressure, 0, "pressure is greater than 0 with a button pressed"); + if (event.pointerType === "mouse") { assert_equals(event.pressure, 0.5, "pressure is 0.5 for mouse with a button pressed"); } } @@ -145,7 +140,6 @@ function check_PointerEvent(event, testNamePrefix) { // Check mouse-specific properties. if (event.pointerType === "mouse") { - // TA: 1.9, 1.10, 1.13 test(function () { assert_equals(event.width, 1, "width of mouse should be 1"); assert_equals(event.height, 1, "height of mouse should be 1"); @@ -339,6 +333,16 @@ function clickInTarget(pointerType, target) { .send(); } +function rightClickInTarget(pointerType, target) { + let pointerId = pointerType + "Pointer1"; + let actions = new test_driver.Actions(); + return actions.addPointer(pointerId, pointerType) + .pointerMove(0, 0, {origin: target}) + .pointerDown({button:actions.ButtonType.RIGHT}) + .pointerUp({button:actions.ButtonType.RIGHT}) + .send(); +} + function twoFingerDrag(target) { return new test_driver.Actions() .addPointer("touchPointer1", "touch") diff --git a/tests/wpt/web-platform-tests/pointerevents/pointerup_after_pointerdown_target_removed.html b/tests/wpt/web-platform-tests/pointerevents/pointerup_after_pointerdown_target_removed.html new file mode 100644 index 00000000000..65c6ea314c8 --- /dev/null +++ b/tests/wpt/web-platform-tests/pointerevents/pointerup_after_pointerdown_target_removed.html @@ -0,0 +1,61 @@ + +pointerup event fired after pointerdown target is removed + + + + + + + + + + + +
    +
    child
    +
    +
    done
    + + diff --git a/tests/wpt/web-platform-tests/priority-hints/resources/blank.html b/tests/wpt/web-platform-tests/priority-hints/resources/blank.html deleted file mode 100644 index 0e76edd65b7..00000000000 --- a/tests/wpt/web-platform-tests/priority-hints/resources/blank.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/tests/wpt/web-platform-tests/priority-hints/resources/service-worker-fetch-request-priority.js b/tests/wpt/web-platform-tests/priority-hints/resources/service-worker-fetch-request-priority.js deleted file mode 100644 index 6d115c8daa0..00000000000 --- a/tests/wpt/web-platform-tests/priority-hints/resources/service-worker-fetch-request-priority.js +++ /dev/null @@ -1,17 +0,0 @@ -// This worker echos back the priority of FetchEvent.request.priority - -self.addEventListener('message', function(event) { - self.port = event.data.port; -}); - -self.addEventListener('fetch', function(event) { - const search = new URL(event.request.url).search; - if (search.startsWith('?priority')) { - try { - self.port.postMessage(event.request.priority); - } catch (e) { - self.port.postMessage('EXCEPTION'); - } - event.respondWith(new Response(null, {"status": 200})) - } -}); diff --git a/tests/wpt/web-platform-tests/priority-hints/service-worker-fetch-request-priority.tentative.https.html b/tests/wpt/web-platform-tests/priority-hints/service-worker-fetch-request-priority.tentative.https.html deleted file mode 100644 index 3bf6757da5e..00000000000 --- a/tests/wpt/web-platform-tests/priority-hints/service-worker-fetch-request-priority.tentative.https.html +++ /dev/null @@ -1,157 +0,0 @@ - - -Priority Hints: Service Worker Fetch Request Priority - - - - - diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/first-meta-changed-after-second-added.http.html b/tests/wpt/web-platform-tests/referrer-policy/generic/first-meta-changed-after-second-added.http.html new file mode 100644 index 00000000000..2ee5ade8c08 --- /dev/null +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/first-meta-changed-after-second-added.http.html @@ -0,0 +1,36 @@ + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/meta-referrer-removed-1.http.html b/tests/wpt/web-platform-tests/referrer-policy/generic/meta-referrer-removed-1.http.html new file mode 100644 index 00000000000..70277885043 --- /dev/null +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/meta-referrer-removed-1.http.html @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/meta-referrer-removed-2.http.html b/tests/wpt/web-platform-tests/referrer-policy/generic/meta-referrer-removed-2.http.html new file mode 100644 index 00000000000..42f73e87815 --- /dev/null +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/meta-referrer-removed-2.http.html @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/referrer-policy/generic/second-meta-referrer-added-before-first.http.html b/tests/wpt/web-platform-tests/referrer-policy/generic/second-meta-referrer-added-before-first.http.html new file mode 100644 index 00000000000..38fab901fb7 --- /dev/null +++ b/tests/wpt/web-platform-tests/referrer-policy/generic/second-meta-referrer-added-before-first.http.html @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/resource-timing/content-type-parsing.html b/tests/wpt/web-platform-tests/resource-timing/content-type-parsing.html new file mode 100644 index 00000000000..c0081eb4137 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/content-type-parsing.html @@ -0,0 +1,76 @@ + + + +This test validates the parsing of content-type of resources. + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/web-platform-tests/resources/check-layout-th.js b/tests/wpt/web-platform-tests/resources/check-layout-th.js index 9cd8abc938d..f14ca3246b8 100644 --- a/tests/wpt/web-platform-tests/resources/check-layout-th.js +++ b/tests/wpt/web-platform-tests/resources/check-layout-th.js @@ -26,7 +26,11 @@ function assert_tolerance(actual, expected, message) } function checkDataKeys(node) { + // The purpose of this list of data-* attributes is simply to ensure typos + // in tests are caught. It is therefore "ok" to add to this list for + // specific tests. var validData = new Set([ + "data-anchor-polyfill", "data-expected-width", "data-expected-height", "data-offset-x", diff --git a/tests/wpt/web-platform-tests/resources/chromium/generic_sensor_mocks.js b/tests/wpt/web-platform-tests/resources/chromium/generic_sensor_mocks.js index bbc3973b407..98a29c2104f 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/generic_sensor_mocks.js +++ b/tests/wpt/web-platform-tests/resources/chromium/generic_sensor_mocks.js @@ -490,7 +490,7 @@ self.GenericSensorTest = (() => { for (const entry of ['accelerometer', 'gyroscope', 'magnetometer', 'ambient-light-sensor']) { - await test_driver.set_permission({name: entry}, 'granted', false); + await test_driver.set_permission({name: entry}, 'granted'); } } diff --git a/tests/wpt/web-platform-tests/resources/chromium/mock-pressure-service.js b/tests/wpt/web-platform-tests/resources/chromium/mock-pressure-service.js index d3b9a0ae959..5ff191c0fc5 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/mock-pressure-service.js +++ b/tests/wpt/web-platform-tests/resources/chromium/mock-pressure-service.js @@ -120,6 +120,18 @@ class MockPressureService { factors: pressureFactors, }; } + + setExpectedFailure(expectedException) { + assert_true( + expectedException instanceof DOMException, + 'setExpectedFailure() expects a DOMException instance'); + if (expectedException.name === 'NotSupportedError') { + this.pressureStatus_ = PressureStatus.kNotSupported; + } else { + throw new TypeError( + `Unexpected DOMException '${expectedException.name}'`); + } + } } export const mockPressureService = new MockPressureService(); diff --git a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js index a7ce560a9f9..4796735b136 100644 --- a/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js +++ b/tests/wpt/web-platform-tests/resources/chromium/nfc-mock.js @@ -410,7 +410,7 @@ self.WebNFCTest = (() => { throw new Error('Call reset() before initialize().'); // Grant nfc permissions for Chromium testdriver. - await test_driver.set_permission({ name: 'nfc' }, 'granted', false); + await test_driver.set_permission({ name: 'nfc' }, 'granted'); if (testInternal.mockNFC == null) { testInternal.mockNFC = new MockNFC(); diff --git a/tests/wpt/web-platform-tests/resources/testdriver.js b/tests/wpt/web-platform-tests/resources/testdriver.js index d23f9fb83b2..76ae2834fdf 100644 --- a/tests/wpt/web-platform-tests/resources/testdriver.js +++ b/tests/wpt/web-platform-tests/resources/testdriver.js @@ -398,24 +398,22 @@ * * @example * await test_driver.set_permission({ name: "background-fetch" }, "denied"); - * await test_driver.set_permission({ name: "push", userVisibleOnly: true }, "granted", true); + * await test_driver.set_permission({ name: "push", userVisibleOnly: true }, "granted"); * - * @param {Object} descriptor - a `PermissionDescriptor - * `_ - * object + * @param {PermissionDescriptor} descriptor - a `PermissionDescriptor + * `_ + * dictionary. * @param {String} state - the state of the permission - * @param {boolean} one_realm - Optional. Whether the permission applies to only one realm * @param {WindowProxy} context - Browsing context in which * to run the call, or null for the current * browsing context. * @returns {Promise} fulfilled after the permission is set, or rejected if setting the * permission fails */ - set_permission: function(descriptor, state, one_realm=false, context=null) { + set_permission: function(descriptor, state, context=null) { let permission_params = { descriptor, state, - oneRealm: one_realm, }; return window.test_driver_internal.set_permission(permission_params, context); }, diff --git a/tests/wpt/web-platform-tests/resources/testharness.js b/tests/wpt/web-platform-tests/resources/testharness.js index 55aaa582c53..b7cf79c76b9 100644 --- a/tests/wpt/web-platform-tests/resources/testharness.js +++ b/tests/wpt/web-platform-tests/resources/testharness.js @@ -91,7 +91,12 @@ } on_event(window, 'load', function() { + setTimeout(() => { this_obj.all_loaded = true; + if (tests.all_done()) { + tests.complete(); + } + },0); }); on_event(window, 'message', function(event) { diff --git a/tests/wpt/web-platform-tests/sanitizer-api/sanitizer-names.https.tentative.html b/tests/wpt/web-platform-tests/sanitizer-api/sanitizer-names.https.tentative.html deleted file mode 100644 index e963761faac..00000000000 --- a/tests/wpt/web-platform-tests/sanitizer-api/sanitizer-names.https.tentative.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - - - - - diff --git a/tests/wpt/web-platform-tests/screen-capture/getdisplaymedia-framerate.https.html b/tests/wpt/web-platform-tests/screen-capture/getdisplaymedia-framerate.https.html index 18797fb94c1..c17b25d9873 100644 --- a/tests/wpt/web-platform-tests/screen-capture/getdisplaymedia-framerate.https.html +++ b/tests/wpt/web-platform-tests/screen-capture/getdisplaymedia-framerate.https.html @@ -24,7 +24,7 @@ promise_test( async t => { const v = document.getElementById('display'); v.autoplay = true; // work around firefox bug 1586505, orthogonal to what's being tested - const frames = () => v.getVideoPlaybackQuality()?.totalVideoFrames || v.mozPaintedFrames; + const frames = () => v.mozPaintedFrames ?? v.getVideoPlaybackQuality()?.totalVideoFrames; const target_rate = 5; const stream = await getDisplayMedia({video: {width:160, frameRate: target_rate}}); t.add_cleanup(() => stopTracks(stream)); diff --git a/tests/wpt/web-platform-tests/screen-details/screen_enumeration_permission.https.window.js b/tests/wpt/web-platform-tests/screen-details/screen_enumeration_permission.https.window.js index 52c3b7db5cd..32596fac9ea 100644 --- a/tests/wpt/web-platform-tests/screen-details/screen_enumeration_permission.https.window.js +++ b/tests/wpt/web-platform-tests/screen-details/screen_enumeration_permission.https.window.js @@ -4,7 +4,7 @@ "use strict"; promise_test(async t => { - await test_driver.set_permission({ name: "window-placement" }, "denied", false); + await test_driver.set_permission({ name: "window-placement" }, "denied"); const status = await navigator.permissions.query({ name:"window-placement" }); assert_class_string(status, "PermissionStatus"); @@ -12,7 +12,7 @@ promise_test(async t => { }, "Deny window management permission should work."); promise_test(async t => { - await test_driver.set_permission({ name: "window-placement" }, "granted", false); + await test_driver.set_permission({ name: "window-placement" }, "granted"); const status = await navigator.permissions.query({ name: "window-placement" }); assert_class_string(status, "PermissionStatus"); diff --git a/tests/wpt/web-platform-tests/screen-orientation/resources/sandboxed-iframe-locking.html b/tests/wpt/web-platform-tests/screen-orientation/resources/sandboxed-iframe-locking.html index 74f6ec92610..436c67f5b53 100644 --- a/tests/wpt/web-platform-tests/screen-orientation/resources/sandboxed-iframe-locking.html +++ b/tests/wpt/web-platform-tests/screen-orientation/resources/sandboxed-iframe-locking.html @@ -20,7 +20,12 @@ test_driver.bless("request full screen", async () => { } screen.orientation.unlock(); - await document.exitFullscreen(); + try { + await document.exitFullscreen(); + } catch (error) { + data.result = "errored"; + data.name = error.name; + } parent.window.postMessage(data, "*"); }); diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative.html b/tests/wpt/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative.html new file mode 100644 index 00000000000..f44a682890d --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/css/animation-duration-auto.tentative.html @@ -0,0 +1,56 @@ + +animation-duration: auto + + + + + + + + +
    +
    +
    +
    +
    +
    + + +
    + diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/get-animations-inactive-timeline.html b/tests/wpt/web-platform-tests/scroll-animations/css/get-animations-inactive-timeline.html new file mode 100644 index 00000000000..71a66cae2cd --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/css/get-animations-inactive-timeline.html @@ -0,0 +1,83 @@ + + + +getAnimations for scroll-linked animations + + + + + +
    +
    +
    +
    + + diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-name-tree-scoped.html b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-name-tree-scoped.html new file mode 100644 index 00000000000..622a582cce9 --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-name-tree-scoped.html @@ -0,0 +1,144 @@ + +scroll-timelime-name and tree-scoped references + + + + + + + +
    + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-nearest-dirty.html b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-nearest-dirty.html new file mode 100644 index 00000000000..6914fc616a4 --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-nearest-dirty.html @@ -0,0 +1,39 @@ + +Unrelated style mutation does not affect anonymous timeline + + + + + + + +
    +
    +
    +
    + + diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-root-dirty.html b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-root-dirty.html new file mode 100644 index 00000000000..873f18cbe3c --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/css/scroll-timeline-root-dirty.html @@ -0,0 +1,32 @@ + +Unrelated style mutation does not affect anonymous timeline (root) + + + + + + + +
    +
    + + diff --git a/tests/wpt/web-platform-tests/scroll-animations/css/view-timeline-name-tree-scoped.html b/tests/wpt/web-platform-tests/scroll-animations/css/view-timeline-name-tree-scoped.html new file mode 100644 index 00000000000..c216c345ed9 --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/css/view-timeline-name-tree-scoped.html @@ -0,0 +1,145 @@ + +view-timelime-name and tree-scoped references + + + + + + + +
    + + + + + + + + + + + + + + diff --git a/tests/wpt/web-platform-tests/scroll-animations/scroll-timelines/setting-playback-rate.html b/tests/wpt/web-platform-tests/scroll-animations/scroll-timelines/setting-playback-rate.html index 549094bfda9..4d6fecae054 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/scroll-timelines/setting-playback-rate.html +++ b/tests/wpt/web-platform-tests/scroll-animations/scroll-timelines/setting-playback-rate.html @@ -88,9 +88,9 @@ await animation.ready; // Set playback rate while the animation is playing. animation.playbackRate = playbackRate; - assert_percents_equal(animation.currentTime, 20, - 'The current time should stay unaffected by setting playback rate.'); - }, 'The current time is not affected by playbackRate set while the ' + + assert_percents_equal(animation.currentTime, 40, + 'The current time is scaled by the playback rate.'); + }, 'The current time is scaled by playbackRate set while the ' + 'scroll-linked animation is in play state.'); promise_test(async t => { @@ -148,9 +148,8 @@ assert_equals(animation.playState, "running"); assert_true(animation.pending); - assert_percents_equal( - animation.currentTime, animation.timeline.currentTime); - }, 'Setting the playback rate while play-pending preserves the current time' + + assert_percents_equal(animation.currentTime, 50); + }, 'Setting the playback rate while play-pending scales the current time' + ' from scrollTimeline.'); test(t => { @@ -161,8 +160,8 @@ assert_equals(animation.playState, "running"); assert_true(animation.pending); - assert_percents_equal(animation.currentTime, 25); - }, 'Setting the playback rate while play-pending preserves the set current' + + assert_percents_equal(animation.currentTime, 50); + }, 'Setting the playback rate while play-pending scales the set current' + ' time.'); promise_test(async t => { @@ -174,13 +173,13 @@ // current time. await waitForNextFrame(); animation.play(); + assert_percents_equal(animation.currentTime, 25); await animation.ready; animation.playbackRate = 2; - assert_percents_equal( - animation.currentTime, animation.timeline.currentTime); - }, 'Setting the playback rate while playing preserves the current time' + + assert_percents_equal(animation.currentTime, 50); + }, 'Setting the playback rate while playing scales the current time' + ' from scrollTimeline.'); promise_test(async t => { @@ -196,8 +195,8 @@ await animation.ready; animation.playbackRate = 2; - assert_percents_equal(animation.currentTime, 25); - }, 'Setting the playback rate while playing preserves the set current time.'); + assert_percents_equal(animation.currentTime, 50); + }, 'Setting the playback rate while playing scales the set current time.'); promise_test(async t => { const animation = createScrollLinkedAnimation(t); @@ -229,27 +228,31 @@ await animation.ready; const startingTimelineTime = animation.timeline.currentTime; const startingCurrentTime = animation.currentTime; - assert_percents_equal(startingCurrentTime, startingTimelineTime); + assert_percents_equal(startingCurrentTime, 50); + assert_percents_equal(startingTimelineTime, 50); animation.playbackRate = -1; scroller.scrollTop = 0.8 * maxScroll; await waitForNextFrame(); // -300 = 500 - 800 - let timelineDiff = - startingTimelineTime.value - animation.timeline.currentTime.value; - // 200 = 500 + (-300) - let expected = startingCurrentTime.value + timelineDiff; - assert_percents_equal(animation.currentTime, expected); + + // let timelineDiff = + // startingTimelineTime.value - animation.timeline.currentTime.value; + // // 200 = 500 + (-300) + // let expected = startingCurrentTime.value + timelineDiff; + assert_percents_equal(animation.timeline.currentTime, 80); + assert_percents_equal(animation.currentTime, 20); scroller.scrollTop = 0.2 * maxScroll; await waitForNextFrame(); - // 300 = 500 - 200 - timelineDiff = - startingTimelineTime.value - animation.timeline.currentTime.value; - // 800 = 500 + 300 - expected = startingCurrentTime.value + timelineDiff; - assert_percents_equal(animation.currentTime, expected); + // // 300 = 500 - 200 + // timelineDiff = + // startingTimelineTime.value - animation.timeline.currentTime.value; + // // 800 = 500 + 300 + // expected = startingCurrentTime.value + timelineDiff; + assert_percents_equal(animation.timeline.currentTime, 20); + assert_percents_equal(animation.currentTime, 80); }, 'Reversing the playback rate while playing correctly impacts current' + ' time during future scrolls'); @@ -287,7 +290,34 @@ // Ensure that current time does not change. assert_percents_equal(animation.timeline.currentTime, 50); + assert_percents_equal(animation.currentTime, 0); + }, 'Setting a zero playback rate while running preserves the start time'); + + +promise_test(async t => { + const animation = createScrollLinkedAnimation(t); + const scroller = animation.timeline.source; + const maxScroll = scroller.scrollHeight - scroller.clientHeight; + scroller.scrollTop = 0.2 * maxScroll; + // Wait for new animation frame which allows the timeline to compute new + // current time. + await waitForNextFrame(); + animation.play(); + + await animation.ready; + assert_percents_equal(animation.timeline.currentTime, 20); assert_percents_equal(animation.currentTime, 20); - }, 'Setting a zero playback rate while running preserves the current time'); + animation.startTime = animation.currentTime; + // timeline current time [0%, 100%] --> animation current time [-20%, 80%]. + assert_percents_equal(animation.currentTime, 0); + + animation.playbackRate = -1; + // timeline current time [0%, 100%] --> animation current time [80%, -20%]. + // timeline @ 20% --> animation current time @ (20% - 80%) * (-1) = 60%. + assert_percents_equal(animation.timeline.currentTime, 20); + assert_percents_equal(animation.currentTime, 60); + }, 'Reversing an animation with non-boundary aligned start time ' + + 'symmetrically adjusts the start time'); + diff --git a/tests/wpt/web-platform-tests/scroll-animations/view-timelines/testcommon.js b/tests/wpt/web-platform-tests/scroll-animations/view-timelines/testcommon.js index 41341cf6fb8..969f282e678 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/view-timelines/testcommon.js +++ b/tests/wpt/web-platform-tests/scroll-animations/view-timelines/testcommon.js @@ -130,6 +130,8 @@ async function runTimelineInsetTest(t, options) { fill: 'both' } const length = options.inset.length; - const range = options.inset.join(' '); + const range = + (options.inset instanceof Array) ? options.inset.join(' ') + : options.inset; return runTimelineRangeTest(t, options, range); } diff --git a/tests/wpt/web-platform-tests/scroll-animations/view-timelines/timeline-range-name-offset-in-keyframes.tentative.html b/tests/wpt/web-platform-tests/scroll-animations/view-timelines/timeline-range-name-offset-in-keyframes.tentative.html new file mode 100644 index 00000000000..38eecd9829c --- /dev/null +++ b/tests/wpt/web-platform-tests/scroll-animations/view-timelines/timeline-range-name-offset-in-keyframes.tentative.html @@ -0,0 +1,90 @@ + + + +Timeline offset in Animation Keyframes + + + + + + +
    +
    +
    +
    +
    + + + + diff --git a/tests/wpt/web-platform-tests/scroll-animations/view-timelines/view-timeline-inset.html b/tests/wpt/web-platform-tests/scroll-animations/view-timelines/view-timeline-inset.html index 0dcce6d48dc..72480ea9f3c 100644 --- a/tests/wpt/web-platform-tests/scroll-animations/view-timelines/view-timeline-inset.html +++ b/tests/wpt/web-platform-tests/scroll-animations/view-timelines/view-timeline-inset.html @@ -106,7 +106,7 @@ promise_test(async t => { t.add_cleanup(() => { - container.class = ''; + container.classList.remove('scroll-padded'); }); const anim = await runTimelineInsetTest(t, { inset: [ "auto", "auto" ], @@ -125,13 +125,13 @@ promise_test(async t => { t.add_cleanup(() => { - target.class = ''; + target.classList.remove('big-font'); }); const anim = await runTimelineInsetTest(t, { inset: [ CSS.em(1), CSS.em(2) ], rangeStart: 632, rangeEnd: 884 - }) + }); verifyTimelineOffsets(anim, 632, 884); target.classList.add('big-font'); await runTimelineRangeTest(t, { @@ -158,13 +158,69 @@ promise_test(async t => { }); }, 'view timeline with viewport relative insets.'); +promise_test(async t => { + await runTimelineInsetTest(t, { + inset: "10px", + rangeStart: 610, + rangeEnd: 890 + }); + await runTimelineInsetTest(t, { + inset: "10px 20px", + rangeStart: 620, + rangeEnd: 890 + }); + await runTimelineInsetTest(t, { + inset: "10%", + rangeStart: 620, + rangeEnd: 880 + }); + await runTimelineInsetTest(t, { + inset: "10% 20%", + rangeStart: 640, + rangeEnd: 880 + }); + await runTimelineInsetTest(t, { + inset: "auto", + rangeStart: 600, + rangeEnd: 900 + }); + await runTimelineInsetTest(t, { + inset: "1em 2em", + rangeStart: 632, + rangeEnd: 884 + }); + assert_throws_js(TypeError, () => { + new ViewTimeline({ + subject: target, + inset: "go fish" + }); + }); + + assert_throws_js(TypeError, () => { + new ViewTimeline({ + subject: target, + inset: "1 2" + }); + }); + +}, 'view timeline inset as string'); promise_test(async t => { - assert_throws_dom('NOT_SUPPORTED_ERR', () => { + assert_throws_js(TypeError, () => { new ViewTimeline({ subject: target, inset: [ CSS.rad(1) ] }); }); + + assert_throws_js(TypeError, () => { + new ViewTimeline({ + subject: target, + inset: [ CSS.px(10), CSS.px(10), CSS.px(10) ] + }); + }); + + }, 'view timeline with invalid inset'); + diff --git a/tests/wpt/web-platform-tests/service-workers/cache-storage/cache-put.https.any.js b/tests/wpt/web-platform-tests/service-workers/cache-storage/cache-put.https.any.js index a41a31771eb..dbf2650a75a 100644 --- a/tests/wpt/web-platform-tests/service-workers/cache-storage/cache-put.https.any.js +++ b/tests/wpt/web-platform-tests/service-workers/cache-storage/cache-put.https.any.js @@ -132,7 +132,12 @@ cache_test(function(cache, test) { }, 'Cache.put with HTTP 206 response'); cache_test(function(cache, test) { - var test_url = new URL('./resources/fetch-status.py?status=206', location.href); + // We need to jump through some hoops to allow the test to perform opaque + // response filtering, but bypass the ORB safelist check. This is + // done, by forcing the MIME type retrieval to fail and the + // validation of partial first response to succeed. + var pipe = "status(206)|header(Content-Type,)|header(Content-Range, bytes 0-1/41)|slice(null, 1)"; + var test_url = new URL(`./resources/blank.html?pipe=${pipe}`, location.href); test_url.hostname = REMOTE_HOST; var request = new Request(test_url.href, { mode: 'no-cors' }); var response; diff --git a/tests/wpt/web-platform-tests/service-workers/cache-storage/cache-storage-buckets.https.any.js b/tests/wpt/web-platform-tests/service-workers/cache-storage/cache-storage-buckets.https.any.js index 749b7c5efe8..0b5ef7b298d 100644 --- a/tests/wpt/web-platform-tests/service-workers/cache-storage/cache-storage-buckets.https.any.js +++ b/tests/wpt/web-platform-tests/service-workers/cache-storage/cache-storage-buckets.https.any.js @@ -44,9 +44,11 @@ promise_test(async function(test) { promise_test(async function(test) { var inboxBucket = await navigator.storageBuckets.open('inbox'); + var draftBucket = await navigator.storageBuckets.open('drafts'); test.add_cleanup(async function() { await navigator.storageBuckets.delete('inbox'); + await navigator.storageBuckets.delete('drafts'); }); var caches = inboxBucket.caches; @@ -57,8 +59,13 @@ promise_test(async function(test) { await navigator.storageBuckets.delete('inbox'); - return promise_rejects_dom( + await promise_rejects_dom( test, 'UnknownError', caches.open('attachments')); + + // Also test when `caches` is first accessed after the deletion. + await navigator.storageBuckets.delete('drafts'); + return promise_rejects_dom( + test, 'UnknownError', draftBucket.caches.open('attachments')); }, 'cache.open promise is rejected when bucket is gone'); done(); diff --git a/tests/wpt/web-platform-tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html b/tests/wpt/web-platform-tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html index bb409d9b97f..bfe2d66cfa9 100644 --- a/tests/wpt/web-platform-tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html +++ b/tests/wpt/web-platform-tests/shadow-dom/declarative/declarative-after-attachshadow.tentative.html @@ -27,7 +27,7 @@ assert_false(gotHost, 'No mutations yet');
    -