Update web-platform-tests to revision b'e0214318249f1b6ea09b837db6eac7b0facd1b52'

This commit is contained in:
WPT Sync Bot 2023-02-05 01:47:40 +00:00
parent 3429e8fe3b
commit febcb80385
141 changed files with 2568 additions and 986 deletions

View file

@ -4149,6 +4149,13 @@
{}
]
],
"delete-at-start-of-first-li-in-ol-in-video.html": [
"43baf25a86645b90f3fad29979d1b0634d460cf0",
[
null,
{}
]
],
"delete-content-in-no-data-object.html": [
"749dba303be6dc688f3b73457825d66897dd55c9",
[
@ -4380,6 +4387,13 @@
{}
]
],
"inserttext-with-clearing-subscript.html": [
"9c27a7ed53876bd6745fb794b8693c4570af2cd9",
[
null,
{}
]
],
"insertunorderedlist-in-empty-inline-editing-host.html": [
"74b0993322eda076a13023c96261840eadd53339",
[
@ -4499,6 +4513,13 @@
{}
]
],
"outdent-in-meter-indented-by-legend-in-css-mode.html": [
"af20ea81283ba8ba3e277f239dd7ea85551c1e43",
[
null,
{}
]
],
"outdent-indent-inserthorizontalrule-on-selectionchange.html": [
"800d9d1969a8203443d525312ea9061fb0b67df3",
[
@ -186904,6 +186925,19 @@
{}
]
],
"line-names-012.html": [
"e8101043cfc570295fc1612c9f67d733f2aac838",
[
null,
[
[
"/css/css-grid/subgrid/line-names-012-ref.html",
"=="
]
],
{}
]
],
"orthogonal-writing-mode-001.html": [
"1cf99a73e2ef7b0e3fe42bbf8c188fa4d2733979",
[
@ -189282,6 +189316,19 @@
{}
]
],
"image-set-dpcm-rendering.html": [
"c9c4f50b5a62b33f61bd6fcb1437737060d49cd7",
[
null,
[
[
"/css/css-images/image-set/reference/image-set-rendering-ref.html",
"=="
]
],
{}
]
],
"image-set-dpi-rendering-2.html": [
"688c60a688a387e32abaecc07ec109983d1e58d9",
[
@ -206935,7 +206982,7 @@
]
],
"nesting-basic.html": [
"6bc727a73195122f6f2abca1a07a289c99376f5c",
"dde3ebbcfdb8d268d22fa8ce6940655808c0a202",
[
null,
[
@ -379540,6 +379587,10 @@
"40f35439808470a82760ddf12a720fa73b87a7c1",
[]
],
"line-names-012-ref.html": [
"6ddf3ab87cb96b55d5eae6865773c52bd9c6ceac",
[]
],
"orthogonal-writing-mode-001-ref.html": [
"4f0f6f962e633d8e3c7ddd78acf0247bd96e7715",
[]
@ -383308,7 +383359,7 @@
[]
],
"nesting-basic-ref.html": [
"c2f7c669497d363e868cb96d2c2bb1ee315fff49",
"8825ad47d277feb6e64fde381107833e84ccbc56",
[]
]
},
@ -401599,7 +401650,7 @@
},
"scrolling": {
"scroll_support.js": [
"53482879ea4cd02aa0f81aac8bf5c68b531f4eb1",
"74b531cd3dfedfe8409f1918afebdff7b73e48fa",
[]
]
}
@ -402184,7 +402235,7 @@
[]
],
"forecolor.js": [
"c3271b32c965c7fe56ba8ab85de40eb7ea7e69c1",
"aa390a9f64eabc6c879cf26b2f1498c8a9b5020d",
[]
],
"formatblock.js": [
@ -420447,6 +420498,14 @@
"8e294e8c464dd40d9886e1640dc881b4141e14f7",
[]
],
"nested-template-shadowrootmode-1-framed.sub.html": [
"19e60e982800542a3ba82715724448df312692d7",
[]
],
"nested-template-shadowrootmode-2-framed.sub.html": [
"5cea082c4f71deb3058cb0cb72c2230ae5baa163",
[]
],
"picture-source-br-img-framed.sub.html": [
"aea18d1e042bb0ca7b98fe57419c299d35c22764",
[]
@ -420527,10 +420586,30 @@
"e634000d0166d560bff09723373ec3262287dfa1",
[]
],
"template-img-src-framed.sub.html": [
"1f8986c2d130d0e7d095007aa89e17d778da6813",
[]
],
"template-link-stylesheet-framed.sub.html": [
"cfc25023355d2c996f2011b6c9ba0041a1417723",
[]
],
"template-script-src-framed.sub.html": [
"8582d10ece3d5af0b76b2326297676bcec1ce267",
[]
],
"template-shadowrootmode-img-src-framed.sub.html": [
"32d0aa9a45eb990c705b305a2c17543ac0c1ddd7",
[]
],
"template-shadowrootmode-link-stylesheet-framed.sub.html": [
"3557749c81a44aebaf9d19e793e4ae1275deb4b2",
[]
],
"template-shadowrootmode-script-src-framed.sub.html": [
"ab4ad10df46ec2d7131b5040aeb4ee591e37ad50",
[]
],
"video-poster-framed.sub.html": [
"ad2c7cef95d9f0527d11d2af4942a3a8af73b876",
[]
@ -420658,6 +420737,14 @@
"cb0f992adb42466173f56eff2d0a5a09b7386fe3",
[]
],
"nested-template-shadowrootmode-1-nonspeculative.sub.html": [
"ec14d9b9c4c4b877e87fb3db9d5a807ffe0aaf03",
[]
],
"nested-template-shadowrootmode-2-nonspeculative.sub.html": [
"71231ee70ce3904fe3b72f683e1b7f4e71e49060",
[]
],
"picture-source-br-img-nonspeculative.sub.html": [
"371600284d07de0488772a536cd302474c3d888d",
[]
@ -420738,10 +420825,30 @@
"376fafdcf1b9bb3b255f8dc828d3812049ea910e",
[]
],
"template-img-src-nonspeculative.sub.html": [
"db331fc88b9b7cbffc6abd2e7c0cc5199d0f1291",
[]
],
"template-link-stylesheet-nonspeculative.sub.html": [
"cc3072d890be7a42fade7b7c5fe3a34ce271de2e",
[]
],
"template-script-src-nonspeculative.sub.html": [
"0ec64a0163a084b5ce8b5b2e7bc2889aeecc72b7",
[]
],
"template-shadowrootmode-img-src-nonspeculative.sub.html": [
"ec3ca52442c20220b488f9733507ce408234b55f",
[]
],
"template-shadowrootmode-link-stylesheet-nonspeculative.sub.html": [
"ed813b3fd5f03b32f462cd05662baf618c9ca7af",
[]
],
"template-shadowrootmode-script-src-nonspeculative.sub.html": [
"cd401584d8166e56024fbfda8daa09a33941a56e",
[]
],
"video-poster-nonspeculative.sub.html": [
"c233e899cbd45bc9d7cbcc040fdf8e4cbf54797a",
[]
@ -420764,7 +420871,7 @@
},
"tools": {
"generate.py": [
"8a7377a28a72dc0aecdb303166980a47e02aba74",
"3457f94d70598ca4590aa27ec9929ebec61c0039",
[]
]
}
@ -424178,7 +424285,7 @@
[]
],
"largest-contentful-paint-helpers.js": [
"b0fe1b08cb44b1871ba6dac4c1d25018c6032019",
"3ac3705e8e7ad2403715a0983445a567029dd044",
[]
],
"lcp-sw-from-cache.js": [
@ -449760,7 +449867,7 @@
]
},
"utils.js": [
"f727d3ffe36fbcc74096d4cbe66358be2402c562",
"858424a36d427f8f297a46b154b66a086aefd32d",
[]
]
}
@ -488736,7 +488843,7 @@
]
],
"KeyframeEffect-getKeyframes.tentative.html": [
"4547cae0d202d85720f6f961e06047874acfb61b",
"e5d63638c1f5e991f15edac4eb359e3254bf14af",
[
null,
{}
@ -489319,7 +489426,7 @@
]
],
"column-width-001.html": [
"7697eec324064dd6bd1fd75f16fdff5d3050315d",
"272b9bc5a282ed7abe8521251a5f9909316890ee",
[
null,
{}
@ -491154,7 +491261,7 @@
]
],
"color-computed-color-mix-function.html": [
"50f01bcc35f1e1c4205be9d4c4070433ead1a82c",
"65ff19a88ab39831f6e51f95daf3763197f1babc",
[
null,
{}
@ -491363,6 +491470,13 @@
{}
]
],
"gamut-mapping.html": [
"cfc1d1b946a729d4e7ca3fe2fd765aee3e53c8f9",
[
null,
{}
]
],
"opacity-computed.html": [
"27d9316415f24bf8e398cc992508b0036935291c",
[
@ -495726,21 +495840,21 @@
]
],
"font-language-override-computed.html": [
"76601b97282bd2330cb65d51eac85faca69c5401",
"d208b15b12da32125cbb15ba9b39abcd940cd678",
[
null,
{}
]
],
"font-language-override-invalid.html": [
"f69e551658183af1d6b443845d66301009d13042",
"448d1ec292e56fbb3b3588a535292f10727ad26c",
[
null,
{}
]
],
"font-language-override-valid.html": [
"27246f46ba53feae81bb71605fc27d3c119155fe",
"53793ef3a53e90ddc573552dbe696d10c580e87f",
[
null,
{}
@ -500034,14 +500148,14 @@
},
"image-set": {
"image-set-computed.sub.html": [
"4239eaa09e2f7dc464dd0c34bbf5042c37b6bc99",
"3fd04ac92c54ff9c5aeb0b0662b1c4d134e466ca",
[
null,
{}
]
],
"image-set-parsing.html": [
"868861b8add32ea7e7822383f04a4bb219dd747f",
"3859b5f64caae2a9499fac04f5c16aa0e2c93ad0",
[
null,
{}
@ -502046,6 +502160,13 @@
null,
{}
]
],
"top-level-is-scope.html": [
"fefc77d5d045381f0def0ce9b6a335a5e38d1165",
[
null,
{}
]
]
},
"css-outline": {
@ -503665,7 +503786,7 @@
]
},
"at-property-animation.html": [
"6d467ab2b992b703a433de7212a061f8deab4144",
"233b63239fc3b4a9b8d07cb24e8e4d405ad7c6ca",
[
null,
{}
@ -503770,7 +503891,7 @@
]
],
"registered-properties-inheritance.html": [
"614a72a797bc91a76742efc990e07669bee87c11",
"7c8c2656c683c199bf0e3dba2dfc5bef224034b5",
[
null,
{}
@ -519544,7 +519665,7 @@
]
],
"match-media-parsing.html": [
"9d9aa3dd581579dfb6e14e2ad82ee54f8f575696",
"bbb326eb1893e0fc35cad8e45629edd31a93fba5",
[
null,
{}
@ -524128,7 +524249,7 @@
]
],
"scrollend-event-fired-after-sequence-of-scrolls.tentative.html": [
"8c785c2a9756a99466c1f5126f91d22d58cce53e",
"f6fe46fa803910ccac31e5bae5349a18a661435b",
[
null,
{
@ -524192,15 +524313,6 @@
}
]
],
"scrollend-event-fired-to-scrolled-element.html": [
"734339694220ccca6158b1494b4ffe08c2311765",
[
null,
{
"testdriver": true
}
]
],
"scrollend-event-fired-to-window.html": [
"ef72f56d2ba9d62237646dc946fcd0be86dde97e",
[
@ -524211,7 +524323,7 @@
]
],
"scrollend-event-for-user-scroll.html": [
"6a699b6f087c896f4d0ae41e82aad7f5ff412b40",
"fae969faabc0603fcd5c3dc8ac54834564643633",
[
null,
{
@ -554028,7 +554140,7 @@
]
],
"partial.any.js": [
"a75b8115f5cb54ce62f9af44510fc51b69826b89",
"3f23b5930f73799cc6b0029527e800b69774904d",
[
"fetch/http-cache/partial.any.html",
{
@ -600692,7 +600804,7 @@
]
],
"pattern_attribute.html": [
"546c4b18d7f44875093013a5b36136715a140446",
"ad9a4a4312c0ba487bbef52fe5a0dd252d9a4cff",
[
null,
{}
@ -602365,7 +602477,7 @@
]
],
"popover-anchor-idl-property.tentative.html": [
"5064bb99ca19dfda8d5448179bc8cf7c4e0d3939",
"bc9f3ae770d2daded1b7f087a5d56436b578cb36",
[
null,
{}
@ -608805,6 +608917,20 @@
{}
]
],
"nested-template-shadowrootmode-1.tentative.sub.html": [
"c6006ebc0dc236d7f7e41c793915416175234b0a",
[
null,
{}
]
],
"nested-template-shadowrootmode-2.tentative.sub.html": [
"282b0bb555ee3a11bda23ea300271fec541642f9",
[
null,
{}
]
],
"picture-source-br-img.tentative.sub.html": [
"914dfb83c90a3e3374f03ac97369ce85a02311be",
[
@ -608945,6 +609071,20 @@
{}
]
],
"template-img-src.tentative.sub.html": [
"60928c10e9ec0845c69d9a3c86b37fe9eba895ef",
[
null,
{}
]
],
"template-link-stylesheet.tentative.sub.html": [
"590975e370701b896edd1dbc3045a7428836aac2",
[
null,
{}
]
],
"template-script-src.tentative.sub.html": [
"b9e4177d8df4230e2463c595294fb22b3afc0b98",
[
@ -608952,6 +609092,27 @@
{}
]
],
"template-shadowrootmode-img-src.tentative.sub.html": [
"d9594f11aee2ab209d28e722b0e308f461ee572d",
[
null,
{}
]
],
"template-shadowrootmode-link-stylesheet.tentative.sub.html": [
"f536059720d69a3f4c15b1918e89f8950b2b4d7d",
[
null,
{}
]
],
"template-shadowrootmode-script-src.tentative.sub.html": [
"a9b6798da2e683fb6558d9f1adcd84f669d33563",
[
null,
{}
]
],
"video-poster.tentative.sub.html": [
"e14bf19fc98340cf32c114ba3ead7d4a74371726",
[
@ -609178,6 +609339,20 @@
{}
]
],
"nested-template-shadowrootmode-1.tentative.html": [
"fe61837dcfe4cda37b33366b952f21291f7817e7",
[
null,
{}
]
],
"nested-template-shadowrootmode-2.tentative.html": [
"7d4732cd18bd906189b1479d179aa3a11f5e5e00",
[
null,
{}
]
],
"picture-source-br-img.tentative.html": [
"38acd4707e83275aac93349311d5d48d21f99dae",
[
@ -609318,6 +609493,20 @@
{}
]
],
"template-img-src.tentative.html": [
"bd83a9359a065b4e2d1333db89e786e74e218b58",
[
null,
{}
]
],
"template-link-stylesheet.tentative.html": [
"d7718bc23b776fb2628ee79c21fcd302e11e956f",
[
null,
{}
]
],
"template-script-src.tentative.html": [
"f5c23dddb2ddf15d628448269556a6d6e1aa9fc8",
[
@ -609325,6 +609514,27 @@
{}
]
],
"template-shadowrootmode-img-src.tentative.html": [
"96a48dc739db0bb04cee51baeefa124ff82867b8",
[
null,
{}
]
],
"template-shadowrootmode-link-stylesheet.tentative.html": [
"3f08ab3bb7fd686253c0360d3f000db0d55e0dfc",
[
null,
{}
]
],
"template-shadowrootmode-script-src.tentative.html": [
"6d78fcfff1e93e3c5a3bcc31879f7f369bb4794d",
[
null,
{}
]
],
"video-poster.tentative.html": [
"73b9cb50dea8ab65b7eff1c3a7ea768f7a2d3a64",
[
@ -615463,6 +615673,13 @@
}
]
],
"multiple-image-same-src.html": [
"192a7a1dec0d9ff084147bf0ddac4af4aac0c689",
[
null,
{}
]
],
"multiple-redirects-TAO.html": [
"50130eebb2f2f141ef7076f779210bf19fee9710",
[
@ -679803,7 +680020,7 @@
]
],
"idlharness.https.any.js": [
"3e343374536fbab1c0b02e7c45f7faeae8ea0694",
"7f5f428afa9098cebb81b499ac1294f3ea5765b0",
[
"webcodecs/idlharness.https.any.html",
{
@ -681298,7 +681515,7 @@
]
],
"videoFrame-construction.crossOriginSource.sub.html": [
"21860b2e31315f7506a5e0faf13df80dd04522d1",
"62f2bd934f1d09afb4be1314048fe773db9239b3",
[
null,
{}
@ -681484,7 +681701,7 @@
]
],
"videoFrame-serialization.crossAgentCluster.https.html": [
"e07f61072dd41cdfa6280daaaf18239df43052d2",
"1266869783ded7ed6a96afb74416848081006b89",
[
null,
{}
@ -684936,7 +685153,7 @@
]
],
"RTCPeerConnection-mandatory-getStats.https.html": [
"8247ba2a40180be70830b5f2a67221488036132a",
"099fba8eaf7515153ad05a47a9f99e8744a4fd84",
[
null,
{
@ -685883,7 +686100,7 @@
]
],
"RTCPeerConnection-insertable-streams-audio.https.html": [
"14ae2ad553f67920d5a7bd47169ef28a1cfda5b1",
"d4b6b72a3239d4966cd465c8699d3d89f91bb59e",
[
null,
{
@ -706505,7 +706722,7 @@
]
],
"idlharness.any.js": [
"d82a82635766b19ac9a956d40327b4b2b9a25062",
"2e0e0c89636b34d9456f4caf1dc60f554d7fc136",
[
"xhr/idlharness.any.html",
{

View file

@ -1,3 +0,0 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

@ -0,0 +1,3 @@
[hit-test-floats-003.html]
[Miss float below something else]
expected: FAIL

View file

@ -0,0 +1,3 @@
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -1,3 +0,0 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -8,8 +8,5 @@
[[data-expected-height\] 3]
expected: FAIL
[[data-expected-height\] 1]
expected: FAIL
[[data-expected-height\] 2]
[[data-expected-height\] 4]
expected: FAIL

View file

@ -1,6 +1,3 @@
[block-in-inline-hittest-002.html]
[elementsFromPoint]
expected: FAIL
[elementFromPoint]
expected: FAIL

View file

@ -0,0 +1,54 @@
[gamut-mapping.html]
[Property color value 'color-mix(in hsl, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hsl, lab(100 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hsl, lab(0 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hsl, lch(100 116 334) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hsl, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hsl, oklab(100 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hsl, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hsl, oklch(100 0.399 336.3) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hsl, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hwb, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hwb, lab(100 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hwb, lab(0 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hwb, lch(100 116 334) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hwb, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hwb, oklab(100 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hwb, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hwb, oklch(100 0.399 336.3) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL
[Property color value 'color-mix(in hwb, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)']
expected: FAIL

View file

@ -1,3 +0,0 @@
[hittest-anonymous-box.html]
[Hit-testing within an anonymous flex-item should return the flexbox as the hittest result.]
expected: FAIL

View file

@ -0,0 +1,15 @@
[text-as-flexitem-size-001.html]
[.flexbox > div 1]
expected: FAIL
[.flexbox > div 2]
expected: FAIL
[.flexbox > div 5]
expected: FAIL
[.flexbox > div 8]
expected: FAIL
[.flexbox > div 11]
expected: FAIL

View file

@ -11,3 +11,14 @@
[Property font-language-override value '"ksw"']
expected: FAIL
[Property font-language-override value '"KSW"']
expected: FAIL
[Property font-language-override value '"ENG "']
expected: FAIL
[Property font-language-override value '"en "']
expected: FAIL
[Property font-language-override value '" en "']
expected: FAIL

View file

@ -5,3 +5,23 @@
[e.style['font-language-override'\] = "normal" should set the property value]
expected: FAIL
[e.style['font-language-override'\] = "\\"KSW\\"" should set the property value]
expected: FAIL
[e.style['font-language-override'\] = "\\"APPH\\"" should set the property value]
expected: FAIL
[e.style['font-language-override'\] = "\\"ENG \\"" should set the property value]
expected: FAIL
[e.style['font-language-override'\] = "\\"tr\\"" should set the property value]
expected: FAIL
[e.style['font-language-override'\] = "\\"en \\"" should set the property value]
expected: FAIL
[e.style['font-language-override'\] = "\\" en \\"" should set the property value]
expected: FAIL
[e.style['font-language-override'\] = "\\"1 %\\"" should set the property value]
expected: FAIL

View file

@ -53,9 +53,6 @@
[Descriptor matching priority: Style has higher priority than weight]
expected: FAIL
[Matching font-weight: '501' should prefer '390 410' over '300 350']
expected: FAIL
[Matching font-weight: '430' should prefer '420 440' over '450 460']
expected: FAIL
@ -92,9 +89,6 @@
[Matching font-weight: '500' should prefer '400' over '350 399']
expected: FAIL
[Matching font-weight: '430' should prefer '350 399' over '340 398']
expected: FAIL
[Matching font-weight: '501' should prefer '501' over '502 510']
expected: FAIL
@ -119,18 +113,9 @@
[Matching font-weight: '430' should prefer '340 398' over '501 550']
expected: FAIL
[Matching font-style: 'oblique 10deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg']
expected: FAIL
[Matching font-style: 'oblique -20deg' should prefer 'oblique -10deg' over 'italic']
expected: FAIL
[Matching font-weight: '501' should prefer '502 510' over '503 520']
expected: FAIL
[Matching font-style: 'normal' should prefer 'normal' over 'oblique 0deg']
expected: FAIL
[Matching font-style: 'oblique -20deg' should prefer 'oblique -20deg' over 'oblique -60deg -40deg']
expected: FAIL
@ -182,9 +167,6 @@
[Matching font-weight: '399' should prefer '500 501' over '502 510']
expected: FAIL
[Matching font-stretch: '110%' should prefer '110% 120%' over '115% 116%']
expected: FAIL
[Matching font-stretch: '90%' should prefer '110% 140%' over '120% 130%']
expected: FAIL
@ -215,9 +197,6 @@
[Matching font-weight: '500' should prefer '350 399' over '351 398']
expected: FAIL
[Matching font-weight: '501' should prefer '500' over '450 460']
expected: FAIL
[Matching font-weight: '400' should prefer '351 398' over '501 550']
expected: FAIL
@ -230,9 +209,6 @@
[Matching font-style: 'oblique 21deg' should prefer 'oblique 0deg' over 'oblique -50deg -20deg']
expected: FAIL
[Matching font-weight: '399' should prefer '350 399' over '340 360']
expected: FAIL
[Matching font-style: 'oblique 20deg' should prefer 'italic' over 'oblique 0deg']
expected: FAIL
@ -242,9 +218,6 @@
[Matching font-stretch: '110%' should prefer '105%' over '100%']
expected: FAIL
[Matching font-stretch: '90%' should prefer '90% 100%' over '50% 80%']
expected: FAIL
[Matching font-style: 'italic' should prefer 'oblique 40deg 50deg' over 'oblique 5deg 10deg']
expected: FAIL
@ -296,9 +269,6 @@
[Matching font-style: 'oblique -10deg' should prefer 'oblique -1deg 0deg' over 'oblique -20deg -15deg']
expected: FAIL
[Matching font-stretch: '90%' should prefer '60% 70%' over '110% 140%']
expected: FAIL
[Matching font-style: 'oblique 21deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg']
expected: FAIL
@ -331,3 +301,6 @@
[Matching font-style: 'oblique -21deg' should prefer 'oblique 30deg 60deg' over 'oblique 40deg 50deg']
expected: FAIL
[Matching font-style: 'italic' should prefer 'normal' over 'oblique 0deg']
expected: FAIL

View file

@ -0,0 +1,2 @@
[image-set-dpcm-rendering.html]
expected: FAIL

View file

@ -151,3 +151,9 @@
[e.style['background-image'\] = "-webkit-image-set(url(foo) 1x, url(bar), url(baz) 2x)" should set the property value]
expected: FAIL
[e.style['content'\] = "image-set(url(\\"example.png\\") 1dpi)" should set the property value]
expected: FAIL
[e.style['content'\] = "-webkit-image-set(url(\\"example.png\\") 1dpi)" should set the property value]
expected: FAIL

View file

@ -1,2 +0,0 @@
[trailing-other-space-separators-break-spaces-008.html]
expected: FAIL

View file

@ -202,3 +202,426 @@
[margin-right length(mm) / values]
expected: FAIL
[background-color color(rgba) / values]
expected: FAIL
[border-top-width length(pt) / values]
expected: FAIL
[border-top-width length(pc) / values]
expected: FAIL
[border-top-width length(px) / values]
expected: FAIL
[border-top-width length(em) / values]
expected: FAIL
[border-top-width length(ex) / values]
expected: FAIL
[border-top-width length(mm) / values]
expected: FAIL
[border-top-width length(cm) / values]
expected: FAIL
[border-top-width length(in) / values]
expected: FAIL
[border-right-width length(pt) / values]
expected: FAIL
[border-right-width length(pc) / values]
expected: FAIL
[border-right-width length(px) / values]
expected: FAIL
[border-right-width length(em) / values]
expected: FAIL
[border-right-width length(ex) / values]
expected: FAIL
[border-right-width length(mm) / values]
expected: FAIL
[border-right-width length(cm) / values]
expected: FAIL
[border-right-width length(in) / values]
expected: FAIL
[border-bottom-width length(pt) / values]
expected: FAIL
[border-bottom-width length(pc) / values]
expected: FAIL
[border-bottom-width length(px) / values]
expected: FAIL
[border-bottom-width length(em) / values]
expected: FAIL
[border-bottom-width length(ex) / values]
expected: FAIL
[border-bottom-width length(mm) / values]
expected: FAIL
[border-bottom-width length(cm) / values]
expected: FAIL
[border-bottom-width length(in) / values]
expected: FAIL
[border-left-width length(pt) / values]
expected: FAIL
[border-left-width length(pc) / values]
expected: FAIL
[border-left-width length(px) / values]
expected: FAIL
[border-left-width length(em) / values]
expected: FAIL
[border-left-width length(ex) / values]
expected: FAIL
[border-left-width length(mm) / values]
expected: FAIL
[border-left-width length(cm) / values]
expected: FAIL
[border-left-width length(in) / values]
expected: FAIL
[border-top-color color(rgba) / values]
expected: FAIL
[border-right-color color(rgba) / values]
expected: FAIL
[border-bottom-color color(rgba) / values]
expected: FAIL
[border-left-color color(rgba) / values]
expected: FAIL
[padding-bottom length(pt) / values]
expected: FAIL
[padding-bottom length(pc) / values]
expected: FAIL
[padding-bottom length(px) / values]
expected: FAIL
[padding-bottom length(em) / values]
expected: FAIL
[max-height length(ex) / values]
expected: FAIL
[max-height length(mm) / values]
expected: FAIL
[max-height length(cm) / values]
expected: FAIL
[max-height length(in) / values]
expected: FAIL
[max-height percentage(%) / values]
expected: FAIL
[max-width length(pt) / values]
expected: FAIL
[max-width length(pc) / values]
expected: FAIL
[max-width length(px) / values]
expected: FAIL
[max-width length(em) / values]
expected: FAIL
[max-width length(ex) / values]
expected: FAIL
[max-width length(mm) / values]
expected: FAIL
[max-width length(cm) / values]
expected: FAIL
[max-width length(in) / values]
expected: FAIL
[max-width percentage(%) / values]
expected: FAIL
[top length(pt) / values]
expected: FAIL
[top length(pc) / values]
expected: FAIL
[top length(px) / values]
expected: FAIL
[top length(em) / values]
expected: FAIL
[top length(ex) / values]
expected: FAIL
[top length(mm) / values]
expected: FAIL
[top length(cm) / values]
expected: FAIL
[top length(in) / values]
expected: FAIL
[top percentage(%) / values]
expected: FAIL
[right length(pt) / values]
expected: FAIL
[right length(pc) / values]
expected: FAIL
[right length(px) / values]
expected: FAIL
[right length(em) / values]
expected: FAIL
[right length(ex) / values]
expected: FAIL
[right length(mm) / values]
expected: FAIL
[right length(cm) / values]
expected: FAIL
[right length(in) / values]
expected: FAIL
[right percentage(%) / values]
expected: FAIL
[bottom length(pt) / values]
expected: FAIL
[bottom length(pc) / values]
expected: FAIL
[bottom length(px) / values]
expected: FAIL
[bottom length(em) / values]
expected: FAIL
[bottom length(ex) / values]
expected: FAIL
[bottom length(mm) / values]
expected: FAIL
[bottom length(cm) / values]
expected: FAIL
[bottom length(in) / values]
expected: FAIL
[bottom percentage(%) / values]
expected: FAIL
[left length(pt) / values]
expected: FAIL
[left length(pc) / values]
expected: FAIL
[left length(px) / values]
expected: FAIL
[left length(em) / values]
expected: FAIL
[left length(ex) / values]
expected: FAIL
[left length(mm) / values]
expected: FAIL
[left length(cm) / values]
expected: FAIL
[left length(in) / values]
expected: FAIL
[left percentage(%) / values]
expected: FAIL
[color color(rgba) / values]
expected: FAIL
[font-size length(pt) / values]
expected: FAIL
[font-size length(pc) / values]
expected: FAIL
[font-size length(px) / values]
expected: FAIL
[font-size length(em) / values]
expected: FAIL
[font-size length(ex) / values]
expected: FAIL
[font-size length(mm) / values]
expected: FAIL
[font-size length(cm) / values]
expected: FAIL
[font-size length(in) / values]
expected: FAIL
[font-size percentage(%) / values]
expected: FAIL
[font-weight font-weight(keyword) / values]
expected: FAIL
[font-weight font-weight(numeric) / values]
expected: FAIL
[line-height number(integer) / values]
expected: FAIL
[line-height number(decimal) / values]
expected: FAIL
[line-height length(pt) / values]
expected: FAIL
[line-height length(pc) / values]
expected: FAIL
[line-height length(px) / values]
expected: FAIL
[line-height length(em) / values]
expected: FAIL
[line-height length(ex) / values]
expected: FAIL
[line-height length(mm) / values]
expected: FAIL
[line-height length(cm) / values]
expected: FAIL
[line-height length(in) / values]
expected: FAIL
[line-height percentage(%) / values]
expected: FAIL
[letter-spacing length(pt) / values]
expected: FAIL
[letter-spacing length(pc) / values]
expected: FAIL
[letter-spacing length(px) / values]
expected: FAIL
[letter-spacing length(em) / values]
expected: FAIL
[letter-spacing length(ex) / values]
expected: FAIL
[letter-spacing length(mm) / values]
expected: FAIL
[letter-spacing length(cm) / values]
expected: FAIL
[letter-spacing length(in) / values]
expected: FAIL
[word-spacing length(pt) / values]
expected: FAIL
[word-spacing length(pc) / values]
expected: FAIL
[word-spacing length(px) / values]
expected: FAIL
[word-spacing length(em) / values]
expected: FAIL
[word-spacing length(ex) / values]
expected: FAIL
[word-spacing length(mm) / values]
expected: FAIL
[word-spacing length(cm) / values]
expected: FAIL
[word-spacing length(in) / values]
expected: FAIL
[word-spacing percentage(%) / values]
expected: FAIL
[text-indent length(pt) / values]
expected: FAIL
[text-indent length(pc) / values]
expected: FAIL
[text-indent length(px) / values]
expected: FAIL
[text-indent length(em) / values]
expected: FAIL
[text-indent length(ex) / values]
expected: FAIL
[text-indent length(mm) / values]
expected: FAIL
[text-indent length(cm) / values]
expected: FAIL
[text-indent length(in) / values]
expected: FAIL
[text-indent percentage(%) / values]
expected: FAIL
[text-shadow shadow(shadow) / values]
expected: FAIL

View file

@ -490,33 +490,3 @@
[object-view-box object-view-box(xywh) / events]
expected: FAIL
[border-top-left-radius border-radius(px) / values]
expected: FAIL
[border-top-left-radius border-radius(px-px) / values]
expected: FAIL
[border-top-right-radius border-radius(px) / values]
expected: FAIL
[border-top-right-radius border-radius(px-px) / values]
expected: FAIL
[border-bottom-left-radius border-radius(px) / values]
expected: FAIL
[border-bottom-left-radius border-radius(px-px) / values]
expected: FAIL
[border-bottom-right-radius border-radius(px) / values]
expected: FAIL
[border-bottom-right-radius border-radius(px-px) / values]
expected: FAIL
[box-shadow box-shadow(shadow) / values]
expected: FAIL
[font-stretch font-stretch(keyword) / values]
expected: FAIL

View file

@ -206,452 +206,125 @@
[max-height length(em) / events]
expected: FAIL
[padding-bottom length(ex) / events]
[background-color color(rgba) / events]
expected: FAIL
[padding-bottom length(mm) / events]
[border-top-width length(pt) / events]
expected: FAIL
[padding-bottom length(cm) / events]
[border-top-width length(pc) / events]
expected: FAIL
[padding-bottom length(in) / events]
[border-top-width length(px) / events]
expected: FAIL
[padding-left length(pt) / events]
[border-top-width length(em) / events]
expected: FAIL
[padding-left length(pc) / events]
[border-top-width length(ex) / events]
expected: FAIL
[padding-left length(px) / events]
[border-top-width length(mm) / events]
expected: FAIL
[padding-left length(em) / events]
[border-top-width length(cm) / events]
expected: FAIL
[padding-left length(ex) / events]
[border-top-width length(in) / events]
expected: FAIL
[padding-left length(mm) / events]
[border-right-width length(pt) / events]
expected: FAIL
[padding-left length(cm) / events]
[border-right-width length(pc) / events]
expected: FAIL
[padding-left length(in) / events]
[border-right-width length(px) / events]
expected: FAIL
[padding-right length(pt) / events]
[border-right-width length(em) / events]
expected: FAIL
[padding-right length(pc) / events]
[border-right-width length(ex) / events]
expected: FAIL
[padding-right length(px) / events]
[border-right-width length(mm) / events]
expected: FAIL
[padding-right length(em) / events]
[border-right-width length(cm) / events]
expected: FAIL
[padding-right length(ex) / events]
[border-right-width length(in) / events]
expected: FAIL
[padding-right length(mm) / events]
[border-bottom-width length(pt) / events]
expected: FAIL
[padding-right length(cm) / events]
[border-bottom-width length(pc) / events]
expected: FAIL
[padding-right length(in) / events]
[border-bottom-width length(px) / events]
expected: FAIL
[padding-top length(pt) / events]
[border-bottom-width length(em) / events]
expected: FAIL
[padding-top length(pc) / events]
[border-bottom-width length(ex) / events]
expected: FAIL
[padding-top length(px) / events]
[border-bottom-width length(mm) / events]
expected: FAIL
[padding-top length(em) / events]
[border-bottom-width length(cm) / events]
expected: FAIL
[padding-top length(ex) / events]
[border-bottom-width length(in) / events]
expected: FAIL
[padding-top length(mm) / events]
[border-left-width length(pt) / events]
expected: FAIL
[padding-top length(cm) / events]
[border-left-width length(pc) / events]
expected: FAIL
[padding-top length(in) / events]
[border-left-width length(px) / events]
expected: FAIL
[margin-bottom length(pt) / events]
[border-left-width length(em) / events]
expected: FAIL
[margin-bottom length(pc) / events]
[border-left-width length(ex) / events]
expected: FAIL
[margin-bottom length(px) / events]
[border-left-width length(mm) / events]
expected: FAIL
[margin-bottom length(em) / events]
[border-left-width length(cm) / events]
expected: FAIL
[margin-bottom length(ex) / events]
[border-left-width length(in) / events]
expected: FAIL
[margin-bottom length(mm) / events]
[border-top-color color(rgba) / events]
expected: FAIL
[margin-bottom length(cm) / events]
[border-right-color color(rgba) / events]
expected: FAIL
[margin-bottom length(in) / events]
[border-bottom-color color(rgba) / events]
expected: FAIL
[margin-left length(pt) / events]
[border-left-color color(rgba) / events]
expected: FAIL
[margin-left length(pc) / events]
[padding-bottom length(pt) / events]
expected: FAIL
[margin-left length(px) / events]
[padding-bottom length(pc) / events]
expected: FAIL
[margin-left length(em) / events]
[padding-bottom length(px) / events]
expected: FAIL
[margin-left length(ex) / events]
expected: FAIL
[margin-left length(mm) / events]
expected: FAIL
[margin-left length(cm) / events]
expected: FAIL
[margin-left length(in) / events]
expected: FAIL
[margin-right length(pt) / events]
expected: FAIL
[margin-right length(pc) / events]
expected: FAIL
[margin-right length(px) / events]
expected: FAIL
[margin-right length(em) / events]
expected: FAIL
[margin-right length(ex) / events]
expected: FAIL
[margin-right length(mm) / events]
expected: FAIL
[color color(rgba) / events]
expected: FAIL
[font-size length(pt) / events]
expected: FAIL
[font-size length(pc) / events]
expected: FAIL
[font-size length(px) / events]
expected: FAIL
[font-size length(em) / events]
expected: FAIL
[font-size length(ex) / events]
expected: FAIL
[font-size length(mm) / events]
expected: FAIL
[font-size length(cm) / events]
expected: FAIL
[font-size length(in) / events]
expected: FAIL
[font-size percentage(%) / events]
expected: FAIL
[font-weight font-weight(keyword) / events]
expected: FAIL
[font-weight font-weight(numeric) / events]
expected: FAIL
[line-height number(integer) / events]
expected: FAIL
[line-height number(decimal) / events]
expected: FAIL
[line-height length(pt) / events]
expected: FAIL
[line-height length(pc) / events]
expected: FAIL
[line-height length(px) / events]
expected: FAIL
[line-height length(em) / events]
expected: FAIL
[line-height length(ex) / events]
expected: FAIL
[line-height length(mm) / events]
expected: FAIL
[line-height length(cm) / events]
expected: FAIL
[line-height length(in) / events]
expected: FAIL
[line-height percentage(%) / events]
expected: FAIL
[letter-spacing length(pt) / events]
expected: FAIL
[letter-spacing length(pc) / events]
expected: FAIL
[letter-spacing length(px) / events]
expected: FAIL
[letter-spacing length(em) / events]
expected: FAIL
[letter-spacing length(ex) / events]
expected: FAIL
[letter-spacing length(mm) / events]
expected: FAIL
[letter-spacing length(cm) / events]
expected: FAIL
[letter-spacing length(in) / events]
expected: FAIL
[word-spacing length(pt) / events]
expected: FAIL
[word-spacing length(pc) / events]
expected: FAIL
[word-spacing length(px) / events]
expected: FAIL
[word-spacing length(em) / events]
expected: FAIL
[word-spacing length(ex) / events]
expected: FAIL
[word-spacing length(mm) / events]
expected: FAIL
[word-spacing length(cm) / events]
expected: FAIL
[word-spacing length(in) / events]
expected: FAIL
[word-spacing percentage(%) / events]
expected: FAIL
[text-indent length(pt) / events]
expected: FAIL
[text-indent length(pc) / events]
expected: FAIL
[text-indent length(px) / events]
expected: FAIL
[text-indent length(em) / events]
expected: FAIL
[text-indent length(ex) / events]
expected: FAIL
[text-indent length(mm) / events]
expected: FAIL
[text-indent length(cm) / events]
expected: FAIL
[text-indent length(in) / events]
expected: FAIL
[text-indent percentage(%) / events]
expected: FAIL
[text-shadow shadow(shadow) / events]
expected: FAIL
[max-height length(ex) / events]
expected: FAIL
[max-height length(mm) / events]
expected: FAIL
[max-height length(cm) / events]
expected: FAIL
[max-height length(in) / events]
expected: FAIL
[max-height percentage(%) / events]
expected: FAIL
[max-width length(pt) / events]
expected: FAIL
[max-width length(pc) / events]
expected: FAIL
[max-width length(px) / events]
expected: FAIL
[max-width length(em) / events]
expected: FAIL
[max-width length(ex) / events]
expected: FAIL
[max-width length(mm) / events]
expected: FAIL
[max-width length(cm) / events]
expected: FAIL
[max-width length(in) / events]
expected: FAIL
[max-width percentage(%) / events]
expected: FAIL
[top length(pt) / events]
expected: FAIL
[top length(pc) / events]
expected: FAIL
[top length(px) / events]
expected: FAIL
[top length(em) / events]
expected: FAIL
[top length(ex) / events]
expected: FAIL
[top length(mm) / events]
expected: FAIL
[top length(cm) / events]
expected: FAIL
[top length(in) / events]
expected: FAIL
[top percentage(%) / events]
expected: FAIL
[right length(pt) / events]
expected: FAIL
[right length(pc) / events]
expected: FAIL
[right length(px) / events]
expected: FAIL
[right length(em) / events]
expected: FAIL
[right length(ex) / events]
expected: FAIL
[right length(mm) / events]
expected: FAIL
[right length(cm) / events]
expected: FAIL
[right length(in) / events]
expected: FAIL
[right percentage(%) / events]
expected: FAIL
[bottom length(pt) / events]
expected: FAIL
[bottom length(pc) / events]
expected: FAIL
[bottom length(px) / events]
expected: FAIL
[bottom length(em) / events]
expected: FAIL
[bottom length(ex) / events]
expected: FAIL
[bottom length(mm) / events]
expected: FAIL
[bottom length(cm) / events]
expected: FAIL
[bottom length(in) / events]
expected: FAIL
[bottom percentage(%) / events]
expected: FAIL
[left length(pt) / events]
expected: FAIL
[left length(pc) / events]
expected: FAIL
[left length(px) / events]
expected: FAIL
[left length(em) / events]
expected: FAIL
[left length(ex) / events]
expected: FAIL
[left length(mm) / events]
expected: FAIL
[left length(cm) / events]
expected: FAIL
[left length(in) / events]
expected: FAIL
[left percentage(%) / events]
[padding-bottom length(em) / events]
expected: FAIL

View file

@ -52,162 +52,3 @@
[background-position length(px) / events]
expected: FAIL
[background-color color(rgba) / values]
expected: FAIL
[border-top-width length(pt) / values]
expected: FAIL
[border-top-width length(pc) / values]
expected: FAIL
[border-top-width length(px) / values]
expected: FAIL
[border-top-width length(em) / values]
expected: FAIL
[border-top-width length(ex) / values]
expected: FAIL
[border-top-width length(mm) / values]
expected: FAIL
[border-top-width length(cm) / values]
expected: FAIL
[border-top-width length(in) / values]
expected: FAIL
[border-right-width length(pt) / values]
expected: FAIL
[border-right-width length(pc) / values]
expected: FAIL
[border-right-width length(px) / values]
expected: FAIL
[border-right-width length(em) / values]
expected: FAIL
[border-right-width length(ex) / values]
expected: FAIL
[border-right-width length(mm) / values]
expected: FAIL
[border-right-width length(cm) / values]
expected: FAIL
[border-right-width length(in) / values]
expected: FAIL
[border-bottom-width length(pt) / values]
expected: FAIL
[border-bottom-width length(pc) / values]
expected: FAIL
[border-bottom-width length(px) / values]
expected: FAIL
[border-bottom-width length(em) / values]
expected: FAIL
[border-bottom-width length(ex) / values]
expected: FAIL
[border-bottom-width length(mm) / values]
expected: FAIL
[border-bottom-width length(cm) / values]
expected: FAIL
[border-bottom-width length(in) / values]
expected: FAIL
[border-left-width length(pt) / values]
expected: FAIL
[border-left-width length(pc) / values]
expected: FAIL
[border-left-width length(px) / values]
expected: FAIL
[border-left-width length(em) / values]
expected: FAIL
[border-left-width length(ex) / values]
expected: FAIL
[border-left-width length(mm) / values]
expected: FAIL
[border-left-width length(cm) / values]
expected: FAIL
[border-left-width length(in) / values]
expected: FAIL
[border-top-color color(rgba) / values]
expected: FAIL
[border-right-color color(rgba) / values]
expected: FAIL
[border-bottom-color color(rgba) / values]
expected: FAIL
[border-left-color color(rgba) / values]
expected: FAIL
[padding-bottom length(pt) / values]
expected: FAIL
[padding-bottom length(pc) / values]
expected: FAIL
[padding-bottom length(px) / values]
expected: FAIL
[padding-bottom length(em) / values]
expected: FAIL
[padding-left length(pt) / values]
expected: FAIL
[padding-left length(px) / values]
expected: FAIL
[padding-right length(pt) / values]
expected: FAIL
[padding-right length(px) / values]
expected: FAIL
[padding-top length(pt) / values]
expected: FAIL
[padding-top length(px) / values]
expected: FAIL
[margin-bottom length(pt) / values]
expected: FAIL
[margin-bottom length(px) / values]
expected: FAIL
[margin-left length(pt) / values]
expected: FAIL
[margin-left length(px) / values]
expected: FAIL
[margin-right length(pt) / values]
expected: FAIL
[margin-right length(px) / values]
expected: FAIL

View file

@ -4,90 +4,3 @@
[background-position length-em(em) / values]
expected: FAIL
[border-top-width length-em(em) / events]
expected: FAIL
[border-right-width length-em(em) / events]
expected: FAIL
[border-bottom-width length-em(em) / events]
expected: FAIL
[border-left-width length-em(em) / events]
expected: FAIL
[padding-bottom length-em(em) / events]
expected: FAIL
[padding-left length-em(em) / events]
expected: FAIL
[padding-right length-em(em) / events]
expected: FAIL
[padding-top length-em(em) / events]
expected: FAIL
[margin-bottom length-em(em) / events]
expected: FAIL
[margin-left length-em(em) / events]
expected: FAIL
[margin-right length-em(em) / events]
expected: FAIL
[margin-top length-em(em) / events]
expected: FAIL
[height length-em(em) / events]
expected: FAIL
[width length-em(em) / events]
expected: FAIL
[min-height length-em(em) / events]
expected: FAIL
[min-width length-em(em) / events]
expected: FAIL
[max-height length-em(em) / events]
expected: FAIL
[max-width length-em(em) / events]
expected: FAIL
[top length-em(em) / events]
expected: FAIL
[right length-em(em) / events]
expected: FAIL
[bottom length-em(em) / events]
expected: FAIL
[left length-em(em) / events]
expected: FAIL
[line-height length-em(em) / events]
expected: FAIL
[letter-spacing length-em(em) / events]
expected: FAIL
[word-spacing length-em(em) / events]
expected: FAIL
[text-indent length-em(em) / events]
expected: FAIL
[outline-offset length-em(em) / events]
expected: FAIL
[outline-width length-em(em) / events]
expected: FAIL
[vertical-align length-em(em) / events]
expected: FAIL

View file

@ -0,0 +1,3 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -0,0 +1,3 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -0,0 +1,3 @@
[elementFromPoint-dynamic-anon-box.html]
[Link should be clickable after hiding a scrollbox with an anonymous table inside]
expected: FAIL

View file

@ -0,0 +1,3 @@
[elementFromPoint-float-in-relative.html]
[elementFromPoint-float-in-relative]
expected: FAIL

View file

@ -0,0 +1,3 @@
[elementFromPoint-subpixel.html]
[Hit test top left corner of box]
expected: FAIL

View file

@ -17,6 +17,3 @@
[test some point of the element: bottom right corner]
expected: FAIL
[test the top of layer]
expected: FAIL

View file

@ -0,0 +1,3 @@
[elementsFromPoint-invalid-cases.html]
[The root element is the last element returned for otherwise empty queries within the viewport]
expected: FAIL

View file

@ -16,3 +16,21 @@
[Test parsing ' color ), ( color' with matchMedia]
expected: FAIL
[Test parsing '(min-resolution: 1x)' with matchMedia]
expected: FAIL
[Test parsing '(resolution: 2x)' with matchMedia]
expected: FAIL
[Test parsing '(max-resolution: 7x)' with matchMedia]
expected: FAIL
[Test parsing '(resolution: 2dppx)' with matchMedia]
expected: FAIL
[Test parsing '(resolution: 600dpi)' with matchMedia]
expected: FAIL
[Test parsing '(resolution: 77dpcm)' with matchMedia]
expected: FAIL

View file

@ -79,3 +79,6 @@
[Input: "Content-Length: 30". Expected: 30.]
expected: FAIL
[Input: "Content-Length: 42\\r\\nContent-Length: 42". Expected: 42.]
expected: FAIL

View file

@ -52,3 +52,6 @@
[combined text/javascript ]
expected: FAIL
[separate text/javascript x/x]
expected: FAIL

View file

@ -147,5 +147,8 @@
[list-style-image sec-fetch-site - HTTPS downgrade-upgrade]
expected: FAIL
[border-image sec-fetch-site - HTTPS downgrade (header not sent)]
[border-image sec-fetch-dest - Not sent to non-trustworthy cross-site destination]
expected: FAIL
[border-image sec-fetch-user - Not sent to non-trustworthy same-origin destination]
expected: FAIL

View file

@ -1,12 +1,13 @@
[failure-check-sequence.https.html]
expected: TIMEOUT
[CSP check precedes COEP check - CSP header first]
expected: FAIL
[COEP check precedes X-Frame-Options check]
expected: FAIL
expected: NOTRUN
[CSP check precedes COEP check - COEP header first]
expected: FAIL
expected: TIMEOUT
[CSP check precedes X-Frame-Options check]
expected: FAIL

View file

@ -7,6 +7,3 @@
[load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank#foo']
expected: FAIL
[load & pageshow events do not fire on contentWindow of <iframe> element created with src='about:blank']
expected: FAIL

View file

@ -10,3 +10,6 @@
[load event does not fire on window.open('about:blank?foo')]
expected: FAIL
[load event does not fire on window.open('about:blank')]
expected: FAIL

View file

@ -4,7 +4,16 @@
expected: NOTRUN
[Navigating an opened window via location.href to a javascript: URL must not fire beforeunload: string completion]
expected: TIMEOUT
expected: NOTRUN
[Navigating an opened window with an iframe via location.href to a javascript: URL must not fire beforeunload on the iframe: undefined completion]
expected: FAIL
expected: NOTRUN
[Navigating an opened window via location.href to a javascript: URL must not fire beforeunload: undefined completion]
expected: TIMEOUT
[Navigating an iframe via location.href to a javascript: URL must not fire beforeunload: string completion]
expected: NOTRUN
[Navigating an iframe via src="" to a javascript: URL after insertion must not fire beforeunload: string completion]
expected: NOTRUN

View file

@ -16,3 +16,6 @@
[D83D DE0D set in href="" targeting a frame and clicked]
expected: FAIL
[DE0D 0041 set in href="" targeting a frame and clicked]
expected: FAIL

View file

@ -0,0 +1,3 @@
[navigation-unload-same-origin-fragment.html]
[Tests that a fragment navigation in the unload handler will not block the initial navigation]
expected: FAIL

View file

@ -1,3 +0,0 @@
[a-click.html]
[aElement.click() before the load event must NOT replace]
expected: FAIL

View file

@ -1,4 +1,3 @@
[pageload-image-in-popup.html]
expected: TIMEOUT
[The document for a standalone media file should have one child in the body.]
expected: NOTRUN
expected: FAIL

View file

@ -1,4 +0,0 @@
[traverse-during-unload.html]
expected: TIMEOUT
[Traversing the history during unload]
expected: TIMEOUT

View file

@ -1,3 +0,0 @@
[creating_browsing_context_test_01.html]
[first argument: absolute url]
expected: FAIL

View file

@ -0,0 +1,3 @@
[imagesmoothing.html]
[Test that imageSmoothingEnabled = false (nearest-neighbor interpolation) works with fillRect and createPattern().]
expected: FAIL

View file

@ -0,0 +1,2 @@
[event_pause.html]
expected: ERROR

View file

@ -1,5 +1,5 @@
[iframe_sandbox_popups_escaping-1.html]
type: testharness
expected: TIMEOUT
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT

View file

@ -1,4 +1,3 @@
[iframe_sandbox_popups_escaping-2.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
expected: FAIL

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_nonescaping-1.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN
expected: FAIL

View file

@ -1,3 +1,4 @@
[iframe_sandbox_popups_nonescaping-3.html]
expected: CRASH
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL

View file

@ -175,3 +175,6 @@
[multipart/form-data: Basic test (formdata event)]
expected: FAIL
[multipart/form-data: single quote in value (formdata event)]
expected: FAIL

View file

@ -1,3 +0,0 @@
[historical.html]
[<input name=isindex> should not be supported]
expected: FAIL

View file

@ -1,3 +1,12 @@
[pattern_attribute.html]
[pattern attribute support on input element]
expected: FAIL
[basic <input pattern> support]
expected: FAIL
[<input pattern> is Unicode code point-aware]
expected: FAIL
[<input pattern> supports Unicode property escape syntax]
expected: FAIL

View file

@ -1,6 +1,5 @@
[htmlanchorelement_noopener.html]
type: testharness
expected: TIMEOUT
[Check that targeting of rel=noopener with a given name ignores an existing window with that name]
expected: NOTRUN
@ -14,4 +13,4 @@
expected: FAIL
[Check that rel=noopener with target=_self does a normal load]
expected: NOTRUN
expected: FAIL

View file

@ -1,3 +1,12 @@
[popover-anchor-idl-property.tentative.html]
[popover anchor IDL property returns the anchor element]
expected: FAIL
[popover anchorElement IDL property returns the anchor element]
expected: FAIL
[popover anchorElement is settable]
expected: FAIL
[anchorElement affects anchor positioning]
expected: FAIL

View file

@ -0,0 +1,3 @@
[template-shadowrootmode-img-src.tentative.sub.html]
[Speculative parsing, document.write(): template-shadowrootmode-img-src]
expected: FAIL

View file

@ -0,0 +1,3 @@
[template-shadowrootmode-link-stylesheet.tentative.sub.html]
[Speculative parsing, document.write(): template-shadowrootmode-link-stylesheet]
expected: FAIL

View file

@ -0,0 +1,3 @@
[template-shadowrootmode-script-src.tentative.sub.html]
[Speculative parsing, document.write(): template-shadowrootmode-script-src]
expected: FAIL

View file

@ -0,0 +1,3 @@
[nested-template-shadowrootmode-1.tentative.html]
[Speculative parsing, page load: nested-template-shadowrootmode-1]
expected: FAIL

View file

@ -0,0 +1,3 @@
[nested-template-shadowrootmode-2.tentative.html]
[Speculative parsing, page load: nested-template-shadowrootmode-2]
expected: FAIL

View file

@ -0,0 +1,3 @@
[template-img-src.tentative.html]
[Speculative parsing, page load: template-img-src]
expected: FAIL

View file

@ -0,0 +1,3 @@
[template-link-stylesheet.tentative.html]
[Speculative parsing, page load: template-link-stylesheet]
expected: FAIL

View file

@ -0,0 +1,3 @@
[template-shadowrootmode-img-src.tentative.html]
[Speculative parsing, page load: template-shadowrootmode-img-src]
expected: FAIL

View file

@ -0,0 +1,3 @@
[template-shadowrootmode-link-stylesheet.tentative.html]
[Speculative parsing, page load: template-shadowrootmode-link-stylesheet]
expected: FAIL

View file

@ -0,0 +1,3 @@
[template-shadowrootmode-script-src.tentative.html]
[Speculative parsing, page load: template-shadowrootmode-script-src]
expected: FAIL

View file

@ -1,3 +0,0 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -1,3 +0,0 @@
[module-tla-delayed.html]
[document.write in an imported module]
expected: FAIL

View file

@ -5,4 +5,4 @@
expected: TIMEOUT
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
expected: TIMEOUT
expected: FAIL

View file

@ -1,9 +1,10 @@
[promise-job-entry-different-function-realm.html]
expected: TIMEOUT
[Fulfillment handler on fulfilled promise]
expected: FAIL
[Rejection handler on pending-then-rejected promise]
expected: FAIL
expected: TIMEOUT
[Thenable resolution]
expected: FAIL
@ -12,4 +13,4 @@
expected: FAIL
[Fulfillment handler on pending-then-fulfilled promise]
expected: FAIL
expected: TIMEOUT

View file

@ -1,6 +1,7 @@
[promise-rejection-events.html]
expected: TIMEOUT
[delayed handling: delaying handling rejected promise created from createImageBitmap will cause both events to fire]
expected: FAIL
expected: TIMEOUT
[unhandledrejection: from createImageBitmap which is UA triggered]
expected: FAIL

View file

@ -7,19 +7,19 @@
expected: FAIL
[content-type 2 : text/html,text/plain]
expected: FAIL
expected: TIMEOUT
[content-type 3 : text/plain;charset=gbk,text/html]
expected: FAIL
expected: NOTRUN
[content-type 4 : text/plain;charset=gbk,text/html;charset=windows-1254]
expected: FAIL
expected: NOTRUN
[content-type 5 : text/plain;charset=gbk,text/plain]
expected: FAIL
expected: NOTRUN
[content-type 6 : text/plain;charset=gbk,text/plain;charset=windows-1252]
expected: TIMEOUT
expected: NOTRUN
[content-type 7 : text/html;charset=gbk,text/html;x=",text/plain]
expected: NOTRUN

View file

@ -265,10 +265,10 @@
expected: FAIL
[This test validates the response status of resources. 88]
expected: TIMEOUT
expected: FAIL
[This test validates the response status of resources. 89]
expected: NOTRUN
expected: TIMEOUT
[This test validates the response status of resources. 90]
expected: NOTRUN

View file

@ -0,0 +1,4 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -0,0 +1,2 @@
[Worker-constructor.html]
expected: ERROR

View file

@ -860,12 +860,14 @@ test(t => {
const frames = getKeyframes(div);
// Implicit initial and final keyframes should be replace as per sections
// 7 and 8 of https://drafts.csswg.org/css-animations-2/#keyframes
const expected = [
{ offset: 0, computedOffset: 0, easing: "linear", composite: "auto" },
{ offset: 0, computedOffset: 0, easing: "ease", composite: "auto", left: "auto" },
{ offset: 0, computedOffset: 0, easing: "ease", composite: "replace", left: "auto" },
{ offset: 0.5, computedOffset: 0.5, easing: "ease", composite: "auto", left: "10px" },
{ offset: 1, computedOffset: 1, easing: "linear", composite: "auto" },
{ offset: 1, computedOffset: 1, easing: "ease", composite: "auto", left: "auto" }
{ offset: 1, computedOffset: 1, easing: "ease", composite: "replace", left: "auto" }
];
assert_frame_lists_equal(frames, expected);
}, 'KeyframeEffect.getKeyframes() returns expected values for ' +

View file

@ -61,7 +61,7 @@ test(() => {
const second = document.getElementById('second');
assert_equals(getComputedStyle(second).columnWidth, '30px');
second.style.fontSize = '90px';
assert_equals(getComputedStyle(second).columnWidth, '0px');
assert_equals(getComputedStyle(second).columnWidth, '20px');
}, 'column-width clamps to 0px');
test(() => {

View file

@ -92,17 +92,6 @@
test_computed_value(`color`, `color-mix(in hsl, hsl(120deg 40% 40% / none), hsl(0deg 40% 40% / 0.5))`, canonicalize(`hsl(60deg 40% 40% / 0.5)`));
test_computed_value(`color`, `color-mix(in hsl, hsl(120deg 40% 40% / none), hsl(0deg 40% 40% / none))`, canonicalize(`hsl(60deg 40% 40% / none)`));
test_computed_value(`color`, `color-mix(in hsl, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 249, 66)`); // Naive clip based mapping would give rgb(0, 255, 0).
test_computed_value(`color`, `color-mix(in hsl, lab(100 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 150, 255).
test_computed_value(`color`, `color-mix(in hsl, lab(0 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)`, `rgb(42, 0, 34)`); // Naive clip based mapping would give rgb(90, 0, 76). NOTE: 0% lightness in Lab/LCH does not automatically correspond with sRGB black,
test_computed_value(`color`, `color-mix(in hsl, lch(100 116 334) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 150, 255).
test_computed_value(`color`, `color-mix(in hsl, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)`, `rgb(42, 0, 34)`); // Naive clip based mapping would give rgb(90, 0, 76). NOTE: 0% lightness in Lab/LCH does not automatically correspond with sRGB black,
test_computed_value(`color`, `color-mix(in hsl, oklab(100 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 92, 255).
test_computed_value(`color`, `color-mix(in hsl, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 0, 0)`); // Naive clip based mapping would give rgb(19, 0, 24).
test_computed_value(`color`, `color-mix(in hsl, oklch(100 0.399 336.3) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 91, 255).
test_computed_value(`color`, `color-mix(in hsl, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 0, 0)`); // Naive clip based mapping would give rgb(20, 0, 24).
test_computed_value(`color`, `color-mix(in hwb, hwb(120deg 10% 20%), hwb(30deg 30% 40%))`, `rgb(147, 179, 52)`);
test_computed_value(`color`, `color-mix(in hwb, hwb(120deg 10% 20%) 25%, hwb(30deg 30% 40%))`, `rgb(166, 153, 64)`);
test_computed_value(`color`, `color-mix(in hwb, 25% hwb(120deg 10% 20%), hwb(30deg 30% 40%))`, `rgb(166, 153, 64)`);
@ -168,16 +157,6 @@
test_computed_value(`color`, `color-mix(in hwb, hwb(120deg 10% 20% / none), hwb(30deg 30% 40% / 0.5))`, canonicalize(`hwb(75deg 20% 30% / 0.5)`));
test_computed_value(`color`, `color-mix(in hwb, hwb(120deg 10% 20% / none), hwb(30deg 30% 40% / none))`, canonicalize(`hwb(75deg 20% 30% / none)`));
test_computed_value(`color`, `color-mix(in hwb, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 249, 66)`); // Naive clip based mapping would give rgb(0, 255, 0).
test_computed_value(`color`, `color-mix(in hwb, lab(100 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 150, 255).
test_computed_value(`color`, `color-mix(in hwb, lab(0 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)`, `rgb(42, 0, 34)`); // Naive clip based mapping would give rgb(90, 0, 76). NOTE: 0% lightness in Lab/LCH does not automatically correspond with sRGB black,
test_computed_value(`color`, `color-mix(in hwb, lch(100 116 334) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 150, 255).
test_computed_value(`color`, `color-mix(in hwb, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)`, `rgb(42, 0, 34)`); // Naive clip based mapping would give rgb(90, 0, 76). NOTE: 0% lightness in Lab/LCH does not automatically correspond with sRGB black,
test_computed_value(`color`, `color-mix(in hwb, oklab(100 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 92, 255).
test_computed_value(`color`, `color-mix(in hwb, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 0, 0)`); // Naive clip based mapping would give rgb(19, 0, 24).
test_computed_value(`color`, `color-mix(in hwb, oklch(100 0.399 336.3) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 91, 255).
test_computed_value(`color`, `color-mix(in hwb, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 0, 0)`); // Naive clip based mapping would give rgb(20, 0, 24).
for (const colorSpace of [ "lch", "oklch" ]) {
test_computed_value(`color`, `color-mix(in ${colorSpace}, ${colorSpace}(10 20 30deg), ${colorSpace}(50 60 70deg))`, `${colorSpace}(30 40 50)`);
test_computed_value(`color`, `color-mix(in ${colorSpace}, ${colorSpace}(10 20 30deg) 25%, ${colorSpace}(50 60 70deg))`, `${colorSpace}(40 50 60)`);

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Color Level 5: Computation of colors using color-mix() function syntax that need to be gamut-mapped into the sRGB color space</title>
<link rel="author" title="Sam Weinig" href="mailto:weinig@apple.com">
<link rel="help" href="https://drafts.csswg.org/css-color-5/#color-mix">
<link rel="help" href="https://drafts.csswg.org/css-color-5/#resolving-mix">
<link rel="help" href="https://drafts.csswg.org/css-color-5/#serial-color-mix">
<meta name="assert" content="gamut mapping works for computed value of color-mix()">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value(`color`, `color-mix(in hsl, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 249, 66)`); // Naive clip based mapping would give rgb(0, 255, 0).
test_computed_value(`color`, `color-mix(in hsl, lab(100 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 150, 255).
test_computed_value(`color`, `color-mix(in hsl, lab(0 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)`, `rgb(42, 0, 34)`); // Naive clip based mapping would give rgb(90, 0, 76). NOTE: 0% lightness in Lab/LCH does not automatically correspond with sRGB black,
test_computed_value(`color`, `color-mix(in hsl, lch(100 116 334) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 150, 255).
test_computed_value(`color`, `color-mix(in hsl, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)`, `rgb(42, 0, 34)`); // Naive clip based mapping would give rgb(90, 0, 76). NOTE: 0% lightness in Lab/LCH does not automatically correspond with sRGB black,
test_computed_value(`color`, `color-mix(in hsl, oklab(100 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 92, 255).
test_computed_value(`color`, `color-mix(in hsl, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 0, 0)`); // Naive clip based mapping would give rgb(19, 0, 24).
test_computed_value(`color`, `color-mix(in hsl, oklch(100 0.399 336.3) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 91, 255).
test_computed_value(`color`, `color-mix(in hsl, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 0, 0)`); // Naive clip based mapping would give rgb(20, 0, 24).
test_computed_value(`color`, `color-mix(in hwb, color(display-p3 0 1 0) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 249, 66)`); // Naive clip based mapping would give rgb(0, 255, 0).
test_computed_value(`color`, `color-mix(in hwb, lab(100 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 150, 255).
test_computed_value(`color`, `color-mix(in hwb, lab(0 104.3 -50.9) 100%, rgb(0, 0, 0) 0%)`, `rgb(42, 0, 34)`); // Naive clip based mapping would give rgb(90, 0, 76). NOTE: 0% lightness in Lab/LCH does not automatically correspond with sRGB black,
test_computed_value(`color`, `color-mix(in hwb, lch(100 116 334) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 150, 255).
test_computed_value(`color`, `color-mix(in hwb, lch(0 116 334) 100%, rgb(0, 0, 0) 0%)`, `rgb(42, 0, 34)`); // Naive clip based mapping would give rgb(90, 0, 76). NOTE: 0% lightness in Lab/LCH does not automatically correspond with sRGB black,
test_computed_value(`color`, `color-mix(in hwb, oklab(100 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 92, 255).
test_computed_value(`color`, `color-mix(in hwb, oklab(0 0.365 -0.16) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 0, 0)`); // Naive clip based mapping would give rgb(19, 0, 24).
test_computed_value(`color`, `color-mix(in hwb, oklch(100 0.399 336.3) 100%, rgb(0, 0, 0) 0%)`, `rgb(255, 255, 255)`); // Naive clip based mapping would give rgb(255, 91, 255).
test_computed_value(`color`, `color-mix(in hwb, oklch(0 0.399 336.3) 100%, rgb(0, 0, 0) 0%)`, `rgb(0, 0, 0)`); // Naive clip based mapping would give rgb(20, 0, 24).
</script>
</body>
</html>

View file

@ -13,7 +13,10 @@
<div id="target"></div>
<script>
test_computed_value('font-language-override', 'normal');
test_computed_value('font-language-override', '"ksw"');
test_computed_value('font-language-override', '"KSW"');
test_computed_value('font-language-override', '"ENG "', '"ENG"');
test_computed_value('font-language-override', '"en "', '"en"');
test_computed_value('font-language-override', '" en "', '" en"');
</script>
</body>
</html>

View file

@ -15,8 +15,10 @@
test_invalid_value('font-language-override', 'auto');
test_invalid_value('font-language-override', 'normal "ksw"');
test_invalid_value('font-language-override', '"tr"');
test_invalid_value('font-language-override', '"1 %"');
test_invalid_value('font-language-override', '"turkish"'); // overlong string
test_invalid_value('font-language-override', '"xøx"'); // non-ASCII character
test_invalid_value('font-language-override', '""'); // empty string
test_invalid_value('font-language-override', '"ENG "'); // too much padding
</script>
</body>
</html>

View file

@ -12,7 +12,14 @@
<body>
<script>
test_valid_value('font-language-override', 'normal');
test_valid_value('font-language-override', '"ksw"');
test_valid_value('font-language-override', '"KSW"');
test_valid_value('font-language-override', '"APPH"');
test_valid_value('font-language-override', '"ENG "', '"ENG"'); // Shortest serialization strips trailing spaces.
test_valid_value('font-language-override', '"ksw"'); // Will not match the registered (uppercase) tag, but valid grammar.
test_valid_value('font-language-override', '"tr"');
test_valid_value('font-language-override', '"en "', '"en"');
test_valid_value('font-language-override', '" en "', '" en"'); // Leading space is not trimmed
test_valid_value('font-language-override', '"1 %"');
</script>
</body>
</html>

View file

@ -0,0 +1,181 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>Reference: subgrid line names do not apply to non-subgrids</title>
<link rel="author" title="Kurt Catti-Schmidt" href="mailto:kschmi@microsoft.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-2">
<style>
html,body {
color:black; background-color:white; font:12px/1 monospace;
}
.grid {
display: grid;
grid: 0.2em 1.4em / repeat(10,30px);
border: 1px solid;
padding: 0 2px;
}
div > div {
xposition: relative;
display: grid;
grid: auto / subgrid;
border: 1px solid black;
background: grey;
}
n {
grid-row: 1;
counter-increment: n;
}
n::before { content: counter(n, decimal); }
x {
background: silver;
}
.hr { writing-mode: horizontal-tb; direction:rtl; }
</style>
</head>
<body>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / span 2;">
<div style="grid-column: 1;">
<x style="grid-column: 1;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / span 2;">
<div style="grid-column: 1;">
<x style="grid-column: 1;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 7;">
<div style="grid-column: 3 / 5;">
<x style="grid-column: 2;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 4;">
<div style="grid-column: 1 / 2;">
<x style="grid-column: 1 / 2;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 4;">
<div style="grid-column: 1 / 2;">
<x style="grid-column: 1 / 2;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 7;">
<div style="grid-column: 3 / 5;">
<x style="grid-column: 1 / 2;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 7;">
<div style="grid-column: 3 / 5;">
<x style="grid-column: 2 / 3;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 7;">
<div style="grid-column: 3 / 5;">
<x style="grid-column: 1 / 2;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 7;">
<div style="grid-column: 3 / 5;">
<x style="grid-column: 2 / 3;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 7;">
<div style="grid-column: 3 / 5;">
<x style="grid-column: 1 / 2;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 7;">
<div style="grid-column: 3 / 5;">
<x style="grid-column: 2 / 3;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 7;">
<div style="grid-column: 3 / 5;">
<x style="grid-column: 1 / 2;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 7;">
<div style="grid-column: 3 / 5;">
<x style="grid-column: 2 / 3;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 5;">
<div style="grid-column: 1 / 3;">
<x style="grid-column: 1 / 2;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div style="grid-column: 2 / 5;">
<div style="grid-column: 1 / 3;">
<x style="grid-column: 2 / 3;">x</x>
</div>
</div>
</div>
</body>
</html>

View file

@ -0,0 +1,185 @@
<!DOCTYPE HTML>
<!--
Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/
-->
<html><head>
<meta charset="utf-8">
<title>CSS Grid Test: subgrid line name ordering matches writing direction</title>
<link rel="author" title="Kurt Catti-Schmidt" href="mailto:kschmi@microsoft.com">
<link rel="help" href="https://drafts.csswg.org/css-grid-2">
<link rel="match" href="line-names-012-ref.html">
<style>
html,body {
color:black; background-color:white; font:12px/1 monospace;
}
.grid {
display: grid;
grid: 0.2em 1.4em / repeat(10,30px);
border: 1px solid;
padding: 0 2px;
}
div > div {
position: relative;
display: grid;
grid-column: 2 / span 2;
grid: auto / subgrid;
border: 1px solid black;
background: grey;
}
n {
grid-row: 1;
counter-increment: n;
}
n::before { content: counter(n, decimal); }
x {
background: silver;
}
.rtl { writing-mode: horizontal-tb; direction:rtl; }
.ltr { writing-mode: horizontal-tb; direction:ltr; }
</style>
</head>
<body>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [a][][];">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [][][a];">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [][][a]; grid-column-end:span 5;">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a -1;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [a][a] 30px;">
<div class="ltr" style="grid-template-columns: subgrid [][][a];">
<x style="grid-column: a;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [a][a] 30px;">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a -1;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [][][a]; grid-column-end:span 5;">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [][][a]; grid-column-end:span 5;">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a -1;">x</x>
</div>
</div>
</div>
<div class="grid" style="grid-template-columns: repeat(9,30px) [a] 30px;">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [][][a]; grid-column-end:span 5;">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a;">x</x>
</div>
</div>
</div>
<div class="grid" style="grid-template-columns: repeat(9,30px) [a] 30px;">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [][][a]; grid-column-end:span 5;">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a -1;">x</x>
</div>
</div>
</div>
<div class="grid" style="grid-template-columns: repeat(9,30px) [a] 30px;">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [][][a]; grid-column:2/span 5;">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a;">x</x>
</div>
</div>
</div>
<div class="grid" style="grid-template-columns: repeat(9,30px) [a] 30px">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [][][a]; grid-column:2/span 5;">
<div class="ltr" style="grid-template-columns: subgrid [a][][];">
<x style="grid-column: a -1;">x</x>
</div>
</div>
</div>
<div class="grid" style="grid-template-columns: repeat(4,30px) [a] 30px repeat(5,30px);">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [a][a]; grid-column:2/span 5;">
<div class="ltr" style="grid-template-columns: subgrid [a][a];">
<x style="grid-column: a;">x</x>
</div>
</div>
</div>
<div class="grid" style="grid-template-columns: repeat(4,30px) [a] 30px repeat(5,30px);">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [a][a]; grid-column:2/span 5;">
<div class="ltr" style="grid-template-columns: subgrid [a][a];">
<x style="grid-column: a 2;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [a] [a] [] [a]; grid-column-end:span 3;">
<div class="ltr" style="grid-template-columns: subgrid [a] [a] [] [a]; grid-column-end:span 3;">
<x style="grid-column: a;">x</x>
</div>
</div>
</div>
<div class="grid">
<n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n><n></n>
<div class="rtl" style="grid-template-columns: subgrid [a] [a] [] [a]; grid-column-end:span 3;">
<div class="ltr" style="grid-template-columns: subgrid [a] [a] [] [a]; grid-column-end:span 3;">
<x style="grid-column: a 2;">x</x>
</div>
</div>
</div>
</body>
</html>

View file

@ -1,6 +1,9 @@
<!DOCTYPE html>
<title>Image set computed value</title>
<link rel="help" href="https://drafts.csswg.org/css-images-4/#serialization">
<link rel="help" href="https://www.w3.org/TR/cssom-1/#serializing-css-values">
<link rel="help" href="https://www.w3.org/TR/css-values-4/#canonical-unit">
<link rel="help" href="https://www.w3.org/TR/css-values-4/#resolution">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
@ -13,6 +16,8 @@ function test_computed_value_variants(property, specified, computed) {
test_computed_value(property, "-webkit-" + specified, computed);
}
// The resolution unit is expected to be converted to the canonical unit 'dppx'
// for computed style.
test_computed_value_variants('background-image', "image-set(url(http://{{host}}/example.png) 1x)", 'image-set(url("http://{{host}}/example.png") 1dppx)');
test_computed_value_variants('background-image', "image-set(url(http://{{host}}/example.png) 1x, 'http://{{host}}/example.png' 2x)", 'image-set(url("http://{{host}}/example.png") 1dppx, url("http://{{host}}/example.png") 2dppx)');
test_computed_value_variants('background-image', 'image-set(url("http://{{host}}/example.png") 1dppx)');

View file

@ -0,0 +1,15 @@
<!DOCTYPE html>
<title>Image set dpi rendering</title>
<link rel="author" title="Noam Rosenthal" href="mailto:noam@webkit.org">
<link rel="author" title="Traian Captan" href="mailto:tcaptan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-images-4/#image-set-notation">
<link rel="match" href="reference/image-set-rendering-ref.html">
<meta name="assert" content="image-set dpi rendering">
<style>
#test {
background-image: image-set(url("/images/green.png") 37dpcm);
width: 100px;
height: 100px;
}
</style>
<div id="test"></div>

View file

@ -26,7 +26,7 @@ function test_invalid_value_variants(property, value) {
test_invalid_value(property, "-webkit-" + value);
}
function test_default_resolution() {
function test_default_resolution_parsing() {
// Based on the spec, the resolution is optional and should default
// to 1x if not specified.
// This set of tests verify this expectation.
@ -67,32 +67,61 @@ function test_default_resolution() {
);
}
test_valid_value_variants('background-image', "image-set(url(example.png) 1x)", 'image-set(url("example.png") 1x)');
test_valid_value_variants('background-image', 'image-set(url("example.png") 1x)');
test_valid_value_variants('background-image', "image-set('example.jpg' 1x)", 'image-set(url("example.jpg") 1x)');
test_valid_value_variants('background-image', "image-set(url(example.png) 1x, 'example.png' 2x)", 'image-set(url("example.png") 1x, url("example.png") 2x)');
test_valid_value_variants('background-image', 'image-set(url("example.png") 1dppx)');
test_valid_value_variants('background-image', 'image-set(url("example.png") 1dpi)');
test_valid_value_variants('background-image', 'image-set(url("example.png") 1dpcm)');
test_valid_value_variants('background-image', "image-set(url(example.png) 1dpcm, 'example.png' 2x)", 'image-set(url("example.png") 1dpcm, url("example.png") 2x)');
test_valid_value_variants('background-image', "image-set('example.jpeg' 222dpi, url(example.png) 3.5x)", 'image-set(url("example.jpeg") 222dpi, url("example.png") 3.5x)');
test_valid_value_variants('background-image', "image-set(linear-gradient(black, white) 1x)");
test_valid_value_variants('background-image', 'image-set(url("example.png") 1x type("image/png"))');
test_valid_value_variants('background-image', "image-set(url(example.png) type('image/png'))", 'image-set(url("example.png") 1x type("image/png"))');
test_valid_value_variants('background-image', "image-set(url(example.png) type('image/png') 1x)", 'image-set(url("example.png") 1x type("image/png"))');
test_valid_value_variants('content', "image-set(linear-gradient(black, white) 1x, 'example.png' 4x)", 'image-set(linear-gradient(black, white) 1x, url("example.png") 4x)');
test_valid_value_variants('content', 'image-set(url("example.png") 192dpi, linear-gradient(black, white) 1x)');
function test_resolution_units_parsing() {
test_valid_value_variants(
'background-image',
'image-set(url("example.png") 1x)'
);
test_valid_value_variants(
'background-image',
'image-set(url("example.png") 1dppx)'
);
test_valid_value_variants(
'background-image',
'image-set(url("example.png") 1dpi)'
);
test_valid_value_variants(
'background-image',
'image-set(url("example.png") 1dpcm)'
);
test_valid_value_variants(
'content',
'image-set(url("example.png") 1dpi)'
);
test_invalid_value_variants('background-image', "image-set(none, url(example.png) 1x)");
test_invalid_value_variants('background-image', "image-set()");
test_invalid_value_variants('background-image', "image-set(url(example.png) 0x)");
test_invalid_value_variants('background-image', "image-set(url(example.png) -20x)");
test_invalid_value_variants('background-image', "image-set('example.jpeg' 92pid url(example.png) 1x)");
test_invalid_value_variants('background-image', "image-set(url(example.png) type(image/png))");
test_invalid_value_variants('background-image', "image-set(url(example.png) type('image/png') type('image/png'))");
test_invalid_value_variants('background-image', "image-set(url(example.png) 1xtype('image/png'))");
test_invalid_value_variants('background-image', "image-set(type('image/png') url(example.png) 1x)");
test_invalid_value_variants('cursor', "image-set(linear-gradient(black, white) 1x)");
test_invalid_value_variants(
'background-image',
'image-set(url("example.png") 1invalidResUnit)'
);
}
test_default_resolution();
function test_image_set_parsing() {
test_valid_value_variants('background-image', "image-set(url(example.png) 1x)", 'image-set(url("example.png") 1x)');
test_valid_value_variants('background-image', "image-set('example.jpg' 1x)", 'image-set(url("example.jpg") 1x)');
test_valid_value_variants('background-image', "image-set(url(example.png) 1x, 'example.png' 2x)", 'image-set(url("example.png") 1x, url("example.png") 2x)');
test_valid_value_variants('background-image', "image-set(url(example.png) 1dpcm, 'example.png' 2x)", 'image-set(url("example.png") 1dpcm, url("example.png") 2x)');
test_valid_value_variants('background-image', "image-set('example.jpeg' 222dpi, url(example.png) 3.5x)", 'image-set(url("example.jpeg") 222dpi, url("example.png") 3.5x)');
test_valid_value_variants('background-image', "image-set(linear-gradient(black, white) 1x)");
test_valid_value_variants('background-image', 'image-set(url("example.png") 1x type("image/png"))');
test_valid_value_variants('background-image', "image-set(url(example.png) type('image/png'))", 'image-set(url("example.png") 1x type("image/png"))');
test_valid_value_variants('background-image', "image-set(url(example.png) type('image/png') 1x)", 'image-set(url("example.png") 1x type("image/png"))');
test_valid_value_variants('content', "image-set(linear-gradient(black, white) 1x, 'example.png' 4x)", 'image-set(linear-gradient(black, white) 1x, url("example.png") 4x)');
test_valid_value_variants('content', 'image-set(url("example.png") 192dpi, linear-gradient(black, white) 1x)');
test_invalid_value_variants('background-image', "image-set(none, url(example.png) 1x)");
test_invalid_value_variants('background-image', "image-set()");
test_invalid_value_variants('background-image', "image-set(url(example.png) 0x)");
test_invalid_value_variants('background-image', "image-set(url(example.png) -20x)");
test_invalid_value_variants('background-image', "image-set('example.jpeg' 92pid url(example.png) 1x)");
test_invalid_value_variants('background-image', "image-set(url(example.png) type(image/png))");
test_invalid_value_variants('background-image', "image-set(url(example.png) type('image/png') type('image/png'))");
test_invalid_value_variants('background-image', "image-set(url(example.png) 1xtype('image/png'))");
test_invalid_value_variants('background-image', "image-set(type('image/png') url(example.png) 1x)");
test_invalid_value_variants('cursor', "image-set(linear-gradient(black, white) 1x)");
test_default_resolution_parsing();
test_resolution_units_parsing();
}
test_image_set_parsing();
</script>

View file

@ -26,4 +26,5 @@
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
<div class="test"></div>
</body>

View file

@ -80,6 +80,14 @@
background-color: green !important;
}
/* & at top level counts as :scope, i.e. the root element here */
& .test-12 {
background-color: green;
}
& > .test-12 {
background-color: red !important;
}
body * + * {
margin-top: 8px;
}
@ -100,4 +108,5 @@
<div class="test test-9 t9-- t9-"><div></div></div>
<div class="test test-10"><div></div></div>
<div class="test test-11"><div></div></div>
<div class="test test-12"></div>
</body>

View file

@ -0,0 +1,30 @@
<!doctype html>
<title>Top-level & is treated like :scope</title>
<link rel="author" title="Steinar H. Gunderson" href="mailto:sesse@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-nesting-1/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<div id="p">
<div class="match" id="level1">
<div class="match" id="level2"></div>
</div>
</div>
<script>
test(() => {
let matched = [];
for (const elem of p.querySelectorAll('& .match')) {
matched.push(elem.getAttribute('id'));
}
assert_array_equals(matched, ['level1', 'level2']);
}, '& as direct ancestor');
test(() => {
let matched = [];
for (const elem of p.querySelectorAll('& > .match')) {
matched.push(elem.getAttribute('id'));
}
assert_array_equals(matched, ['level1']);
}, '& matches scoped element only, not everything');
</script>

View file

@ -338,4 +338,114 @@ test_with_at_property({
});
}, 'Registered properties referencing animated properties update correctly.');
test_with_at_property({
syntax: '"<length>"',
inherits: false,
initialValue: '0px'
}, (name) => {
with_style_node(`
@keyframes test {
from { ${name}: inherit; }
to { ${name}: 300px; }
}
#outer {
${name}: 100px;
}
#div {
animation: test 100s -50s linear paused;
}
`, () => {
assert_equals(getComputedStyle(div).getPropertyValue(name), '200px');
outer.style.setProperty(name, '200px');
assert_equals(getComputedStyle(div).getPropertyValue(name), '250px');
outer.style.setProperty(name, '0px');
assert_equals(getComputedStyle(div).getPropertyValue(name), '150px');
outer.style.removeProperty(name);
});
}, 'CSS animation setting "inherit" for a custom property on a keyframe is responsive to changing that custom property on the parent.');
test_with_at_property({
syntax: '"<length>"',
inherits: false,
initialValue: '0px'
}, (name) => {
with_style_node(`
#outer {
${name}: 100px;
}
`, () => {
const animation = div.animate({ [name]: ["inherit", "300px"]}, 1000);
animation.currentTime = 500;
animation.pause();
assert_equals(getComputedStyle(div).getPropertyValue(name), '200px');
outer.style.setProperty(name, '200px');
assert_equals(getComputedStyle(div).getPropertyValue(name), '250px');
outer.style.setProperty(name, '0px');
assert_equals(getComputedStyle(div).getPropertyValue(name), '150px');
outer.style.removeProperty(name);
});
}, 'JS-originated animation setting "inherit" for a custom property on a keyframe is responsive to changing that custom property on the parent.');
test_with_at_property({
syntax: '"<color>"',
inherits: false,
initialValue: 'black'
}, (name) => {
with_style_node(`
@keyframes test {
from { ${name}: currentcolor; }
to { ${name}: rgb(200, 200, 200); }
}
#outer {
color: rgb(100, 100, 100);
}
#div {
animation: test 100s -50s linear paused;
}
`, (style) => {
assert_equals(getComputedStyle(div).getPropertyValue(name), 'rgb(150, 150, 150)');
outer.style.color = 'rgb(50, 50, 50)';
assert_equals(getComputedStyle(div).getPropertyValue(name), 'rgb(125, 125, 125)');
outer.style.color = 'rgb(150, 150, 150)';
assert_equals(getComputedStyle(div).getPropertyValue(name), 'rgb(175, 175, 175)');
outer.style.removeProperty("color");
});
}, 'CSS animation setting "currentColor" for a custom property on a keyframe is responsive to changing "color" on the parent.');
test_with_at_property({
syntax: '"<color>"',
inherits: false,
initialValue: 'black'
}, (name) => {
with_style_node(`
#outer {
color: rgb(100, 100, 100);
}
`, () => {
const animation = div.animate({ [name]: ["currentcolor", "rgb(200, 200, 200)"]}, 1000);
animation.currentTime = 500;
animation.pause();
assert_equals(getComputedStyle(div).getPropertyValue(name), 'rgb(150, 150, 150)');
outer.style.color = 'rgb(50, 50, 50)';
assert_equals(getComputedStyle(div).getPropertyValue(name), 'rgb(125, 125, 125)');
outer.style.color = 'rgb(150, 150, 150)';
assert_equals(getComputedStyle(div).getPropertyValue(name), 'rgb(175, 175, 175)');
outer.style.removeProperty("color");
});
}, 'JS-originated animation setting "currentColor" for a custom property on a keyframe is responsive to changing "color" on the parent.');
</script>

View file

@ -58,6 +58,13 @@ test(function(){
assert_equals(getComputedStyle(inner).getPropertyValue('--initial-length-2'), '0px');
}, "Explicitly inheriting from a parent with no value results in initial value.");
test(function(){
CSS.registerProperty({name: '--initial-length-3', syntax: '<length>', initialValue: '0px', inherits: false});
outer.style = '--initial-length-3: 100px';
inner.style = '--initial-length-3: inherit';
assert_equals(getComputedStyle(inner).getPropertyValue('--initial-length-3'), '100px');
}, "Explicitly inheriting from a parent with a value results in that value.");
test(function(){
CSS.registerProperty({name: '--inherited-length-4', syntax: '<length>', initialValue: '0px', inherits: true});
outer.style = '--inherited-length-4: 42px';

View file

@ -5,11 +5,25 @@
<script>
function test_parsing(query, expected) {
if(expected === undefined)
expected = query;
test(() => {
const match = window.matchMedia(query);
assert_equals(match.media, expected)
}, "Test parsing '" + query + "' with matchMedia");
}
function test_resolution_parsing() {
test_parsing("(min-resolution: 1x)");
test_parsing("(resolution: 2x)");
test_parsing("(max-resolution: 7x)");
test_parsing("(resolution: 2dppx)");
test_parsing("(resolution: 600dpi)");
test_parsing("(resolution: 77dpcm)");
}
test_parsing("", "");
test_parsing(" ", "");
test_parsing("all", "all");
@ -31,4 +45,6 @@ test_parsing(" , ", "not all, not all");
test_parsing(",,", "not all, not all, not all");
test_parsing(" , , ", "not all, not all, not all");
test_parsing(" foo,", "foo, not all");
test_resolution_parsing();
</script>

View file

@ -49,6 +49,13 @@ async function verifyScrollStopped(test, target_div) {
});
}
async function resetTargetScrollState(test, target_div) {
if (target_div.scrollTop != 0 || target_div.scrollLeft != 0) {
target_div.scrollTop = 0;
target_div.scrollLeft = 0;
return waitForScrollendEvent(test, target_div);
}
}
const MAX_FRAME = 700;
const MAX_UNCHANGED_FRAMES = 20;

View file

@ -14,7 +14,7 @@
}
#innerDiv {
width: 500px;
width: 4000px;
height: 4000px;
}
</style>
@ -29,46 +29,63 @@
<script>
const target_div = document.getElementById('targetDiv');
async function testWithMovePath(t, move_path) {
// Skip the test on a Mac as they do not support touch screens.
const isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
if (isMac)
return;
await resetTargetScrollState(t, target_div);
await waitForCompositorReady();
verifyNoScrollendOnDocument(t);
let scrollend_count = 0;
const scrollend_listener = () => { scrollend_count += 1; };
target_div.addEventListener("scrollend", scrollend_listener);
t.add_cleanup(() => { target_div.removeEventListener('scrollend', scrollend_listener); });
const pointercancel_listener = () => {
assert_equals(scrollend_count, 0, 'scrollend should happen after pointercancel.');
};
target_div.addEventListener("pointercancel", pointercancel_listener);
t.add_cleanup(() => { target_div.removeEventListener('pointercancel', pointercancel_listener); });
// Because we have several pointer moves, we choose bigger timeout.
const timeoutMs = 1000;
const targetPointercancelPromise = waitForPointercancelEvent(t, target_div, timeoutMs);
const targetScrollendPromise = createScrollendPromiseForTarget(t, target_div, timeoutMs);
await touchScrollInTargetSequentiallyWithPause(target_div, move_path);
// Because we start scrolling after pointerdown, there is no pointerup, instead the target
// will receive a pointercancel, so we wait for pointercancel, and then continue.
await targetPointercancelPromise;
await targetScrollendPromise;
await verifyScrollStopped(t, target_div);
assert_equals(scrollend_count, 1, 'Only one scrollend event should be fired');
}
function runTest() {
promise_test (async (t) => {
// Skip the test on a Mac as they do not support touch screens.
const isMac = navigator.platform.toUpperCase().indexOf('MAC')>=0;
if (isMac)
return;
verifyNoScrollendOnDocument(t);
await waitForCompositorReady();
let scrollend_count = 0;
const scrollend_listener = () => { scrollend_count += 1; };
target_div.addEventListener("scrollend", scrollend_listener);
t.add_cleanup(() => { target_div.removeEventListener('scrollend', scrollend_listener); });
const pointercancel_listener = () => {
assert_equals(scrollend_count, 0, 'scrollend should happen after pointercancel.');
};
target_div.addEventListener("pointercancel", pointercancel_listener);
t.add_cleanup(() => { target_div.removeEventListener('pointercancel', pointercancel_listener); });
// Because we have several pointer moves, we choose bigger timeout.
const timeoutMs = 1000;
const targetPointercancelPromise = waitForPointercancelEvent(t, target_div, timeoutMs);
const targetScrollendPromise = createScrollendPromiseForTarget(t, target_div, timeoutMs);
// Scroll down & up & down on target div and wait for the target_div to get scrollend event.
const move_path = [
{ x: 0, y: -80 }, // Scroll down
{ x: 0, y: -40 }, // Scroll up
{ x: 0, y: -80 }, // Scroll down
];
await touchScrollInTargetSequentiallyWithPause(target_div, move_path);
// Because we start scrolling after pointerdown, there is no pointerup, instead the target
// will receive a pointercancel, so we wait for pointercancel, and then continue.
await targetPointercancelPromise;
await targetScrollendPromise;
await verifyScrollStopped(t, target_div);
assert_equals(scrollend_count, 1, 'Only one scrollend event should be fired');
await testWithMovePath(t, move_path);
}, "Move down, up and down again, receive scrollend event only once");
promise_test (async (t) => {
// Scroll right & left & right on target div and wait for the target_div to get scrollend event.
const move_path = [
{ x: -80, y: 0 }, // Scroll right
{ x: -40, y: 0 }, // Scroll left
{ x: -80, y: 0 }, // Scroll right
];
await testWithMovePath(t, move_path);
}, "Move right, left and right again, receive scrollend event only once");
}
</script>

View file

@ -1,68 +0,0 @@
<!DOCTYPE HTML>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-actions.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="scroll_support.js"></script>
<style>
#scrollableDiv {
width: 200px;
height: 200px;
overflow: scroll;
}
#innerDiv {
width: 400px;
height: 400px;
}
</style>
<body style="margin:0" onload=runTest()>
<div id="scrollableDiv">
<div id="innerDiv">
</div>
</div>
</body>
<script>
var scrolling_div = document.getElementById('scrollableDiv');
var horizontal_scrollend_arrived = false;
var vertical_scrollend_arrived = false;
function onHorizontalScrollEnd(event) {
assert_false(event.cancelable);
assert_false(event.bubbles);
horizontal_scrollend_arrived = true;
}
function onVerticalScrollEnd(event) {
assert_false(event.cancelable);
assert_false(event.bubbles);
vertical_scrollend_arrived = true;
}
scrolling_div.addEventListener("scrollend", onHorizontalScrollEnd);
scrolling_div.addEventListener("scrollend", onVerticalScrollEnd);
function runTest() {
promise_test (async (t) => {
// Make sure that no scrollend event is sent to document.
document.addEventListener("scrollend",
t.unreached_func("Document got unexpected scrollend event."));
await waitForCompositorCommit();
// Do a horizontal scroll and wait for scrollend event.
await touchScrollInTarget(300, scrolling_div, 'right');
await waitFor(() => { return horizontal_scrollend_arrived; },
'Scroller did not receive scrollend event after horizontal scroll.');
assert_equals(scrolling_div.scrollWidth - scrolling_div.scrollLeft,
scrolling_div.clientWidth);
// Do a vertical scroll and wait for scrollend event.
await touchScrollInTarget(300, scrolling_div, 'down');
await waitFor(() => { return vertical_scrollend_arrived; },
'Scroller did not receive scrollend event after vertical scroll.');
assert_equals(scrolling_div.scrollHeight - scrolling_div.scrollTop,
scrolling_div.clientHeight);
}, 'Tests that the scrolled element gets scrollend event at the end of touch scrolling.');
}
</script>

View file

@ -31,14 +31,6 @@
<script>
var target_div = document.getElementById('targetDiv');
async function resetTargetScrollState(test) {
if (target_div.scrollTop != 0 || target_div.scrollLeft != 0) {
target_div.scrollTop = 0;
target_div.scrollLeft = 0;
return waitForScrollendEvent(test, target_div);
}
}
function runTest() {
promise_test(async (t) => {
// Skip the test on a Mac as they do not support touch screens.
@ -46,7 +38,7 @@ function runTest() {
if (isMac)
return;
await resetTargetScrollState(t);
await resetTargetScrollState(t, target_div);
await waitForCompositorReady();
const timeout = 1000; // Because we have two pauses we need longer timeout
@ -92,7 +84,7 @@ function runTest() {
if (scrollbar_width == 0)
return;
await resetTargetScrollState(t);
await resetTargetScrollState(t, target_div);
await waitForCompositorReady();
const targetScrollendPromise = createScrollendPromiseForTarget(t, target_div);
@ -123,7 +115,7 @@ function runTest() {
if (scrollbar_width == 0)
return;
await resetTargetScrollState(t);
await resetTargetScrollState(t, target_div);
await waitForCompositorReady();
const targetScrollendPromise = createScrollendPromiseForTarget(t, target_div);
@ -149,7 +141,7 @@ function runTest() {
'scrollbar thumb.');
promise_test(async (t) => {
await resetTargetScrollState(t);
await resetTargetScrollState(t, target_div);
await waitForCompositorReady();
const targetScrollendPromise = createScrollendPromiseForTarget(t, target_div);
@ -171,7 +163,7 @@ function runTest() {
'scrolling.');
promise_test(async (t) => {
await resetTargetScrollState(t);
await resetTargetScrollState(t, target_div);
await waitForCompositorReady();
verifyNoScrollendOnDocument(t);

View file

@ -0,0 +1,24 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script>
addEventListener("DOMContentLoaded", () => {
getSelection().collapse(document.querySelector("ol"), 0);
document.execCommand("delete");
});
</script>
</head>
<body>
<details open contenteditable>
<map>
<video>
<source></source>
<ol>
<li>a</li>
</ol>
</video>
</map>
</details>
</body>
</html>

View file

@ -0,0 +1,31 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script>
document.addEventListener("DOMContentLoaded", () => {
getSelection().collapse(document.querySelector("code[contenteditable]").firstChild, 0);
window.top.find("A");
document.querySelector("table").insertRow(1);
document.querySelector("table").insertRow(1);
document.execCommand("subscript");
document.execCommand("foreColor", false, "currentColor");
document.execCommand("insertHTML", false, document.querySelector("h5").outerHTML);
document.execCommand("subscript");
document.execCommand("foreColor", false, "currentColor");
document.execCommand("insertHTML", false, document.querySelector("h5").outerHTML);
document.execCommand("insertText", false, "A");
});
</script>
</head>
<body>
<table>
<tr>
<td>
<code contenteditable>
A
<h5>
</h5>
</code>
</body>
</html>

View file

@ -0,0 +1,25 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<script>
addEventListener("load", () => {
document.execCommand("styleWithCSS", false, "true");
document.getSelection().collapse(document.querySelector("label"), 0);
document.execCommand("outdent");
});
</script>
</head>
<body>
<li contenteditable>
<legend style="margin-right: 43%">
<meter>
<mi dir="rtl">8</mi>
<label>
<dir></dir>
</label>
</meter>
</legend>
</li>
</body>
</html>

View file

@ -789,4 +789,49 @@ var browserTests = [
"<font face=\"monospace\">ab<font color=\"#ff0000\">[c]</font></font>",
[true,true],
{}],
// When typing text, `styleWithCSS` value may have been changed at setting the
// style. In the cases, consider to use HTML or CSS style when typing text,
// but if it's impossible to set with `<font color="...">`, use
// `<span style="color:rgba(...)">` even if `styleWithCSS` is "false".
["a[]c",
[["styleWithCSS","true"],["foreColor","#0000FF"],["styleWithCSS","false"],["insertText","b"]],
"a<font color=\"#0000ff\">b</font>c",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","true"],["foreColor","rgb(0, 0, 255)"],["styleWithCSS","false"],["insertText","b"]],
"a<font color=\"#0000ff\">b</font>c",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","true"],["foreColor","rgba(0, 0, 255, 0.5)"],["styleWithCSS","false"],["insertText","b"]],
"a<span style=\"color:rgba(0, 0, 255, 0.5)\">b</span>c",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","true"],["foreColor","transparent"],["styleWithCSS","false"],["insertText","b"]],
"a<span style=\"color:rgba(0, 0, 0, 0)\">b</span>c",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["foreColor","#0000FF"],["styleWithCSS","true"],["insertText","b"]],
"a<span style=\"color:rgb(0, 0, 255)\">b</span>c",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["foreColor","rgb(0, 0, 255)"],["styleWithCSS","true"],["insertText","b"]],
"a<span style=\"color:rgb(0, 0, 255)\">b</span>c",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["foreColor","rgba(0, 0, 255, 0.5)"],["styleWithCSS","true"],["insertText","b"]],
"a<span style=\"color:rgba(0, 0, 255, 0.5)\">b</span>c",
[true,true,true,true],
{}],
["a[]c",
[["styleWithCSS","false"],["foreColor","transparent"],["styleWithCSS","true"],["insertText","b"]],
"a<span style=\"color:rgba(0, 0, 0, 0)\">b</span>c",
[true,true,true,true],
{}],
]

Some files were not shown because too many files have changed in this diff Show more