diff --git a/tests/wpt/meta-legacy-layout/cookies/prefix/__host.document-cookie.html.ini b/tests/wpt/meta-legacy-layout/cookies/prefix/__host.document-cookie.html.ini deleted file mode 100644 index 6f8ab2d4cb0..00000000000 --- a/tests/wpt/meta-legacy-layout/cookies/prefix/__host.document-cookie.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[__host.document-cookie.html] - [__HoSt: Non-secure origin: 'Path=/;'] - expected: FAIL - - [__HoSt: Non-secure origin: 'Path=/;domain=web-platform.test'] - expected: FAIL - - [__HoSt: Non-secure origin: 'Path=/;MaxAge=10'] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/cookies/prefix/__host.document-cookie.https.html.ini b/tests/wpt/meta-legacy-layout/cookies/prefix/__host.document-cookie.https.html.ini deleted file mode 100644 index cf3ab5fa14e..00000000000 --- a/tests/wpt/meta-legacy-layout/cookies/prefix/__host.document-cookie.https.html.ini +++ /dev/null @@ -1,15 +0,0 @@ -[__host.document-cookie.https.html] - [__HoSt: Secure origin: Does not set 'Path=/;'] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Secure; Path=/; Domain=web-platform.test; '] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Path=/;MaxAge=10'] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Secure; Path=/; Domain=web-platform.test; MaxAge=10'] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Secure; Path=/cookies/resources/list.py'] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/cookies/prefix/__host.header.html.ini b/tests/wpt/meta-legacy-layout/cookies/prefix/__host.header.html.ini deleted file mode 100644 index 2444b65c243..00000000000 --- a/tests/wpt/meta-legacy-layout/cookies/prefix/__host.header.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[__host.header.html] - [__HoSt: Non-secure origin: Does not set 'Path=/;'] - expected: FAIL - - [__HoSt: Non-secure origin: Does not set 'Path=/;domain=web-platform.test'] - expected: FAIL - - [__HoSt: Non-secure origin: Does not set 'Path=/;MaxAge=10'] - expected: FAIL - - [__HoSt: Non-secure origin: Does not set 'Path=/;HttpOnly'] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/cookies/prefix/__host.header.https.html.ini b/tests/wpt/meta-legacy-layout/cookies/prefix/__host.header.https.html.ini deleted file mode 100644 index 33d9e1ada62..00000000000 --- a/tests/wpt/meta-legacy-layout/cookies/prefix/__host.header.https.html.ini +++ /dev/null @@ -1,21 +0,0 @@ -[__host.header.https.html] - [__HoSt: Secure origin: Does not set 'Path=/;'] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Secure; Path=/; Domain=web-platform.test; '] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Path=/;MaxAge=10'] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Secure; Path=/; Domain=web-platform.test; MaxAge=10'] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Path=/;HttpOnly'] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Secure; Path=/; Domain=web-platform.test; HttpOnly'] - expected: FAIL - - [__HoSt: Secure origin: Does not set 'Secure; Path=/cookies/resources/list.py'] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.document-cookie.html.ini b/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.document-cookie.html.ini deleted file mode 100644 index 265fc3f0301..00000000000 --- a/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.document-cookie.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[__secure.document-cookie.html] - [__SeCuRe: Non-secure origin: Should not set 'Path=/;'] - expected: FAIL - - [__SeCuRe: Non-secure origin: Should not set 'Path=/;MaxAge=10'] - expected: FAIL - - [__SeCuRe: Non-secure origin: Should not set 'Path=/;domain=web-platform.test'] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.document-cookie.https.html.ini b/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.document-cookie.https.html.ini deleted file mode 100644 index 5e070e58ba2..00000000000 --- a/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.document-cookie.https.html.ini +++ /dev/null @@ -1,9 +0,0 @@ -[__secure.document-cookie.https.html] - [__SeCuRe: Secure origin: Should not set 'Path=/;'] - expected: FAIL - - [__SeCuRe: Secure origin: Should not set 'Path=/;MaxAge=10'] - expected: FAIL - - [__SeCuRe: Secure origin: Should not set 'Path=/;domain=web-platform.test'] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.header.html.ini b/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.header.html.ini deleted file mode 100644 index 142f4756a83..00000000000 --- a/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.header.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[__secure.header.html] - [__SeCuRe: Non-secure origin: Should not set 'Path=/;'] - expected: FAIL - - [__SeCuRe: Non-secure origin: Should not set 'Path=/;domain=web-platform.test'] - expected: FAIL - - [__SeCuRe: Non-secure origin: Should not set 'Path=/;MaxAge=10'] - expected: FAIL - - [__SeCuRe: Non-secure origin: Should not set 'Path=/;HttpOnly'] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.header.https.html.ini b/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.header.https.html.ini deleted file mode 100644 index 10db3a84195..00000000000 --- a/tests/wpt/meta-legacy-layout/cookies/prefix/__secure.header.https.html.ini +++ /dev/null @@ -1,12 +0,0 @@ -[__secure.header.https.html] - [__SeCuRe: secure origin: Should not set 'Path=/;'] - expected: FAIL - - [__SeCuRe: secure origin: Should not set 'Path=/;MaxAge=10'] - expected: FAIL - - [__SeCuRe: secure origin: Should not set 'Path=/;HttpOnly'] - expected: FAIL - - [__SeCuRe: secure origin: Should not set 'Path=/;domain=not-web-platform.test'] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/cookies/prefix/document-cookie.non-secure.html.ini b/tests/wpt/meta-legacy-layout/cookies/prefix/document-cookie.non-secure.html.ini deleted file mode 100644 index fcbb39e1912..00000000000 --- a/tests/wpt/meta-legacy-layout/cookies/prefix/document-cookie.non-secure.html.ini +++ /dev/null @@ -1,18 +0,0 @@ -[document-cookie.non-secure.html] - [__SeCuRe: Non-secure origin: 'Path=/;'] - expected: FAIL - - [__SeCuRe: Non-secure origin: 'Path=/;domain=web-platform.test'] - expected: FAIL - - [__SeCuRe: Non-secure origin: 'Path=/;MaxAge=10'] - expected: FAIL - - [__HoSt: Non-secure origin: 'Path=/; '] - expected: FAIL - - [__HoSt: Non-secure origin: 'Path=/; domain=web-platform.test'] - expected: FAIL - - [__HoSt: Non-secure origin: 'Path=/; MaxAge=10'] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/css1/c542-letter-sp-001.xht.ini b/tests/wpt/meta-legacy-layout/css/CSS2/css1/c542-letter-sp-001.xht.ini new file mode 100644 index 00000000000..b43991b5e88 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/CSS2/css1/c542-letter-sp-001.xht.ini @@ -0,0 +1,2 @@ +[c542-letter-sp-001.xht] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-backgrounds/parsing/background-valid.html.ini b/tests/wpt/meta-legacy-layout/css/css-backgrounds/parsing/background-valid.html.ini index 4d2a4b9f6d7..6f094e64899 100644 --- a/tests/wpt/meta-legacy-layout/css/css-backgrounds/parsing/background-valid.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-backgrounds/parsing/background-valid.html.ini @@ -2,9 +2,6 @@ [e.style['background'\] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set the property value] expected: FAIL - [e.style['background'\] = "none" should set background-color] - expected: FAIL - [e.style['background'\] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-attachment] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-conditional/container-queries/scroll-state-target-query-change.html.ini b/tests/wpt/meta-legacy-layout/css/css-conditional/container-queries/scroll-state-target-query-change.html.ini new file mode 100644 index 00000000000..8125d4e9608 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-conditional/container-queries/scroll-state-target-query-change.html.ini @@ -0,0 +1,2 @@ +[scroll-state-target-query-change.html] + expected: ERROR diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini index a29b8868eeb..8cfa1c28944 100644 --- a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini @@ -19,3 +19,6 @@ [@font-face matching for quoted and unquoted system-ui] expected: FAIL + + [@font-face matching for quoted and unquoted ui-monospace] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp/line-clamp-auto-038.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp/line-clamp-auto-038.tentative.html.ini new file mode 100644 index 00000000000..bccea3ccd35 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp/line-clamp-auto-038.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-auto-038.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp/line-clamp-with-abspos-014.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp/line-clamp-with-abspos-014.tentative.html.ini new file mode 100644 index 00000000000..a7e0e7a16ad --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-overflow/line-clamp/line-clamp-with-abspos-014.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-014.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini b/tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini new file mode 100644 index 00000000000..35256741d38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini @@ -0,0 +1,2 @@ +[dynamic-available-size-iframe.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-sizing/keyword-sizes-on-floated-element.html.ini b/tests/wpt/meta-legacy-layout/css/css-sizing/keyword-sizes-on-floated-element.html.ini new file mode 100644 index 00000000000..e2278222a0d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-sizing/keyword-sizes-on-floated-element.html.ini @@ -0,0 +1,153 @@ +[keyword-sizes-on-floated-element.html] + [.test 1] + expected: FAIL + + [.test 4] + expected: FAIL + + [.test 6] + expected: FAIL + + [.test 9] + expected: FAIL + + [.test 10] + expected: FAIL + + [.test 11] + expected: FAIL + + [.test 12] + expected: FAIL + + [.test 13] + expected: FAIL + + [.test 14] + expected: FAIL + + [.test 15] + expected: FAIL + + [.test 16] + expected: FAIL + + [.test 17] + expected: FAIL + + [.test 18] + expected: FAIL + + [.test 19] + expected: FAIL + + [.test 20] + expected: FAIL + + [.test 21] + expected: FAIL + + [.test 22] + expected: FAIL + + [.test 23] + expected: FAIL + + [.test 24] + expected: FAIL + + [.test 25] + expected: FAIL + + [.test 26] + expected: FAIL + + [.test 27] + expected: FAIL + + [.test 31] + expected: FAIL + + [.test 32] + expected: FAIL + + [.test 33] + expected: FAIL + + [.test 34] + expected: FAIL + + [.test 35] + expected: FAIL + + [.test 36] + expected: FAIL + + [.test 37] + expected: FAIL + + [.test 39] + expected: FAIL + + [.test 40] + expected: FAIL + + [.test 41] + expected: FAIL + + [.test 42] + expected: FAIL + + [.test 43] + expected: FAIL + + [.test 44] + expected: FAIL + + [.test 45] + expected: FAIL + + [.test 46] + expected: FAIL + + [.test 47] + expected: FAIL + + [.test 48] + expected: FAIL + + [.test 49] + expected: FAIL + + [.test 50] + expected: FAIL + + [.test 51] + expected: FAIL + + [.test 52] + expected: FAIL + + [.test 53] + expected: FAIL + + [.test 54] + expected: FAIL + + [.test 58] + expected: FAIL + + [.test 59] + expected: FAIL + + [.test 60] + expected: FAIL + + [.test 61] + expected: FAIL + + [.test 62] + expected: FAIL + + [.test 63] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-sizing/keyword-sizes-on-inline-block.html.ini b/tests/wpt/meta-legacy-layout/css/css-sizing/keyword-sizes-on-inline-block.html.ini new file mode 100644 index 00000000000..cdf0d946427 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-sizing/keyword-sizes-on-inline-block.html.ini @@ -0,0 +1,153 @@ +[keyword-sizes-on-inline-block.html] + [.test 1] + expected: FAIL + + [.test 4] + expected: FAIL + + [.test 6] + expected: FAIL + + [.test 9] + expected: FAIL + + [.test 10] + expected: FAIL + + [.test 11] + expected: FAIL + + [.test 12] + expected: FAIL + + [.test 13] + expected: FAIL + + [.test 14] + expected: FAIL + + [.test 15] + expected: FAIL + + [.test 16] + expected: FAIL + + [.test 17] + expected: FAIL + + [.test 18] + expected: FAIL + + [.test 19] + expected: FAIL + + [.test 20] + expected: FAIL + + [.test 21] + expected: FAIL + + [.test 22] + expected: FAIL + + [.test 23] + expected: FAIL + + [.test 24] + expected: FAIL + + [.test 25] + expected: FAIL + + [.test 26] + expected: FAIL + + [.test 27] + expected: FAIL + + [.test 31] + expected: FAIL + + [.test 32] + expected: FAIL + + [.test 33] + expected: FAIL + + [.test 34] + expected: FAIL + + [.test 35] + expected: FAIL + + [.test 36] + expected: FAIL + + [.test 37] + expected: FAIL + + [.test 39] + expected: FAIL + + [.test 40] + expected: FAIL + + [.test 41] + expected: FAIL + + [.test 42] + expected: FAIL + + [.test 43] + expected: FAIL + + [.test 44] + expected: FAIL + + [.test 45] + expected: FAIL + + [.test 46] + expected: FAIL + + [.test 47] + expected: FAIL + + [.test 48] + expected: FAIL + + [.test 49] + expected: FAIL + + [.test 50] + expected: FAIL + + [.test 51] + expected: FAIL + + [.test 52] + expected: FAIL + + [.test 53] + expected: FAIL + + [.test 54] + expected: FAIL + + [.test 58] + expected: FAIL + + [.test 59] + expected: FAIL + + [.test 60] + expected: FAIL + + [.test 61] + expected: FAIL + + [.test 62] + expected: FAIL + + [.test 63] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/geometry/DOMMatrix-001.html.ini b/tests/wpt/meta-legacy-layout/css/geometry/DOMMatrix-001.html.ini deleted file mode 100644 index 976c7efa102..00000000000 --- a/tests/wpt/meta-legacy-layout/css/geometry/DOMMatrix-001.html.ini +++ /dev/null @@ -1,14 +0,0 @@ -[DOMMatrix-001.html] - type: testharness - [new DOMMatrix(new DOMMatrix())] - expected: FAIL - - [new DOMMatrix(matrix)] - expected: FAIL - - [new DOMMatrixReadOnly(new DOMMatrixReadOnly())] - expected: FAIL - - [new DOMMatrixReadOnly(matrix)] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/geometry/DOMMatrix-attributes.html.ini b/tests/wpt/meta-legacy-layout/css/geometry/DOMMatrix-attributes.html.ini deleted file mode 100644 index d700844acb1..00000000000 --- a/tests/wpt/meta-legacy-layout/css/geometry/DOMMatrix-attributes.html.ini +++ /dev/null @@ -1,31 +0,0 @@ -[DOMMatrix-attributes.html] - [DOMMatrix.m13] - expected: FAIL - - [DOMMatrix.m14] - expected: FAIL - - [DOMMatrix.m23] - expected: FAIL - - [DOMMatrix.m24] - expected: FAIL - - [DOMMatrix.m31] - expected: FAIL - - [DOMMatrix.m32] - expected: FAIL - - [DOMMatrix.m34] - expected: FAIL - - [DOMMatrix.m43] - expected: FAIL - - [DOMMatrix.m33] - expected: FAIL - - [DOMMatrix.m44] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/geometry/DOMMatrix-stringifier.html.ini b/tests/wpt/meta-legacy-layout/css/geometry/DOMMatrix-stringifier.html.ini deleted file mode 100644 index 3b1a1de2c14..00000000000 --- a/tests/wpt/meta-legacy-layout/css/geometry/DOMMatrix-stringifier.html.ini +++ /dev/null @@ -1,235 +0,0 @@ -[DOMMatrix-stringifier.html] - [DOMMatrix stringifier: identity (2d)] - expected: FAIL - - [DOMMatrix stringifier: identity (3d)] - expected: FAIL - - [DOMMatrix stringifier: NaN (2d)] - expected: FAIL - - [DOMMatrix stringifier: NaN (3d)] - expected: FAIL - - [DOMMatrix stringifier: Infinity (2d)] - expected: FAIL - - [DOMMatrix stringifier: Infinity (3d)] - expected: FAIL - - [DOMMatrix stringifier: -Infinity (2d)] - expected: FAIL - - [DOMMatrix stringifier: -Infinity (3d)] - expected: FAIL - - [DOMMatrix stringifier: 1/3 (2d)] - expected: FAIL - - [DOMMatrix stringifier: 1/3 (3d)] - expected: FAIL - - [DOMMatrix stringifier: 1/300000 (2d)] - expected: FAIL - - [DOMMatrix stringifier: 1/300000 (3d)] - expected: FAIL - - [DOMMatrix stringifier: 1/300000000 (2d)] - expected: FAIL - - [DOMMatrix stringifier: 1/300000000 (3d)] - expected: FAIL - - [DOMMatrix stringifier: 100000 + (1/3) (2d)] - expected: FAIL - - [DOMMatrix stringifier: 100000 + (1/3) (3d)] - expected: FAIL - - [DOMMatrix stringifier: Math.pow(2, 53) + 1 (2d)] - expected: FAIL - - [DOMMatrix stringifier: Math.pow(2, 53) + 1 (3d)] - expected: FAIL - - [DOMMatrix stringifier: Math.pow(2, 53) + 2 (2d)] - expected: FAIL - - [DOMMatrix stringifier: Math.pow(2, 53) + 2 (3d)] - expected: FAIL - - [DOMMatrix stringifier: Number.MAX_VALUE (2d)] - expected: FAIL - - [DOMMatrix stringifier: Number.MAX_VALUE (3d)] - expected: FAIL - - [DOMMatrix stringifier: Number.MIN_VALUE (2d)] - expected: FAIL - - [DOMMatrix stringifier: Number.MIN_VALUE (3d)] - expected: FAIL - - [DOMMatrix stringifier: throwing getters (2d)] - expected: FAIL - - [DOMMatrix stringifier: throwing getters (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: identity (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: identity (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: NaN (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: NaN (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Infinity (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Infinity (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: -Infinity (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: -Infinity (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: 1/3 (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: 1/3 (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: 1/300000 (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: 1/300000 (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: 1/300000000 (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: 1/300000000 (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: 100000 + (1/3) (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: 100000 + (1/3) (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Math.pow(2, 53) + 1 (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Math.pow(2, 53) + 1 (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Math.pow(2, 53) + 2 (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Math.pow(2, 53) + 2 (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Number.MAX_VALUE (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Number.MAX_VALUE (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Number.MIN_VALUE (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: Number.MIN_VALUE (3d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: throwing getters (2d)] - expected: FAIL - - [DOMMatrixReadOnly stringifier: throwing getters (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: identity (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: identity (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: NaN (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: NaN (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Infinity (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Infinity (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: -Infinity (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: -Infinity (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: 1/3 (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: 1/3 (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: 1/300000 (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: 1/300000 (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: 1/300000000 (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: 1/300000000 (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: 100000 + (1/3) (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: 100000 + (1/3) (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Math.pow(2, 53) + 1 (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Math.pow(2, 53) + 1 (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Math.pow(2, 53) + 2 (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Math.pow(2, 53) + 2 (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Number.MAX_VALUE (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Number.MAX_VALUE (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Number.MIN_VALUE (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: Number.MIN_VALUE (3d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: throwing getters (2d)] - expected: FAIL - - [WebKitCSSMatrix stringifier: throwing getters (3d)] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/geometry/DOMQuad-001.html.ini b/tests/wpt/meta-legacy-layout/css/geometry/DOMQuad-001.html.ini index 0974233697f..2e419b1de84 100644 --- a/tests/wpt/meta-legacy-layout/css/geometry/DOMQuad-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/geometry/DOMQuad-001.html.ini @@ -23,7 +23,3 @@ [boundsAttribute1: points] expected: FAIL - - [fromRect() method on DOMQuad with Infinity: bounds] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/geometry/DOMQuad-nan.html.ini b/tests/wpt/meta-legacy-layout/css/geometry/DOMQuad-nan.html.ini deleted file mode 100644 index 063e41d8ed8..00000000000 --- a/tests/wpt/meta-legacy-layout/css/geometry/DOMQuad-nan.html.ini +++ /dev/null @@ -1,25 +0,0 @@ -[DOMQuad-nan.html] - [Setting DOMQuad's p1.x to NaN] - expected: FAIL - - [Setting DOMQuad's p2.y to NaN] - expected: FAIL - - [Setting DOMQuad's p2.x to NaN] - expected: FAIL - - [Setting DOMQuad's p4.x to NaN] - expected: FAIL - - [Setting DOMQuad's p3.x to NaN] - expected: FAIL - - [Setting DOMQuad's p3.y to NaN] - expected: FAIL - - [Setting DOMQuad's p4.y to NaN] - expected: FAIL - - [Setting DOMQuad's p1.y to NaN] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/geometry/DOMRect-002.html.ini b/tests/wpt/meta-legacy-layout/css/geometry/DOMRect-002.html.ini deleted file mode 100644 index 4d4eeebe5e4..00000000000 --- a/tests/wpt/meta-legacy-layout/css/geometry/DOMRect-002.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[DOMRect-002.html] - [DOMRect.fromRect] - expected: FAIL - - [DOMRectReadOnly.fromRect] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/geometry/idlharness.any.js.ini b/tests/wpt/meta-legacy-layout/css/geometry/idlharness.any.js.ini index 8e29d594f0d..fe0192281ed 100644 --- a/tests/wpt/meta-legacy-layout/css/geometry/idlharness.any.js.ini +++ b/tests/wpt/meta-legacy-layout/css/geometry/idlharness.any.js.ini @@ -1,28 +1,13 @@ [idlharness.any.worker.html] - [DOMRectReadOnly interface: operation fromRect(optional DOMRectInit)] - expected: FAIL - [DOMPointReadOnly interface: calling matrixTransform(optional DOMMatrixInit) on new DOMPoint() with too few arguments must throw TypeError] expected: FAIL [DOMPointReadOnly interface: operation matrixTransform(optional DOMMatrixInit)] expected: FAIL - [DOMRect interface: operation fromRect(optional DOMRectInit)] - expected: FAIL - [DOMPointReadOnly interface: new DOMPoint() must inherit property "matrixTransform(optional DOMMatrixInit)" with the proper type] expected: FAIL - [DOMRectReadOnly interface: calling fromRect(optional DOMRectInit) on new DOMRect() with too few arguments must throw TypeError] - expected: FAIL - - [DOMRect interface: calling fromRect(optional DOMRectInit) on new DOMRect() with too few arguments must throw TypeError] - expected: FAIL - - [DOMRectReadOnly interface: calling fromRect(optional DOMRectInit) on new DOMRectReadOnly() with too few arguments must throw TypeError] - expected: FAIL - [DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "matrixTransform(optional DOMMatrixInit)" with the proper type] expected: FAIL @@ -31,9 +16,6 @@ [idlharness.any.html] - [DOMRectReadOnly interface: operation fromRect(optional DOMRectInit)] - expected: FAIL - [DOMPointReadOnly interface: calling matrixTransform(optional DOMMatrixInit) on new DOMPoint() with too few arguments must throw TypeError] expected: FAIL @@ -49,15 +31,9 @@ [DOMRectList interface: [object DOMRect\] must inherit property "length" with the proper type] expected: FAIL - [DOMRect interface: operation fromRect(optional DOMRectInit)] - expected: FAIL - [DOMRectList interface: operation item(unsigned long)] expected: FAIL - [DOMMatrixReadOnly interface: stringifier] - expected: FAIL - [DOMRectList interface: existence and properties of interface object] expected: FAIL @@ -73,18 +49,9 @@ [DOMMatrix interface: operation setMatrixValue(DOMString)] expected: FAIL - [DOMRectReadOnly interface: calling fromRect(optional DOMRectInit) on new DOMRect() with too few arguments must throw TypeError] - expected: FAIL - - [DOMRect interface: calling fromRect(optional DOMRectInit) on new DOMRect() with too few arguments must throw TypeError] - expected: FAIL - [DOMPoint interface: legacy window alias] expected: FAIL - [DOMRectReadOnly interface: calling fromRect(optional DOMRectInit) on new DOMRectReadOnly() with too few arguments must throw TypeError] - expected: FAIL - [DOMRectList interface object length] expected: FAIL @@ -94,9 +61,6 @@ [DOMPointReadOnly interface: new DOMPointReadOnly() must inherit property "matrixTransform(optional DOMMatrixInit)" with the proper type] expected: FAIL - [DOMRect interface: legacy window alias] - expected: FAIL - [DOMRectList interface: calling item(unsigned long) on [object DOMRect\] with too few arguments must throw TypeError] expected: FAIL @@ -120,4 +84,3 @@ [DOMRectList interface: existence and properties of interface prototype object's @@unscopables property] expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/geometry/spec-examples.html.ini b/tests/wpt/meta-legacy-layout/css/geometry/spec-examples.html.ini index db919b13329..06644d84a6a 100644 --- a/tests/wpt/meta-legacy-layout/css/geometry/spec-examples.html.ini +++ b/tests/wpt/meta-legacy-layout/css/geometry/spec-examples.html.ini @@ -1,13 +1,3 @@ [spec-examples.html] [matrixTransform] expected: FAIL - - [DOMMatrix 2D transformation] - expected: FAIL - - [DOMMatrix 3D transformation] - expected: FAIL - - [DOMMatrix NaN] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/select-option-optgroup.html.ini b/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/select-option-optgroup.html.ini new file mode 100644 index 00000000000..615475e3fac --- /dev/null +++ b/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/select-option-optgroup.html.ini @@ -0,0 +1,3 @@ +[select-option-optgroup.html] + [Option selectedness is updated on option and optgroup DOM moves] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/data-urls/processing.any.js.ini b/tests/wpt/meta-legacy-layout/fetch/data-urls/processing.any.js.ini index e2cb6baee6d..f73f3471b65 100644 --- a/tests/wpt/meta-legacy-layout/fetch/data-urls/processing.any.js.ini +++ b/tests/wpt/meta-legacy-layout/fetch/data-urls/processing.any.js.ini @@ -1,12 +1,6 @@ [processing.any.worker.html] - ["data:†,X"] - expected: FAIL - [processing.any.html] - ["data:†,X"] - expected: FAIL - [processing.any.serviceworker.html] expected: ERROR diff --git a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini index 304848598dd..f5e8ecddd7f 100644 --- a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini @@ -5,9 +5,6 @@ [sec-fetch-site - Not sent to non-trustworthy cross-site destination] expected: FAIL - [sec-fetch-dest - Not sent to non-trustworthy cross-site destination] - expected: FAIL - [sec-fetch-site - HTTPS downgrade (header not sent)] expected: FAIL @@ -20,11 +17,14 @@ [sec-fetch-user - Not sent to non-trustworthy same-origin destination] expected: FAIL - [sec-fetch-dest - Not sent to non-trustworthy same-origin destination] - expected: FAIL - [sec-fetch-dest - Not sent to non-trustworthy same-site destination] expected: FAIL [sec-fetch-mode - Not sent to non-trustworthy cross-site destination] expected: FAIL + + [sec-fetch-mode - Not sent to non-trustworthy same-site destination] + expected: FAIL + + [sec-fetch-user - Not sent to non-trustworthy cross-site destination] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/origin/assorted.window.js.ini b/tests/wpt/meta-legacy-layout/fetch/origin/assorted.window.js.ini index 44e55849ecd..2c63d36b6cd 100644 --- a/tests/wpt/meta-legacy-layout/fetch/origin/assorted.window.js.ini +++ b/tests/wpt/meta-legacy-layout/fetch/origin/assorted.window.js.ini @@ -1,13 +1,4 @@ [assorted.window.html] - [Origin header and 308 redirect] - expected: FAIL - - [Origin header and POST cross-origin fetch no-cors mode with Referrer-Policy no-referrer] - expected: FAIL - - [Origin header and POST same-origin fetch no-cors mode with Referrer-Policy no-referrer] - expected: FAIL - [Origin header and POST cross-origin navigation with Referrer-Policy origin-when-cross-origin] expected: FAIL @@ -17,17 +8,8 @@ [Origin header and POST navigation] expected: FAIL - [Origin header and POST cross-origin navigation with Referrer-Policy no-referrer] - expected: FAIL - [Origin header and POST cross-origin navigation with Referrer-Policy same-origin] expected: FAIL - [Origin header and POST cross-origin fetch no-cors mode with Referrer-Policy same-origin] - expected: FAIL - - [Origin header and POST same-origin navigation with Referrer-Policy no-referrer] - expected: FAIL - [Origin header and POST cross-origin navigation with Referrer-Policy no-referrer-when-downgrade] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini index 530635e744f..1bca09f21d6 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini @@ -4,3 +4,6 @@ [Navigating to a different document with link click] expected: FAIL + + [Navigating to a different document with form submission] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini new file mode 100644 index 00000000000..d6188c03424 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini @@ -0,0 +1,3 @@ +[traverse_the_history_4.html] + [Multiple history traversals, last would be aborted] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha.html.ini new file mode 100644 index 00000000000..186a93c513a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha.html.ini @@ -0,0 +1,2 @@ +[2d.filter.drop-shadow-globalAlpha.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.beginLayer-options.tentative.html.ini similarity index 65% rename from tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.html.ini rename to tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.beginLayer-options.tentative.html.ini index 0947bba3788..ece9f4e2ddb 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.html.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.beginLayer-options.tentative.html.ini @@ -1,3 +1,3 @@ -[2d.layer.beginLayer-options.html] +[2d.layer.beginLayer-options.tentative.html] [Checks beginLayer works for different option parameter values] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.exceptions-are-no-op.tentative.html.ini similarity index 66% rename from tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.html.ini rename to tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.exceptions-are-no-op.tentative.html.ini index 0cb6561c09c..976107bee85 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.html.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.exceptions-are-no-op.tentative.html.ini @@ -1,3 +1,3 @@ -[2d.layer.exceptions-are-no-op.html] +[2d.layer.exceptions-are-no-op.tentative.html] [Checks that the context state is left unchanged if beginLayer throws.] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative.html.ini new file mode 100644 index 00000000000..b7ff4f47c4e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.flush-on-frame-presentation.filtered_layer.tentative.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.html.ini deleted file mode 100644 index 3e49999e794..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.flush-on-frame-presentation.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer.html.ini new file mode 100644 index 00000000000..4ae50d5429f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer.html.ini @@ -0,0 +1,2 @@ +[2d.layer.flush-on-frame-presentation.plain_layer.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.html.ini deleted file mode 100644 index 8a0835e5445..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.global-states.filter.ctx-filter.no-transform.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative.html.ini new file mode 100644 index 00000000000..f7c212c2831 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.global-states.filter.ctx-filter.no-transform.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation.html.ini deleted file mode 100644 index 6814d4bc79e..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.global-states.filter.ctx-filter.rotation.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative.html.ini new file mode 100644 index 00000000000..5e83c0e5858 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.global-states.filter.ctx-filter.rotation.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.html.ini deleted file mode 100644 index 69987e0271f..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.global-states.filter.no-cxt-filter.no-transform.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.html.ini new file mode 100644 index 00000000000..f5833df5d2e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.html.ini deleted file mode 100644 index f06b34dec77..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.global-states.filter.no-cxt-filter.rotation.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.html.ini new file mode 100644 index 00000000000..350abfba509 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.nested-filters.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.nested-filters.html.ini deleted file mode 100644 index 08775471313..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.nested-filters.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.nested-filters.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.nested-filters.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.nested-filters.tentative.html.ini new file mode 100644 index 00000000000..441231db062 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.nested-filters.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.nested-filters.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter.html.ini new file mode 100644 index 00000000000..0d295b4f18a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter.html.ini @@ -0,0 +1,2 @@ +[2d.layer.opaque-canvas.ctx-filter.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.opaque-canvas.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.opaque-canvas.html.ini deleted file mode 100644 index 3447cf605d4..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.opaque-canvas.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.opaque-canvas.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative.html.ini new file mode 100644 index 00000000000..b7eb1d9af9e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.opaque-canvas.layer-filter.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative.html.ini new file mode 100644 index 00000000000..ca47d8aa7f9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.reset.filtered_layer.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.reset.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.reset.html.ini deleted file mode 100644 index a8ea215b961..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.reset.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.reset.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.reset.plain_layer.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.reset.plain_layer.html.ini new file mode 100644 index 00000000000..1db104acd16 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.reset.plain_layer.html.ini @@ -0,0 +1,2 @@ +[2d.layer.reset.plain_layer.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html.ini new file mode 100644 index 00000000000..6a1e2b1f6fb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.html.ini deleted file mode 100644 index 4f2ae62125b..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.shadow-from-outside-canvas.long-distance.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html.ini new file mode 100644 index 00000000000..2a6736a2141 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html.ini new file mode 100644 index 00000000000..de975daae14 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.html.ini deleted file mode 100644 index 46f724b3e99..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.shadow-from-outside-canvas.short-distance.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html.ini new file mode 100644 index 00000000000..270d88a437b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini index 7616121487c..ea398e580ef 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini @@ -1,5 +1,5 @@ [createImageBitmap-serializable.html] - expected: TIMEOUT + expected: ERROR [Serialize ImageBitmap created from a vector SVGImageElement] expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.html.ini new file mode 100644 index 00000000000..186a93c513a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.html.ini @@ -0,0 +1,2 @@ +[2d.filter.drop-shadow-globalAlpha.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.w.html.ini new file mode 100644 index 00000000000..e1f49e5ab06 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.w.html.ini @@ -0,0 +1,2 @@ +[2d.filter.drop-shadow-globalAlpha.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative.w.html.ini new file mode 100644 index 00000000000..ba2f9092e04 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.anisotropic-blur.isotropic.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.w.html.ini deleted file mode 100644 index 3a6d2b315fe..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.anisotropic-blur.isotropic.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative.w.html.ini new file mode 100644 index 00000000000..a0840a3fb98 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.anisotropic-blur.mostly-x.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.w.html.ini deleted file mode 100644 index 01c1322f5fd..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.anisotropic-blur.mostly-x.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative.w.html.ini new file mode 100644 index 00000000000..8c3c3428a44 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.anisotropic-blur.mostly-y.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.w.html.ini deleted file mode 100644 index 3333d8908fd..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.anisotropic-blur.mostly-y.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative.w.html.ini new file mode 100644 index 00000000000..25f6b02ae41 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.anisotropic-blur.x-only.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.w.html.ini deleted file mode 100644 index b13d321b725..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.anisotropic-blur.x-only.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative.w.html.ini new file mode 100644 index 00000000000..7517521387e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.anisotropic-blur.y-only.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.w.html.ini deleted file mode 100644 index 3bbc75904e1..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.anisotropic-blur.y-only.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.worker.js.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.html.ini similarity index 65% rename from tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.worker.js.ini rename to tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.html.ini index 3a377acbd03..ece9f4e2ddb 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.worker.js.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.html.ini @@ -1,3 +1,3 @@ -[2d.layer.beginLayer-options.worker.html] +[2d.layer.beginLayer-options.tentative.html] [Checks beginLayer works for different option parameter values] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.worker.js.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.worker.js.ini new file mode 100644 index 00000000000..60c195469bb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.worker.js.ini @@ -0,0 +1,3 @@ +[2d.layer.beginLayer-options.tentative.worker.html] + [Checks beginLayer works for different option parameter values] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.w.html.ini new file mode 100644 index 00000000000..74fc76dfaae --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..7db011bd863 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.w.html.ini deleted file mode 100644 index cfee0f0d2eb..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.blur-from-outside-canvas.no-clipping.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.w.html.ini new file mode 100644 index 00000000000..4a945bd98ab --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..9114368c2b0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.w.html.ini deleted file mode 100644 index aa4dc8d83e7..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.blur-from-outside-canvas.with-clipping.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter.w.html.ini new file mode 100644 index 00000000000..c8b5c879ec5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.clip-inside-and-outside.ctx-filter.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..ecfabc5f3d8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.clip-inside-and-outside.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.w.html.ini deleted file mode 100644 index 1f07c3d7925..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.clip-inside-and-outside.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter.w.html.ini new file mode 100644 index 00000000000..5b12f58a499 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.clip-inside.ctx-filter.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..d5bcb885591 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.clip-inside.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside.w.html.ini deleted file mode 100644 index 9fa43135cb7..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-inside.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.clip-inside.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter.w.html.ini new file mode 100644 index 00000000000..3329b56c138 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.clip-outside.ctx-filter.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..07550cb54dd --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.clip-outside.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-outside.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-outside.w.html.ini deleted file mode 100644 index 55b562973e6..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.clip-outside.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.clip-outside.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative.w.html.ini new file mode 100644 index 00000000000..913d9d36780 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.css-filters.blur-and-shadow.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.w.html.ini deleted file mode 100644 index d0293fc33a6..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.css-filters.blur-and-shadow.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative.w.html.ini new file mode 100644 index 00000000000..df5ced1380a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.css-filters.blur.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur.w.html.ini deleted file mode 100644 index 1398e7c12ed..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.blur.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.css-filters.blur.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative.w.html.ini new file mode 100644 index 00000000000..6492a5a997b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.css-filters.shadow.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.w.html.ini deleted file mode 100644 index d2c30722231..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.css-filters.shadow.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.ctm.filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.ctm.filter.w.html.ini deleted file mode 100644 index 9b5b2b40da6..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.ctm.filter.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.ctm.filter.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..fc39e14bc9c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.ctm.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.html.ini new file mode 100644 index 00000000000..d573a8044f4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.html.ini @@ -0,0 +1,2 @@ +[2d.layer.drawImage.ctx-filter.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.w.html.ini new file mode 100644 index 00000000000..f9131943d4c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.drawImage.ctx-filter.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.html.ini deleted file mode 100644 index e7c121bc3d8..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.drawImage.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.html.ini new file mode 100644 index 00000000000..2febbd72fe4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.drawImage.layer-filter.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..4d286cb596d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.drawImage.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.w.html.ini deleted file mode 100644 index bfd27f9b357..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.drawImage.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.drawImage.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.exceptions-are-no-op.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.html.ini similarity index 66% rename from tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.exceptions-are-no-op.html.ini rename to tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.html.ini index 0cb6561c09c..976107bee85 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/layers/2d.layer.exceptions-are-no-op.html.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.html.ini @@ -1,3 +1,3 @@ -[2d.layer.exceptions-are-no-op.html] +[2d.layer.exceptions-are-no-op.tentative.html] [Checks that the context state is left unchanged if beginLayer throws.] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.worker.js.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.worker.js.ini new file mode 100644 index 00000000000..77a36e9cf15 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.worker.js.ini @@ -0,0 +1,3 @@ +[2d.layer.exceptions-are-no-op.tentative.worker.html] + [Checks that the context state is left unchanged if beginLayer throws.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative.w.html.ini new file mode 100644 index 00000000000..3b78e61699a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.global-states.filter.ctx-filter.no-transform.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.w.html.ini deleted file mode 100644 index 4a4e8440cf8..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.global-states.filter.ctx-filter.no-transform.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative.w.html.ini new file mode 100644 index 00000000000..4838f73070c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.global-states.filter.ctx-filter.rotation.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.w.html.ini deleted file mode 100644 index 10e14493090..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.global-states.filter.ctx-filter.rotation.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.w.html.ini new file mode 100644 index 00000000000..bd9ea02a120 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.w.html.ini deleted file mode 100644 index 93377fbc62d..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.global-states.filter.no-cxt-filter.no-transform.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.w.html.ini new file mode 100644 index 00000000000..fa0c81756c7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.w.html.ini deleted file mode 100644 index 6654f82a369..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.global-states.filter.no-cxt-filter.rotation.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.html.ini deleted file mode 100644 index 08775471313..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.nested-filters.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.html.ini new file mode 100644 index 00000000000..441231db062 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.nested-filters.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.w.html.ini new file mode 100644 index 00000000000..ffc2961f385 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.nested-filters.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.w.html.ini deleted file mode 100644 index 298d8c25874..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.nested-filters.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.nested-filters.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.html.ini deleted file mode 100644 index c95e1c74724..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.non-invertible-matrix.with-render-states-and-filter.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.w.html.ini deleted file mode 100644 index 8cbdaa1ebe8..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.non-invertible-matrix.with-render-states-and-filter.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html.ini new file mode 100644 index 00000000000..b6c2184e45a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.w.html.ini new file mode 100644 index 00000000000..c97a473f280 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.html.ini new file mode 100644 index 00000000000..ff0a246fa2f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.html.ini @@ -0,0 +1,2 @@ +[2d.layer.non-invertible-matrix.with-render-states.plain-layer.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.w.html.ini new file mode 100644 index 00000000000..ece7004ae58 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.non-invertible-matrix.with-render-states.plain-layer.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.html.ini new file mode 100644 index 00000000000..0d295b4f18a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.html.ini @@ -0,0 +1,2 @@ +[2d.layer.opaque-canvas.ctx-filter.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.w.html.ini new file mode 100644 index 00000000000..45b385237ee --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.opaque-canvas.ctx-filter.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.html.ini deleted file mode 100644 index 3447cf605d4..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.opaque-canvas.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.html.ini new file mode 100644 index 00000000000..b7eb1d9af9e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.opaque-canvas.layer-filter.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..9d8e4ecea9e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.opaque-canvas.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.w.html.ini deleted file mode 100644 index ac2cfcf0bce..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.opaque-canvas.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.opaque-canvas.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.html.ini new file mode 100644 index 00000000000..ca47d8aa7f9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.reset.filtered_layer.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.w.html.ini new file mode 100644 index 00000000000..9d077b5db23 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.reset.filtered_layer.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.html.ini deleted file mode 100644 index a8ea215b961..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.reset.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.html.ini new file mode 100644 index 00000000000..1db104acd16 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.html.ini @@ -0,0 +1,2 @@ +[2d.layer.reset.plain_layer.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.w.html.ini new file mode 100644 index 00000000000..5307a921336 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.reset.plain_layer.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.w.html.ini deleted file mode 100644 index ffe6604630a..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.reset.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.reset.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.w.html.ini similarity index 80% rename from tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.w.html.ini rename to tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.w.html.ini index d8cea8cbc48..5f469d98239 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.w.html.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.w.html.ini @@ -1,2 +1,2 @@ -[2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.w.html] +[2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.w.html] expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..9a88c0a945a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html.ini new file mode 100644 index 00000000000..6a1e2b1f6fb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.w.html.ini new file mode 100644 index 00000000000..c0d132c4eed --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.html.ini deleted file mode 100644 index 4f2ae62125b..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.shadow-from-outside-canvas.long-distance.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html.ini new file mode 100644 index 00000000000..2a6736a2141 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..742a7c7525c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.w.html.ini deleted file mode 100644 index c2d27b36e9d..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.shadow-from-outside-canvas.long-distance.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.w.html.ini similarity index 80% rename from tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.w.html.ini rename to tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.w.html.ini index b62852b1e7c..750849636ef 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.w.html.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.w.html.ini @@ -1,2 +1,2 @@ -[2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.w.html] +[2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.w.html] expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..846117ef3d8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html.ini new file mode 100644 index 00000000000..de975daae14 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.w.html.ini new file mode 100644 index 00000000000..7cb9f6b7dae --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.html.ini deleted file mode 100644 index 46f724b3e99..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.shadow-from-outside-canvas.short-distance.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html.ini new file mode 100644 index 00000000000..270d88a437b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.w.html.ini new file mode 100644 index 00000000000..1a0f55c4cac --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.w.html.ini @@ -0,0 +1,2 @@ +[2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.w.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.w.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.w.html.ini deleted file mode 100644 index 3fb227c88ef..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.w.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.layer.shadow-from-outside-canvas.short-distance.w.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js.ini new file mode 100644 index 00000000000..716047c507e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js.ini @@ -0,0 +1,136 @@ +[credentialless-cache-storage.https.tentative.window.html?dedicated_worker] + expected: TIMEOUT + [[dedicated_worker\] none => none] + expected: TIMEOUT + + [[dedicated_worker\] none => isolate-and-credentialless] + expected: TIMEOUT + + [[dedicated_worker\] none => isolate-and-credentialless (omit)] + expected: TIMEOUT + + [[dedicated_worker\] none => isolate-and-credentialless + CORP] + expected: TIMEOUT + + [[dedicated_worker\] none => isolate-and-require-corp] + expected: TIMEOUT + + [[dedicated_worker\] none => isolate-and-require-corp (omit)] + expected: TIMEOUT + + [[dedicated_worker\] none => isolate-and-require-corp + CORP] + expected: TIMEOUT + + [[dedicated_worker\] isolate-and-credentialless => none] + expected: TIMEOUT + + [[dedicated_worker\] isolate-and-credentialless => isolate-and-credentialless] + expected: TIMEOUT + + [[dedicated_worker\] isolate-and-credentialless => isolate-and-require-corp] + expected: TIMEOUT + + [[dedicated_worker\] isolate-and-credentialless => isolate-and-require-corp + CORP] + expected: TIMEOUT + + [[dedicated_worker\] isolate-and-require-corp => none] + expected: TIMEOUT + + [[dedicated_worker\] isolate-and-require-corp => isolate-and-credentialless] + expected: TIMEOUT + + [[dedicated_worker\] isolate-and-require-corp => isolate-and-require-corp] + expected: TIMEOUT + + +[credentialless-cache-storage.https.tentative.window.html?shared_worker] + expected: ERROR + +[credentialless-cache-storage.https.tentative.window.html?service_worker] + expected: ERROR + [[service_worker\] none => none] + expected: TIMEOUT + + [[service_worker\] none => isolate-and-credentialless] + expected: TIMEOUT + + [[service_worker\] none => isolate-and-credentialless (omit)] + expected: TIMEOUT + + [[service_worker\] none => isolate-and-credentialless + CORP] + expected: TIMEOUT + + [[service_worker\] none => isolate-and-require-corp] + expected: TIMEOUT + + [[service_worker\] none => isolate-and-require-corp (omit)] + expected: TIMEOUT + + [[service_worker\] none => isolate-and-require-corp + CORP] + expected: TIMEOUT + + [[service_worker\] isolate-and-credentialless => none] + expected: TIMEOUT + + [[service_worker\] isolate-and-credentialless => isolate-and-credentialless] + expected: TIMEOUT + + [[service_worker\] isolate-and-credentialless => isolate-and-require-corp] + expected: TIMEOUT + + [[service_worker\] isolate-and-credentialless => isolate-and-require-corp + CORP] + expected: TIMEOUT + + [[service_worker\] isolate-and-require-corp => none] + expected: TIMEOUT + + [[service_worker\] isolate-and-require-corp => isolate-and-credentialless] + expected: TIMEOUT + + [[service_worker\] isolate-and-require-corp => isolate-and-require-corp] + expected: TIMEOUT + + +[credentialless-cache-storage.https.tentative.window.html?document] + expected: TIMEOUT + [[document\] none => none] + expected: TIMEOUT + + [[document\] none => isolate-and-credentialless] + expected: TIMEOUT + + [[document\] none => isolate-and-credentialless (omit)] + expected: TIMEOUT + + [[document\] none => isolate-and-credentialless + CORP] + expected: TIMEOUT + + [[document\] none => isolate-and-require-corp] + expected: TIMEOUT + + [[document\] none => isolate-and-require-corp (omit)] + expected: TIMEOUT + + [[document\] none => isolate-and-require-corp + CORP] + expected: TIMEOUT + + [[document\] isolate-and-credentialless => none] + expected: TIMEOUT + + [[document\] isolate-and-credentialless => isolate-and-credentialless] + expected: TIMEOUT + + [[document\] isolate-and-credentialless => isolate-and-require-corp] + expected: TIMEOUT + + [[document\] isolate-and-credentialless => isolate-and-require-corp + CORP] + expected: TIMEOUT + + [[document\] isolate-and-require-corp => none] + expected: TIMEOUT + + [[document\] isolate-and-require-corp => isolate-and-credentialless] + expected: TIMEOUT + + [[document\] isolate-and-require-corp => isolate-and-require-corp] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-cache.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-cache.tentative.window.js.ini new file mode 100644 index 00000000000..2e1af593d55 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-cache.tentative.window.js.ini @@ -0,0 +1,3 @@ +[credentialless-cache.tentative.window.html] + [The HTTP cache must not be used] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-cross-origin-isolated.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-cross-origin-isolated.tentative.window.js.ini new file mode 100644 index 00000000000..37bf70eefa9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-cross-origin-isolated.tentative.window.js.ini @@ -0,0 +1,6 @@ +[credentialless-cross-origin-isolated.tentative.window.html] + [Main crossOriginIsolated case:] + expected: FAIL + + [Report-only + enforced:] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js.ini new file mode 100644 index 00000000000..62cfc85f26f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js.ini @@ -0,0 +1,9 @@ +[credentialless-dedicated-worker.https.tentative.window.html] + [fetch same-origin] + expected: FAIL + + [fetch cross-origin] + expected: FAIL + + [fetch cross-origin + credentialless worker] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-fetch.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-fetch.https.tentative.window.js.ini new file mode 100644 index 00000000000..c0f474df883 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-fetch.https.tentative.window.js.ini @@ -0,0 +1,3 @@ +[credentialless-fetch.https.tentative.window.html] + [fetch cross-origin + no-cors + credentials:include] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-link.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-link.https.tentative.window.js.ini new file mode 100644 index 00000000000..25c1bba5f89 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-link.https.tentative.window.js.ini @@ -0,0 +1,3 @@ +[credentialless-link.https.tentative.window.html] + [link cross-origin + undefined] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-redirect.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-redirect.tentative.window.js.ini new file mode 100644 index 00000000000..06c47c05124 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-redirect.tentative.window.js.ini @@ -0,0 +1,9 @@ +[credentialless-redirect.tentative.window.html] + [same-origin -> cross-origin] + expected: FAIL + + [cross-origin -> same-origin] + expected: FAIL + + [cross-origin -> cross-origin] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-script.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-script.https.tentative.window.js.ini new file mode 100644 index 00000000000..6a6d13caf11 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-script.https.tentative.window.js.ini @@ -0,0 +1,3 @@ +[credentialless-script.https.tentative.window.html] + [script cross-origin + undefined] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-service-worker.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-service-worker.https.tentative.window.js.ini new file mode 100644 index 00000000000..1ad2a361a79 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-service-worker.https.tentative.window.js.ini @@ -0,0 +1,12 @@ +[credentialless-service-worker.https.tentative.window.html] + [fetch same-origin] + expected: FAIL + + [fetch same-origin + credentialless worker] + expected: FAIL + + [fetch cross-origin] + expected: FAIL + + [fetch cross-origin + credentialless worker] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.js.ini new file mode 100644 index 00000000000..dfb778f2916 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.js.ini @@ -0,0 +1,46 @@ +[credentialless-shared-worker.https.tentative.window.html?request_origin=cross_origin&worker_dip=credentialless&window_dip=none] + expected: TIMEOUT + [credentialless-shared-worker] + expected: TIMEOUT + + +[credentialless-shared-worker.https.tentative.window.html?request_origin=cross_origin&worker_dip=none&window_dip=none] + expected: TIMEOUT + [credentialless-shared-worker] + expected: TIMEOUT + + +[credentialless-shared-worker.https.tentative.window.html?request_origin=same_origin&worker_dip=credentialless&window_dip=none] + expected: TIMEOUT + [credentialless-shared-worker] + expected: TIMEOUT + + +[credentialless-shared-worker.https.tentative.window.html?request_origin=same_origin&worker_dip=none&window_dip=none] + expected: TIMEOUT + [credentialless-shared-worker] + expected: TIMEOUT + + +[credentialless-shared-worker.https.tentative.window.html?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless] + expected: TIMEOUT + [credentialless-shared-worker] + expected: TIMEOUT + + +[credentialless-shared-worker.https.tentative.window.html?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless] + expected: TIMEOUT + [credentialless-shared-worker] + expected: TIMEOUT + + +[credentialless-shared-worker.https.tentative.window.html?request_origin=same_origin&worker_dip=none&window_dip=credentialless] + expected: TIMEOUT + [credentialless-shared-worker] + expected: TIMEOUT + + +[credentialless-shared-worker.https.tentative.window.html?request_origin=cross_origin&worker_dip=none&window_dip=credentialless] + expected: TIMEOUT + [credentialless-shared-worker] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-video.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-video.https.tentative.window.js.ini new file mode 100644 index 00000000000..ed605392ac1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/credentialless-video.https.tentative.window.js.ini @@ -0,0 +1,3 @@ +[credentialless-video.https.tentative.window.html] + [video cross-origin + undefined] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/service-worker-coep-credentialless-proxy.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/service-worker-coep-credentialless-proxy.https.tentative.window.js.ini new file mode 100644 index 00000000000..2ed4c394567 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/service-worker-coep-credentialless-proxy.https.tentative.window.js.ini @@ -0,0 +1,3 @@ +[service-worker-coep-credentialless-proxy.https.tentative.window.html] + [COEP:credentialless ServiceWorker] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/document-isolation-policy/service-worker-coep-none-proxy.https.tentative.window.js.ini b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/service-worker-coep-none-proxy.https.tentative.window.js.ini new file mode 100644 index 00000000000..a96a5b49f0b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/document-isolation-policy/service-worker-coep-none-proxy.https.tentative.window.js.ini @@ -0,0 +1,3 @@ +[service-worker-coep-none-proxy.https.tentative.window.html] + [COEP:unsafe-none ServiceWorker] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/rendering/the-details-element/details-pseudo-elements-004.html.ini b/tests/wpt/meta-legacy-layout/html/rendering/the-details-element/details-pseudo-elements-004.html.ini new file mode 100644 index 00000000000..e9aa1a78c35 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/rendering/the-details-element/details-pseudo-elements-004.html.ini @@ -0,0 +1,2 @@ +[details-pseudo-elements-004.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/rendering/the-details-element/details-pseudo-elements-005.html.ini b/tests/wpt/meta-legacy-layout/html/rendering/the-details-element/details-pseudo-elements-005.html.ini new file mode 100644 index 00000000000..53b1e16bba3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/rendering/the-details-element/details-pseudo-elements-005.html.ini @@ -0,0 +1,2 @@ +[details-pseudo-elements-005.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index 25d9964f057..906e7bae909 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_escaping-1.html] type: testharness [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini index 68203d2a082..26704422bbe 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_escaping-2.html] - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini index 6fcdfb95246..eacbe5794ea 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini @@ -1,5 +1,5 @@ [iframe_sandbox_popups_escaping-3.html] type: testharness - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index 76e34322dca..6bec7a732b8 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,5 +1,4 @@ [iframe_sandbox_popups_nonescaping-2.html] type: testharness - expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index ff6467094b8..d5fd800f09d 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,3 +1,4 @@ [iframe_sandbox_popups_nonescaping-3.html] + expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/html/semantics/invokers/idlharness.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/invokers/idlharness.tentative.html.ini index cd96793eab1..10a64554b09 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/invokers/idlharness.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/invokers/idlharness.tentative.html.ini @@ -70,3 +70,9 @@ [CommandEvent interface: new CommandEvent("invoke") must inherit property "command" with the proper type] expected: FAIL + + [CommandEvent interface: attribute source] + expected: FAIL + + [CommandEvent interface: new CommandEvent("invoke") must inherit property "source" with the proper type] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini b/tests/wpt/meta-legacy-layout/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini new file mode 100644 index 00000000000..53acb938c1b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/webappapis/dynamic-markup-insertion/document-write/module-static-import-delayed.html.ini @@ -0,0 +1,3 @@ +[module-static-import-delayed.html] + [document.write in an imported module] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/webappapis/update-rendering/child-document-raf-order.html.ini b/tests/wpt/meta-legacy-layout/html/webappapis/update-rendering/child-document-raf-order.html.ini deleted file mode 100644 index 312c6689170..00000000000 --- a/tests/wpt/meta-legacy-layout/html/webappapis/update-rendering/child-document-raf-order.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[child-document-raf-order.html] - [Ordering of steps in "Update the Rendering" - child document requestAnimationFrame order] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/selection/caret/editing-host-has-only-invisible-br.html.ini b/tests/wpt/meta-legacy-layout/selection/caret/editing-host-has-only-invisible-br.html.ini new file mode 100644 index 00000000000..d56452adc53 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/selection/caret/editing-host-has-only-invisible-br.html.ini @@ -0,0 +1,2 @@ +[editing-host-has-only-invisible-br.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/webmessaging/postMessage_CryptoKey_insecure.sub.html.ini b/tests/wpt/meta-legacy-layout/webmessaging/postMessage_CryptoKey_insecure.sub.html.ini index f04354e7663..a96afad0d4f 100644 --- a/tests/wpt/meta-legacy-layout/webmessaging/postMessage_CryptoKey_insecure.sub.html.ini +++ b/tests/wpt/meta-legacy-layout/webmessaging/postMessage_CryptoKey_insecure.sub.html.ini @@ -1,4 +1,3 @@ [postMessage_CryptoKey_insecure.sub.html] - expected: TIMEOUT [insecure context should not receive an object for secure contexts only] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/webmessaging/with-ports/017.html.ini b/tests/wpt/meta-legacy-layout/webmessaging/with-ports/017.html.ini new file mode 100644 index 00000000000..c7946fc91b4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/webmessaging/with-ports/017.html.ini @@ -0,0 +1,4 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/webmessaging/without-ports/018.html.ini b/tests/wpt/meta-legacy-layout/webmessaging/without-ports/018.html.ini new file mode 100644 index 00000000000..b7b36c1d3a4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/webmessaging/without-ports/018.html.ini @@ -0,0 +1,4 @@ +[018.html] + expected: TIMEOUT + [origin of the script that invoked the method, javascript:] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/webxr/layers/xrSession_updateRenderState.https.html.ini b/tests/wpt/meta-legacy-layout/webxr/layers/xrSession_updateRenderState.https.html.ini index 34aa807e81e..055063020ad 100644 --- a/tests/wpt/meta-legacy-layout/webxr/layers/xrSession_updateRenderState.https.html.ini +++ b/tests/wpt/meta-legacy-layout/webxr/layers/xrSession_updateRenderState.https.html.ini @@ -4,9 +4,3 @@ [Ensure XRSession throws appropriate errors when updating render state without layers feature enabled - webgl2] expected: FAIL - - [Ensure XRSession throws appropriate errors when updating render state with layers feature enabled - webgl] - expected: FAIL - - [Ensure XRSession throws appropriate errors when updating render state with layers feature enabled - webgl2] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/webxr/xrWebGLLayer_constructor.https.html.ini b/tests/wpt/meta-legacy-layout/webxr/xrWebGLLayer_constructor.https.html.ini index d4e96417d6d..416644b31a2 100644 --- a/tests/wpt/meta-legacy-layout/webxr/xrWebGLLayer_constructor.https.html.ini +++ b/tests/wpt/meta-legacy-layout/webxr/xrWebGLLayer_constructor.https.html.ini @@ -1,10 +1,10 @@ [xrWebGLLayer_constructor.https.html] + expected: ERROR [Ensure that XRWebGLLayer's constructor throws appropriate errors] expected: TIMEOUT [Ensure that XRWebGLLayer's constructor throws appropriate errors using webgl2] - expected: FAIL + expected: NOTRUN [Ensure that XRWebGLLayer's constructor throws appropriate errors using webgl] - expected: FAIL - + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/workers/WorkerGlobalScope-close.html.ini b/tests/wpt/meta-legacy-layout/workers/WorkerGlobalScope-close.html.ini deleted file mode 100644 index 24daae4c2e7..00000000000 --- a/tests/wpt/meta-legacy-layout/workers/WorkerGlobalScope-close.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[WorkerGlobalScope-close.html] - [Test sending a message after closing.] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/workers/semantics/run-a-worker/003.html.ini b/tests/wpt/meta-legacy-layout/workers/semantics/run-a-worker/003.html.ini index f4318e59a8d..e083d83077b 100644 --- a/tests/wpt/meta-legacy-layout/workers/semantics/run-a-worker/003.html.ini +++ b/tests/wpt/meta-legacy-layout/workers/semantics/run-a-worker/003.html.ini @@ -1,5 +1,4 @@ [003.html] type: testharness - expected: ERROR [shared] expected: FAIL diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index bab19e96824..884c6011fbb 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -873,6 +873,13 @@ {} ] ], + "box-decoration-break-clone-036-crash.html": [ + "f6a319cce5bcb7be5a0972276f676d5a98c3efae", + [ + null, + {} + ] + ], "break-after-in-parallel-flow-crash.html": [ "b59563295028f487543d79524ea81543b8a78046", [ @@ -1663,6 +1670,13 @@ {} ] ], + "chrome-bug-372358471-crash.html": [ + "fc579cc3f887b815f26f14d7eb54714c0d1a4d2e", + [ + null, + {} + ] + ], "chrome-custom-highlight-crash.html": [ "61e5075ed4e1b485019d96b402bbf17926bd1098", [ @@ -5095,6 +5109,13 @@ ] }, "css-typed-om": { + "cycle-in-unparsed-value-crash.html": [ + "9d551901089f845e97c10150bd9200d772855925", + [ + null, + {} + ] + ], "perspective-typed-arithmetic-crash.html": [ "b65625b28681d6adf4edf414700b8c8fd1dfb3a6", [ @@ -5316,6 +5337,13 @@ }, "css-viewport": { "zoom": { + "perspective-small-effective-zoom-crash.html": [ + "ab6f563d19ee8a826cf2ff9d0f04d105c7ba8d96", + [ + null, + {} + ] + ], "scroll-corner-crash.html": [ "0ec88deb748ba83e5408f7c126c021827e940bcf", [ @@ -6616,6 +6644,13 @@ {} ] ], + "selectall-after-enableobjectresizing.html": [ + "2aa1ffee8c7db9114b3cc88271a1ec10d91ea3a0", + [ + null, + {} + ] + ], "selectall-and-inerthtml-in-textarea-editing-host.html": [ "8b0e36cd655a51da8cc7df1740eed9f456bebf83", [ @@ -6794,6 +6829,17 @@ }, "html": { "browsers": { + "browsing-the-web": { + "navigating-across-documents": { + "unknown-protocol-reload-crash.html": [ + "b274e5706939088a702042e07aa2c8af3f9bd3bd", + [ + null, + {} + ] + ] + } + }, "origin": { "origin-keyed-agent-clusters": { "popups-crash.https.html": [ @@ -52695,7 +52741,7 @@ ] ], "c542-letter-sp-001.xht": [ - "9c489e9067dabef8cbbcda9695096a1e6ea8f91b", + "6b61c7ae2acd0f5a9d8a343aa2fd6703385261f4", [ null, [ @@ -123822,6 +123868,32 @@ {} ] ], + "position-anchor-004.html": [ + "d1a1ce962c4d956de3853339456eb4cc867b44db", + [ + null, + [ + [ + "/css/css-anchor-position/position-anchor-ref.html", + "==" + ] + ], + {} + ] + ], + "position-anchor-target-with-children.html": [ + "d6e5164936af90987f43802f84e62478e931dbc6", + [ + null, + [ + [ + "/css/css-anchor-position/position-anchor-target-with-children-ref.html", + "==" + ] + ], + {} + ] + ], "position-area-abs-inline-container.html": [ "deaf60647d4ecf6e2039bacbe41e6eb3e8593d8b", [ @@ -127082,7 +127154,7 @@ ] ], "background-repeat-space.xht": [ - "8867520c56eb70a6d590b9fa3ffe7e20f53519d0", + "7ec7b47525a5b2bba83d511c5a18611d3a6ca8aa", [ null, [ @@ -127102,7 +127174,7 @@ ], [ 0, - 2796 + 5532 ] ] ] @@ -127309,7 +127381,7 @@ ] ], "background-repeat-space-10.html": [ - "cb1c782116355f25254852b1c0568db8c4c2cba2", + "21e565f855000b2c1b010df54bb9cb63d643aa01", [ null, [ @@ -127329,7 +127401,7 @@ ], [ 0, - 990 + 1680 ] ] ] @@ -127612,7 +127684,7 @@ ] ], "background-repeat-space-9.html": [ - "79f4c0c0a140d268060bafaf48cd25406d5f2f63", + "7ec236f474cd73eab099b9e3c003b518d951d5ce", [ null, [ @@ -127632,7 +127704,7 @@ ], [ 0, - 981 + 1680 ] ] ] @@ -131774,7 +131846,7 @@ ] ], "border-image-repeat-002.htm": [ - "a0c081863d42cd4c0ea24996e23ace8537c7a133", + "e1d4490c70c8938254c467e99d6af2075b0e2980", [ null, [ @@ -131783,7 +131855,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 20 + ], + [ + 0, + 2160 + ] + ] + ] + ] + } ] ], "border-image-repeat-004.htm": [ @@ -179737,7 +179825,7 @@ ] ], "font-size-adjust-010.html": [ - "c3b2bc195ec1c3ed067cac3bea60fd4bf446690b", + "490c7711c9a076e57beaf6d33054f2e8df05f7c7", [ null, [ @@ -179746,7 +179834,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 130 + ], + [ + 0, + 350 + ] + ] + ] + ] + } ] ], "font-size-adjust-011.html": [ @@ -199654,19 +199758,6 @@ {} ] ], - "initial-letter-raise-initial-rtl.html": [ - "10b90ac395c02c5f840f7877f73149022ca1186f", - [ - null, - [ - [ - "/css/css-inline/initial-letter/initial-letter-raise-initial-rtl-ref.html", - "==" - ] - ], - {} - ] - ], "initial-letter-raise-initial-vlr.html": [ "6b1ebd50919fd1c2c0f34bfa0b4496cc746f16fa", [ @@ -199694,7 +199785,7 @@ ] ], "initial-letter-raise-initial.html": [ - "ec2ec6bdc07983435ffc4125fde58a296fb06ec3", + "076887b1de36932877cf771a274f220a30245f55", [ "css/css-inline/initial-letter/initial-letter-raise-initial.html?class=", [ @@ -199724,6 +199815,16 @@ ] ], {} + ], + [ + "css/css-inline/initial-letter/initial-letter-raise-initial.html?class=rtl", + [ + [ + "/css/css-inline/initial-letter/initial-letter-raise-initial-ref.html?class=rtl", + "==" + ] + ], + {} ] ], "initial-letter-raised-sunken-caps-raise.html": [ @@ -199778,19 +199879,6 @@ {} ] ], - "initial-letter-sunk-initial-rtl.html": [ - "214ee94c3ad51fe5025d44358c9b22d55ddf55bb", - [ - null, - [ - [ - "/css/css-inline/initial-letter/initial-letter-sunk-initial-rtl-ref.html", - "==" - ] - ], - {} - ] - ], "initial-letter-sunk-initial-vlr.html": [ "a4901290a6b2c00398a769a39c87c84cc8da51cf", [ @@ -199818,7 +199906,7 @@ ] ], "initial-letter-sunk-initial.html": [ - "3c00662d73cba1830a7a67ce931ec936ae3253d9", + "764d79f294ce1a4bd7d8367bad87e5429feddbfa", [ "css/css-inline/initial-letter/initial-letter-sunk-initial.html?class=", [ @@ -199848,6 +199936,16 @@ ] ], {} + ], + [ + "css/css-inline/initial-letter/initial-letter-sunk-initial.html?class=rtl", + [ + [ + "/css/css-inline/initial-letter/initial-letter-sunk-initial-ref.html?class=rtl", + "==" + ] + ], + {} ] ], "initial-letter-with-first-line.html": [ @@ -200242,12 +200340,12 @@ ] ], "text-box-trim-half-leading-block-box-004.html": [ - "3e24919fd7f36d070d3430d0ff5f482785a0d30b", + "d0b4eac6d0b6b96ba63d950570789d13ebe43dd6", [ null, [ [ - "/css/css-inline/text-box-trim/text-box-trim-half-leading-block-box-001-ref.html", + "/css/css-inline/text-box-trim/text-box-trim-half-leading-block-box-004-ref.html", "==" ] ], @@ -200255,12 +200353,12 @@ ] ], "text-box-trim-half-leading-block-box-005.html": [ - "fd6b18d052b3c582044320bea022c4dc64a5d6a6", + "d4bf188a6514198e6bb81cd9f6b44d22eae7c613", [ null, [ [ - "/css/css-inline/text-box-trim/text-box-trim-half-leading-block-box-001-ref.html", + "/css/css-inline/text-box-trim/text-box-trim-half-leading-block-box-004-ref.html", "==" ] ], @@ -204445,6 +204543,19 @@ {} ] ], + "clip-path-animation-custom-property.html": [ + "b4de2b1009b1f02211a10629b17d3963537d9bd5", + [ + null, + [ + [ + "/css/css-masking/clip-path/animations/clip-path-animation-custom-property-ref.html", + "==" + ] + ], + {} + ] + ], "clip-path-animation-custom-timing-function-reverse.html": [ "5346a4c22421cafde7691356c67b896f22392f76", [ @@ -207588,7 +207699,7 @@ ] ], "clip-path-url-reference-external.html": [ - "91737bf9b7059eaa454e4974c3d242e7e49dd615", + "e00f59b2659fc61d37b6f099ea69e53bb8cb4d9a", [ null, [ @@ -207604,11 +207715,11 @@ [ [ 0, - 1 + 36 ], [ 0, - 120 + 384 ] ] ] @@ -217896,6 +218007,19 @@ {} ] ], + "line-clamp-auto-038.tentative.html": [ + "0d7ef4606d5b956bd15ceb749b92d586e503cd7c", + [ + null, + [ + [ + "/css/css-overflow/line-clamp/reference/line-clamp-auto-038-ref.html", + "==" + ] + ], + {} + ] + ], "line-clamp-auto-with-ruby-001.tentative.html": [ "5f69cc1b71e9eaeceacbbb87140349b5d7590a8c", [ @@ -218130,6 +218254,19 @@ {} ] ], + "line-clamp-with-abspos-014.tentative.html": [ + "ea2f531207084097c4ab0406a270b045894a0d5d", + [ + null, + [ + [ + "/css/css-overflow/line-clamp/reference/webkit-line-clamp-005-ref.html", + "==" + ] + ], + {} + ] + ], "line-clamp-with-floats-001.tentative.html": [ "98bbdcb9040224c9c9df1a535ffdeb426040a3c7", [ @@ -224872,6 +225009,19 @@ {} ] ], + "before-preceding-whitespace-dynamic.html": [ + "c361609bf0c4b4decd2000c700be816f1c6359b2", + [ + null, + [ + [ + "/css/reference/pass_if_two_words.html", + "==" + ] + ], + {} + ] + ], "file-selector-button-001.html": [ "48b2852de820f61ce5344584ab1ff3aa2313adcf", [ @@ -232710,7 +232860,7 @@ ] ], "shape-image-029.html": [ - "3c8d58607cbc3cef483d1bd7fd607d29d477ac28", + "252bb3e54eb26d74be23fad77918df58e660d601", [ null, [ @@ -295911,6 +296061,19 @@ {} ] ], + "custom-scrollbar.html": [ + "cc05ca53e1d8a2213969b30e70f66072ed5ba377", + [ + null, + [ + [ + "/css/css-view-transitions/navigation/custom-scrollbar-ref.html", + "==" + ] + ], + {} + ] + ], "navigation-auto-excludes-reload.html": [ "c0fb61a4b0aa85848f55332e5d491798854853b0", [ @@ -295925,7 +296088,7 @@ ] ], "no-view-transition-with-cross-origin-redirect.sub.html": [ - "8780310af2ff2942de48a824919c8c4b950519cb", + "c2ad21bad94ef7d5700cd355dcac253fbb29651a", [ null, [ @@ -296062,7 +296225,7 @@ ] ], "root-element-transition-iframe-with-startVT-on-main.html": [ - "2a86f629acf8e998e292954faed7117e07eac7db", + "3e95511b8d137bd395ad8707845d8102a314d842", [ null, [ @@ -326908,6 +327071,19 @@ {} ] ], + "2d.filter.drop-shadow-globalAlpha.html": [ + "2a44537508647c303101bed00e50d7009b2c8aff", + [ + null, + [ + [ + "/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha-expected.html", + "==" + ] + ], + {} + ] + ], "2d.filter.layers.componentTransfer.discrete.tentative.html": [ "4a307d75a8f0a4af4843125d5241d8f7e7acbcad", [ @@ -327065,91 +327241,117 @@ ] }, "layers": { - "2d.layer.anisotropic-blur.isotropic.html": [ - "9a4505bfdc308fe48384196848a9327cc6600455", + "2d.layer.anisotropic-blur.isotropic.tentative.html": [ + "273a15ed601943c4cea69a6d8a665bca525cf71b", [ null, [ [ - "/html/canvas/element/layers/2d.layer.anisotropic-blur.isotropic-expected.html", + "/html/canvas/element/layers/2d.layer.anisotropic-blur.isotropic.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.mostly-x.html": [ - "a96858a358763730f70846bc9d95e514d05acd04", + "2d.layer.anisotropic-blur.mostly-x.tentative.html": [ + "dd043ff17663affe2aa5b3f7dabdf4943406bd6b", [ null, [ [ - "/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-x-expected.html", + "/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-x.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.mostly-y.html": [ - "364ab5a29daf1d6cc3299a5a9d04f96dec1ae431", + "2d.layer.anisotropic-blur.mostly-y.tentative.html": [ + "1603bb42bd97253e5771375dfd36f8530905247b", [ null, [ [ - "/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-y-expected.html", + "/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-y.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.x-only.html": [ - "b70126e4677d933fed55c34cdcfb7139f608dc05", + "2d.layer.anisotropic-blur.x-only.tentative.html": [ + "2586011a767c89919d7c5826c5d092dc06401378", [ null, [ [ - "/html/canvas/element/layers/2d.layer.anisotropic-blur.x-only-expected.html", + "/html/canvas/element/layers/2d.layer.anisotropic-blur.x-only.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.y-only.html": [ - "aeb739b594414eac98d05862999b67f7e3eb5a61", + "2d.layer.anisotropic-blur.y-only.tentative.html": [ + "4b1a4f23f3178a02da6c814790b67291cbda4da0", [ null, [ [ - "/html/canvas/element/layers/2d.layer.anisotropic-blur.y-only-expected.html", + "/html/canvas/element/layers/2d.layer.anisotropic-blur.y-only.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.blur-from-outside-canvas.no-clipping.html": [ - "67bc1873afabf34066c1c80a106c8e3d7d545bed", + "2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.html": [ + "4742ef50ab70180347d9d7f7cf6e51c697a6c43d", [ null, [ [ - "/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping-expected.html", + "/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.blur-from-outside-canvas.with-clipping.html": [ - "c1084268d5cda4bdfe766d6b4e80e46cdd3e5276", + "2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.html": [ + "7e2a8f21390b73a17096563e0361d42e71f2f20f", [ null, [ [ - "/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping-expected.html", + "/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.html": [ + "66f075ffcd2bc9b2db5b42232ef0fb350a4978fa", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.html": [ + "33c06dd501bcc9bfcb1cb2c3eae9883b1d6675cb", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html", "==" ] ], @@ -327182,39 +327384,78 @@ {} ] ], - "2d.layer.clip-inside-and-outside.html": [ - "529c39f0530af1b67738589c5879ce0ccf7517e1", + "2d.layer.clip-inside-and-outside.ctx-filter.html": [ + "a26f391333a97db2bf607083aa522b0feca2f7ff", [ null, [ [ - "/html/canvas/element/layers/2d.layer.clip-inside-and-outside-expected.html", + "/html/canvas/element/layers/2d.layer.clip-inside-and-outside.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.clip-inside.html": [ - "69847c50a1c8324ec3e1bdd40903f97ebbfe75eb", + "2d.layer.clip-inside-and-outside.layer-filter.tentative.html": [ + "def8022a96f6cbfe45a16d7d1c34b014a577ce48", [ null, [ [ - "/html/canvas/element/layers/2d.layer.clip-inside-expected.html", + "/html/canvas/element/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.clip-outside.html": [ - "a9a22d420653f048c03ea94cf683d4c1f694a27a", + "2d.layer.clip-inside.ctx-filter.html": [ + "c787be5771abc7a6a38ee6b9f308a68b4796f61c", [ null, [ [ - "/html/canvas/element/layers/2d.layer.clip-outside-expected.html", + "/html/canvas/element/layers/2d.layer.clip-inside.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.clip-inside.layer-filter.tentative.html": [ + "cdbbce36338dea473f5698d3e3e57822d5db0304", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.clip-inside.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.clip-outside.ctx-filter.html": [ + "f048e82918128cb9c80a84f747c87483c03ba2c2", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.clip-outside.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.clip-outside.layer-filter.tentative.html": [ + "35a527834fdd4d9c3f0a135982b9143e05497690", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.clip-outside.layer-filter.tentative-expected.html", "==" ] ], @@ -327234,39 +327475,39 @@ {} ] ], - "2d.layer.css-filters.blur-and-shadow.html": [ - "5339be30471deedd42c5780551cdf33a7e714054", + "2d.layer.css-filters.blur-and-shadow.tentative.html": [ + "409ea896c40a9d42a4864a8a7380527a07965ac7", [ null, [ [ - "/html/canvas/element/layers/2d.layer.css-filters.blur-and-shadow-expected.html", + "/html/canvas/element/layers/2d.layer.css-filters.blur-and-shadow.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.css-filters.blur.html": [ - "a7d6069962d2d9db62c4ae78560b98e2012ffd1c", + "2d.layer.css-filters.blur.tentative.html": [ + "1c0e0975f074e5d194f63b0114cdbac5def4ddb0", [ null, [ [ - "/html/canvas/element/layers/2d.layer.css-filters.blur-expected.html", + "/html/canvas/element/layers/2d.layer.css-filters.blur.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.css-filters.shadow.html": [ - "88038168375db267f2ea49d2ab2dbb1041071175", + "2d.layer.css-filters.shadow.tentative.html": [ + "379a674ba418bdd974b870fb26fc7cc0959b810e", [ null, [ [ - "/html/canvas/element/layers/2d.layer.css-filters.shadow-expected.html", + "/html/canvas/element/layers/2d.layer.css-filters.shadow.tentative-expected.html", "==" ] ], @@ -327286,13 +327527,13 @@ {} ] ], - "2d.layer.ctm.filter.html": [ - "53e15eb769c03583c0efe732b2e74e440a50af70", + "2d.layer.ctm.layer-filter.tentative.html": [ + "3db631ff3be90e50b831129f0984795c7346d809", [ null, [ [ - "/html/canvas/element/layers/2d.layer.ctm.filter-expected.html", + "/html/canvas/element/layers/2d.layer.ctm.layer-filter.tentative-expected.html", "==" ] ], @@ -327338,26 +327579,52 @@ {} ] ], - "2d.layer.drawImage.html": [ - "6ae4ee8ac9cafa53e63e601867189fe693619342", + "2d.layer.drawImage.ctx-filter.html": [ + "52d2d211e4bfe6f12380f03f258d4df3a5553aa8", [ null, [ [ - "/html/canvas/element/layers/2d.layer.drawImage-expected.html", + "/html/canvas/element/layers/2d.layer.drawImage.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.flush-on-frame-presentation.html": [ - "85099e046b43bb8f73a6c884647b140acda0ddb5", + "2d.layer.drawImage.layer-filter.tentative.html": [ + "a0f2df478d53e9203c686975830b9b6f9b7f0516", [ null, [ [ - "/html/canvas/element/layers/2d.layer.flush-on-frame-presentation-expected.html", + "/html/canvas/element/layers/2d.layer.drawImage.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.flush-on-frame-presentation.filtered_layer.tentative.html": [ + "f52cfd5b3c7a86d9b3c4993261fc7283a837fd00", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.flush-on-frame-presentation.plain_layer.html": [ + "71a5b160cc4ab29fdc142b60a334a50510836567", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer-expected.html", "==" ] ], @@ -327390,52 +327657,52 @@ {} ] ], - "2d.layer.global-states.filter.ctx-filter.no-transform.html": [ - "bbbb6b57a1aed5ad814225da71b78d2096e93eda", + "2d.layer.global-states.filter.ctx-filter.no-transform.tentative.html": [ + "415cf0360af02ece8c2c4b859098d71ad93024d9", [ null, [ [ - "/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform-expected.html", + "/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.ctx-filter.rotation.html": [ - "2679495a2f09d5224448c4c1e97dc8d1d8649c43", + "2d.layer.global-states.filter.ctx-filter.rotation.tentative.html": [ + "0573cd7f3bea33771baff10e818f50d23363633c", [ null, [ [ - "/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation-expected.html", + "/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.no-cxt-filter.no-transform.html": [ - "22b898d57836995f831b4da7a425d4fc18675419", + "2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.html": [ + "591c58acc97dfe6dd660491316c61e565633802d", [ null, [ [ - "/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform-expected.html", + "/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.no-cxt-filter.rotation.html": [ - "64ee2163d8df0af97f3d638e5d5b758a14a2b0e7", + "2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.html": [ + "ca75d4d1515a9b84b180ac4c8a874203e324dd51", [ null, [ [ - "/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation-expected.html", + "/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative-expected.html", "==" ] ], @@ -327494,13 +327761,13 @@ {} ] ], - "2d.layer.nested-filters.html": [ - "8b2afe53a11413f64621b55de2924b402f1642e1", + "2d.layer.nested-filters.tentative.html": [ + "885d08730f07bf2dbf4b27ee05986d0ba62e693c", [ null, [ [ - "/html/canvas/element/layers/2d.layer.nested-filters-expected.html", + "/html/canvas/element/layers/2d.layer.nested-filters.tentative-expected.html", "==" ] ], @@ -327546,39 +327813,78 @@ {} ] ], - "2d.layer.non-invertible-matrix.with-render-states-and-filter.html": [ - "d3cd08be079d85dfd21448db1c8e5d57c3058076", + "2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html": [ + "c209f7f12c3376ed826befea9ac44608e0ee332b", [ null, [ [ - "/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html", + "/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.opaque-canvas.html": [ - "d4b8e5c29d4d218176a0c93ad3b1a4be6d95a953", + "2d.layer.non-invertible-matrix.with-render-states.plain-layer.html": [ + "7af4c03576609b2c07d74ac73c1740db16f257fd", [ null, [ [ - "/html/canvas/element/layers/2d.layer.opaque-canvas-expected.html", + "/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html", "==" ] ], {} ] ], - "2d.layer.reset.html": [ - "d3c005fe06863caa1c77e584dfe41321c4b883ba", + "2d.layer.opaque-canvas.ctx-filter.html": [ + "7a3525f489d65f0d3b8a028bcc17e3a81071618e", [ null, [ [ - "/html/canvas/element/layers/2d.layer.reset-expected.html", + "/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.opaque-canvas.layer-filter.tentative.html": [ + "f7b71ba8f2451c0a23b1c89c1895b76417d01167", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.reset.filtered_layer.tentative.html": [ + "98548da2e51fb53b3f126af2d6a7aa8f20ea8dd6", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.reset.plain_layer.html": [ + "434e5a890b6c23fd2ed72104c1cf461507eca01b", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.reset.plain_layer-expected.html", "==" ] ], @@ -327643,52 +327949,104 @@ } ] ], - "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.html": [ - "1fa7e67da7f36cc6d70d7a975d55baebe7724788", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.html": [ + "42c0bf6169ad6277be08b00132ad2e4c0e08f40b", [ null, [ [ - "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html", + "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.long-distance.html": [ - "c033d83e854f4dce46931f867f9d5dbc87ea42c6", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.html": [ + "83925b4fcb2b07a3aacd7c8e07bc3ac0052acb21", [ null, [ [ - "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-expected.html", + "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.html": [ - "8235c0867a12517b8a4d71fb7e8a191b45b69479", + "2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html": [ + "d43c1269201481b80adb68577983fa6c3de5b3bf", [ null, [ [ - "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html", + "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.short-distance.html": [ - "c04dd715d41fb33caa7035bb7fc08aabbf015535", + "2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html": [ + "83d491f14babef080a204a913b3e327b2e999147", [ null, [ [ - "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-expected.html", + "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.html": [ + "3c30799f7586360786a241e4a2a684cdc24d3991", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.html": [ + "48532dcc1929cb14b65dc7295e4c2f5740ba146d", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html": [ + "8adcc647932d5edadce9f3fe52d4c6578eddf658", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html": [ + "6c6e5ad344f9b7c917f65c7b9d1681c09944e44d", + [ + null, + [ + [ + "/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html", "==" ] ], @@ -329308,6 +329666,32 @@ {} ] ], + "2d.filter.drop-shadow-globalAlpha.html": [ + "093b44c3d37aadd25d0f3cddc910508cd04f5837", + [ + null, + [ + [ + "/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.filter.drop-shadow-globalAlpha.w.html": [ + "dfec0e19fbaf9055c037f5a11ec9785c1dd42885", + [ + null, + [ + [ + "/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha-expected.html", + "==" + ] + ], + {} + ] + ], "2d.filter.layers.componentTransfer.discrete.tentative.html": [ "b72a42b7c290a1b75ce623c5b29129d87c017d75", [ @@ -329620,182 +330004,234 @@ ] }, "layers": { - "2d.layer.anisotropic-blur.isotropic.html": [ - "0fd68752408c9d6b7e79a2c1c46f445e23fb1373", + "2d.layer.anisotropic-blur.isotropic.tentative.html": [ + "d622787a280dc47410a69e33bc957fb002d6b4a2", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.isotropic.w.html": [ - "67cdbf81462dc63e4fcaac720e8908db6b494414", + "2d.layer.anisotropic-blur.isotropic.tentative.w.html": [ + "b89b6fe2b3eedab7e8235c73936acb5c931b8c2a", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.mostly-x.html": [ - "7907c3bdbb5a1a804cc7692794c162ac408820b8", + "2d.layer.anisotropic-blur.mostly-x.tentative.html": [ + "6fead4901ddeecdf027ce021262a044b95e6d78a", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.mostly-x.w.html": [ - "25a767ddb79194b9f854ce88318cc8d07235562b", + "2d.layer.anisotropic-blur.mostly-x.tentative.w.html": [ + "8cb0323a475257220cf492f149ad1a3e9c6f6425", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.mostly-y.html": [ - "4e4993a6028e3aea484a14160233957d1d385787", + "2d.layer.anisotropic-blur.mostly-y.tentative.html": [ + "2b7d8681725dbf5e3e1ec4fa858a2d4068e27e68", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.mostly-y.w.html": [ - "ff0e7e9bc34f6c36ac9a41604f4c068c108e8a15", + "2d.layer.anisotropic-blur.mostly-y.tentative.w.html": [ + "465121e17541802c0f63342adc02ae3d4d92ade7", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.x-only.html": [ - "4cb728259a3899896b42a75217136165285ad876", + "2d.layer.anisotropic-blur.x-only.tentative.html": [ + "44db62dd99f4a8f0f75cafd8b5cb765120e866b6", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.x-only.w.html": [ - "f92606c3f14fc9105419e6c07f767c0ed008ce7d", + "2d.layer.anisotropic-blur.x-only.tentative.w.html": [ + "632dbac3d53858915fc075c61efbc066a946622a", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.y-only.html": [ - "a9731c14c22f5f3544bbec11ce664d53de7bbbd9", + "2d.layer.anisotropic-blur.y-only.tentative.html": [ + "6d4aad75b5a7615c959646aba6d8032d4cbac2e4", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.anisotropic-blur.y-only.w.html": [ - "9c4250f95cbc45f899a3fbffebd5c8392f285b86", + "2d.layer.anisotropic-blur.y-only.tentative.w.html": [ + "5369a6a134fde3ed833b7e754dd11a2cb127b733", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only-expected.html", + "/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.blur-from-outside-canvas.no-clipping.html": [ - "fa5d021e8d99294f49bbf827c610818e2da17e34", + "2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.html": [ + "a1be866d9e549885343bcfbdb293f6e2badbda6d", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping-expected.html", + "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.blur-from-outside-canvas.no-clipping.w.html": [ - "490779ea1651247800eb8cb176eff1d096ce8b8e", + "2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.w.html": [ + "9e2bb1f5894905a6d405c6d51d269631d88d0613", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping-expected.html", + "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.blur-from-outside-canvas.with-clipping.html": [ - "326f71effacb897b76b622887a8d130b0bf3f87e", + "2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.html": [ + "c7055b909151cfa44c92b706918cde22bba8cd0e", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping-expected.html", + "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.blur-from-outside-canvas.with-clipping.w.html": [ - "784dde18d1b0623142bb3d63fed06fd8156ca847", + "2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.w.html": [ + "815ddbb23da3594d4f14aa048ca457dcace1d795", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping-expected.html", + "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.html": [ + "9a6c9cbed7c82eb7192c98a98489d2cb93b7a3cd", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.w.html": [ + "d93d4fba5eefd16927d4669e186e0faf4c15e518", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.html": [ + "b0198ef63bfe8dcf652e89ca5285fbddb54fc7ba", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.w.html": [ + "d76bcaf3e8404f72436d35a5ee2b482d2809f250", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html", "==" ] ], @@ -329854,78 +330290,156 @@ {} ] ], - "2d.layer.clip-inside-and-outside.html": [ - "8d7d6f30a8338e1368921718d209b22707ca8cea", + "2d.layer.clip-inside-and-outside.ctx-filter.html": [ + "a4c83402e0a931fceb2820b169eba2bc33ad3216", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside-expected.html", + "/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.clip-inside-and-outside.w.html": [ - "6c522be739a535c2beaf5d7bd19dc5e9f8233b7c", + "2d.layer.clip-inside-and-outside.ctx-filter.w.html": [ + "a144f08b87ee803c64115542b91398b5c1012706", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside-expected.html", + "/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.clip-inside.html": [ - "97e2e6941d635365a9271886ceb5c05398351a1f", + "2d.layer.clip-inside-and-outside.layer-filter.tentative.html": [ + "0b83b609d614e1a35a5333d41c1763bd61ead0cd", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.clip-inside-expected.html", + "/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.clip-inside.w.html": [ - "3429ebcb95055c19aa6d31473d3d819a2fb63e68", + "2d.layer.clip-inside-and-outside.layer-filter.tentative.w.html": [ + "9ea28b30eee94896ace94f9d79f690fd08db6ac8", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.clip-inside-expected.html", + "/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.clip-outside.html": [ - "19d7c3f93ef3e1d94411de49a52d22d33487541c", + "2d.layer.clip-inside.ctx-filter.html": [ + "e21248edf56c49cde03e6afa8997abf33526347e", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.clip-outside-expected.html", + "/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.clip-outside.w.html": [ - "a58e77ccfc140dd2ee2ea8474a9335e4b92d30b0", + "2d.layer.clip-inside.ctx-filter.w.html": [ + "177030ed509cf3a324f206fdb6912b898a9efea4", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.clip-outside-expected.html", + "/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.clip-inside.layer-filter.tentative.html": [ + "04c9387e059c3dda128cd67d6514f5422b237a8c", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.clip-inside.layer-filter.tentative.w.html": [ + "9686867ebae45324e765f60a37739c6775ca1b09", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.clip-outside.ctx-filter.html": [ + "347d785c19a41c26f4ef05ea82caf2d10971d1ef", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.clip-outside.ctx-filter.w.html": [ + "95b474eb488ef0d683d4a8a4491b8fa42df88e3b", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.clip-outside.layer-filter.tentative.html": [ + "ff17cd73319865e8f627b8dee6477a7365164af5", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.clip-outside.layer-filter.tentative.w.html": [ + "a203b927fc1895e9f127a07895413d2d985893ad", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative-expected.html", "==" ] ], @@ -329958,78 +330472,78 @@ {} ] ], - "2d.layer.css-filters.blur-and-shadow.html": [ - "55ee3f11f72ecf9ba813def987849f5e5e5394be", + "2d.layer.css-filters.blur-and-shadow.tentative.html": [ + "48de7f2b51a74f41fcb457f049060a3494218063", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow-expected.html", + "/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.css-filters.blur-and-shadow.w.html": [ - "f8e7e78f7143465fc33e3a599dd2d606436c1d7e", + "2d.layer.css-filters.blur-and-shadow.tentative.w.html": [ + "4622fed3ae7dfa09df69b012d6870b252004a02b", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow-expected.html", + "/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.css-filters.blur.html": [ - "c6f0cf8975570f3b4cf27fb239ce0a21a925bba9", + "2d.layer.css-filters.blur.tentative.html": [ + "057c0155acf2f219c12c608b3947506a26bba2f2", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.css-filters.blur-expected.html", + "/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.css-filters.blur.w.html": [ - "07ca86ec2ff7ec8e595556e5aa187dc952ba0aaf", + "2d.layer.css-filters.blur.tentative.w.html": [ + "aa97ec8e2c07e746595c216609154ae030bcce43", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.css-filters.blur-expected.html", + "/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.css-filters.shadow.html": [ - "c903a3178def4e3196ac06810309275cdae39857", + "2d.layer.css-filters.shadow.tentative.html": [ + "683f7d3023240322590b113771cdb69388feb5b1", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.css-filters.shadow-expected.html", + "/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.css-filters.shadow.w.html": [ - "9dbe73eab827e2457439656bd5d367c8f6f37523", + "2d.layer.css-filters.shadow.tentative.w.html": [ + "1660f1d6eaa8dd760a571e3a13981cf20e10002c", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.css-filters.shadow-expected.html", + "/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative-expected.html", "==" ] ], @@ -330062,26 +330576,26 @@ {} ] ], - "2d.layer.ctm.filter.html": [ - "2458469d7e29c55a37b46508a0da10ca7f614028", + "2d.layer.ctm.layer-filter.tentative.html": [ + "cfa58431809eae7e15854449a8741dd2321598e4", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.ctm.filter-expected.html", + "/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.ctm.filter.w.html": [ - "8ac710cfdd73ba589b3094b05750de559cd406eb", + "2d.layer.ctm.layer-filter.tentative.w.html": [ + "4289871ec3715008c4238bb9cd43a4ee0c395eab", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.ctm.filter-expected.html", + "/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative-expected.html", "==" ] ], @@ -330166,26 +330680,52 @@ {} ] ], - "2d.layer.drawImage.html": [ - "99c61cebeb39e8addba8a081388163a11bf397cc", + "2d.layer.drawImage.ctx-filter.html": [ + "92a96271ef006af68e29a0bb64a61a7616723e46", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.drawImage-expected.html", + "/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.drawImage.w.html": [ - "a94641b887194ae288809e808d9b117a15b71112", + "2d.layer.drawImage.ctx-filter.w.html": [ + "c30641a8c184ef3169507f8c3df2e1461b4d9eff", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.drawImage-expected.html", + "/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.drawImage.layer-filter.tentative.html": [ + "bfeb5dbb67e4b1188caf9f02120c27ae18b82cbb", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.drawImage.layer-filter.tentative.w.html": [ + "922e7df09b32d33593bdb490e32fbe52a5321224", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative-expected.html", "==" ] ], @@ -330244,104 +330784,104 @@ {} ] ], - "2d.layer.global-states.filter.ctx-filter.no-transform.html": [ - "2bc6e36149cd225503e035fee57b5432c224d3bb", + "2d.layer.global-states.filter.ctx-filter.no-transform.tentative.html": [ + "0dd8471feb29d939582cf466878afd1837dc09f9", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform-expected.html", + "/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.ctx-filter.no-transform.w.html": [ - "da4b7720a79d0b8364bd0e8a324de6916f26e729", + "2d.layer.global-states.filter.ctx-filter.no-transform.tentative.w.html": [ + "24613ffafa624b59dbd2e18045d9b90305523043", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform-expected.html", + "/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.ctx-filter.rotation.html": [ - "f5e4cc0bf9ac1967260cac1828a59df41d44c562", + "2d.layer.global-states.filter.ctx-filter.rotation.tentative.html": [ + "ba26f9106955a006acf90ccd0bf416c4d46a6f36", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation-expected.html", + "/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.ctx-filter.rotation.w.html": [ - "17af577d7946e6a71d3934ce309d4bf669f62ad4", + "2d.layer.global-states.filter.ctx-filter.rotation.tentative.w.html": [ + "59ebb65e7ad0eebe8d364f3754692d6b3009ca8d", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation-expected.html", + "/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.no-cxt-filter.no-transform.html": [ - "38c672402b82dc49c4133ee2c7ad77c7f9bb9049", + "2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.html": [ + "388a98f20f7700c079ea0b3bf5cb1e5302f6391f", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform-expected.html", + "/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.no-cxt-filter.no-transform.w.html": [ - "ba46ea488927a0c1aaa551dd46a4ad5d55366246", + "2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative.w.html": [ + "ab1be4924dd87db252ada00d0584f767b2f636c2", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform-expected.html", + "/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.no-cxt-filter.rotation.html": [ - "3220bb51eb4334ee57326d91e44c04ded399b1a7", + "2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.html": [ + "95ce14186d32ad40e1a86d0f77b56334aae09191", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation-expected.html", + "/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.global-states.filter.no-cxt-filter.rotation.w.html": [ - "840a4e73ccd8a82cb0cc306725faa56680ae8067", + "2d.layer.global-states.filter.no-cxt-filter.rotation.tentative.w.html": [ + "0e0644a45ea8a77a00820d9b653337aebc2200e8", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation-expected.html", + "/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative-expected.html", "==" ] ], @@ -330452,26 +330992,26 @@ {} ] ], - "2d.layer.nested-filters.html": [ - "dce67e3089d33a3dd9d35c062213302616467cb3", + "2d.layer.nested-filters.tentative.html": [ + "ec46a8ab0e3f5f6191a8d1b78a2e13a9c4d80c23", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.nested-filters-expected.html", + "/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.nested-filters.w.html": [ - "01db9529156448c875554393d4a94716ebed8e8f", + "2d.layer.nested-filters.tentative.w.html": [ + "8a031ec27f18ed168194ec0e718133d6954668b5", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.nested-filters-expected.html", + "/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative-expected.html", "==" ] ], @@ -330556,78 +331096,156 @@ {} ] ], - "2d.layer.non-invertible-matrix.with-render-states-and-filter.html": [ - "717188c9956f47884894ef79413a2059aad42182", + "2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html": [ + "357021aa1333f736a8a5257a1013e8961fd0a382", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html", + "/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.non-invertible-matrix.with-render-states-and-filter.w.html": [ - "a45c945bcd2e08ec8fb88c8cc3250a31459d5cef", + "2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.w.html": [ + "95a6eee89da9a78c209bdc67144d78afe71455a5", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html", + "/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.opaque-canvas.html": [ - "9ddf70ab958ad0edab391aa3d07f717d444ad6ef", + "2d.layer.non-invertible-matrix.with-render-states.plain-layer.html": [ + "b0382ca38717f567348acbb659417e2b3eb91e80", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.opaque-canvas-expected.html", + "/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html", "==" ] ], {} ] ], - "2d.layer.opaque-canvas.w.html": [ - "2fe3f98f0ecb03532fcb301830b6e2cdd40e10fd", + "2d.layer.non-invertible-matrix.with-render-states.plain-layer.w.html": [ + "dee370cd2a60d0763e3d806b6befb65cff0c7f70", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.opaque-canvas-expected.html", + "/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html", "==" ] ], {} ] ], - "2d.layer.reset.html": [ - "930d4a1e2391c5065fa0a477857447a505fb2a71", + "2d.layer.opaque-canvas.ctx-filter.html": [ + "d32c351def803a85808370ec640aecf85f872a7f", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.reset-expected.html", + "/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.reset.w.html": [ - "fa6edac05d34f432d18cb833c2d39f1f58341c82", + "2d.layer.opaque-canvas.ctx-filter.w.html": [ + "4d36f135dda49de69365fdb30c6cbcbe2c7123e7", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.reset-expected.html", + "/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.opaque-canvas.layer-filter.tentative.html": [ + "2e25ee4d34de6441835aa222dd6381a829a034be", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.opaque-canvas.layer-filter.tentative.w.html": [ + "92f64b4f750adfe183fddd5459081d3d75783b48", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.reset.filtered_layer.tentative.html": [ + "45199aa24dd38bcfe0211250fe599ab0dd7ecf75", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.reset.filtered_layer.tentative.w.html": [ + "7100da36e7f753fb581e4055bea71d6026d7cc2d", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.reset.plain_layer.html": [ + "cca641e8892c101e3ff908d9ed35033d56a35282", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.reset.plain_layer-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.reset.plain_layer.w.html": [ + "6a97bbdc383aa4af52e5f0a7fb71c13166064f3c", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.reset.plain_layer-expected.html", "==" ] ], @@ -330750,104 +331368,208 @@ } ] ], - "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.html": [ - "0c65ceac23fb18d506a1a59aeeec0648c199f54f", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.html": [ + "2981379a190e27811c5567980d8a955fd592d78e", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html", + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.w.html": [ - "77d8bbf2e90c7089a58f64776907044d1558c7d1", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.w.html": [ + "7057728be3b198be0766658e09a810a7abbcb229", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html", + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.long-distance.html": [ - "afcccde12d192da8483ce5fcf562fab31e56565e", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.html": [ + "bc1ec18042379e73477b3304e1ba0aad8d76c28d", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-expected.html", + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.long-distance.w.html": [ - "b37895246901d3e0062d8756f1fcfc733b38abe4", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.w.html": [ + "ed151f1e1167c77d92d316b84e7b716c5fe23649", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-expected.html", + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.html": [ - "388898326eb8c77d43ca780f094a46acbeb05834", + "2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html": [ + "decc4d0ef3b85e30cbdd640b1cc1dd61e91917dc", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html", + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.w.html": [ - "4a341b91895b283baf1e22f34973b88e6cd48804", + "2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.w.html": [ + "a74a4ca29acd9b762aa186d61c6c2fdc29dd19fc", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html", + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.short-distance.html": [ - "1a29d2fa8ffdd316c7d1397995cfd5aa26041e49", + "2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html": [ + "65772dd518c9b1648ad747786b94227803068509", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-expected.html", + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html", "==" ] ], {} ] ], - "2d.layer.shadow-from-outside-canvas.short-distance.w.html": [ - "4017fe7a3045ac663d8eb78634fd3f3fcdc446e0", + "2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.w.html": [ + "725433a34c83ee9e0e03b17cdaf0f4d302d75439", [ null, [ [ - "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-expected.html", + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.html": [ + "604b809b7efa7b76475cb3fab44d4a4170d7f519", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.w.html": [ + "9581cd5487cac29cabc04aa03b1ce4767ecb1bac", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.html": [ + "1d392215d9eef5c4304ff2e0d5fc8dcb62170c2c", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.w.html": [ + "0bb94895cababa16d5363bd96ea5ed34b0a5ae00", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html": [ + "c567f4e39067af1e48b82df8999623d5ea786272", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.w.html": [ + "b76235e442e6a95d72efdf936cfa2061468c0427", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html": [ + "6e096a3c96d221d99ca993affe447d91eb1103ee", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html", + "==" + ] + ], + {} + ] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.w.html": [ + "0787cf54ac65f1dd5fa7044cadd74e1474d69c35", + [ + null, + [ + [ + "/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html", "==" ] ], @@ -335965,7 +336687,7 @@ ] ], "details-pseudo-elements-001.html": [ - "8ea3d0f85af933b6202f15ee00b9fdac451ab0c9", + "f9d48101fb65edfc868a67a5722cdbfc0e8f7f1b", [ null, [ @@ -335978,7 +336700,7 @@ ] ], "details-pseudo-elements-002.html": [ - "0f1176a3316bb08f9a49c63544d4ae090d878e40", + "0b852fca04c6fbe61cdc539d9fd7425dedb78f6f", [ null, [ @@ -336003,6 +336725,32 @@ {} ] ], + "details-pseudo-elements-004.html": [ + "143a2a29d498cf04363ec1a1bcd19dc2333a4ee7", + [ + null, + [ + [ + "/html/rendering/the-details-element/details-pseudo-elements-004-ref.html", + "==" + ] + ], + {} + ] + ], + "details-pseudo-elements-005.html": [ + "71afb31193e6ab6c652af8a9a27ccb20a653c49e", + [ + null, + [ + [ + "/html/rendering/the-details-element/details-pseudo-elements-005-ref.html", + "==" + ] + ], + {} + ] + ], "details-revert.html": [ "760cc8281e820d2ef256eb22d88d7aa8f090b821", [ @@ -338994,7 +339742,7 @@ ] ], "bounded-sizes-reftest.tentative.html": [ - "45ffb633c3dc4aab7b40e750e922abc7a27e6275", + "277e85a89117892b5ebd70480466e24ee0bb11f5", [ null, [ @@ -339020,7 +339768,7 @@ ] ], "large-min-size-reftest.tentative.html": [ - "9a786101693b25bdc0ae80a051e11c765118bb86", + "c61346c35267b88bf4f411446d8d8ae065a3ed44", [ null, [ @@ -339057,6 +339805,19 @@ ], {} ] + ], + "unbounded-width-with-border-reftest.tentative.html": [ + "8de1876b210aff5d684aca092b31d1fd94af11ce", + [ + null, + [ + [ + "/html/semantics/permission-element/unbounded-width-with-border-reftest-ref.html", + "==" + ] + ], + {} + ] ] }, "popovers": { @@ -345805,6 +346566,19 @@ ], {} ] + ], + "editing-host-has-only-invisible-br.html": [ + "594b78fb1a5b63c8d3e4fcf68341ff264bba6337", + [ + null, + [ + [ + "/selection/caret/editing-host-has-only-invisible-br-ref.html", + "==" + ] + ], + {} + ] ] }, "shadow-dom": { @@ -354317,7 +355091,7 @@ [] ], "docker.yml": [ - "2484331cc09a2ebdaf8668afec22efaebb710e0d", + "bd5e23ea904707273cc56d1c6b6a930f5d031ff4", [] ], "documentation.yml": [ @@ -358908,8 +359682,12 @@ "6b2b3097926b192df23c3e21dd19742bb19e69d4", [] ], + "sync-pressure-observer.js": [ + "49f7d95a1364fc6e63a0c2c70693b8de268ccb1f", + [] + ], "worker-support.js": [ - "998bcd66610ba1a8e329b32e4ef6660804247332", + "39caeb6192f6fee2a9b71d8ea78a1cf9e64e512d", [] ] } @@ -397234,6 +398012,10 @@ "4d7de12447c8297b8f0fc04338d80a028a3e9798", [] ], + "position-anchor-target-with-children-ref.html": [ + "dd922b0bb218311665711ca9d14d60bdfb72ba98", + [] + ], "position-area-inline-container-ref.html": [ "ecf54f1a9ac2d756cb78f4d2c0690c1ac8b65916", [] @@ -416874,11 +417656,7 @@ [] ], "initial-letter-raise-initial-ref.html": [ - "29594f45f9595d372bb8bb5726454430206f3d89", - [] - ], - "initial-letter-raise-initial-rtl-ref.html": [ - "e5dd8f96b5cf40157f2811074d526ac7c1b2dc09", + "8a409603029d9333623311345e22ed92ba45ba91", [] ], "initial-letter-raise-initial-vlr-ref.html": [ @@ -416906,11 +417684,7 @@ [] ], "initial-letter-sunk-initial-ref.html": [ - "0b569177a87642a7f3deca9d1aa3306e80256d8c", - [] - ], - "initial-letter-sunk-initial-rtl-ref.html": [ - "cb26ab05f1e01617a6896fde2a983ebc13582158", + "160751274af111b9097352ec61ae92ede136b676", [] ], "initial-letter-sunk-initial-vlr-ref.html": [ @@ -417015,6 +417789,10 @@ "176526e55b2586beb80693a48cabba0f5448f24a", [] ], + "text-box-trim-half-leading-block-box-004-ref.html": [ + "eb8952b57e935a35ce370614ee9d22d750ed903f", + [] + ], "text-box-trim-height-001-ref.html": [ "7564a8c1b789e376c9b5f1bc79435b70d95a4da8", [] @@ -417764,6 +418542,10 @@ "ac04bd53798188fb5fcc27ea87a6eae2ffb46a3b", [] ], + "clip-path-animation-custom-property-ref.html": [ + "b22cf321b45b38dab4ddcb50998af8ffb8ad4137", + [] + ], "clip-path-animation-custom-timing-function-ref.html": [ "49732d361b3ff40f6232fa87423cf5a9e6530a55", [] @@ -419858,6 +420640,10 @@ "eeb9543554d99659ed855e40d4f04be393858932", [] ], + "line-clamp-auto-038-ref.html": [ + "3c80bbe73fd87221b49fc1f88e25b354f16e9de2", + [] + ], "line-clamp-auto-with-ruby-001-ref.html": [ "03d12b9c722c8c160830cc01997baa3ee4cf88c3", [] @@ -434451,6 +435237,10 @@ "90267e3a84a34157078d1ad890710ea8059a75da", [] ], + "custom-scrollbar-ref.html": [ + "21c3f0844288123d1ec46ca4a2a3ed2a55737d18", + [] + ], "navigation-auto-excludes-reload-ref.html": [ "ed12194c3107880808952a165fe591c6e5fa490b", [] @@ -434512,6 +435302,10 @@ "cbe023a3d9ed808dcab2bc9b3b1a769ca6ff68cc", [] ], + "custom-scrollbar.html": [ + "8ebd34a1cea2840c4b84ac2fe8d77664bde24842", + [] + ], "opt-in-style.css": [ "9aac2b4e85b4255236246fbfb89df8f17dc0f592", [] @@ -441813,7 +442607,7 @@ [] ], "insertimage.js": [ - "b18388a7971dfd10fca5bcc0d15998b2989310af", + "b62331e152098ed6d63e294119cfe7abeddb174d", [] ], "insertlinebreak.js": [ @@ -443941,7 +444735,7 @@ [] ], "manifest_with_variable_accounts.json": [ - "9e4af250045757a3ce7b58bc7d0347ecd2794a40", + "b3161e5f286034714af357cd98a7949c57f6937c", [] ], "mark_signedin": [ @@ -444257,7 +445051,7 @@ [] ], "create-credential-inner.https.html": [ - "5725177f21717570ebf1a78b77f0e3870c6f9965", + "d51dab950f8448a24d5f8daff0c6a39d801be25f", [] ], "create-credential-inner.https.html.headers": [ @@ -448801,6 +449595,10 @@ "557f408fba0e63b66ee170c04ba405744325036d", [] ], + "unknown-protocol-reload-crash-frame.html": [ + "68fd69b03f05fbe7d51a725d3315b02cc3200eed", + [] + ], "wait-for-messages.js": [ "62ddec49f1be2a4bb36618e1c1888e0af0bbe904", [] @@ -451068,6 +451866,10 @@ "9c85dfec907e2dd6b1158002e6f8b6ed151b8852", [] ], + "2d.filter.drop-shadow-globalAlpha-expected.html": [ + "bec81b2422ae6716a724050614739c32a90b8371", + [] + ], "2d.filter.layers.componentTransfer.discrete.tentative-expected.html": [ "bbf96c360830129d4ab64c83f9ee5412a4eb6cd1", [] @@ -451098,32 +451900,40 @@ ] }, "layers": { - "2d.layer.anisotropic-blur.isotropic-expected.html": [ - "ecd88a4acf9dff9813c965ba8adaa5c03a0b6826", + "2d.layer.anisotropic-blur.isotropic.tentative-expected.html": [ + "81ddb3ffb5ca40257e5a2e27960e1f1626bdd23d", [] ], - "2d.layer.anisotropic-blur.mostly-x-expected.html": [ - "fff719c678e3c09a597e02c51e21d8f47252f747", + "2d.layer.anisotropic-blur.mostly-x.tentative-expected.html": [ + "3ba431c2c65cebfcefb3be8cceefa87948226562", [] ], - "2d.layer.anisotropic-blur.mostly-y-expected.html": [ - "a379590a8117ec7b91d89317f7420f5916585d3a", + "2d.layer.anisotropic-blur.mostly-y.tentative-expected.html": [ + "0e21f8c086dde68e8f13ebc1c9be9dedaf3d664f", [] ], - "2d.layer.anisotropic-blur.x-only-expected.html": [ - "5e6a16effbd696f5875ed76b415011422ade7cb3", + "2d.layer.anisotropic-blur.x-only.tentative-expected.html": [ + "d3e70ffe7620acc2e8f971ba671aad18f67e2418", [] ], - "2d.layer.anisotropic-blur.y-only-expected.html": [ - "025d0949b5067110b335c87b8a413c190f828d32", + "2d.layer.anisotropic-blur.y-only.tentative-expected.html": [ + "4847c40a8ff0b13b544e33ec19695dfdedfac4b3", [] ], - "2d.layer.blur-from-outside-canvas.no-clipping-expected.html": [ - "f7a1a7837fc9ca7062cf81bf127e9e93b647f475", + "2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html": [ + "58a5a77c39e14c0aa9d09b409fb094f5ee02b584", [] ], - "2d.layer.blur-from-outside-canvas.with-clipping-expected.html": [ - "87bed15740cdd05196a39858f672a7968b2bf85a", + "2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html": [ + "d02cc44b6cc889e31d3fe3b70c5d54b2a40de088", + [] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html": [ + "1a5372c82e5d2b4ea8194b5e3c30b34c371fda56", + [] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html": [ + "3b137830da079ca479d763cabeec183296915e96", [] ], "2d.layer.clearRect.full-expected.html": [ @@ -451134,40 +451944,52 @@ "780b7b3a3af089bd3167eb3e19b63fd560ce9b1c", [] ], - "2d.layer.clip-inside-and-outside-expected.html": [ - "d18ab55b1fc6a4d0bf9535986192f6cd1c869043", + "2d.layer.clip-inside-and-outside.ctx-filter-expected.html": [ + "f01d09e339f632f4e6d34a72216e681a89d0f37e", [] ], - "2d.layer.clip-inside-expected.html": [ - "fcf0571c3e72b46a8f055acde3089a5371c43029", + "2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html": [ + "e6832307139c201d9f8d5065ab4b4e4734aef3fc", [] ], - "2d.layer.clip-outside-expected.html": [ - "f81a24ddcfb39fc141a9797ff72ce3691a7115db", + "2d.layer.clip-inside.ctx-filter-expected.html": [ + "1372c95b3744d6f8dcdbc9af126caa7557f857f7", + [] + ], + "2d.layer.clip-inside.layer-filter.tentative-expected.html": [ + "d63982ffa4e8a602d8815c26c79d0f78aba19a49", + [] + ], + "2d.layer.clip-outside.ctx-filter-expected.html": [ + "3d0bd79c403f33853ec85eeb2f781ff4cefdfe62", + [] + ], + "2d.layer.clip-outside.layer-filter.tentative-expected.html": [ + "7d64bc640080800f09a11b11cbca858c787b0b8a", [] ], "2d.layer.cross-layer-paths-expected.html": [ "f70f3e4e26b689365613240f7c552d61f0d99048", [] ], - "2d.layer.css-filters.blur-and-shadow-expected.html": [ - "77b45eb814f7df065dcfc4a25cf0b9be467911f6", + "2d.layer.css-filters.blur-and-shadow.tentative-expected.html": [ + "43a71d4d6a351de65b8d60acca8ab62b67a35455", [] ], - "2d.layer.css-filters.blur-expected.html": [ - "457e05db390b8fbb013b12992cdb0a72b080d976", + "2d.layer.css-filters.blur.tentative-expected.html": [ + "7d907bc527ccb650a67c99c7a8d690059931d592", [] ], - "2d.layer.css-filters.shadow-expected.html": [ - "acbae0fcb8fdd97cb43b0d2f12d4ed54d05aa179", + "2d.layer.css-filters.shadow.tentative-expected.html": [ + "5142c2f4f6e98151c0f061066b59c0eaefb86695", [] ], "2d.layer.ctm.ctx-filter-expected.html": [ "4aac604caf09220dbd2ea1f256b457389e1b49f3", [] ], - "2d.layer.ctm.filter-expected.html": [ - "493a2cd1d99e2ca55464cbe5efda07f5dd1b9121", + "2d.layer.ctm.layer-filter.tentative-expected.html": [ + "f1f564f24799260ff5350b5cc6d9ef445e22aa10", [] ], "2d.layer.ctm.resetTransform-expected.html": [ @@ -451182,12 +452004,20 @@ "cf16986c91bd03110713767e85ba522dce4aafb6", [] ], - "2d.layer.drawImage-expected.html": [ - "4a4aa93d9f2b82c44776807c181cf6db2ae4f233", + "2d.layer.drawImage.ctx-filter-expected.html": [ + "0d06cdc45ed4327a58e28b31ebc1a6c30ff9054e", [] ], - "2d.layer.flush-on-frame-presentation-expected.html": [ - "f5aebdd832afe28c99848d5a8659560e686cabb7", + "2d.layer.drawImage.layer-filter.tentative-expected.html": [ + "589f172ba5cf890ea85a1d4257b7db4c37cf75b6", + [] + ], + "2d.layer.flush-on-frame-presentation.filtered_layer.tentative-expected.html": [ + "7363d90a800e01c3a34b04798c3a59fb93979061", + [] + ], + "2d.layer.flush-on-frame-presentation.plain_layer-expected.html": [ + "01eaf0680cd2290c24c14b5e57f7a7a6ffcde9e3", [] ], "2d.layer.global-states.ctx-filter.no-transform-expected.html": [ @@ -451198,20 +452028,20 @@ "3290077de1ea57141ae7524d5071315d2bb1c0d6", [] ], - "2d.layer.global-states.filter.ctx-filter.no-transform-expected.html": [ - "af2a55af7efd34f798585fda9ba2a67e028784d4", + "2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html": [ + "dae68b3ad7301e5f46a60b7ea466d2931969b24c", [] ], - "2d.layer.global-states.filter.ctx-filter.rotation-expected.html": [ - "b0a58fcb93fc977aaad832b313c8edd902f5a201", + "2d.layer.global-states.filter.ctx-filter.rotation.tentative-expected.html": [ + "b18ae7f357ac829d17228e15fc490b1b6243cf37", [] ], - "2d.layer.global-states.filter.no-cxt-filter.no-transform-expected.html": [ - "db1a4bdc131176a24dbfe22ac3b03eab54b09ef5", + "2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative-expected.html": [ + "6263d26333a0ddc08abb05de71a4332e25c6944f", [] ], - "2d.layer.global-states.filter.no-cxt-filter.rotation-expected.html": [ - "8995fe469e4d0874dc8e3a346462a4b3b653c426", + "2d.layer.global-states.filter.no-cxt-filter.rotation.tentative-expected.html": [ + "0236c9a5d93681627eb813c43250cfc4a39dcced", [] ], "2d.layer.global-states.no-cxt-filter.no-transform-expected.html": [ @@ -451234,8 +452064,8 @@ "6fe2dbeb5231526ac4e88df91a0c2daf592dd470", [] ], - "2d.layer.nested-filters-expected.html": [ - "68ccec3b2da871a7b24460e98fc2f81da9019e4a", + "2d.layer.nested-filters.tentative-expected.html": [ + "6b9bfbdb4650804d699ea151bab58656055a6461", [] ], "2d.layer.non-invertible-matrix-expected.html": [ @@ -451246,16 +452076,28 @@ "021d5ae7af90367a089c977eb04b8c9762c1c303", [] ], - "2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html": [ - "ead108a72c4adb1383f120126fc2d9da60bf098e", + "2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html": [ + "daa6111f7b597bc0262cb342f69593a0eda188d4", [] ], - "2d.layer.opaque-canvas-expected.html": [ - "02f73611d6172651327b7773264b0b80a6c8d2a3", + "2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html": [ + "3841df36ed4c9169aecc2ea3dad7cd0fd4e08ea0", [] ], - "2d.layer.reset-expected.html": [ - "6f3f82dc98ea469b03bd532d399b8f36c8ad89ff", + "2d.layer.opaque-canvas.ctx-filter-expected.html": [ + "af704031e29e6540875fd56a0352bff5a04ecb18", + [] + ], + "2d.layer.opaque-canvas.layer-filter.tentative-expected.html": [ + "d195882a685656fcaa12d102b0347ea8c57b0147", + [] + ], + "2d.layer.reset.filtered_layer.tentative-expected.html": [ + "47bf9689e1ed1cdf506770df2fbd2d0023d61c9d", + [] + ], + "2d.layer.reset.plain_layer-expected.html": [ + "c018252c21394830336512747c3674b599b68ecf", [] ], "2d.layer.restore-style-expected.html": [ @@ -451266,20 +452108,36 @@ "e8f0e46333b22b2c1a8a13b41e39b6a596b8b1eb", [] ], - "2d.layer.shadow-from-outside-canvas.long-distance-expected.html": [ - "4a5b1ea18a1748c0d41d503adb3430eff593a3d4", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html": [ + "522a7716b6e0ede2231611f1dbc6c9fa0b3a758c", [] ], - "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html": [ - "0f15210c17fd116b4d967e9c9601ac1f5b39344d", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html": [ + "5fe2833afe5a8e07639360c1fe6c7117792adbb1", [] ], - "2d.layer.shadow-from-outside-canvas.short-distance-expected.html": [ - "beaa26cd3c837a66f63dcf3d36c3eaefe5b4d884", + "2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html": [ + "2c53a773b80cf47caa7384408f21997c66bc390d", [] ], - "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html": [ - "96045c23a512a4fd3643b29e3cb4a5ac449bde16", + "2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html": [ + "5f89d012f46b152571a927b6e9d98f0e79a39a7e", + [] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html": [ + "6aee28f0de9290df3a382279450603c3f6511014", + [] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html": [ + "f75299dde64e0f65e48f2bd212598a5aa9d1ab6f", + [] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html": [ + "5ca2ebad391b30fe64b1813d5e2fc10afab9df0e", + [] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html": [ + "387eb0b5d72399679dd0615bd5a6460bf8f01a67", [] ] }, @@ -452200,6 +453058,10 @@ "9c85dfec907e2dd6b1158002e6f8b6ed151b8852", [] ], + "2d.filter.drop-shadow-globalAlpha-expected.html": [ + "bec81b2422ae6716a724050614739c32a90b8371", + [] + ], "2d.filter.layers.componentTransfer.discrete.tentative-expected.html": [ "bbf96c360830129d4ab64c83f9ee5412a4eb6cd1", [] @@ -452230,32 +453092,40 @@ ] }, "layers": { - "2d.layer.anisotropic-blur.isotropic-expected.html": [ - "ecd88a4acf9dff9813c965ba8adaa5c03a0b6826", + "2d.layer.anisotropic-blur.isotropic.tentative-expected.html": [ + "81ddb3ffb5ca40257e5a2e27960e1f1626bdd23d", [] ], - "2d.layer.anisotropic-blur.mostly-x-expected.html": [ - "fff719c678e3c09a597e02c51e21d8f47252f747", + "2d.layer.anisotropic-blur.mostly-x.tentative-expected.html": [ + "3ba431c2c65cebfcefb3be8cceefa87948226562", [] ], - "2d.layer.anisotropic-blur.mostly-y-expected.html": [ - "a379590a8117ec7b91d89317f7420f5916585d3a", + "2d.layer.anisotropic-blur.mostly-y.tentative-expected.html": [ + "0e21f8c086dde68e8f13ebc1c9be9dedaf3d664f", [] ], - "2d.layer.anisotropic-blur.x-only-expected.html": [ - "5e6a16effbd696f5875ed76b415011422ade7cb3", + "2d.layer.anisotropic-blur.x-only.tentative-expected.html": [ + "d3e70ffe7620acc2e8f971ba671aad18f67e2418", [] ], - "2d.layer.anisotropic-blur.y-only-expected.html": [ - "025d0949b5067110b335c87b8a413c190f828d32", + "2d.layer.anisotropic-blur.y-only.tentative-expected.html": [ + "4847c40a8ff0b13b544e33ec19695dfdedfac4b3", [] ], - "2d.layer.blur-from-outside-canvas.no-clipping-expected.html": [ - "f7a1a7837fc9ca7062cf81bf127e9e93b647f475", + "2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html": [ + "58a5a77c39e14c0aa9d09b409fb094f5ee02b584", [] ], - "2d.layer.blur-from-outside-canvas.with-clipping-expected.html": [ - "87bed15740cdd05196a39858f672a7968b2bf85a", + "2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html": [ + "d02cc44b6cc889e31d3fe3b70c5d54b2a40de088", + [] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html": [ + "1a5372c82e5d2b4ea8194b5e3c30b34c371fda56", + [] + ], + "2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html": [ + "3b137830da079ca479d763cabeec183296915e96", [] ], "2d.layer.clearRect.full-expected.html": [ @@ -452266,40 +453136,52 @@ "780b7b3a3af089bd3167eb3e19b63fd560ce9b1c", [] ], - "2d.layer.clip-inside-and-outside-expected.html": [ - "d18ab55b1fc6a4d0bf9535986192f6cd1c869043", + "2d.layer.clip-inside-and-outside.ctx-filter-expected.html": [ + "f01d09e339f632f4e6d34a72216e681a89d0f37e", [] ], - "2d.layer.clip-inside-expected.html": [ - "fcf0571c3e72b46a8f055acde3089a5371c43029", + "2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html": [ + "e6832307139c201d9f8d5065ab4b4e4734aef3fc", [] ], - "2d.layer.clip-outside-expected.html": [ - "f81a24ddcfb39fc141a9797ff72ce3691a7115db", + "2d.layer.clip-inside.ctx-filter-expected.html": [ + "1372c95b3744d6f8dcdbc9af126caa7557f857f7", + [] + ], + "2d.layer.clip-inside.layer-filter.tentative-expected.html": [ + "d63982ffa4e8a602d8815c26c79d0f78aba19a49", + [] + ], + "2d.layer.clip-outside.ctx-filter-expected.html": [ + "3d0bd79c403f33853ec85eeb2f781ff4cefdfe62", + [] + ], + "2d.layer.clip-outside.layer-filter.tentative-expected.html": [ + "7d64bc640080800f09a11b11cbca858c787b0b8a", [] ], "2d.layer.cross-layer-paths-expected.html": [ "f70f3e4e26b689365613240f7c552d61f0d99048", [] ], - "2d.layer.css-filters.blur-and-shadow-expected.html": [ - "77b45eb814f7df065dcfc4a25cf0b9be467911f6", + "2d.layer.css-filters.blur-and-shadow.tentative-expected.html": [ + "43a71d4d6a351de65b8d60acca8ab62b67a35455", [] ], - "2d.layer.css-filters.blur-expected.html": [ - "457e05db390b8fbb013b12992cdb0a72b080d976", + "2d.layer.css-filters.blur.tentative-expected.html": [ + "7d907bc527ccb650a67c99c7a8d690059931d592", [] ], - "2d.layer.css-filters.shadow-expected.html": [ - "acbae0fcb8fdd97cb43b0d2f12d4ed54d05aa179", + "2d.layer.css-filters.shadow.tentative-expected.html": [ + "5142c2f4f6e98151c0f061066b59c0eaefb86695", [] ], "2d.layer.ctm.ctx-filter-expected.html": [ "4aac604caf09220dbd2ea1f256b457389e1b49f3", [] ], - "2d.layer.ctm.filter-expected.html": [ - "493a2cd1d99e2ca55464cbe5efda07f5dd1b9121", + "2d.layer.ctm.layer-filter.tentative-expected.html": [ + "f1f564f24799260ff5350b5cc6d9ef445e22aa10", [] ], "2d.layer.ctm.resetTransform-expected.html": [ @@ -452314,8 +453196,12 @@ "cf16986c91bd03110713767e85ba522dce4aafb6", [] ], - "2d.layer.drawImage-expected.html": [ - "4a4aa93d9f2b82c44776807c181cf6db2ae4f233", + "2d.layer.drawImage.ctx-filter-expected.html": [ + "0d06cdc45ed4327a58e28b31ebc1a6c30ff9054e", + [] + ], + "2d.layer.drawImage.layer-filter.tentative-expected.html": [ + "589f172ba5cf890ea85a1d4257b7db4c37cf75b6", [] ], "2d.layer.global-states.ctx-filter.no-transform-expected.html": [ @@ -452326,20 +453212,20 @@ "3290077de1ea57141ae7524d5071315d2bb1c0d6", [] ], - "2d.layer.global-states.filter.ctx-filter.no-transform-expected.html": [ - "af2a55af7efd34f798585fda9ba2a67e028784d4", + "2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html": [ + "dae68b3ad7301e5f46a60b7ea466d2931969b24c", [] ], - "2d.layer.global-states.filter.ctx-filter.rotation-expected.html": [ - "b0a58fcb93fc977aaad832b313c8edd902f5a201", + "2d.layer.global-states.filter.ctx-filter.rotation.tentative-expected.html": [ + "b18ae7f357ac829d17228e15fc490b1b6243cf37", [] ], - "2d.layer.global-states.filter.no-cxt-filter.no-transform-expected.html": [ - "db1a4bdc131176a24dbfe22ac3b03eab54b09ef5", + "2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative-expected.html": [ + "6263d26333a0ddc08abb05de71a4332e25c6944f", [] ], - "2d.layer.global-states.filter.no-cxt-filter.rotation-expected.html": [ - "8995fe469e4d0874dc8e3a346462a4b3b653c426", + "2d.layer.global-states.filter.no-cxt-filter.rotation.tentative-expected.html": [ + "0236c9a5d93681627eb813c43250cfc4a39dcced", [] ], "2d.layer.global-states.no-cxt-filter.no-transform-expected.html": [ @@ -452362,8 +453248,8 @@ "6fe2dbeb5231526ac4e88df91a0c2daf592dd470", [] ], - "2d.layer.nested-filters-expected.html": [ - "68ccec3b2da871a7b24460e98fc2f81da9019e4a", + "2d.layer.nested-filters.tentative-expected.html": [ + "6b9bfbdb4650804d699ea151bab58656055a6461", [] ], "2d.layer.non-invertible-matrix-expected.html": [ @@ -452374,16 +453260,28 @@ "021d5ae7af90367a089c977eb04b8c9762c1c303", [] ], - "2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html": [ - "ead108a72c4adb1383f120126fc2d9da60bf098e", + "2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html": [ + "daa6111f7b597bc0262cb342f69593a0eda188d4", [] ], - "2d.layer.opaque-canvas-expected.html": [ - "02f73611d6172651327b7773264b0b80a6c8d2a3", + "2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html": [ + "3841df36ed4c9169aecc2ea3dad7cd0fd4e08ea0", [] ], - "2d.layer.reset-expected.html": [ - "6f3f82dc98ea469b03bd532d399b8f36c8ad89ff", + "2d.layer.opaque-canvas.ctx-filter-expected.html": [ + "af704031e29e6540875fd56a0352bff5a04ecb18", + [] + ], + "2d.layer.opaque-canvas.layer-filter.tentative-expected.html": [ + "d195882a685656fcaa12d102b0347ea8c57b0147", + [] + ], + "2d.layer.reset.filtered_layer.tentative-expected.html": [ + "47bf9689e1ed1cdf506770df2fbd2d0023d61c9d", + [] + ], + "2d.layer.reset.plain_layer-expected.html": [ + "c018252c21394830336512747c3674b599b68ecf", [] ], "2d.layer.restore-style-expected.html": [ @@ -452394,20 +453292,36 @@ "e8f0e46333b22b2c1a8a13b41e39b6a596b8b1eb", [] ], - "2d.layer.shadow-from-outside-canvas.long-distance-expected.html": [ - "4a5b1ea18a1748c0d41d503adb3430eff593a3d4", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html": [ + "522a7716b6e0ede2231611f1dbc6c9fa0b3a758c", [] ], - "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html": [ - "0f15210c17fd116b4d967e9c9601ac1f5b39344d", + "2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html": [ + "5fe2833afe5a8e07639360c1fe6c7117792adbb1", [] ], - "2d.layer.shadow-from-outside-canvas.short-distance-expected.html": [ - "beaa26cd3c837a66f63dcf3d36c3eaefe5b4d884", + "2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html": [ + "2c53a773b80cf47caa7384408f21997c66bc390d", [] ], - "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html": [ - "96045c23a512a4fd3643b29e3cb4a5ac449bde16", + "2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html": [ + "5f89d012f46b152571a927b6e9d98f0e79a39a7e", + [] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html": [ + "6aee28f0de9290df3a382279450603c3f6511014", + [] + ], + "2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html": [ + "f75299dde64e0f65e48f2bd212598a5aa9d1ab6f", + [] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html": [ + "5ca2ebad391b30fe64b1813d5e2fc10afab9df0e", + [] + ], + "2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html": [ + "387eb0b5d72399679dd0615bd5a6460bf8f01a67", [] ] }, @@ -452644,7 +453558,7 @@ [] ], "gentestutilsunion.py": [ - "760368cf2220652aec7354cecf38ee047d3a0e9b", + "2ec2e20886b5bb16c6443daf98e502c408f55c0c", [] ], "name2dir-canvas.yaml": [ @@ -452761,11 +453675,11 @@ [] ], "filters.yaml": [ - "be28001fa7300714ac60b3531256079713c6825f", + "68c9dab7afd4d215fff22855fca2dcb0f1311a96", [] ], "layers.yaml": [ - "c96b9bbc7db3171192374876f876d643a620f641", + "9f68a85369217c95cdb1fd2892d1227bd8ef1bab", [] ], "line-styles.yaml": [ @@ -453456,7 +454370,7 @@ [] ], "noopener-helper.js": [ - "1f9b07750715354fc91d5091970c5a00b1362146", + "6dd2c9bc1c9ac2625be861246160e1a4dd7c4088", [] ], "popup-test.js": [ @@ -453570,6 +454484,10 @@ "59f039ed3e0596e02c55673bc1ca97e82311f358", [] ], + "credentialless-video.https.tentative.window.js.headers": [ + "b8c5c47c8569261e63e548565101aa18568d7cd7", + [] + ], "isolate-and-require-corp-load-from-cache-storage.tentative.https.html.headers": [ "33ff090f6dadf3a4e84fb26982a68df3e3975f35", [] @@ -453583,6 +454501,10 @@ [] ], "resources": { + "common.js": [ + "df4bfcfc7d52ac006f84f4ca046cc64b4dd7a171", + [] + ], "fetch-and-create-url.html": [ "6b0f96221dc47c367a53ffac3b07276070f71892", [] @@ -453599,6 +454521,10 @@ "662e9364f99ef5ab103932aabd9c3d5aced0ac38", [] ], + "redirect_none_to_credentialless.py": [ + "34b4e9f8ea41fd1aed28b86715df31c1692b88aa", + [] + ], "shared-worker-fetch.js.py": [ "bf46cd291d4b955c35082e8f611b772d70267253", [] @@ -458862,17 +459788,25 @@ [] ], "details-pseudo-elements-001-ref.html": [ - "e00e6c52ff5e1b73f7f1ef5fe65bc244b266e523", + "0c77c0e14fc3e0f3707e6dee32aea5a9738b6fb1", [] ], "details-pseudo-elements-002-ref.html": [ - "baf242291b5ef22370d99f5ff8c0dd1b06c5842a", + "b4a38f14888f530bfff2b1c408e352dd53262455", [] ], "details-pseudo-elements-003-ref.html": [ "e6c55cc141a3f27748df46c0bac2b191c6f61a4c", [] ], + "details-pseudo-elements-004-ref.html": [ + "3de3de55cf90670d3d82c9d615c78c8f140b03fa", + [] + ], + "details-pseudo-elements-005-ref.html": [ + "b34f2e35f04881f303441b00ef6b7db23f46138f", + [] + ], "details-revert-ref.html": [ "dc46b159012fd80c39b66e94935c210a11826487", [] @@ -461172,7 +462106,7 @@ [] ], "bounded-sizes-reftest-ref.html": [ - "b186dd644581822f288d3c756d825203e2ed8330", + "a341674c69c73dfd2c7da202b303b3df781655bf", [] ], "display-css-property-reftest-ref.html": [ @@ -461180,7 +462114,7 @@ [] ], "large-min-size-reftest-ref.html": [ - "0e97fe4f462be9c271fafbc9aa15525a11da0f9c", + "6c0b7a73f0c037e15121bbcec11d4750c6d80842", [] ], "pseudo-elements-in-div-ref.html": [ @@ -461190,6 +462124,10 @@ "pseudo-elements-ref.html": [ "ca7ad2daa89a84d868d46c323a72714467604b50", [] + ], + "unbounded-width-with-border-reftest-ref.html": [ + "8219b9a74206e84b92001d6af9f00ebd03fd40b7", + [] ] }, "popovers": { @@ -466342,7 +467280,7 @@ [] ], "fedcm.idl": [ - "ba99f1174c8790bf6ca86bf580954a9817a7af74", + "443d3311a24aa11ea529b960ad606f96051f9a01", [] ], "fenced-frame.idl": [ @@ -466462,7 +467400,7 @@ [] ], "invokers.tentative.idl": [ - "4724d7deb08d0110df3a47b8d6542b719ceae9dd", + "046a365939c4bf601eb1b8fa4221650c02435a37", [] ], "is-input-pending.idl": [ @@ -466562,7 +467500,7 @@ [] ], "mediasession.idl": [ - "5c6942be5a0786234d5f9fddaa302c98c8d92f97", + "9c050b0efdf7dc851028a4fa03c8d47ac951b85a", [] ], "mediastream-recording.idl": [ @@ -466938,7 +467876,7 @@ [] ], "webaudio.idl": [ - "74aab7e2362ff736a77278e28a312e04c6caecf8", + "d14eb96820fb6442c39e0bc2dc0546252153055f", [] ], "webauthn.idl": [ @@ -466974,7 +467912,7 @@ [] ], "webcodecs.idl": [ - "52731257f1ff742d2c8d1108a2bc05e348f8a79a", + "984762812186c358541383ddeaa37ffd71e6416e", [] ], "webcrypto-secure-curves.idl": [ @@ -466994,7 +467932,7 @@ [] ], "webgpu.idl": [ - "421685c7a8fe4516e5e0b803f617181650d1d62a", + "58e43d02f5e42e90788b871cbc1dfe1234d2aa14", [] ], "webhid.idl": [ @@ -467046,11 +467984,11 @@ [] ], "webtransport.idl": [ - "6e9d10367369662f07051f64e02097678aa301f3", + "24fe5b7e61b91d850e1278d8577117c6d2f3954a", [] ], "webusb.idl": [ - "3b362d2351d695848ae97690c1358e884dd273d2", + "d6484db3e886e70f49cda01fe10bf7b856dedc1b", [] ], "webvr.tentative.idl": [ @@ -473983,11 +474921,11 @@ [] ], "middle-frame.https.sub.html": [ - "0dd26ecc2b16841c6368a0dfa455d43048daa45c", + "5a4a48969985210e9a49db5414f1c4c2acd32e10", [] ], "report-helper.js": [ - "213a635c493a198f12075992ecc8630d01717f51", + "4d3c3fbdee800c5ed20d297384364004602738fd", [] ], "report.py": [ @@ -473999,7 +474937,7 @@ [] ], "same-origin-report.https.sub.html.sub.headers": [ - "8244fafb22c34fb6aef0dd2587c12bbedc70e7f6", + "070ccb7967e28fa73bc245bc0516518a2c0912c5", [] ], "second-csp-report.https.sub.html": [ @@ -475623,6 +476561,10 @@ "collapse-pre-linestart-ref.html": [ "2b25941ded7e51d4a62cfc536f42de0aea58a50c", [] + ], + "editing-host-has-only-invisible-br-ref.html": [ + "4fa73c7a895d3ff4532522ea61e2653a222a0249", + [] ] }, "collapse.js": [ @@ -479306,7 +480248,7 @@ [] ], "executor.sub.html": [ - "ba1b3acb0c1198284c74c345b3de5c6d98fc2421", + "3001bc233bef6ec119e1b06260c208a670caa402", [] ], "executor.sub.html.headers": [ @@ -479326,7 +480268,7 @@ [] ], "ruleset.py": [ - "5b6ac87aed5ea1ed41f7e79bf340a4259039e52a", + "0a6cfde79ac28d5252fcb4d5711ce9c5ca8f0a49", [] ], "slow-executor.py": [ @@ -479714,7 +480656,7 @@ [] ], "utils.js": [ - "c9486d7fa1dfe5ad2230958c57d6c5a2a924eada", + "259f71f6a70c7f07e65c7620f5fafeb810e2de6f", [] ], "wake-lock.https.html": [ @@ -492889,11 +493831,11 @@ [] ], "firefox.py": [ - "74a9e02dafe93e209e21d46a6245077e79bfccc6", + "964ed8337a026af8d26a6af17032298e6f904cea", [] ], "firefox_android.py": [ - "526f83d595f23d6fb5c30381bf885670498b807f", + "9c9482d0bac91d670f0b99a6f24c2295d27dc04d", [] ], "headless_shell.py": [ @@ -492969,7 +493911,7 @@ [] ], "executorchrome.py": [ - "4dd2f86f5cfd0de3da2bcd58f6fb40840ca7a417", + "53c11f133e5e0197b86435a62b18442315cbbcc0", [] ], "executoredge.py": [ @@ -495920,16 +496862,30 @@ ] }, "the-audio-api": { + "processing-model": { + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] + ] + }, "the-analysernode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-audiobuffer-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-audiobuffersourcenode-interface": { @@ -495937,6 +496893,10 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] + ], "resources": { "audiobuffersource-multi-channels-expected.wav": [ "ab9d5fe5a9dbd736a079f0cfd7966d5e064ed7ef", @@ -495949,6 +496909,10 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] + ], "resources": { "not-fully-active-helper.sub.html": [ "2654a2a50405b5184453b23da75a58d06c1943b2", @@ -495960,6 +496924,10 @@ ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-audioparam-interface": { @@ -495967,6 +496935,10 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] + ], "automation-rate-testing.js": [ "43279f91d68d3c5e2d7a086c739c838b31dc7335", [] @@ -495977,6 +496949,10 @@ ] }, "the-audioworklet-interface": { + "WEB_FEATURES.yml": [ + "1d37287c05a31dd6dbafbcf78b9a5fee7a27e255", + [] + ], "audioworklet-postmessage-sharedarraybuffer.https.html.headers": [ "63b60e490f47f4db77d33d7a4ca2f5b9a4181de8", [] @@ -496108,96 +497084,184 @@ ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-channelmergernode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-channelsplitternode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] + ] + }, + "the-constantsourcenode-interface": { + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-convolvernode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-delaynode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] + ] + }, + "the-destinationnode-interface": { + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-dynamicscompressornode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-gainnode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] + ] + }, + "the-iirfilternode-interface": { + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-mediaelementaudiosourcenode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-mediastreamaudiodestinationnode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-mediastreamaudiosourcenode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-offlineaudiocontext-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "e7da88c82cdb2315b33b023c740adbdc953d0f2d", + [] ] }, "the-oscillatornode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-pannernode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-periodicwave-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-scriptprocessornode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] + ] + }, + "the-stereopanner-interface": { + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] }, "the-waveshapernode-interface": { ".gitkeep": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] + ], + "WEB_FEATURES.yml": [ + "51e62e2c98405e89671f23dd36dba550cb0789a3", + [] ] } } @@ -496225,7 +497289,7 @@ [] ], "webauthn-subframe.sub.html": [ - "c97255924e14e3242ed88b87abf74c69afb4fb8c", + "1d0984c33bdcdd52502b7d861d68e70e4917b1f9", [] ] } @@ -497572,7 +498636,7 @@ [] ], "image.py": [ - "533b8b2068218bdfb4f88785319b880d8ed82800", + "058815b04084a3ac89d25b1a8f44703af23faaa8", [] ], "inline.py": [ @@ -503736,11 +504800,83 @@ } }, "IndexedDB": { - "abort-in-initial-upgradeneeded.html": [ - "e37056974fac6364b64f36f1b6fc357ee21508f1", + "abort-in-initial-upgradeneeded.any.js": [ + "ebdafca8e9d776f5fc368a3e33506eabf4c7de8c", [ - null, - {} + "IndexedDB/abort-in-initial-upgradeneeded.any.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], + [ + "IndexedDB/abort-in-initial-upgradeneeded.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], + [ + "IndexedDB/abort-in-initial-upgradeneeded.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], + [ + "IndexedDB/abort-in-initial-upgradeneeded.any.worker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } ] ], "back-forward-cache-open-connection.window.js": [ @@ -504160,18 +505296,162 @@ } ] ], - "clone-before-keypath-eval.html": [ - "6ef36f5fe3e2b5b63abb9e32059aa69727124cc0", + "clone-before-keypath-eval.any.js": [ + "8344098ae789fd66b95e3dcc71ad41d08ffb9564", [ - null, - {} + "IndexedDB/clone-before-keypath-eval.any.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: clone before key path evaluation" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], + [ + "IndexedDB/clone-before-keypath-eval.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: clone before key path evaluation" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], + [ + "IndexedDB/clone-before-keypath-eval.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: clone before key path evaluation" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], + [ + "IndexedDB/clone-before-keypath-eval.any.worker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: clone before key path evaluation" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } ] ], - "close-in-upgradeneeded.html": [ - "59adc31a99f304610a7b56de07e0ff4b228806fb", + "close-in-upgradeneeded.any.js": [ + "3e39360877e39bba0d913ed1fea3b6c649208f14", [ - null, - {} + "IndexedDB/close-in-upgradeneeded.any.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], + [ + "IndexedDB/close-in-upgradeneeded.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], + [ + "IndexedDB/close-in-upgradeneeded.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } + ], + [ + "IndexedDB/close-in-upgradeneeded.any.worker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support.js" + ] + ] + } ] ], "cursor-overloads.htm": [ @@ -518174,6 +519454,66 @@ ] } }, + "ai": { + "language_detection": { + "canDetect.tentative.window.js": [ + "a69d1787fb802d78fde4a693ab094e956682b195", + [ + "ai/language_detection/canDetect.tentative.window.html", + { + "script_metadata": [ + [ + "title", + "canDetect" + ] + ] + } + ] + ], + "capabilities.tentative.window.js": [ + "09bae7de2503fc85b8f1bf23d34bb2d48c76887c", + [ + "ai/language_detection/capabilities.tentative.window.html", + { + "script_metadata": [ + [ + "title", + "capabilities test" + ] + ] + } + ] + ], + "detect-en.tentative.window.js": [ + "b4494d460d951eabcab4603d171db302dc0ec92d", + [ + "ai/language_detection/detect-en.tentative.window.html", + { + "script_metadata": [ + [ + "title", + "Detect english" + ] + ] + } + ] + ], + "detector.tentative.window.js": [ + "4f962de8339de0a8eb1b0444dfcf668c05f76b88", + [ + "ai/language_detection/detector.tentative.window.html", + { + "script_metadata": [ + [ + "title", + "Detect english" + ] + ] + } + ] + ] + } + }, "ambient-light": { "AmbientLightSensor-disabled-by-feature-policy.https.html": [ "fb20d70d938f1a1f6a47d6a58722cb77c7418096", @@ -529496,11 +530836,15 @@ ] ], "compute_pressure_detached_iframe.https.window.js": [ - "a43d6b0fc2dc7ed0263dbf3bde7c242dc421cea4", + "78654626fe1b775aa074850b2e7daf0beacec326", [ "compute-pressure/compute_pressure_detached_iframe.https.window.html?globalScope=window", { "script_metadata": [ + [ + "timeout", + "long" + ], [ "variant", "?globalScope=window" @@ -529525,7 +530869,8 @@ "script", "./resources/common.js" ] - ] + ], + "timeout": "long" } ] ], @@ -529749,11 +531094,15 @@ ] ], "compute_pressure_duplicate_updates.https.window.js": [ - "f11a59b4cbbad30b4b9b0700e243bd12f5ea68d5", + "e6f4ed10454a28bc276e839dd6a54f75769d565c", [ "compute-pressure/compute_pressure_duplicate_updates.https.window.html?globalScope=dedicated_worker", { "script_metadata": [ + [ + "timeout", + "long" + ], [ "variant", "?globalScope=window" @@ -529781,14 +531130,23 @@ [ "script", "./resources/common.js" + ], + [ + "script", + "./resources/sync-pressure-observer.js" ] - ] + ], + "timeout": "long" } ], [ "compute-pressure/compute_pressure_duplicate_updates.https.window.html?globalScope=window", { "script_metadata": [ + [ + "timeout", + "long" + ], [ "variant", "?globalScope=window" @@ -529816,8 +531174,13 @@ [ "script", "./resources/common.js" + ], + [ + "script", + "./resources/sync-pressure-observer.js" ] - ] + ], + "timeout": "long" } ] ], @@ -530186,7 +531549,7 @@ ] ], "compute_pressure_timestamp.https.window.js": [ - "0f35eef522a454bfde3db8fcf0d2fce49f3f2bb6", + "b9544faef71dd43d45829ff92b5b3f662f620447", [ "compute-pressure/compute_pressure_timestamp.https.window.html?globalScope=dedicated_worker", { @@ -530222,6 +531585,10 @@ [ "script", "./resources/common.js" + ], + [ + "script", + "./resources/sync-pressure-observer.js" ] ], "timeout": "long" @@ -530262,6 +531629,10 @@ [ "script", "./resources/common.js" + ], + [ + "script", + "./resources/sync-pressure-observer.js" ] ], "timeout": "long" @@ -530269,7 +531640,7 @@ ] ], "compute_pressure_timestamp_continuously_increasing.https.window.js": [ - "bdf5dbae6f513ccd0603f97b4c29f6f6c65f1c12", + "590d0fb1f6811fde75b3e62792f150d9eade9128", [ "compute-pressure/compute_pressure_timestamp_continuously_increasing.https.window.html?globalScope=dedicated_worker", { @@ -530305,6 +531676,10 @@ [ "script", "./resources/common.js" + ], + [ + "script", + "./resources/sync-pressure-observer.js" ] ], "timeout": "long" @@ -530345,6 +531720,10 @@ [ "script", "./resources/common.js" + ], + [ + "script", + "./resources/sync-pressure-observer.js" ] ], "timeout": "long" @@ -530352,7 +531731,7 @@ ] ], "compute_pressure_timestamp_faster_collector.https.window.js": [ - "40ffe3b5b006e3ed8e1d1aae7ad3db40be2a17a3", + "ce25540385ee069fe0a6c865079cd35056843be2", [ "compute-pressure/compute_pressure_timestamp_faster_collector.https.window.html?globalScope=dedicated_worker", { @@ -530388,6 +531767,10 @@ [ "script", "./resources/common.js" + ], + [ + "script", + "./resources/sync-pressure-observer.js" ] ], "timeout": "long" @@ -530428,6 +531811,10 @@ [ "script", "./resources/common.js" + ], + [ + "script", + "./resources/sync-pressure-observer.js" ] ], "timeout": "long" @@ -539450,6 +540837,13 @@ {} ] ], + "credentialscontainer-frame-basics.https.html": [ + "89f9bb6920859ec0ed86bd44f3aec2e7bdbd5652", + [ + null, + {} + ] + ], "credentialscontainer-get-basics.https.html": [ "c1030b48f954655833636971bcfb5d919f10133e", [ @@ -541856,7 +543250,7 @@ ] ], "anchor-invalid-fallback.html": [ - "15ccada17949518aede5eef33e51cf988c643218", + "254ba185c62c6e684457b2dd58de85b5c3f970f3", [ null, {} @@ -541954,7 +543348,7 @@ ] ], "anchor-parse-invalid.html": [ - "04b19b25301cbbb84e48ec0ebc561baeb6963389", + "795722972a2ab79f133842c1d146550ed885038b", [ null, {} @@ -542360,7 +543754,7 @@ ] ], "anchor-size-001.html": [ - "4beab33f057367ea227575869868f10bedad24e0", + "0da442d28764f3ed4ff04417be5570863f8bd544", [ null, {} @@ -542634,6 +544028,15 @@ {} ] ], + "popover-implicit-anchor.tentative.html": [ + "b6bba4534c0ed30c314101c788d9ca414dff1102", + [ + null, + { + "testdriver": true + } + ] + ], "position-anchor-003.html": [ "6117027e22029cdef83e9c01190af1fbb90c75ac", [ @@ -544291,7 +545694,7 @@ ] ], "background-valid.html": [ - "e011c2238d2df73452dd011a8114415556ea790a", + "7bf23f7614bdb8d164e4404f0c4573a62af7a34d", [ null, {} @@ -547629,6 +549032,13 @@ {} ] ], + "scroll-state-target-query-change.html": [ + "33459f470b9920e81092a93bc82a72ef01c195b5", + [ + null, + {} + ] + ], "sibling-layout-dependency.html": [ "eb3df2ba410d34b62686351fc6834287fbd73baa", [ @@ -559029,6 +560439,13 @@ {} ] ], + "nested-declarations-cssom-whitespace.html": [ + "51febe3149dd3558f50466ed3a71efcafa9f7d5e", + [ + null, + {} + ] + ], "nested-declarations-cssom.html": [ "ee8ba2295230ca485424dff6d47305c3d1266c36", [ @@ -562178,6 +563595,15 @@ {} ] ], + "ignore-adjustments-while-scrolling-to-anchor.tentative.html": [ + "5eae9c0ac436951021370056e37cf1a0158c7667", + [ + null, + { + "testdriver": true + } + ] + ], "image-001.html": [ "475c9170b846f60bd5143fa43a4f10680bae1ed7", [ @@ -571325,7 +572751,7 @@ ] ], "cssUnparsedValue.html": [ - "c87553dd917b124fbe42d82d5d4b13d4499749b9", + "6e9b1a0c90c23808fced4f6f80a933b8142a4fe5", [ null, {} @@ -587643,6 +589069,13 @@ {} ] ], + "select-option-optgroup.html": [ + "2f310216371321da9f7ac82c63b29bdc6d0beeb0", + [ + null, + {} + ] + ], "selection-preserve.html": [ "04b81c9a0563894c68ad498b49352e7de9e01049", [ @@ -592335,8 +593768,92 @@ ] }, "plaintext-only": { + "delete-around-linebreak-or-block-boundary.html": [ + "eb28ffa336fea148493c716157d5083ee70b3c45", + [ + "editing/plaintext-only/delete-around-linebreak-or-block-boundary.html?white-space=normal", + { + "timeout": "long" + } + ], + [ + "editing/plaintext-only/delete-around-linebreak-or-block-boundary.html?white-space=pre", + { + "timeout": "long" + } + ], + [ + "editing/plaintext-only/delete-around-linebreak-or-block-boundary.html?white-space=pre-line", + { + "timeout": "long" + } + ], + [ + "editing/plaintext-only/delete-around-linebreak-or-block-boundary.html?white-space=pre-wrap", + { + "timeout": "long" + } + ] + ], + "delete-part-of-white-spaces.html": [ + "bc12808ec3c91d2eba96c31beefb09c92d2a0abf", + [ + "editing/plaintext-only/delete-part-of-white-spaces.html?white-space=pre", + { + "timeout": "long" + } + ], + [ + "editing/plaintext-only/delete-part-of-white-spaces.html?white-space=pre-wrap", + { + "timeout": "long" + } + ] + ], + "forwardDelete-around-linebreak-or-block-boundary.html": [ + "bec13189f3884d0ea012fe398bc763345f92805a", + [ + "editing/plaintext-only/forwardDelete-around-linebreak-or-block-boundary.html?white-space=normal", + { + "timeout": "long" + } + ], + [ + "editing/plaintext-only/forwardDelete-around-linebreak-or-block-boundary.html?white-space=pre", + { + "timeout": "long" + } + ], + [ + "editing/plaintext-only/forwardDelete-around-linebreak-or-block-boundary.html?white-space=pre-line", + { + "timeout": "long" + } + ], + [ + "editing/plaintext-only/forwardDelete-around-linebreak-or-block-boundary.html?white-space=pre-wrap", + { + "timeout": "long" + } + ] + ], + "forwardDelete-part-of-white-spaces.html": [ + "80953dd9524efa5a681f33e3d9f085dc303af35a", + [ + "editing/plaintext-only/forwardDelete-part-of-white-spaces.html?white-space=pre", + { + "timeout": "long" + } + ], + [ + "editing/plaintext-only/forwardDelete-part-of-white-spaces.html?white-space=pre-wrap", + { + "timeout": "long" + } + ] + ], "insertHTML.html": [ - "b0577c45a5c20c8fdd4a42c99d188e3ee999ad83", + "00bd0df1d5249bdbe2a41add8b2d58d8330bb3f2", [ "editing/plaintext-only/insertHTML.html?white-space=normal", { @@ -592363,7 +593880,7 @@ ] ], "insertLineBreak.html": [ - "564eb16605c2bd05f9ec103c11e640f9250217af", + "73ee625dd6277257fb61240e37f363b58bac0430", [ "editing/plaintext-only/insertLineBreak.html?white-space=normal", { @@ -592394,7 +593911,7 @@ ] ], "insertParagraph.html": [ - "2841fdb4f31e8eae28d47394d06eb50c2247adac", + "429da8d134f6bf21b726208046a53877a6a24e69", [ "editing/plaintext-only/insertParagraph.html?white-space=normal", { @@ -592420,8 +593937,39 @@ } ] ], + "insertText.html": [ + "9045e04d368f3fa1b5bfac5f7d22a429d3c9701c", + [ + "editing/plaintext-only/insertText.html?white-space=normal", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "editing/plaintext-only/insertText.html?white-space=pre", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "editing/plaintext-only/insertText.html?white-space=pre-line", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "editing/plaintext-only/insertText.html?white-space=pre-wrap", + { + "testdriver": true, + "timeout": "long" + } + ] + ], "paste.https.html": [ - "611c39f8bf3c89237ff7ef24a4a5111619dfe6c6", + "9081028732a1a8f7c7c1bce0f581fc0686737a37", [ "editing/plaintext-only/paste.https.html?white-space=normal", { @@ -608001,7 +609549,7 @@ ], "fedcm-button-and-other-account": { "fedcm-button-mode-auto-selected-flag.tentative.https.html": [ - "786c63ca5e4ece5c4ea77ca4b60234741baf5c1a", + "160dd6f2839e24d4092c8743f0a9bb53c3befdbc", [ null, { @@ -608010,7 +609558,7 @@ ] ], "fedcm-button-mode-basics.tentative.https.html": [ - "918f72432107e6dcb1b8825bc48501e434252323", + "41967e389ec96714c34d1ca4fe309d8552bb7c73", [ null, { @@ -608019,7 +609567,7 @@ ] ], "fedcm-button-mode-priority.tentative.https.html": [ - "b71e84db47e458f42931cfcbcc6e0100cd1d40d3", + "c95b89c0fd4f077491a89d274217a969a01aef9e", [ null, { @@ -608028,7 +609576,7 @@ ] ], "fedcm-use-other-account-button-flow.tentative.https.html": [ - "7a3f266b24b937fae03c9886184ada6e8b27c960", + "33cfd32e5af527c7ce6a9048bc2261f0ffd6831d", [ null, { @@ -608731,10 +610279,11 @@ ] ], "create-credential.https.html": [ - "15f0558e521d83b49891b326458d0cb04b1e4b4b", + "65884b27143969d133eb9182aa90c3c10d0c2614", [ null, { + "testdriver": true, "timeout": "long" } ] @@ -625331,7 +626880,7 @@ ] ], "auction-config.https.window.js": [ - "fc1441a87430011f4326207eb692b55009f72a6c", + "1b2eba36169271d84a9238631fea1d3511930cdf", [ "fledge/tentative/auction-config.https.window.html?1-5", { @@ -633938,7 +635487,7 @@ ] ], "server-response.https.window.js": [ - "adc079f015ac43748643f4e9016b12028a84336e", + "1d272fb59a82c638834e1f2e6560d6204e8dbaf1", [ "fledge/tentative/server-response.https.window.html?1-4", { @@ -653454,8 +655003,8 @@ ] }, "layers": { - "2d.layer.beginLayer-options.html": [ - "62803cf6797032046aa843948ef3acdc3a39a591", + "2d.layer.beginLayer-options.tentative.html": [ + "fe9cbb78d99fea6d47200a510cac80c16c453d7a", [ null, {} @@ -653468,8 +655017,8 @@ {} ] ], - "2d.layer.exceptions-are-no-op.html": [ - "2c30c7b0f3c9233d2218dfb2ff5dd43dc60ec38e", + "2d.layer.exceptions-are-no-op.tentative.html": [ + "c8c7e97f87df9a6f87b4cd8e0c5889a17645491c", [ null, {} @@ -653973,7 +655522,7 @@ ] ], "canvas-createImageBitmap-resize.html": [ - "782c7e130c3c5957aad0b4b2f2ab8b52d339f2ed", + "76b1c9d30d24a78e1147e0dfcc9b5db957f24e81", [ null, {} @@ -664175,17 +665724,17 @@ ] }, "layers": { - "2d.layer.beginLayer-options.html": [ - "a4c381e770242927901e9d648aac01368098ae37", + "2d.layer.beginLayer-options.tentative.html": [ + "f51e2843b08cbc5d4b086ed8b4b8cd47ead6cb5d", [ null, {} ] ], - "2d.layer.beginLayer-options.worker.js": [ - "492ac3fcea187bdca39a26caaa7bd5d1ae0df1b9", + "2d.layer.beginLayer-options.tentative.worker.js": [ + "09decf1f32e6020324d5e52d40bdc7a1cddb6e23", [ - "html/canvas/offscreen/layers/2d.layer.beginLayer-options.worker.html", + "html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.worker.html", {} ] ], @@ -664203,17 +665752,17 @@ {} ] ], - "2d.layer.exceptions-are-no-op.html": [ - "cd8d050513e7422c537d9b8d055daad03c451976", + "2d.layer.exceptions-are-no-op.tentative.html": [ + "cea7f37920fd45631c39eae8859afd50edc02e00", [ null, {} ] ], - "2d.layer.exceptions-are-no-op.worker.js": [ - "6e253b26d55284e0fa2f16ad4ab0ca9a91cc1a92", + "2d.layer.exceptions-are-no-op.tentative.worker.js": [ + "8faad7c596f438fe53ea4160854306b71277382a", [ - "html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.worker.html", + "html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.worker.html", {} ] ], @@ -675141,7 +676690,7 @@ "tentative": { "noopener": { "coop-noopener-allow-popups-restrict-properties.https.html": [ - "3058011c08870cf6650a68bd27a855f01d51b8b3", + "68d021ec0a4b3a9b464138574cc378758dc42a71", [ null, { @@ -675150,7 +676699,7 @@ ] ], "coop-noopener-allow-popups.https.html": [ - "0daf3278476c11d99694c06535289b2d0a92cdf6", + "e8a1ea0009288a7a5bc7adafa25f444c336cce2c", [ null, { @@ -675498,6 +677047,952 @@ } }, "document-isolation-policy": { + "credentialless-cache-storage.https.tentative.window.js": [ + "cb4b174e945efaf14cff897d46661971bff964f8", + [ + "html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.html?dedicated_worker", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.html?document", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.html?service_worker", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.html?shared_worker", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ] + ], + "credentialless-cache.tentative.window.js": [ + "99a0f077102b4ab914c553897426c6b160d6ee0a", + [ + "html/document-isolation-policy/credentialless-cache.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], + "credentialless-cross-origin-isolated.tentative.window.js": [ + "4f94562dd08e0173755844f6f21f8facdd03953a", + [ + "html/document-isolation-policy/credentialless-cross-origin-isolated.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], + "credentialless-dedicated-worker.https.tentative.window.js": [ + "e6c9001c7f56959023c3646b626f955d95852bfa", + [ + "html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.html", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ] + ], + "credentialless-fetch.https.tentative.window.js": [ + "b809efa2c55e063141c8129264494a762f82c5e6", + [ + "html/document-isolation-policy/credentialless-fetch.https.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], + "credentialless-link.https.tentative.window.js": [ + "0405368c4ee4234e58dd9306669352324a84081c", + [ + "html/document-isolation-policy/credentialless-link.https.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], + "credentialless-redirect.tentative.window.js": [ + "67c0a5f07c19974da32003a3e8ae5a09e8d5c3d6", + [ + "html/document-isolation-policy/credentialless-redirect.tentative.window.html", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ] + ], + "credentialless-script.https.tentative.window.js": [ + "8534b2f70e819bed16249f8a355aa77a4be12887", + [ + "html/document-isolation-policy/credentialless-script.https.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], + "credentialless-service-worker.https.tentative.window.js": [ + "82209ca7fc83af25ff173914428752e50b1302c6", + [ + "html/document-isolation-policy/credentialless-service-worker.https.tentative.window.html", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ] + ], + "credentialless-shared-worker.https.tentative.window.js": [ + "e2e7b42619c8ec7174b9b6e743aee0903235a9ea", + [ + "html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.html?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless", + { + "script_metadata": [ + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.html?request_origin=cross_origin&worker_dip=credentialless&window_dip=none", + { + "script_metadata": [ + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.html?request_origin=cross_origin&worker_dip=none&window_dip=credentialless", + { + "script_metadata": [ + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.html?request_origin=cross_origin&worker_dip=none&window_dip=none", + { + "script_metadata": [ + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.html?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless", + { + "script_metadata": [ + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.html?request_origin=same_origin&worker_dip=credentialless&window_dip=none", + { + "script_metadata": [ + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.html?request_origin=same_origin&worker_dip=none&window_dip=credentialless", + { + "script_metadata": [ + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.html?request_origin=same_origin&worker_dip=none&window_dip=none", + { + "script_metadata": [ + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=none&window_dip=credentialless" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=none" + ], + [ + "variant", + "?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ] + ], + "credentialless-video.https.tentative.window.js": [ + "5998af44335081e60449f6446bcdcd27ec95ec21", + [ + "html/document-isolation-policy/credentialless-video.https.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], + "credentialless-websocket.https.tentative.window.js": [ + "4205dd74eaf9a5f5b85d777dcf5ac1b935b96b07", + [ + "html/document-isolation-policy/credentialless-websocket.https.tentative.window.html", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ] + ], "isolate-and-require-corp-load-from-cache-storage.tentative.https.html": [ "c78835328b27f2d364f9b67c00cea0be480ee992", [ @@ -675521,6 +678016,66 @@ {} ] ], + "service-worker-coep-credentialless-proxy.https.tentative.window.js": [ + "e12c660f7b42f16604bbd3394386876069a4998c", + [ + "html/document-isolation-policy/service-worker-coep-credentialless-proxy.https.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ] + ], + "service-worker-coep-none-proxy.https.tentative.window.js": [ + "7bee4e77eaec27a0a00d96d9e653809c561a4033", + [ + "html/document-isolation-policy/service-worker-coep-none-proxy.https.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "./resources/common.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ] + ], "shared-workers.tentative.https.html": [ "d0a186f45e7865c9f585112601f934b1861c5471", [ @@ -680713,6 +683268,15 @@ null, {} ] + ], + "details-pseudo-elements-006.html": [ + "503cba5ebb413a8e9ffb36cb2287bd3eaa7e59d2", + [ + null, + { + "testdriver": true + } + ] ] }, "unmapped-attributes.html": [ @@ -680835,7 +683399,7 @@ ] ], "textarea-cols-rows.html": [ - "6ad24a2eb8b399dacbc20b988932df7ba895db35", + "5d02a4653ef77fbaab8b1c7aa8df933a8eabcd47", [ null, {} @@ -688729,6 +691293,15 @@ } ] ], + "select-inside-top-layer.tentative.html": [ + "6d70f3aaf8d3dc23b2f5fb784c399991913dc938", + [ + null, + { + "testdriver": true + } + ] + ], "select-keyboard-behavior.tentative.html": [ "c7894e63c6c5fcdd37e3fdcf879e0cbfcf67d2bb", [ @@ -689950,7 +692523,7 @@ ] ], "interesttarget-on-popover-behavior.tentative.html": [ - "b930fc645dd413e40ab6c6f8e0288527ee27e749", + "fd0a77b93593177394a3bc175fa76a0a644725cd", [ null, { @@ -689975,7 +692548,7 @@ ] ], "invokeevent-dispatch-shadow.tentative.html": [ - "fb2a113994f76270248ee106e2edd3c4727c9d1d", + "9d9b99259789a8cc81f401590ef0cd4b34368bd0", [ null, { @@ -689984,7 +692557,7 @@ ] ], "invokeevent-interface.tentative.html": [ - "500c05f88a106a85f0aa43f24afe78b6ebfcc89a", + "cc2b5c94ea25d898708ee4c28f831e06a8f19487", [ null, { @@ -689993,7 +692566,7 @@ ] ], "invoketarget-button-event-dispatch.tentative.html": [ - "c5dfe14f90b7f214299c4b41f12bd0dbc6f0537f", + "ef870627a066f5dd85f29ce6ea664581ea0259fc", [ null, { @@ -690003,7 +692576,7 @@ ] ], "invoketarget-fullscreen-behavior.tentative.html": [ - "1210b8637deef9140ff27c20ca99e434358c8f93", + "bc7b6f416f19ed93aa315beb56fbc58fff667d91", [ null, { @@ -690013,7 +692586,7 @@ ] ], "invoketarget-on-audio-behavior.tentative.html": [ - "309a91e2842dd17fee69746e949e91634feaf0fa", + "77fb204b98689f8f6cb96a14fafb8ece32adf393", [ null, { @@ -690023,7 +692596,7 @@ ] ], "invoketarget-on-audio-invalid-behavior.tentative.html": [ - "3e18478a52f31db16fb096fb0745017beab70815", + "5aee3ae819c28074f1b03d3ca2afe43b85d82cfc", [ null, { @@ -690033,7 +692606,7 @@ ] ], "invoketarget-on-details-behavior.tentative.html": [ - "4c4998cf9d860d4be9e325ff08631ff7dad314eb", + "d5e8e97cf416f873424cd4390c344295d2335f76", [ null, { @@ -690043,7 +692616,7 @@ ] ], "invoketarget-on-details-invalid-behavior.tentative.html": [ - "3a4e86e9f2c901254942bba5d4ea302389151a0a", + "9acff71c7b59d6e5b38dd3a9b8fbfc0e6baa49d3", [ null, { @@ -690053,7 +692626,7 @@ ] ], "invoketarget-on-dialog-behavior.tentative.html": [ - "9cf1e530b3d17690039c8cb05e4ff878ef48b4a5", + "4fca8a312f920ad9dad0cc77a3ee24f4c802ec59", [ null, { @@ -690063,7 +692636,7 @@ ] ], "invoketarget-on-dialog-invalid-behavior.tentative.html": [ - "8ea5066dd7449f084202f26c8bb2442fff5617f5", + "01ef53d1c07d60d6cfc820f6b1264bb899bd34df", [ null, { @@ -690073,7 +692646,7 @@ ] ], "invoketarget-on-input-number.tentative.html": [ - "643423131eba0a20147557626c2f32ff0d7ffda7", + "c8d624d49437ff5dfecd8ca07a78f4d7b4ed7739", [ null, { @@ -690082,7 +692655,7 @@ ] ], "invoketarget-on-popover-behavior.tentative.html": [ - "c974b6ff108b4ce08becd41a840bb3bc17022cfb", + "7462ce6159a8fead0c12a8e12a03368ad23b749e", [ null, { @@ -690092,7 +692665,7 @@ ] ], "invoketarget-on-popover-invalid-behavior.tentative.html": [ - "31442261f37de3b86c70cd5bed825322b88a1677", + "91efd92ba82aa3d81d5e9a530296c3ae93daee06", [ null, { @@ -690102,7 +692675,7 @@ ] ], "invoketarget-on-video-behavior.tentative.html": [ - "e395281ee31fd84db8885444c9ee04cdb118660b", + "0812e7f038645866ac9769fb07235a21dcb3163f", [ null, { @@ -690338,7 +692911,7 @@ ] ], "bounded-sizes.tentative.html": [ - "357e4fe961aaf63653e9ecf7c59075ec647516b4", + "dbeaebe04de01adddfe6dc0d8c13d4b5243c4751", [ null, {} @@ -690361,7 +692934,7 @@ ] ], "invalid-css-properties.tentative.html": [ - "334280c83bdf9919626ddaf64adc522f2ca51f8d", + "2cf228bb7a9f3d03d45726a6b643ac2dd9694bfa", [ null, {} @@ -702988,7 +705561,7 @@ ] ], "input-events-spin-button-click-on-number-input.html": [ - "105a94f0b4a5a68673e169b08b0655b0ad8c65a6", + "4046f0cd12be8bb5b5c9c9323d2c6857d0908b5b", [ null, { @@ -704722,36 +707295,6 @@ ] ] }, - "language_detection": { - "canDetect.tentative.window.js": [ - "a69d1787fb802d78fde4a693ab094e956682b195", - [ - "language_detection/canDetect.tentative.window.html", - { - "script_metadata": [ - [ - "title", - "canDetect" - ] - ] - } - ] - ], - "detect-en.tentative.window.js": [ - "b4494d460d951eabcab4603d171db302dc0ec92d", - [ - "language_detection/detect-en.tentative.window.html", - { - "script_metadata": [ - [ - "title", - "Detect english" - ] - ] - } - ] - ] - }, "largest-contentful-paint": { "animated": { "observe-animated-image-gif.tentative.html": [ @@ -708234,7 +710777,7 @@ ] ], "width-height-001.html": [ - "57cbc1b0ab2788958d4649b0e4ef1a59baa1a159", + "f39b9951d3df4da70244722fdc24abe990b72c92", [ null, {} @@ -736035,7 +738578,7 @@ ] ], "cross-origin-same-site-credentials.https.sub.html": [ - "2f3f5fefcab9430fa28cef7de8d09391ffd7c564", + "266fd28ee716ddf395ed619bccadc713cd5aa9c7", [ null, {} @@ -736189,7 +738732,7 @@ ] ], "same-origin-cross-site-credentials.https.sub.html": [ - "258ab8e10364934dde6bcb45156c2342434248c8", + "50abbcccb331b4acbd8fdd41ff425b4478dc581b", [ null, {} @@ -736203,7 +738746,7 @@ ] ], "same-origin-same-site-credentials.https.sub.html": [ - "9b99edb26e8940bab186a53d99801a600f655013", + "8ae3dd5e53dc8f95683bc5f06ad0323338a67159", [ null, {} @@ -740349,7 +742892,7 @@ ] ], "current-time-writing-modes.html": [ - "748cda2f894f28096204526797f0e3a259e333d0", + "6c59634f2ae978d645b9749ead1970a2e7aed902", [ null, {} @@ -745763,7 +748306,7 @@ ] ], "event-post-dispatch.html": [ - "239881c7e153b996d33bd94a9cf056e4593001b0", + "98157a69b9c21f82b3fc8ee45343da0c50003839", [ null, {} @@ -749325,11 +751868,15 @@ ] }, "out-of-document-rule-set.https.html": [ - "24502ee5138a861b1bfa134b5102c904cf79cc2f", + "b0e0253eeb786396fa42d349ff4d9518ca395eae", [ "speculation-rules/prefetch/out-of-document-rule-set.https.html?include=BaseCase", {} ], + [ + "speculation-rules/prefetch/out-of-document-rule-set.https.html?include=CSPExemption", + {} + ], [ "speculation-rules/prefetch/out-of-document-rule-set.https.html?include=EmptyRuleSet", {} @@ -751008,6 +753555,21 @@ } ] ], + "send-beacon.html": [ + "34843efcde78c5338116ab2ae2dfbfab023df389", + [ + "speculation-rules/prerender/send-beacon.html?target_hint=_blank", + { + "timeout": "long" + } + ], + [ + "speculation-rules/prerender/send-beacon.html?target_hint=_self", + { + "timeout": "long" + } + ] + ], "service-workers.https.html": [ "0f907c35aa10ef62bb4d5bbded5a72721ea740a2", [ @@ -775989,7 +778551,7 @@ ] ], "processing-after-resume.https.html": [ - "e000ab124fefa6f0eea4e5517d04436428c0cd8c", + "a456f88e186c20b58856fdec2beb1493b0657a0d", [ null, {} @@ -777621,6 +780183,15 @@ } ] ], + "createcredential-nested-frame.https.html": [ + "b839e1c71d3ccfd7b8c3f1862691a2f7a6f728a9", + [ + null, + { + "testdriver": true + } + ] + ], "createcredential-passing.https.html": [ "4124c2247ea3af01eb89e7a4e0cc0b8c326d8527", [ @@ -777789,6 +780360,15 @@ } ] ], + "getcredential-nested-frame.https.html": [ + "18e9f81ddb2a543aef4a9220db075356f49f8c27", + [ + null, + { + "testdriver": true + } + ] + ], "getcredential-passing.https.html": [ "7c730d7183ad4ec8d7208ed7229aa5957be2722e", [ @@ -777856,6 +780436,15 @@ } ] ], + "isuserverifyingplatformauthenticatoravailable.https.html": [ + "c6893f41c6a29faf1677fbc1fb7888121f02184b", + [ + null, + { + "testdriver": true + } + ] + ], "public-key-credential-creation-options-from-json.https.window.js": [ "b3882146f0c5fcf05740c39b622ea4e5a486d6e3", [ @@ -777969,7 +780558,7 @@ ] ], "signal-current-user-details.https.html": [ - "b4027377272e4921693eeb71af7eda3f9f7acb96", + "9dc50e398af4ade47ace17ef7e4faf20c19245a8", [ null, { @@ -795573,6 +798162,225 @@ } ] ], + "logical_and.https.any.js": [ + "be379de157c5d0406afd11b3d4ffc68b29676859", + [ + "webnn/conformance_tests/logical_and.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalAnd operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_and.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalAnd operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_and.https.any.html?npu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalAnd operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_and.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalAnd operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_and.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalAnd operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_and.https.any.worker.html?npu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalAnd operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], "logical_not.https.any.js": [ "e56c5626ef8ab7c43971adf6556a351f803fc52e", [ @@ -795792,6 +798600,444 @@ } ] ], + "logical_or.https.any.js": [ + "f5eb21de7295af5a67a516318f0bf02434896e81", + [ + "webnn/conformance_tests/logical_or.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalOr operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_or.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalOr operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_or.https.any.html?npu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalOr operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_or.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalOr operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_or.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalOr operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_or.https.any.worker.html?npu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalOr operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "logical_xor.https.any.js": [ + "b678b04065b2cfa57aaa7f17ebbd61309b57c9b9", + [ + "webnn/conformance_tests/logical_xor.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalXor operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_xor.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalXor operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_xor.https.any.html?npu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalXor operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_xor.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalXor operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_xor.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalXor operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/logical_xor.https.any.worker.html?npu", + { + "script_metadata": [ + [ + "title", + "test WebNN API element-wise logicalXor operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "variant", + "?npu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], "lstm.https.any.js": [ "20198bfb2f5cede820bcc662a2498d003642e050", [ @@ -804334,7 +807580,7 @@ ] ], "subgraph.https.any.js": [ - "172c59a83b17b3f754ff75070ec91c03b9fb327d", + "454eb62415f9b97765836c0cd0f6d9705cfe571d", [ "webnn/conformance_tests/subgraph.https.any.html?cpu", { @@ -809396,7 +812642,7 @@ ] ], "elementwise-logical.https.any.js": [ - "bada9e7648b1eb3bf80db4ba29146bed784db018", + "3db25c106246cf359be8d9a8253da8aeab26e1cc", [ "webnn/validation_tests/elementwise-logical.https.any.html?cpu", { @@ -834605,10 +837851,21 @@ ] ], "sandboxed_iframe.https.window.js": [ - "0311db8849186ee2ae553c9e1a2247e3fa948b6a", + "fa2c3d7f8bd907aa86a91b899916fd89cd37c6d1", [ "webusb/requestDevice/sandboxed_iframe.https.window.html", - {} + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ] + ] + } ] ] }, @@ -864701,7 +867958,7 @@ }, "dom_content_loaded": { "dom_content_loaded.py": [ - "aa9efb7e3bf5858bf6f52eca384b101ef6e30bdf", + "b426724da538001db20d3e5d0b7e24e7182b107d", [ null, {} @@ -864779,7 +868036,7 @@ }, "load": { "load.py": [ - "600e4cb315655bb0615a57c63cf8313a944fff5c", + "0dcada337792247771eaf0e856ac9097580508ff", [ null, {} @@ -865448,7 +868705,7 @@ }, "auth_required": { "auth_required.py": [ - "a23821f2ae73c1f80de9c957e8e55e5c788930df", + "89fbb09fd54d4079b5a1f2795b792b8fccabeacf", [ null, {} @@ -865464,7 +868721,7 @@ }, "before_request_sent": { "before_request_sent.py": [ - "be2634fc6a90c834864272a251a86499168d0bf0", + "5ba6955bd127d7877203bd6481549bd71d8c528a", [ null, {} @@ -865531,6 +868788,13 @@ null, {} ] + ], + "url.py": [ + "4c65f7d7eb340ebd3eabf10ecf4dc7a2250c5a6e", + [ + null, + {} + ] ] }, "continue_response": { @@ -865620,7 +868884,7 @@ }, "fetch_error": { "fetch_error.py": [ - "aa2caa37702c63d80592d39dd6015084dfcb3289", + "872b4877a8e8e229f5c5e049426dd7370a59b721", [ null, {} @@ -865700,7 +868964,7 @@ }, "response_completed": { "response_completed.py": [ - "a6f8fb20aa1864e14c23313c9b677cc390bbc955", + "ff406ceb95243f4f8cca5013e8db26309afa9145", [ null, {} @@ -865716,7 +868980,7 @@ }, "response_started": { "response_started.py": [ - "310e91d57da05bd191bdba01de3f2c42cd1e0ec2", + "47ab922b0da603ec4ed36f3c572a81a490076cc2", [ null, {} @@ -866900,8 +870164,15 @@ ] }, "fullscreen_window": { + "from_minimized_window.py": [ + "09d5579bdb90a6f08f57b593b5cd71c12cce5c65", + [ + null, + {} + ] + ], "fullscreen.py": [ - "ce9e033d64131a14c719aee3842cd4e6303c7214", + "f6e9e8792360c9069345a27d870f027ecaabf6cd", [ null, {} @@ -867675,7 +870946,7 @@ }, "print": { "background.py": [ - "4f2f85980bae434c04f536d2ea7a2e8a3c6065bf", + "8f94027021fcea0e4cb71294b1a0ed2b6742e9a1", [ null, {} @@ -867769,8 +871040,15 @@ ] }, "set_window_rect": { + "from_minimized_window.py": [ + "e5429c92a1c0fac4d992389a27e845d617401994", + [ + null, + {} + ] + ], "set.py": [ - "5295c44fddb5d8503b2c6a743080f53c7724441b", + "9e15d02b0d1953df3d22f7ff7b544f6e86cca1ea", [ null, { @@ -867779,7 +871057,7 @@ ] ], "user_prompts.py": [ - "908a9d920f36d0b8664c6b906bc71b0aefba96e6", + "e55c2d77f8cc018128aae4b3bd0a0ff21a6b8d24", [ null, { diff --git a/tests/wpt/meta/css/css-backgrounds/parsing/background-valid.html.ini b/tests/wpt/meta/css/css-backgrounds/parsing/background-valid.html.ini index 4d2a4b9f6d7..6f094e64899 100644 --- a/tests/wpt/meta/css/css-backgrounds/parsing/background-valid.html.ini +++ b/tests/wpt/meta/css/css-backgrounds/parsing/background-valid.html.ini @@ -2,9 +2,6 @@ [e.style['background'\] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set the property value] expected: FAIL - [e.style['background'\] = "none" should set background-color] - expected: FAIL - [e.style['background'\] = "url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box, rgb(5, 6, 7) url(\\"https://example.com/\\") 1px 2px / 3px 4px space round local padding-box content-box" should set background-attachment] expected: FAIL diff --git a/tests/wpt/meta/css/css-conditional/container-queries/scroll-state-target-query-change.html.ini b/tests/wpt/meta/css/css-conditional/container-queries/scroll-state-target-query-change.html.ini new file mode 100644 index 00000000000..8125d4e9608 --- /dev/null +++ b/tests/wpt/meta/css/css-conditional/container-queries/scroll-state-target-query-change.html.ini @@ -0,0 +1,2 @@ +[scroll-state-target-query-change.html] + expected: ERROR diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-auto-038.tentative.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-auto-038.tentative.html.ini new file mode 100644 index 00000000000..bccea3ccd35 --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-auto-038.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-auto-038.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-abspos-014.tentative.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-abspos-014.tentative.html.ini new file mode 100644 index 00000000000..a7e0e7a16ad --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-abspos-014.tentative.html.ini @@ -0,0 +1,2 @@ +[line-clamp-with-abspos-014.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini index 59a43250767..314dca9c1f5 100644 --- a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini +++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini @@ -1,6 +1,3 @@ [MediaQueryList-addListener-removeListener.html] [listeners are called when diff --git a/tests/wpt/tests/css/css-viewport/zoom/perspective-small-effective-zoom-crash.html b/tests/wpt/tests/css/css-viewport/zoom/perspective-small-effective-zoom-crash.html new file mode 100644 index 00000000000..ab6f563d19e --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/perspective-small-effective-zoom-crash.html @@ -0,0 +1,12 @@ + + + + diff --git a/tests/wpt/tests/dom/nodes/moveBefore/tentative/select-option-optgroup.html b/tests/wpt/tests/dom/nodes/moveBefore/tentative/select-option-optgroup.html new file mode 100644 index 00000000000..2f310216371 --- /dev/null +++ b/tests/wpt/tests/dom/nodes/moveBefore/tentative/select-option-optgroup.html @@ -0,0 +1,43 @@ + +Selectedness is updated during moveBefore() + + + + + + + diff --git a/tests/wpt/tests/editing/crashtests/selectall-after-enableobjectresizing.html b/tests/wpt/tests/editing/crashtests/selectall-after-enableobjectresizing.html new file mode 100644 index 00000000000..2aa1ffee8c7 --- /dev/null +++ b/tests/wpt/tests/editing/crashtests/selectall-after-enableobjectresizing.html @@ -0,0 +1,18 @@ + + + + + + + +
+ +
+ diff --git a/tests/wpt/tests/editing/data/insertimage.js b/tests/wpt/tests/editing/data/insertimage.js index b18388a7971..b62331e1520 100644 --- a/tests/wpt/tests/editing/data/insertimage.js +++ b/tests/wpt/tests/editing/data/insertimage.js @@ -12,7 +12,7 @@ var browserTests = [ {"insertimage":[false,false,"",false,false,""]}], ["foo[]bar", [["insertimage","/img/lion.svg"]], - "foo{}bar", + "foobar", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo[bar]baz", @@ -27,17 +27,17 @@ var browserTests = [ {"insertimage":[false,false,"",false,false,""]}], ["foo[bar]baz", [["insertimage","/img/lion.svg"]], - "foo{}baz", + "foobaz", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo{bar}baz", [["insertimage","/img/lion.svg"]], - "foo{}baz", + "foobaz", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo{bar}baz", [["insertimage","/img/lion.svg"]], - "foo{}baz", + "foobaz", [true], {"insertimage":[false,false,"",false,false,""]}], ["[foobar]baz", @@ -62,57 +62,57 @@ var browserTests = [ {"stylewithcss":[false,true,"",false,false,""],"insertimage":[false,false,"",false,false,""]}], ["foo[barbaz]", [["insertimage","/img/lion.svg"]], - "foo{}", + "foo", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo{barbaz}", [["insertimage","/img/lion.svg"]], - "foo{}", + "foo", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo[barbaz]quz", [["stylewithcss","true"],["insertimage","/img/lion.svg"]], - "foo{}quz", + "fooquz", [true,true], {"stylewithcss":[false,false,"",false,true,""],"insertimage":[false,false,"",false,false,""]}], ["foo[barbaz]quz", [["stylewithcss","false"],["insertimage","/img/lion.svg"]], - "foo{}quz", + "fooquz", [true,true], {"stylewithcss":[false,true,"",false,false,""],"insertimage":[false,false,"",false,false,""]}], ["foo[bar]baz", [["insertimage","/img/lion.svg"]], - "foo{}baz", + "foobaz", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo{bar}baz", [["insertimage","/img/lion.svg"]], - "foo{}baz", + "foobaz", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo{bar}baz", [["insertimage","/img/lion.svg"]], - "foo{}baz", + "foobaz", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo[bar]baz", [["insertimage","/img/lion.svg"]], - "foo{}baz", + "foobaz", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo{bar}baz", [["insertimage","/img/lion.svg"]], - "foo{}baz", + "foobaz", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo{bar}baz", [["insertimage","/img/lion.svg"]], - "foo{}baz", + "foobaz", [true], {"insertimage":[false,false,"",false,false,""]}], ["foo[barbaz]quz", [["insertimage","/img/lion.svg"]], - "foo{}quz", + "fooquz", [true], {"insertimage":[false,false,"",false,false,""]}], ["

foo

[bar]

baz

", @@ -355,4 +355,32 @@ var browserTests = [ "foo{}bar", [true], {"insertimage":[false,false,"",false,false,""]}], +["
{}
", + [["insertimage","/img/lion.svg"]], + ["
", + "

"], + [true], + {}], +["
{}
", + [["insertimage","/img/lion.svg"]], + ["
", + "

"], + [true], + {}], +["
{}
", + [["insertimage","/img/lion.svg"]], + ["
", + "

"], + [true], + {}], +["
A[]B
", + [["insertimage","/img/lion.svg"]], + "
AB
", + [true], + {}], +["
A[]B
", + [["insertimage","/img/lion.svg"]], + "
AB
", + [true], + {}], ] diff --git a/tests/wpt/tests/editing/plaintext-only/delete-around-linebreak-or-block-boundary.html b/tests/wpt/tests/editing/plaintext-only/delete-around-linebreak-or-block-boundary.html new file mode 100644 index 00000000000..eb28ffa336f --- /dev/null +++ b/tests/wpt/tests/editing/plaintext-only/delete-around-linebreak-or-block-boundary.html @@ -0,0 +1,171 @@ + + + + + + + + + +Making block empty or joining paragraphs in contenteditable=plaintext-only should work as same as contenteditable=true + + + + + + +
+
+ + diff --git a/tests/wpt/tests/editing/plaintext-only/delete-part-of-white-spaces.html b/tests/wpt/tests/editing/plaintext-only/delete-part-of-white-spaces.html new file mode 100644 index 00000000000..bc12808ec3c --- /dev/null +++ b/tests/wpt/tests/editing/plaintext-only/delete-part-of-white-spaces.html @@ -0,0 +1,67 @@ + + + + + + + +Deleting a part of multiple white-spaces when white-space style preserves them + + + + + + +
+ + diff --git a/tests/wpt/tests/editing/plaintext-only/forwardDelete-around-linebreak-or-block-boundary.html b/tests/wpt/tests/editing/plaintext-only/forwardDelete-around-linebreak-or-block-boundary.html new file mode 100644 index 00000000000..bec13189f38 --- /dev/null +++ b/tests/wpt/tests/editing/plaintext-only/forwardDelete-around-linebreak-or-block-boundary.html @@ -0,0 +1,171 @@ + + + + + + + + + +Making block empty or joining paragraphs in contenteditable=plaintext-only should work as same as contenteditable=true + + + + + + +
+
+ + diff --git a/tests/wpt/tests/editing/plaintext-only/forwardDelete-part-of-white-spaces.html b/tests/wpt/tests/editing/plaintext-only/forwardDelete-part-of-white-spaces.html new file mode 100644 index 00000000000..80953dd9524 --- /dev/null +++ b/tests/wpt/tests/editing/plaintext-only/forwardDelete-part-of-white-spaces.html @@ -0,0 +1,67 @@ + + + + + + + +Forward-deleting a part of multiple white-spaces when white-space style preserves them + + + + + + +
+ + diff --git a/tests/wpt/tests/editing/plaintext-only/insertHTML.html b/tests/wpt/tests/editing/plaintext-only/insertHTML.html index b0577c45a5c..00bd0df1d52 100644 --- a/tests/wpt/tests/editing/plaintext-only/insertHTML.html +++ b/tests/wpt/tests/editing/plaintext-only/insertHTML.html @@ -22,7 +22,7 @@ const collapseWhiteSpaces = whiteSpace == "normal" || whiteSpace == "pre-line"; addEventListener("load", () => { const editingHost = document.createElement("div"); editingHost.style.whiteSpace = whiteSpace; - editingHost.contentEditable = "plaintext-only"; + editingHost.setAttribute("contenteditable", "plaintext-only"); document.body.appendChild(editingHost); editingHost.focus(); editingHost.getBoundingClientRect(); diff --git a/tests/wpt/tests/editing/plaintext-only/insertLineBreak.html b/tests/wpt/tests/editing/plaintext-only/insertLineBreak.html index 564eb16605c..73ee625dd62 100644 --- a/tests/wpt/tests/editing/plaintext-only/insertLineBreak.html +++ b/tests/wpt/tests/editing/plaintext-only/insertLineBreak.html @@ -28,7 +28,7 @@ const isSafari = navigator.platform.includes("Mac") && addEventListener("load", () => { const editingHost = document.createElement("div"); editingHost.style.whiteSpace = whiteSpace; - editingHost.contentEditable = "plaintext-only"; + editingHost.setAttribute("contenteditable", "plaintext-only"); document.body.appendChild(editingHost); editingHost.focus(); editingHost.getBoundingClientRect(); diff --git a/tests/wpt/tests/editing/plaintext-only/insertParagraph.html b/tests/wpt/tests/editing/plaintext-only/insertParagraph.html index 2841fdb4f31..429da8d134f 100644 --- a/tests/wpt/tests/editing/plaintext-only/insertParagraph.html +++ b/tests/wpt/tests/editing/plaintext-only/insertParagraph.html @@ -21,7 +21,7 @@ const useBR = whiteSpace == "normal"; addEventListener("load", () => { const editingHost = document.createElement("div"); editingHost.style.whiteSpace = whiteSpace; - editingHost.contentEditable = "plaintext-only"; + editingHost.setAttribute("contenteditable", "plaintext-only"); document.body.appendChild(editingHost); editingHost.focus(); editingHost.getBoundingClientRect(); diff --git a/tests/wpt/tests/editing/plaintext-only/insertText.html b/tests/wpt/tests/editing/plaintext-only/insertText.html new file mode 100644 index 00000000000..9045e04d368 --- /dev/null +++ b/tests/wpt/tests/editing/plaintext-only/insertText.html @@ -0,0 +1,271 @@ + + + + + + + + + +Inserting text in plaintext-only + + + + + + + + + + diff --git a/tests/wpt/tests/editing/plaintext-only/paste.https.html b/tests/wpt/tests/editing/plaintext-only/paste.https.html index 611c39f8bf3..9081028732a 100644 --- a/tests/wpt/tests/editing/plaintext-only/paste.https.html +++ b/tests/wpt/tests/editing/plaintext-only/paste.https.html @@ -26,7 +26,7 @@ addEventListener("load", () => { document.body.appendChild(placeholderForCopy); const editingHost = document.createElement("div"); editingHost.style.whiteSpace = whiteSpace; - editingHost.contentEditable = "plaintext-only"; + editingHost.setAttribute("contenteditable", "plaintext-only"); document.body.appendChild(editingHost); editingHost.focus(); editingHost.getBoundingClientRect(); diff --git a/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-auto-selected-flag.tentative.https.html b/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-auto-selected-flag.tentative.https.html index 786c63ca5e4..160dd6f2839 100644 --- a/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-auto-selected-flag.tentative.https.html +++ b/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-auto-selected-flag.tentative.https.html @@ -1,5 +1,5 @@ -Federated Credential Management API Button Mode auto selected flag tests. +Federated Credential Management API Active Mode auto selected flag tests. @@ -14,7 +14,7 @@ import {request_options_with_mediation_optional, fedcm_test(async t => { let test_options = request_options_with_mediation_optional("manifest_with_auto_selected_flag.json"); - test_options.identity.mode = "button"; + test_options.identity.mode = "active"; return test_driver.bless('initiate FedCM request', async function() { await select_manifest(t, test_options); @@ -29,6 +29,6 @@ fedcm_test(async t => { assert_equals(cred.token, "is_auto_selected=true"); assert_equals(cred.isAutoSelected, true); }); -}, "Test that the auto selected flag can be true in button mode."); +}, "Test that the auto selected flag can be true in active mode."); diff --git a/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-basics.tentative.https.html b/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-basics.tentative.https.html index 918f7243210..41967e389ec 100644 --- a/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-basics.tentative.https.html +++ b/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-basics.tentative.https.html @@ -1,5 +1,5 @@ -Federated Credential Management API Button Mode basic tests. +Federated Credential Management API Active Mode basic tests. @@ -14,26 +14,26 @@ import {request_options_with_mediation_required, fedcm_test(async t => { let test_options = request_options_with_mediation_required(); - test_options.identity.mode = "button"; + test_options.identity.mode = "active"; await select_manifest(t, test_options); let result = navigator.credentials.get(test_options); return promise_rejects_dom(t, 'NetworkError', result); -}, "Test that the button mode without user activation will fail."); +}, "Test that the active mode without user activation will fail."); fedcm_test(async t => { let test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); - test_options.identity.mode = "button"; + test_options.identity.mode = "active"; return test_driver.bless('initiate FedCM request', async function() { let cred = await fedcm_get_and_select_first_account(t, test_options); - assert_equals(cred.token, "mode=button"); + assert_equals(cred.token, "mode=active"); }); -}, "Test that the button mode succeeds with user activation."); +}, "Test that the active mode succeeds with user activation."); fedcm_test(async t => { let test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); - test_options.identity.mode = "button"; + test_options.identity.mode = "active"; test_options.mediation = "silent"; return test_driver.bless('initiate FedCM request', async function() { @@ -41,5 +41,5 @@ fedcm_test(async t => { let rej = promise_rejects_dom(t, 'NotSupportedError', cred); await rej; }); -}, "Test that the mediation:silent is not supported in button mode."); +}, "Test that the mediation:silent is not supported in active mode."); diff --git a/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-priority.tentative.https.html b/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-priority.tentative.https.html index b71e84db47e..c95b89c0fd4 100644 --- a/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-priority.tentative.https.html +++ b/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-button-mode-priority.tentative.https.html @@ -1,5 +1,5 @@ -Federated Credential Management API Button Mode priority tests. +Federated Credential Management API Active Mode priority tests. @@ -12,62 +12,62 @@ import {request_options_with_mediation_required, fedcm_get_and_select_first_account} from '../support/fedcm-helper.sub.js'; fedcm_test(async t => { - let widget_test_options = request_options_with_mediation_required(); - let button_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); - button_test_options.identity.mode = "button"; + let passive_test_options = request_options_with_mediation_required(); + let active_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); + active_test_options.identity.mode = "active"; return test_driver.bless('initiate FedCM request', async function() { - let first_cred = await fedcm_get_and_select_first_account(t, button_test_options); - assert_equals(first_cred.token, "mode=button"); - let second_cred = await fedcm_get_and_select_first_account(t, widget_test_options); + let first_cred = await fedcm_get_and_select_first_account(t, active_test_options); + assert_equals(first_cred.token, "mode=active"); + let second_cred = await fedcm_get_and_select_first_account(t, passive_test_options); assert_equals(second_cred.token, "token"); }); -}, "Test that the widget mode can succeed after the button mode."); +}, "Test that the passive mode can succeed after the active mode."); fedcm_test(async t => { - let widget_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); - let button_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); - button_test_options.identity.mode = "button"; + let passive_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); + let active_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); + active_test_options.identity.mode = "active"; - let first_cred = navigator.credentials.get(widget_test_options); + let first_cred = navigator.credentials.get(passive_test_options); let rej = promise_rejects_dom(t, 'NetworkError', first_cred); return test_driver.bless('initiate FedCM request', async function() { - let second_cred = await fedcm_get_and_select_first_account(t, button_test_options); - assert_equals(second_cred.token, "mode=button"); + let second_cred = await fedcm_get_and_select_first_account(t, active_test_options); + assert_equals(second_cred.token, "mode=active"); await rej; }); - }, "Test that the button mode can replace widget mode."); + }, "Test that the active mode can replace passive mode."); fedcm_test(async t => { - let button_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); - button_test_options.identity.mode = "button"; + let active_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); + active_test_options.identity.mode = "active"; return test_driver.bless('initiate FedCM request', async function() { - let first_cred = fedcm_get_and_select_first_account(t, button_test_options); - let second_cred = navigator.credentials.get(button_test_options); + let first_cred = fedcm_get_and_select_first_account(t, active_test_options); + let second_cred = navigator.credentials.get(active_test_options); let rej = promise_rejects_dom(t, 'NotAllowedError', second_cred); let cred = await first_cred; - assert_equals(cred.token, "mode=button"); + assert_equals(cred.token, "mode=active"); await rej; }); -}, "Test that the button mode cannot replace button mode."); +}, "Test that the active mode cannot replace active mode."); fedcm_test(async t => { - let widget_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); - let button_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); - button_test_options.identity.mode = "button"; + let passive_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); + let active_test_options = request_options_with_mediation_required("manifest_with_rp_mode.json"); + active_test_options.identity.mode = "active"; return test_driver.bless('initiate FedCM request', async function() { - let first_cred = fedcm_get_and_select_first_account(t, button_test_options); - let second_cred = navigator.credentials.get(widget_test_options); + let first_cred = fedcm_get_and_select_first_account(t, active_test_options); + let second_cred = navigator.credentials.get(passive_test_options); let rej = promise_rejects_dom(t, 'NotAllowedError', second_cred); let cred = await first_cred; - assert_equals(cred.token, "mode=button"); + assert_equals(cred.token, "mode=active"); await rej; }); -}, "Test that the widget mode cannot replace button mode."); +}, "Test that the passive mode cannot replace active mode."); diff --git a/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-use-other-account-button-flow.tentative.https.html b/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-use-other-account-button-flow.tentative.https.html index 7a3f266b24b..33cfd32e5af 100644 --- a/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-use-other-account-button-flow.tentative.https.html +++ b/tests/wpt/tests/fedcm/fedcm-button-and-other-account/fedcm-use-other-account-button-flow.tentative.https.html @@ -26,7 +26,7 @@ fedcm_test(async t => { let test_options = request_options_with_mediation_required("manifest_with_variable_accounts.json"); - test_options.identity.mode = "button"; + test_options.identity.mode = "active"; await select_manifest(t, test_options); // Trigger FedCM and wait for the initial dialog. @@ -50,7 +50,7 @@ fedcm_test(async t => { await window.test_driver.select_fedcm_account(0); const cred = await cred_promise; assert_equals(cred.token, "account_id=jane_doe"); -}, 'Test that the "Use Other Account" button works correctly.'); +}, 'Test that the "Use Other Account" active works correctly.'); fedcm_test(async t => { @@ -58,7 +58,7 @@ fedcm_test(async t => { let test_options = request_options_with_mediation_required("manifest_with_variable_accounts.json"); - test_options.identity.mode = "button"; + test_options.identity.mode = "active"; await select_manifest(t, test_options); // Trigger FedCM and wait for the initial dialog. @@ -80,6 +80,6 @@ fedcm_test(async t => { await window.test_driver.select_fedcm_account(0); const cred = await cred_promise; assert_equals(cred.token, "account_id=1234"); -}, 'Test that the "Use Other Account" button works correctly when accounts do not change.'); +}, 'Test that the "Use Other Account" active works correctly when accounts do not change.'); diff --git a/tests/wpt/tests/fedcm/support/manifest_with_variable_accounts.json b/tests/wpt/tests/fedcm/support/manifest_with_variable_accounts.json index 9e4af250045..b3161e5f286 100644 --- a/tests/wpt/tests/fedcm/support/manifest_with_variable_accounts.json +++ b/tests/wpt/tests/fedcm/support/manifest_with_variable_accounts.json @@ -4,10 +4,10 @@ "id_assertion_endpoint": "token_with_account_id.py", "login_url": "login.html", "modes": { - "button": { + "active": { "supports_use_other_account": true }, - "widget": { + "passive": { "supports_use_other_account": true } } diff --git a/tests/wpt/tests/fenced-frame/create-credential.https.html b/tests/wpt/tests/fenced-frame/create-credential.https.html index 15f0558e521..65884b27143 100644 --- a/tests/wpt/tests/fenced-frame/create-credential.https.html +++ b/tests/wpt/tests/fenced-frame/create-credential.https.html @@ -3,23 +3,28 @@ + + + diff --git a/tests/wpt/tests/fenced-frame/resources/create-credential-inner.https.html b/tests/wpt/tests/fenced-frame/resources/create-credential-inner.https.html index 5725177f217..d51dab950f8 100644 --- a/tests/wpt/tests/fenced-frame/resources/create-credential-inner.https.html +++ b/tests/wpt/tests/fenced-frame/resources/create-credential-inner.https.html @@ -1,8 +1,5 @@ - - - Fenced frame content to report the result of navigator.credentials.create @@ -13,26 +10,19 @@ function base_path() { return location.pathname.replace(/\/[^\/]*$/, '/'); } -standardSetup(function() { - 'use strict'; - async function init() { - // This file is meant to be navigated to from a element. It - // reports back to the page hosting the whether or not - // `navigator.credentials.create` is allowed. - const [key] = parseKeylist(); +// This file is meant to be navigated to from a element. It +// reports back to the page hosting the whether or not +// `navigator.credentials.create` is allowed. +const [key] = parseKeylist(); - // Report whether or not `credentials.create` is allowed. - createCredential().then( - () => { - writeValueToServer(key, 'createCredential passed'); - }, - () => { - writeValueToServer(key, 'createCredential failed'); - }, - ); - } - - init(); -}); +// Report whether or not `credentials.create` is allowed. +createCredential().then( + () => { + writeValueToServer(key, 'createCredential passed'); + }, + () => { + writeValueToServer(key, 'createCredential failed'); + }, +); diff --git a/tests/wpt/tests/fledge/tentative/auction-config.https.window.js b/tests/wpt/tests/fledge/tentative/auction-config.https.window.js index fc1441a8743..1b2eba36169 100644 --- a/tests/wpt/tests/fledge/tentative/auction-config.https.window.js +++ b/tests/wpt/tests/fledge/tentative/auction-config.https.window.js @@ -475,10 +475,7 @@ makeTest({ makeTest({ name: 'perBuyerCurrencies not convertible to dictionary', expect: EXPECT_PROMISE_ERROR, - // Because this is not convertible by IDL to the proper dictionary type, this - // will immediately be converted to a rejected promise inside of the - // runBasicFledgeAuction() invocation, and that await will handle the - // rejection. Therefore, no expectPromiseError. + expectPromiseError: EXPECT_EXCEPTION(TypeError), auctionConfigOverrides: {perBuyerCurrencies: 123} }); diff --git a/tests/wpt/tests/fledge/tentative/server-response.https.window.js b/tests/wpt/tests/fledge/tentative/server-response.https.window.js index adc079f015a..1d272fb59a8 100644 --- a/tests/wpt/tests/fledge/tentative/server-response.https.window.js +++ b/tests/wpt/tests/fledge/tentative/server-response.https.window.js @@ -670,10 +670,16 @@ subsetTest(promise_test, async test => { (ig, uuid) => { ig.ads[0].renderURL = createRenderURL(uuid, ` const componentAds = window.fence.getNestedConfigs(); - for (let config of componentAds) { + // Limit the number of fenced frames we try to load at once, since loading too many + // completely breaks some Chrome test set ups, and we only really care about 3 of them + // anyway. + // + // See https://crbug.com/370533823 for more context. + const limit = 5; + for (var i = 0; i < Math.min(limit, componentAds.length); ++i) { let fencedFrame = document.createElement("fencedframe"); fencedFrame.mode = "opaque-ads"; - fencedFrame.config = config; + fencedFrame.config = componentAds[i]; document.body.appendChild(fencedFrame); }`); ig.adComponents = [ diff --git a/tests/wpt/tests/html/browsers/browsing-the-web/navigating-across-documents/resources/unknown-protocol-reload-crash-frame.html b/tests/wpt/tests/html/browsers/browsing-the-web/navigating-across-documents/resources/unknown-protocol-reload-crash-frame.html new file mode 100644 index 00000000000..68fd69b03f0 --- /dev/null +++ b/tests/wpt/tests/html/browsers/browsing-the-web/navigating-across-documents/resources/unknown-protocol-reload-crash-frame.html @@ -0,0 +1,15 @@ + + diff --git a/tests/wpt/tests/html/browsers/browsing-the-web/navigating-across-documents/unknown-protocol-reload-crash.html b/tests/wpt/tests/html/browsers/browsing-the-web/navigating-across-documents/unknown-protocol-reload-crash.html new file mode 100644 index 00000000000..b274e570693 --- /dev/null +++ b/tests/wpt/tests/html/browsers/browsing-the-web/navigating-across-documents/unknown-protocol-reload-crash.html @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/tests/wpt/tests/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha-expected.html b/tests/wpt/tests/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha-expected.html new file mode 100644 index 00000000000..bec81b2422a --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha-expected.html @@ -0,0 +1,18 @@ + + + +Canvas test: 2d.filter.drop-shadow-globalAlpha +

2d.filter.drop-shadow-globalAlpha

+

Tests the context drop-shadow filter with a globalAlpha

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha.html b/tests/wpt/tests/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha.html new file mode 100644 index 00000000000..2a445375086 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/filters/2d.filter.drop-shadow-globalAlpha.html @@ -0,0 +1,19 @@ + + + + +Canvas test: 2d.filter.drop-shadow-globalAlpha +

2d.filter.drop-shadow-globalAlpha

+

Tests the context drop-shadow filter with a globalAlpha

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.isotropic.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.isotropic.tentative-expected.html index ecd88a4acf9..81ddb3ffb5c 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.isotropic.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.isotropic -

2d.layer.anisotropic-blur.isotropic

+Canvas test: 2d.layer.anisotropic-blur.isotropic.tentative +

2d.layer.anisotropic-blur.isotropic.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.isotropic -

2d.layer.anisotropic-blur.isotropic

+ +Canvas test: 2d.layer.anisotropic-blur.isotropic.tentative +

2d.layer.anisotropic-blur.isotropic.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-x-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-x.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-x-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-x.tentative-expected.html index fff719c678e..3ba431c2c65 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-x-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-x.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.mostly-x -

2d.layer.anisotropic-blur.mostly-x

+Canvas test: 2d.layer.anisotropic-blur.mostly-x.tentative +

2d.layer.anisotropic-blur.mostly-x.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.mostly-x -

2d.layer.anisotropic-blur.mostly-x

+ +Canvas test: 2d.layer.anisotropic-blur.mostly-x.tentative +

2d.layer.anisotropic-blur.mostly-x.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-y.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-y.tentative-expected.html index a379590a811..0e21f8c086d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-y.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.mostly-y -

2d.layer.anisotropic-blur.mostly-y

+Canvas test: 2d.layer.anisotropic-blur.mostly-y.tentative +

2d.layer.anisotropic-blur.mostly-y.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.mostly-y -

2d.layer.anisotropic-blur.mostly-y

+ +Canvas test: 2d.layer.anisotropic-blur.mostly-y.tentative +

2d.layer.anisotropic-blur.mostly-y.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.x-only.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.x-only.tentative-expected.html index 5e6a16effbd..d3e70ffe762 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.x-only.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.x-only -

2d.layer.anisotropic-blur.x-only

+Canvas test: 2d.layer.anisotropic-blur.x-only.tentative +

2d.layer.anisotropic-blur.x-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.x-only -

2d.layer.anisotropic-blur.x-only

+ +Canvas test: 2d.layer.anisotropic-blur.x-only.tentative +

2d.layer.anisotropic-blur.x-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.y-only-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.y-only.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.y-only-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.y-only.tentative-expected.html index 025d0949b50..4847c40a8ff 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.y-only-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.y-only.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.y-only -

2d.layer.anisotropic-blur.y-only

+Canvas test: 2d.layer.anisotropic-blur.y-only.tentative +

2d.layer.anisotropic-blur.y-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.y-only -

2d.layer.anisotropic-blur.y-only

+ +Canvas test: 2d.layer.anisotropic-blur.y-only.tentative +

2d.layer.anisotropic-blur.y-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.beginLayer-options.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.beginLayer-options.tentative.html similarity index 94% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.beginLayer-options.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.beginLayer-options.tentative.html index 62803cf6797..fe9cbb78d99 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.beginLayer-options.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.beginLayer-options.tentative.html @@ -1,14 +1,14 @@ -Canvas test: 2d.layer.beginLayer-options +Canvas test: 2d.layer.beginLayer-options.tentative -

2d.layer.beginLayer-options

+

2d.layer.beginLayer-options.tentative

Checks beginLayer works for different option parameter values

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html similarity index 93% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html index f7a1a7837fc..58a5a77c39e 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping -

2d.layer.blur-from-outside-canvas.no-clipping

+Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.html new file mode 100644 index 00000000000..4742ef50ab7 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.html @@ -0,0 +1,30 @@ + + + + +Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..d02cc44b6cc --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html @@ -0,0 +1,37 @@ + + + +Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.html similarity index 85% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.html index 67bc1873afa..7e2a8f21390 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping -

2d.layer.blur-from-outside-canvas.no-clipping

+ +Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html similarity index 93% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html index 87bed15740c..1a5372c82e5 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping -

2d.layer.blur-from-outside-canvas.with-clipping

+Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.html new file mode 100644 index 00000000000..66f075ffcd2 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.html @@ -0,0 +1,32 @@ + + + + +Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..3b137830da0 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html @@ -0,0 +1,39 @@ + + + +Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.html similarity index 85% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.html index c1084268d5c..33c06dd501b 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping -

2d.layer.blur-from-outside-canvas.with-clipping

+ +Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.ctx-filter-expected.html similarity index 83% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.ctx-filter-expected.html index d18ab55b1fc..f01d09e339f 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.clip-inside-and-outside -

2d.layer.clip-inside-and-outside

+Canvas test: 2d.layer.clip-inside-and-outside.ctx-filter +

2d.layer.clip-inside-and-outside.ctx-filter

Check clipping set inside and outside the layer

FAIL (fallback content)

@@ -24,7 +24,8 @@ const canvas3 = new OffscreenCanvas(200, 200); const ctx3 = canvas3.getContext('2d'); - ctx3.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + ctx3.filter = 'blur(12px)'; + ctx3.beginLayer(); ctx3.drawImage(canvas2, 0, 0); ctx3.endLayer(); diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.ctx-filter.html new file mode 100644 index 00000000000..a26f391333a --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.ctx-filter.html @@ -0,0 +1,29 @@ + + + + +Canvas test: 2d.layer.clip-inside-and-outside.ctx-filter +

2d.layer.clip-inside-and-outside.ctx-filter

+

Check clipping set inside and outside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..e6832307139 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html @@ -0,0 +1,36 @@ + + + +Canvas test: 2d.layer.clip-inside-and-outside.layer-filter.tentative +

2d.layer.clip-inside-and-outside.layer-filter.tentative

+

Check clipping set inside and outside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.html similarity index 73% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.html index 529c39f0530..def8022a96f 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.clip-inside-and-outside -

2d.layer.clip-inside-and-outside

+ +Canvas test: 2d.layer.clip-inside-and-outside.layer-filter.tentative +

2d.layer.clip-inside-and-outside.layer-filter.tentative

Check clipping set inside and outside the layer

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.ctx-filter-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.ctx-filter-expected.html index fcf0571c3e7..1372c95b374 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.clip-inside -

2d.layer.clip-inside

+Canvas test: 2d.layer.clip-inside.ctx-filter +

2d.layer.clip-inside.ctx-filter

Check clipping set inside the layer

FAIL (fallback content)

@@ -21,7 +21,8 @@ ctx2.fillStyle = 'blue'; ctx2.fillRect(10, 10, 80, 80); - ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + ctx.filter = 'blur(12px)'; + ctx.beginLayer(); ctx.drawImage(canvas2, 0, 0); ctx.endLayer(); diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.ctx-filter.html new file mode 100644 index 00000000000..c787be5771a --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.ctx-filter.html @@ -0,0 +1,25 @@ + + + + +Canvas test: 2d.layer.clip-inside.ctx-filter +

2d.layer.clip-inside.ctx-filter

+

Check clipping set inside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..d63982ffa4e --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.layer-filter.tentative-expected.html @@ -0,0 +1,28 @@ + + + +Canvas test: 2d.layer.clip-inside.layer-filter.tentative +

2d.layer.clip-inside.layer-filter.tentative

+

Check clipping set inside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.layer-filter.tentative.html similarity index 74% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.layer-filter.tentative.html index 69847c50a1c..cdbbce36338 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.clip-inside -

2d.layer.clip-inside

+ +Canvas test: 2d.layer.clip-inside.layer-filter.tentative +

2d.layer.clip-inside.layer-filter.tentative

Check clipping set inside the layer

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.ctx-filter-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.ctx-filter-expected.html index f81a24ddcfb..3d0bd79c403 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.clip-outside -

2d.layer.clip-outside

+Canvas test: 2d.layer.clip-outside.ctx-filter +

2d.layer.clip-outside.ctx-filter

Check clipping set outside the layer

FAIL (fallback content)

@@ -14,7 +14,8 @@ const canvas2 = new OffscreenCanvas(200, 200); const ctx2 = canvas2.getContext('2d'); - ctx2.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + ctx2.filter = 'blur(12px)'; + ctx2.beginLayer(); ctx2.fillStyle = 'blue'; ctx2.fillRect(10, 10, 80, 80); ctx2.endLayer(); diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.ctx-filter.html new file mode 100644 index 00000000000..f048e829181 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.ctx-filter.html @@ -0,0 +1,24 @@ + + + + +Canvas test: 2d.layer.clip-outside.ctx-filter +

2d.layer.clip-outside.ctx-filter

+

Check clipping set outside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..7d64bc64008 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.layer-filter.tentative-expected.html @@ -0,0 +1,28 @@ + + + +Canvas test: 2d.layer.clip-outside.layer-filter.tentative +

2d.layer.clip-outside.layer-filter.tentative

+

Check clipping set outside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.layer-filter.tentative.html similarity index 74% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.layer-filter.tentative.html index a9a22d42065..35a527834fd 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-outside.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.clip-outside -

2d.layer.clip-outside

+ +Canvas test: 2d.layer.clip-outside.layer-filter.tentative +

2d.layer.clip-outside.layer-filter.tentative

Check clipping set outside the layer

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur-and-shadow-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur-and-shadow.tentative-expected.html similarity index 82% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur-and-shadow-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur-and-shadow.tentative-expected.html index 77b45eb814f..43a71d4d6a3 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur-and-shadow-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur-and-shadow.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.css-filters.blur-and-shadow -

2d.layer.css-filters.blur-and-shadow

+Canvas test: 2d.layer.css-filters.blur-and-shadow.tentative +

2d.layer.css-filters.blur-and-shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

- -Canvas test: 2d.layer.css-filters.blur-and-shadow -

2d.layer.css-filters.blur-and-shadow

+ +Canvas test: 2d.layer.css-filters.blur-and-shadow.tentative +

2d.layer.css-filters.blur-and-shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur.tentative-expected.html similarity index 83% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur.tentative-expected.html index 457e05db390..7d907bc527c 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.css-filters.blur -

2d.layer.css-filters.blur

+Canvas test: 2d.layer.css-filters.blur.tentative +

2d.layer.css-filters.blur.tentative

Checks that beginLayer works with a CSS filter string as input.

- -Canvas test: 2d.layer.css-filters.blur -

2d.layer.css-filters.blur

+ +Canvas test: 2d.layer.css-filters.blur.tentative +

2d.layer.css-filters.blur.tentative

Checks that beginLayer works with a CSS filter string as input.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.shadow-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.shadow.tentative-expected.html similarity index 83% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.shadow-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.shadow.tentative-expected.html index acbae0fcb8f..5142c2f4f6e 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.shadow-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.shadow.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.css-filters.shadow -

2d.layer.css-filters.shadow

+Canvas test: 2d.layer.css-filters.shadow.tentative +

2d.layer.css-filters.shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

- -Canvas test: 2d.layer.css-filters.shadow -

2d.layer.css-filters.shadow

+ +Canvas test: 2d.layer.css-filters.shadow.tentative +

2d.layer.css-filters.shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.ctm.filter-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.ctm.layer-filter.tentative-expected.html similarity index 87% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.ctm.filter-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.ctm.layer-filter.tentative-expected.html index 493a2cd1d99..f1f564f2479 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.ctm.filter-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.ctm.layer-filter.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.ctm.filter -

2d.layer.ctm.filter

+Canvas test: 2d.layer.ctm.layer-filter.tentative +

2d.layer.ctm.layer-filter.tentative

Checks that parent transforms affect layer filters.

- -Canvas test: 2d.layer.ctm.filter -

2d.layer.ctm.filter

+ +Canvas test: 2d.layer.ctm.layer-filter.tentative +

2d.layer.ctm.layer-filter.tentative

Checks that parent transforms affect layer filters.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.ctx-filter-expected.html similarity index 80% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.ctx-filter-expected.html index 4a4aa93d9f2..0d06cdc45ed 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.drawImage -

2d.layer.drawImage

+Canvas test: 2d.layer.drawImage.ctx-filter +

2d.layer.drawImage.ctx-filter

Checks that drawImage writes the image to the layer and not the parent directly.

FAIL (fallback content)

@@ -14,8 +14,8 @@ ctx.fillStyle = 'skyblue'; ctx.fillRect(0, 0, 100, 100); - ctx.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: -10, - stdDeviation: 0, floodColor: 'navy'}}); + ctx.filter = 'drop-shadow(-10px -10px 0px navy)'; + ctx.beginLayer(); ctx.fillStyle = 'maroon'; ctx.fillRect(20, 20, 50, 50); diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.ctx-filter.html similarity index 78% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.ctx-filter.html index 6ae4ee8ac9c..52d2d211e4b 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.ctx-filter.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.drawImage -

2d.layer.drawImage

+ +Canvas test: 2d.layer.drawImage.ctx-filter +

2d.layer.drawImage.ctx-filter

Checks that drawImage writes the image to the layer and not the parent directly.

FAIL (fallback content)

@@ -15,8 +15,8 @@ ctx.fillStyle = 'skyblue'; ctx.fillRect(0, 0, 100, 100); - ctx.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: -10, - stdDeviation: 0, floodColor: 'navy'}}); + ctx.filter = 'drop-shadow(-10px -10px 0px navy)'; + ctx.beginLayer(); ctx.fillStyle = 'maroon'; ctx.fillRect(20, 20, 50, 50); diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..589f172ba5c --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.layer-filter.tentative-expected.html @@ -0,0 +1,30 @@ + + + +Canvas test: 2d.layer.drawImage.layer-filter.tentative +

2d.layer.drawImage.layer-filter.tentative

+

Checks that drawImage writes the image to the layer and not the parent directly.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.layer-filter.tentative.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.layer-filter.tentative.html new file mode 100644 index 00000000000..a0f2df478d5 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage.layer-filter.tentative.html @@ -0,0 +1,34 @@ + + + + +Canvas test: 2d.layer.drawImage.layer-filter.tentative +

2d.layer.drawImage.layer-filter.tentative

+

Checks that drawImage writes the image to the layer and not the parent directly.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.exceptions-are-no-op.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.exceptions-are-no-op.tentative.html similarity index 91% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.exceptions-are-no-op.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.exceptions-are-no-op.tentative.html index 2c30c7b0f3c..c8c7e97f87d 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.exceptions-are-no-op.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.exceptions-are-no-op.tentative.html @@ -1,14 +1,14 @@ -Canvas test: 2d.layer.exceptions-are-no-op +Canvas test: 2d.layer.exceptions-are-no-op.tentative -

2d.layer.exceptions-are-no-op

+

2d.layer.exceptions-are-no-op.tentative

Checks that the context state is left unchanged if beginLayer throws.

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative-expected.html similarity index 83% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative-expected.html index f5aebdd832a..7363d90a800 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative-expected.html @@ -2,8 +2,8 @@ -Canvas test: 2d.layer.flush-on-frame-presentation -

2d.layer.flush-on-frame-presentation

+Canvas test: 2d.layer.flush-on-frame-presentation.filtered_layer.tentative +

2d.layer.flush-on-frame-presentation.filtered_layer.tentative

Check that layers state stack is flushed and rebuilt on frame renders.

FAIL (fallback content)

@@ -15,6 +15,7 @@ ctx.fillStyle = 'purple'; ctx.fillRect(60, 60, 75, 50); ctx.globalAlpha = 0.5; + ctx.filter = 'blur(1px)'; ctx.beginLayer({filter: {name: 'dropShadow', dx: -2, dy: 2}}); ctx.fillStyle = 'purple'; diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative.html new file mode 100644 index 00000000000..f52cfd5b3c7 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.filtered_layer.tentative.html @@ -0,0 +1,37 @@ + + + + + +Canvas test: 2d.layer.flush-on-frame-presentation.filtered_layer.tentative +

2d.layer.flush-on-frame-presentation.filtered_layer.tentative

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + \ No newline at end of file diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer-expected.html new file mode 100644 index 00000000000..01eaf0680cd --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer-expected.html @@ -0,0 +1,35 @@ + + + + +Canvas test: 2d.layer.flush-on-frame-presentation.plain_layer +

2d.layer.flush-on-frame-presentation.plain_layer

+

Check that layers state stack is flushed and rebuilt on frame renders.

+ +

FAIL (fallback content)

+
+ + \ No newline at end of file diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer.html similarity index 78% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer.html index 85099e046b4..71a5b160cc4 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.flush-on-frame-presentation.plain_layer.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.flush-on-frame-presentation -

2d.layer.flush-on-frame-presentation

+ +Canvas test: 2d.layer.flush-on-frame-presentation.plain_layer +

2d.layer.flush-on-frame-presentation.plain_layer

Check that layers state stack is flushed and rebuilt on frame renders.

FAIL (fallback content)

@@ -16,8 +16,9 @@ ctx.fillStyle = 'purple'; ctx.fillRect(60, 60, 75, 50); ctx.globalAlpha = 0.5; + ctx.filter = 'blur(1px)'; - ctx.beginLayer({filter: {name: 'dropShadow', dx: -2, dy: 2}}); + ctx.beginLayer(); ctx.fillRect(40, 40, 75, 50); ctx.fillStyle = 'grey'; ctx.fillRect(50, 50, 75, 50); diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html similarity index 99% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html index af2a55af7ef..dae68b3ad73 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform -

2d.layer.global-states.filter.ctx-filter.no-transform

+Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform.tentative +

2d.layer.global-states.filter.ctx-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform -

2d.layer.global-states.filter.ctx-filter.no-transform

+ +Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform.tentative +

2d.layer.global-states.filter.ctx-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

-Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation -

2d.layer.global-states.filter.ctx-filter.rotation

+Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation.tentative +

2d.layer.global-states.filter.ctx-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation -

2d.layer.global-states.filter.ctx-filter.rotation

+ +Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation.tentative +

2d.layer.global-states.filter.ctx-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

-Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform -

2d.layer.global-states.filter.no-cxt-filter.no-transform

+Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative +

2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform -

2d.layer.global-states.filter.no-cxt-filter.no-transform

+ +Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative +

2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

-Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation -

2d.layer.global-states.filter.no-cxt-filter.rotation

+Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation.tentative +

2d.layer.global-states.filter.no-cxt-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation -

2d.layer.global-states.filter.no-cxt-filter.rotation

+ +Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation.tentative +

2d.layer.global-states.filter.no-cxt-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

-Canvas test: 2d.layer.nested-filters -

2d.layer.nested-filters

+Canvas test: 2d.layer.nested-filters.tentative +

2d.layer.nested-filters.tentative

Checks that nested layers work properly when both apply filters.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.nested-filters.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.nested-filters.tentative.html similarity index 84% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.nested-filters.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.nested-filters.tentative.html index 8b2afe53a11..885d08730f0 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.nested-filters.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.nested-filters.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.nested-filters -

2d.layer.nested-filters

+ +Canvas test: 2d.layer.nested-filters.tentative +

2d.layer.nested-filters.tentative

Checks that nested layers work properly when both apply filters.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html new file mode 100644 index 00000000000..daa6111f7b5 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html @@ -0,0 +1,16 @@ + + + +Canvas test: 2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative +

2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative

+

Test drawing layers when the transform is not invertible.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html similarity index 88% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html index d3cd08be079..c209f7f12c3 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.non-invertible-matrix.with-render-states-and-filter -

2d.layer.non-invertible-matrix.with-render-states-and-filter

+ +Canvas test: 2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative +

2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative

Test drawing layers when the transform is not invertible.

FAIL (fallback content)

@@ -23,6 +23,7 @@ ctx.shadowOffsetX = 0; ctx.shadowOffsetY = 20; ctx.shadowColor = 'rgba(255, 165, 0, 0.6)'; + ctx.filter = 'blur(10px)'; // Open the layer with a non-invertible matrix. The whole layer will be // non-rasterizable. diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html similarity index 84% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html index ead108a72c4..3841df36ed4 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.non-invertible-matrix.with-render-states-and-filter -

2d.layer.non-invertible-matrix.with-render-states-and-filter

+Canvas test: 2d.layer.non-invertible-matrix.with-render-states.plain-layer +

2d.layer.non-invertible-matrix.with-render-states.plain-layer

Test drawing layers when the transform is not invertible.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.html new file mode 100644 index 00000000000..7af4c035766 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.html @@ -0,0 +1,45 @@ + + + + +Canvas test: 2d.layer.non-invertible-matrix.with-render-states.plain-layer +

2d.layer.non-invertible-matrix.with-render-states.plain-layer

+

Test drawing layers when the transform is not invertible.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter-expected.html similarity index 90% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter-expected.html index 02f73611d61..af704031e29 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.opaque-canvas -

2d.layer.opaque-canvas

+Canvas test: 2d.layer.opaque-canvas.ctx-filter +

2d.layer.opaque-canvas.ctx-filter

Checks that layer blending works inside opaque canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter.html new file mode 100644 index 00000000000..7a3525f489d --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.ctx-filter.html @@ -0,0 +1,35 @@ + + + + +Canvas test: 2d.layer.opaque-canvas.ctx-filter +

2d.layer.opaque-canvas.ctx-filter

+

Checks that layer blending works inside opaque canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..d195882a685 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative-expected.html @@ -0,0 +1,35 @@ + + + +Canvas test: 2d.layer.opaque-canvas.layer-filter.tentative +

2d.layer.opaque-canvas.layer-filter.tentative

+

Checks that layer blending works inside opaque canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative.html similarity index 83% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative.html index d4b8e5c29d4..f7b71ba8f24 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.opaque-canvas -

2d.layer.opaque-canvas

+ +Canvas test: 2d.layer.opaque-canvas.layer-filter.tentative +

2d.layer.opaque-canvas.layer-filter.tentative

Checks that layer blending works inside opaque canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative-expected.html new file mode 100644 index 00000000000..47bf9689e1e --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative-expected.html @@ -0,0 +1,15 @@ + + + +Canvas test: 2d.layer.reset.filtered_layer.tentative +

2d.layer.reset.filtered_layer.tentative

+

Checks that reset discards any pending layers.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative.html similarity index 83% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative.html index d3c005fe068..98548da2e51 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.filtered_layer.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.reset -

2d.layer.reset

+ +Canvas test: 2d.layer.reset.filtered_layer.tentative +

2d.layer.reset.filtered_layer.tentative

Checks that reset discards any pending layers.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.plain_layer-expected.html similarity index 82% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.plain_layer-expected.html index 6f3f82dc98e..c018252c213 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.plain_layer-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.reset -

2d.layer.reset

+Canvas test: 2d.layer.reset.plain_layer +

2d.layer.reset.plain_layer

Checks that reset discards any pending layers.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.plain_layer.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.plain_layer.html new file mode 100644 index 00000000000..434e5a890b6 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset.plain_layer.html @@ -0,0 +1,38 @@ + + + + +Canvas test: 2d.layer.reset.plain_layer +

2d.layer.reset.plain_layer

+

Checks that reset discards any pending layers.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html similarity index 92% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html index 0f15210c17f..522a7716b6e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping

+Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.html new file mode 100644 index 00000000000..42c0bf6169a --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.html @@ -0,0 +1,30 @@ + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..5fe2833afe5 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html @@ -0,0 +1,22 @@ + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.html similarity index 87% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.html index 1fa7e67da7f..83925b4fcb2 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html similarity index 86% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html index 4a5b1ea18a1..2c53a773b80 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance -

2d.layer.shadow-from-outside-canvas.long-distance

+Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html new file mode 100644 index 00000000000..d43c1269201 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html @@ -0,0 +1,28 @@ + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..5f89d012f46 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html @@ -0,0 +1,20 @@ + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html similarity index 83% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html index c033d83e854..83d491f14ba 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance -

2d.layer.shadow-from-outside-canvas.long-distance

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html similarity index 92% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html index 96045c23a51..6aee28f0de9 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping

+Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.html new file mode 100644 index 00000000000..3c30799f758 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.html @@ -0,0 +1,30 @@ + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..f75299dde64 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html @@ -0,0 +1,22 @@ + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.html similarity index 86% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.html index 8235c0867a1..48532dcc192 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html similarity index 85% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-expected.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html index beaa26cd3c8..5ca2ebad391 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-expected.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance -

2d.layer.shadow-from-outside-canvas.short-distance

+Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html new file mode 100644 index 00000000000..8adcc647932 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html @@ -0,0 +1,28 @@ + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..387eb0b5d72 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html @@ -0,0 +1,20 @@ + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html similarity index 83% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.html rename to tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html index c04dd715d41..6c6e5ad344f 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.html +++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance -

2d.layer.shadow-from-outside-canvas.short-distance

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize.html b/tests/wpt/tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize.html index 782c7e130c3..76b1c9d30d2 100644 --- a/tests/wpt/tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize.html +++ b/tests/wpt/tests/html/canvas/element/manual/imagebitmap/canvas-createImageBitmap-resize.html @@ -89,9 +89,9 @@ function testImageBitmap(source) checkCrop(cropLow); checkCrop(cropPixelated); // Brute-force comparison among all bitmaps is too expensive - compareBitmaps(noCropHigh, noCropMedium); + compareBitmaps(noCropMedium, noCropPixelated); compareBitmaps(noCropLow, noCropPixelated); - compareBitmaps(cropHigh, cropMedium); + compareBitmaps(cropMedium, noCropPixelated); compareBitmaps(cropLow, cropPixelated); }); } diff --git a/tests/wpt/tests/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha-expected.html b/tests/wpt/tests/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha-expected.html new file mode 100644 index 00000000000..bec81b2422a --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha-expected.html @@ -0,0 +1,18 @@ + + + +Canvas test: 2d.filter.drop-shadow-globalAlpha +

2d.filter.drop-shadow-globalAlpha

+

Tests the context drop-shadow filter with a globalAlpha

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.html b/tests/wpt/tests/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.html new file mode 100644 index 00000000000..093b44c3d37 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.html @@ -0,0 +1,22 @@ + + + + +Canvas test: 2d.filter.drop-shadow-globalAlpha +

2d.filter.drop-shadow-globalAlpha

+

Tests the context drop-shadow filter with a globalAlpha

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.w.html b/tests/wpt/tests/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.w.html new file mode 100644 index 00000000000..dfec0e19fba --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/filters/2d.filter.drop-shadow-globalAlpha.w.html @@ -0,0 +1,36 @@ + + + + + +Canvas test: 2d.filter.drop-shadow-globalAlpha +

2d.filter.drop-shadow-globalAlpha

+

Tests the context drop-shadow filter with a globalAlpha

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.isotropic-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.isotropic-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative-expected.html index ecd88a4acf9..81ddb3ffb5c 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.isotropic-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.isotropic -

2d.layer.anisotropic-blur.isotropic

+Canvas test: 2d.layer.anisotropic-blur.isotropic.tentative +

2d.layer.anisotropic-blur.isotropic.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.isotropic -

2d.layer.anisotropic-blur.isotropic

+ +Canvas test: 2d.layer.anisotropic-blur.isotropic.tentative +

2d.layer.anisotropic-blur.isotropic.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative.w.html similarity index 84% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative.w.html index 67cdbf81462..b89b6fe2b3e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.anisotropic-blur.isotropic -

2d.layer.anisotropic-blur.isotropic

+ +Canvas test: 2d.layer.anisotropic-blur.isotropic.tentative +

2d.layer.anisotropic-blur.isotropic.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative-expected.html index fff719c678e..3ba431c2c65 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.mostly-x -

2d.layer.anisotropic-blur.mostly-x

+Canvas test: 2d.layer.anisotropic-blur.mostly-x.tentative +

2d.layer.anisotropic-blur.mostly-x.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.mostly-x -

2d.layer.anisotropic-blur.mostly-x

+ +Canvas test: 2d.layer.anisotropic-blur.mostly-x.tentative +

2d.layer.anisotropic-blur.mostly-x.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative.w.html similarity index 85% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative.w.html index 25a767ddb79..8cb0323a475 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.anisotropic-blur.mostly-x -

2d.layer.anisotropic-blur.mostly-x

+ +Canvas test: 2d.layer.anisotropic-blur.mostly-x.tentative +

2d.layer.anisotropic-blur.mostly-x.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-y-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-y-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative-expected.html index a379590a811..0e21f8c086d 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-y-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.mostly-y -

2d.layer.anisotropic-blur.mostly-y

+Canvas test: 2d.layer.anisotropic-blur.mostly-y.tentative +

2d.layer.anisotropic-blur.mostly-y.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.mostly-y -

2d.layer.anisotropic-blur.mostly-y

+ +Canvas test: 2d.layer.anisotropic-blur.mostly-y.tentative +

2d.layer.anisotropic-blur.mostly-y.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative.w.html similarity index 85% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative.w.html index ff0e7e9bc34..465121e1754 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.anisotropic-blur.mostly-y -

2d.layer.anisotropic-blur.mostly-y

+ +Canvas test: 2d.layer.anisotropic-blur.mostly-y.tentative +

2d.layer.anisotropic-blur.mostly-y.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.x-only-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.x-only-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative-expected.html index 5e6a16effbd..d3e70ffe762 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.anisotropic-blur.x-only-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.x-only -

2d.layer.anisotropic-blur.x-only

+Canvas test: 2d.layer.anisotropic-blur.x-only.tentative +

2d.layer.anisotropic-blur.x-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.x-only -

2d.layer.anisotropic-blur.x-only

+ +Canvas test: 2d.layer.anisotropic-blur.x-only.tentative +

2d.layer.anisotropic-blur.x-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative.w.html similarity index 85% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative.w.html index f92606c3f14..632dbac3d53 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.anisotropic-blur.x-only -

2d.layer.anisotropic-blur.x-only

+ +Canvas test: 2d.layer.anisotropic-blur.x-only.tentative +

2d.layer.anisotropic-blur.x-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative-expected.html index 025d0949b50..4847c40a8ff 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.anisotropic-blur.y-only -

2d.layer.anisotropic-blur.y-only

+Canvas test: 2d.layer.anisotropic-blur.y-only.tentative +

2d.layer.anisotropic-blur.y-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

- -Canvas test: 2d.layer.anisotropic-blur.y-only -

2d.layer.anisotropic-blur.y-only

+ +Canvas test: 2d.layer.anisotropic-blur.y-only.tentative +

2d.layer.anisotropic-blur.y-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative.w.html similarity index 85% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative.w.html index 9c4250f95cb..5369a6a134f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.anisotropic-blur.y-only -

2d.layer.anisotropic-blur.y-only

+ +Canvas test: 2d.layer.anisotropic-blur.y-only.tentative +

2d.layer.anisotropic-blur.y-only.tentative

Checks that layers allow gaussian blur with separate X and Y components.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.html similarity index 93% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.html index a4c381e7702..f51e2843b08 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.html @@ -1,12 +1,12 @@ -OffscreenCanvas test: 2d.layer.beginLayer-options +OffscreenCanvas test: 2d.layer.beginLayer-options.tentative -

2d.layer.beginLayer-options

+

2d.layer.beginLayer-options.tentative

Checks beginLayer works for different option parameter values

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.worker.js b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.worker.js similarity index 95% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.worker.js rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.worker.js index 492ac3fcea1..09decf1f32e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.worker.js +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.beginLayer-options.tentative.worker.js @@ -1,5 +1,5 @@ // DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -// OffscreenCanvas test in a worker:2d.layer.beginLayer-options +// OffscreenCanvas test in a worker:2d.layer.beginLayer-options.tentative // Description:Checks beginLayer works for different option parameter values // Note: diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html similarity index 93% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html index f7a1a7837fc..58a5a77c39e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping -

2d.layer.blur-from-outside-canvas.no-clipping

+Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.html new file mode 100644 index 00000000000..a1be866d9e5 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.html @@ -0,0 +1,33 @@ + + + + +Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.w.html new file mode 100644 index 00000000000..9e2bb1f5894 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter.w.html @@ -0,0 +1,47 @@ + + + + + +Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.no-clipping.ctx-filter

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..d02cc44b6cc --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative-expected.html @@ -0,0 +1,37 @@ + + + +Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.html similarity index 86% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.html index fa5d021e8d9..c7055b90915 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping -

2d.layer.blur-from-outside-canvas.no-clipping

+ +Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.w.html similarity index 90% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.w.html index 490779ea165..815ddbb23da 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping -

2d.layer.blur-from-outside-canvas.no-clipping

+ +Canvas test: 2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.no-clipping.layer-filter.tentative

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html similarity index 93% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html index 87bed15740c..1a5372c82e5 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping -

2d.layer.blur-from-outside-canvas.with-clipping

+Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.html new file mode 100644 index 00000000000..9a6c9cbed7c --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.html @@ -0,0 +1,35 @@ + + + + +Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.w.html new file mode 100644 index 00000000000..d93d4fba5ee --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter.w.html @@ -0,0 +1,49 @@ + + + + + +Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter +

2d.layer.blur-from-outside-canvas.with-clipping.ctx-filter

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..3b137830da0 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative-expected.html @@ -0,0 +1,39 @@ + + + +Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative

+

Checks blur leaking inside from drawing outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.html similarity index 87% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.html index 326f71effac..b0198ef63bf 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping -

2d.layer.blur-from-outside-canvas.with-clipping

+ +Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.w.html similarity index 90% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.w.html index 784dde18d1b..d76bcaf3e84 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping -

2d.layer.blur-from-outside-canvas.with-clipping

+ +Canvas test: 2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative +

2d.layer.blur-from-outside-canvas.with-clipping.layer-filter.tentative

Checks blur leaking inside from drawing outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter-expected.html similarity index 83% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter-expected.html index d18ab55b1fc..f01d09e339f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.clip-inside-and-outside -

2d.layer.clip-inside-and-outside

+Canvas test: 2d.layer.clip-inside-and-outside.ctx-filter +

2d.layer.clip-inside-and-outside.ctx-filter

Check clipping set inside and outside the layer

FAIL (fallback content)

@@ -24,7 +24,8 @@ const canvas3 = new OffscreenCanvas(200, 200); const ctx3 = canvas3.getContext('2d'); - ctx3.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + ctx3.filter = 'blur(12px)'; + ctx3.beginLayer(); ctx3.drawImage(canvas2, 0, 0); ctx3.endLayer(); diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter.html new file mode 100644 index 00000000000..a4c83402e0a --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter.html @@ -0,0 +1,32 @@ + + + + +Canvas test: 2d.layer.clip-inside-and-outside.ctx-filter +

2d.layer.clip-inside-and-outside.ctx-filter

+

Check clipping set inside and outside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter.w.html new file mode 100644 index 00000000000..a144f08b87e --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.ctx-filter.w.html @@ -0,0 +1,46 @@ + + + + + +Canvas test: 2d.layer.clip-inside-and-outside.ctx-filter +

2d.layer.clip-inside-and-outside.ctx-filter

+

Check clipping set inside and outside the layer

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..e6832307139 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative-expected.html @@ -0,0 +1,36 @@ + + + +Canvas test: 2d.layer.clip-inside-and-outside.layer-filter.tentative +

2d.layer.clip-inside-and-outside.layer-filter.tentative

+

Check clipping set inside and outside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.html similarity index 76% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.html index 8d7d6f30a83..0b83b609d61 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.clip-inside-and-outside -

2d.layer.clip-inside-and-outside

+ +Canvas test: 2d.layer.clip-inside-and-outside.layer-filter.tentative +

2d.layer.clip-inside-and-outside.layer-filter.tentative

Check clipping set inside and outside the layer

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.w.html similarity index 84% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.w.html index 6c522be739a..9ea28b30eee 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside-and-outside.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.clip-inside-and-outside -

2d.layer.clip-inside-and-outside

+ +Canvas test: 2d.layer.clip-inside-and-outside.layer-filter.tentative +

2d.layer.clip-inside-and-outside.layer-filter.tentative

Check clipping set inside and outside the layer

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter-expected.html index fcf0571c3e7..1372c95b374 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.clip-inside-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.clip-inside -

2d.layer.clip-inside

+Canvas test: 2d.layer.clip-inside.ctx-filter +

2d.layer.clip-inside.ctx-filter

Check clipping set inside the layer

FAIL (fallback content)

@@ -21,7 +21,8 @@ ctx2.fillStyle = 'blue'; ctx2.fillRect(10, 10, 80, 80); - ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + ctx.filter = 'blur(12px)'; + ctx.beginLayer(); ctx.drawImage(canvas2, 0, 0); ctx.endLayer(); diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter.html new file mode 100644 index 00000000000..e21248edf56 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter.html @@ -0,0 +1,28 @@ + + + + +Canvas test: 2d.layer.clip-inside.ctx-filter +

2d.layer.clip-inside.ctx-filter

+

Check clipping set inside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter.w.html new file mode 100644 index 00000000000..177030ed509 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.ctx-filter.w.html @@ -0,0 +1,42 @@ + + + + + +Canvas test: 2d.layer.clip-inside.ctx-filter +

2d.layer.clip-inside.ctx-filter

+

Check clipping set inside the layer

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..d63982ffa4e --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative-expected.html @@ -0,0 +1,28 @@ + + + +Canvas test: 2d.layer.clip-inside.layer-filter.tentative +

2d.layer.clip-inside.layer-filter.tentative

+

Check clipping set inside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative.html similarity index 77% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative.html index 97e2e6941d6..04c9387e059 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.clip-inside -

2d.layer.clip-inside

+ +Canvas test: 2d.layer.clip-inside.layer-filter.tentative +

2d.layer.clip-inside.layer-filter.tentative

Check clipping set inside the layer

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative.w.html similarity index 85% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative.w.html index 3429ebcb950..9686867ebae 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-inside.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.clip-inside -

2d.layer.clip-inside

+ +Canvas test: 2d.layer.clip-inside.layer-filter.tentative +

2d.layer.clip-inside.layer-filter.tentative

Check clipping set inside the layer

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter-expected.html similarity index 81% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter-expected.html index f81a24ddcfb..3d0bd79c403 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.clip-outside -

2d.layer.clip-outside

+Canvas test: 2d.layer.clip-outside.ctx-filter +

2d.layer.clip-outside.ctx-filter

Check clipping set outside the layer

FAIL (fallback content)

@@ -14,7 +14,8 @@ const canvas2 = new OffscreenCanvas(200, 200); const ctx2 = canvas2.getContext('2d'); - ctx2.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + ctx2.filter = 'blur(12px)'; + ctx2.beginLayer(); ctx2.fillStyle = 'blue'; ctx2.fillRect(10, 10, 80, 80); ctx2.endLayer(); diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter.html new file mode 100644 index 00000000000..347d785c19a --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter.html @@ -0,0 +1,27 @@ + + + + +Canvas test: 2d.layer.clip-outside.ctx-filter +

2d.layer.clip-outside.ctx-filter

+

Check clipping set outside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter.w.html new file mode 100644 index 00000000000..95b474eb488 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.ctx-filter.w.html @@ -0,0 +1,41 @@ + + + + + +Canvas test: 2d.layer.clip-outside.ctx-filter +

2d.layer.clip-outside.ctx-filter

+

Check clipping set outside the layer

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..7d64bc64008 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative-expected.html @@ -0,0 +1,28 @@ + + + +Canvas test: 2d.layer.clip-outside.layer-filter.tentative +

2d.layer.clip-outside.layer-filter.tentative

+

Check clipping set outside the layer

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative.html similarity index 77% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative.html index 19d7c3f93ef..ff17cd73319 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.clip-outside -

2d.layer.clip-outside

+ +Canvas test: 2d.layer.clip-outside.layer-filter.tentative +

2d.layer.clip-outside.layer-filter.tentative

Check clipping set outside the layer

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative.w.html similarity index 85% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative.w.html index a58e77ccfc1..a203b927fc1 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.clip-outside.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.clip-outside -

2d.layer.clip-outside

+ +Canvas test: 2d.layer.clip-outside.layer-filter.tentative +

2d.layer.clip-outside.layer-filter.tentative

Check clipping set outside the layer

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative-expected.html similarity index 82% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative-expected.html index 77b45eb814f..43a71d4d6a3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.css-filters.blur-and-shadow -

2d.layer.css-filters.blur-and-shadow

+Canvas test: 2d.layer.css-filters.blur-and-shadow.tentative +

2d.layer.css-filters.blur-and-shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

- -Canvas test: 2d.layer.css-filters.blur-and-shadow -

2d.layer.css-filters.blur-and-shadow

+ +Canvas test: 2d.layer.css-filters.blur-and-shadow.tentative +

2d.layer.css-filters.blur-and-shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative.w.html similarity index 84% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative.w.html index f8e7e78f714..4622fed3ae7 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.css-filters.blur-and-shadow -

2d.layer.css-filters.blur-and-shadow

+ +Canvas test: 2d.layer.css-filters.blur-and-shadow.tentative +

2d.layer.css-filters.blur-and-shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative-expected.html similarity index 83% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative-expected.html index 457e05db390..7d907bc527c 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.css-filters.blur-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.css-filters.blur -

2d.layer.css-filters.blur

+Canvas test: 2d.layer.css-filters.blur.tentative +

2d.layer.css-filters.blur.tentative

Checks that beginLayer works with a CSS filter string as input.

- -Canvas test: 2d.layer.css-filters.blur -

2d.layer.css-filters.blur

+ +Canvas test: 2d.layer.css-filters.blur.tentative +

2d.layer.css-filters.blur.tentative

Checks that beginLayer works with a CSS filter string as input.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative.w.html similarity index 86% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative.w.html index 07ca86ec2ff..aa97ec8e2c0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.css-filters.blur -

2d.layer.css-filters.blur

+ +Canvas test: 2d.layer.css-filters.blur.tentative +

2d.layer.css-filters.blur.tentative

Checks that beginLayer works with a CSS filter string as input.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative-expected.html similarity index 83% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative-expected.html index acbae0fcb8f..5142c2f4f6e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.css-filters.shadow -

2d.layer.css-filters.shadow

+Canvas test: 2d.layer.css-filters.shadow.tentative +

2d.layer.css-filters.shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

- -Canvas test: 2d.layer.css-filters.shadow -

2d.layer.css-filters.shadow

+ +Canvas test: 2d.layer.css-filters.shadow.tentative +

2d.layer.css-filters.shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative.w.html similarity index 86% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative.w.html index 9dbe73eab82..1660f1d6eaa 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.css-filters.shadow -

2d.layer.css-filters.shadow

+ +Canvas test: 2d.layer.css-filters.shadow.tentative +

2d.layer.css-filters.shadow.tentative

Checks that beginLayer works with a CSS filter string as input.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.filter-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative-expected.html similarity index 87% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.filter-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative-expected.html index 493a2cd1d99..f1f564f2479 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.filter-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.ctm.filter -

2d.layer.ctm.filter

+Canvas test: 2d.layer.ctm.layer-filter.tentative +

2d.layer.ctm.layer-filter.tentative

Checks that parent transforms affect layer filters.

- -Canvas test: 2d.layer.ctm.filter -

2d.layer.ctm.filter

+ +Canvas test: 2d.layer.ctm.layer-filter.tentative +

2d.layer.ctm.layer-filter.tentative

Checks that parent transforms affect layer filters.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative.w.html similarity index 89% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.filter.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative.w.html index 8ac710cfdd7..4289871ec37 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.filter.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.ctm.filter -

2d.layer.ctm.filter

+ +Canvas test: 2d.layer.ctm.layer-filter.tentative +

2d.layer.ctm.layer-filter.tentative

Checks that parent transforms affect layer filters.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter-expected.html similarity index 80% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter-expected.html index 4a4aa93d9f2..0d06cdc45ed 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.drawImage-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.drawImage -

2d.layer.drawImage

+Canvas test: 2d.layer.drawImage.ctx-filter +

2d.layer.drawImage.ctx-filter

Checks that drawImage writes the image to the layer and not the parent directly.

FAIL (fallback content)

@@ -14,8 +14,8 @@ ctx.fillStyle = 'skyblue'; ctx.fillRect(0, 0, 100, 100); - ctx.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: -10, - stdDeviation: 0, floodColor: 'navy'}}); + ctx.filter = 'drop-shadow(-10px -10px 0px navy)'; + ctx.beginLayer(); ctx.fillStyle = 'maroon'; ctx.fillRect(20, 20, 50, 50); diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.html similarity index 80% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.html index 99c61cebeb3..92a96271ef0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.drawImage -

2d.layer.drawImage

+ +Canvas test: 2d.layer.drawImage.ctx-filter +

2d.layer.drawImage.ctx-filter

Checks that drawImage writes the image to the layer and not the parent directly.

FAIL (fallback content)

@@ -15,8 +15,8 @@ ctx.fillStyle = 'skyblue'; ctx.fillRect(0, 0, 100, 100); - ctx.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: -10, - stdDeviation: 0, floodColor: 'navy'}}); + ctx.filter = 'drop-shadow(-10px -10px 0px navy)'; + ctx.beginLayer(); ctx.fillStyle = 'maroon'; ctx.fillRect(20, 20, 50, 50); diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.w.html similarity index 86% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.w.html index a94641b8871..c30641a8c18 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.ctx-filter.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.drawImage -

2d.layer.drawImage

+ +Canvas test: 2d.layer.drawImage.ctx-filter +

2d.layer.drawImage.ctx-filter

Checks that drawImage writes the image to the layer and not the parent directly.

FAIL (fallback content)

@@ -17,8 +17,8 @@ ctx.fillStyle = 'skyblue'; ctx.fillRect(0, 0, 100, 100); - ctx.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: -10, - stdDeviation: 0, floodColor: 'navy'}}); + ctx.filter = 'drop-shadow(-10px -10px 0px navy)'; + ctx.beginLayer(); ctx.fillStyle = 'maroon'; ctx.fillRect(20, 20, 50, 50); diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..589f172ba5c --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative-expected.html @@ -0,0 +1,30 @@ + + + +Canvas test: 2d.layer.drawImage.layer-filter.tentative +

2d.layer.drawImage.layer-filter.tentative

+

Checks that drawImage writes the image to the layer and not the parent directly.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.html new file mode 100644 index 00000000000..bfeb5dbb67e --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.html @@ -0,0 +1,37 @@ + + + + +Canvas test: 2d.layer.drawImage.layer-filter.tentative +

2d.layer.drawImage.layer-filter.tentative

+

Checks that drawImage writes the image to the layer and not the parent directly.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.w.html new file mode 100644 index 00000000000..922e7df09b3 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.drawImage.layer-filter.tentative.w.html @@ -0,0 +1,51 @@ + + + + + +Canvas test: 2d.layer.drawImage.layer-filter.tentative +

2d.layer.drawImage.layer-filter.tentative

+

Checks that drawImage writes the image to the layer and not the parent directly.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.html similarity index 88% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.html index cd8d050513e..cea7f37920f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.html @@ -1,12 +1,12 @@ -OffscreenCanvas test: 2d.layer.exceptions-are-no-op +OffscreenCanvas test: 2d.layer.exceptions-are-no-op.tentative -

2d.layer.exceptions-are-no-op

+

2d.layer.exceptions-are-no-op.tentative

Checks that the context state is left unchanged if beginLayer throws.

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.worker.js b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.worker.js similarity index 98% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.worker.js rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.worker.js index 6e253b26d55..8faad7c596f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.worker.js +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.exceptions-are-no-op.tentative.worker.js @@ -1,5 +1,5 @@ // DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -// OffscreenCanvas test in a worker:2d.layer.exceptions-are-no-op +// OffscreenCanvas test in a worker:2d.layer.exceptions-are-no-op.tentative // Description:Checks that the context state is left unchanged if beginLayer throws. // Note: diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html similarity index 99% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html index af2a55af7ef..dae68b3ad73 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.no-transform.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform -

2d.layer.global-states.filter.ctx-filter.no-transform

+Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform.tentative +

2d.layer.global-states.filter.ctx-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform -

2d.layer.global-states.filter.ctx-filter.no-transform

+ +Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform.tentative +

2d.layer.global-states.filter.ctx-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform -

2d.layer.global-states.filter.ctx-filter.no-transform

+ +Canvas test: 2d.layer.global-states.filter.ctx-filter.no-transform.tentative +

2d.layer.global-states.filter.ctx-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative-expected.html similarity index 99% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative-expected.html index b0a58fcb93f..b18ae7f357a 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.ctx-filter.rotation-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.ctx-filter.rotation.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation -

2d.layer.global-states.filter.ctx-filter.rotation

+Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation.tentative +

2d.layer.global-states.filter.ctx-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation -

2d.layer.global-states.filter.ctx-filter.rotation

+ +Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation.tentative +

2d.layer.global-states.filter.ctx-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation -

2d.layer.global-states.filter.ctx-filter.rotation

+ +Canvas test: 2d.layer.global-states.filter.ctx-filter.rotation.tentative +

2d.layer.global-states.filter.ctx-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative-expected.html similarity index 99% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative-expected.html index db1a4bdc131..6263d26333a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform -

2d.layer.global-states.filter.no-cxt-filter.no-transform

+Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative +

2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform -

2d.layer.global-states.filter.no-cxt-filter.no-transform

+ +Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative +

2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform -

2d.layer.global-states.filter.no-cxt-filter.no-transform

+ +Canvas test: 2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative +

2d.layer.global-states.filter.no-cxt-filter.no-transform.tentative

Checks that layers with filters correctly use global render states.

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative-expected.html similarity index 99% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative-expected.html index 8995fe469e4..0236c9a5d93 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.global-states.filter.no-cxt-filter.rotation-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.global-states.filter.no-cxt-filter.rotation.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation -

2d.layer.global-states.filter.no-cxt-filter.rotation

+Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation.tentative +

2d.layer.global-states.filter.no-cxt-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation -

2d.layer.global-states.filter.no-cxt-filter.rotation

+ +Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation.tentative +

2d.layer.global-states.filter.no-cxt-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

- -Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation -

2d.layer.global-states.filter.no-cxt-filter.rotation

+ +Canvas test: 2d.layer.global-states.filter.no-cxt-filter.rotation.tentative +

2d.layer.global-states.filter.no-cxt-filter.rotation.tentative

Checks that layers with filters correctly use global render states.

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative-expected.html similarity index 89% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative-expected.html index 68ccec3b2da..6b9bfbdb465 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.nested-filters -

2d.layer.nested-filters

+Canvas test: 2d.layer.nested-filters.tentative +

2d.layer.nested-filters.tentative

Checks that nested layers work properly when both apply filters.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.html similarity index 85% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.html index dce67e3089d..ec46a8ab0e3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.nested-filters -

2d.layer.nested-filters

+ +Canvas test: 2d.layer.nested-filters.tentative +

2d.layer.nested-filters.tentative

Checks that nested layers work properly when both apply filters.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.w.html similarity index 89% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.w.html index 01db9529156..8a031ec27f1 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.nested-filters.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.nested-filters -

2d.layer.nested-filters

+ +Canvas test: 2d.layer.nested-filters.tentative +

2d.layer.nested-filters.tentative

Checks that nested layers work properly when both apply filters.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html new file mode 100644 index 00000000000..daa6111f7b5 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative-expected.html @@ -0,0 +1,16 @@ + + + +Canvas test: 2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative +

2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative

+

Test drawing layers when the transform is not invertible.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html similarity index 89% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html index 717188c9956..357021aa133 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.non-invertible-matrix.with-render-states-and-filter -

2d.layer.non-invertible-matrix.with-render-states-and-filter

+ +Canvas test: 2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative +

2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative

Test drawing layers when the transform is not invertible.

FAIL (fallback content)

@@ -23,6 +23,7 @@ ctx.shadowOffsetX = 0; ctx.shadowOffsetY = 20; ctx.shadowColor = 'rgba(255, 165, 0, 0.6)'; + ctx.filter = 'blur(10px)'; // Open the layer with a non-invertible matrix. The whole layer will be // non-rasterizable. diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.w.html similarity index 91% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.w.html index a45c945bcd2..95a6eee89da 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.non-invertible-matrix.with-render-states-and-filter -

2d.layer.non-invertible-matrix.with-render-states-and-filter

+ +Canvas test: 2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative +

2d.layer.non-invertible-matrix.with-render-states.filtered-layer.tentative

Test drawing layers when the transform is not invertible.

FAIL (fallback content)

@@ -25,6 +25,7 @@ ctx.shadowOffsetX = 0; ctx.shadowOffsetY = 20; ctx.shadowColor = 'rgba(255, 165, 0, 0.6)'; + ctx.filter = 'blur(10px)'; // Open the layer with a non-invertible matrix. The whole layer will be // non-rasterizable. diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html similarity index 84% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html index ead108a72c4..3841df36ed4 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states-and-filter-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.non-invertible-matrix.with-render-states-and-filter -

2d.layer.non-invertible-matrix.with-render-states-and-filter

+Canvas test: 2d.layer.non-invertible-matrix.with-render-states.plain-layer +

2d.layer.non-invertible-matrix.with-render-states.plain-layer

Test drawing layers when the transform is not invertible.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.html new file mode 100644 index 00000000000..b0382ca3871 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.html @@ -0,0 +1,48 @@ + + + + +Canvas test: 2d.layer.non-invertible-matrix.with-render-states.plain-layer +

2d.layer.non-invertible-matrix.with-render-states.plain-layer

+

Test drawing layers when the transform is not invertible.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.w.html new file mode 100644 index 00000000000..dee370cd2a6 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.non-invertible-matrix.with-render-states.plain-layer.w.html @@ -0,0 +1,62 @@ + + + + + +Canvas test: 2d.layer.non-invertible-matrix.with-render-states.plain-layer +

2d.layer.non-invertible-matrix.with-render-states.plain-layer

+

Test drawing layers when the transform is not invertible.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter-expected.html similarity index 90% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter-expected.html index 02f73611d61..af704031e29 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.opaque-canvas-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.opaque-canvas -

2d.layer.opaque-canvas

+Canvas test: 2d.layer.opaque-canvas.ctx-filter +

2d.layer.opaque-canvas.ctx-filter

Checks that layer blending works inside opaque canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.html new file mode 100644 index 00000000000..d32c351def8 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.html @@ -0,0 +1,36 @@ + + + + +Canvas test: 2d.layer.opaque-canvas.ctx-filter +

2d.layer.opaque-canvas.ctx-filter

+

Checks that layer blending works inside opaque canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.w.html new file mode 100644 index 00000000000..4d36f135dda --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.ctx-filter.w.html @@ -0,0 +1,50 @@ + + + + + +Canvas test: 2d.layer.opaque-canvas.ctx-filter +

2d.layer.opaque-canvas.ctx-filter

+

Checks that layer blending works inside opaque canvas

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..d195882a685 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative-expected.html @@ -0,0 +1,35 @@ + + + +Canvas test: 2d.layer.opaque-canvas.layer-filter.tentative +

2d.layer.opaque-canvas.layer-filter.tentative

+

Checks that layer blending works inside opaque canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.html similarity index 84% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.html index 9ddf70ab958..2e25ee4d34d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.opaque-canvas -

2d.layer.opaque-canvas

+ +Canvas test: 2d.layer.opaque-canvas.layer-filter.tentative +

2d.layer.opaque-canvas.layer-filter.tentative

Checks that layer blending works inside opaque canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.w.html similarity index 88% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.w.html index 2fe3f98f0ec..92f64b4f750 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.opaque-canvas.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.opaque-canvas -

2d.layer.opaque-canvas

+ +Canvas test: 2d.layer.opaque-canvas.layer-filter.tentative +

2d.layer.opaque-canvas.layer-filter.tentative

Checks that layer blending works inside opaque canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative-expected.html new file mode 100644 index 00000000000..47bf9689e1e --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative-expected.html @@ -0,0 +1,15 @@ + + + +Canvas test: 2d.layer.reset.filtered_layer.tentative +

2d.layer.reset.filtered_layer.tentative

+

Checks that reset discards any pending layers.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.html similarity index 84% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.html index 930d4a1e239..45199aa24dd 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.reset -

2d.layer.reset

+ +Canvas test: 2d.layer.reset.filtered_layer.tentative +

2d.layer.reset.filtered_layer.tentative

Checks that reset discards any pending layers.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.w.html similarity index 89% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.w.html index fa6edac05d3..7100da36e7f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.filtered_layer.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.reset -

2d.layer.reset

+ +Canvas test: 2d.layer.reset.filtered_layer.tentative +

2d.layer.reset.filtered_layer.tentative

Checks that reset discards any pending layers.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.plain_layer-expected.html similarity index 82% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.reset-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.plain_layer-expected.html index 6f3f82dc98e..c018252c213 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.reset-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.plain_layer-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.reset -

2d.layer.reset

+Canvas test: 2d.layer.reset.plain_layer +

2d.layer.reset.plain_layer

Checks that reset discards any pending layers.

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.html new file mode 100644 index 00000000000..cca641e8892 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.html @@ -0,0 +1,41 @@ + + + + +Canvas test: 2d.layer.reset.plain_layer +

2d.layer.reset.plain_layer

+

Checks that reset discards any pending layers.

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.w.html new file mode 100644 index 00000000000..6a97bbdc383 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.reset.plain_layer.w.html @@ -0,0 +1,55 @@ + + + + + +Canvas test: 2d.layer.reset.plain_layer +

2d.layer.reset.plain_layer

+

Checks that reset discards any pending layers.

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html similarity index 92% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html index 0f15210c17f..522a7716b6e 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping

+Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.html new file mode 100644 index 00000000000..2981379a190 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.html @@ -0,0 +1,33 @@ + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.w.html new file mode 100644 index 00000000000..7057728be3b --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter.w.html @@ -0,0 +1,47 @@ + + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..5fe2833afe5 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative-expected.html @@ -0,0 +1,22 @@ + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.html similarity index 88% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.html index 0c65ceac23f..bc1ec180423 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.w.html similarity index 91% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.w.html index 77d8bbf2e90..ed151f1e116 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance-with-clipping.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html similarity index 86% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html index 4a5b1ea18a1..2c53a773b80 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.long-distance-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance -

2d.layer.shadow-from-outside-canvas.long-distance

+Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html new file mode 100644 index 00000000000..decc4d0ef3b --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.html @@ -0,0 +1,31 @@ + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.w.html new file mode 100644 index 00000000000..a74a4ca29ac --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter.w.html @@ -0,0 +1,45 @@ + + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.long-distance.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..5f89d012f46 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative-expected.html @@ -0,0 +1,20 @@ + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html similarity index 85% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html index afcccde12d1..65772dd518c 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance -

2d.layer.shadow-from-outside-canvas.long-distance

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.w.html similarity index 89% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.w.html index b3789524690..725433a34c8 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance -

2d.layer.shadow-from-outside-canvas.long-distance

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.long-distance.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html similarity index 92% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html index 96045c23a51..6aee28f0de9 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping

+Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.html new file mode 100644 index 00000000000..604b809b7ef --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.html @@ -0,0 +1,33 @@ + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.w.html new file mode 100644 index 00000000000..9581cd5487c --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter.w.html @@ -0,0 +1,47 @@ + + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..f75299dde64 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative-expected.html @@ -0,0 +1,22 @@ + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.html similarity index 88% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.html index 388898326eb..1d392215d9e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.w.html similarity index 91% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.w.html index 4a341b91895..0bb94895cab 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping -

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance-with-clipping.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html similarity index 85% rename from tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-expected.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html index beaa26cd3c8..5ca2ebad391 100644 --- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.shadow-from-outside-canvas.short-distance-expected.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter-expected.html @@ -1,8 +1,8 @@ -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance -

2d.layer.shadow-from-outside-canvas.short-distance

+Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html new file mode 100644 index 00000000000..c567f4e3906 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.html @@ -0,0 +1,31 @@ + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.w.html new file mode 100644 index 00000000000..b76235e442e --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter.w.html @@ -0,0 +1,45 @@ + + + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter +

2d.layer.shadow-from-outside-canvas.short-distance.ctx-filter

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ + + diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html new file mode 100644 index 00000000000..387eb0b5d72 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative-expected.html @@ -0,0 +1,20 @@ + + + +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative

+

Checks shadow produced by object drawn outside the canvas

+ +

FAIL (fallback content)

+
+ diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html similarity index 84% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html index 1a29d2fa8ff..6e096a3c96d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.html @@ -1,9 +1,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance -

2d.layer.shadow-from-outside-canvas.short-distance

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.w.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.w.html similarity index 89% rename from tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.w.html rename to tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.w.html index 4017fe7a304..0787cf54ac6 100644 --- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.w.html +++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative.w.html @@ -2,9 +2,9 @@ - -Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance -

2d.layer.shadow-from-outside-canvas.short-distance

+ +Canvas test: 2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative +

2d.layer.shadow-from-outside-canvas.short-distance.layer-filter.tentative

Checks shadow produced by object drawn outside the canvas

FAIL (fallback content)

diff --git a/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py b/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py index 760368cf222..2ec2e20886b 100644 --- a/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py +++ b/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py @@ -365,14 +365,23 @@ class _Variant(): 'desc': '', 'size': (100, 50), # Test name, which ultimately is used as filename. File variant - # dimension names are appended to this to produce unique filenames. + # dimension names (i.e. the 'file_variant_names' property below) are + # appended to this to produce unique filenames. 'name': '', + # List holding the the file variant dimension names. + 'file_variant_names': [], # List of this variant grid dimension names. This uniquely # identifies a single variant in a variant grid file. 'grid_variant_names': [], # List of this variant dimension names, including both file and grid # dimensions. 'variant_names': [], + # Same as `file_variant_names`, but concatenated into a single + # string. This is a useful to easily identify a variant file. + 'file_variant_name': '', + # Same as `grid_variant_names`, but concatenated into a single + # string. This is a useful to easily identify a variant in a grid. + 'grid_variant_name': '', # Same as `variant_names`, but concatenated into a single string. # This is a useful shorthand for tests having a single variant # dimension. @@ -398,12 +407,17 @@ class _Variant(): def with_grid_variant_name(self, name: str) -> '_Variant': """Addend a variant name to include in the grid element label.""" self._add_variant_name(name) + self._params['grid_variant_name'] += ( + ('.' if self.params['grid_variant_name'] else '') + name) self._params['grid_variant_names'] += [name] return self def with_file_variant_name(self, name: str) -> '_Variant': """Addend a variant name to include in the generated file name.""" self._add_variant_name(name) + self._params['file_variant_name'] += ( + ('.' if self.params['file_variant_name'] else '') + name) + self._params['file_variant_names'] += [name] if self.params.get('append_variants_to_name', True): self._params['name'] += '.' + name return self diff --git a/tests/wpt/tests/html/canvas/tools/yaml-new/filters.yaml b/tests/wpt/tests/html/canvas/tools/yaml-new/filters.yaml index be28001fa73..68c9dab7afd 100644 --- a/tests/wpt/tests/html/canvas/tools/yaml-new/filters.yaml +++ b/tests/wpt/tests/html/canvas/tools/yaml-new/filters.yaml @@ -32,6 +32,19 @@ ctx.filter = 'blur( 5px)'; assert_equals(ctx.filter, 'blur( 5px)'); +- name: 2d.filter.drop-shadow-globalAlpha + desc: Tests the context drop-shadow filter with a globalAlpha + code: | + ctx.filter = 'drop-shadow(10px 5px 0px rgb(255, 165, 0))'; + ctx.globalAlpha = 0.5 + ctx.fillStyle = 'rgb(128, 0, 128)'; + ctx.fillRect(10, 10, 60, 30); + reference: | + ctx.fillStyle = 'rgba(255, 165, 0, 0.5)'; + ctx.fillRect(20, 15, 60, 30); + ctx.fillStyle = 'rgba(128, 0, 128, 0.5)' + ctx.fillRect(10, 10, 60, 30); + - name: 2d.filter.canvasFilterObject.tentative desc: Test CanvasFilter() object canvas_types: ['HtmlCanvas'] diff --git a/tests/wpt/tests/html/canvas/tools/yaml-new/layers.yaml b/tests/wpt/tests/html/canvas/tools/yaml-new/layers.yaml index c96b9bbc7db..9f68a853692 100644 --- a/tests/wpt/tests/html/canvas/tools/yaml-new/layers.yaml +++ b/tests/wpt/tests/html/canvas/tools/yaml-new/layers.yaml @@ -82,7 +82,8 @@ ctx.translate(-45, -45); -- name: 2d.layer.global-states.filter +- name: >- + 2d.layer.global-states.filter.{{ file_variant_name }}.tentative desc: Checks that layers with filters correctly use global render states. size: [90, 90] code: | @@ -142,6 +143,7 @@ ctx.drawImage(img, 0, 0); }; img.src = 'data:image/svg+xml;base64,' + btoa(svg); + append_variants_to_name: false variants_layout: [single_file, single_file, single_file, multi_files, multi_files] grid_width: 8 @@ -294,7 +296,9 @@ ctx.fillStyle = 'blue'; ctx.fillRect(30, 30, 50, 50); -- name: 2d.layer.non-invertible-matrix.with-render-states-and-filter +- name: >- + 2d.layer.non-invertible-matrix.with-render-states.{{ file_variant_name }}{{ + tentative }} desc: Test drawing layers when the transform is not invertible. size: [200, 200] code: | @@ -309,12 +313,11 @@ ctx.shadowOffsetX = 0; ctx.shadowOffsetY = 20; ctx.shadowColor = 'rgba(255, 165, 0, 0.6)'; + ctx.filter = 'blur(10px)'; // Open the layer with a non-invertible matrix. The whole layer will be // non-rasterizable. - ctx.beginLayer({filter: - {name: 'dropShadow', dx: 10, dy: 0, stdDeviation: 0, - floodColor: 'rgba(128, 128, 255, 0.7)'}}); + {{ begin_layer }} // Because the transform is global, the matrix is still non-invertible. ctx.fillStyle = 'rgba(225, 0, 0, 1)'; @@ -332,6 +335,16 @@ reference: | ctx.fillStyle = 'blue'; ctx.fillRect(30, 30, 50, 50); + append_variants_to_name: false + variants: + - plain-layer: + begin_layer: ctx.beginLayer(); + filtered-layer: + begin_layer: |- + ctx.beginLayer({filter: + {name: 'dropShadow', dx: 10, dy: 0, stdDeviation: 0, + floodColor: 'rgba(128, 128, 255, 0.7)'}}); + tentative: .tentative - name: 2d.layer.nested desc: Tests nested canvas layers. @@ -454,7 +467,7 @@ @assert ctx.shadowBlur === 30; @assert ctx.filter === 'blur(5px)'; -- name: 2d.layer.clip-outside +- name: 2d.layer.clip-outside.{{ file_variant_name }}{{ tentative }} desc: Check clipping set outside the layer size: [100, 100] code: | @@ -462,7 +475,7 @@ ctx.rect(15, 15, 70, 70); ctx.clip(); - ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + {{ filtered_layer }} ctx.fillStyle = 'blue'; ctx.fillRect(10, 10, 80, 80); ctx.endLayer(); @@ -470,7 +483,8 @@ const canvas2 = new OffscreenCanvas(200, 200); const ctx2 = canvas2.getContext('2d'); - ctx2.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + ctx2.filter = 'blur(12px)'; + ctx2.beginLayer(); ctx2.fillStyle = 'blue'; ctx2.fillRect(10, 10, 80, 80); ctx2.endLayer(); @@ -480,12 +494,22 @@ ctx.clip(); ctx.drawImage(canvas2, 0, 0); + append_variants_to_name: false + variants: + - ctx-filter: + filtered_layer: |- + ctx.filter = 'blur(12px)'; + ctx.beginLayer(); + layer-filter: + filtered_layer: |- + ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + tentative: .tentative -- name: 2d.layer.clip-inside +- name: 2d.layer.clip-inside.{{ file_variant_name }}{{ tentative }} desc: Check clipping set inside the layer size: [100, 100] code: | - ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + {{ filtered_layer }} ctx.beginPath(); ctx.rect(15, 15, 70, 70); @@ -505,11 +529,22 @@ ctx2.fillStyle = 'blue'; ctx2.fillRect(10, 10, 80, 80); - ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + ctx.filter = 'blur(12px)'; + ctx.beginLayer(); ctx.drawImage(canvas2, 0, 0); ctx.endLayer(); + append_variants_to_name: false + variants: + - ctx-filter: + filtered_layer: |- + ctx.filter = 'blur(12px)'; + ctx.beginLayer(); + layer-filter: + filtered_layer: |- + ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + tentative: .tentative -- name: 2d.layer.clip-inside-and-outside +- name: 2d.layer.clip-inside-and-outside.{{ file_variant_name }}{{ tentative }} desc: Check clipping set inside and outside the layer size: [100, 100] code: | @@ -517,7 +552,7 @@ ctx.rect(15, 15, 70, 70); ctx.clip(); - ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + {{ filtered_layer }} ctx.beginPath(); ctx.rect(15, 15, 70, 70); @@ -540,7 +575,8 @@ const canvas3 = new OffscreenCanvas(200, 200); const ctx3 = canvas3.getContext('2d'); - ctx3.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + ctx3.filter = 'blur(12px)'; + ctx3.beginLayer(); ctx3.drawImage(canvas2, 0, 0); ctx3.endLayer(); @@ -548,8 +584,18 @@ ctx.rect(15, 15, 70, 70); ctx.clip(); ctx.drawImage(canvas3, 0, 0); + append_variants_to_name: false + variants: + - ctx-filter: + filtered_layer: |- + ctx.filter = 'blur(12px)'; + ctx.beginLayer(); + layer-filter: + filtered_layer: |- + ctx.beginLayer({filter: {name: "gaussianBlur", stdDeviation: 12}}); + tentative: .tentative -- name: 2d.layer.ctm.filter +- name: 2d.layer.ctm.layer-filter.tentative desc: Checks that parent transforms affect layer filters. size: [200, 200] code: | @@ -732,7 +778,7 @@ ctx.fillStyle = 'green'; ctx.fillRect(0, 0, 20, 20); -- name: 2d.layer.flush-on-frame-presentation +- name: 2d.layer.flush-on-frame-presentation.{{ file_variant_name }}{{ tentative }} desc: Check that layers state stack is flushed and rebuilt on frame renders. size: [200, 200] canvas_types: ['HtmlCanvas'] @@ -741,8 +787,9 @@ ctx.fillStyle = 'purple'; ctx.fillRect(60, 60, 75, 50); ctx.globalAlpha = 0.5; + ctx.filter = 'blur(1px)'; - ctx.beginLayer({filter: {name: 'dropShadow', dx: -2, dy: 2}}); + {{ begin_layer }} ctx.fillRect(40, 40, 75, 50); ctx.fillStyle = 'grey'; ctx.fillRect(50, 50, 75, 50); @@ -760,8 +807,9 @@ ctx.fillStyle = 'purple'; ctx.fillRect(60, 60, 75, 50); ctx.globalAlpha = 0.5; + ctx.filter = 'blur(1px)'; - ctx.beginLayer({filter: {name: 'dropShadow', dx: -2, dy: 2}}); + {{ begin_layer }} ctx.fillStyle = 'purple'; ctx.fillRect(40, 40, 75, 50); ctx.fillStyle = 'grey'; @@ -774,6 +822,14 @@ ctx.endLayer(); ctx.fillRect(80, 40, 75, 50); + append_variants_to_name: false + variants: + - plain_layer: + begin_layer: ctx.beginLayer(); + filtered_layer: + begin_layer: |- + ctx.beginLayer({filter: {name: 'dropShadow', dx: -2, dy: 2}}); + tentative: .tentative - name: 2d.layer.malformed-operations desc: Throws if {{ variant_name }} is called while layers are open. @@ -891,7 +947,7 @@ ctx.drawImage(canvas2[i], i, i); } -- name: 2d.layer.reset +- name: 2d.layer.reset.{{ file_variant_name }}{{ tentative }} desc: Checks that reset discards any pending layers. code: | // Global states: @@ -903,7 +959,7 @@ ctx.shadowBlur = 3; ctx.filter = 'blur(5px)'; - ctx.beginLayer({filter: {name: 'dropShadow', dx: -3, dy: 3}}); + {{ begin_layer }} // Layer states: ctx.globalAlpha = 0.6; @@ -919,6 +975,14 @@ ctx.fillRect(10, 10, 75, 50); reference: ctx.fillRect(10, 10, 75, 50); + append_variants_to_name: false + variants: + - plain_layer: + begin_layer: ctx.beginLayer(); + filtered_layer: + begin_layer: |- + ctx.beginLayer({filter: {name: 'dropShadow', dx: -3, dy: 3}}); + tentative: .tentative - name: 2d.layer.clearRect.partial desc: clearRect inside a layer can clear a portion of the layer content. @@ -959,7 +1023,7 @@ ctx.fillStyle = 'blue'; ctx.fillRect(10, 10, 80, 50); -- name: 2d.layer.drawImage +- name: 2d.layer.drawImage.{{ file_variant_name }}{{ tentative }} size: [200, 200] desc: >- Checks that drawImage writes the image to the layer and not the parent @@ -968,8 +1032,7 @@ ctx.fillStyle = 'skyblue'; ctx.fillRect(0, 0, 100, 100); - ctx.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: -10, - stdDeviation: 0, floodColor: 'navy'}}); + {{ filtered_layer }} ctx.fillStyle = 'maroon'; ctx.fillRect(20, 20, 50, 50); @@ -988,8 +1051,8 @@ ctx.fillStyle = 'skyblue'; ctx.fillRect(0, 0, 100, 100); - ctx.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: -10, - stdDeviation: 0, floodColor: 'navy'}}); + ctx.filter = 'drop-shadow(-10px -10px 0px navy)'; + ctx.beginLayer(); ctx.fillStyle = 'maroon'; ctx.fillRect(20, 20, 50, 50); @@ -1001,6 +1064,17 @@ ctx.fillRect(40, 40, 50, 50); ctx.endLayer(); + append_variants_to_name: false + variants: + - ctx-filter: + filtered_layer: |- + ctx.filter = 'drop-shadow(-10px -10px 0px navy)'; + ctx.beginLayer(); + layer-filter: + filtered_layer: |- + ctx.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: -10, + stdDeviation: 0, floodColor: 'navy'}}); + tentative: .tentative - name: 2d.layer.valid-calls desc: No exception raised on {{ variant_desc }}. @@ -1081,7 +1155,7 @@ ctx.reset(); ctx.endLayer(); -- name: 2d.layer.exceptions-are-no-op +- name: 2d.layer.exceptions-are-no-op.tentative desc: Checks that the context state is left unchanged if beginLayer throws. test_type: sync code: | @@ -1106,7 +1180,7 @@ ctx.lineTo(50, 100); ctx.stroke(); -- name: 2d.layer.beginLayer-options +- name: 2d.layer.beginLayer-options.tentative desc: Checks beginLayer works for different option parameter values test_type: sync code: | @@ -1136,13 +1210,13 @@ ctx.beginLayer({filter: true}); ctx.endLayer(); ctx.beginLayer({filter: false}); ctx.endLayer(); -- name: 2d.layer.blur-from-outside-canvas +- name: 2d.layer.blur-from-outside-canvas.{{ file_variant_name }}{{ tentative }} desc: Checks blur leaking inside from drawing outside the canvas size: [200, 200] code: | {{ clipping }} - ctx.beginLayer({filter: [ {name: 'gaussianBlur', stdDeviation: 30} ]}); + {{ filtered_layer }} ctx.fillStyle = 'turquoise'; ctx.fillRect(201, 50, 100, 100); @@ -1178,6 +1252,7 @@ ctx.drawImage(img, 0, 0); }; img.src = 'data:image/svg+xml;base64,' + btoa(svg); + append_variants_to_name: false variants: - no-clipping: clipping: // No clipping. @@ -1186,8 +1261,18 @@ const clipRegion = new Path2D(); clipRegion.rect(20, 20, 160, 160); ctx.clip(clipRegion); + - ctx-filter: + filtered_layer: |- + ctx.filter = 'blur(30px)'; + ctx.beginLayer(); + layer-filter: + filtered_layer: |- + ctx.beginLayer({filter: [ {name: 'gaussianBlur', stdDeviation: 30} ]}); + tentative: .tentative -- name: 2d.layer.shadow-from-outside-canvas + +- name: >- + 2d.layer.shadow-from-outside-canvas.{{ file_variant_name }}{{ tentative }} desc: Checks shadow produced by object drawn outside the canvas size: [200, 200] code: | @@ -1195,11 +1280,7 @@ {{ clipping }} - ctx.beginLayer({filter: [ - {name: 'dropShadow', dx: -({{ size[0] }} + delta), - dy: -({{ size[1] }} + delta), stdDeviation: 0, - floodColor: 'green'}, - ]}); + {{ filtered_layer }} ctx.fillStyle = 'red'; ctx.fillRect({{ size[0] }} + delta, {{ size[1] }} + delta, 100, 100); @@ -1212,6 +1293,7 @@ ctx.fillStyle = 'green'; ctx.fillRect(0, 0, 100, 100); + append_variants_to_name: false variants: - short-distance: distance: |- @@ -1235,8 +1317,22 @@ const clipRegion = new Path2D(); clipRegion.rect(20, 20, 160, 160); ctx.clip(clipRegion); + - ctx-filter: + filtered_layer: |- + const dx = -({{ size[0] }} + delta); + const dy = -({{ size[1] }} + delta); + ctx.filter = 'drop-shadow(' + dx + 'px ' + dy + 'px 0px green)'; + ctx.beginLayer(); + layer-filter: + filtered_layer: |- + ctx.beginLayer({filter: [ + {name: 'dropShadow', dx: -({{ size[0] }} + delta), + dy: -({{ size[1] }} + delta), stdDeviation: 0, + floodColor: 'green'}, + ]}); + tentative: .tentative -- name: 2d.layer.opaque-canvas +- name: 2d.layer.opaque-canvas.{{ file_variant_name }}{{ tentative }} desc: Checks that layer blending works inside opaque canvas size: [300, 300] code: | @@ -1252,9 +1348,7 @@ ctx2.fillStyle = 'purple'; ctx2.fillRect(10, 10, 100, 100); - ctx2.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: 10, - stdDeviation: 0, - floodColor: 'rgba(200, 100, 50, 0.5)'}}); + {{ filtered_layer }} ctx2.fillStyle = 'green'; ctx2.fillRect(50, 50, 100, 100); ctx2.globalAlpha = 0.8; @@ -1287,8 +1381,20 @@ ctx.shadowOffsetX = -10; ctx.shadowOffsetY = 10; ctx.drawImage(canvas2, 0, 0); + append_variants_to_name: false + variants: + - ctx-filter: + filtered_layer: |- + ctx2.filter = 'drop-shadow(-10px 10px 0px rgba(200, 100, 50, 0.5))'; + ctx2.beginLayer(); + layer-filter: + filtered_layer: |- + ctx2.beginLayer({filter: {name: 'dropShadow', dx: -10, dy: 10, + stdDeviation: 0, + floodColor: 'rgba(200, 100, 50, 0.5)'}}); + tentative: .tentative -- name: 2d.layer.css-filters +- name: 2d.layer.css-filters.{{ file_variant_name }}.tentative desc: Checks that beginLayer works with a CSS filter string as input. size: [200, 200] code: &filter-test-code | @@ -1309,6 +1415,7 @@ + append_variants_to_name: false variants: - blur: ctx_filter: |- @@ -1327,11 +1434,12 @@ -- name: 2d.layer.anisotropic-blur +- name: 2d.layer.anisotropic-blur.{{ file_variant_name }}.tentative desc: Checks that layers allow gaussian blur with separate X and Y components. size: [200, 200] code: *filter-test-code html_reference: *filter-test-reference + append_variants_to_name: false variants: - x-only: ctx_filter: |- @@ -1359,7 +1467,7 @@ svg_filter: |- -- name: 2d.layer.nested-filters +- name: 2d.layer.nested-filters.tentative desc: Checks that nested layers work properly when both apply filters. size: [400, 200] code: | diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/resources/noopener-helper.js b/tests/wpt/tests/html/cross-origin-opener-policy/resources/noopener-helper.js index 1f9b0775071..6dd2c9bc1c9 100644 --- a/tests/wpt/tests/html/cross-origin-opener-policy/resources/noopener-helper.js +++ b/tests/wpt/tests/html/cross-origin-opener-policy/resources/noopener-helper.js @@ -12,6 +12,7 @@ function getExecutorPath(uuid, origin, coop_header) { const test_noopener_opening_popup = ( opener_coop, openee_coop, + origin, opener_expectation ) => { promise_test(async t => { @@ -54,7 +55,7 @@ const test_noopener_opening_popup = ( } // Open another popup from inside the popup, and wait for it to load. - const popup_openee_url = getExecutorPath(popup_openee_token, SAME_ORIGIN, + const popup_openee_url = getExecutorPath(popup_openee_token, origin, coop_header(openee_coop)); send(popup_token, ` window.openee = open("${popup_openee_url}"); @@ -98,7 +99,7 @@ const test_noopener_opening_popup = ( }, 'noopener-allow-popups ensures that the opener cannot script the openee,' + ' but further popups with no COOP can access their opener: ' + - opener_coop + '/' + openee_coop); + opener_coop + '/' + openee_coop + ':' + origin == SAME_ORIGIN); }; // Open a same-origin popup with `popup_coop` header, then navigate away toward @@ -121,7 +122,7 @@ const test_noopener_navigating_away = (popup_coop) => { t.add_cleanup(() => send(popup_token, 'window.close()')); // Assert that we can script the popup. - assert_not_equals(popup.window, null); + assert_not_equals(popup.window, null, 'can script the popup'); assert_false(popup.closed, 'popup closed'); // Ensure that the popup has no access to its opener. diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/noopener/coop-noopener-allow-popups-restrict-properties.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/noopener/coop-noopener-allow-popups-restrict-properties.https.html index 3058011c088..68d021ec0a4 100644 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/noopener/coop-noopener-allow-popups-restrict-properties.https.html +++ b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/noopener/coop-noopener-allow-popups-restrict-properties.https.html @@ -17,8 +17,10 @@ test_noopener_opening_popup("noopener-allow-popups", "restrict-properties", + SAME_ORIGIN, /*opener_expectation=*/true); test_noopener_opening_popup("restrict-properties", "noopener-allow-popups", + SAME_ORIGIN, /*opener_expectation=*/false); diff --git a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/noopener/coop-noopener-allow-popups.https.html b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/noopener/coop-noopener-allow-popups.https.html index 0daf3278476..e8a1ea00092 100644 --- a/tests/wpt/tests/html/cross-origin-opener-policy/tentative/noopener/coop-noopener-allow-popups.https.html +++ b/tests/wpt/tests/html/cross-origin-opener-policy/tentative/noopener/coop-noopener-allow-popups.https.html @@ -16,21 +16,31 @@ test_noopener_opening_popup("noopener-allow-popups", "unsafe-none", + SAME_ORIGIN, /*opener_expectation=*/true); test_noopener_opening_popup("noopener-allow-popups", "noopener-allow-popups", + SAME_ORIGIN, /*opener_expectation=*/false); test_noopener_opening_popup("noopener-allow-popups", "same-origin", + SAME_ORIGIN, /*opener_expectation=*/false); test_noopener_opening_popup("noopener-allow-popups", "same-origin-allow-popups", - /*opener_expectation=*/true); + SAME_ORIGIN, + /*opener_expectation=*/false); +test_noopener_opening_popup("noopener-allow-popups", + "same-origin-allow-popups", + CROSS_ORIGIN, + /*opener_expectation=*/false); test_noopener_opening_popup("same-origin-allow-popups", "noopener-allow-popups", + SAME_ORIGIN, /*opener_expectation=*/false); test_noopener_opening_popup("same-origin", "noopener-allow-popups", + SAME_ORIGIN, /*opener_expectation=*/false); test_noopener_navigating_away("unsafe-none"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js new file mode 100644 index 00000000000..cb4b174e945 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js @@ -0,0 +1,150 @@ +// META: timeout=long +// META: variant=?document +// META: variant=?dedicated_worker +// META: variant=?shared_worker +// META: variant=?service_worker +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +// Fetch a resource and store it into CacheStorage from |storer| context. Then +// check if it can be retrieved via CacheStorage.match from |retriever| context. +const cacheStorageTest = ( + description, + storer, + retriever, + resource_headers, + request_credential_mode, + expectation +) => { + promise_test_parallel(async test => { + const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + const url = cross_origin + "/common/square.png?pipe=" + resource_headers + + `&${token()}`; + const this_token = token(); + + // Fetch a request from |stored|. Store the opaque response into + // CacheStorage. + send(storer, ` + const cache = await caches.open("v1"); + const fetch_request = new Request("${url}", { + mode: 'no-cors', + credentials: '${request_credential_mode}' + }); + const fetch_response = await fetch(fetch_request); + await cache.put(fetch_request, fetch_response); + send("${this_token}", "stored"); + `); + assert_equals(await receive(this_token), "stored"); + + // Retrieved it from |retriever|. + send(retriever, ` + const cache = await caches.open("v1"); + try { + const response = await cache.match("${url}"); + send("${this_token}", "retrieved"); + } catch (error) { + send("${this_token}", "error"); + } + `); + assert_equals(await receive(this_token), expectation); + }, description); +}; + +// Execute the same set of tests for every type of execution contexts: +// Documents, DedicatedWorkers, SharedWorkers, and ServiceWorkers. The results +// should be independent of the context. +const environment = location.search.substr(1); +const constructor = environments[environment]; + +const context_none = constructor(coep_none)[0]; +const context_credentialless = constructor(dip_credentialless)[0]; +const context_require_corp = constructor(dip_require_corp)[0]; + +cacheStorageTest(`[${environment}] none => none`, + context_none, + context_none, + "", + "include", + "retrieved"); +cacheStorageTest(`[${environment}] none => isolate-and-credentialless`, + context_none, + context_credentialless, + "", + "include", + "error"); +cacheStorageTest(`[${environment}] none => isolate-and-credentialless (omit)`, + context_none, + context_credentialless, + "", + "omit", + "retrieved"); +cacheStorageTest(`[${environment}] none => isolate-and-credentialless + CORP`, + context_none, + context_credentialless, + corp_cross_origin, + "include", + "retrieved"); +cacheStorageTest(`[${environment}] none => isolate-and-require-corp`, + context_none, + context_require_corp, + "", + "include", + "error"); +cacheStorageTest(`[${environment}] none => isolate-and-require-corp (omit)`, + context_none, + context_require_corp, + "", + "include", + "error"); +cacheStorageTest(`[${environment}] none => isolate-and-require-corp + CORP`, + context_none, + context_require_corp, + corp_cross_origin, + "include", + "retrieved"); + +cacheStorageTest(`[${environment}] isolate-and-credentialless => none`, + context_credentialless, + context_none, + "", + "include", + "retrieved"); +cacheStorageTest(`[${environment}] isolate-and-credentialless => isolate-and-credentialless`, + context_credentialless, + context_credentialless, + "", + "include", + "retrieved"); +cacheStorageTest(`[${environment}] isolate-and-credentialless => isolate-and-require-corp`, + context_credentialless, + context_require_corp, + "", + "include", + "error"); +cacheStorageTest(`[${environment}] isolate-and-credentialless => isolate-and-require-corp + CORP`, + context_credentialless, + context_require_corp, + corp_cross_origin, + "include", + "retrieved"); + +cacheStorageTest(`[${environment}] isolate-and-require-corp => none`, + context_require_corp, + context_none, + corp_cross_origin, + "include", + "retrieved"); +cacheStorageTest(`[${environment}] isolate-and-require-corp => isolate-and-credentialless`, + context_require_corp, + context_credentialless, + corp_cross_origin, + "include", + "retrieved"); +cacheStorageTest(`[${environment}] isolate-and-require-corp => isolate-and-require-corp`, + context_require_corp, + context_require_corp, + corp_cross_origin, + "include", + "retrieved"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-cache.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache.tentative.window.js new file mode 100644 index 00000000000..99a0f077102 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache.tentative.window.js @@ -0,0 +1,85 @@ +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +// With DIP:isolate-and-credentialless, requesting a resource without +// credentials MUST NOT return a response requested with credentials. This would +// be a security issue, since DIP:isolate-and-credentialless can be used to +// enable crossOriginIsolation. +// +// The test the behavior of the HTTP cache: +// 1. b.com stores cookie. +// 2. a.com(DIP:none): request b.com's resource. +// 3. a.com(DIP:isolate-and-credentialless): request b.com's resource. +// +// The first time, the resource is requested with credentials. The response is +// served with Cache-Control: max-age=31536000. It enters the cache. +// The second time, the resource is requested without credentials. The response +// in the cache must not be returned. + +const cookie_key = "dip_cache_key"; +const cookie_value = "dip_cache_value"; +const same_origin = get_host_info().HTTPS_ORIGIN; +const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + +const GetCookie = (response) => { + return parseCookies(JSON.parse(response))[cookie_key]; +} + +// "same_origin" document with DIP:none. +const w_dip_none_token = token(); +const w_dip_none_url = same_origin + executor_path + dip_none + + `&uuid=${w_dip_none_token}` +const w_dip_none = window.open(w_dip_none_url); +add_completion_callback(() => w_dip_none.close()); + +// "same_origin" document with DIP:isolate-and-credentialles. +const w_dip_credentialless_token = token(); +const w_dip_credentialless_url = same_origin + executor_path + + dip_credentialless + `&uuid=${w_dip_credentialless_token}` +const w_dip_credentialless = window.open(w_dip_credentialless_url); +add_completion_callback(() => w_dip_credentialless.close()); + +const this_token = token(); + +// A request toward a "cross-origin" cacheable response. +const request_token = token(); +const request_url = cacheableShowRequestHeaders(cross_origin, request_token); + +promise_setup(async test => { + await setCookie(cross_origin, cookie_key, cookie_value + cookie_same_site_none); +}, "Set cookie"); + +// The "same-origin" DIP:none document fetches a "cross-origin" +// resource. The request is sent with credentials. +promise_setup(async test => { + send(w_dip_none_token, ` + await fetch("${request_url}", { + mode : "no-cors", + credentials: "include", + }); + send("${this_token}", "Resource fetched"); + `); + + assert_equals(await receive(this_token), "Resource fetched"); + assert_equals(await receive(request_token).then(GetCookie), cookie_value); +}, "Cache a response requested with credentials"); + +// The "same-origin" DIP:isolate-andcredentialless document fetches the same +// resource without credentials. The HTTP cache must not be used. Instead a +// second request must be made without credentials. +promise_test(async test => { + send(w_dip_credentialless_token, ` + await fetch("${request_url}", { + mode : "no-cors", + credentials: "include", + }); + send("${this_token}", "Resource fetched"); + `); + + assert_equals(await receive(this_token), "Resource fetched"); + + test.step_timeout(test.unreached_func("The HTTP cache has been used"), 1500); + assert_equals(await receive(request_token).then(GetCookie), undefined); +}, "The HTTP cache must not be used"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-cross-origin-isolated.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-cross-origin-isolated.tentative.window.js new file mode 100644 index 00000000000..4f94562dd08 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-cross-origin-isolated.tentative.window.js @@ -0,0 +1,42 @@ +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +const http = get_host_info().HTTP_ORIGIN; +const https = get_host_info().HTTPS_ORIGIN; + +let crossOriginIsolatedTest = ( + description, + origin , + headers, + expect_crossOriginIsolated) => { + promise_test_parallel(async test => { + const w_token = token(); + const w_url = origin + executor_path + headers + `&uuid=${w_token}`; + const w = window.open(w_url) + add_completion_callback(() => w.close()); + + const this_token = token(); + send(w_token, ` + if (window.crossOriginIsolated) + send("${this_token}", "crossOriginIsolated"); + else + send("${this_token}", "not isolated") + `); + assert_equals(await receive(this_token), expect_crossOriginIsolated); + }, description); +} + +crossOriginIsolatedTest("Main crossOriginIsolated case:", + https, dip_credentialless, "crossOriginIsolated"); + +crossOriginIsolatedTest("Missing HTTPS:", + http, dip_credentialless, "not isolated"); + +crossOriginIsolatedTest("Report-only:", + https, dip_report_only_credentialless, "not isolated"); + +crossOriginIsolatedTest("Report-only + enforced:", + https, dip_credentialless + + dip_report_only_credentialless, "crossOriginIsolated"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js new file mode 100644 index 00000000000..e6c9001c7f5 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js @@ -0,0 +1,137 @@ +// META: timeout=long +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +const same_origin = get_host_info().HTTPS_ORIGIN; +const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; +const cookie_key = "credentialless_dedicated_worker"; +const cookie_same_origin = "same_origin"; +const cookie_cross_origin = "cross_origin"; + +promise_test(async test => { + + await Promise.all([ + setCookie(same_origin, cookie_key, cookie_same_origin + + cookie_same_site_none), + setCookie(cross_origin, cookie_key, cookie_cross_origin + + cookie_same_site_none), + ]); + + // One window with DIP:none. (control) + const w_control_token = token(); + const w_control_url = same_origin + executor_path + + coep_none + `&uuid=${w_control_token}` + const w_control = window.open(w_control_url); + add_completion_callback(() => w_control.close()); + + // One window with DIP:isolate-and-credentialless. (experiment) + const w_credentialless_token = token(); + const w_credentialless_url = same_origin + executor_path + + coep_credentialless + `&uuid=${w_credentialless_token}`; + const w_credentialless = window.open(w_credentialless_url); + add_completion_callback(() => w_credentialless.close()); + + let GetCookie = (response) => { + const headers_credentialless = JSON.parse(response); + return parseCookies(headers_credentialless)[cookie_key]; + } + + const dedicatedWorkerTest = function( + description, origin, coep_for_worker, + expected_cookies_control, + expected_cookies_credentialless) { + promise_test_parallel(async t => { + // Create workers for both window. + const worker_token_1 = token(); + const worker_token_2 = token(); + + // Used to check for errors creating the DedicatedWorker. + const worker_error_1 = token(); + const worker_error_2 = token(); + + const w_worker_src_1 = same_origin + executor_worker_path + + coep_for_worker + `&uuid=${worker_token_1}`; + send(w_control_token, ` + new Worker("${w_worker_src_1}", {}); + worker.onerror = () => { + send("${worker_error_1}", "Worker blocked"); + } + `); + + const w_worker_src_2 = same_origin + executor_worker_path + + coep_for_worker + `&uuid=${worker_token_2}`; + send(w_credentialless_token, ` + const worker = new Worker("${w_worker_src_2}", {}); + worker.onerror = () => { + send("${worker_error_2}", "Worker blocked"); + } + `); + + // Fetch resources with the workers. + const request_token_1 = token(); + const request_token_2 = token(); + const request_url_1 = showRequestHeaders(origin, request_token_1); + const request_url_2 = showRequestHeaders(origin, request_token_2); + + send(worker_token_1, ` + fetch("${request_url_1}", {mode: 'no-cors', credentials: 'include'}) + `); + send(worker_token_2, ` + fetch("${request_url_2}", {mode: 'no-cors', credentials: 'include'}); + `); + + const response_control = await Promise.race([ + receive(worker_error_1), + receive(request_token_1).then(GetCookie) + ]); + assert_equals(response_control, + expected_cookies_control, + "coep:none => "); + + const response_credentialless = await Promise.race([ + receive(worker_error_2), + receive(request_token_2).then(GetCookie) + ]); + assert_equals(response_credentialless, + expected_cookies_credentialless, + "coep:credentialless => "); + }, `fetch ${description}`) + }; + + dedicatedWorkerTest("same-origin + credentialless worker", + same_origin, dip_credentialless, + cookie_same_origin, + cookie_same_origin); + + dedicatedWorkerTest("same-origin + require_corp worker", + same_origin, dip_require_corp, + cookie_same_origin, + cookie_same_origin); + + dedicatedWorkerTest("same-origin", + same_origin, dip_none, + cookie_same_origin, + "Worker blocked"); + + dedicatedWorkerTest("cross-origin", + cross_origin, dip_none, + cookie_cross_origin, + "Worker blocked" // Owner's policy is credentialles, so we can't + // create a worker with coep_none. + ); + + dedicatedWorkerTest("cross-origin + credentialless worker", + cross_origin, dip_credentialless, + undefined, // Worker created successfully with credentialless, and fetch doesn't get credentials + undefined // Worker created successfully with credentialless, and fetch doesn't get credentials + ); + + dedicatedWorkerTest("cross-origin + require_corp worker", + cross_origin, dip_require_corp, + cookie_cross_origin, + cookie_cross_origin // The worker's policy is require_corp and doing a + // fetch within it has nothing to do with the Owner's policy. + ); +}) diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-fetch.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-fetch.https.tentative.window.js new file mode 100644 index 00000000000..b809efa2c55 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-fetch.https.tentative.window.js @@ -0,0 +1,127 @@ +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +promise_test(async test => { + const same_origin = get_host_info().HTTPS_ORIGIN; + const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + const cookie_key = "dip_credentialless_fetch"; + const cookie_same_origin = "same_origin"; + const cookie_cross_origin = "cross_origin"; + + await Promise.all([ + setCookie(same_origin, cookie_key, cookie_same_origin + + cookie_same_site_none), + setCookie(cross_origin, cookie_key, cookie_cross_origin + + cookie_same_site_none), + ]); + + // One window with DIP:none. (control) + const w_control_token = token(); + const w_control_url = same_origin + executor_path + + dip_none + `&uuid=${w_control_token}` + const w_control = window.open(w_control_url); + add_completion_callback(() => w_control.close()); + + // One window with DIP:isolate-and-credentialless. (experiment) + const w_credentialless_token = token(); + const w_credentialless_url = same_origin + executor_path + + dip_credentialless + `&uuid=${w_credentialless_token}`; + const w_credentialless = window.open(w_credentialless_url); + add_completion_callback(() => w_credentialless.close()); + + const fetchTest = function( + description, origin, mode, credentials, + expected_cookies_control, + expected_cookies_credentialless) + { + promise_test_parallel(async test => { + const token_1 = token(); + const token_2 = token(); + + send(w_control_token, ` + fetch("${showRequestHeaders(origin, token_1)}", { + mode:"${mode}", + credentials: "${credentials}", + }); + `); + send(w_credentialless_token, ` + fetch("${showRequestHeaders(origin, token_2)}", { + mode:"${mode}", + credentials: "${credentials}", + }); + `); + + const headers_control = JSON.parse(await receive(token_1)); + const headers_credentialless = JSON.parse(await receive(token_2)); + + assert_equals(parseCookies(headers_control)[cookie_key], + expected_cookies_control, + "dip:none => "); + assert_equals(parseCookies(headers_credentialless)[cookie_key], + expected_cookies_credentialless, + "dip:isolate-and-credentialless => "); + }, `fetch ${description}`) + }; + + // Cookies are never sent with credentials='omit' + fetchTest("same-origin + no-cors + credentials:omit", + same_origin, 'no-cors', 'omit', + undefined, + undefined); + fetchTest("same-origin + cors + credentials:omit", + same_origin, 'cors', 'omit', + undefined, + undefined); + fetchTest("cross-origin + no-cors + credentials:omit", + cross_origin, 'no-cors', 'omit', + undefined, + undefined); + fetchTest("cross-origin + cors + credentials:omit", + cross_origin, 'cors', 'omit', + undefined, + undefined); + + // Same-origin request contains Cookies. + fetchTest("same-origin + no-cors + credentials:include", + same_origin, 'no-cors', 'include', + cookie_same_origin, + cookie_same_origin); + fetchTest("same-origin + cors + credentials:include", + same_origin, 'cors', 'include', + cookie_same_origin, + cookie_same_origin); + fetchTest("same-origin + no-cors + credentials:same-origin", + same_origin, 'no-cors', 'same-origin', + cookie_same_origin, + cookie_same_origin); + fetchTest("same-origin + cors + credentials:same-origin", + same_origin, 'cors', 'same-origin', + cookie_same_origin, + cookie_same_origin); + + // Cross-origin CORS requests contains Cookies, if credentials mode is set to + // 'include'. This does not depends on DIP. + fetchTest("cross-origin + cors + credentials:include", + cross_origin, 'cors', 'include', + cookie_cross_origin, + cookie_cross_origin); + fetchTest("cross-origin + cors + same-origin-credentials", + cross_origin, 'cors', 'same-origin', + undefined, + undefined); + + // Cross-origin no-CORS requests includes Cookies when: + // 1. credentials mode is 'include' + // 2. DIP: is not credentialless. + fetchTest("cross-origin + no-cors + credentials:include", + cross_origin, 'no-cors', 'include', + cookie_cross_origin, + undefined); + + fetchTest("cross-origin + no-cors + credentials:same-origin", + cross_origin, 'no-cors', 'same-origin', + undefined, + undefined); +}, ""); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-link.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-link.https.tentative.window.js new file mode 100644 index 00000000000..0405368c4ee --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-link.https.tentative.window.js @@ -0,0 +1,99 @@ +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +promise_test_parallel(async test => { + const same_origin = get_host_info().HTTPS_ORIGIN; + const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + const cookie_key = "dip_credentialless_link"; + const cookie_same_origin = "same_origin"; + const cookie_cross_origin = "cross_origin"; + + await Promise.all([ + setCookie(same_origin, cookie_key, cookie_same_origin + + cookie_same_site_none), + setCookie(cross_origin, cookie_key, cookie_cross_origin + + cookie_same_site_none), + ]); + + // One window with DIP:none. (control) + const w_control_token = token(); + const w_control_url = same_origin + executor_path + + dip_none + `&uuid=${w_control_token}` + const w_control = window.open(w_control_url); + add_completion_callback(() => w_control.close()); + + // One window with DIP:credentialless. (experiment) + const w_credentialless_token = token(); + const w_credentialless_url = same_origin + executor_path + + dip_credentialless + `&uuid=${w_credentialless_token}`; + const w_credentialless = window.open(w_credentialless_url); + add_completion_callback(() => w_credentialless.close()); + + let linkTest = function( + description, origin, mode, + expected_cookies_control, + expected_cookies_credentialless) + { + promise_test_parallel(async test => { + const token_1 = token(); + const token_2 = token(); + + send(w_control_token, ` + let link = document.createElement("link"); + link.href = "${showRequestHeaders(origin, token_1)}"; + link.rel = "stylesheet"; + ${mode} + document.head.appendChild(link); + `); + send(w_credentialless_token, ` + let link = document.createElement("link"); + link.href = "${showRequestHeaders(origin, token_2)}"; + link.rel = "stylesheet"; + ${mode} + document.head.appendChild(link); + `); + + const headers_control = JSON.parse(await receive(token_1)); + const headers_credentialless = JSON.parse(await receive(token_2)); + + assert_equals(parseCookies(headers_control)[cookie_key], + expected_cookies_control, + "dip:none => "); + assert_equals(parseCookies(headers_credentialless)[cookie_key], + expected_cookies_credentialless, + "dip:credentialless => "); + }, `link ${description}`) + }; + + // Same-origin request always contains Cookies: + linkTest("same-origin + undefined", + same_origin, '', + cookie_same_origin, + cookie_same_origin); + linkTest("same-origin + anonymous", + same_origin, 'link.crossOrigin="anonymous"', + cookie_same_origin, + cookie_same_origin); + linkTest("same-origin + use-credentials", + same_origin, 'link.crossOrigin="use-credentials"', + cookie_same_origin, + cookie_same_origin); + + // Cross-origin request contains cookies in the following cases: + // - DIP:credentialless is not set. + // - link.crossOrigin is `use-credentials`. + linkTest("cross-origin + undefined", + cross_origin, '', + cookie_cross_origin, + undefined); + linkTest("cross-origin + anonymous", + cross_origin, 'link.crossOrigin="anonymous"', + undefined, + undefined); + linkTest("cross-origin + use-credentials", + cross_origin, 'link.crossOrigin="use-credentials"', + cookie_cross_origin, + cookie_cross_origin); +}, "Main"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-redirect.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-redirect.tentative.window.js new file mode 100644 index 00000000000..67c0a5f07c1 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-redirect.tentative.window.js @@ -0,0 +1,55 @@ +// META: timeout=long +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js +const same_origin = get_host_info().HTTPS_ORIGIN; +const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; +const cookie_key = "dip_redirect"; +const cookie_same_origin = "same_origin"; +const cookie_cross_origin = "cross_origin"; + +// Operate on a window with DIP:credentialless.: +const w_token = token(); +const w_url = same_origin + executor_path + dip_credentialless + + `&uuid=${w_token}` +const w = window.open(w_url); +add_completion_callback(() => w.close()); + +let redirectTest = function(name, + redirect_origin, + final_origin, + expected_cookies) { + promise_test_parallel(async test => { + const token_request = token(); + const url = redirect_origin + "/common/redirect.py?location=" + + encodeURIComponent(showRequestHeaders(final_origin, token_request)); + + send(w_token, ` + const img = document.createElement("img"); + img.src = "${url}"; + document.body.appendChild(img); + `); + + const headers = JSON.parse(await receive(token_request)); + assert_equals(parseCookies(headers)[cookie_key], expected_cookies); + }, name) +}; + +promise_test_parallel(async test => { + await Promise.all([ + setCookie(same_origin, cookie_key, cookie_same_origin + + cookie_same_site_none), + setCookie(cross_origin, cookie_key, cookie_cross_origin + + cookie_same_site_none), + ]); + + redirectTest("same-origin -> same-origin", + same_origin, same_origin, cookie_same_origin); + redirectTest("same-origin -> cross-origin", + same_origin, cross_origin, undefined) + redirectTest("cross-origin -> same-origin", + cross_origin, same_origin, undefined); + redirectTest("cross-origin -> cross-origin", + cross_origin, cross_origin, undefined); +}, "Setup"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-script.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-script.https.tentative.window.js new file mode 100644 index 00000000000..8534b2f70e8 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-script.https.tentative.window.js @@ -0,0 +1,99 @@ +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +window.onload = function() { + promise_test_parallel(async test => { + const same_origin = get_host_info().HTTPS_ORIGIN; + const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + const cookie_key = "dip_credentialless_script"; + const cookie_same_origin = "same_origin"; + const cookie_cross_origin = "cross_origin"; + + await Promise.all([ + setCookie(same_origin, cookie_key, cookie_same_origin + + cookie_same_site_none), + setCookie(cross_origin, cookie_key, cookie_cross_origin + + cookie_same_site_none), + ]); + + // One window with DIP:none. (control) + const w_control_token = token(); + const w_control_url = same_origin + executor_path + + dip_none + `&uuid=${w_control_token}` + const w_control = window.open(w_control_url); + add_completion_callback(() => w_control.close()); + + // One window with DIP:credentialless. (experiment) + const w_credentialless_token = token(); + const w_credentialless_url = same_origin + executor_path + + dip_credentialless + `&uuid=${w_credentialless_token}`; + const w_credentialless = window.open(w_credentialless_url); + add_completion_callback(() => w_credentialless.close()); + + let scriptTest = function( + description, origin, mode, + expected_cookies_control, + expected_cookies_credentialless) + { + promise_test_parallel(async test => { + const token_1 = token(); + const token_2 = token(); + + send(w_control_token, ` + let script = document.createElement("script"); + script.src = "${showRequestHeaders(origin, token_1)}"; + ${mode}; + document.body.appendChild(script); + `); + send(w_credentialless_token, ` + let script = document.createElement("script"); + script.src = "${showRequestHeaders(origin, token_2)}"; + ${mode}; + document.body.appendChild(script); + `); + + const headers_control = JSON.parse(await receive(token_1)); + const headers_credentialless = JSON.parse(await receive(token_2)); + + assert_equals(parseCookies(headers_control)[cookie_key], + expected_cookies_control, + "dip:none => "); + assert_equals(parseCookies(headers_credentialless)[cookie_key], + expected_cookies_credentialless, + "dip:credentialless => "); + }, `script ${description}`) + }; + + // Same-origin request always contains Cookies: + scriptTest("same-origin + undefined", + same_origin, '', + cookie_same_origin, + cookie_same_origin); + scriptTest("same-origin + anonymous", + same_origin, 'script.crossOrigin="anonymous"', + cookie_same_origin, + cookie_same_origin); + scriptTest("same-origin + use-credentials", + same_origin, 'script.crossOrigin="use-credentials"', + cookie_same_origin, + cookie_same_origin); + + // Cross-origin request contains cookies in the following cases: + // - DIP:credentialless is not set. + // - script.crossOrigin is `use-credentials`. + scriptTest("cross-origin + undefined", + cross_origin, '', + cookie_cross_origin, + undefined); + scriptTest("cross-origin + anonymous", + cross_origin, 'script.crossOrigin="anonymous"', + undefined, + undefined); + scriptTest("cross-origin + use-credentials", + cross_origin, 'script.crossOrigin="use-credentials"', + cookie_cross_origin, + cookie_cross_origin); + }, "Main"); +} diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-service-worker.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-service-worker.https.tentative.window.js new file mode 100644 index 00000000000..82209ca7fc8 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-service-worker.https.tentative.window.js @@ -0,0 +1,113 @@ +// META: timeout=long +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/service-workers/service-worker/resources/test-helpers.sub.js +// META: script=./resources/common.js + +const same_origin = get_host_info().HTTPS_ORIGIN; +const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; +const cookie_key = "credentialless_service_worker"; +const cookie_same_origin = "same_origin"; +const cookie_cross_origin = "cross_origin"; + +promise_test(async t => { + await Promise.all([ + setCookie(same_origin, cookie_key, cookie_same_origin + + cookie_same_site_none), + setCookie(cross_origin, cookie_key, cookie_cross_origin + + cookie_same_site_none), + ]); + + // One iframe with DIP:none. (control) + const w_control_token = token(); + const w_control_url = same_origin + executor_path + + dip_none + `&uuid=${w_control_token}` + const w_control = document.createElement("iframe"); + w_control.src = w_control_url; + document.body.appendChild(w_control); + + // One iframe with DIP:credentialless. (experiment) + const w_credentialless_token = token(); + const w_credentialless_url = same_origin + executor_path + + dip_credentialless + `&uuid=${w_credentialless_token}`; + const w_credentialless = document.createElement("iframe"); + w_credentialless.src = w_credentialless_url; + document.body.appendChild(w_credentialless); + + const serviceWorkerTest = function( + description, origin, dip_for_worker, + expected_cookies_control, + expected_cookies_credentialless) + { + promise_test(async test => { + // Create workers for both window. + const control_worker_token = token(); + const credentialless_worker_token = token(); + + const w_control_worker_src = same_origin + executor_worker_path + + dip_for_worker + `&uuid=${control_worker_token}`; + const w_control_worker_reg = + await service_worker_unregister_and_register( + test, w_control_worker_src, w_control_url); + + const w_credentialless_worker_src = same_origin + executor_worker_path + + dip_for_worker + `&uuid=${credentialless_worker_token}`; + const w_credentialless_worker_reg = + await service_worker_unregister_and_register( + test, w_credentialless_worker_src, w_credentialless_url); + + // Fetch resources from the workers. + const control_request_token = token(); + const credentialless_request_token = token(); + const control_request_url = showRequestHeaders(origin, control_request_token); + const credentialless_request_url = showRequestHeaders(origin, credentialless_request_token); + send(control_worker_token, ` + fetch("${control_request_url}", { + mode: 'no-cors', + credentials: 'include' + }) + `); + send(credentialless_worker_token, ` + fetch("${credentialless_request_url}", { + mode: 'no-cors', + credentials: 'include' + }) + `); + + // Retrieve the resource request headers. + const headers_control = JSON.parse(await receive(control_request_token)); + const headers_credentialless = JSON.parse(await receive(credentialless_request_token)); + + assert_equals(parseCookies(headers_control)[cookie_key], + expected_cookies_control, + "dip:none => "); + assert_equals(parseCookies(headers_credentialless)[cookie_key], + expected_cookies_credentialless, + "dip:credentialless => "); + + w_control_worker_reg.unregister(); + w_credentialless_worker_reg.unregister(); + }, `fetch ${description}`) + }; + + serviceWorkerTest("same-origin", + same_origin, dip_none, + cookie_same_origin, + cookie_same_origin); + + serviceWorkerTest("same-origin + credentialless worker", + same_origin, dip_credentialless, + cookie_same_origin, + cookie_same_origin); + + serviceWorkerTest("cross-origin", + cross_origin, dip_none, + cookie_cross_origin, + cookie_cross_origin); + + serviceWorkerTest("cross-origin + credentialless worker", + cross_origin, dip_credentialless, + undefined, + undefined); +}) diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.js new file mode 100644 index 00000000000..e2e7b42619c --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-shared-worker.https.tentative.window.js @@ -0,0 +1,93 @@ +// META: variant=?request_origin=same_origin&worker_dip=none&window_dip=none +// META: variant=?request_origin=same_origin&worker_dip=none&window_dip=credentialless +// META: variant=?request_origin=same_origin&worker_dip=credentialless&window_dip=none +// META: variant=?request_origin=same_origin&worker_dip=credentialless&window_dip=credentialless +// META: variant=?request_origin=cross_origin&worker_dip=none&window_dip=none +// META: variant=?request_origin=cross_origin&worker_dip=none&window_dip=credentialless +// META: variant=?request_origin=cross_origin&worker_dip=credentialless&window_dip=none +// META: variant=?request_origin=cross_origin&worker_dip=credentialless&window_dip=credentialless +// META: timeout=long +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +// Test description: +// Request a resource from a SharedWorker. Check the request's cookies. +// +// Variant: +// - The Window DIP policy: none or credentialless. +// - The SharedWorker DIP policy: none or credentialless. +// - The SharedWorker's request URL origin: same-origin or cross-origin. + +const same_origin = get_host_info().HTTPS_ORIGIN; +const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; +const cookie_key = token(); +const cookie_same_origin = "same_origin"; +const cookie_cross_origin = "cross_origin"; + +const variants = new URLSearchParams(window.location.search); +const window_dip = variants.get('window_dip') == 'none' + ? dip_none + : dip_credentialless; +const worker_dip = variants.get('worker_dip') == 'none' + ? dip_none + : dip_credentialless; +const request_origin = variants.get('request_origin') == 'same-origin' + ? same_origin + : cross_origin; + +// When using DIP:credentialless: cross-origin no-cors request do not include +// credentials. Note: This must not depend on the window's DIP policy. +const worker_expected_cookie = + request_origin == same_origin + ? cookie_same_origin + : (worker_dip == dip_credentialless + ? undefined + : cookie_cross_origin); + +// From a JSON representing the `response` HTTP headers key-values, return the +// cookie corresponding to the `cookie_key`. +const get_cookie = (response) => { + const headers_credentialless = JSON.parse(response); + return parseCookies(headers_credentialless)[cookie_key]; +} + +promise_test(async test => { + // 0. Populate cookies for the two origins. + await Promise.all([ + setCookie(same_origin, cookie_key, cookie_same_origin + + cookie_same_site_none), + setCookie(cross_origin, cookie_key, cookie_cross_origin + + cookie_same_site_none), + ]); + + // 1. Create the popup with the `window_dip` DIP policy: + const popup = environments.document(window_dip)[0]; + + // 2. Create the worker with the `worker_dip` DIP policy: + const worker_token = token(); + const worker_error = token(); + const worker_src = same_origin + executor_worker_path + worker_dip + + `&uuid=${worker_token}`; + send(popup, ` + let worker = new SharedWorker("${worker_src}", {}); + worker.onerror = () => { + send("${worker_error}", "Worker blocked"); + } + `); + + // 3. Request the resource from the worker, with the `request_origin` origin. + const request_token = token(); + const request_url = showRequestHeaders(request_origin, request_token); + send(worker_token, `fetch("${request_url}", { + mode: 'no-cors', + credentials: 'include', + })`); + const request_cookie = await Promise.race([ + receive(worker_error), + receive(request_token).then(get_cookie) + ]); + + assert_equals(request_cookie, worker_expected_cookie); +}) diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-video.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-video.https.tentative.window.js new file mode 100644 index 00000000000..5998af44335 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-video.https.tentative.window.js @@ -0,0 +1,53 @@ +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +const same_origin = get_host_info().HTTPS_ORIGIN; +const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; +const cookie_key = "dip_credentialless_image"; +const cookie_same_origin = "same_origin"; +const cookie_cross_origin = "cross_origin"; + +promise_setup(async test => { + await Promise.all([ + setCookie(same_origin, cookie_key, cookie_same_origin + + cookie_same_site_none), + setCookie(cross_origin, cookie_key, cookie_cross_origin + + cookie_same_site_none), + ]); +}, "Setup cookies"); + +const videoTest = function(description, origin, mode, expected_cookie) { + promise_test(async test => { + const video_token = token(); + + let video = document.createElement("video"); + video.src = showRequestHeaders(origin, video_token); + video.autoplay = true; + if (mode) + video.crossOrigin = mode; + document.body.appendChild(video); + + const headers = JSON.parse(await receive(video_token)); + + assert_equals(parseCookies(headers)[cookie_key], expected_cookie); + }, `video ${description}`) +}; + +// Same-origin request always contains Cookies: +videoTest("same-origin + undefined", + same_origin, undefined, cookie_same_origin); +videoTest("same-origin + anonymous", + same_origin, 'anonymous', cookie_same_origin); +videoTest("same-origin + use-credentials", + same_origin, 'use-credentials', cookie_same_origin); + +// Cross-origin request contains cookies, only when sent in CORS mode, using +// crossOrigin = "use-credentials". +videoTest("cross-origin + undefined", + cross_origin, '', undefined); +videoTest("cross-origin + anonymous", + cross_origin, 'anonymous', undefined); +videoTest("cross-origin + use-credentials", + cross_origin, 'use-credentials', cookie_cross_origin); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-video.https.tentative.window.js.headers b/tests/wpt/tests/html/document-isolation-policy/credentialless-video.https.tentative.window.js.headers new file mode 100644 index 00000000000..b8c5c47c856 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-video.https.tentative.window.js.headers @@ -0,0 +1 @@ +Document-Isolation-Policy:isolate-and-credentialless diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-websocket.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-websocket.https.tentative.window.js new file mode 100644 index 00000000000..4205dd74eaf --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-websocket.https.tentative.window.js @@ -0,0 +1,77 @@ +// META: timeout=long +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js + +promise_test_parallel(async test => { + const same_origin = get_host_info().HTTPS_ORIGIN; + const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + const cookie_key = "dip_credentialless_websocket"; + const cookie_same_origin = "same_origin"; + const cookie_cross_origin = "cross_origin"; + + await Promise.all([ + setCookie(same_origin, cookie_key, cookie_same_origin + + cookie_same_site_none), + setCookie(cross_origin, cookie_key, cookie_cross_origin + + cookie_same_site_none), + ]); + + // One window with DIP:none. (control) + const w_control_token = token(); + const w_control_url = same_origin + executor_path + + dip_none + `&uuid=${w_control_token}` + const w_control = window.open(w_control_url); + add_completion_callback(() => w_control.close()); + + // One window with DIP:credentialless. (experiment) + const w_credentialless_token = token(); + const w_credentialless_url = same_origin + executor_path + + dip_credentialless + `&uuid=${w_credentialless_token}`; + const w_credentialless = window.open(w_credentialless_url); + add_completion_callback(() => w_credentialless.close()); + + let WebSocketTest = function( + description, origin, + expected_cookies_control, + expected_cookies_credentialless) + { + promise_test_parallel(async test => { + const token_1 = token(); + const token_2 = token(); + + const origin_for_websocket = origin.replace("https", "wss"); + + send(w_control_token, ` + var ws = new WebSocket("${showRequestHeaders(origin_for_websocket, token_1)}"); + `); + + send(w_credentialless_token, ` + var ws = new WebSocket("${showRequestHeaders(origin_for_websocket, token_2)}"); + `); + + const headers_control = JSON.parse(await receive(token_1)); + const headers_credentialless = JSON.parse(await receive(token_2)); + + assert_equals(parseCookies(headers_control)[cookie_key], + expected_cookies_control, + "dip:none => "); + assert_equals(parseCookies(headers_credentialless)[cookie_key], + expected_cookies_credentialless, + "dip:credentialless => "); + }, `WebSocket ${description}`) + }; + + // Same-origin request always contains Cookies: + WebSocketTest("same-origin", + same_origin, + cookie_same_origin, + cookie_same_origin); + + // Cross-origin request also always contains Cookies: + WebSocketTest("cross-origin", + cross_origin, + cookie_cross_origin, + cookie_cross_origin); +}, "Main"); diff --git a/tests/wpt/tests/html/document-isolation-policy/resources/common.js b/tests/wpt/tests/html/document-isolation-policy/resources/common.js new file mode 100644 index 00000000000..df4bfcfc7d5 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/resources/common.js @@ -0,0 +1,136 @@ +const executor_path = '/common/dispatcher/executor.html?pipe='; +const executor_worker_path = '/common/dispatcher/executor-worker.js?pipe='; +const executor_service_worker_path = '/common/dispatcher/executor-service-worker.js?pipe='; + +// COEP +const coep_none = + '|header(Cross-Origin-Embedder-Policy,none)'; +const coep_credentialless = + '|header(Cross-Origin-Embedder-Policy,credentialless)'; + +// DIP +const dip_none = + '|header(Document-Isolation-Policy,none)'; +const dip_credentialless = + '|header(Document-Isolation-Policy,isolate-and-credentialless)'; +const dip_require_corp = + '|header(Document-Isolation-Policy,isolate-and-require-corp)'; + +// DIP-Report-Only +const dip_report_only_credentialless = + '|header(Document-Isolation-Policy-Report-Only,isolate-and-credentialless)'; + +// CORP +const corp_cross_origin = + '|header(Cross-Origin-Resource-Policy,cross-origin)'; + +const cookie_same_site_none = ';SameSite=None;Secure'; + +// Test using the modern async/await primitives are easier to read/write. +// However they run sequentially, contrary to async_test. This is the parallel +// version, to avoid timing out. +let promise_test_parallel = (promise, description) => { + async_test(test => { + promise(test) + .then(() => test.done()) + .catch(test.step_func(error => { throw error; })); + }, description); +}; + +// Add a cookie |cookie_key|=|cookie_value| on an |origin|. +// Note: cookies visibility depends on the path of the document. Those are set +// from a document from: /html/cross-origin-embedder-policy/credentialless/. So +// the cookie is visible to every path underneath. +const setCookie = async (origin, cookie_key, cookie_value) => { + const popup_token = token(); + const popup_url = origin + executor_path + `&uuid=${popup_token}`; + const popup = window.open(popup_url); + + const reply_token = token(); + send(popup_token, ` + document.cookie = "${cookie_key}=${cookie_value}"; + send("${reply_token}", "done"); + `); + assert_equals(await receive(reply_token), "done"); + popup.close(); +} + +let parseCookies = function(headers_json) { + if (!headers_json["cookie"]) + return {}; + + return headers_json["cookie"] + .split(';') + .map(v => v.split('=')) + .reduce((acc, v) => { + acc[v[0].trim()] = v[1].trim(); + return acc; + }, {}); +} + +// Open a new window with a given |origin|, loaded with DIP:credentialless. The +// new document will execute any scripts sent toward the token it returns. +const newCredentiallessWindow = (origin) => { + const main_document_token = token(); + const url = origin + executor_path + dip_credentialless + + `&uuid=${main_document_token}`; + const context = window.open(url); + add_completion_callback(() => w.close()); + return main_document_token; +}; + +// Create a new iframe, loaded with DIP:credentialless. +// The new document will execute any scripts sent toward the token it returns. +const newCredentiallessIframe = (parent_token, child_origin) => { + const sub_document_token = token(); + const iframe_url = child_origin + executor_path + dip_credentialless + + `&uuid=${sub_document_token}`; + send(parent_token, ` + let iframe = document.createElement("iframe"); + iframe.src = "${iframe_url}"; + document.body.appendChild(iframe); + `) + return sub_document_token; +}; + +// A common interface for building the 4 type of execution contexts: +// It outputs: [ +// - The token to communicate with the environment. +// - A promise resolved when the environment encounters an error. +// ] +const environments = { + document: headers => { + const tok = token(); + const url = window.origin + executor_path + headers + `&uuid=${tok}`; + const context = window.open(url); + add_completion_callback(() => context.close()); + return [tok, new Promise(resolve => {})]; + }, + + dedicated_worker: headers => { + const tok = token(); + const url = window.origin + executor_worker_path + headers + `&uuid=${tok}`; + const context = new Worker(url); + return [tok, new Promise(resolve => context.onerror = resolve)]; + }, + + shared_worker: headers => { + const tok = token(); + const url = window.origin + executor_worker_path + headers + `&uuid=${tok}`; + const context = new SharedWorker(url); + return [tok, new Promise(resolve => context.onerror = resolve)]; + }, + + service_worker: headers => { + const tok = token(); + const url = window.origin + executor_worker_path + headers + `&uuid=${tok}`; + const scope = url; // Generate a one-time scope for service worker. + const error = new Promise(resolve => { + navigator.serviceWorker.register(url, {scope: scope}) + .then(registration => { + add_completion_callback(() => registration.unregister()); + }, /* catch */ resolve); + }); + return [tok, error]; + }, +}; diff --git a/tests/wpt/tests/html/document-isolation-policy/resources/redirect_none_to_credentialless.py b/tests/wpt/tests/html/document-isolation-policy/resources/redirect_none_to_credentialless.py new file mode 100644 index 00000000000..34b4e9f8ea4 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/resources/redirect_none_to_credentialless.py @@ -0,0 +1,13 @@ +DIP_HEADER = b"|header(document-isolation-policy, isolate-and-credentialless)" + +def main(request, response): + """ + Causes a redirection that the initial response doesn't have credentialless and the + redirected response has credentialless. + """ + response.status = 302 + + location = \ + request.GET[b'redirectTo'] + b"&pipe=" + DIP_HEADER + + response.headers.set(b"Location", location) diff --git a/tests/wpt/tests/html/document-isolation-policy/service-worker-coep-credentialless-proxy.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/service-worker-coep-credentialless-proxy.https.tentative.window.js new file mode 100644 index 00000000000..e12c660f7b4 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/service-worker-coep-credentialless-proxy.https.tentative.window.js @@ -0,0 +1,85 @@ +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js +// META: script=/service-workers/service-worker/resources/test-helpers.sub.js + +const same_origin = get_host_info().HTTPS_ORIGIN; +const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + +promise_test(async test => { + const this_token_1 = token(); + const this_token_2 = token(); + + // Register a COEP:credentialless ServiceWorker. + const sw_token = token(); + const sw_url = + executor_service_worker_path + coep_credentialless + `&uuid=${sw_token}`; + // Executors should be controlled by the service worker. + const scope = executor_path; + const sw_registration = + await service_worker_unregister_and_register(test, sw_url, scope); + test.add_cleanup(() => sw_registration.unregister()); + await wait_for_state(test, sw_registration.installing, 'activated'); + + // Configure the ServiceWorker to proxy the fetch requests. Wait for the + // worker to be installed and activated. + send(sw_token, ` + fetchHandler = event => { + if (!event.request.url.includes("/proxied")) + return; + + send("${this_token_1}", "ServiceWorker: Proxying"); + + // Response with a cross-origin no-cors resource. + const url = "${cross_origin}" + "/common/blank.html"; + + event.respondWith(new Promise(async resolve => { + try { + let response = await fetch(url, { + mode: "no-cors", + credentials: "include" + }); + send("${this_token_1}", "ServiceWorker: Fetch success"); + resolve(response); + } catch (error) { + send("${this_token_1}", "ServiceWorker: Fetch failure"); + resolve(new Response("", {status: 400})); + } + })); + } + + await clients.claim(); + + send("${this_token_1}", serviceWorker.state); + `) + assert_equals(await receive(this_token_1), "activated"); + + // Create a DIP:credentialless document. + const document_token = environments["document"](dip_credentialless)[0]; + + // The document fetches a same-origin no-cors resource. The requests needs to + // be same-origin to be handled by the ServiceWorker. + send(document_token, ` + try { + const response = await fetch("/proxied", { mode: "no-cors", }); + + send("${this_token_2}", "Document: Fetch success"); + } catch (error) { + send("${this_token_2}", "Document: Fetch error"); + } + `); + + // The COEP:credentialless ServiceWorker is able to handle the cross-origin + // no-cors request, requested with credentials. + assert_equals(await receive(this_token_1), "ServiceWorker: Proxying"); + assert_equals(await receive(this_token_1), "ServiceWorker: Fetch success"); + + // The COEP:credentialless Document is allowed by CORP to get it. + assert_equals(await receive(this_token_2), "Document: Fetch success"); + + // test.add_cleanup doesn't allow waiting for a promise. Unregistering a + // ServiceWorker is an asynchronous operation. It might not be completed on + // time for the next test. Do it here for extra flakiness safety. + await sw_registration.unregister() +}, "COEP:credentialless ServiceWorker"); diff --git a/tests/wpt/tests/html/document-isolation-policy/service-worker-coep-none-proxy.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/service-worker-coep-none-proxy.https.tentative.window.js new file mode 100644 index 00000000000..7bee4e77eae --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/service-worker-coep-none-proxy.https.tentative.window.js @@ -0,0 +1,87 @@ +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=./resources/common.js +// META: script=/service-workers/service-worker/resources/test-helpers.sub.js + +const same_origin = get_host_info().HTTPS_ORIGIN; +const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + +promise_test(async test => { + const this_token_1 = token(); + const this_token_2 = token(); + + // Register a COEP:none ServiceWorker. + const sw_token = token(); + const sw_url = executor_service_worker_path + coep_none + `&uuid=${sw_token}`; + // Executors should be controlled by the service worker. + const scope = executor_path; + const sw_registration = + await service_worker_unregister_and_register(test, sw_url, scope); + test.add_cleanup(() => sw_registration.unregister()); + await wait_for_state(test, sw_registration.installing, 'activated'); + + // Configure the ServiceWorker to proxy the fetch requests. Wait for the + // worker to be installed and activated. + send(sw_token, ` + fetchHandler = event => { + if (!event.request.url.includes("/proxied")) + return; + + send("${this_token_1}", "ServiceWorker: Proxying"); + + // Response with a cross-origin no-cors resource. + const url = "${cross_origin}" + "/common/blank.html"; + + event.respondWith(new Promise(async resolve => { + try { + let response = await fetch(url, { + mode: "no-cors", + credentials: "include" + }); + send("${this_token_1}", "ServiceWorker: Fetch success"); + resolve(response); + } catch (error) { + send("${this_token_1}", "ServiceWorker: Fetch failure"); + resolve(new Response("", {status: 400})); + } + })); + } + + await clients.claim(); + + send("${this_token_1}", serviceWorker.state); + `) + assert_equals(await receive(this_token_1), "activated"); + + // Create a DIP:credentialless document. + const document_token = environments["document"](dip_credentialless)[0]; + + // The document fetches a same-origin no-cors resource. The requests needs to + // be same-origin to be handled by the ServiceWorker. + send(document_token, ` + try { + const response = await fetch("/proxied", { + mode: "no-cors", + credentials: "include" + }); + + send("${this_token_2}", "Document: Fetch success"); + } catch (error) { + send("${this_token_2}", "Document: Fetch error"); + } + `); + + // The COEP:unsafe-none ServiceWorker is able to handle the cross-origin + // no-cors request, requested with credentials. + assert_equals(await receive(this_token_1), "ServiceWorker: Proxying"); + assert_equals(await receive(this_token_1), "ServiceWorker: Fetch success"); + + // However, the DIP:credentialless Document is disallowed by CORP to get it. + assert_equals(await receive(this_token_2), "Document: Fetch error"); + + // test.add_cleanup doesn't allow waiting for a promise. Unregistering a + // ServiceWorker is an asynchronous operation. It might not be completed on + // time for the next test. Do it here for extra flakiness safety. + await sw_registration.unregister() +}, "COEP:unsafe-none ServiceWorker"); diff --git a/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-001-ref.html b/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-001-ref.html index e00e6c52ff5..0c77c0e14fc 100644 --- a/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-001-ref.html +++ b/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-001-ref.html @@ -1,6 +1,5 @@ Details pseudo-elements - + +
+ summary + contents +
diff --git a/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-005-ref.html b/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-005-ref.html new file mode 100644 index 00000000000..b34f2e35f04 --- /dev/null +++ b/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-005-ref.html @@ -0,0 +1,16 @@ + +::details-content pseudo element supports ::before and ::after + + + +
+ summary + The contents
+ are on multiple
+ lines. +
diff --git a/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-005.html b/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-005.html new file mode 100644 index 00000000000..71afb31193e --- /dev/null +++ b/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-005.html @@ -0,0 +1,22 @@ + +::details-content pseudo element supports ::first-letter and ::first-line + + + + + + + + + +
+ summary + The contents
+ are on multiple
+ lines. +
diff --git a/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-006.html b/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-006.html new file mode 100644 index 00000000000..503cba5ebb4 --- /dev/null +++ b/tests/wpt/tests/html/rendering/the-details-element/details-pseudo-elements-006.html @@ -0,0 +1,40 @@ + +::details-content pseudo element supports :hover + + + + + + + + + + + + + +
+ summary +
contents
+
+ + diff --git a/tests/wpt/tests/html/rendering/widgets/textarea-cols-rows.html b/tests/wpt/tests/html/rendering/widgets/textarea-cols-rows.html index 6ad24a2eb8b..5d02a4653ef 100644 --- a/tests/wpt/tests/html/rendering/widgets/textarea-cols-rows.html +++ b/tests/wpt/tests/html/rendering/widgets/textarea-cols-rows.html @@ -48,11 +48,11 @@ test(() => { test(() => { const computedWidth = getComputedStyle(computed).width; assert_equals(computed.offsetWidth, - parseInt(computedWidth.substring(0, computedWidth.length - 2))); + Math.round(computedWidth.substring(0, computedWidth.length - 2))); const computedHeight = getComputedStyle(computed).height; assert_equals(computed.offsetHeight, - parseInt(computedHeight.substring(0, computedHeight.length - 2))); + Math.round(computedHeight.substring(0, computedHeight.length - 2))); }, 'Cols/rows attribute values affect layout-dependent computed style'); test(() => { diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-inside-top-layer.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-inside-top-layer.tentative.html new file mode 100644 index 00000000000..6d70f3aaf8d --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-inside-top-layer.tentative.html @@ -0,0 +1,92 @@ + + +appearance:base select nested inside top layer elements + + + + + + + + +
popover1 + +
+ +dialog1 + + + + + + diff --git a/tests/wpt/tests/html/semantics/invokers/interesttarget-on-popover-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/interesttarget-on-popover-behavior.tentative.html index b930fc645dd..fd0a77b9359 100644 --- a/tests/wpt/tests/html/semantics/invokers/interesttarget-on-popover-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/interesttarget-on-popover-behavior.tentative.html @@ -71,7 +71,7 @@ promise_test(async function (t) { t.add_cleanup(reset); assert_false(interestee.matches(":popover-open")); - interestbutton.setAttribute("interestaction", "togglepopover"); + interestbutton.setAttribute("interestaction", "toggle-popover"); await hoverOver(interestbutton); assert_true(interestee.matches(":popover-open")); }, "hover interest invoking (as togglepopover) closed popover opens"); @@ -80,7 +80,7 @@ t.add_cleanup(reset); interestee.showPopover(); assert_true(interestee.matches(":popover-open")); - interestbutton.setAttribute("interestaction", "togglepopover"); + interestbutton.setAttribute("interestaction", "toggle-popover"); await hoverOver(interestbutton); assert_false(interestee.matches(":popover-open")); }, "hover interest invoking (as togglepopover) open popover closes"); @@ -88,7 +88,7 @@ promise_test(async function (t) { t.add_cleanup(reset); assert_false(interestee.matches(":popover-open")); - interestbutton.setAttribute("interestaction", "togglepopover"); + interestbutton.setAttribute("interestaction", "toggle-popover"); interestbutton.focus(); assert_true(interestee.matches(":popover-open")); }, "focus interest invoking (as togglepopover) closed popover opens"); @@ -97,7 +97,7 @@ t.add_cleanup(reset); interestee.showPopover(); assert_true(interestee.matches(":popover-open")); - interestbutton.setAttribute("interestaction", "togglepopover"); + interestbutton.setAttribute("interestaction", "toggle-popover"); interestbutton.focus(); assert_false(interestee.matches(":popover-open")); }, "focus interest invoking (as togglepopover) open popover closes"); @@ -105,7 +105,7 @@ promise_test(async function (t) { t.add_cleanup(reset); assert_false(interestee.matches(":popover-open")); - interestbutton.setAttribute("interestaction", "tOgGlEpOpOvEr"); + interestbutton.setAttribute("interestaction", "tOgGlE-pOpOvEr"); interestbutton.focus(); assert_true(interestee.matches(":popover-open")); }, "interest invoking (as togglepopover - case insensitive) closed popover opens"); diff --git a/tests/wpt/tests/html/semantics/invokers/invokeevent-dispatch-shadow.tentative.html b/tests/wpt/tests/html/semantics/invokers/invokeevent-dispatch-shadow.tentative.html index fb2a113994f..9d9b9925978 100644 --- a/tests/wpt/tests/html/semantics/invokers/invokeevent-dispatch-shadow.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invokeevent-dispatch-shadow.tentative.html @@ -20,16 +20,16 @@ const slot = shadow.appendChild(document.createElement("slot")); let childEvent = null; let childEventTarget = null; - let childEventInvoker = null; + let childEventSource = null; let hostEvent = null; let hostEventTarget = null; - let hostEventInvoker = null; + let hostEventSource = null; slot.addEventListener( "command", (e) => { childEvent = e; childEventTarget = e.target; - childEventInvoker = e.invoker; + childEventSource = e.source; }, { once: true }, ); @@ -38,13 +38,13 @@ (e) => { hostEvent = e; hostEventTarget = e.target; - hostEventInvoker = e.invoker; + hostEventSource = e.source; }, { once: true }, ); const event = new CommandEvent("command", { bubbles: true, - invoker: slot, + source: slot, composed: true, }); slot.dispatchEvent(event); @@ -55,9 +55,9 @@ "target is child inside shadow boundary", ); assert_equals( - childEventInvoker, + childEventSource, slot, - "invoker is child inside shadow boundary", + "source is child inside shadow boundary", ); assert_equals( hostEvent, @@ -70,11 +70,11 @@ "target is retargeted to shadowroot host", ); assert_equals( - hostEventInvoker, + hostEventSource, host, - "invoker is retargeted to shadowroot host", + "source is retargeted to shadowroot host", ); - }, "CommandEvent propagates across shadow boundaries retargeting invoker"); + }, "CommandEvent propagates across shadow boundaries retargeting source"); test(function (t) { const host = document.createElement("div"); @@ -84,22 +84,22 @@ const button = shadow.appendChild(document.createElement("button")); const invokee = host.appendChild(document.createElement("div")); button.commandForElement = invokee; - button.command = 'test-command'; + button.command = '--test-command'; let event = null; let eventTarget = null; - let eventInvoker = null; + let eventSource = null; invokee.addEventListener( "command", (e) => { event = e; eventTarget = e.target; - eventInvoker = e.invoker; + eventSource = e.source; }, { once: true }, ); button.click(); assert_true(event instanceof CommandEvent); assert_equals(eventTarget, invokee, "target is invokee"); - assert_equals(eventInvoker, host, "invoker is host"); - }, "cross shadow CommandEvent retargets invoker to host element"); + assert_equals(eventSource, host, "source is host"); + }, "cross shadow CommandEvent retargets source to host element"); diff --git a/tests/wpt/tests/html/semantics/invokers/invokeevent-interface.tentative.html b/tests/wpt/tests/html/semantics/invokers/invokeevent-interface.tentative.html index 500c05f88a1..cc2b5c94ea2 100644 --- a/tests/wpt/tests/html/semantics/invokers/invokeevent-interface.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invokeevent-interface.tentative.html @@ -21,9 +21,9 @@ test(function () { const event = new CommandEvent("test"); - assert_equals(event.invoker, null); - assert_readonly(event, "invoker", "readonly attribute value"); - }, "invoker is readonly defaulting to null"); + assert_equals(event.source, null); + assert_readonly(event, "source", "readonly attribute value"); + }, "source is readonly defaulting to null"); test(function () { const event = new CommandEvent("test", { command: "sAmPle" }); @@ -87,80 +87,80 @@ }, "command set to an object with a toString function"); test(function () { - const eventInit = { command: "sample", invoker: document.body }; + const eventInit = { command: "sample", source: document.body }; const event = new CommandEvent("test", eventInit); assert_equals(event.command, "sample"); - assert_equals(event.invoker, document.body); + assert_equals(event.source, document.body); }, "CommandEventInit properties set value"); test(function () { const eventInit = { command: "open", - invoker: document.getElementById("div"), + source: document.getElementById("div"), }; const event = new CommandEvent("beforetoggle", eventInit); assert_equals(event.command, "open"); - assert_equals(event.invoker, document.getElementById("div")); + assert_equals(event.source, document.getElementById("div")); }, "CommandEventInit properties set value 2"); test(function () { const eventInit = { command: "closed", - invoker: document.getElementById("button"), + source: document.getElementById("button"), }; const event = new CommandEvent("toggle", eventInit); assert_equals(event.command, "closed"); - assert_equals(event.invoker, document.getElementById("button")); + assert_equals(event.source, document.getElementById("button")); }, "CommandEventInit properties set value 3"); test(function () { - const event = new CommandEvent("test", { invoker: undefined }); - assert_equals(event.invoker, null); - }, "invoker set to undefined"); + const event = new CommandEvent("test", { source: undefined }); + assert_equals(event.source, null); + }, "source set to undefined"); test(function () { - const event = new CommandEvent("test", { invoker: null }); - assert_equals(event.invoker, null); - }, "invoker set to null"); + const event = new CommandEvent("test", { source: null }); + assert_equals(event.source, null); + }, "source set to null"); test(function () { assert_throws_js( TypeError, function () { - new CommandEvent("test", { invoker: false }); + new CommandEvent("test", { source: false }); }, - "invoker is not an object", + "source is not an object", ); - }, "invoker set to false"); + }, "source set to false"); test(function () { assert_throws_js( TypeError, function () { - const event = new CommandEvent("test", { invoker: true }); + const event = new CommandEvent("test", { source: true }); }, - "invoker is not an object", + "source is not an object", ); - }, "invoker set to true"); + }, "source set to true"); test(function () { assert_throws_js( TypeError, function () { - const event = new CommandEvent("test", { invoker: {} }); + const event = new CommandEvent("test", { source: {} }); }, - "invoker is not an object", + "source is not an object", ); - }, "invoker set to {}"); + }, "source set to {}"); test(function () { assert_throws_js( TypeError, function () { - const eventInit = { command: "closed", invoker: new XMLHttpRequest() }; + const eventInit = { command: "closed", source: new XMLHttpRequest() }; const event = new CommandEvent("toggle", eventInit); }, - "invoker is not an Element", + "source is not an Element", ); - }, "invoker set to non-Element EventTarget"); + }, "source set to non-Element EventTarget"); diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-button-event-dispatch.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-button-event-dispatch.tentative.html index c5dfe14f90b..ef870627a06 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-button-event-dispatch.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-button-event-dispatch.tentative.html @@ -11,7 +11,8 @@
- + +
diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-fullscreen-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-fullscreen-behavior.tentative.html index 1210b8637de..bc7b6f416f1 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-fullscreen-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-fullscreen-behavior.tentative.html @@ -17,27 +17,27 @@ diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-audio-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-audio-behavior.tentative.html index 309a91e2842..77fb204b986 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-audio-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-audio-behavior.tentative.html @@ -21,29 +21,29 @@ invokee.muted = false; } - // playpause + // play-pause promise_test(async function (t) { t.add_cleanup(resetState); assert_true(invokee.paused); - invokerbutton.setAttribute("command", "playpause"); + invokerbutton.setAttribute("command", "play-pause"); await clickOn(invokerbutton); await new Promise((resolve) => { requestAnimationFrame(resolve); }); assert_false(invokee.paused); - }, "invoking audio with playpause action makes audio play"); + }, "invoking audio with play-pause action makes audio play"); promise_test(async function (t) { t.add_cleanup(resetState); assert_true(invokee.paused); - invokerbutton.setAttribute("command", "playpause"); + invokerbutton.setAttribute("command", "play-pause"); invokerbutton.click(); await new Promise((resolve) => { requestAnimationFrame(resolve); }); assert_false(invokee.paused); - }, "invoking audio with playpause action (without user activation) is a no-op"); + }, "invoking audio with play-pause action (without user activation) is a no-op"); promise_test(async function (t) { t.add_cleanup(resetState); @@ -51,26 +51,26 @@ once: true, }); assert_true(invokee.paused); - invokerbutton.setAttribute("command", "playpause"); + invokerbutton.setAttribute("command", "play-pause"); await clickOn(invokerbutton); await new Promise((resolve) => { requestAnimationFrame(resolve); }); assert_true(invokee.paused); - }, "invoking audio with playpause action and preventDefault is a no-op"); + }, "invoking audio with play-pause action and preventDefault is a no-op"); promise_test(async function (t) { t.add_cleanup(resetState); await test_driver.bless("play audio"); invokee.play(); assert_false(invokee.paused); - invokerbutton.setAttribute("command", "playpause"); + invokerbutton.setAttribute("command", "play-pause"); await clickOn(invokerbutton); await new Promise((resolve) => { requestAnimationFrame(resolve); }); assert_true(invokee.paused); - }, "invoking playing audio with playpause action pauses it"); + }, "invoking playing audio with play-pause action pauses it"); // play @@ -168,13 +168,13 @@ promise_test(async function (t) { t.add_cleanup(resetState); assert_false(invokee.muted); - invokerbutton.setAttribute("command", "toggleMuted"); + invokerbutton.setAttribute("command", "toggle-muted"); await clickOn(invokerbutton); await new Promise((resolve) => { requestAnimationFrame(resolve); }); assert_true(invokee.muted); - }, "invoking audio with toggleMuted action mutes it"); + }, "invoking audio with toggle-muted action mutes it"); promise_test(async function (t) { t.add_cleanup(resetState); @@ -182,23 +182,23 @@ once: true, }); assert_false(invokee.muted); - invokerbutton.setAttribute("command", "toggleMuted"); + invokerbutton.setAttribute("command", "toggle-muted"); await clickOn(invokerbutton); await new Promise((resolve) => { requestAnimationFrame(resolve); }); assert_false(invokee.muted); - }, "invoking audio with toggleMuted action and preventDefault is a no-op"); + }, "invoking audio with toggle-muted action and preventDefault is a no-op"); promise_test(async function (t) { t.add_cleanup(resetState); invokee.muted = true; assert_true(invokee.muted); - invokerbutton.setAttribute("command", "toggleMuted"); + invokerbutton.setAttribute("command", "toggle-muted"); await clickOn(invokerbutton); await new Promise((resolve) => { requestAnimationFrame(resolve); }); assert_false(invokee.muted); - }, "invoking muted audio with toggleMuted action unmutes it"); + }, "invoking muted audio with toggle-muted action unmutes it"); diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-audio-invalid-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-audio-invalid-behavior.tentative.html index 3e18478a52f..5aee3ae819c 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-audio-invalid-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-audio-invalid-behavior.tentative.html @@ -18,9 +18,10 @@ [ "", "foo-bar", - "showpopover", - "showmodal", - "showpicker", + "playpause", + "show-popover", + "show-modal", + "show-picker", "open", "close", ].forEach((action) => { diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-details-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-details-behavior.tentative.html index 4c4998cf9d8..d5e8e97cf41 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-details-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-details-behavior.tentative.html @@ -31,9 +31,9 @@ async function (t) { t.add_cleanup(resetState); invokerbutton.command = command; - assert_false(invokee.matches("[open]")); + assert_false(invokee.matches("[open]"), "invokee does not match [open]"); await clickOn(invokerbutton); - assert_true(invokee.matches("[open]")); + assert_true(invokee.matches("[open]"), "invokee matches [open]"); }, `invoking (as ${command}) closed details opens`, ); @@ -42,13 +42,13 @@ async function (t) { t.add_cleanup(resetState); invokerbutton.command = command; - assert_false(invokee.matches("[open]")); + assert_false(invokee.matches("[open]"), "invokee does not match [open]"); invokee.addEventListener("command", (e) => e.preventDefault(), { once: true, }); await clickOn(invokerbutton); t.add_cleanup(() => invokee.removeAttribute("open")); - assert_false(invokee.matches("[open]")); + assert_false(invokee.matches("[open]"), "invokee still does not match [open]"); }, `invoking (as ${command}) closed details with preventDefault does not open`, ); diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-details-invalid-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-details-invalid-behavior.tentative.html index 3a4e86e9f2c..9acff71c7b5 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-details-invalid-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-details-invalid-behavior.tentative.html @@ -23,12 +23,12 @@ [ "", "foo-bar", - "showpopover", - "showmodal", - "showpicker", - "hidepopover", + "show-popover", + "show-modal", + "show-picker", + "hide-popover", "hide", - "toggleopen", + "toggle-open", ].forEach((command) => { promise_test(async function (t) { t.add_cleanup(resetState); diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-dialog-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-dialog-behavior.tentative.html index 9cf1e530b3d..4fca8a312f9 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-dialog-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-dialog-behavior.tentative.html @@ -13,20 +13,20 @@ - + diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-popover-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-popover-behavior.tentative.html index c974b6ff108..7462ce6159a 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-popover-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-popover-behavior.tentative.html @@ -11,16 +11,16 @@
- +
- + diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-popover-invalid-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-popover-invalid-behavior.tentative.html index 31442261f37..91efd92ba82 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-popover-invalid-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-popover-invalid-behavior.tentative.html @@ -25,8 +25,8 @@ invokee.setAttribute("popover", ""); } - // invalid actions on showpopover - [null, "", "foo-bar", "showmodal", "showpicker", "open", "close"].forEach((command) => { + // invalid actions on show-popover + [null, "", "foo-bar", "showpopover", "show-modal", "show-picker", "open", "close"].forEach((command) => { promise_test(async function (t) { t.add_cleanup(resetState); invokerbutton.command = command; diff --git a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-video-behavior.tentative.html b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-video-behavior.tentative.html index e395281ee31..0812e7f0386 100644 --- a/tests/wpt/tests/html/semantics/invokers/invoketarget-on-video-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/invokers/invoketarget-on-video-behavior.tentative.html @@ -14,7 +14,7 @@ diff --git a/tests/wpt/tests/html/semantics/permission-element/bounded-sizes-reftest-ref.html b/tests/wpt/tests/html/semantics/permission-element/bounded-sizes-reftest-ref.html index b186dd64458..a341674c69c 100644 --- a/tests/wpt/tests/html/semantics/permission-element/bounded-sizes-reftest-ref.html +++ b/tests/wpt/tests/html/semantics/permission-element/bounded-sizes-reftest-ref.html @@ -18,11 +18,13 @@ #id1 { font-size: 10px; height: 10px; + border: 0px; /* width set via JS */ } #id2 { font-size: 10px; height: 30px; + border: 0px; /* width set via JS */ } #id3 { @@ -30,6 +32,7 @@ height: 30px; color:black; background-color: black; + border: 0px; /* Used to compute width which will then have the padding artificially added in JS */ diff --git a/tests/wpt/tests/html/semantics/permission-element/bounded-sizes-reftest.tentative.html b/tests/wpt/tests/html/semantics/permission-element/bounded-sizes-reftest.tentative.html index 45ffb633c3d..277e85a8911 100644 --- a/tests/wpt/tests/html/semantics/permission-element/bounded-sizes-reftest.tentative.html +++ b/tests/wpt/tests/html/semantics/permission-element/bounded-sizes-reftest.tentative.html @@ -20,6 +20,7 @@ font-size: 10px; min-height: 1px; max-height: 100px; + border: 0px; /* These values are extreme enough that they should be out of bounds for any implementation */ min-width: 10px; @@ -33,6 +34,7 @@ font-size: 10px; min-height: 1px; max-height: 100px; + border: 0px; /* These values are extreme enough that they should be out of bounds for any implementation */ min-width: 10px; @@ -46,6 +48,7 @@ font-size: 10px; width: auto; height: auto; + border: 0px; /* There is a slight misalignment of the text (by 1px) when using padding vs using width/height. Since this test's purpose is to diff --git a/tests/wpt/tests/html/semantics/permission-element/bounded-sizes.tentative.html b/tests/wpt/tests/html/semantics/permission-element/bounded-sizes.tentative.html index 357e4fe961a..dbeaebe04de 100644 --- a/tests/wpt/tests/html/semantics/permission-element/bounded-sizes.tentative.html +++ b/tests/wpt/tests/html/semantics/permission-element/bounded-sizes.tentative.html @@ -15,6 +15,7 @@ font-size: 10px; width: auto; height: auto; + border: 0px; min-height: 1px; max-height: 100px; @@ -32,6 +33,7 @@ font-size: 10px; width: auto; height: auto; + border: 0px; min-height: 11px; max-height: 29px; @@ -45,6 +47,7 @@ font-size: 10px; width: auto; height: auto; + border: 0px; min-height: 50px; min-width: 1000px; diff --git a/tests/wpt/tests/html/semantics/permission-element/invalid-css-properties.tentative.html b/tests/wpt/tests/html/semantics/permission-element/invalid-css-properties.tentative.html index 334280c83bd..2cf228bb7a9 100644 --- a/tests/wpt/tests/html/semantics/permission-element/invalid-css-properties.tentative.html +++ b/tests/wpt/tests/html/semantics/permission-element/invalid-css-properties.tentative.html @@ -15,6 +15,7 @@ mask: url('test-url'); padding-left: 10px; transform: rotate(10); + border: 0px; } diff --git a/tests/wpt/tests/html/semantics/permission-element/large-min-size-reftest-ref.html b/tests/wpt/tests/html/semantics/permission-element/large-min-size-reftest-ref.html index 0e97fe4f462..6c0b7a73f0c 100644 --- a/tests/wpt/tests/html/semantics/permission-element/large-min-size-reftest-ref.html +++ b/tests/wpt/tests/html/semantics/permission-element/large-min-size-reftest-ref.html @@ -10,6 +10,7 @@ #id1 { font-size: 10px; height: 30px; + border: 0px; /* Used to determine the "fit-content" width value which is used to set the width to 3 * fit-content. */ @@ -18,6 +19,7 @@ #id2 { font-size: 10px; height: 10px; + border: 0px; width: fit-content; } diff --git a/tests/wpt/tests/html/semantics/permission-element/large-min-size-reftest.tentative.html b/tests/wpt/tests/html/semantics/permission-element/large-min-size-reftest.tentative.html index 9a786101693..c61346c3526 100644 --- a/tests/wpt/tests/html/semantics/permission-element/large-min-size-reftest.tentative.html +++ b/tests/wpt/tests/html/semantics/permission-element/large-min-size-reftest.tentative.html @@ -13,6 +13,7 @@ font-size: 10px; min-height: 100px; min-width: 1000px; + border: 0px; width: 1px; height: 1px; @@ -21,6 +22,7 @@ font-size: 10px; max-height: 5px; max-width: 10px; + border: 0px; width: 1000px; height: 1000px; diff --git a/tests/wpt/tests/html/semantics/permission-element/unbounded-width-with-border-reftest-ref.html b/tests/wpt/tests/html/semantics/permission-element/unbounded-width-with-border-reftest-ref.html new file mode 100644 index 00000000000..8219b9a7420 --- /dev/null +++ b/tests/wpt/tests/html/semantics/permission-element/unbounded-width-with-border-reftest-ref.html @@ -0,0 +1,72 @@ + + + + +
+ The permission element width is allowed to be unbounded if there is a border which makes the + bounds of the permission element sufficiently clear. + The border should have enough width, enough contrast with the background-color and no transparency. +
+ + + +
+
+
+
+
+ + + + diff --git a/tests/wpt/tests/html/semantics/permission-element/unbounded-width-with-border-reftest.tentative.html b/tests/wpt/tests/html/semantics/permission-element/unbounded-width-with-border-reftest.tentative.html new file mode 100644 index 00000000000..8de1876b210 --- /dev/null +++ b/tests/wpt/tests/html/semantics/permission-element/unbounded-width-with-border-reftest.tentative.html @@ -0,0 +1,57 @@ + + + + + +
+ The permission element width is allowed to be unbounded if there is a border which makes the + bounds of the permission element sufficiently clear. + The border should have enough width, enough contrast with the background-color and no transparency. +
+ + + +
+
+
+
+
+ + diff --git a/tests/wpt/tests/input-events/input-events-spin-button-click-on-number-input.html b/tests/wpt/tests/input-events/input-events-spin-button-click-on-number-input.html index 105a94f0b4a..4046f0cd12b 100644 --- a/tests/wpt/tests/input-events/input-events-spin-button-click-on-number-input.html +++ b/tests/wpt/tests/input-events/input-events-spin-button-click-on-number-input.html @@ -29,8 +29,8 @@ promise_test(async function() { // the iframe's viewport. Note that this is fragile and might need specific // coordinates for each browser and maybe platform. const rect = inputElement.getBoundingClientRect(); - const x = rect.x + rect.width - 10; - const y = rect.y + Math.round(rect.height / 4); + const x = Math.round(rect.x + rect.width - 10); + const y = Math.round(rect.y + rect.height / 4); const actions = new test_driver.Actions() .pointerMove(x, y, { origin: "viewport" }) diff --git a/tests/wpt/tests/interfaces/fedcm.idl b/tests/wpt/tests/interfaces/fedcm.idl index ba99f1174c8..443d3311a24 100644 --- a/tests/wpt/tests/interfaces/fedcm.idl +++ b/tests/wpt/tests/interfaces/fedcm.idl @@ -43,6 +43,7 @@ dictionary IdentityProviderRequestOptions : IdentityProviderConfig { USVString nonce; DOMString loginHint; DOMString domainHint; + any params; }; dictionary IdentityProviderWellKnown { diff --git a/tests/wpt/tests/interfaces/invokers.tentative.idl b/tests/wpt/tests/interfaces/invokers.tentative.idl index 4724d7deb08..046a365939c 100644 --- a/tests/wpt/tests/interfaces/invokers.tentative.idl +++ b/tests/wpt/tests/interfaces/invokers.tentative.idl @@ -1,15 +1,15 @@ -interface mixin InvokerElement { - [CEReactions,Reflect=invoketarget] attribute Element? commandForElement; - [CEReactions,Reflect=invokeaction] attribute DOMString command; +interface mixin CommandElement { + [CEReactions,Reflect=commandfor] attribute Element? commandForElement; + [CEReactions,Reflect=command] attribute DOMString command; }; interface CommandEvent : Event { constructor(DOMString type, optional CommandEventInit eventInitDict = {}); - readonly attribute Element? invoker; + readonly attribute Element? source; readonly attribute DOMString command; }; dictionary CommandEventInit : EventInit { - Element? invoker = null; + Element? source = null; DOMString command = ""; }; diff --git a/tests/wpt/tests/interfaces/mediasession.idl b/tests/wpt/tests/interfaces/mediasession.idl index 5c6942be5a0..9c050b0efdf 100644 --- a/tests/wpt/tests/interfaces/mediasession.idl +++ b/tests/wpt/tests/interfaces/mediasession.idl @@ -59,7 +59,7 @@ interface MediaMetadata { attribute DOMString title; attribute DOMString artist; attribute DOMString album; - attribute FrozenArray artwork; + attribute FrozenArray artwork; [SameObject] readonly attribute FrozenArray chapterInfo; }; diff --git a/tests/wpt/tests/interfaces/webaudio.idl b/tests/wpt/tests/interfaces/webaudio.idl index 74aab7e2362..d14eb96820f 100644 --- a/tests/wpt/tests/interfaces/webaudio.idl +++ b/tests/wpt/tests/interfaces/webaudio.idl @@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: Web Audio API (https://webaudio.github.io/web-audio-api/) +// Source: Web Audio API 1.1 (https://webaudio.github.io/web-audio-api/) enum AudioContextState { "suspended", @@ -33,8 +33,8 @@ interface BaseAudioContext : EventTarget { AnalyserNode createAnalyser (); BiquadFilterNode createBiquadFilter (); AudioBuffer createBuffer (unsigned long numberOfChannels, - unsigned long length, - float sampleRate); + unsigned long length, + float sampleRate); AudioBufferSourceNode createBufferSource (); ChannelMergerNode createChannelMerger (optional unsigned long numberOfInputs = 6); ChannelSplitterNode createChannelSplitter ( @@ -45,12 +45,12 @@ interface BaseAudioContext : EventTarget { DynamicsCompressorNode createDynamicsCompressor (); GainNode createGain (); IIRFilterNode createIIRFilter (sequence feedforward, - sequence feedback); + sequence feedback); OscillatorNode createOscillator (); PannerNode createPanner (); PeriodicWave createPeriodicWave (sequence real, - sequence imag, - optional PeriodicWaveConstraints constraints = {}); + sequence imag, + optional PeriodicWaveConstraints constraints = {}); ScriptProcessorNode createScriptProcessor( optional unsigned long bufferSize = 0, optional unsigned long numberOfInputChannels = 2, diff --git a/tests/wpt/tests/interfaces/webcodecs.idl b/tests/wpt/tests/interfaces/webcodecs.idl index 52731257f1f..98476281218 100644 --- a/tests/wpt/tests/interfaces/webcodecs.idl +++ b/tests/wpt/tests/interfaces/webcodecs.idl @@ -340,7 +340,7 @@ dictionary VideoFrameInit { AlphaOption alpha = "keep"; // Default matches image. May be used to efficiently crop. Will trigger - // new computation of displayWidth and displayHeight using image’s pixel + // new computation of displayWidth and displayHeight using image's pixel // aspect ratio unless an explicit displayWidth and displayHeight are given. DOMRectInit visibleRect; diff --git a/tests/wpt/tests/interfaces/webgpu.idl b/tests/wpt/tests/interfaces/webgpu.idl index 421685c7a8f..58e43d02f5e 100644 --- a/tests/wpt/tests/interfaces/webgpu.idl +++ b/tests/wpt/tests/interfaces/webgpu.idl @@ -119,6 +119,7 @@ enum GPUFeatureName { "rg11b10ufloat-renderable", "bgra8unorm-storage", "float32-filterable", + "float32-blendable", "clip-distances", "dual-source-blending", }; diff --git a/tests/wpt/tests/interfaces/webtransport.idl b/tests/wpt/tests/interfaces/webtransport.idl index 6e9d1036736..24fe5b7e61b 100644 --- a/tests/wpt/tests/interfaces/webtransport.idl +++ b/tests/wpt/tests/interfaces/webtransport.idl @@ -96,7 +96,8 @@ dictionary WebTransportConnectionStats { required DOMHighResTimeStamp rttVariation; required DOMHighResTimeStamp minRtt; required WebTransportDatagramStats datagrams; - required unsigned long long? estimatedSendRate; + unsigned long long? estimatedSendRate = null; + boolean atSendCapacity = false; }; dictionary WebTransportDatagramStats { diff --git a/tests/wpt/tests/interfaces/webusb.idl b/tests/wpt/tests/interfaces/webusb.idl index 3b362d2351d..d6484db3e88 100644 --- a/tests/wpt/tests/interfaces/webusb.idl +++ b/tests/wpt/tests/interfaces/webusb.idl @@ -40,7 +40,7 @@ dictionary USBConnectionEventInit : EventInit { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBConnectionEvent : Event { @@ -55,7 +55,7 @@ enum USBTransferStatus { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBInTransferResult { @@ -65,7 +65,7 @@ interface USBInTransferResult { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBOutTransferResult { @@ -75,7 +75,7 @@ interface USBOutTransferResult { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBIsochronousInTransferPacket { @@ -85,7 +85,7 @@ interface USBIsochronousInTransferPacket { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBIsochronousInTransferResult { @@ -95,7 +95,7 @@ interface USBIsochronousInTransferResult { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBIsochronousOutTransferPacket { @@ -105,7 +105,7 @@ interface USBIsochronousOutTransferPacket { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBIsochronousOutTransferResult { @@ -113,7 +113,7 @@ interface USBIsochronousOutTransferResult { readonly attribute FrozenArray packets; }; -[Exposed=(DedicatedWorker,SharedWorker,Window), SecureContext] +[Exposed=(Worker,Window), SecureContext] interface USBDevice { readonly attribute octet usbVersionMajor; readonly attribute octet usbVersionMinor; @@ -171,7 +171,7 @@ dictionary USBControlTransferParameters { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBConfiguration { @@ -182,7 +182,7 @@ interface USBConfiguration { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBInterface { @@ -194,7 +194,7 @@ interface USBInterface { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBAlternateInterface { @@ -219,7 +219,7 @@ enum USBEndpointType { }; [ - Exposed=(DedicatedWorker,SharedWorker,Window), + Exposed=(Worker,Window), SecureContext ] interface USBEndpoint { @@ -252,7 +252,7 @@ dictionary USBPermissionStorage { sequence allowedDevices = []; }; -[Exposed=(DedicatedWorker,SharedWorker,Window)] +[Exposed=(Worker,Window)] interface USBPermissionResult : PermissionStatus { attribute FrozenArray devices; }; diff --git a/tests/wpt/tests/mathml/relations/css-styling/width-height-001.html b/tests/wpt/tests/mathml/relations/css-styling/width-height-001.html index 57cbc1b0ab2..f39b9951d3d 100644 --- a/tests/wpt/tests/mathml/relations/css-styling/width-height-001.html +++ b/tests/wpt/tests/mathml/relations/css-styling/width-height-001.html @@ -75,8 +75,18 @@ assert_true(MathMLFeatureDetection[`has_${tag}`](), `${tag} is supported`); var style = `width: 300px;`; element.setAttribute("style", style); + let refPreferredWidth = 300; + + // In the case of mo, spacing is added around the element so that it is included + // in the preferred width calculation, which should be the sum of lspace, rspace and width. + if (tag === "mo") { + element.setAttribute("lspace", "50px"); + element.setAttribute("rspace", "30px"); + refPreferredWidth = 380; + } + let box = shrinkWrapDiv.getBoundingClientRect(); - assert_approx_equals(box.width, 300, epsilon); + assert_approx_equals(box.width, refPreferredWidth, epsilon); }, `width property on ${tag} (preferred width)`); div.style = "display: none;"; // Hide the div after measurement. diff --git a/tests/wpt/tests/reporting/cross-origin-same-site-credentials.https.sub.html b/tests/wpt/tests/reporting/cross-origin-same-site-credentials.https.sub.html index 2f3f5fefcab..266fd28ee71 100644 --- a/tests/wpt/tests/reporting/cross-origin-same-site-credentials.https.sub.html +++ b/tests/wpt/tests/reporting/cross-origin-same-site-credentials.https.sub.html @@ -10,7 +10,7 @@ - \ No newline at end of file + diff --git a/tests/wpt/tests/reporting/resources/report-helper.js b/tests/wpt/tests/reporting/resources/report-helper.js index 213a635c493..4d3c3fbdee8 100644 --- a/tests/wpt/tests/reporting/resources/report-helper.js +++ b/tests/wpt/tests/reporting/resources/report-helper.js @@ -32,7 +32,7 @@ async function pollNumResults(endpoint, id) { function checkReportExists(reports, type, url) { for (const report of reports) { if (report.type !== type) continue; - if (report.body.documentURL == url || report.body.sourceFile === url) return true; + if (report.body.documentURL === url || report.body.sourceFile === url) return true; } assert_unreached(`A report of ${type} from ${url} is not found.`); } diff --git a/tests/wpt/tests/reporting/resources/same-origin-report.https.sub.html.sub.headers b/tests/wpt/tests/reporting/resources/same-origin-report.https.sub.html.sub.headers index 8244fafb22c..070ccb7967e 100644 --- a/tests/wpt/tests/reporting/resources/same-origin-report.https.sub.html.sub.headers +++ b/tests/wpt/tests/reporting/resources/same-origin-report.https.sub.html.sub.headers @@ -1,2 +1,2 @@ -Reporting-Endpoints: csp-endpoint="/reporting/resources/report.py?reportID=d0d517bf-891b-457a-b970-8b2b2c81a0bf" +Reporting-Endpoints: csp-endpoint="/reporting/resources/report.py?reportID={{GET[reportID]}}" Content-Security-Policy: script-src 'self' 'unsafe-inline'; img-src 'none'; report-to csp-endpoint diff --git a/tests/wpt/tests/reporting/same-origin-cross-site-credentials.https.sub.html b/tests/wpt/tests/reporting/same-origin-cross-site-credentials.https.sub.html index 258ab8e1036..50abbcccb33 100644 --- a/tests/wpt/tests/reporting/same-origin-cross-site-credentials.https.sub.html +++ b/tests/wpt/tests/reporting/same-origin-cross-site-credentials.https.sub.html @@ -10,7 +10,7 @@ diff --git a/tests/wpt/tests/selection/caret/editing-host-has-only-invisible-br-ref.html b/tests/wpt/tests/selection/caret/editing-host-has-only-invisible-br-ref.html new file mode 100644 index 00000000000..4fa73c7a895 --- /dev/null +++ b/tests/wpt/tests/selection/caret/editing-host-has-only-invisible-br-ref.html @@ -0,0 +1,30 @@ + + + + +Caret should be rendered in the editing host which has no visible non-anonymous content + + + + + +
+ + diff --git a/tests/wpt/tests/selection/caret/editing-host-has-only-invisible-br.html b/tests/wpt/tests/selection/caret/editing-host-has-only-invisible-br.html new file mode 100644 index 00000000000..594b78fb1a5 --- /dev/null +++ b/tests/wpt/tests/selection/caret/editing-host-has-only-invisible-br.html @@ -0,0 +1,31 @@ + + + + +Caret should be rendered in the editing host which has no visible non-anonymous content + + + + + + +

+ + diff --git a/tests/wpt/tests/shadow-dom/event-post-dispatch.html b/tests/wpt/tests/shadow-dom/event-post-dispatch.html index 239881c7e15..98157a69b9c 100644 --- a/tests/wpt/tests/shadow-dom/event-post-dispatch.html +++ b/tests/wpt/tests/shadow-dom/event-post-dispatch.html @@ -223,4 +223,60 @@ test(() => { assert_equals(log.event.composedPath().length, 0); }, 'Event properties post dispatch with relatedTarget in the different shadow trees. (composed: false)'); document.body.removeChild(n7.test7); + +test(t => { + let host = document.createElement("div"); + let shadow = host.attachShadow({ mode: "open" }); + let target = shadow.appendChild(document.createElement("trala")); + + let eventListenerCalled = false; + target.addEventListener("my-event", t.step_func(e => { + eventListenerCalled = true; + assert_equals(window.event, undefined); + + // Move target node out of shadow tree. + host.appendChild(target); + })); + + let event = new MouseEvent('my-event', {composed: false, relatedTarget: host}); + target.dispatchEvent(event); + assert_true(eventListenerCalled); + + assert_equals(event.target, null, "target should have been cleared"); + assert_equals(event.relatedTarget, null, "relatedTarget should have been cleared"); + assert_equals(event.eventPhase, 0); + assert_equals(event.currentTarget, null); + assert_equals(event.composedPath().length, 0); +}, 'Event properties post dispatch when target get moved out of the shadow tree by event listener'); + +test(t => { + let host = document.createElement("div"); + let shadow = host.attachShadow({ mode: "open" }); + let target = host.appendChild(document.createElement("trala")); + + let eventListenerCalled = false; + target.addEventListener("my-event", t.step_func(e => { + assert_equals(window.event, e); + })); + target.addEventListener("my-event", t.step_func(e => { + eventListenerCalled = true; + assert_equals(window.event, e); + // Move target node into the shadow tree. + shadow.append(target); + })); + target.addEventListener("my-event", t.step_func(e => { + assert_equals(window.event, e); + })); + + let event = new MouseEvent('my-event', {composed: false, relatedTarget: host}); + target.dispatchEvent(event); + assert_true(eventListenerCalled); + + // targets should not have been cleared since the node was not in the shadow tree when the event was initially dispatched. + assert_equals(event.target, target, "Target should not have been cleared"); + assert_equals(event.relatedTarget, host, "relatedTarget should not have been cleared"); + assert_equals(event.eventPhase, 0); + assert_equals(event.currentTarget, null); + assert_equals(event.composedPath().length, 0); +}, 'Event properties post dispatch when target get moved into the the shadow tree by event listener'); diff --git a/tests/wpt/tests/speculation-rules/prefetch/out-of-document-rule-set.https.html b/tests/wpt/tests/speculation-rules/prefetch/out-of-document-rule-set.https.html index 24502ee5138..b0e0253eeb7 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/out-of-document-rule-set.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/out-of-document-rule-set.https.html @@ -21,6 +21,7 @@ + diff --git a/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html b/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html index ba1b3acb0c1..3001bc233be 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html +++ b/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html @@ -1,7 +1,7 @@ - - - + + + + + + + + + + diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox.py index 74a9e02dafe..964ed8337a0 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox.py @@ -194,17 +194,23 @@ def env_options(): "supports_debugger": True} -def run_info_extras(logger, **kwargs): +def get_bool_pref(default_prefs, extra_prefs, pref): + pref_value = False - def get_bool_pref_if_exists(pref): - for key, value in kwargs.get('extra_prefs', []): - if pref == key: - return value.lower() in ('true', '1') - return None + for key, value in extra_prefs + default_prefs: + if pref == key: + pref_value = value.lower() in ('true', '1') + break - def get_bool_pref(pref): - pref_value = get_bool_pref_if_exists(pref) - return pref_value if pref_value is not None else False + return pref_value + + +def run_info_extras(logger, default_prefs=None, **kwargs): + extra_prefs = kwargs.get("extra_prefs", []) + default_prefs = list(default_prefs.items()) if default_prefs is not None else [] + + def bool_pref(pref): + return get_bool_pref(default_prefs, extra_prefs, pref) # Default fission to on, unless we get --disable-fission rv = {"e10s": kwargs["gecko_e10s"], @@ -213,8 +219,8 @@ def run_info_extras(logger, **kwargs): "headless": kwargs.get("headless", False) or "MOZ_HEADLESS" in os.environ, "fission": not kwargs.get("disable_fission"), "sessionHistoryInParent": (not kwargs.get("disable_fission") or - not get_bool_pref("fission.disableSessionHistoryInParent")), - "swgl": get_bool_pref("gfx.webrender.software"), + not bool_pref("fission.disableSessionHistoryInParent")), + "swgl": bool_pref("gfx.webrender.software"), "privateBrowsing": (kwargs["tags"] is not None and ("privatebrowsing" in kwargs["tags"]))} rv.update(run_info_browser_version(**kwargs)) diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py index 526f83d595f..9c9482d0bac 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/firefox_android.py @@ -90,9 +90,13 @@ def executor_kwargs(logger, test_type, test_environment, run_info_data, def env_extras(**kwargs): return [] +# Default preferences for Android to use when the preference is not specifically stated. +# See Bug 1577912 +def default_prefs(): + return {"fission.disableSessionHistoryInParent": "true"} def run_info_extras(logger, **kwargs): - rv = fx_run_info_extras(logger, **kwargs) + rv = fx_run_info_extras(logger, default_prefs=default_prefs(), **kwargs) rv.update({"headless": False}) if kwargs["browser_version"] is None: @@ -189,6 +193,8 @@ class ProfileCreator(FirefoxProfileCreator): if self.disable_fission: profile.set_preferences({"fission.autostart": False}) + profile.set_preferences(default_prefs()) + class FirefoxAndroidBrowser(Browser): init_timeout = 300 diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorchrome.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorchrome.py index 4dd2f86f5cf..53c11f133e5 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorchrome.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorchrome.py @@ -2,6 +2,7 @@ import collections import os +import re import time from typing import Mapping, MutableMapping, Type @@ -244,6 +245,18 @@ class ChromeDriverTestharnessExecutor(WebDriverTestharnessExecutor, _SanitizerMi } self.protocol.cdp.execute_cdp_command("Browser.setPermission", params) + def _get_next_message_classic(self, protocol, url, test_window): + try: + return super()._get_next_message_classic(protocol, url, test_window) + except error.JavascriptErrorException as js_error: + # TODO(crbug.com/340662810): Cycle testdriver event loop to work + # around `testharnessreport.js` flakily not loaded. + if re.search(r'window\.__wptrunner_process_next_event is not a function', + js_error.message): + time.sleep(0.05) + return None + raise + @_evaluate_leaks class ChromeDriverPrintRefTestExecutor(WebDriverPrintRefTestExecutor, diff --git a/tests/wpt/tests/webaudio/the-audio-api/processing-model/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/processing-model/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/processing-model/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-analysernode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-analysernode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-analysernode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffer-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffer-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffer-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audiobuffersourcenode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https.html b/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https.html index e000ab124fe..a456f88e186 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/processing-after-resume.https.html @@ -26,30 +26,51 @@ const modulePath = '/webaudio/the-audio-api/' + 'the-audioworklet-interface/processors/port-processor.js'; promise_test(async () => { + let construct1; + async function run_test() { + const timeBeforeResume = realtime.currentTime; + // Get the currentTime at the same time with AudioContext.currentTime. + const {node: node1} = await construct1; + const constructReply1 = await ping_for_reply(node1); + + // Two AudioWorkletNodes are constructed. + // node1 is constructed before and node2 after the resume() call. + await realtime.resume(); + const construct2 = get_node_and_reply(realtime); + + assert_equals(constructReply1.timeStamp, timeBeforeResume, + 'construct time before resume'); + const {node: node2, reply: constructReply2} = await construct2; + + assert_greater_than_equal(constructReply2.timeStamp, timeBeforeResume, + 'construct time after resume'); + + // Suspend the context to freeze time and check that the processing for each + // node matches the elapsed time. + await realtime.suspend(); + const timeAfterSuspend = realtime.currentTime; + const pong1 = await ping_for_reply(node1); + const pong2 = await ping_for_reply(node2); + assert_consistent(constructReply1, pong1, timeAfterSuspend, 'node1'); + assert_consistent(constructReply2, pong2, timeAfterSuspend, 'node2'); + assert_equals(pong1.currentFrame, pong2.currentFrame, + 'currentFrame matches'); + }; + const realtime = new AudioContext(); await realtime.audioWorklet.addModule(modulePath); - await realtime.suspend(); - const timeBeforeResume = realtime.currentTime; - // Two AudioWorkletNodes are constructed. - // node1 is constructed before and node2 after the resume() call. - const construct1 = get_node_and_reply(realtime); - const resume = realtime.resume(); - const construct2 = get_node_and_reply(realtime); - const {node: node1, reply: constructReply1} = await construct1; - assert_equals(constructReply1.timeStamp, timeBeforeResume, - 'construct time before resume'); - const {node: node2, reply: constructReply2} = await construct2; - assert_greater_than_equal(constructReply2.timeStamp, timeBeforeResume, - 'construct time after resume'); - await resume; - // Suspend the context to freeze time and check that the processing for each - // node matches the elapsed time. - await realtime.suspend(); - const timeAfterSuspend = realtime.currentTime; - const pong1 = await ping_for_reply(node1); - const pong2 = await ping_for_reply(node2); - assert_consistent(constructReply1, pong1, timeAfterSuspend, 'node1'); - assert_consistent(constructReply2, pong2, timeAfterSuspend, 'node2'); - assert_equals(pong1.currentFrame, pong2.currentFrame, 'currentFrame matches'); + construct1 = get_node_and_reply(realtime); + + if (realtime.state === 'running') { + realtime.suspend(); + realtime.onstatechange = async (e) => { + if (e.target.state === 'suspended') { + e.target.onstatechange = null; + await run_test(); + } + }; + } else { + await run_test(); + } }); diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audionode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-audionode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audionode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audioparam-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audioworklet-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-audioworklet-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..1d37287c05a --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audioworklet-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: audio-worklet + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-biquadfilternode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-biquadfilternode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-biquadfilternode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-channelmergernode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-channelmergernode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-channelmergernode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-channelsplitternode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-channelsplitternode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-channelsplitternode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-constantsourcenode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-constantsourcenode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-constantsourcenode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-convolvernode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-convolvernode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-convolvernode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-delaynode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-delaynode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-delaynode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-destinationnode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-destinationnode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-destinationnode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-dynamicscompressornode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-dynamicscompressornode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-dynamicscompressornode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-gainnode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-gainnode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-gainnode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-iirfilternode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-iirfilternode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-iirfilternode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-mediastreamaudiodestinationnode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-mediastreamaudiosourcenode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..e7da88c82cd --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-offlineaudiocontext-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: offline-audio-context + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-oscillatornode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-oscillatornode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-oscillatornode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-pannernode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-pannernode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-pannernode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-periodicwave-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-periodicwave-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-periodicwave-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-scriptprocessornode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-scriptprocessornode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-scriptprocessornode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-stereopanner-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-stereopanner-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-stereopanner-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-waveshapernode-interface/WEB_FEATURES.yml b/tests/wpt/tests/webaudio/the-audio-api/the-waveshapernode-interface/WEB_FEATURES.yml new file mode 100644 index 00000000000..51e62e2c984 --- /dev/null +++ b/tests/wpt/tests/webaudio/the-audio-api/the-waveshapernode-interface/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: web-audio + files: "**" diff --git a/tests/wpt/tests/webauthn/createcredential-nested-frame.https.html b/tests/wpt/tests/webauthn/createcredential-nested-frame.https.html new file mode 100644 index 00000000000..b839e1c71d3 --- /dev/null +++ b/tests/wpt/tests/webauthn/createcredential-nested-frame.https.html @@ -0,0 +1,85 @@ + + +WebAuthn credential.create() in a nested frame + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/webauthn/getcredential-nested-frame.https.html b/tests/wpt/tests/webauthn/getcredential-nested-frame.https.html new file mode 100644 index 00000000000..18e9f81ddb2 --- /dev/null +++ b/tests/wpt/tests/webauthn/getcredential-nested-frame.https.html @@ -0,0 +1,102 @@ + + +WebAuthn credential.get() in a nested frame + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/webauthn/isuserverifyingplatformauthenticatoravailable.https.html b/tests/wpt/tests/webauthn/isuserverifyingplatformauthenticatoravailable.https.html new file mode 100644 index 00000000000..c6893f41c6a --- /dev/null +++ b/tests/wpt/tests/webauthn/isuserverifyingplatformauthenticatoravailable.https.html @@ -0,0 +1,44 @@ + + +PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/webauthn/resources/webauthn-subframe.sub.html b/tests/wpt/tests/webauthn/resources/webauthn-subframe.sub.html index c97255924e1..1d0984c33bd 100644 --- a/tests/wpt/tests/webauthn/resources/webauthn-subframe.sub.html +++ b/tests/wpt/tests/webauthn/resources/webauthn-subframe.sub.html @@ -9,14 +9,13 @@ "use strict"; function reportResult(outcome, errorObj) { - window.top.postMessage({"type": "result", "result": outcome, "error": errorObj}, "*"); + window.top.postMessage({ "type": "result", "result": outcome, "error": errorObj }, "*"); } async function createCredentialAndReportResult(addUserActivation) { if (addUserActivation) { await test_driver.bless("create credential"); } - try { await createCredential(); reportResult("success"); @@ -25,14 +24,39 @@ } } + async function getCredentialAndReportResult(addUserActivation) { + if (addUserActivation) { + await test_driver.bless("create credential"); + } + try { + await navigator.credentials.get({ + publicKey: { + challenge: new Uint8Array(), + allowCredentials: [{ + id: (await createCredential()).rawId, + type: "public-key", + userVerification: "discouraged", + }], + } + }); + reportResult("success"); + } catch (e) { + reportResult("failure", e); + } + } + window.addEventListener("message", e => { if (e.data.type == "create-credential") { createCredentialAndReportResult(e.data.addUserActivation); return; } + if (e.data.type == "get-credential") { + getCredentialAndReportResult(e.data.addUserActivation); + return; + } throw new Error(`Unrecognized message, e.data.type: ${e.data.type}`); }); test_driver.set_test_context(window.top); - window.top.postMessage({"type": "subframe-loaded"}, "*"); - + window.top.postMessage({ "type": "subframe-loaded" }, "*"); + \ No newline at end of file diff --git a/tests/wpt/tests/webauthn/signal-current-user-details.https.html b/tests/wpt/tests/webauthn/signal-current-user-details.https.html index b4027377272..9dc50e398af 100644 --- a/tests/wpt/tests/webauthn/signal-current-user-details.https.html +++ b/tests/wpt/tests/webauthn/signal-current-user-details.https.html @@ -65,7 +65,8 @@ displayName: "Marisa Kirisame", }); const credential = (await window.test_driver.get_credentials(authenticator))[0]; - // TODO(nsatragno): add assertions once https://github.com/w3c/webauthn/issues/2143 is resolved. + assert_equals(credential.userName, "reimu"); + assert_equals(credential.userDisplayName, "Reimu Hakurei"); }, authenticatorOptions, "signalCurrentUserDetails does not update a different user id"); virtualAuthenticatorPromiseTest(async (t, authenticator) => { @@ -77,6 +78,7 @@ displayName: "Marisa Kirisame", }); const credential = (await window.test_driver.get_credentials(authenticator))[0]; - // TODO(nsatragno): add assertions once https://github.com/w3c/webauthn/issues/2143 is resolved. + assert_equals(credential.userName, "marisa"); + assert_equals(credential.userDisplayName, "Marisa Kirisame"); }, authenticatorOptions, "signalCurrentUserDetails updates a matching user id"); \ No newline at end of file diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/dom_content_loaded/dom_content_loaded.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/dom_content_loaded/dom_content_loaded.py index aa9efb7e3bf..b426724da53 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/dom_content_loaded/dom_content_loaded.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/dom_content_loaded/dom_content_loaded.py @@ -178,6 +178,38 @@ async def test_document_write( assert event["navigation"] is not None +async def test_early_same_document_navigation( + bidi_session, + subscribe_events, + inline, + new_tab, + wait_for_event, + wait_for_future_safe, +): + await subscribe_events(events=[DOM_CONTENT_LOADED_EVENT]) + + on_entry = wait_for_event(DOM_CONTENT_LOADED_EVENT) + + url = inline( + """ + + """ + ) + + result = await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=url + ) + + event = await wait_for_future_safe(on_entry) + + assert_navigation_info( + event, + {"context": new_tab["context"], "navigation": result["navigation"], "url": url}, + ) + + async def test_page_with_base_tag( bidi_session, subscribe_events, inline, new_tab, wait_for_event, wait_for_future_safe ): diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/load/load.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/load/load.py index 600e4cb3156..0dcada33779 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/load/load.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/load/load.py @@ -158,6 +158,31 @@ async def test_document_write( assert event["navigation"] is not None +async def test_early_same_document_navigation( + bidi_session, subscribe_events, inline, new_tab, wait_for_event, wait_for_future_safe +): + await subscribe_events(events=[CONTEXT_LOAD_EVENT]) + + on_entry = wait_for_event(CONTEXT_LOAD_EVENT) + + url = inline(""" + + """) + + result = await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=url + ) + + event = await wait_for_future_safe(on_entry) + + assert_navigation_info( + event, + {"context": new_tab["context"], "navigation": result["navigation"], "url": url}, + ) + + async def test_page_with_base_tag( bidi_session, subscribe_events, inline, new_tab, wait_for_event, wait_for_future_safe ): diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/auth_required/auth_required.py b/tests/wpt/tests/webdriver/tests/bidi/network/auth_required/auth_required.py index a23821f2ae7..89fbb09fd54 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/network/auth_required/auth_required.py +++ b/tests/wpt/tests/webdriver/tests/bidi/network/auth_required/auth_required.py @@ -116,7 +116,7 @@ async def test_request_timing_info( await wait_for_future_safe(on_auth_required) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 expected_request = {"method": "GET", "url": auth_url} diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent.py b/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent.py index be2634fc6a9..5ba6955bd12 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent.py +++ b/tests/wpt/tests/webdriver/tests/bidi/network/before_request_sent/before_request_sent.py @@ -300,7 +300,7 @@ async def test_request_timing_info( await wait_for_future_safe(on_before_request_sent) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -473,7 +473,7 @@ async def test_serviceworker_request( await wait_for_future_safe(on_before_request_sent) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -506,7 +506,7 @@ async def test_url_with_fragment( await wait_for_future_safe(on_before_request_sent) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -551,7 +551,7 @@ async def test_navigate_data_url( await wait_for_future_safe(on_before_request_sent) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -594,7 +594,7 @@ async def test_fetch_data_url( await wait_for_future_safe(on_before_request_sent) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/url.py b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/url.py new file mode 100644 index 00000000000..4c65f7d7eb3 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/url.py @@ -0,0 +1,115 @@ +import pytest + +from webdriver.bidi.modules.script import ContextTarget + +from .. import ( + assert_response_event, + BEFORE_REQUEST_SENT_EVENT, + RESPONSE_COMPLETED_EVENT, + RESPONSE_STARTED_EVENT, +) + +pytestmark = pytest.mark.asyncio + +CONTEXT_LOAD_EVENT = "browsingContext.load" + + +async def test_navigation( + bidi_session, + subscribe_events, + setup_blocked_request, + top_context, + url, + inline, + wait_for_event, + wait_for_future_safe, +): + initial_url = inline("
initial
") + redirect_url = inline("
redirect
") + + request = await setup_blocked_request( + phase="beforeRequestSent", + navigate=True, + blocked_url=initial_url, + ) + + # Collect all beforeRequestSent, responseStarted and responseCompleted + # events for the rest of the test. + events = [] + async def on_event(method, data): + events.append([method, data]) + + remove_before_request_sent_listener = bidi_session.add_event_listener( + BEFORE_REQUEST_SENT_EVENT, on_event + ) + remove_response_completed_listener = bidi_session.add_event_listener( + RESPONSE_COMPLETED_EVENT, on_event + ) + remove_response_started_listener = bidi_session.add_event_listener( + RESPONSE_STARTED_EVENT, on_event + ) + + # Note: only subscribe to network events after setup_blocked_request is done + # otherwise the event subscription required to setup the blocked request + # will collide with the global subscription here. + await subscribe_events( + events=[ + CONTEXT_LOAD_EVENT, + BEFORE_REQUEST_SENT_EVENT, + RESPONSE_COMPLETED_EVENT, + RESPONSE_STARTED_EVENT, + ] + ) + + on_load = wait_for_event(CONTEXT_LOAD_EVENT) + await bidi_session.network.continue_request(request=request, url=redirect_url) + event = await wait_for_future_safe(on_load) + + # Check the node from the initial url is not available in the page. + result = await bidi_session.browsing_context.locate_nodes( + context=top_context["context"], + locator={"type": "css", "value": "#from-initial"}, + ) + assert len(result["nodes"]) == 0 + + # Check the node from the redirected url is available in the page. + result = await bidi_session.browsing_context.locate_nodes( + context=top_context["context"], + locator={"type": "css", "value": "#from-redirect"}, + ) + assert len(result["nodes"]) == 1 + + # Check that the window.location remains on initial_url + result = await bidi_session.script.evaluate( + expression="window.location.href", + target=ContextTarget(top_context["context"]), + await_promise=False, + ) + + assert result["value"] == initial_url + + # Check that only the expected number of events were received. + assert len(events) == 2 + + expected_request = {"method": "GET", "url": redirect_url} + expected_response = {"url": redirect_url} + + assert events[0][0] == "network.responseStarted" + assert_response_event( + events[0][1], + expected_request=expected_request, + expected_response=expected_response, + redirect_count=0, + ) + + assert events[1][0] == "network.responseCompleted" + assert_response_event( + events[1][1], + expected_request=expected_request, + expected_response=expected_response, + redirect_count=0, + ) + + remove_before_request_sent_listener() + remove_response_completed_listener() + remove_response_started_listener() diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/fetch_error/fetch_error.py b/tests/wpt/tests/webdriver/tests/bidi/network/fetch_error/fetch_error.py index aa2caa37702..872b4877a8e 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/network/fetch_error/fetch_error.py +++ b/tests/wpt/tests/webdriver/tests/bidi/network/fetch_error/fetch_error.py @@ -240,7 +240,7 @@ async def test_request_timing_info( await wait_for_future_safe(on_fetch_error) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 expected_request = {"method": "GET", "url": PAGE_INVALID_URL} diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/response_completed/response_completed.py b/tests/wpt/tests/webdriver/tests/bidi/network/response_completed/response_completed.py index a6f8fb20aa1..ff406ceb952 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/network/response_completed/response_completed.py +++ b/tests/wpt/tests/webdriver/tests/bidi/network/response_completed/response_completed.py @@ -179,7 +179,7 @@ async def test_request_timing_info( await wait_for_future_safe(on_response_completed) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -448,7 +448,7 @@ async def test_serviceworker_request( await wait_for_future_safe(on_response_completed) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -485,7 +485,7 @@ async def test_url_with_fragment( await wait_for_future_safe(on_response_completed) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -533,7 +533,7 @@ async def test_navigate_data_url( await wait_for_future_safe(on_response_completed) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -586,7 +586,7 @@ async def test_fetch_data_url( await wait_for_future_safe(on_response_completed) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/response_started/response_started.py b/tests/wpt/tests/webdriver/tests/bidi/network/response_started/response_started.py index 310e91d57da..47ab922b0da 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/network/response_started/response_started.py +++ b/tests/wpt/tests/webdriver/tests/bidi/network/response_started/response_started.py @@ -187,7 +187,7 @@ async def test_request_timing_info( await wait_for_future_safe(on_response_started) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -421,7 +421,7 @@ async def test_serviceworker_request( await wait_for_future_safe(on_response_started) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -458,7 +458,7 @@ async def test_url_with_fragment( await wait_for_future_safe(on_response_started) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -506,7 +506,7 @@ async def test_navigate_data_url( await wait_for_future_safe(on_response_started) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 @@ -559,7 +559,7 @@ async def test_fetch_data_url( await wait_for_future_safe(on_response_started) time_end = await current_time() - time_range = number_interval(time_start, time_end) + time_range = number_interval(time_start - 1, time_end + 1) assert len(events) == 1 diff --git a/tests/wpt/tests/webdriver/tests/classic/fullscreen_window/from_minimized_window.py b/tests/wpt/tests/webdriver/tests/classic/fullscreen_window/from_minimized_window.py new file mode 100644 index 00000000000..09d5579bdb9 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/classic/fullscreen_window/from_minimized_window.py @@ -0,0 +1,29 @@ +from tests.support.asserts import assert_success +from tests.support.helpers import ( + document_hidden, + is_fullscreen, +) + + +def fullscreen(session): + return session.transport.send( + "POST", "session/{session_id}/window/fullscreen".format(**vars(session)) + ) + + +# This test is moved to a separate file to not affect other test results +# on Wayland, since at least for Firefox restoring from minimized state +# doesn't work. +def test_fullscreen_from_minimized_window(session, screen_size): + assert not document_hidden(session) + + session.window.minimize() + assert document_hidden(session) + assert not is_fullscreen(session) + + response = fullscreen(session) + assert_success(response, session.window.rect) + assert not document_hidden(session) + assert is_fullscreen(session) + + assert session.window.size == screen_size diff --git a/tests/wpt/tests/webdriver/tests/classic/fullscreen_window/fullscreen.py b/tests/wpt/tests/webdriver/tests/classic/fullscreen_window/fullscreen.py index ce9e033d641..f6e9e879236 100644 --- a/tests/wpt/tests/webdriver/tests/classic/fullscreen_window/fullscreen.py +++ b/tests/wpt/tests/webdriver/tests/classic/fullscreen_window/fullscreen.py @@ -1,9 +1,5 @@ from tests.support.asserts import assert_error, assert_success -from tests.support.helpers import ( - document_hidden, - is_fullscreen, - is_maximized, -) +from tests.support.helpers import is_fullscreen, is_maximized def fullscreen(session): @@ -59,21 +55,6 @@ def test_fullscreen_from_maximized_window(session, screen_size): assert session.window.size == screen_size -def test_fullscreen_from_minimized_window(session, screen_size): - assert not document_hidden(session) - - session.window.minimize() - assert document_hidden(session) - assert not is_fullscreen(session) - - response = fullscreen(session) - assert_success(response, session.window.rect) - assert not document_hidden(session) - assert is_fullscreen(session) - - assert session.window.size == screen_size - - def test_fullscreen_twice_is_idempotent(session, screen_size): assert not is_fullscreen(session) diff --git a/tests/wpt/tests/webdriver/tests/classic/print/background.py b/tests/wpt/tests/webdriver/tests/classic/print/background.py index 4f2f85980ba..8f94027021f 100644 --- a/tests/wpt/tests/webdriver/tests/classic/print/background.py +++ b/tests/wpt/tests/webdriver/tests/classic/print/background.py @@ -3,7 +3,7 @@ import base64 import pytest from tests.support.asserts import assert_pdf, assert_success -from tests.support.image import px_to_cm +from tests.support.image import pt_to_cm from . import do_print @@ -43,7 +43,7 @@ def test_background( { "background": print_with_background, "margin": {"top": 0, "bottom": 0, "right": 0, "left": 0}, - "page": {"width": px_to_cm(1), "height": px_to_cm(1)}, + "page": {"width": pt_to_cm(1), "height": pt_to_cm(1)}, }, ) print_value = assert_success(print_result) diff --git a/tests/wpt/tests/webdriver/tests/classic/set_window_rect/from_minimized_window.py b/tests/wpt/tests/webdriver/tests/classic/set_window_rect/from_minimized_window.py new file mode 100644 index 00000000000..e5429c92a1c --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/classic/set_window_rect/from_minimized_window.py @@ -0,0 +1,32 @@ +from tests.support.asserts import assert_success +from tests.support.helpers import document_hidden + + +def set_window_rect(session, rect): + return session.transport.send( + "POST", "session/{session_id}/window/rect".format(**vars(session)), rect + ) + + +# This test is moved to a separate file to not affect other test results +# on Wayland, since at least for Firefox restoring from minimized state +# doesn't work. +def test_restore_from_minimized(session): + assert not document_hidden(session) + + original = session.window.rect + target_rect = { + "x": original["x"], + "y": original["y"], + "width": original["width"] + 50, + "height": original["height"] + 50, + } + + session.window.minimize() + assert document_hidden(session) + + response = set_window_rect(session, target_rect) + value = assert_success(response, session.window.rect) + + assert not document_hidden(session) + assert value == target_rect diff --git a/tests/wpt/tests/webdriver/tests/classic/set_window_rect/set.py b/tests/wpt/tests/webdriver/tests/classic/set_window_rect/set.py index 5295c44fddb..9e15d02b0d1 100644 --- a/tests/wpt/tests/webdriver/tests/classic/set_window_rect/set.py +++ b/tests/wpt/tests/webdriver/tests/classic/set_window_rect/set.py @@ -5,10 +5,12 @@ import pytest +import mozinfo + from webdriver.transport import Response from tests.support.asserts import assert_error, assert_success -from tests.support.helpers import document_hidden, is_fullscreen, is_maximized +from tests.support.helpers import is_fullscreen, is_maximized def set_window_rect(session, rect): @@ -113,27 +115,6 @@ def test_restore_from_fullscreen(session): assert value == target_rect -def test_restore_from_minimized(session): - assert not document_hidden(session) - - original = session.window.rect - target_rect = { - "x": original["x"], - "y": original["y"], - "width": original["width"] + 50, - "height": original["height"] + 50 - } - - session.window.minimize() - assert document_hidden(session) - - response = set_window_rect(session, target_rect) - value = assert_success(response, session.window.rect) - - assert not document_hidden(session) - assert value == target_rect - - def test_restore_from_maximized(session): assert not is_maximized(session) @@ -158,13 +139,19 @@ def test_restore_from_maximized(session): def test_x_y_floats(session): response = set_window_rect(session, {"x": 150.5, "y": 250}) value = assert_success(response) - assert value["x"] == 150 - assert value["y"] == 250 + + # Wayland doesn't return correct coordinates after changing window position. + if mozinfo.display != "wayland": + assert value["x"] == 150 + assert value["y"] == 250 response = set_window_rect(session, {"x": 150, "y": 250.5}) value = assert_success(response, session.window.rect) - assert value["x"] == 150 - assert value["y"] == 250 + + # Wayland doesn't return correct coordinates after changing window position. + if mozinfo.display != "wayland": + assert value["x"] == 150 + assert value["y"] == 250 def test_width_height_floats(session): @@ -227,7 +214,12 @@ def test_set_to_available_size( response = set_window_rect(session, target_rect) value = assert_success(response, session.window.rect) - assert value == target_rect + # Wayland doesn't return correct coordinates after changing window position. + if mozinfo.display != "wayland": + assert value == target_rect + else: + target_rect["width"] == available_width + target_rect["height"] == available_height def test_set_to_screen_size( @@ -339,13 +331,13 @@ def test_x_y(session): }) value = assert_success(response, session.window.rect) - assert value == { - "x": original["x"] + 10, - "y": original["y"] + 10, - "width": original["width"], - "height": original["height"] - } + assert value["width"] == original["width"] + assert value["height"] == original["height"] + # Wayland doesn't return correct coordinates after changing window position. + if mozinfo.display != "wayland": + assert value["x"] == original["x"] + 10 + assert value["y"] == original["y"] + 10 def test_x_y_as_current(session): original = session.window.rect @@ -373,12 +365,13 @@ def test_x_as_current(session): }) value = assert_success(response, session.window.rect) - assert value == { - "x": original["x"], - "y": original["y"] + 10, - "width": original["width"], - "height": original["height"] - } + assert value["width"] == original["width"] + assert value["height"] == original["height"] + + # Wayland doesn't return correct coordinates after changing window position. + if mozinfo.display != "wayland": + assert value["x"] == original["x"] + assert value["y"] == original["y"] + 10 def test_y_as_current(session): @@ -390,12 +383,12 @@ def test_y_as_current(session): }) value = assert_success(response, session.window.rect) - assert value == { - "x": original["x"] + 10, - "y": original["y"], - "width": original["width"], - "height": original["height"] - } + assert value["width"] == original["width"] + assert value["height"] == original["height"] + # Wayland doesn't return correct coordinates after changing window position. + if mozinfo.display != "wayland": + assert value["x"] == original["x"] + 10 + assert value["y"] == original["y"] def test_negative_x_y(session, minimal_screen_position): @@ -407,11 +400,14 @@ def test_negative_x_y(session, minimal_screen_position): os = session.capabilities["platformName"] # certain WMs prohibit windows from being moved off-screen if os == "linux": - assert value["x"] <= 0 - assert value["y"] <= 0 assert value["width"] == original["width"] assert value["height"] == original["height"] + # Wayland doesn't return correct coordinates after changing window position. + if mozinfo.display != "wayland": + assert value["x"] <= 0 + assert value["y"] <= 0 + # On macOS when not running headless, windows can only be moved off the # screen on the horizontal axis. The system menu bar also blocks windows # from being moved to (0,0). diff --git a/tests/wpt/tests/webdriver/tests/classic/set_window_rect/user_prompts.py b/tests/wpt/tests/webdriver/tests/classic/set_window_rect/user_prompts.py index 908a9d920f3..e55c2d77f8c 100644 --- a/tests/wpt/tests/webdriver/tests/classic/set_window_rect/user_prompts.py +++ b/tests/wpt/tests/webdriver/tests/classic/set_window_rect/user_prompts.py @@ -19,7 +19,7 @@ def check_user_prompt_closed_without_exception(session, create_dialog): create_dialog(dialog_type, text=dialog_type) response = set_window_rect(session, { - "x": original_rect["x"] + 10, "y": original_rect["y"] + 10}) + "width": original_rect["width"] + 10, "height": original_rect["height"] + 10}) assert_success(response) assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval) @@ -37,7 +37,7 @@ def check_user_prompt_closed_with_exception(session, create_dialog): create_dialog(dialog_type, text=dialog_type) response = set_window_rect(session, { - "x": original_rect["x"] + 10, "y": original_rect["y"] + 10}) + "width": original_rect["width"] + 10, "height": original_rect["height"] + 10}) assert_error(response, "unexpected alert open") assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval) @@ -55,7 +55,7 @@ def check_user_prompt_not_closed_but_exception(session, create_dialog): create_dialog(dialog_type, text=dialog_type) response = set_window_rect(session, { - "x": original_rect["x"] + 10, "y": original_rect["y"] + 10}) + "width": original_rect["width"] + 10, "height": original_rect["height"] + 10}) assert_error(response, "unexpected alert open") assert session.alert.text == dialog_type diff --git a/tests/wpt/tests/webdriver/tests/support/image.py b/tests/wpt/tests/webdriver/tests/support/image.py index 533b8b20682..058815b0408 100644 --- a/tests/wpt/tests/webdriver/tests/support/image.py +++ b/tests/wpt/tests/webdriver/tests/support/image.py @@ -13,10 +13,6 @@ def cm_to_px(cm: float) -> float: return round(cm * inch_in_pixel / inch_in_cm) -def px_to_cm(px: float) -> float: - return px * inch_in_cm / inch_in_pixel - - def pt_to_cm(pt: float) -> float: return pt * inch_in_cm / inch_in_point diff --git a/tests/wpt/tests/webnn/conformance_tests/logical_and.https.any.js b/tests/wpt/tests/webnn/conformance_tests/logical_and.https.any.js new file mode 100644 index 00000000000..be379de157c --- /dev/null +++ b/tests/wpt/tests/webnn/conformance_tests/logical_and.https.any.js @@ -0,0 +1,422 @@ +// META: title=test WebNN API element-wise logicalAnd operation +// META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu +// META: variant=?npu +// META: script=../resources/utils.js +// META: timeout=long + +'use strict'; + +// MLOperand logicalAnd(MLOperand a, MLOperand b, optional MLOperatorOptions options = {}); + +const logicalAndTests = [ + { + 'name': 'logicalAnd uint8 0D scalar', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [], dataType: 'uint8'} + }, + 'inputB': { + 'data': [1], + 'descriptor': {shape: [], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': {'data': [1], 'descriptor': {shape: [], dataType: 'uint8'}} + } + } + }, + { + 'name': 'logicalAnd uint8 1D constant tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [24], dataType: 'uint8'}, + 'constant': true + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [24], dataType: 'uint8'}, + 'constant': true + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 1D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 2D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [4, 6], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [4, 6], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 + ], + 'descriptor': {shape: [4, 6], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 3D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 4D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 5D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 + ], + 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 broadcast 0D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 broadcast 1D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [1], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 broadcast 2D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 255, 255 + ], + 'descriptor': {shape: [2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 broadcast 3D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 255 + ], + 'descriptor': {shape: [2, 2, 1], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalAnd uint8 broadcast 4D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [1, 1, 1, 1], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalAnd', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + } +]; + +if (navigator.ml) { + logicalAndTests.forEach((test) => { + webnn_conformance_test( + buildGraphAndCompute, getPrecisionTolerance, test); + }); +} else { + test(() => assert_implements(navigator.ml, 'missing navigator.ml')); +} diff --git a/tests/wpt/tests/webnn/conformance_tests/logical_or.https.any.js b/tests/wpt/tests/webnn/conformance_tests/logical_or.https.any.js new file mode 100644 index 00000000000..f5eb21de729 --- /dev/null +++ b/tests/wpt/tests/webnn/conformance_tests/logical_or.https.any.js @@ -0,0 +1,422 @@ +// META: title=test WebNN API element-wise logicalOr operation +// META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu +// META: variant=?npu +// META: script=../resources/utils.js +// META: timeout=long + +'use strict'; + +// MLOperand logicalOr(MLOperand a, MLOperand b, optional MLOperatorOptions options = {}); + +const logicalOrTests = [ + { + 'name': 'logicalOr uint8 0D scalar', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [], dataType: 'uint8'} + }, + 'inputB': { + 'data': [1], + 'descriptor': {shape: [], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': {'data': [1], 'descriptor': {shape: [], dataType: 'uint8'}} + } + } + }, + { + 'name': 'logicalOr uint8 1D constant tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [24], dataType: 'uint8'}, + 'constant': true + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [24], dataType: 'uint8'}, + 'constant': true + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 1D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 2D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [4, 6], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [4, 6], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 + ], + 'descriptor': {shape: [4, 6], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 3D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 4D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 5D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 + ], + 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 broadcast 0D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 broadcast 1D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [1], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 broadcast 2D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 255, 255 + ], + 'descriptor': {shape: [2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 broadcast 3D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 255 + ], + 'descriptor': {shape: [2, 2, 1], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, + 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + }, + { + 'name': 'logicalOr uint8 broadcast 4D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [1, 1, 1, 1], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalOr', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } + } +]; + +if (navigator.ml) { + logicalOrTests.forEach((test) => { + webnn_conformance_test( + buildGraphAndCompute, getPrecisionTolerance, test); + }); +} else { + test(() => assert_implements(navigator.ml, 'missing navigator.ml')); +} diff --git a/tests/wpt/tests/webnn/conformance_tests/logical_xor.https.any.js b/tests/wpt/tests/webnn/conformance_tests/logical_xor.https.any.js new file mode 100644 index 00000000000..b678b04065b --- /dev/null +++ b/tests/wpt/tests/webnn/conformance_tests/logical_xor.https.any.js @@ -0,0 +1,422 @@ +// META: title=test WebNN API element-wise logicalXor operation +// META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu +// META: variant=?npu +// META: script=../resources/utils.js +// META: timeout=long + +'use strict'; + +// MLOperand logicalXor(MLOperand a, MLOperand b, optional MLOperatorOptions options = {}); + +const logicalXorTests = [ +{ + 'name': 'logicalXor uint8 0D scalar', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [], dataType: 'uint8'} + }, + 'inputB': { + 'data': [1], + 'descriptor': {shape: [], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': {'data': [1], 'descriptor': {shape: [], dataType: 'uint8'}} + } + } +}, +{ + 'name': 'logicalXor uint8 1D constant tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [24], dataType: 'uint8'}, + 'constant': true + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [24], dataType: 'uint8'}, + 'constant': true + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 1D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0 + ], + 'descriptor': {shape: [24], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 2D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [4, 6], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [4, 6], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0 + ], + 'descriptor': {shape: [4, 6], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 3D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0 + ], + 'descriptor': {shape: [2, 3, 4], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 4D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 5D tensors', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0 + ], + 'descriptor': {shape: [2, 2, 1, 2, 3], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 broadcast 0D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, + 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 broadcast 1D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [1], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, + 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 broadcast 2D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 255, 255 + ], + 'descriptor': {shape: [2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, + 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 broadcast 3D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [ + 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 8, 8, + 0, 0, 8, 8, 0, 0, 255, 255, 0, 0, 255, 255 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 255 + ], + 'descriptor': {shape: [2, 2, 1], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, + 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } +}, +{ + 'name': 'logicalXor uint8 broadcast 4D to 4D', + 'graph': { + 'inputs': { + 'inputA': { + 'data': [1], + 'descriptor': {shape: [1, 1, 1, 1], dataType: 'uint8'} + }, + 'inputB': { + 'data': [ + 0, 1, 0, 1, 0, 2, 0, 2, 0, 8, 0, 8, + 0, 2, 0, 2, 0, 255, 0, 255, 0, 8, 0, 8 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + }, + 'operators': [{ + 'name': 'logicalXor', + 'arguments': [{'a': 'inputA'}, {'b': 'inputB'}], + 'outputs': 'output' + }], + 'expectedOutputs': { + 'output': { + 'data': [ + 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, + 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 + ], + 'descriptor': {shape: [2, 2, 2, 3], dataType: 'uint8'} + } + } + } +} +]; + +if (navigator.ml) { +logicalXorTests.forEach((test) => { + webnn_conformance_test( + buildGraphAndCompute, getPrecisionTolerance, test); +}); +} else { +test(() => assert_implements(navigator.ml, 'missing navigator.ml')); +} diff --git a/tests/wpt/tests/webnn/conformance_tests/subgraph.https.any.js b/tests/wpt/tests/webnn/conformance_tests/subgraph.https.any.js index 172c59a83b1..454eb62415f 100644 --- a/tests/wpt/tests/webnn/conformance_tests/subgraph.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/subgraph.https.any.js @@ -2464,6 +2464,65 @@ const subgraphTests = [ } } }, + { + 'name': 'add + sub + mul + gather default', + 'graph': { + 'inputs': { + 'addA': { + 'data': [10], + 'descriptor': {shape: [], dataType: 'int32'}, + 'constant': true + }, + 'addB': { + 'data': [20], + 'descriptor': {shape: [], dataType: 'int32'}, + 'constant': true + }, + 'subB': { + 'data': [40], + 'descriptor': {shape: [], dataType: 'int32'}, + }, + 'divA': { + 'data': [-20], + 'descriptor': {shape: [], dataType: 'int32'}, + 'constant': true + }, + 'gatherInput': { + 'data': [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2], + 'descriptor': {shape: [3, 4], dataType: 'float32'}, + 'constant': true + }, + }, + 'operators': [ + { + 'name': 'add', + 'arguments': [{'a': 'addA'}, {'b': 'addB'}], + 'outputs': 'addOutput' + }, + { + 'name': 'sub', + 'arguments': [{'a': 'addOutput'}, {'b': 'subB'}], + 'outputs': 'subOutput' + }, + { + 'name': 'div', + 'arguments': [{'a': 'divA'}, {'b': 'subOutput'}], + 'outputs': 'divOutput' + }, + { + 'name': 'gather', + 'arguments': [{'input': 'gatherInput'}, {'indices': 'divOutput'}], + 'outputs': 'output' + }, + ], + 'expectedOutputs': { + 'output': { + 'data': [0.9, 1.0, 1.1, 1.2], + 'descriptor': {shape: [4], dataType: 'float32'} + } + } + } + }, ]; if (navigator.ml) { diff --git a/tests/wpt/tests/webnn/validation_tests/elementwise-logical.https.any.js b/tests/wpt/tests/webnn/validation_tests/elementwise-logical.https.any.js index bada9e7648b..3db25c10624 100644 --- a/tests/wpt/tests/webnn/validation_tests/elementwise-logical.https.any.js +++ b/tests/wpt/tests/webnn/validation_tests/elementwise-logical.https.any.js @@ -13,6 +13,9 @@ const kElementwiseLogicalBinaryOperators = [ 'greaterOrEqual', 'lesser', 'lesserOrEqual', + 'logicalAnd', + 'logicalOr', + 'logicalXor', ]; const label = 'elementwise_logic_op'; diff --git a/tests/wpt/tests/webusb/requestDevice/sandboxed_iframe.https.window.js b/tests/wpt/tests/webusb/requestDevice/sandboxed_iframe.https.window.js index 0311db88491..fa2c3d7f8bd 100644 --- a/tests/wpt/tests/webusb/requestDevice/sandboxed_iframe.https.window.js +++ b/tests/wpt/tests/webusb/requestDevice/sandboxed_iframe.https.window.js @@ -1,3 +1,6 @@ +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js + 'use strict'; promise_test(async (t) => {