Update web-platform-tests to revision b'49287d0e660dd6704c508ef20c9d53c13aee296b'

This commit is contained in:
WPT Sync Bot 2023-03-01 01:39:54 +00:00
parent 94c4e1cd1a
commit d2eeed132b
76 changed files with 7672 additions and 5893 deletions

View file

@ -0,0 +1,4 @@
[url-charset.window.html]
expected: TIMEOUT
[Blob charset should override any auto-detected charset.]
expected: TIMEOUT

View file

@ -9,6 +9,13 @@
null,
{}
]
],
"Blob-stream-sync-xhr-crash.html": [
"fe54fb615b1579a8a75396184f24f0b4ed3d2984",
[
null,
{}
]
]
}
},
@ -1809,6 +1816,15 @@
]
]
},
"css-font-loading": {
"fontfaceset-loading-worker-crash.html": [
"552722b6edd15818389bc82e09ff424053f85524",
[
null,
{}
]
]
},
"css-fonts": {
"font-face-local-css-wide-keyword-crash.html": [
"3ece8c7c48c2b4ab7c17d32275f70a2c10220b8e",
@ -3021,6 +3037,13 @@
{}
]
],
"first-line-inherited-transition-crash.html": [
"223a0060ebf9a5f9a564c7ccaef0aa09be663878",
[
null,
{}
]
],
"highlight-painting-soft-hyphens-002-crash.html": [
"eb80d4890991f1b3d92b6c6e0b580bd7408016a5",
[
@ -3512,6 +3535,13 @@
null,
{}
]
],
"text-wrap-balance-narrow-crash.html": [
"dcc0d8773df6c7bcaf04b606955774d2b6e8563c",
[
null,
{}
]
]
},
"whitespace-followed-by-cham-symbol-crash.html": [
@ -29206,6 +29236,45 @@
],
{}
]
],
"zero-size-001-print.tentative.html": [
"98f77a7b8635a688ac6641e1d0bc58290f20f1cc",
[
null,
[
[
"/css/printing/zero-size-print-ref.html",
"=="
]
],
{}
]
],
"zero-size-002-print.tentative.html": [
"e243c34e7c01ee2d7de0018582829690c0e4f05e",
[
null,
[
[
"/css/printing/zero-size-print-ref.html",
"=="
]
],
{}
]
],
"zero-size-003-print.tentative.html": [
"c514f72360f63bff53e1e249155ac5b321f64b3e",
[
null,
[
[
"/css/printing/zero-size-print-ref.html",
"=="
]
],
{}
]
]
}
},
@ -297194,6 +297263,19 @@
{}
]
],
"case-insensitive-parent.html": [
"a684bbb97c870b587b73e616ca1bfa4fa423f4ff",
[
null,
[
[
"/css/selectors/case-insensitive-parent-ref.html",
"=="
]
],
{}
]
],
"child-indexed-no-parent.html": [
"c77564bf554c0c9ebaa00b784afb7787abb2db62",
[
@ -372721,6 +372803,12 @@
"79f63ced683e6342866d734b04f3c687f6dd942f",
[]
]
},
"support": {
"fontfaceset-loading-worker.js": [
"73579756614c2e5b191c9264a32701f57aade84b",
[]
]
}
},
"css-fonts": {
@ -401871,6 +401959,10 @@
"transition-in-media-print-ref.html": [
"2f25c06131e9372512e23ab9ff8428c594f74391",
[]
],
"zero-size-print-ref.html": [
"569af797ed98a9166481b17d71698f8ae85447e8",
[]
]
},
"reference": {
@ -401982,6 +402074,10 @@
}
}
},
"case-insensitive-parent-ref.html": [
"0138b79972c3e1c2689df30ec72150e5993269f4",
[]
],
"child-indexed-no-parent-ref.html": [
"069c86cf080264e2cead8ab783aac028a84a2f7b",
[]
@ -426810,6 +426906,20 @@
]
}
},
"long-animation-frame": {
"META.yml": [
"769c325aeecff6db8e378ff7256b88c679cbc008",
[]
],
"tentative": {
"resources": {
"utils.js": [
"47c138b1e62ebfbe9287e903e4e7be438674dc34",
[]
]
}
}
},
"longtask-timing": {
"META.yml": [
"91c07f9fd3f3097367f2ad87a2ebb0d98b11d4e2",
@ -432897,7 +433007,7 @@
[]
],
"mock-direct-sockets.js": [
"e2e02453f7f4d446c528051fc44974878150b809",
"6d557f7a01530664d619c1568f1482bfd121e4b7",
[]
],
"mock-facedetection.js": [
@ -437428,7 +437538,7 @@
[]
],
"helpers.js": [
"5728d0690d778b666ff661362855b8ca23b73f67",
"d2ded9a946cd1044d72135ea4f5c1067a3bb414e",
[]
],
"resources": {
@ -437437,7 +437547,7 @@
[]
],
"embedded_responder.js": [
"84358bcdfc226172ece14c4eff6cd2c77e0b833c",
"fe33f3125fab7f65967101bcca02fd9ce54cdb45",
[]
],
"hasStorageAccess-iframe.html": [
@ -451932,7 +452042,7 @@
[]
],
"average_pool2d.json": [
"5523137be00388d75f335f08beb483a83da9621c",
"badcfc888d8ae278407c05f668222f10b7d8cb53",
[]
],
"batch_normalization.json": [
@ -451952,11 +452062,11 @@
[]
],
"conv2d.json": [
"ca7dc74aa7968f1d03788fe3a9fd7e7931ecb66d",
"850897df4e107c616ec3442563d4a73f642586a9",
[]
],
"conv_transpose2d.json": [
"311a7d9c78aaca3e1f9be2fdda045bee897ba12e",
"c7026f91ee5011747d1ba058e07ebc4a54a45a60",
[]
],
"cos.json": [
@ -451976,7 +452086,7 @@
[]
],
"gemm.json": [
"1323dcbdd8dfce6138d7fbf8034b2b1f1c653951",
"3738e19f7c641020309de975b4474fd652fbcb35",
[]
],
"leaky_relu.json": [
@ -451988,7 +452098,7 @@
[]
],
"matmul.json": [
"a4ca8d026403c738be6ab6ccb9df5df8ba4becc8",
"6e0423a68d3e3a9c07ea3cd7a7bd83973ae34e46",
[]
],
"max.json": [
@ -452056,7 +452166,7 @@
[]
],
"softmax.json": [
"b19ce4059121bff35d5b3c3f1e67fce787384e90",
"52ea57c7632d0d27b1745ddd4e983c37becf9832",
[]
],
"split.json": [
@ -512929,6 +513039,20 @@
{}
]
],
"text-wrap-balance-001.html": [
"3360681d0fc771e30730479fdf3262f4565dcd32",
[
null,
{}
]
],
"text-wrap-white-space-001.html": [
"0600b8249e5c17e3feee30eebe854043c60ccb49",
[
null,
{}
]
],
"trailing-space-before-br-001.html": [
"fcc2bdfa43633783151aaa8c0f65458d13e764f1",
[
@ -518312,7 +518436,7 @@
]
],
"signs-abs-computed.html": [
"74dff7c9c0c157a06db97868cac7abf3b1804d45",
"774ca34cb74e384f9dcae455a6e557ecc5deab5d",
[
null,
{}
@ -518326,7 +518450,7 @@
]
],
"signs-abs-serialize.html": [
"28d04b9695de213b7258c68e5ef1ca0aabbc0026",
"ea3d0cb433bb9ae631d67dcd3b6b96d494baab6c",
[
null,
{}
@ -620003,6 +620127,61 @@
]
]
},
"long-animation-frame": {
"tentative": {
"loaf-basic.html": [
"d289f0dd3427af4d29923d091c332113768b3b1c",
[
null,
{
"timeout": "long"
}
]
],
"loaf-buffered.html": [
"c7ede8418f3d146de1412f52906e6668e762593a",
[
null,
{
"timeout": "long"
}
]
],
"loaf-iframe-popup.html": [
"9cdb2c334108743124fcc8306a955277735b9745",
[
null,
{}
]
],
"loaf-timeline.html": [
"c434a26ef8d18aa84836dbef56f737df425beb57",
[
null,
{
"timeout": "long"
}
]
],
"loaf-toJSON.html": [
"f78e95da6d11e25d355d71d26bbc56bf2c967b1f",
[
null,
{}
]
],
"loaf-visibility.html": [
"97038e30738d36114fcac0a88fec7a5365509a3b",
[
null,
{
"testdriver": true,
"timeout": "long"
}
]
]
}
},
"longtask-timing": {
"buffered-flag.window.js": [
"a0ba728ed2b791b70a9a7dbd93f953676bc3debf",
@ -660593,7 +660772,7 @@
]
],
"requestStorageAccess-cross-origin-iframe-navigation.sub.https.window.js": [
"0efbb2f06b3b75f2d9941797972018691de94d02",
"67906708aed7676accb91efe2e2cad926c0d4706",
[
"storage-access-api/requestStorageAccess-cross-origin-iframe-navigation.sub.https.window.html",
{

View file

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

View file

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

View file

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

View file

@ -1,3 +0,0 @@
[block-in-inline-hittest-float-002.html]
[block-in-inline-hittest-float-002]
expected: FAIL

View file

@ -1,3 +1,6 @@
[block-in-inline-hittest-relpos-zindex.html]
[position: relative; z-index: -1;]
expected: FAIL
[block-in-inline-hittest-relpos-zindex]
expected: FAIL

View file

@ -1,3 +0,0 @@
[hittest-before-pseudo.html]
[Hit-testing text within a pseudo-element flex-item should return the flexbox as the hittest result.]
expected: FAIL

View file

@ -0,0 +1,15 @@
[text-wrap-white-space-001.html]
[`text-wrap: balance` should be set]
expected: FAIL
[`text-wrap` should not be affected by previous `white-space`]
expected: FAIL
[`white-space` should overwrite previous `text-wrap`]
expected: FAIL
[`text-wrap` should not be affected by `white-space` on the parent]
expected: FAIL
[`white-space` should overwrite `text-wrap` on the parent]
expected: FAIL

View file

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

View file

@ -326,165 +326,3 @@
[margin-right length(mm) / values]
expected: [FAIL, PASS]
[top length(px) / values]
expected: FAIL
[right length(px) / values]
expected: FAIL
[bottom length(px) / values]
expected: FAIL
[left length(px) / 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

@ -424,3 +424,273 @@
[abs(-1turn) should be used-value-equivalent to 1turn]
expected: FAIL
[calc(calc(sign(-0))) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(calc(sign(-0)))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(calc(sign(0))) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(calc(sign(0)))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0px)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0px))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0cm)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0cm))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0mm)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0mm))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0Q)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0Q))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0in)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0in))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0pc)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0pc))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0pt)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0pt))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0em)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0em))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0ex)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0ex))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0ch)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0ch))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0rem)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0rem))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0vh)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0vh))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0vw)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0vw))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0vmin)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0vmin))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0vmax)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0vmax))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(-0px)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0px))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0cm)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0cm))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0mm)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0mm))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0Q)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0Q))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0in)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0in))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0pc)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0pc))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0pt)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0pt))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0em)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0em))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0ex)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0ex))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0ch)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0ch))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0rem)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0rem))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0vh)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0vh))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0vw)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0vw))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0vmin)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0vmin))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0vmax)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0vmax))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(0s)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0s))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0ms)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0ms))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(-0s)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0s))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0ms)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0ms))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(0deg)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0deg))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0grad)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0grad))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0rad)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0rad))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(0turn)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(0turn))), 1) should be used-value-equivalent to 1]
expected: FAIL
[calc(sign(-0deg)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0deg))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0grad)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0grad))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0rad)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0rad))), 1) should be used-value-equivalent to -1]
expected: FAIL
[calc(sign(-0turn)) should be used-value-equivalent to 0]
expected: FAIL
[clamp(-1, calc( 1 / sign(sign(-0turn))), 1) should be used-value-equivalent to -1]
expected: FAIL
[sign(10px - 1em) should be used-value-equivalent to 0; fontSize=10px]
expected: FAIL
[sign(10px - 2em) should be used-value-equivalent to -1; fontSize=10px]
expected: FAIL

View file

@ -154,3 +154,9 @@
['scale(calc(sign(-1 * infinity)))' as a computed value should serialize as 'matrix(-1, 0, 0, -1, 0, 0)'.]
expected: FAIL
['scale(calc(sign(-1 * NaN)))' as a specified value should serialize as 'scale(calc(NaN))'.]
expected: FAIL
['scale(calc(sign(1 * NaN)))' as a specified value should serialize as 'scale(calc(NaN))'.]
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-float-in-relative.html]
[elementFromPoint-float-in-relative]
expected: FAIL

View file

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

View file

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

View file

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

View file

@ -1,3 +1,4 @@
[005.html]
expected: TIMEOUT
[Link with onclick navigation and href navigation ]
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

@ -1,10 +1,6 @@
[javascript-url-referrer.window.html]
expected: TIMEOUT
[unsafe-url referrer policy used to create the starting page]
expected: FAIL
[origin referrer policy used to create the starting page]
expected: FAIL
[no-referrer referrer policy used to create the starting page]
expected: TIMEOUT

View file

@ -1,3 +1,6 @@
[navigate-to-unparseable-url.html]
[location.href setter throws a SyntaxError DOMException for unparseable URLs]
expected: FAIL
[<a> tag navigate fails for unparseable URLs]
expected: FAIL

View file

@ -0,0 +1,3 @@
[navigation-unload-same-origin.window.html]
[Same-origin navigation started from unload handler must be ignored]
expected: FAIL

View file

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

View file

@ -0,0 +1,3 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

@ -0,0 +1,3 @@
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

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

View file

@ -1,2 +1,2 @@
[canvas.2d.disconnected.html]
expected: TIMEOUT
expected: FAIL

View file

@ -1,15 +1,19 @@
[supported-elements.html]
expected: TIMEOUT
[Contenteditable element should support autofocus]
expected: FAIL
[Element with tabindex should support autofocus]
expected: FAIL
expected: TIMEOUT
[Host element with delegatesFocus including no focusable descendants should be skipped]
expected: FAIL
expected: NOTRUN
[Area element should support autofocus]
expected: FAIL
expected: NOTRUN
[Host element with delegatesFocus should support autofocus]
expected: FAIL
expected: NOTRUN
[Non-HTMLElement should not support autofocus]
expected: NOTRUN

View file

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

View file

@ -1,4 +1,3 @@
[iframe_sandbox_popups_escaping-2.html]
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_escaping-3.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
expected: FAIL

View file

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

View file

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

View file

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

View file

@ -170,9 +170,6 @@
[multipart/form-data: 0x00 in value (normal form)]
expected: FAIL
[multipart/form-data: Basic test (formdata event)]
expected: FAIL
[multipart/form-data: single quote in value (formdata event)]
expected: FAIL

View file

@ -172,9 +172,3 @@
[text/plain: Basic test (formdata event)]
expected: FAIL
[text/plain: 0x00 in name (formdata event)]
expected: FAIL
[text/plain: Basic File test (formdata event)]
expected: FAIL

View file

@ -8,9 +8,6 @@
[application/x-www-form-urlencoded: Basic File test (formdata event)]
expected: FAIL
[application/x-www-form-urlencoded: 0x00 in name (normal form)]
expected: FAIL
[application/x-www-form-urlencoded: 0x00 in value (formdata event)]
expected: FAIL
@ -80,9 +77,6 @@
[application/x-www-form-urlencoded: \\r\\n in filename (normal form)]
expected: FAIL
[application/x-www-form-urlencoded: \\r\\n in filename (formdata event)]
expected: FAIL
[application/x-www-form-urlencoded: \\n\\r in filename (normal form)]
expected: FAIL

View file

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

View file

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

View file

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

View file

@ -1,6 +0,0 @@
[task_queue_throttling.any.html]
[Throttling the performance timeline task queue.]
expected: FAIL
[task_queue_throttling.any.worker.html]

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<script>
const blob = new Blob([1, 2]);
const readable = blob.stream()
const writable = new WritableStream({}, {
size() {
let xhr = new XMLHttpRequest()
xhr.open("POST", "1", false)
xhr.send()
}
})
readable.pipeThrough({ readable, writable })
</script>

View file

@ -0,0 +1,7 @@
<!doctype html>
<script>
document.addEventListener("DOMContentLoaded", function() {
let a = new SharedWorker("support/fontfaceset-loading-worker.js")
a.port.postMessage([], [])
})
</script>

View file

@ -0,0 +1,8 @@
onconnect = async function(e) {
e.ports[0].onmessage = async () => {
let a = new FontFace("family_name_0", "url(/fonts/Ahem.ttf?fontfaceset-loading-worker)")
self.close()
await a.load()
let _ = new File([a])
}
}

View file

@ -0,0 +1,8 @@
<!DOCTYPE html>
<title>CSS Pseudo-Element Test: Color transition from inherited ::first-line style should not crash</title>
<link rel="help" href="https://crbug.com/1416821">
<style>
div::first-line { color: red }
span { transition: color 100s; }
</style>
<div><span>First line</span></div>

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<link rel="help" href="https://w3c.github.io/csswg-drafts/css-text-4/#text-wrap">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
#container {
width: 20ch;
}
.balance {
text-wrap: balance;
}
</style>
<div id="container"></div>
<script>
const container = document.getElementById('container');
for (const text of [
'Balancing should',
'Balancing should not change',
'Balancing should not change the number of lines.',
]) {
const normal = document.createElement('div');
const balance = document.createElement('div');
normal.textContent = text;
balance.textContent = text;
balance.classList.add('balance');
container.appendChild(normal);
container.appendChild(balance);
test(() => {
assert_equals(normal.offsetHeight, balance.offsetHeight);
});
}
</script>

View file

@ -0,0 +1,2 @@
<!DOCTYPE html>
<div style="width: 1px; text-wrap: balance">A</div>

View file

@ -0,0 +1,70 @@
<!DOCTYPE html>
<link rel="help" href="https://w3c.github.io/csswg-drafts/css-text-4/#propdef-white-space">
<link rel="help" href="https://w3c.github.io/csswg-drafts/css-text-4/#propdef-text-wrap">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.balance {
text-wrap: balance;
}
</style>
<div id="balance" class="balance"></div>
<script>
test(() => {
const target = document.getElementById('balance');
assert_equals(getComputedStyle(target).textWrap, 'balance');
}, "`text-wrap: balance` should be set");
</script>
<style>
#text-wrap-after-white-space {
white-space: normal;
text-wrap: balance;
}
</style>
<div id="text-wrap-after-white-space"></div>
<script>
test(() => {
const target = document.getElementById('text-wrap-after-white-space');
assert_equals(getComputedStyle(target).textWrap, 'balance');
}, "`text-wrap` should not be affected by previous `white-space`");
</script>
<style>
#white-space-after-text-wrap {
text-wrap: balance;
white-space: normal;
}
</style>
<div id="white-space-after-text-wrap"></div>
<script>
test(() => {
const target = document.getElementById('white-space-after-text-wrap');
assert_equals(getComputedStyle(target).textWrap, 'wrap');
}, "`white-space` should overwrite previous `text-wrap`");
</script>
<style>
.normal {
white-space: normal;
}
</style>
<div class="normal">
<div id="parent-white-space" class="balance"></div>
</div>
<script>
test(() => {
const target = document.getElementById('parent-white-space');
assert_equals(getComputedStyle(target).textWrap, 'balance');
}, "`text-wrap` should not be affected by `white-space` on the parent");
</script>
<div class="balance">
<div id="parent-text-wrap" class="normal"></div>
</div>
<script>
test(() => {
const target = document.getElementById('parent-text-wrap');
assert_equals(getComputedStyle(target).textWrap, 'wrap');
}, "`white-space` should overwrite `text-wrap` on the parent");
</script>

View file

@ -6,8 +6,20 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="../support/numeric-testcommon.js"></script>
<div id="target"></div>
<div id="container" style="font-size: 20px">
<div id="target"></div>
</div>
<script>
function test_zero(expression, { is_negative }) {
test_math_used(`calc(${expression})`, '0', {type:'integer'});
// to test zero sign, make it to negative infinity and clamp it between -1 and 1
test_math_used(`clamp(-1, calc( 1 / sign(${expression})), 1)`, (is_negative)? '-1' : '1', {type:'integer'});
}
function test_length_equals(value, expected, msgExtra) {
test_math_used(value, expected, {msgExtra, type: 'integer'});
}
// Identity tests
test_math_used('abs(1)', '1', {type:'integer'});
test_math_used('sign(1)', '1', {type:'integer'});
@ -29,8 +41,8 @@ test_math_used('calc(sign(0.1 - 0.2) - 0.05)', '-1.05', {type:'number', approx:0
test_math_used('calc(sign(1) + sign(1) - 0.05)', '1.95', {type:'number', approx:0.1});
// Test sign for zero
test_math_used('calc(sign(-0))', '-0', {type:'integer'});
test_math_used('calc(sign(0))', '0', {type:'integer'});
test_zero('calc(sign(-0))', {is_negative: true});
test_zero('calc(sign(0))', {is_negative: false});
//Type checking sign
test_math_used('sign(1px)', '1', {type:'integer'});
@ -75,48 +87,48 @@ test_math_used('sign(-1deg)', '-1', {type:'integer'});
test_math_used('sign(-1grad)', '-1', {type:'integer'});
test_math_used('sign(-1rad)', '-1', {type:'integer'});
test_math_used('sign(-1turn)', '-1', {type:'integer'});
test_math_used('sign(0px)', '0', {type:'integer'});
test_math_used('sign(0cm)', '0', {type:'integer'});
test_math_used('sign(0mm)', '0', {type:'integer'});
test_math_used('sign(0Q)', '0', {type:'integer'});
test_math_used('sign(0in)', '0', {type:'integer'});
test_math_used('sign(0pc)', '0', {type:'integer'});
test_math_used('sign(0pt)', '0', {type:'integer'});
test_math_used('sign(0em)', '0', {type:'integer'});
test_math_used('sign(0ex)', '0', {type:'integer'});
test_math_used('sign(0ch)', '0', {type:'integer'});
test_math_used('sign(0rem)', '0', {type:'integer'});
test_math_used('sign(0vh)', '0', {type:'integer'});
test_math_used('sign(0vw)', '0', {type:'integer'});
test_math_used('sign(0vmin)', '0', {type:'integer'});
test_math_used('sign(0vmax)', '0', {type:'integer'});
test_math_used('sign(-0px)', '-0', {type:'integer'});
test_math_used('sign(-0cm)', '-0', {type:'integer'});
test_math_used('sign(-0mm)', '-0', {type:'integer'});
test_math_used('sign(-0Q)', '-0', {type:'integer'});
test_math_used('sign(-0in)', '-0', {type:'integer'});
test_math_used('sign(-0pc)', '-0', {type:'integer'});
test_math_used('sign(-0pt)', '-0', {type:'integer'});
test_math_used('sign(-0em)', '-0', {type:'integer'});
test_math_used('sign(-0ex)', '-0', {type:'integer'});
test_math_used('sign(-0ch)', '-0', {type:'integer'});
test_math_used('sign(-0rem)', '-0', {type:'integer'});
test_math_used('sign(-0vh)', '-0', {type:'integer'});
test_math_used('sign(-0vw)', '-0', {type:'integer'});
test_math_used('sign(-0vmin)', '-0', {type:'integer'});
test_math_used('sign(-0vmax)', '-0', {type:'integer'});
test_math_used('sign(0s)', '0', {type:'integer'});
test_math_used('sign(0ms)', '0', {type:'integer'});
test_math_used('sign(-0s)', '0', {type:'integer'});
test_math_used('sign(-0ms)', '0', {type:'integer'});
test_math_used('sign(0deg)', '0', {type:'integer'});
test_math_used('sign(0grad)', '0', {type:'integer'});
test_math_used('sign(0rad)', '0', {type:'integer'});
test_math_used('sign(0turn)', '0', {type:'integer'});
test_math_used('sign(-0deg)', '-0', {type:'integer'});
test_math_used('sign(-0grad)', '-0', {type:'integer'});
test_math_used('sign(-0rad)', '-0', {type:'integer'});
test_math_used('sign(-0turn)', '-0', {type:'integer'});
test_zero('sign(0px)', {is_negative: false});
test_zero('sign(0cm)', {is_negative: false});
test_zero('sign(0mm)', {is_negative: false});
test_zero('sign(0Q)', {is_negative: false});
test_zero('sign(0in)', {is_negative: false});
test_zero('sign(0pc)', {is_negative: false});
test_zero('sign(0pt)', {is_negative: false});
test_zero('sign(0em)', {is_negative: false});
test_zero('sign(0ex)', {is_negative: false});
test_zero('sign(0ch)', {is_negative: false});
test_zero('sign(0rem)', {is_negative: false});
test_zero('sign(0vh)', {is_negative: false});
test_zero('sign(0vw)', {is_negative: false});
test_zero('sign(0vmin)', {is_negative: false});
test_zero('sign(0vmax)', {is_negative: false});
test_zero('sign(-0px)', {is_negative: true});
test_zero('sign(-0cm)', {is_negative: true});
test_zero('sign(-0mm)', {is_negative: true});
test_zero('sign(-0Q)', {is_negative: true});
test_zero('sign(-0in)', {is_negative: true});
test_zero('sign(-0pc)', {is_negative: true});
test_zero('sign(-0pt)', {is_negative: true});
test_zero('sign(-0em)', {is_negative: true});
test_zero('sign(-0ex)', {is_negative: true});
test_zero('sign(-0ch)', {is_negative: true});
test_zero('sign(-0rem)', {is_negative: true});
test_zero('sign(-0vh)', {is_negative: true});
test_zero('sign(-0vw)', {is_negative: true});
test_zero('sign(-0vmin)', {is_negative: true});
test_zero('sign(-0vmax)', {is_negative: true});
test_zero('sign(0s)', {is_negative: false});
test_zero('sign(0ms)', {is_negative: false});
test_zero('sign(-0s)', {is_negative: true});
test_zero('sign(-0ms)', {is_negative: true});
test_zero('sign(0deg)', {is_negative: false});
test_zero('sign(0grad)', {is_negative: false});
test_zero('sign(0rad)', {is_negative: false});
test_zero('sign(0turn)', {is_negative: false});
test_zero('sign(-0deg)', {is_negative: true});
test_zero('sign(-0grad)', {is_negative: true});
test_zero('sign(-0rad)', {is_negative: true});
test_zero('sign(-0turn)', {is_negative: true});
//Type checking abs
test_math_used('abs(1px)', '1px');
@ -161,4 +173,12 @@ test_math_used('abs(-1deg)', '1deg', {type:'angle', approx:0.001});
test_math_used('abs(-1grad)', '1grad', {type:'angle', approx:0.001});
test_math_used('abs(-1rad)', '1rad', {type:'angle', approx:0.001});
test_math_used('abs(-1turn)', '1turn', {type:'angle', approx:0.001});
// with relative length
document.getElementById('container').style.fontSize = '10px';
test_length_equals('sign(10px - 1em)', '0', 'fontSize=10px');
test_length_equals('sign(10px - 2em)', '-1', 'fontSize=10px');
document.getElementById('container').style.fontSize = '20px';
</script>

View file

@ -9,10 +9,7 @@
<div id=target></div>
<script>
function test_serialization(t,s,c) {
test_specified_serialization('opacity', t, s);
test_specified_serialization('transform', `scale(${t})`, `scale(calc(${c}))`);
test_computed_serialization('opacity', t, c);
test_computed_serialization('transform', `scale(${t})`, `matrix(${c}, 0, 0, ${c}, 0, 0)`);
}
test_serialization(
@ -77,4 +74,14 @@ test_serialization(
'calc(sign(-1 * infinity))',
'calc(-1)',
'-1');
test_serialization(
'calc(sign(-1 * NaN))',
'calc(NaN)',
'NaN');
test_serialization(
'calc(sign(1 * NaN))',
'calc(NaN)',
'NaN');
</script>

View file

@ -0,0 +1,13 @@
<!doctype html>
<title>Printing with page width and height of zero</title>
<link rel="help" href="https://www.w3.org/TR/css-page-3/">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/8335">
<link rel="match" href="zero-size-print-ref.html">
<meta name="assert" content="The used page size is the initial value instead of the authored width and height of zero." />
<style>
html { box-sizing: border-box; height: 100%; border: 2px solid black; }
@page {
size: 0;
}
</style>
<h1>Chapter 1. Loomings</h1>

View file

@ -0,0 +1,13 @@
<!doctype html>
<title>Printing with page width of zero</title>
<link rel="help" href="https://www.w3.org/TR/css-page-3/">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/8335">
<link rel="match" href="zero-size-print-ref.html">
<meta name="assert" content="The used page size is the initial value instead of the authored width of zero and height of 4in." />
<style>
html { box-sizing: border-box; height: 100%; border: 2px solid black; }
@page {
size: 0 4in;
}
</style>
<h1>Chapter 1. Loomings</h1>

View file

@ -0,0 +1,13 @@
<!doctype html>
<title>Printing with page height of zero</title>
<link rel="help" href="https://www.w3.org/TR/css-page-3/">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/8335">
<link rel="match" href="zero-size-print-ref.html">
<meta name="assert" content="The used page size is the initial value instead of the authored width of 4in and height of zero." />
<style>
html { box-sizing: border-box; height: 100%; border: 2px solid black; }
@page {
size: 4in 0;
}
</style>
<h1>Chapter 1. Loomings</h1>

View file

@ -0,0 +1,6 @@
<!doctype html>
<title>Printing with default page size</title>
<style>
html { box-sizing: border-box; height: 100%; border: 2px solid black; }
</style>
<h1>Chapter 1. Loomings</h1>

View file

@ -0,0 +1,13 @@
<!DOCTYPE html>
<html>
<head>
<title>Case-insensitive parent selector matching</title>
</head>
<body>
<svg width="500" height="100" xmlns="http://www.w3.org/2000/svg">
<foreignObject width="500" height="100">
<span style="color: green">Test passes if the text is green.</span>
</foreignObject>
</svg>
</body>
</html>

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<title>Case-insensitive parent selector matching</title>
<link rel="help" href="https://crbug.com/1418575">
<link rel="author" title="Steinar H. Gunderson" href="mailto:sesse@chromium.org">
<link rel="match" href="case-insensitive-parent-ref.html">
<style>FoReIgNobject span { color: green; }</style>
</head>
<body>
<svg width="500" height="100" xmlns="http://www.w3.org/2000/svg">
<foreignObject width="500" height="100">
<span>Test passes if the text is green.</span>
</foreignObject>
</svg>
</body>
</html>

View file

@ -0,0 +1,2 @@
suggested_reviewers:
- noamr

View file

@ -0,0 +1,54 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Long Animation Frame Timing: basic</title>
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/utils.js"></script>
<body>
<h1>Long Animation Frame: basic</h1>
<div id="log"></div>
<script>
promise_test(async t => {
await expect_long_frame(() => busy_wait(), t);
}, 'A long busy wait is a long animation frame');
promise_test(async t => {
await expect_long_frame(() => requestAnimationFrame(busy_wait), t);
}, 'A long busy wait in a requestAnimationFrame is a long animation frame');
promise_test(async t => {
const segment_duration = very_long_frame_duration / 2;
const entry = await expect_long_frame(async () => {
busy_wait(segment_duration);
await new Promise(resolve => requestAnimationFrame(() => {
busy_wait(segment_duration)
resolve();
}));
}, t);
assert_greater_than_equal(entry.renderStart - entry.startTime, segment_duration);
}, 'A long busy wait split between a task and a requestAnimationFrame is a long animation frame');
promise_test(async t => {
const segment_duration = very_long_frame_duration / 3;
const entry = await expect_long_frame(async () => {
const element = document.createElement("div");
document.body.appendChild(element);
t.add_cleanup(() => element.remove());
busy_wait(segment_duration);
requestAnimationFrame(() => {
busy_wait(segment_duration);
});
new ResizeObserver(() => {
busy_wait(segment_duration);
}).observe(element);
}, t);
assert_greater_than_equal(entry.renderStart - entry.startTime, segment_duration);
assert_greater_than_equal(entry.styleAndLayoutStart - entry.renderStart, segment_duration);
}, 'ResizeObservers should create a long-frame and affect layoutStartTime');
</script>
</body>

View file

@ -0,0 +1,25 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Long Animation Frame Timing: basic</title>
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/utils.js"></script>
<body>
<h1>Long Animation Frame: buffered</h1>
<div id="log"></div>
<script>
promise_test(async t => {
busy_wait(very_long_frame_duration);
await new Promise(resolve => t.step_timeout(resolve, 0));
const entry = await new Promise(resolve => {
new PerformanceObserver(t.step_func((entryList) => {
const entry = entryList.getEntries()[0];
if (entry.duration >= very_long_frame_duration)
resolve(entry);
})).observe({type: 'long-animation-frame', buffered: true});
});
}, 'PerformanceObserver with buffered flag can see previous long-animation-frame entries.');
</script>
</body>

View file

@ -0,0 +1,67 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Long Animation Frame Timing: iframes</title>
<body>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/get-host-info.sub.js"></script>
<script src="/common/utils.js"></script>
<script src="/common/dispatcher/dispatcher.js"></script>
<script src="resources/utils.js"></script>
<div id="log"></div>
<script>
const host_info = get_host_info();
const {ORIGIN, REMOTE_ORIGIN, HTTP_NOTSAMESITE_ORIGIN} = host_info;
promise_test(async t => {
const executor = await prepare_exec_iframe(t, ORIGIN);
await expect_no_long_frame(() => executor.execute_script((duration) => {
const deadline = performance.now() + duration;
while (performance.now() < deadline) {}
}, [very_long_frame_duration]), t);
}, 'A long busy wait without render in a same-origin iframe is not a long animation frame');
promise_test(async t => {
const executor = await prepare_exec_iframe(t, HTTP_NOTSAMESITE_ORIGIN);
await expect_no_long_frame(() => executor.execute_script((duration) => {
const deadline = performance.now() + duration;
while (performance.now() < deadline) {}
}, [very_long_frame_duration]), t);
}, 'A long busy wait in a cross-origin iframe is not a long animation frame');
promise_test(async t => {
const executor = await prepare_exec_iframe(t, ORIGIN);
await expect_long_frame(() => executor.execute_script(async (duration) => {
await new Promise(resolve => window.requestAnimationFrame(resolve));
const deadline = performance.now() + duration;
while (performance.now() < deadline) {}
}, [very_long_frame_duration]), t);
}, 'A long busy wait in a same-origin requestAnimationFrame is a long animation frame');
promise_test(async t => {
const executor = await prepare_exec_popup(t, ORIGIN);
await expect_no_long_frame(() => executor.execute_script((duration) => {
const deadline = performance.now() + duration;
while (performance.now() < deadline) {}
}), t);
}, 'A long busy wait in a same-origin popup is a not long animation frame');
for (const origin of ["ORIGIN", "REMOTE_ORIGIN", "HTTP_NOTSAMESITE_ORIGIN"]) {
promise_test(async t => {
const executor = await prepare_exec_iframe(t, host_info[origin]);
const entry = await executor.execute_script(async (duration) => {
const entryPromise = new Promise(resolve => new PerformanceObserver(list => {
resolve(list.getEntries(0));
}).observe({entryTypes: ["long-animation-frame"]}));
const deadline = performance.now() + duration;
while (performance.now() < deadline) {}
return entryPromise;
}, [very_long_frame_duration]);
}, `frames receive own long animation frames (${origin})`);
}
</script>
</body>

View file

@ -0,0 +1,27 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<title>Long Animation Frame Timing: basic</title>
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/utils.js"></script>
<body>
<h1>Long Animation Frame: basic</h1>
<div id="log"></div>
<script>
promise_test(async t => {
busy_wait(very_long_frame_duration);
const is_loaf = entry => entry.duration >= very_long_frame_duration &&
entry.entryType == "long-animation-frame";
await new Promise(resolve => t.step_timeout(resolve, 10));
const entry_from_all = [...performance.getEntries()].find(is_loaf);
const entry_by_type = [...performance.getEntriesByType("long-animation-frame")].find(is_loaf);
const entry_by_name = [...performance.getEntriesByName("long-animation-frame")].find(is_loaf);
assert_true(!!entry_from_all, "LoAF Entry found");
assert_equals(entry_from_all, entry_by_type);
assert_equals(entry_from_all, entry_by_name);
}, 'LoAF entries are available in the performnace timeline');
</script>
</body>

View file

@ -0,0 +1,44 @@
<!doctype html>
<html>
<head>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
promise_test(async t => {
window.onload = () => {
// Trigger a long task.
const begin = window.performance.now();
while (window.performance.now() < begin + 60);
};
assert_implements(window.PerformanceLongAnimationFrameTiming, 'Lon are not supported.');
const entry = await new Promise(resolve => new PerformanceObserver(
t.step_func(entryList => {
const entries = entryList.getEntries();
assert_greater_than_equal(entries.length, 1);
resolve(entries[0]);
})).observe({entryTypes: ["long-animation-frame"]}));
assert_equals(typeof(entry.toJSON), 'function');
const entryJSON = entry.toJSON();
assert_equals(typeof(entryJSON), 'object');
// Check attributes inheritted from PerformanceEntry.
const performanceEntryKeys = [
'name',
'entryType',
'startTime',
'duration',
'renderStart',
'styleAndLayoutStart'
];
for (const key of performanceEntryKeys) {
assert_equals(entryJSON[key], entry[key],
`entry.toJSON().${key} should match entry.${key}`);
}
}, 'Test toJSON() in PerformanceLongAnimationFrameTiming');
</script>
</body>
</html>

View file

@ -0,0 +1,26 @@
<!DOCTYPE HTML>
<meta charset=utf-8>
<meta name="timeout" content="long">
<title>Long Animation Frame Timing: iframes</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/common/utils.js"></script>
<script src="/page-visibility/resources/window_state_context.js"></script>
<script src="resources/utils.js"></script>
<body>
<div id="log"></div>
<script>
promise_test(async t => {
const {minimize, restore} = window_state_context(t);
await minimize();
expect_no_long_frame(busy_wait, t);
await restore();
expect_long_frame(busy_wait, t);
}, 'Invisible windows do not report long animation frames');
</script>
</body>

View file

@ -0,0 +1,76 @@
const windowLoaded = new Promise(resolve => window.addEventListener('load', resolve));
setup(() =>
assert_implements(window.PerformanceLongAnimationFrameTiming,
'Long animation frames are not supported.'));
const very_long_frame_duration = 360;
function loaf_promise() {
return new Promise(resolve => {
const observer = new PerformanceObserver(entries => {
const entry = entries.getEntries()[0];
if (entry.duration >= very_long_frame_duration)
resolve(entry);
});
observer.observe({entryTypes: ['long-animation-frame']});
});
}
const no_long_frame_timeout = very_long_frame_duration * 2;
function busy_wait(ms_delay = very_long_frame_duration) {
const deadline = performance.now() + ms_delay;
while (performance.now() < deadline) {}
}
async function expect_long_frame(cb, t) {
await windowLoaded;
await new Promise(resolve => t.step_timeout(resolve, 0));
const timeout = new Promise((resolve, reject) =>
t.step_timeout(() => reject("timeout"), no_long_frame_timeout));
const receivedLongFrame = loaf_promise();
await cb();
const entry = await Promise.race([
receivedLongFrame,
timeout
]);
return entry;
}
async function expect_no_long_frame(cb, t) {
await windowLoaded;
for (let i = 0; i < 5; ++i) {
const receivedLongFrame = loaf_promise();
await cb();
const result = await Promise.race([receivedLongFrame,
new Promise(resolve => t.step_timeout(() => resolve("timeout"),
no_long_frame_timeout))]);
if (result === "timeout")
return false;
}
throw new Error("Consistently creates long frame");
}
async function prepare_exec_iframe(t, origin) {
const iframe = document.createElement("iframe");
t.add_cleanup(() => iframe.remove());
const url = new URL("/common/dispatcher/remote-executor.html", origin);
const uuid = token();
url.searchParams.set("uuid", uuid);
iframe.src = url.href;
document.body.appendChild(iframe);
await new Promise(resolve => iframe.addEventListener("load", resolve));
return new RemoteContext(uuid);
}
async function prepare_exec_popup(t, origin) {
const url = new URL("/common/dispatcher/remote-executor.html", origin);
const uuid = token();
url.searchParams.set("uuid", uuid);
const popup = window.open(url);
t.add_cleanup(() => popup.close());
return new RemoteContext(uuid);
}

View file

@ -29,7 +29,17 @@ self.DirectSocketsServiceTest = (() => {
});
}
openUDPSocket(
openConnectedUDPSocket(
options,
receiver,
listener) {
return Promise.resolve({
// return result = net:Error::NOT_IMPLEMENTED (code -11)
result: -11
});
}
openBoundUDPSocket(
options,
receiver,
listener) {

View file

@ -100,7 +100,7 @@ function ReplyPromise(timestamp) {
}
// Returns a promise that resolves when the given frame fires its load event.
function ReloadPromise(frame) {
function LoadPromise(frame) {
return new Promise((resolve) => {
frame.addEventListener("load", (event) => {
resolve();
@ -183,11 +183,19 @@ function ObservePermissionChange(frame, args = []) {
// Executes `location.reload()` in the given frame. The returned promise
// resolves when the frame has finished reloading.
function FrameInitiatedReload(frame) {
const reload = ReloadPromise(frame);
const reload = LoadPromise(frame);
frame.contentWindow.postMessage({ command: "reload" }, "*");
return reload;
}
// Executes `location.href = url` in the given frame. The returned promise
// resolves when the frame has finished navigating.
function FrameInitiatedNavigation(frame, url) {
const load = LoadPromise(frame);
frame.contentWindow.postMessage({ command: "navigate", url }, "*");
return load;
}
// Tries to set storage access policy, ignoring any errors.
//
// Note: to discourage the writing of tests that assume unpartitioned cookie

View file

@ -6,19 +6,21 @@
(async function() {
// This is cross-domain from the current document.
const wwwAlt = "https://{{hosts[alt][www]}}:{{ports[https][0]}}";
const altWww = "https://{{hosts[alt][www]}}:{{ports[https][0]}}";
const altRoot = "https://{{hosts[alt][]}}:{{ports[https][0]}}";
const responderPath = "/storage-access-api/resources/script-with-cookie-header.py?script=embedded_responder.js";
promise_test(async (t) => {
await MaybeSetStorageAccess(wwwAlt + "/", "*", "blocked");
const altWwwResponder = `${altWww}${responderPath}`;
const altRootResponder = `${altRoot}${responderPath}`;
const responder_html = `${wwwAlt}/storage-access-api/resources/script-with-cookie-header.py?script=embedded_responder.js`;
const frame = await CreateFrame(responder_html);
async function SetUpResponderFrame(t, url) {
const frame = await CreateFrame(url);
await SetPermissionInFrame(frame, [{ name: 'storage-access' }, 'granted']);
t.add_cleanup(async () => {
await test_driver.delete_all_cookies();
await SetPermissionInFrame(frame, [{ name: 'storage-access' }, 'prompt']);
await MaybeSetStorageAccess(wwwAlt + "/", "*", "allowed");
await MaybeSetStorageAccess("*", "*", "allowed");
});
assert_false(await FrameHasStorageAccess(frame), "frame initially does not have storage access.");
@ -30,9 +32,53 @@
assert_true(await FrameHasStorageAccess(frame), "frame has storage access after request.");
assert_true(await CanFrameWriteCookies(frame), "frame can write cookies via JS after request.");
return frame;
}
promise_test(async (t) => {
await MaybeSetStorageAccess("*", "*", "blocked");
const frame = await SetUpResponderFrame(t, altWwwResponder);
await FrameInitiatedReload(frame);
assert_true(await FrameHasStorageAccess(frame), "frame has storage access after refresh.");
assert_true(await CanFrameWriteCookies(frame), "frame can write cookies via JS after refresh.");
}, "Self-initiated reloads preserve storage access");
promise_test(async (t) => {
await MaybeSetStorageAccess("*", "*", "blocked");
const frame = await SetUpResponderFrame(t, altWwwResponder);
await FrameInitiatedNavigation(frame, altWwwResponder);
assert_true(await FrameHasStorageAccess(frame), "frame has storage access after refresh.");
assert_true(await CanFrameWriteCookies(frame), "frame can write cookies via JS after refresh.");
}, "Self-initiated same-origin navigations preserve storage access");
promise_test(async (t) => {
await MaybeSetStorageAccess("*", "*", "blocked");
const frame = await SetUpResponderFrame(t, altWwwResponder);
await new Promise((resolve) => {
frame.addEventListener("load", () => resolve());
frame.src = altWwwResponder;
});
assert_false(await FrameHasStorageAccess(frame), "frame does not have storage access after refresh.");
assert_false(await CanFrameWriteCookies(frame), "frame cannot write cookies via JS after refresh.");
}, "Non-self-initiated same-origin navigations do not preserve storage access");
promise_test(async (t) => {
await MaybeSetStorageAccess("*", "*", "blocked");
const frame = await SetUpResponderFrame(t, altWwwResponder);
await FrameInitiatedNavigation(frame, altRootResponder);
assert_false(await FrameHasStorageAccess(frame), "frame does not have storage access after refresh.");
assert_false(await CanFrameWriteCookies(frame), "frame cannot write cookies via JS after refresh.");
}, "Self-initiated cross-origin navigations do not preserve storage access");
})();

View file

@ -40,6 +40,9 @@ window.addEventListener("message", async (event) => {
case "reload":
window.location.reload();
break;
case "navigate":
window.location.href = event.data.url;
break;
case "httpCookies":
// The `httpCookies` variable is defined/set by
// script-with-cookie-header.py.

View file

@ -1,35 +1,35 @@
{
"tests": [
{
"name": "softmax float32 2D tensor",
"name": "softmax float32 2D tensor all positive",
"inputs": {
"x": {
"shape": [4, 6],
"data": [
-9.602943250149636,
5.353947088147631,
4.982506021190005,
-1.8709681620943286,
2.275207739606868,
-1.9403444022539098,
1.8985638253724968,
1.7877445512108103,
-7.243864108734894,
7.827657028853274,
-2.4196847673132726,
-8.018804523844905,
-3.1493873901132474,
7.674345195428224,
-5.183967275728079,
-7.301743057626533,
-7.121610082852072,
-8.29701166999875,
-5.77890866334104,
-9.76213424697228,
7.332167409724249,
3.9077721241449215,
-5.2970783047100545,
5.0440509491607965
7.903734730203054,
6.358251623091922,
4.833756774572475,
9.579165187926348,
0.21071856783621445,
4.554958961778823,
7.150174113718282,
8.330297576341172,
1.535985791562966,
6.633619497318013,
1.45393689965033,
0.21341864769940821,
5.257819475802503,
8.1921378632378,
8.161730206898543,
2.8744343334015565,
8.950733525100087,
6.111632812590415,
1.6371468489476149,
0.2762612074523485,
5.028227187056009,
3.898326029997037,
2.8967114227178836,
6.8894703393234575
],
"type": "float32"
}
@ -38,30 +38,96 @@
"name": "output",
"shape": [4, 6],
"data": [
1.8385014755040174e-7,
0.575650691986084,
0.3970489799976349,
0.0004191970219835639,
0.026489850133657455,
0.0003911005624104291,
0.00264744833111763,
0.00236973213031888,
2.833488679243601e-7,
0.9949471354484558,
0.00003527247827150859,
1.3054766156983533e-7,
0.000019920609702239744,
0.9999766945838928,
0.0000026043292109534377,
3.1329790317613515e-7,
3.7513549955292547e-7,
1.1580249292819644e-7,
0.0000017836379129221314,
3.322107744452296e-8,
0.8818095922470093,
0.028719622641801834,
0.000002887773234760971,
0.08946608752012253
0.15068615972995758,
0.03212761878967285,
0.006995180621743202,
0.8048291206359863,
0.00006871300138300285,
0.005293202120810747,
0.2057899534702301,
0.6698001027107239,
0.0007502624066546559,
0.1227685883641243,
0.0006911618984304368,
0.00019990770670119673,
0.012398251332342625,
0.23319464921951294,
0.22621041536331177,
0.0011435872875154018,
0.4979347288608551,
0.029118351638317108,
0.004253828432410955,
0.001090824487619102,
0.12633030116558075,
0.040812913328409195,
0.014990009367465973,
0.8125221133232117
],
"type": "float32"
}
},
{
"name": "softmax float32 2D tensor all negative",
"inputs": {
"x": {
"shape": [4, 6],
"data": [
-3.3118434934513763,
-3.338954812269648,
-3.4102789638525355,
-6.697192980301335,
-7.896223320202411,
-3.3081689006635866,
-3.2309720485303473,
-4.315771351061817,
-9.311088112018716,
-3.9236627720798856,
-3.7807213277512064,
-6.034926915403203,
-3.9196677453714273,
-2.223484249593408,
-9.326531526135806,
-1.4882492282868132,
-6.302842393071306,
-5.531475594479687,
-1.8421411696525603,
-4.994808274460977,
-9.527291818875955,
-4.985682906583053,
-8.421041200931548,
-6.235629579015209
],
"type": "float32"
}
},
"expected": {
"name": "output",
"shape": [4, 6],
"data": [
0.2546302080154419,
0.24781952798366547,
0.2307596504688263,
0.008623254485428333,
0.002599793951958418,
0.2555675804615021,
0.40352678298950195,
0.13637976348400116,
0.0009232329903170466,
0.20185552537441254,
0.23287305235862732,
0.024441635236144066,
0.0551743283867836,
0.3008708655834198,
0.0002474947541486472,
0.6276082992553711,
0.0050902292132377625,
0.011008745059370995,
0.9090295433998108,
0.0388500951230526,
0.00041779119055718184,
0.039206232875585556,
0.0012629841221496463,
0.011233373545110226
],
"type": "float32"
}