mirror of
https://github.com/servo/servo.git
synced 2025-08-04 05:00:08 +01:00
Update web-platform-tests to revision 99a09c73e7f1d7b19ec4be2eb8ce2d3bebf52245
This commit is contained in:
parent
83b2f0de0b
commit
c80439a8ff
66 changed files with 745 additions and 207 deletions
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-002.html]
|
|
||||||
[Hit test float]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-003.html]
|
|
||||||
[Miss float below something else]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-004.html]
|
|
||||||
[Miss float below something else]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -5,9 +5,6 @@
|
||||||
[[data-expected-height\] 7]
|
[[data-expected-height\] 7]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[[data-expected-height\] 1]
|
[[data-expected-height\] 4]
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[[data-expected-height\] 2]
|
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[z-index-does-not-apply.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
||||||
|
[CaretPosition-001.html]
|
||||||
|
[Element at (400, 100)]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[elementFromPoint-001.html]
|
|
||||||
[CSSOM View - 5 - extensions to the Document interface]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[HTMLMediaElement.html]
|
|
||||||
expected: TIMEOUT
|
|
|
@ -318,15 +318,21 @@
|
||||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,3 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript error]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[traverse_the_history_1.html]
|
|
||||||
[Multiple history traversals from the same task]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_5.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -171,3 +171,6 @@
|
||||||
[XHTML img usemap="#hash-id"]
|
[XHTML img usemap="#hash-id"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTML (standards) IMG usemap="no-hash-name"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
[iframe-loading-lazy-load-event.tentative.html]
|
||||||
|
[In-viewport loading=lazy visibility:hidden iframe does not block the load event]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[In-viewport loading=lazy iframe does not block the load event]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-3.html]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[077.html]
|
|
||||||
[ adding several types of scripts through the DOM and removing some of them confuses scheduler ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[module-static-import-delayed.html]
|
|
||||||
[document.write in an imported module]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
[promise-job-entry.html]
|
[promise-job-entry.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[Fulfillment handler on fulfilled promise]
|
[Fulfillment handler on fulfilled promise]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Rejection handler on pending-then-rejected promise]
|
[Rejection handler on pending-then-rejected promise]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[Sanity check: this all works as expected with no promises involved]
|
[Sanity check: this all works as expected with no promises involved]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
@ -16,5 +15,5 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fulfillment handler on pending-then-fulfilled promise]
|
[Fulfillment handler on pending-then-fulfilled promise]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[realtimeanalyser-fft-scaling.html]
|
[realtimeanalyser-fft-scaling.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[018.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, javascript:]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[017.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, about:blank]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[import-in-moduleworker.html]
|
[import-in-moduleworker.html]
|
||||||
expected: ERROR
|
|
||||||
[Base URL in module dedicated workers: import]
|
[Base URL in module dedicated workers: import]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[Worker-constructor.html]
|
|
||||||
expected: ERROR
|
|
|
@ -24109,6 +24109,36 @@
|
||||||
},
|
},
|
||||||
"html": {
|
"html": {
|
||||||
"rendering": {
|
"rendering": {
|
||||||
|
"non-replaced-elements": {
|
||||||
|
"tables": {
|
||||||
|
"table-row-pagination-001-print.html": [
|
||||||
|
"3a14558a8b21f78a3de04b13b1b0e1f86cecb11c",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/html/rendering/non-replaced-elements/tables/table-row-pagination-001-print-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"table-row-pagination-002-print.html": [
|
||||||
|
"bc1c42088fd809a4325ab5ecba487bf895fddd98",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/html/rendering/non-replaced-elements/tables/table-row-pagination-002-print-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"the-details-element": {
|
"the-details-element": {
|
||||||
"details-page-break-after-1-print.html": [
|
"details-page-break-after-1-print.html": [
|
||||||
"cb7fc466d09226fd7833a4d8066fb64fae755392",
|
"cb7fc466d09226fd7833a4d8066fb64fae755392",
|
||||||
|
@ -166000,6 +166030,19 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"abspos-008.tentative.html": [
|
||||||
|
"c81e9fcf40547bf34c47ab11ca3fda307f5f77ed",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/reference/ref-filled-green-100px-square.xht",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"auto-margins-001.tentative.html": [
|
"auto-margins-001.tentative.html": [
|
||||||
"9e89ab6ca7f5220ea030aa537bcb3b64f156043d",
|
"9e89ab6ca7f5220ea030aa537bcb3b64f156043d",
|
||||||
[
|
[
|
||||||
|
@ -166260,6 +166303,19 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"block-aspect-ratio-020.tentative.html": [
|
||||||
|
"3cb076252b0a356774cd4f9257c8561973a5d5d0",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/reference/ref-filled-green-100px-square.xht",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"flex-aspect-ratio-001.tentative.html": [
|
"flex-aspect-ratio-001.tentative.html": [
|
||||||
"3b477e299ad763a1c0108e16f05981c76c25bb77",
|
"3b477e299ad763a1c0108e16f05981c76c25bb77",
|
||||||
[
|
[
|
||||||
|
@ -192728,6 +192784,19 @@
|
||||||
],
|
],
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
|
],
|
||||||
|
"z-index-does-not-apply.html": [
|
||||||
|
"26d3c49de0f6b767bb12e48cb188571388ad4544",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-transforms/z-index-does-not-apply-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"css-transitions": {
|
"css-transitions": {
|
||||||
|
@ -192917,6 +192986,19 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"appearance-progress-bar-002.html": [
|
||||||
|
"719b2dc220d253faa756e615d58ca947e73479f1",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-ui/appearance-progress-bar-002-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"appearance-push-button-001.html": [
|
"appearance-push-button-001.html": [
|
||||||
"3aecbb079809bb0f1e8c2a0786dee51bc6eb61d4",
|
"3aecbb079809bb0f1e8c2a0786dee51bc6eb61d4",
|
||||||
[
|
[
|
||||||
|
@ -310497,6 +310579,10 @@
|
||||||
"translate-ref.html": [
|
"translate-ref.html": [
|
||||||
"20fb4ffb5b61ef9a561650995fcc057b763af659",
|
"20fb4ffb5b61ef9a561650995fcc057b763af659",
|
||||||
[]
|
[]
|
||||||
|
],
|
||||||
|
"z-index-does-not-apply-ref.html": [
|
||||||
|
"f3b68dd6c953c90d85a795d5e140ce0fe91ca941",
|
||||||
|
[]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"css-transitions": {
|
"css-transitions": {
|
||||||
|
@ -310776,6 +310862,10 @@
|
||||||
"5c5cdb42e7078b18ed1e4f58f34747ce76d50c02",
|
"5c5cdb42e7078b18ed1e4f58f34747ce76d50c02",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"appearance-progress-bar-002-ref.html": [
|
||||||
|
"cc081a4559c57d2610710cd03c0c562309803516",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"appearance-revert-ref.html": [
|
"appearance-revert-ref.html": [
|
||||||
"26aa6e87198152487416b3b09f2dd92f8f31f3ec",
|
"26aa6e87198152487416b3b09f2dd92f8f31f3ec",
|
||||||
[]
|
[]
|
||||||
|
@ -332832,6 +332922,14 @@
|
||||||
"e5279080f0875ef323774a4c1d83e4242f47b3fa",
|
"e5279080f0875ef323774a4c1d83e4242f47b3fa",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"table-row-pagination-001-print-ref.html": [
|
||||||
|
"2aa94109ad6db97080b978572e44e14f9d0ed52d",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"table-row-pagination-002-print-ref.html": [
|
||||||
|
"91400fcc1eafa8ab86a8254154c80286fca0cf2c",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"table-width-150percent-ref.html": [
|
"table-width-150percent-ref.html": [
|
||||||
"820c360e391694732cce6cac0648a04a0f89f64d",
|
"820c360e391694732cce6cac0648a04a0f89f64d",
|
||||||
[]
|
[]
|
||||||
|
@ -337887,6 +337985,10 @@
|
||||||
"46fad3522ed2539d04a688cc4f5d05c8e76ef24f",
|
"46fad3522ed2539d04a688cc4f5d05c8e76ef24f",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"is-input-pending.idl": [
|
||||||
|
"191fafdb96c8c7502e5a297719562053cf23907d",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"js-self-profiling.idl": [
|
"js-self-profiling.idl": [
|
||||||
"0153e652360e2586a11ba6d808d38bfe59fe159e",
|
"0153e652360e2586a11ba6d808d38bfe59fe159e",
|
||||||
[]
|
[]
|
||||||
|
@ -338208,7 +338310,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"webauthn.idl": [
|
"webauthn.idl": [
|
||||||
"5627180867581a2ef5940bd06c828a5f6157daf2",
|
"9de7f64919d6a5f674bd684423491ddacbd2f96e",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"webdriver.idl": [
|
"webdriver.idl": [
|
||||||
|
@ -343461,7 +343563,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"webxr-test.js": [
|
"webxr-test.js": [
|
||||||
"715ebc2fed43472c9640071709a95efa9b3e9bce",
|
"7854b4f85ff907c718eca4fc3bc2f94d9b6c5895",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"webxr-test.js.headers": [
|
"webxr-test.js.headers": [
|
||||||
|
@ -385729,6 +385831,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"remove-float-then-abspos-in-inline.html": [
|
||||||
|
"5cf8084c638b5cfd77443e22054e8fddc34aa925",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"zero-space-between-floats-001.html": [
|
"zero-space-between-floats-001.html": [
|
||||||
"a7796011b0191e18ac24dee8ac94d2e878752201",
|
"a7796011b0191e18ac24dee8ac94d2e878752201",
|
||||||
[
|
[
|
||||||
|
@ -389342,6 +389451,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"display-first-line-001.html": [
|
||||||
|
"fd8501a06814e94db68a55243e02eef302456726",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"display-list-item-height-after-dom-change.html": [
|
"display-list-item-height-after-dom-change.html": [
|
||||||
"f8d6e85cee2325f3ae51a950a276430d26c04189",
|
"f8d6e85cee2325f3ae51a950a276430d26c04189",
|
||||||
[
|
[
|
||||||
|
@ -461542,6 +461658,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"iframe-loading-lazy-load-event.tentative.html": [
|
||||||
|
"bf98bf7585cf608e6ebb46d025663e22bce8324c",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"iframe-loading-lazy-multiple-times.tentative.html": [
|
"iframe-loading-lazy-multiple-times.tentative.html": [
|
||||||
"89e41e61bf7fcac2b5f35990f7ad70a9fdab8424",
|
"89e41e61bf7fcac2b5f35990f7ad70a9fdab8424",
|
||||||
[
|
[
|
||||||
|
@ -473465,6 +473588,26 @@
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"is-input-pending": {
|
||||||
|
"idlharness.window.js": [
|
||||||
|
"e6bb26a5a710d0dbd35bddae78143b433cb5bb1b",
|
||||||
|
[
|
||||||
|
"is-input-pending/idlharness.window.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"script",
|
||||||
|
"/resources/WebIDLParser.js"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"script",
|
||||||
|
"/resources/idlharness.js"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
"js": {
|
"js": {
|
||||||
"behaviours": {
|
"behaviours": {
|
||||||
"SetPrototypeOf-window.html": [
|
"SetPrototypeOf-window.html": [
|
||||||
|
@ -527216,7 +527359,7 @@
|
||||||
"webxr": {
|
"webxr": {
|
||||||
"anchors": {
|
"anchors": {
|
||||||
"ar_anchor_states.https.html": [
|
"ar_anchor_states.https.html": [
|
||||||
"907da06880e9fe7908a32afbf2ddcb642e174b41",
|
"06bc6798839a5eff01792325d8a5c90921f6c2e3",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-002.html]
|
|
||||||
[Hit test float]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-003.html]
|
|
||||||
[Miss float below something else]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-004.html]
|
|
||||||
[Miss float below something else]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -8,9 +8,6 @@
|
||||||
[[data-expected-height\] 3]
|
[[data-expected-height\] 3]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[[data-expected-height\] 1]
|
[[data-expected-height\] 4]
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[[data-expected-height\] 2]
|
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[z-index-does-not-apply.html]
|
||||||
|
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
||||||
|
[CaretPosition-001.html]
|
||||||
|
[Element at (400, 100)]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[elementFromPoint-001.html]
|
|
||||||
[CSSOM View - 5 - extensions to the Document interface]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[HTMLMediaElement.html]
|
|
||||||
expected: TIMEOUT
|
|
|
@ -318,15 +318,21 @@
|
||||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,3 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript error]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[traverse_the_history_1.html]
|
|
||||||
[Multiple history traversals from the same task]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_5.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -172,3 +172,6 @@
|
||||||
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
|
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTML (standards) IMG usemap="no-hash-name"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
[iframe-loading-lazy-load-event.tentative.html]
|
||||||
|
[In-viewport loading=lazy visibility:hidden iframe does not block the load event]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[In-viewport loading=lazy iframe does not block the load event]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[iframe_sandbox_popups_nonescaping-3.html]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[077.html]
|
|
||||||
[ adding several types of scripts through the DOM and removing some of them confuses scheduler ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[module-static-import-delayed.html]
|
|
||||||
[document.write in an imported module]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
[promise-job-entry.html]
|
[promise-job-entry.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[Fulfillment handler on fulfilled promise]
|
[Fulfillment handler on fulfilled promise]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Rejection handler on pending-then-rejected promise]
|
[Rejection handler on pending-then-rejected promise]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[Sanity check: this all works as expected with no promises involved]
|
[Sanity check: this all works as expected with no promises involved]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
@ -16,5 +15,5 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fulfillment handler on pending-then-fulfilled promise]
|
[Fulfillment handler on pending-then-fulfilled promise]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[realtimeanalyser-fft-scaling.html]
|
[realtimeanalyser-fft-scaling.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
5
tests/wpt/metadata/webmessaging/with-ports/018.html.ini
Normal file
5
tests/wpt/metadata/webmessaging/with-ports/018.html.ini
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
[018.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, javascript:]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[017.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, about:blank]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[import-in-moduleworker.html]
|
[import-in-moduleworker.html]
|
||||||
expected: ERROR
|
|
||||||
[Base URL in module dedicated workers: import]
|
[Base URL in module dedicated workers: import]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[Worker-constructor.html]
|
|
||||||
expected: ERROR
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>Removing floats changed to positioned object should not crash</title>
|
||||||
|
<link rel="author" href="kojii@chromium.org">
|
||||||
|
<link rel="help" href="https://crbug.com/1101277">
|
||||||
|
<meta name="assert" content="Removing floats changed to positioned object should not crash">
|
||||||
|
<style>
|
||||||
|
.float {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
.abs {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<body>
|
||||||
|
<div id="container">text<span id="target" class="float"></span></div>
|
||||||
|
</body>
|
||||||
|
<script>
|
||||||
|
test(() => {
|
||||||
|
document.body.offsetTop;
|
||||||
|
let target = document.getElementById('target');
|
||||||
|
|
||||||
|
// Change `#target` from floating object to positioned object.
|
||||||
|
target.className = 'abs';
|
||||||
|
document.body.offsetTop;
|
||||||
|
|
||||||
|
// and remove it.
|
||||||
|
target.remove();
|
||||||
|
}, 'No crash or DCHECK failure');
|
||||||
|
</script>
|
|
@ -0,0 +1,42 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Display: first-line and first-letter pseudo-elements</title>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-display-3/#placement">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<style>
|
||||||
|
#t1::first-letter { float: left; display: flex; font-size: 30px }
|
||||||
|
#t2::first-letter { float: left; font-size: 30px }
|
||||||
|
#t3::first-letter { display: flex; font-size: 30px }
|
||||||
|
#t4::first-letter { font-size: 30px }
|
||||||
|
#t5::first-line { float: left; display: flex; font-size: 30px }
|
||||||
|
#t6::first-line { float: left; font-size: 30px }
|
||||||
|
#t7::first-line { display: flex; font-size: 30px }
|
||||||
|
#t8::first-line { font-size: 30px }
|
||||||
|
</style>
|
||||||
|
<div id="t1">First letter is float and flex.</div>
|
||||||
|
<div id="t2">First letter is float but not flex.</div>
|
||||||
|
<div id="t3">First letter is flex but not float.</div>
|
||||||
|
<div id="t4">First letter not float or flex.</div>
|
||||||
|
<div id="t5">First line is float and flex.</div>
|
||||||
|
<div id="t6">First line is float but not flex.</div>
|
||||||
|
<div id="t7">First line is flex but not float.</div>
|
||||||
|
<div id="t8">First line is not float or flex.</div>
|
||||||
|
<script>
|
||||||
|
function getFistLetterDisplayFor(id) {
|
||||||
|
return window.getComputedStyle(document.getElementById(id), "::first-letter").display;
|
||||||
|
}
|
||||||
|
function getFistLineDisplayFor(id) {
|
||||||
|
return window.getComputedStyle(document.getElementById(id), "::first-line").display;
|
||||||
|
}
|
||||||
|
test(function() {
|
||||||
|
assert_equals(getFistLetterDisplayFor("t1"), "block");
|
||||||
|
assert_equals(getFistLetterDisplayFor("t2"), "block");
|
||||||
|
assert_equals(getFistLetterDisplayFor("t3"), "inline");
|
||||||
|
assert_equals(getFistLetterDisplayFor("t4"), "inline");
|
||||||
|
assert_equals(getFistLineDisplayFor("t5"), "inline");
|
||||||
|
assert_equals(getFistLineDisplayFor("t6"), "inline");
|
||||||
|
assert_equals(getFistLineDisplayFor("t7"), "inline");
|
||||||
|
assert_equals(getFistLineDisplayFor("t8"), "inline");
|
||||||
|
}, "display of first-letter and first-line");
|
||||||
|
</script>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>CSS aspect-ratio: abspos div inline size with max-height</title>
|
||||||
|
<link rel="author" title="Google LLC" href="https://www.google.com/">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
|
||||||
|
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
|
||||||
|
<meta name="assert" content="A max-height constraint should be transferred through the aspect-ratio to apply to the inline size">
|
||||||
|
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
|
||||||
|
<div style="position: relative; height: 100px; position: relative;">
|
||||||
|
<div style="position: absolute; aspect-ratio: 1/1; max-height: 100%; background: green; color: green;">
|
||||||
|
<!-- max-size 200px, min-size: 20px -->
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>CSS aspect-ratio: abspos div inline size with max-height</title>
|
||||||
|
<link rel="author" title="Google LLC" href="https://www.google.com/">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
|
||||||
|
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5257">
|
||||||
|
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
|
||||||
|
<meta name="assert" content="A max-height constraint should be transferred through the aspect-ratio to apply to the inline size">
|
||||||
|
|
||||||
|
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||||
|
|
||||||
|
<div style="height: 100px;">
|
||||||
|
<div style="aspect-ratio: 1/1; max-height: 100%; background: green;">
|
||||||
|
<!-- max-size 200px, min-size: 20px -->
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
<div style="width: 20px; height: 10px; vertical-align: bottom;"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -0,0 +1,10 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>CSS test reference</title>
|
||||||
|
<style>
|
||||||
|
div {
|
||||||
|
background: green;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div></div>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>z-index doesn't apply to transformed content which is not positioned</title>
|
||||||
|
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
|
||||||
|
<link rel="author" title="Mozilla" href="https://mozilla.org">
|
||||||
|
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1256980">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css2/visuren.html#z-index">
|
||||||
|
<link rel="match" href="z-index-does-not-apply-ref.html">
|
||||||
|
<style>
|
||||||
|
#a, #b {
|
||||||
|
background: green;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
#a {
|
||||||
|
background: red;
|
||||||
|
z-index: 2;
|
||||||
|
transform: translateX(0);
|
||||||
|
}
|
||||||
|
#b {
|
||||||
|
z-index: 1;
|
||||||
|
transform: translateY(-100px);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<div id="a"></div>
|
||||||
|
<div id="b"></div>
|
|
@ -0,0 +1,4 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>CSS Test Reference</title>
|
||||||
|
<progress style="appearance:auto">
|
||||||
|
<progress style="appearance:none">
|
|
@ -0,0 +1,16 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Basic User Interface Test: progress dynamic appearance</title>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-ui-4/#appearance-switching">
|
||||||
|
<link rel="match" href="appearance-progress-bar-002-ref.html">
|
||||||
|
<style>
|
||||||
|
#progress1 { appearance: none }
|
||||||
|
#progress2 { appearance: auto }
|
||||||
|
</style>
|
||||||
|
<progress id="progress1">
|
||||||
|
<progress id="progress2">
|
||||||
|
<script>
|
||||||
|
document.body.offsetTop;
|
||||||
|
progress1.style.appearance = "auto";
|
||||||
|
progress2.style.appearance = "none";
|
||||||
|
</script>
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Testing row split</title>
|
||||||
|
<style type="text/css">
|
||||||
|
@page { size:5in 3in; margin:0.5in; }
|
||||||
|
html,body {
|
||||||
|
color:black;
|
||||||
|
background-color:white;
|
||||||
|
font-size:16px;
|
||||||
|
padding:0;
|
||||||
|
margin:0;
|
||||||
|
height:100%;
|
||||||
|
}
|
||||||
|
div { height:160%; }
|
||||||
|
p { height: 50%; margin:0; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<p></p>
|
||||||
|
<p>1</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,33 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<link rel="match" href="table-row-pagination-001-print-ref.html">
|
||||||
|
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#tables-2">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-break/">
|
||||||
|
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=685012">
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Testing row split</title>
|
||||||
|
<style type="text/css">
|
||||||
|
@page { size:5in 3in; margin:0.5in; }
|
||||||
|
html,body {
|
||||||
|
color:black;
|
||||||
|
background-color:white;
|
||||||
|
font-size:16px;
|
||||||
|
padding:0;
|
||||||
|
margin:0;
|
||||||
|
height:100%;
|
||||||
|
}
|
||||||
|
table { height:160%; width:100%; }
|
||||||
|
td { height:50%; width:100%; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<table border="0" cellspacing="0" cellpadding="0">
|
||||||
|
<tr><td></td></tr>
|
||||||
|
<tr><td valign="top">1</td></tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,14 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<style>
|
||||||
|
@page { size:5in 3in; margin:0.5in; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div style="height:3in">Tall div. (Scroll to end.)</div>
|
||||||
|
<div>IS THIS TEXT VISIBLE IN PRINT PREVIEW?</div>
|
||||||
|
<div>[clear:left]</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,26 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="match" href="table-row-pagination-002-print-ref.html">
|
||||||
|
<link rel="help" href="https://html.spec.whatwg.org/multipage/rendering.html#tables-2">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-break/">
|
||||||
|
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=963441">
|
||||||
|
<style>
|
||||||
|
@page { size:5in 3in; margin:0.5in; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div style="float: left">
|
||||||
|
<table cellpadding=0 cellspacing=0>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div style="height:3in">Tall div. (Scroll to end.)</div>
|
||||||
|
<div>IS THIS TEXT VISIBLE IN PRINT PREVIEW?</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
<div style="clear: left">[clear:left]</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,47 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<head>
|
||||||
|
<title>In-viewport loading=lazy iframes do not block the window load event</title>
|
||||||
|
<link rel="author" title="Dom Farolino" href="mailto:dom@chromium.org">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="../resources/common.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<!-- This image blocks the window load event for 1 second -->
|
||||||
|
<img src="/common/square.png?pipe=trickle(d1)">
|
||||||
|
|
||||||
|
<!-- These iframes must load because they intersect the viewport, but they must
|
||||||
|
not block the window load event, because they are loading=lazy -->
|
||||||
|
<iframe id="visible" loading="lazy"
|
||||||
|
src="resources/subframe.html?visible&pipe=trickle(d3)"></iframe>
|
||||||
|
<iframe id="visibility_hidden" style="visibility:hidden;" loading="lazy"
|
||||||
|
src="resources/subframe.html?visibility_hidden&pipe=trickle(d3)"></iframe>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const visible_iframe = document.querySelector('#visible');
|
||||||
|
const hidden_iframe = document.querySelector('#visibility_hidden');
|
||||||
|
|
||||||
|
const visible_iframe_t =
|
||||||
|
async_test('In-viewport loading=lazy iframe does not block the load event');
|
||||||
|
|
||||||
|
const hidden_iframe_t =
|
||||||
|
async_test('In-viewport loading=lazy visibility:hidden iframe does not ' +
|
||||||
|
'block the load event');
|
||||||
|
|
||||||
|
let has_window_loaded = false;
|
||||||
|
window.addEventListener("load", () => {
|
||||||
|
has_window_loaded = true;
|
||||||
|
});
|
||||||
|
|
||||||
|
visible_iframe.onload = visible_iframe_t.step_func_done(() => {
|
||||||
|
assert_true(has_window_loaded,
|
||||||
|
"The visible iframe should not block the load event");
|
||||||
|
});
|
||||||
|
|
||||||
|
hidden_iframe.onload = hidden_iframe_t.step_func_done(() => {
|
||||||
|
assert_true(has_window_loaded,
|
||||||
|
"The hidden iframe should not block the load event");
|
||||||
|
});
|
||||||
|
</script>
|
22
tests/wpt/web-platform-tests/interfaces/is-input-pending.idl
Normal file
22
tests/wpt/web-platform-tests/interfaces/is-input-pending.idl
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
// GENERATED CONTENT - DO NOT EDIT
|
||||||
|
// Content was automatically extracted by Reffy into reffy-reports
|
||||||
|
// (https://github.com/tidoust/reffy-reports)
|
||||||
|
// Source: Early detection of input events (https://wicg.github.io/is-input-pending/)
|
||||||
|
|
||||||
|
dictionary IsInputPendingOptionsInit {
|
||||||
|
boolean includeContinuous = "false";
|
||||||
|
};
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
|
interface IsInputPendingOptions {
|
||||||
|
constructor(optional IsInputPendingOptionsInit isInputPendingOptionsInit = {});
|
||||||
|
attribute boolean includeContinuous;
|
||||||
|
};
|
||||||
|
|
||||||
|
[Exposed=Window] interface Scheduling {
|
||||||
|
boolean isInputPending(optional IsInputPendingOptions isInputPendingOptions);
|
||||||
|
};
|
||||||
|
|
||||||
|
partial interface Navigator {
|
||||||
|
readonly attribute Scheduling scheduling;
|
||||||
|
};
|
|
@ -115,8 +115,6 @@ dictionary AuthenticationExtensionsClientInputs {
|
||||||
dictionary AuthenticationExtensionsClientOutputs {
|
dictionary AuthenticationExtensionsClientOutputs {
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef record<DOMString, DOMString> AuthenticationExtensionsAuthenticatorInputs;
|
|
||||||
|
|
||||||
dictionary CollectedClientData {
|
dictionary CollectedClientData {
|
||||||
required DOMString type;
|
required DOMString type;
|
||||||
required DOMString challenge;
|
required DOMString challenge;
|
||||||
|
@ -192,6 +190,29 @@ partial dictionary AuthenticationExtensionsClientOutputs {
|
||||||
CredentialPropertiesOutput credProps;
|
CredentialPropertiesOutput credProps;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dictionary AuthenticationExtensionsPRFValues {
|
||||||
|
required ArrayBuffer first;
|
||||||
|
ArrayBuffer second;
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary AuthenticationExtensionsPRFInputs {
|
||||||
|
AuthenticationExtensionsPRFValues eval;
|
||||||
|
record<USVString, AuthenticationExtensionsPRFValues> evalByCredential;
|
||||||
|
};
|
||||||
|
|
||||||
|
partial dictionary AuthenticationExtensionsClientInputs {
|
||||||
|
AuthenticationExtensionsPRFInputs prf;
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary AuthenticationExtensionsPRFOutputs {
|
||||||
|
boolean enabled;
|
||||||
|
AuthenticationExtensionsPRFValues results;
|
||||||
|
};
|
||||||
|
|
||||||
|
partial dictionary AuthenticationExtensionsClientOutputs {
|
||||||
|
AuthenticationExtensionsPRFOutputs prf;
|
||||||
|
};
|
||||||
|
|
||||||
partial dictionary AuthenticationExtensionsClientInputs {
|
partial dictionary AuthenticationExtensionsClientInputs {
|
||||||
AuthenticationExtensionsLargeBlobInputs largeBlob;
|
AuthenticationExtensionsLargeBlobInputs largeBlob;
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
// META: script=/resources/WebIDLParser.js
|
||||||
|
// META: script=/resources/idlharness.js
|
||||||
|
|
||||||
|
// https://wicg.github.io/is-input-pending/
|
||||||
|
|
||||||
|
idl_test(
|
||||||
|
['is-input-pending'],
|
||||||
|
['html', 'dom'],
|
||||||
|
async idl_array => {
|
||||||
|
idl_array.add_objects({
|
||||||
|
IsInputPendingOptions: ['new IsInputPendingOptions'],
|
||||||
|
Scheduling: ['navigator.scheduling'],
|
||||||
|
});
|
||||||
|
}
|
||||||
|
);
|
|
@ -276,48 +276,9 @@ class FakeXRAnchorController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class FakeXRAnchorCreationEvent extends Event {
|
|
||||||
constructor(type, eventInitDict) {
|
|
||||||
super(type, eventInitDict);
|
|
||||||
|
|
||||||
this.success_ = false;
|
|
||||||
this.requestedAnchorOrigin_ = {};
|
|
||||||
this.isAttachedToEntity_ = false;
|
|
||||||
this.anchorController_ = new FakeXRAnchorController();
|
|
||||||
|
|
||||||
if(eventInitDict.requestedAnchorOrigin != null) {
|
|
||||||
this.requestedAnchorOrigin_ = eventInitDict.requestedAnchorOrigin;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(eventInitDict.isAttachedToEntity != null) {
|
|
||||||
this.isAttachedToEntity_ = eventInitDict.isAttachedToEntity;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
get requestedAnchorOrigin() {
|
|
||||||
return this.requestedAnchorOrigin_;
|
|
||||||
}
|
|
||||||
|
|
||||||
get isAttachedToEntity() {
|
|
||||||
return this.isAttachedToEntity_;
|
|
||||||
}
|
|
||||||
|
|
||||||
get success() {
|
|
||||||
return this.success_;
|
|
||||||
}
|
|
||||||
|
|
||||||
set success(value) {
|
|
||||||
this.success_ = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
get anchorController() {
|
|
||||||
return this.anchorController_;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Implements XRFrameDataProvider and XRPresentationProvider. Maintains a mock
|
// Implements XRFrameDataProvider and XRPresentationProvider. Maintains a mock
|
||||||
// for XRPresentationProvider. Implements FakeXRDevice test API.
|
// for XRPresentationProvider. Implements FakeXRDevice test API.
|
||||||
class MockRuntime extends EventTarget {
|
class MockRuntime {
|
||||||
// Mapping from string feature names to the corresponding mojo types.
|
// Mapping from string feature names to the corresponding mojo types.
|
||||||
// This is exposed as a member for extensibility.
|
// This is exposed as a member for extensibility.
|
||||||
static featureToMojoMap = {
|
static featureToMojoMap = {
|
||||||
|
@ -339,8 +300,6 @@ class MockRuntime extends EventTarget {
|
||||||
};
|
};
|
||||||
|
|
||||||
constructor(fakeDeviceInit, service) {
|
constructor(fakeDeviceInit, service) {
|
||||||
super();
|
|
||||||
|
|
||||||
this.sessionClient_ = new device.mojom.XRSessionClientPtr();
|
this.sessionClient_ = new device.mojom.XRSessionClientPtr();
|
||||||
this.presentation_provider_ = new MockXRPresentationProvider();
|
this.presentation_provider_ = new MockXRPresentationProvider();
|
||||||
|
|
||||||
|
@ -368,6 +327,8 @@ class MockRuntime extends EventTarget {
|
||||||
this.anchor_controllers_ = new Map();
|
this.anchor_controllers_ = new Map();
|
||||||
// ID of the next anchor to be assigned.
|
// ID of the next anchor to be assigned.
|
||||||
this.next_anchor_id_ = 1;
|
this.next_anchor_id_ = 1;
|
||||||
|
// Anchor creation callback (initially null, can be set by tests).
|
||||||
|
this.anchor_creation_callback_ = null;
|
||||||
|
|
||||||
let supportedModes = [];
|
let supportedModes = [];
|
||||||
if (fakeDeviceInit.supportedModes) {
|
if (fakeDeviceInit.supportedModes) {
|
||||||
|
@ -568,6 +529,10 @@ class MockRuntime extends EventTarget {
|
||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setAnchorCreationCallback(callback) {
|
||||||
|
this.anchor_creation_callback_ = callback;
|
||||||
|
}
|
||||||
|
|
||||||
// Helper methods
|
// Helper methods
|
||||||
getNonImmersiveDisplayInfo() {
|
getNonImmersiveDisplayInfo() {
|
||||||
const displayInfo = this.getImmersiveDisplayInfo();
|
const displayInfo = this.getImmersiveDisplayInfo();
|
||||||
|
@ -706,50 +671,67 @@ class MockRuntime extends EventTarget {
|
||||||
|
|
||||||
// XRFrameDataProvider implementation.
|
// XRFrameDataProvider implementation.
|
||||||
getFrameData(options) {
|
getFrameData(options) {
|
||||||
const mojo_space_reset = this.send_mojo_space_reset_;
|
return new Promise((resolve) => {
|
||||||
this.send_mojo_space_reset_ = false;
|
|
||||||
|
|
||||||
const stage_parameters_updated = this.stageParametersUpdated_;
|
const populatePose = () => {
|
||||||
this.stageParametersUpdated_ = false;
|
const mojo_space_reset = this.send_mojo_space_reset_;
|
||||||
if (this.pose_) {
|
this.send_mojo_space_reset_ = false;
|
||||||
this.pose_.poseIndex++;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setting the input_state to null tests a slightly different path than
|
const stage_parameters_updated = this.stageParametersUpdated_;
|
||||||
// the browser tests where if the last input source is removed, the device
|
this.stageParametersUpdated_ = false;
|
||||||
// code always sends up an empty array, but it's also valid mojom to send
|
if (this.pose_) {
|
||||||
// up a null array.
|
this.pose_.poseIndex++;
|
||||||
let input_state = null;
|
}
|
||||||
if (this.input_sources_.size > 0) {
|
|
||||||
input_state = [];
|
// Setting the input_state to null tests a slightly different path than
|
||||||
for (const input_source of this.input_sources_.values()) {
|
// the browser tests where if the last input source is removed, the device
|
||||||
input_state.push(input_source.getInputSourceState());
|
// code always sends up an empty array, but it's also valid mojom to send
|
||||||
|
// up a null array.
|
||||||
|
let input_state = null;
|
||||||
|
if (this.input_sources_.size > 0) {
|
||||||
|
input_state = [];
|
||||||
|
for (const input_source of this.input_sources_.values()) {
|
||||||
|
input_state.push(input_source.getInputSourceState());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const frameData = {
|
||||||
|
pose: this.pose_,
|
||||||
|
mojoSpaceReset: mojo_space_reset,
|
||||||
|
inputState: input_state,
|
||||||
|
timeDelta: {
|
||||||
|
// window.performance.now() is in milliseconds, so convert to microseconds.
|
||||||
|
microseconds: window.performance.now() * 1000,
|
||||||
|
},
|
||||||
|
frameId: this.next_frame_id_,
|
||||||
|
bufferHolder: null,
|
||||||
|
bufferSize: {},
|
||||||
|
stageParameters: this.stageParameters_,
|
||||||
|
stageParametersUpdated: stage_parameters_updated,
|
||||||
|
};
|
||||||
|
|
||||||
|
this.next_frame_id_++;
|
||||||
|
|
||||||
|
this._calculateHitTestResults(frameData);
|
||||||
|
|
||||||
|
this._calculateAnchorInformation(frameData);
|
||||||
|
|
||||||
|
this._injectAdditionalFrameData(options, frameData);
|
||||||
|
|
||||||
|
resolve({frameData});
|
||||||
|
};
|
||||||
|
|
||||||
|
if(this.sessionOptions_.mode == device.mojom.XRSessionMode.kInline) {
|
||||||
|
// Inline sessions should not have a delay introduced since it causes them
|
||||||
|
// to miss a vsync blink-side and delays propagation of changes that happened
|
||||||
|
// within a rAFcb by one frame (e.g. setViewerOrigin() calls would take 2 frames
|
||||||
|
// to propagate).
|
||||||
|
populatePose();
|
||||||
|
} else {
|
||||||
|
// For immerive sessions, add additional delay to allow for anchor creation
|
||||||
|
// promises to run.
|
||||||
|
setTimeout(populatePose, 3); // note: according to MDN, the timeout is not exact
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
const frameData = {
|
|
||||||
pose: this.pose_,
|
|
||||||
mojoSpaceReset: mojo_space_reset,
|
|
||||||
inputState: input_state,
|
|
||||||
timeDelta: {
|
|
||||||
// window.performance.now() is in milliseconds, so convert to microseconds.
|
|
||||||
microseconds: window.performance.now() * 1000,
|
|
||||||
},
|
|
||||||
frameId: this.next_frame_id_++,
|
|
||||||
bufferHolder: null,
|
|
||||||
bufferSize: {},
|
|
||||||
stageParameters: this.stageParameters_,
|
|
||||||
stageParametersUpdated: stage_parameters_updated,
|
|
||||||
};
|
|
||||||
|
|
||||||
this._calculateHitTestResults(frameData);
|
|
||||||
|
|
||||||
this._calculateAnchorInformation(frameData);
|
|
||||||
|
|
||||||
this._injectAdditionalFrameData(options, frameData);
|
|
||||||
|
|
||||||
return Promise.resolve({
|
|
||||||
frameData: frameData,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -768,6 +750,7 @@ class MockRuntime extends EventTarget {
|
||||||
|
|
||||||
closeDataProvider() {
|
closeDataProvider() {
|
||||||
this.dataProviderBinding_.close();
|
this.dataProviderBinding_.close();
|
||||||
|
this.sessionOptions_ = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// XREnvironmentIntegrationProvider implementation:
|
// XREnvironmentIntegrationProvider implementation:
|
||||||
|
@ -818,6 +801,15 @@ class MockRuntime extends EventTarget {
|
||||||
|
|
||||||
createAnchor(nativeOriginInformation, nativeOriginFromAnchor) {
|
createAnchor(nativeOriginInformation, nativeOriginFromAnchor) {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
|
if(this.anchor_creation_callback_ == null) {
|
||||||
|
resolve({
|
||||||
|
result : device.mojom.CreateAnchorResult.FAILURE,
|
||||||
|
anchorId : 0
|
||||||
|
});
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const mojoFromNativeOrigin = this._getMojoFromNativeOrigin(nativeOriginInformation);
|
const mojoFromNativeOrigin = this._getMojoFromNativeOrigin(nativeOriginInformation);
|
||||||
if(mojoFromNativeOrigin == null) {
|
if(mojoFromNativeOrigin == null) {
|
||||||
resolve({
|
resolve({
|
||||||
|
@ -830,36 +822,45 @@ class MockRuntime extends EventTarget {
|
||||||
|
|
||||||
const mojoFromAnchor = XRMathHelper.mul4x4(mojoFromNativeOrigin, nativeOriginFromAnchor);
|
const mojoFromAnchor = XRMathHelper.mul4x4(mojoFromNativeOrigin, nativeOriginFromAnchor);
|
||||||
|
|
||||||
const createAnchorEvent = new FakeXRAnchorCreationEvent("anchorcreate", {
|
const anchorCreationParameters = {
|
||||||
requestedAnchorOrigin: mojoFromAnchor,
|
requestedAnchorOrigin: mojoFromAnchor,
|
||||||
isAttachedToEntity: false,
|
isAttachedToEntity: false,
|
||||||
});
|
};
|
||||||
|
|
||||||
this.dispatchEvent(createAnchorEvent);
|
const anchorController = new FakeXRAnchorController();
|
||||||
|
|
||||||
if(createAnchorEvent.success) {
|
this.anchor_creation_callback_(anchorCreationParameters, anchorController)
|
||||||
let anchor_controller = createAnchorEvent.anchorController;
|
.then((result) => {
|
||||||
const anchor_id = this.next_anchor_id_;
|
if(result) {
|
||||||
this.next_anchor_id_++;
|
// If the test allowed the anchor creation,
|
||||||
|
// store the anchor controller & return success.
|
||||||
|
|
||||||
// If the test allowed the anchor creation,
|
const anchor_id = this.next_anchor_id_;
|
||||||
// store the anchor controller & return success.
|
this.next_anchor_id_++;
|
||||||
this.anchor_controllers_.set(anchor_id, anchor_controller);
|
|
||||||
anchor_controller.device = this;
|
|
||||||
anchor_controller.id = anchor_id;
|
|
||||||
|
|
||||||
resolve({
|
this.anchor_controllers_.set(anchor_id, anchorController);
|
||||||
result : device.mojom.CreateAnchorResult.SUCCESS,
|
anchorController.device = this;
|
||||||
anchorId : anchor_id
|
anchorController.id = anchor_id;
|
||||||
});
|
|
||||||
|
|
||||||
return;
|
resolve({
|
||||||
}
|
result : device.mojom.CreateAnchorResult.SUCCESS,
|
||||||
|
anchorId : anchor_id
|
||||||
resolve({
|
});
|
||||||
result : device.mojom.CreateAnchorResult.FAILURE,
|
} else {
|
||||||
anchorId : 0
|
// The test has rejected anchor creation.
|
||||||
});
|
resolve({
|
||||||
|
result : device.mojom.CreateAnchorResult.FAILURE,
|
||||||
|
anchorId : 0
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
// The test threw an error, treat anchor creation as failed.
|
||||||
|
resolve({
|
||||||
|
result : device.mojom.CreateAnchorResult.FAILURE,
|
||||||
|
anchorId : 0
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -897,6 +898,7 @@ class MockRuntime extends EventTarget {
|
||||||
const dataProviderRequest = mojo.makeRequest(dataProviderPtr);
|
const dataProviderRequest = mojo.makeRequest(dataProviderPtr);
|
||||||
this.dataProviderBinding_ = new mojo.Binding(
|
this.dataProviderBinding_ = new mojo.Binding(
|
||||||
device.mojom.XRFrameDataProvider, this, dataProviderRequest);
|
device.mojom.XRFrameDataProvider, this, dataProviderRequest);
|
||||||
|
this.sessionOptions_ = sessionOptions;
|
||||||
|
|
||||||
const clientReceiver = mojo.makeRequest(this.sessionClient_);
|
const clientReceiver = mojo.makeRequest(this.sessionClient_);
|
||||||
|
|
||||||
|
|
|
@ -32,11 +32,11 @@ const testFunctionGenerator = function(expectSucceeded, endSession, expectedErro
|
||||||
|
|
||||||
let debug = xr_debug.bind(this, 'testAnchorStates');
|
let debug = xr_debug.bind(this, 'testAnchorStates');
|
||||||
|
|
||||||
fakeDeviceController.addEventListener("anchorcreate", (anchorCreateEvent) => {
|
fakeDeviceController.setAnchorCreationCallback((parameters, controller) => {
|
||||||
// All anchor creation requests that reach this stage should be marked as successful.
|
// All anchor creation requests that reach this stage should be marked as successful.
|
||||||
// If this test is expected to fail, the failure will happen earlier in the anchor
|
// If this test is expected to fail, the failure will happen earlier in the anchor
|
||||||
// creation process.
|
// creation process.
|
||||||
anchorCreateEvent.success = true;
|
return Promise.resolve(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
let watcherDone = new Event("watcherdone");
|
let watcherDone = new Event("watcherdone");
|
||||||
|
|
|
@ -170,3 +170,15 @@
|
||||||
[WebGL test #52: attachment 7 should be 0,255,0,255\nat (0, 0) expected: 0,255,0,255 was 0,0,255,0]
|
[WebGL test #52: attachment 7 should be 0,255,0,255\nat (0, 0) expected: 0,255,0,255 was 0,0,255,0]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[WebGL test #44: attachment 7 should be 0,255,0,255\nat (0, 0) expected: 0,255,0,255 was 255,0,255,0]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[WebGL test #42: attachment 5 should be 0,255,0,255\nat (0, 0) expected: 0,255,0,255 was 0,0,0,255]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[WebGL test #51: attachment 6 should be 0,255,0,255\nat (0, 0) expected: 0,255,0,255 was 0,0,0,0]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[WebGL test #50: attachment 5 should be 0,255,0,255\nat (4, 0) expected: 0,255,0,255 was 255,0,0,0]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue