mirror of
https://github.com/servo/servo.git
synced 2025-07-22 06:43:40 +01:00
Update web-platform-tests to revision 06f77f6bfaa86f3643a79f1ec2c49c6b6955cf18
This commit is contained in:
parent
1981efcc35
commit
c6c4fb2f7a
108 changed files with 2090 additions and 138 deletions
|
@ -112941,6 +112941,18 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-flexbox/table-as-item-auto-min-width.html": [
|
||||
[
|
||||
"/css/css-flexbox/table-as-item-auto-min-width.html",
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-flexbox/table-as-item-narrow-content.html": [
|
||||
[
|
||||
"/css/css-flexbox/table-as-item-narrow-content.html",
|
||||
|
@ -117749,6 +117761,42 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/fallback-layout-invalid-child.https.html": [
|
||||
[
|
||||
"/css/css-layout-api/fallback-layout-invalid-child.https.html",
|
||||
[
|
||||
[
|
||||
"/css/css-layout-api/fallback-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/fallback-layout-invalid-fragment-request.https.html": [
|
||||
[
|
||||
"/css/css-layout-api/fallback-layout-invalid-fragment-request.https.html",
|
||||
[
|
||||
[
|
||||
"/css/css-layout-api/fallback-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/fallback-layout-invalid-fragment.https.html": [
|
||||
[
|
||||
"/css/css-layout-api/fallback-layout-invalid-fragment.https.html",
|
||||
[
|
||||
[
|
||||
"/css/css-layout-api/fallback-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/fallback-layout-return.https.html": [
|
||||
[
|
||||
"/css/css-layout-api/fallback-layout-return.https.html",
|
||||
|
@ -117845,6 +117893,54 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html": [
|
||||
[
|
||||
"/css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html",
|
||||
[
|
||||
[
|
||||
"/css/css-layout-api/layout-child-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/perform-child-layout-fixed-block-size.https.html": [
|
||||
[
|
||||
"/css/css-layout-api/perform-child-layout-fixed-block-size.https.html",
|
||||
[
|
||||
[
|
||||
"/css/css-layout-api/layout-child-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html": [
|
||||
[
|
||||
"/css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html",
|
||||
[
|
||||
[
|
||||
"/css/css-layout-api/layout-child-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/perform-child-layout-fixed-inline-size.https.html": [
|
||||
[
|
||||
"/css/css-layout-api/perform-child-layout-fixed-inline-size.https.html",
|
||||
[
|
||||
[
|
||||
"/css/css-layout-api/layout-child-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/style-map-multi.https.html": [
|
||||
[
|
||||
"/css/css-layout-api/style-map-multi.https.html",
|
||||
|
@ -126849,6 +126945,30 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-001.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-non-replaced-001.html",
|
||||
[
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-non-replaced-001-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-003.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-non-replaced-003.html",
|
||||
[
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-non-replaced-002-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-style-attr/style-attr-braces-001.xht": [
|
||||
[
|
||||
"/css/css-style-attr/style-attr-braces-001.xht",
|
||||
|
@ -248204,6 +248324,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/support/layout-child-fixed-sizes-worklet.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-layout-api/support/layout-child-worklet.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -251439,6 +251564,16 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-001-ref.html": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-002-ref.html": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-speech/OWNERS": [
|
||||
[
|
||||
{}
|
||||
|
@ -297829,6 +297964,21 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/resources/dynamic-import-and-then-static-import-worker.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/resources/dynamic-import-worker.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/resources/nested-dynamic-import-worker.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/resources/nested-static-import-worker.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -297839,6 +297989,11 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/resources/static-import-and-then-dynamic-import-worker.js": [
|
||||
[
|
||||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/resources/static-import-worker.js": [
|
||||
[
|
||||
{}
|
||||
|
@ -317283,6 +317438,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/block-size.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/block-size.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/border-collapse.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/border-collapse.html",
|
||||
|
@ -317433,30 +317594,120 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-family.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-family.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-language-override.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-language-override.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-palette.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-palette.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-presentation.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-presentation.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-size.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-size.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-stretch.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-stretch.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-style.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-style.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-variant.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-variant.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-weight.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font-weight.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/font.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/gap.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/gap.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/height.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/height.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/inline-size.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/inline-size.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/isolation.html": [
|
||||
[
|
||||
"/css/css-typed-om/the-stylepropertymap/properties/isolation.html",
|
||||
|
@ -369919,15 +370170,15 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/dedicated-worker-options-type.html": [
|
||||
"workers/modules/dedicated-worker-import.html": [
|
||||
[
|
||||
"/workers/modules/dedicated-worker-options-type.html",
|
||||
"/workers/modules/dedicated-worker-import.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"workers/modules/dedicated-worker-static-import.html": [
|
||||
"workers/modules/dedicated-worker-options-type.html": [
|
||||
[
|
||||
"/workers/modules/dedicated-worker-static-import.html",
|
||||
"/workers/modules/dedicated-worker-options-type.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
|
@ -390349,6 +390600,12 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-002.html": [
|
||||
[
|
||||
"/css/css-sizing/intrinsic-percent-non-replaced-002.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"css/css-text-decor/text-decoration-visibility-001.xht": [
|
||||
[
|
||||
"/css/css-text-decor/text-decoration-visibility-001.xht",
|
||||
|
@ -402453,7 +402710,7 @@
|
|||
"support"
|
||||
],
|
||||
"common/worklet-reftest.js": [
|
||||
"29a9c4f2f6187fc64ecd1c77bcccfa1aef278ed8",
|
||||
"11ef28419b58983d473606865c0d7a47be5e4056",
|
||||
"support"
|
||||
],
|
||||
"compat/OWNERS": [
|
||||
|
@ -492524,6 +492781,10 @@
|
|||
"078e1dd6dd61d36cec239ed75d02051f61fe60a5",
|
||||
"support"
|
||||
],
|
||||
"css/css-flexbox/table-as-item-auto-min-width.html": [
|
||||
"d70cb1447c942c9f66f6503b6c769b2db188b5dc",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-flexbox/table-as-item-narrow-content.html": [
|
||||
"ccee1a24278c3177809a09009c2f15973908fa83",
|
||||
"reftest"
|
||||
|
@ -502380,6 +502641,18 @@
|
|||
"3d279f42a9b8e8ea0f6dc120d36ca0597372ef9b",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/fallback-layout-invalid-child.https.html": [
|
||||
"f2fa9fefa56073f42a0537fa3140f37ca0c316da",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/fallback-layout-invalid-fragment-request.https.html": [
|
||||
"24aed5d6b0f7ea7095324ce1f59adb0498277bdf",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/fallback-layout-invalid-fragment.https.html": [
|
||||
"991b73a63246ae1d2676df32c3a56028f5a9583b",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/fallback-layout-return.https.html": [
|
||||
"159662be847f8657d33a0607cb0e6561d57ef4e1",
|
||||
"reftest"
|
||||
|
@ -502424,6 +502697,22 @@
|
|||
"567ff67317cae9906e6d159dc232c41464a4e7c6",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/perform-child-layout-fixed-block-size-vrl.https.html": [
|
||||
"341711737d74fb068bb3a2e348e47820c236fa49",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/perform-child-layout-fixed-block-size.https.html": [
|
||||
"486fe671afaa9275bc6b32c49ca4c8143290f9be",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/perform-child-layout-fixed-inline-size-vrl.https.html": [
|
||||
"3c3b4c800af40a85eb9ddb588a07fc0d8ceec5cf",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/perform-child-layout-fixed-inline-size.https.html": [
|
||||
"a25a85095781de557edde6dd02b82ee052642bf1",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/style-map-multi-ref.html": [
|
||||
"d33f700e795484641d3cc7db1c26e09dca952209",
|
||||
"support"
|
||||
|
@ -502440,8 +502729,12 @@
|
|||
"361b3c82c37c0068d23ae23e96d8e9185d3765b0",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-layout-api/support/layout-child-fixed-sizes-worklet.js": [
|
||||
"5ddda72e3c9d077508622511e8685249c7803028",
|
||||
"support"
|
||||
],
|
||||
"css/css-layout-api/support/layout-child-worklet.js": [
|
||||
"bea931d2a111e173494ec3bf2adaa9cc42b73a1e",
|
||||
"87af0bfedbe9d4ea23e904edc5b22382a5d5d56c",
|
||||
"support"
|
||||
],
|
||||
"css/css-layout-api/supports.https.html": [
|
||||
|
@ -509248,6 +509541,26 @@
|
|||
"5bb192165bcb7d9a619d86dbff61831fc8de71cb",
|
||||
"support"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-001-ref.html": [
|
||||
"67a4540f6b7de22155226b39e948c7a7e2c33f1b",
|
||||
"support"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-001.html": [
|
||||
"58ce478fe083f05e3bdbb3f24988341f3e7095b5",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-002-ref.html": [
|
||||
"8c6cde1d06cd3ba83b3049edbb0016033fbb62b4",
|
||||
"support"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-002.html": [
|
||||
"9d9c514c876bb9aa2c577dbd15c14358e7b0d0c4",
|
||||
"visual"
|
||||
],
|
||||
"css/css-sizing/intrinsic-percent-non-replaced-003.html": [
|
||||
"43d44ad3a75e6abb9d66d06c3cdc71dbcb366651",
|
||||
"reftest"
|
||||
],
|
||||
"css/css-speech/Integer.html": [
|
||||
"8db91e711b22ead393b1d9a18c224a7f838b85b0",
|
||||
"manual"
|
||||
|
@ -522676,6 +522989,10 @@
|
|||
"32d684e452a4bafd7b58a0b33d42d32aa51ac091",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/block-size.html": [
|
||||
"4dc26a97d56a24c053efac27b5988456d750d186",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/border-collapse.html": [
|
||||
"93e71097d3b28c88f51210a2f2a9fcf433f80cba",
|
||||
"testharness"
|
||||
|
@ -522776,22 +523093,82 @@
|
|||
"1dfca0045c2b57f36d5165139087301ffe54c63a",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-family.html": [
|
||||
"72e8dd4dd54081fe9b2278c860f2752e2d17de74",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-language-override.html": [
|
||||
"e43730c10c85fc5bbed8e6a32c594f5c643e4786",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-optical-sizing.html": [
|
||||
"7183f6fcb2fd4e713d3b2d6cbc7211a8b2a071a6",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-palette.html": [
|
||||
"8ec2ff5bbc9913680fd5fab16949f4aaf4eca740",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-presentation.html": [
|
||||
"fe359fc963e95d1ca539bb9f217164292e5a13fb",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-size-adjust.html": [
|
||||
"1a8fa0ace8426d7cfecaaa79e2f4fbd77c5265ab",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-size.html": [
|
||||
"bb31e5cb88492bece2c54ff106d01e789e3f08a6",
|
||||
"5b405bd6bb5ea140bf6a3d62b670e2924fcc6378",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-stretch.html": [
|
||||
"52438b3be5d9c1037863880834e766dda7d07d5a",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-style.html": [
|
||||
"c4a42872dca602b71f021799d29e404cfa7ed90e",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-synthesis.html": [
|
||||
"de9400e7f238dbc1dc47fb5f483b3ba01eefe934",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-variant-alternates.html": [
|
||||
"141eab85e1a4bcbc051d61dc502bb90613eae996",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-variant-emoji.html": [
|
||||
"737a0494625e9d22c16f791fbb437c47d4a2923b",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-variant.html": [
|
||||
"b538f2ed407c8cfd4718c28082da3de237cd9953",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-variation-settings.html": [
|
||||
"566a8c49d7a7e71e960061fee88c9b17d33f1e45",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font-weight.html": [
|
||||
"6429fa7266a227e93cb0a5d3eb19468b0f73fce8",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/font.html": [
|
||||
"6f3f672ecb0ad0b4391b7c7fbd8bb666b77a1efc",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/gap.html": [
|
||||
"e113dfd152548c6ba612d40af13ba5877673b043",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/height.html": [
|
||||
"617ec941ab1cbd02b31b8a9bb7ce6da311109476",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/inline-size.html": [
|
||||
"531ad3bba92bfdb60377dc755d40f3300d0843e0",
|
||||
"testharness"
|
||||
],
|
||||
"css/css-typed-om/the-stylepropertymap/properties/isolation.html": [
|
||||
"883b36434d3e3d8fee25f0ae0fee9884b5ceef44",
|
||||
"testharness"
|
||||
|
@ -546353,7 +546730,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"dom/nodes/Element-classlist.html": [
|
||||
"e0a3126453af3e138c322ae0074d7ee73d604a8d",
|
||||
"db5f4b3f723db026b90e299b2c7be5e5e4f081f5",
|
||||
"testharness"
|
||||
],
|
||||
"dom/nodes/Element-closest.html": [
|
||||
|
@ -573829,7 +574206,7 @@
|
|||
"testharness"
|
||||
],
|
||||
"mediacapture-streams/MediaDevices-enumerateDevices.https.html": [
|
||||
"892229b737d157845d9b2e24170f3bc820b10036",
|
||||
"c44f824ed1836c272125b0b5b10653cb86db2a7e",
|
||||
"testharness"
|
||||
],
|
||||
"mediacapture-streams/MediaDevices-getUserMedia.https.html": [
|
||||
|
@ -573893,7 +574270,7 @@
|
|||
"manual"
|
||||
],
|
||||
"mediacapture-streams/MediaStreamTrack-getCapabilities.https.html": [
|
||||
"77afad651acf85273270f1b75f660e7e800c0ff1",
|
||||
"23863eb0835fb86d556e6ea95692f52572a38170",
|
||||
"testharness"
|
||||
],
|
||||
"mediacapture-streams/MediaStreamTrack-getSettings.https.html": [
|
||||
|
@ -608228,24 +608605,40 @@
|
|||
"6bffa3be83d81e2faa93119e710e4fee93fb855e",
|
||||
"testharness"
|
||||
],
|
||||
"workers/modules/dedicated-worker-import.html": [
|
||||
"752698b4f8f7298ca2ecc74d41887117a636118a",
|
||||
"testharness"
|
||||
],
|
||||
"workers/modules/dedicated-worker-options-type.html": [
|
||||
"9f6f1be759beb885e2baa746e36ace83685f649b",
|
||||
"testharness"
|
||||
],
|
||||
"workers/modules/dedicated-worker-static-import.html": [
|
||||
"d0d3dc37a8c061a1dc5213f8fe79e7f985c48b81",
|
||||
"testharness"
|
||||
"workers/modules/resources/dynamic-import-and-then-static-import-worker.js": [
|
||||
"f4df69196f64cd81e92705186325004ac94db659",
|
||||
"support"
|
||||
],
|
||||
"workers/modules/resources/dynamic-import-worker.js": [
|
||||
"444e313fe51923097e3672d88d0afd30aac5ecab",
|
||||
"support"
|
||||
],
|
||||
"workers/modules/resources/nested-dynamic-import-worker.js": [
|
||||
"4ee05f3be8a1b41a9e2fa3e24d40ec5103f67eac",
|
||||
"support"
|
||||
],
|
||||
"workers/modules/resources/nested-static-import-worker.js": [
|
||||
"eb76ec7e8a0f9df6de7114e3aa9100f8374fea8f",
|
||||
"38ca86e8e32df51af7d848474f31a7b8ff9dc3aa",
|
||||
"support"
|
||||
],
|
||||
"workers/modules/resources/post-message-on-load-worker.js": [
|
||||
"c67a79ade775435a67e5999d17e7cdda450c8e50",
|
||||
"support"
|
||||
],
|
||||
"workers/modules/resources/static-import-and-then-dynamic-import-worker.js": [
|
||||
"f69987442b6a223a868e6c1a7ca6d9cee2976068",
|
||||
"support"
|
||||
],
|
||||
"workers/modules/resources/static-import-worker.js": [
|
||||
"f3020118d7e499e0e910abc7a733e0b9c3cf1e5a",
|
||||
"6d5fb2c553d2f32cdd16722a85bd65e0a172768c",
|
||||
"support"
|
||||
],
|
||||
"workers/name-property.html": [
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[background-image-alpha.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[background-image-multiple.https.html]
|
||||
expected: TIMEOUT
|
|
@ -1,3 +1,3 @@
|
|||
[background-image-tiled.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[geometry-background-image-001.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[geometry-background-image-002.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[geometry-background-image-tiled-001.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[geometry-background-image-tiled-002.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[geometry-background-image-tiled-003.https.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,4 @@
|
|||
[geometry-border-image-001.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17861
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[geometry-border-image-002.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17860
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[geometry-border-image-003.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17860
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[geometry-border-image-004.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17860
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[geometry-with-float-size.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
[device-pixel-ratio.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[invalid-image-constructor-error.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[invalid-image-paint-error.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[invalid-image-pending-script.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[overdraw.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[paint-arguments.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[paint-function-arguments.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[paint2d-composite.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[paint2d-filter.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[paint2d-gradient.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[paint2d-image.https.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,4 @@
|
|||
[paint2d-paths.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17597
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[paint2d-rects.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[paint2d-shadows.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[paint2d-transform.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-001.https.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-002.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-003.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-004.https.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-005.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-006.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-007.https.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-008.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-009.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-010.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-011.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-012.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-013.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-014.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-015.https.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,4 @@
|
|||
[parse-input-arguments-016.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17852
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-017.https.html]
|
||||
expected: TIMEOUT
|
|
@ -1,3 +1,3 @@
|
|||
[parse-input-arguments-018.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-019.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-020.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-021.https.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,2 @@
|
|||
[parse-input-arguments-022.https.html]
|
||||
expected: TIMEOUT
|
|
@ -1,4 +1,4 @@
|
|||
[style-background-image.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17378
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[style-before-pseudo.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17854
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[style-first-letter-pseudo.https.html]
|
||||
type: reftest
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
bug: https://github.com/servo/servo/issues/17854
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[Element-classlist.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[classList.remove("a") with attribute value null (HTML node)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[010.html]
|
||||
[Salvagability of document.opened document]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
[dedicated-worker-import.html]
|
||||
expected: ERROR
|
||||
[Test static import on DedicatedWorkerGlobalScope.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Test nested static import on DedicatedWorkerGlobalScope.]
|
||||
expected: NOTRUN
|
||||
|
||||
[Test static import and then dynamic import on DedicatedWorkerGlobalScope.]
|
||||
expected: NOTRUN
|
||||
|
||||
[Test dynamic import on DedicatedWorkerGlobalScope.]
|
||||
expected: NOTRUN
|
||||
|
||||
[Test nested dynamic import on DedicatedWorkerGlobalScope.]
|
||||
expected: NOTRUN
|
||||
|
||||
[Test dynamic import and then static import on DedicatedWorkerGlobalScope.]
|
||||
expected: NOTRUN
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[dedicated-worker-static-import.html]
|
||||
expected: ERROR
|
||||
[Test static import on DedicatedWorkerGlobalScope.]
|
||||
expected: TIMEOUT
|
||||
|
||||
[Test nested static import on DedicatedWorkerGlobalScope.]
|
||||
expected: NOTRUN
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[rapid-resizing.html]
|
||||
expected: TIMEOUT
|
||||
[Overall test]
|
||||
expected: NOTRUN
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[shader-with-non-reserved-words.html]
|
||||
expected: TIMEOUT
|
||||
[Overall test]
|
||||
expected: NOTRUN
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[log_001_to_008.html]
|
||||
expected: TIMEOUT
|
||||
[Overall test]
|
||||
expected: NOTRUN
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[log2_001_to_008.html]
|
||||
expected: TIMEOUT
|
||||
[Overall test]
|
||||
expected: NOTRUN
|
||||
|
|
@ -1,12 +1,8 @@
|
|||
// To make sure that we take the snapshot at the right time, we do double
|
||||
// requestAnimationFrame. In the second frame, we take a screenshot, that makes
|
||||
// sure that we already have a full frame.
|
||||
function importWorkletAndTerminateTestAfterAsyncPaint(worklet, code) {
|
||||
if (typeof worklet === 'undefined') {
|
||||
takeScreenshot();
|
||||
return;
|
||||
}
|
||||
|
||||
// Imports code into a worklet. E.g.
|
||||
//
|
||||
// importWorklet(CSS.paintWorklet, {url: 'script.js'});
|
||||
// importWorklet(CSS.paintWorklet, '/* javascript string */');
|
||||
function importWorklet(worklet, code) {
|
||||
let url;
|
||||
if (typeof code === 'object') {
|
||||
url = code.url;
|
||||
|
@ -15,11 +11,23 @@ function importWorkletAndTerminateTestAfterAsyncPaint(worklet, code) {
|
|||
url = URL.createObjectURL(blob);
|
||||
}
|
||||
|
||||
worklet.addModule(url).then(function() {
|
||||
return worklet.addModule(url);
|
||||
}
|
||||
|
||||
// To make sure that we take the snapshot at the right time, we do double
|
||||
// requestAnimationFrame. In the second frame, we take a screenshot, that makes
|
||||
// sure that we already have a full frame.
|
||||
async function importWorkletAndTerminateTestAfterAsyncPaint(worklet, code) {
|
||||
if (typeof worklet === 'undefined') {
|
||||
takeScreenshot();
|
||||
return;
|
||||
}
|
||||
|
||||
await importWorklet(worklet, code);
|
||||
|
||||
requestAnimationFrame(function() {
|
||||
requestAnimationFrame(function() {
|
||||
requestAnimationFrame(function() {
|
||||
takeScreenshot();
|
||||
});
|
||||
takeScreenshot();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<title>CSS Flexbox Test: Flex item as table, specified width less than minimum intrinsic width</title>
|
||||
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-flexbox-1/#layout-algorithm" title="9. Flex Layout Algorithm">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="display:flex; width:100px; background:red;">
|
||||
<div style="display:table; width:10px; max-width:10px; height:100px; background:green;">
|
||||
<div style="width:100px; height:10px; background:green;"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,84 @@
|
|||
<!DOCTYPE html>
|
||||
<html class=reftest-wait>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#invoke-a-layout-callback">
|
||||
<link rel="match" href="fallback-ref.html">
|
||||
<meta name="assert" content="This test checks that a layout() class performing layout on an invalid child will fallback to block layout." />
|
||||
<style>
|
||||
.test {
|
||||
background: red;
|
||||
border: solid 2px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.test > div {
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
@supports (display: layout(bad-child-layout)) {
|
||||
.test {
|
||||
display: layout(bad-child-layout);
|
||||
background: green;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/worklet-reftest.js"></script>
|
||||
|
||||
<div class="test">
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
<script id="code" type="text/worklet">
|
||||
registerLayout('bad-child-layout', class {
|
||||
static get inputProperties() { return ['--fail']; }
|
||||
|
||||
*intrinsicSizes() {}
|
||||
*layout(children, _, __, styleMap) {
|
||||
if (styleMap.get('--fail').toString() !== 'true') {
|
||||
this.child = children[0];
|
||||
}
|
||||
|
||||
// Try to perform layout on the child. If its invalid (we skipped the if
|
||||
// statement above) we should fallback to block layout.
|
||||
const fragment = yield this.child.layoutNextFragment({});
|
||||
|
||||
return {autoBlockSize: 0, childFragments: [fragment]};
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
function raf() {
|
||||
return new Promise((resolve) => {
|
||||
requestAnimationFrame(() => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
(async function() {
|
||||
if (typeof CSS.layoutWorklet === 'undefined') {
|
||||
takeScreenshot();
|
||||
return;
|
||||
}
|
||||
|
||||
await importWorklet(CSS.layoutWorklet, document.getElementById('code').textContent);
|
||||
|
||||
// Ensure that all instances have a child to perform an invalid layout upon.
|
||||
const test = document.getElementsByClassName('test')[0];
|
||||
for (let i = 0; i < 100; i++) {
|
||||
test.innerHTML = '<div><div>';
|
||||
await raf();
|
||||
}
|
||||
|
||||
// The next layout should mean that we will fallback to block.
|
||||
test.innerHTML = '<div></div>';
|
||||
test.style.setProperty('--fail', 'true');
|
||||
|
||||
// Finish up the test.
|
||||
await raf();
|
||||
await raf();
|
||||
takeScreenshot();
|
||||
})();
|
||||
</script>
|
||||
</html>
|
|
@ -0,0 +1,84 @@
|
|||
<!DOCTYPE html>
|
||||
<html class=reftest-wait>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#invoke-a-layout-callback">
|
||||
<link rel="match" href="fallback-ref.html">
|
||||
<meta name="assert" content="This test checks that a layout() class performing layout on an invalid fragment request will fallback to block layout." />
|
||||
<style>
|
||||
.test {
|
||||
background: red;
|
||||
border: solid 2px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.test > div {
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
@supports (display: layout(bad-request)) {
|
||||
.test {
|
||||
display: layout(bad-request);
|
||||
background: green;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/worklet-reftest.js"></script>
|
||||
|
||||
<div class="test">
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
<script id="code" type="text/worklet">
|
||||
registerLayout('bad-request', class {
|
||||
static get inputProperties() { return ['--fail']; }
|
||||
|
||||
*intrinsicSizes() {}
|
||||
*layout(children, _, __, styleMap) {
|
||||
if (styleMap.get('--fail').toString() !== 'true') {
|
||||
this.request = children[0].layoutNextFragment({});
|
||||
}
|
||||
|
||||
// Try to perform layout on the child. If its invalid (we skipped the if
|
||||
// statement above) we should fallback to block layout.
|
||||
const childFragments = yield [this.request];
|
||||
|
||||
return {autoBlockSize: 0, childFragments};
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
function raf() {
|
||||
return new Promise((resolve) => {
|
||||
requestAnimationFrame(() => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
(async function() {
|
||||
if (typeof CSS.layoutWorklet === 'undefined') {
|
||||
takeScreenshot();
|
||||
return;
|
||||
}
|
||||
|
||||
await importWorklet(CSS.layoutWorklet, document.getElementById('code').textContent);
|
||||
|
||||
// Ensure that all instances have a child to perform an invalid layout upon.
|
||||
const test = document.getElementsByClassName('test')[0];
|
||||
for (let i = 0; i < 100; i++) {
|
||||
test.innerHTML = '<div><div>';
|
||||
await raf();
|
||||
}
|
||||
|
||||
// The next layout should mean that we will fallback to block.
|
||||
test.innerHTML = '<div></div>';
|
||||
test.style.setProperty('--fail', 'true');
|
||||
|
||||
// Finish up the test.
|
||||
await raf();
|
||||
await raf();
|
||||
takeScreenshot();
|
||||
})();
|
||||
</script>
|
||||
</html>
|
|
@ -0,0 +1,82 @@
|
|||
<!DOCTYPE html>
|
||||
<html class=reftest-wait>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#invoke-a-layout-callback">
|
||||
<link rel="match" href="fallback-ref.html">
|
||||
<meta name="assert" content="This test checks that a layout() class returning an invalid fragment will fallback to block layout." />
|
||||
<style>
|
||||
.test {
|
||||
background: red;
|
||||
border: solid 2px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.test > div {
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
@supports (display: layout(bad-request)) {
|
||||
.test {
|
||||
display: layout(bad-request);
|
||||
background: green;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/worklet-reftest.js"></script>
|
||||
|
||||
<div class="test">
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
<script id="code" type="text/worklet">
|
||||
registerLayout('bad-request', class {
|
||||
static get inputProperties() { return ['--fail']; }
|
||||
|
||||
*intrinsicSizes() {}
|
||||
*layout(children, _, __, styleMap) {
|
||||
if (styleMap.get('--fail').toString() !== 'true') {
|
||||
this.fragment = yield children[0].layoutNextFragment({});
|
||||
}
|
||||
|
||||
// Return, if the fragment is invalid (we skipped the if statement above)
|
||||
// we should fallback to block layout.
|
||||
return {autoBlockSize: 0, childFragments: [this.fragment]};
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
function raf() {
|
||||
return new Promise((resolve) => {
|
||||
requestAnimationFrame(() => {
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
(async function() {
|
||||
if (typeof CSS.layoutWorklet === 'undefined') {
|
||||
takeScreenshot();
|
||||
return;
|
||||
}
|
||||
|
||||
await importWorklet(CSS.layoutWorklet, document.getElementById('code').textContent);
|
||||
|
||||
// Ensure that all instances have a child to perform an invalid layout upon.
|
||||
const test = document.getElementsByClassName('test')[0];
|
||||
for (let i = 0; i < 100; i++) {
|
||||
test.innerHTML = '<div><div>';
|
||||
await raf();
|
||||
}
|
||||
|
||||
// The next layout should mean that we will fallback to block.
|
||||
test.innerHTML = '<div></div>';
|
||||
test.style.setProperty('--fail', 'true');
|
||||
|
||||
// Finish up the test.
|
||||
await raf();
|
||||
await raf();
|
||||
takeScreenshot();
|
||||
})();
|
||||
</script>
|
||||
</html>
|
|
@ -0,0 +1,61 @@
|
|||
<!DOCTYPE html>
|
||||
<html class=reftest-wait>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize">
|
||||
<link rel="match" href="layout-child-ref.html">
|
||||
<meta name="assert" content="This test checks that fixing the block size of children works as expected." />
|
||||
|
||||
<style>
|
||||
.test {
|
||||
writing-mode: vertical-rl;
|
||||
background: red;
|
||||
margin: 10px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.htb {
|
||||
writing-mode: horizontal-tb;
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 2px;
|
||||
|
||||
--fixed-block-size: 10;
|
||||
|
||||
--inline-size-expected: 2;
|
||||
--block-size-expected: 10;
|
||||
}
|
||||
|
||||
.vrl {
|
||||
writing-mode: vertical-rl;
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 2px;
|
||||
|
||||
--fixed-block-size: 10;
|
||||
|
||||
--inline-size-expected: 2;
|
||||
--block-size-expected: 10;
|
||||
}
|
||||
|
||||
@supports (display: layout(test)) {
|
||||
.test {
|
||||
background: green;
|
||||
display: layout(test);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/worklet-reftest.js"></script>
|
||||
|
||||
<div class="test">
|
||||
<div class="htb"></div>
|
||||
<div class="vrl"></div>
|
||||
<!-- min/max-width should have no effect, fixedBlockSize wins. -->
|
||||
<div class="htb" style="max-width: 5px;"></div>
|
||||
<div class="vrl" style="max-width: 5px;"></div>
|
||||
<div class="htb" style="min-width: 15px;"></div>
|
||||
<div class="vrl" style="min-width: 15px;"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
|
||||
</script>
|
|
@ -0,0 +1,60 @@
|
|||
<!DOCTYPE html>
|
||||
<html class=reftest-wait>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedblocksize">
|
||||
<link rel="match" href="layout-child-ref.html">
|
||||
<meta name="assert" content="This test checks that fixing the block size of children works as expected." />
|
||||
|
||||
<style>
|
||||
.test {
|
||||
background: red;
|
||||
margin: 10px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.htb {
|
||||
writing-mode: horizontal-tb;
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 2px;
|
||||
|
||||
--fixed-block-size: 10;
|
||||
|
||||
--inline-size-expected: 3;
|
||||
--block-size-expected: 10;
|
||||
}
|
||||
|
||||
.vrl {
|
||||
writing-mode: vertical-rl;
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 2px;
|
||||
|
||||
--fixed-block-size: 10;
|
||||
|
||||
--inline-size-expected: 3;
|
||||
--block-size-expected: 10;
|
||||
}
|
||||
|
||||
@supports (display: layout(test)) {
|
||||
.test {
|
||||
background: green;
|
||||
display: layout(test);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/worklet-reftest.js"></script>
|
||||
|
||||
<div class="test">
|
||||
<div class="htb"></div>
|
||||
<div class="vrl"></div>
|
||||
<!-- min/max-height should have no effect, fixedBlockSize wins. -->
|
||||
<div class="htb" style="max-height: 5px;"></div>
|
||||
<div class="vrl" style="max-height: 5px;"></div>
|
||||
<div class="htb" style="min-height: 15px;"></div>
|
||||
<div class="vrl" style="min-height: 15px;"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
|
||||
</script>
|
|
@ -0,0 +1,61 @@
|
|||
<!DOCTYPE html>
|
||||
<html class=reftest-wait>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize">
|
||||
<link rel="match" href="layout-child-ref.html">
|
||||
<meta name="assert" content="This test checks that fixing the inline size of children works as expected." />
|
||||
|
||||
<style>
|
||||
.test {
|
||||
writing-mode: vertical-rl;
|
||||
background: red;
|
||||
margin: 10px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
.htb {
|
||||
writing-mode: horizontal-tb;
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 2px;
|
||||
|
||||
--fixed-inline-size: 10;
|
||||
|
||||
--inline-size-expected: 10;
|
||||
--block-size-expected: 3;
|
||||
}
|
||||
|
||||
.vrl {
|
||||
writing-mode: vertical-rl;
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 2px;
|
||||
|
||||
--fixed-inline-size: 10;
|
||||
|
||||
--inline-size-expected: 10;
|
||||
--block-size-expected: 3;
|
||||
}
|
||||
|
||||
@supports (display: layout(test)) {
|
||||
.test {
|
||||
background: green;
|
||||
display: layout(test);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/worklet-reftest.js"></script>
|
||||
|
||||
<div class="test">
|
||||
<div class="htb"></div>
|
||||
<div class="vrl"></div>
|
||||
<!-- min/max-height should have no effect, fixedInlineSize wins. -->
|
||||
<div class="htb" style="max-height: 5px;"></div>
|
||||
<div class="vrl" style="max-height: 5px;"></div>
|
||||
<div class="htb" style="min-height: 15px;"></div>
|
||||
<div class="vrl" style="min-height: 15px;"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
|
||||
</script>
|
|
@ -0,0 +1,60 @@
|
|||
<!DOCTYPE html>
|
||||
<html class=reftest-wait>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/#dom-layoutconstraintsoptions-fixedinlinesize">
|
||||
<link rel="match" href="layout-child-ref.html">
|
||||
<meta name="assert" content="This test checks that fixing the inline size of children works as expected." />
|
||||
|
||||
<style>
|
||||
.test {
|
||||
background: red;
|
||||
margin: 10px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.htb {
|
||||
writing-mode: horizontal-tb;
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 2px;
|
||||
|
||||
--fixed-inline-size: 10;
|
||||
|
||||
--inline-size-expected: 10;
|
||||
--block-size-expected: 2;
|
||||
}
|
||||
|
||||
.vrl {
|
||||
writing-mode: vertical-rl;
|
||||
visibility: hidden;
|
||||
width: 3px;
|
||||
height: 2px;
|
||||
|
||||
--fixed-inline-size: 10;
|
||||
|
||||
--inline-size-expected: 10;
|
||||
--block-size-expected: 2;
|
||||
}
|
||||
|
||||
@supports (display: layout(test)) {
|
||||
.test {
|
||||
background: green;
|
||||
display: layout(test);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/worklet-reftest.js"></script>
|
||||
|
||||
<div class="test">
|
||||
<div class="htb"></div>
|
||||
<div class="vrl"></div>
|
||||
<!-- min/max-width should have no effect, fixedInlineSize wins. -->
|
||||
<div class="htb" style="max-width: 5px;"></div>
|
||||
<div class="vrl" style="max-width: 5px;"></div>
|
||||
<div class="htb" style="min-width: 15px;"></div>
|
||||
<div class="vrl" style="min-width: 15px;"></div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
importWorkletAndTerminateTestAfterAsyncPaint(CSS.layoutWorklet, {url: 'support/layout-child-fixed-sizes-worklet.js'});
|
||||
</script>
|
|
@ -0,0 +1,52 @@
|
|||
import {areArraysEqual} from '/common/arrays.js';
|
||||
|
||||
function parseNumber(value) {
|
||||
const num = parseInt(value.toString());
|
||||
if (isNaN(num)) return undefined;
|
||||
return num;
|
||||
}
|
||||
|
||||
registerLayout('test', class {
|
||||
static get childInputProperties() {
|
||||
return [
|
||||
'--fixed-inline-size',
|
||||
'--fixed-block-size',
|
||||
'--inline-size-expected',
|
||||
'--block-size-expected'
|
||||
];
|
||||
}
|
||||
|
||||
*intrinsicSizes() {}
|
||||
*layout(children, edges, constraints, styleMap) {
|
||||
const childFragments = yield children.map((child) => {
|
||||
const childConstraints = {};
|
||||
const fixedInlineSize = parseNumber(child.styleMap.get('--fixed-inline-size'));
|
||||
const fixedBlockSize = parseNumber(child.styleMap.get('--fixed-block-size'));
|
||||
return child.layoutNextFragment({fixedInlineSize, fixedBlockSize});
|
||||
});
|
||||
|
||||
const actual = childFragments.map((childFragment) => {
|
||||
return {
|
||||
inlineSize: childFragment.inlineSize,
|
||||
blockSize: childFragment.blockSize,
|
||||
};
|
||||
});
|
||||
|
||||
const expected = children.map((child) => {
|
||||
return {
|
||||
inlineSize: parseInt(child.styleMap.get('--inline-size-expected').toString()),
|
||||
blockSize: parseInt(child.styleMap.get('--block-size-expected').toString()),
|
||||
};
|
||||
});
|
||||
|
||||
const equalityFunc = (a, b) => {
|
||||
return a.inlineSize == b.inlineSize && a.blockSize == b.blockSize;
|
||||
};
|
||||
|
||||
if (!areArraysEqual(expected, actual, equalityFunc)) {
|
||||
return {autoBlockSize: 0, childFragments};
|
||||
}
|
||||
|
||||
return {autoBlockSize: 100, childFragments};
|
||||
}
|
||||
});
|
|
@ -16,9 +16,11 @@ registerLayout('test', class {
|
|||
return child.styleMap.get('--child').toString().trim();
|
||||
});
|
||||
|
||||
if (!areArraysEqual(expected, actual))
|
||||
return {autoBlockSize: 0};
|
||||
const childFragments = yield children.map((child) => { return child.layoutNextFragment({}); });
|
||||
|
||||
return {autoBlockSize: 100};
|
||||
if (!areArraysEqual(expected, actual))
|
||||
return {autoBlockSize: 0, childFragments};
|
||||
|
||||
return {autoBlockSize: 100, childFragments};
|
||||
}
|
||||
});
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Reference</title>
|
||||
|
||||
<style>
|
||||
/* establish context */
|
||||
.container {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
color: blue;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
.zero {
|
||||
width: 0;
|
||||
}
|
||||
.infinite {
|
||||
width: 400px; /* close enough */
|
||||
}
|
||||
|
||||
/* visualize size contribution */
|
||||
.container > div {
|
||||
float: left;
|
||||
border: solid orange 20px;
|
||||
border-style: none solid;
|
||||
}
|
||||
.container > div > div {
|
||||
border-right: solid 20px aqua;
|
||||
}
|
||||
|
||||
/* controls for min-width */
|
||||
/* content = 100% = 80px = 4ch + border */
|
||||
/* choose sizes that are larger than content to see if how they take effect */
|
||||
.control {
|
||||
width: 60px;
|
||||
}
|
||||
.raw-percent,
|
||||
.calc-percent {
|
||||
width: 160px;
|
||||
margin-right: -100px;
|
||||
}
|
||||
.no-percent {
|
||||
width: 160px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- calculating min-content widths -->
|
||||
<div class='zero container'>
|
||||
<div><div class="control">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="raw-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="calc-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="no-percent">ppp pp</div></div>
|
||||
</div>
|
||||
|
||||
<!-- calculating max-content widths -->
|
||||
<div class='infinite container'>
|
||||
<div><div class="control">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="raw-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="calc-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="no-percent">p p</div></div>
|
||||
</div>
|
|
@ -0,0 +1,71 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Percentages of min-width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
|
||||
<link rel="match" href="intrinsic-percent-non-replaced-001-ref.html">
|
||||
|
||||
<style>
|
||||
/* establish context */
|
||||
.container {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
color: blue;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
.zero {
|
||||
width: 0;
|
||||
}
|
||||
.infinite {
|
||||
width: 400px; /* close enough */
|
||||
}
|
||||
|
||||
/* visualize size contribution */
|
||||
.container > div {
|
||||
float: left;
|
||||
border: solid orange 20px;
|
||||
border-style: none solid;
|
||||
}
|
||||
.container > div > div {
|
||||
border-right: solid 20px aqua;
|
||||
}
|
||||
|
||||
/* test min-width */
|
||||
/* content = 100% = 80px = 4ch + border */
|
||||
/* choose sizes that are larger than content to see if how they take effect */
|
||||
.raw-percent {
|
||||
min-width: 200%;
|
||||
}
|
||||
.calc-percent {
|
||||
min-width: calc(160px + 0%);
|
||||
}
|
||||
.no-percent {
|
||||
min-width: 160px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- calculating min-content widths -->
|
||||
<div class='zero container'>
|
||||
<div><div class="control">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="raw-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="calc-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="no-percent">ppp pp</div></div>
|
||||
</div>
|
||||
|
||||
<!-- calculating max-content widths -->
|
||||
<div class='infinite container'>
|
||||
<div><div class="control">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="raw-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="calc-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="no-percent">p p</div></div>
|
||||
</div>
|
|
@ -0,0 +1,71 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Reference</title>
|
||||
|
||||
<style>
|
||||
/* establish context */
|
||||
.container {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
color: blue;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
.zero {
|
||||
width: 0;
|
||||
}
|
||||
.infinite {
|
||||
width: 400px; /* close enough */
|
||||
}
|
||||
|
||||
/* visualize size contribution */
|
||||
.container > div {
|
||||
float: left; /* shrinkwrap */
|
||||
border: solid orange 20px;
|
||||
border-style: none solid;
|
||||
}
|
||||
.container > div > div {
|
||||
border-right: solid 20px aqua;
|
||||
}
|
||||
|
||||
/* controls for width, max-width */
|
||||
/* content = 100% = 80px = 4ch + border */
|
||||
/* choose sizes that are larger than content to see if how they take effect */
|
||||
.control {
|
||||
width: 60px;
|
||||
}
|
||||
.raw-percent,
|
||||
.calc-percent {
|
||||
width: 40px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.no-percent {
|
||||
width: 40px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- calculating min-content widths -->
|
||||
<div class='zero container'>
|
||||
<div><div class="control">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="raw-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="calc-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="no-percent">ppp pp</div></div>
|
||||
</div>
|
||||
|
||||
<!-- calculating max-content widths -->
|
||||
<div class='infinite container'>
|
||||
<div><div class="control">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="raw-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="calc-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="no-percent">p p</div></div>
|
||||
</div>
|
|
@ -0,0 +1,70 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Percentages of max-width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
|
||||
|
||||
<style>
|
||||
/* establish context */
|
||||
.container {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
color: blue;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
.zero {
|
||||
width: 0;
|
||||
}
|
||||
.infinite {
|
||||
width: 400px; /* close enough */
|
||||
}
|
||||
|
||||
/* visualize size contribution */
|
||||
.container > div {
|
||||
float: left; /* shrinkwrap */
|
||||
border: solid orange 20px;
|
||||
border-style: none solid;
|
||||
}
|
||||
.container > div > div {
|
||||
border-right: solid 20px aqua;
|
||||
}
|
||||
|
||||
/* test max-width */
|
||||
/* content = 100% = 80px = 4ch + border */
|
||||
/* choose sizes that are smaller than content to see if how they take effect */
|
||||
.raw-percent {
|
||||
max-width: 50%;
|
||||
}
|
||||
.calc-percent {
|
||||
max-width: calc(40px + 0%);
|
||||
}
|
||||
.no-percent {
|
||||
max-width: 40px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- calculating min-content widths -->
|
||||
<div class='zero container'>
|
||||
<div><div class="control">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="raw-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="calc-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="no-percent">ppp pp</div></div>
|
||||
</div>
|
||||
|
||||
<!-- calculating max-content widths -->
|
||||
<div class='infinite container'>
|
||||
<div><div class="control">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="raw-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="calc-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="no-percent">p p</div></div>
|
||||
</div>
|
|
@ -0,0 +1,71 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Percentages of width on non-replaced blocks are ignored for intrinsic sizing and resolved afterwards</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-contribution">
|
||||
<link rel="match" href="intrinsic-percent-non-replaced-002-ref.html">
|
||||
|
||||
<style>
|
||||
/* establish context */
|
||||
.container {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
color: blue;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
.zero {
|
||||
width: 0;
|
||||
}
|
||||
.infinite {
|
||||
width: 400px; /* close enough */
|
||||
}
|
||||
|
||||
/* visualize size contribution */
|
||||
.container > div {
|
||||
float: left;
|
||||
border: solid orange 20px;
|
||||
border-style: none solid;
|
||||
}
|
||||
.container > div > div {
|
||||
border-right: solid 20px aqua;
|
||||
}
|
||||
|
||||
/* test width */
|
||||
/* content = 100% = 80px = 4ch + border */
|
||||
/* choose sizes that are different than content to see if how they take effect */
|
||||
.raw-percent {
|
||||
width: 50%;
|
||||
}
|
||||
.calc-percent {
|
||||
width: calc(40px + 0%);
|
||||
}
|
||||
.no-percent {
|
||||
width: 40px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<!-- calculating min-content widths -->
|
||||
<div class='zero container'>
|
||||
<div><div class="control">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="raw-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="calc-percent">ppp pp</div></div>
|
||||
</div>
|
||||
<div class='zero container'>
|
||||
<div><div class="no-percent">ppp pp</div></div>
|
||||
</div>
|
||||
|
||||
<!-- calculating max-content widths -->
|
||||
<div class='infinite container'>
|
||||
<div><div class="control">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="raw-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="calc-percent">p p</div></div>
|
||||
</div>
|
||||
<div class='infinite container'>
|
||||
<div><div class="no-percent">p p</div></div>
|
||||
</div>
|
|
@ -0,0 +1,51 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'block-size' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('block-size', [
|
||||
{ syntax: 'auto' },
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
{
|
||||
syntax: '<length>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
]);
|
||||
|
||||
runPropertyTests('min-block-size', [
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
{
|
||||
syntax: '<length>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
]);
|
||||
|
||||
runPropertyTests('max-block-size', [
|
||||
{ syntax: 'none' },
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
{
|
||||
syntax: '<length>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,23 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-family' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
// FIXME: font-family is list-valued. Run list-valued tests here too.
|
||||
runUnsupportedPropertyTests('font-family', [
|
||||
'Georgia',
|
||||
'"Gill Sans"',
|
||||
'sans-serif',
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,24 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-language-override' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-language-override', [
|
||||
{ syntax: 'normal' },
|
||||
]);
|
||||
|
||||
runUnsupportedPropertyTests('font-language-override', [
|
||||
'"SRB"',
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,21 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-optical-sizing' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-optical-sizing', [
|
||||
{ syntax: 'auto' },
|
||||
{ syntax: 'none' },
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-palette' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-palette', [
|
||||
{ syntax: 'normal' },
|
||||
{ syntax: 'light' },
|
||||
{ syntax: 'dark' },
|
||||
]);
|
||||
|
||||
runUnsupportedPropertyTests('font-palette', [
|
||||
'Augusta'
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,22 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-presentation' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-presentation', [
|
||||
{ syntax: 'auto' },
|
||||
{ syntax: 'text' },
|
||||
{ syntax: 'emoji' },
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,24 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-size-adjust' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-size-adjust', [
|
||||
{ syntax: 'none' },
|
||||
{
|
||||
syntax: '<number>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -13,53 +13,60 @@
|
|||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-size', [
|
||||
{
|
||||
syntax: 'xx-small',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'x-small',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'small',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'medium',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'large',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'x-large',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'xx-large',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'larger',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'smaller',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: '<length>',
|
||||
specified: assert_is_equal_with_range_handling,
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling,
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
]);
|
||||
for (const property of ['font-size', 'font-min-size', 'font-max-size']) {
|
||||
// font-max-size also supports 'infinity' keyword
|
||||
const infinity = property === 'font-max-size' ?
|
||||
[{ syntax: 'infinity'}] : [];
|
||||
|
||||
runPropertyTests(property, [
|
||||
...infinity,
|
||||
{
|
||||
syntax: 'xx-small',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'x-small',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'small',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'medium',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'large',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'x-large',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'xx-large',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'larger',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: 'smaller',
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: '<length>',
|
||||
specified: assert_is_equal_with_range_handling,
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling,
|
||||
computed: (_, result) => assert_is_unit('px', result)
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-stretch' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-stretch', [
|
||||
{ syntax: 'normal' },
|
||||
{ syntax: 'ultra-condensed' },
|
||||
{ syntax: 'extra-condensed' },
|
||||
{ syntax: 'condensed' },
|
||||
{ syntax: 'semi-condensed' },
|
||||
{ syntax: 'semi-expanded' },
|
||||
{ syntax: 'expanded' },
|
||||
{ syntax: 'extra-expanded' },
|
||||
{ syntax: 'ultra-expanded' },
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,27 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-synthesis' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-synthesis', [
|
||||
{ syntax: 'none' },
|
||||
{ syntax: 'weight' },
|
||||
{ syntax: 'style' },
|
||||
{ syntax: 'small-caps' },
|
||||
]);
|
||||
|
||||
runUnsupportedPropertyTests('font-synthesis', [
|
||||
'weight style', 'style small-caps', 'small-caps weight style'
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,31 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-variant-alternates' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-variant-alternates', [
|
||||
{ syntax: 'normal' },
|
||||
{ syntax: 'historical-forms' },
|
||||
]);
|
||||
|
||||
runUnsupportedPropertyTests('font-variant-alternates', [
|
||||
'stylistic(foo)',
|
||||
'styleset(foo)',
|
||||
'character-variant(foo)',
|
||||
'swash(foo)',
|
||||
'ornaments(foo)',
|
||||
'annotation(foo)',
|
||||
'swash(foo) annotation(foo2)',
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,22 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-variant-emoji' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-variant-emoji', [
|
||||
{ syntax: 'auto' },
|
||||
{ syntax: 'text' },
|
||||
{ syntax: 'emoji' },
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,21 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-variant' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runUnsupportedPropertyTests('font-variant', [
|
||||
'normal', 'no-common-ligatures proportional-nums',
|
||||
'common-ligatures tabular-nums', 'small-caps slashed-zero'
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,24 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font-variation-settings' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('font-variation-settings', [
|
||||
{ syntax: 'normal' },
|
||||
]);
|
||||
|
||||
runUnsupportedPropertyTests('font-variation-settings', [
|
||||
'"XHGT" 0.7',
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,24 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'font' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runUnsupportedPropertyTests('font', [
|
||||
'1.2em "Fira Sans", sans-serif',
|
||||
'italic 1.2em "Fira Sans", serif',
|
||||
'italic small-caps bold 16px/2 cursive',
|
||||
'small-caps bold 24px/1 sans-serif',
|
||||
'caption',
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -0,0 +1,30 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'*-gap' properties</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om/#dom-stylepropertymapreadonly-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om/#reify-stylevalue">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
for (const prefix of ['column', 'row']) {
|
||||
runPropertyTests(`${prefix}-gap`, [
|
||||
{ syntax: 'normal' },
|
||||
{
|
||||
syntax: '<length>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
]);
|
||||
}
|
||||
|
||||
</script>
|
|
@ -0,0 +1,51 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'inline-size' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('inline-size', [
|
||||
{ syntax: 'auto' },
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
{
|
||||
syntax: '<length>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
]);
|
||||
|
||||
runPropertyTests('min-inline-size', [
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
{
|
||||
syntax: '<length>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
]);
|
||||
|
||||
runPropertyTests('max-inline-size', [
|
||||
{ syntax: 'none' },
|
||||
{
|
||||
syntax: '<percentage>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
{
|
||||
syntax: '<length>',
|
||||
specified: assert_is_equal_with_range_handling
|
||||
},
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -31,6 +31,13 @@ function checkModification(e, funcName, args, expectedRes, before, after,
|
|||
}
|
||||
setClass(e, before);
|
||||
|
||||
var obs;
|
||||
// If we have MutationObservers available, do some checks to make
|
||||
// sure attribute sets are happening at sane times.
|
||||
if (self.MutationObserver) {
|
||||
obs = new MutationObserver(() => {});
|
||||
obs.observe(e, { attributes: true });
|
||||
}
|
||||
if (shouldThrow) {
|
||||
assert_throws(expectedException, function() {
|
||||
var list = e.classList;
|
||||
|
@ -40,6 +47,21 @@ function checkModification(e, funcName, args, expectedRes, before, after,
|
|||
var list = e.classList;
|
||||
var res = list[funcName].apply(list, args);
|
||||
}
|
||||
if (obs) {
|
||||
var mutationRecords = obs.takeRecords();
|
||||
obs.disconnect();
|
||||
if (shouldThrow) {
|
||||
assert_equals(mutationRecords.length, 0,
|
||||
"There should have been no mutation");
|
||||
} else if (funcName == "replace") {
|
||||
assert_equals(mutationRecords.length == 1,
|
||||
expectedRes,
|
||||
"Should have a mutation exactly when replace() returns true");
|
||||
} else {
|
||||
// For other functions, would need to check when exactly
|
||||
// mutations are supposed to happen.
|
||||
}
|
||||
}
|
||||
if (!shouldThrow) {
|
||||
assert_equals(res, expectedRes, "wrong return value");
|
||||
}
|
||||
|
|
|
@ -33,6 +33,8 @@ promise_test(function() {
|
|||
assert_equals(typeof capabilities.groupId, "string", "groupId must be a string.");
|
||||
if (mediainfo.kind == "audioinput") {
|
||||
assert_equals(typeof capabilities.echoCancellation, "object", "echoCancellation must be an object.");
|
||||
assert_equals(typeof capabilities.autoGainControl, "object", "autoGainControl must be an object.");
|
||||
assert_equals(typeof capabilities.noiseSuppression, "object", "noiseSuppression must be an object.");
|
||||
}
|
||||
if (mediainfo.kind == "videoinput") {
|
||||
assert_equals(typeof capabilities.facingMode, "object", "facingMode must be an object.");
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
var videoCapabilities = stream.getVideoTracks()[0].getCapabilities();
|
||||
assert_true(undefined !== audioCapabilities.deviceId, "MediaTrackCapabilities's deviceId should exist for an audio track.");
|
||||
assert_true(undefined !== audioCapabilities.echoCancellation, "MediaTrackCapabilities's echoCancellation should exist for an audio track.");
|
||||
assert_true(undefined !== audioCapabilities.autoGainControl, "MediaTrackCapabilities's autoGainControl should exist for an audio track.");
|
||||
assert_true(undefined !== audioCapabilities.noiseSuppression, "MediaTrackCapabilities's noiseSuppression should exist for an audio track.");
|
||||
assert_true(undefined !== videoCapabilities.deviceId, "MediaTrackCapabilities's deviceId should exist for a video track.");
|
||||
});
|
||||
});
|
||||
|
|
|
@ -11,17 +11,19 @@ Install the following dependencies:
|
|||
- [the Mozilla Firefox web browser](https://mozilla.org/firefox)
|
||||
- [the GeckoDriver server](https://github.com/mozilla/geckodriver)
|
||||
|
||||
Once these dependencies are satisfied, the tests may be run from a command line
|
||||
by executing the following command from this directory:
|
||||
Make sure `geckodriver` can be found in your `PATH`.
|
||||
|
||||
tox
|
||||
|
||||
Currently, the tests should be run with Firefox Nightly.
|
||||
|
||||
In order to specify the path to Firefox Nightly, use the following command-line option:
|
||||
Currently, the tests should be run with the latest *Firefox Nightly*. In order to
|
||||
specify the path to Firefox Nightly, use the following command-line option:
|
||||
|
||||
tox -- --binary=/path/to/FirefoxNightly
|
||||
|
||||
### Automated Script
|
||||
|
||||
Alternatively, you may run `tools/ci/ci_resources_unittest.sh`, which only depends on
|
||||
Python 2. The script will install other dependencies automatically and start `tox` with
|
||||
the correct arguments.
|
||||
|
||||
## Authoring Tests
|
||||
|
||||
Test cases are expressed as `.html` files located within the `tests/`
|
||||
|
|
|
@ -8,7 +8,7 @@ import urlparse
|
|||
from abc import ABCMeta, abstractmethod
|
||||
|
||||
from ..testrunner import Stop
|
||||
from protocol import Protocol
|
||||
from protocol import Protocol, BaseProtocolPart
|
||||
|
||||
here = os.path.split(__file__)[0]
|
||||
|
||||
|
@ -411,7 +411,23 @@ class WdspecRun(object):
|
|||
self.result_flag.set()
|
||||
|
||||
|
||||
class ConnectionlessBaseProtocolPart(BaseProtocolPart):
|
||||
def execute_script(self, script, async=False):
|
||||
pass
|
||||
|
||||
def set_timeout(self, timeout):
|
||||
pass
|
||||
|
||||
def wait(self):
|
||||
pass
|
||||
|
||||
def set_window(self, handle):
|
||||
pass
|
||||
|
||||
|
||||
class ConnectionlessProtocol(Protocol):
|
||||
implements = [ConnectionlessBaseProtocolPart]
|
||||
|
||||
def connect(self):
|
||||
pass
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue