mirror of
https://github.com/servo/servo.git
synced 2025-08-05 05:30:08 +01:00
Update web-platform-tests to revision 1a7d6fcf01f28389b557b20951808a8adfef7e2d
This commit is contained in:
parent
cabd254509
commit
7b73751e5d
101 changed files with 1496 additions and 219 deletions
|
@ -4,7 +4,7 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
[flex-minimum-height-flex-items-025.html]
|
||||
[.outer-column-flexbox > div 3]
|
||||
expected: FAIL
|
||||
|
||||
[.outer-column-flexbox > div 2]
|
||||
expected: FAIL
|
||||
|
||||
[.outer-column-flexbox > div 1]
|
||||
expected: FAIL
|
||||
|
||||
[.outer-column-flexbox > div 4]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-height-flex-items-026.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-height-flex-items-027.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-height-flex-items-028.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-height-flex-items-030.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-width-flex-items-015.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
|||
[justify-content-006.html]
|
||||
[.middle > div 1]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -312,27 +312,24 @@
|
|||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,9 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript; charset=windows-1252 text/javascript]
|
||||
[separate text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[image-loads.html]
|
||||
expected: TIMEOUT
|
|
@ -5,3 +5,15 @@
|
|||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 9]
|
||||
expected: FAIL
|
||||
|
||||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 7]
|
||||
expected: FAIL
|
||||
|
||||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 6]
|
||||
expected: FAIL
|
||||
|
||||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 5]
|
||||
expected: FAIL
|
||||
|
||||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 8]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-1.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -5,18 +5,12 @@
|
|||
[input type search: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -29,42 +23,60 @@
|
|||
[input type text: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setRangeText() a second time (must not fire select)]
|
||||
[input type text: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionDirection a second time (must not fire select)]
|
||||
[input type tel: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
||||
[input type url: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
[popup-shadow-dom.tentative.html]
|
||||
[anchor references use the DOM tree not the flat tree]
|
||||
expected: FAIL
|
||||
|
||||
[The popup stack is preserved across shadow-inclusive ancestors]
|
||||
expected: FAIL
|
||||
|
||||
[Popups located inside shadow DOM can still be shown]
|
||||
expected: FAIL
|
||||
|
||||
[anchor references do not cross shadow boundaries]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -3,6 +3,3 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[entry.html]
|
||||
expected: TIMEOUT
|
||||
[Start function]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Sanity check: this all works as expected synchronously]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[audiocontext-not-fully-active.html]
|
||||
expected: TIMEOUT
|
||||
[frame in navigated remote-site frame]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -493,6 +493,13 @@
|
|||
]
|
||||
},
|
||||
"css-tables": {
|
||||
"absolute-crash.html": [
|
||||
"d45582560760c03163d3dc941e4aca6b0f03c588",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"visibility-collapse-colspan-crash.html": [
|
||||
"591fbd9a9941648f1456b41aeee1e23ed660a1ed",
|
||||
[
|
||||
|
@ -10845,15 +10852,6 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"css-overscroll-behavior": {
|
||||
"overscroll-behavior-manual.html": [
|
||||
"97f52984a51ae4157ec8ed91ddf4b3b8d405bec6",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"css-page": {
|
||||
"forced-page-breaks-002.xht": [
|
||||
"971dff0bd1681d5f29f2e3b02e300d4d06ec35a9",
|
||||
|
@ -14266,17 +14264,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"dom": {
|
||||
"events": {
|
||||
"document-level-wheel-event-listener-passive-by-default-manual.html": [
|
||||
"4fa67528ff748b6a55d13325b908f722fc511cae",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"dpub-aam": {
|
||||
"doc-abstract-manual.html": [
|
||||
"b67c7fa424b339973957af9e6423e5120334a167",
|
||||
|
@ -18182,13 +18169,6 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"pointerevent_touch-action-mouse-manual.html": [
|
||||
"fcc8584515c51d60bb01092ffe1f701273c7bb58",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"pointerevent_touch-action-rotated-divs_touch-manual.html": [
|
||||
"1c09b15f1f99eead72a0689ab14a4facb1c61e3f",
|
||||
[
|
||||
|
@ -142111,6 +142091,71 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-height-flex-items-026.html": [
|
||||
"9f46c953c4a8396c7dcb58012b16235c0b9e5377",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-height-flex-items-027.html": [
|
||||
"052ff6a5bd89c56b51d76a1782ac87d1a9d1e2c3",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-height-flex-items-028.html": [
|
||||
"45cf76837d345b8e84daec72462f8ae8c42f19b5",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-height-flex-items-029.html": [
|
||||
"62b77b92fc91f206d96b6208d65bfb3bd524088f",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-height-flex-items-030.html": [
|
||||
"a3dc56e59e433e64a6f024c5d9ea8264cb658210",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-width-flex-items-001.xht": [
|
||||
"cd18483ba414160c46e30bc282dec0c2fcd2f418",
|
||||
[
|
||||
|
@ -142280,6 +142325,32 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-width-flex-items-015.html": [
|
||||
"d4020fe75e3ee1e52b07576132f8db2f880ebfcd",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-width-flex-items-016.html": [
|
||||
"a3f4eb4a85cebf937e5568f7431358af71e388e3",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"flex-order.html": [
|
||||
"be24b2817e232b7ad7fc936b7b22787591d3d9db",
|
||||
[
|
||||
|
@ -143554,6 +143625,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"flexbox-definite-sizes-006.html": [
|
||||
"4b5aaf8dc443ed986dafc334c79dd3d7627698f8",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square-only.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"flexbox-dyn-resize-001.html": [
|
||||
"d64c4bdf28ecb783af4f342d515dcf63134602c6",
|
||||
[
|
||||
|
@ -153874,6 +153958,84 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"replaced-alignment-with-aspect-ratio-004.html": [
|
||||
"437b379332e90ab7ae4a48c17d3f9c7730ba3b98",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"replaced-alignment-with-aspect-ratio-005.html": [
|
||||
"b14c45d0c2d9cb93577b71df90d430aff37734d6",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"replaced-alignment-with-aspect-ratio-006.html": [
|
||||
"ed14e36057948ad5c90f702b6181adba8a72cca7",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"replaced-alignment-with-aspect-ratio-007.html": [
|
||||
"0c841c7654c237dd5cb17f5790cd738a79caef24",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"replaced-alignment-with-aspect-ratio-008.html": [
|
||||
"9227332851a46f597fbe8bb9d12f5d0b45975cfa",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"replaced-alignment-with-aspect-ratio-009.html": [
|
||||
"ff721b8f19b4c2c781fd0c3c69d3e44e541d63a8",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"self-baseline": {
|
||||
"grid-self-baseline-001.html": [
|
||||
"2473bb5d4fc8adc351af441bf39cffcacc076273",
|
||||
|
@ -250009,6 +250171,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"popup-inside-display-none.tentative.html": [
|
||||
"824e7005e9b4fc2037c1273b0ad526441a7acb0c",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/html/semantics/interactive-elements/the-popup-element/popup-hidden-display-ref.tentative.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"popup-open-display.tentative.html": [
|
||||
"0f6bd930212e2e9dd210c9af5814af5072706588",
|
||||
[
|
||||
|
@ -314706,6 +314881,14 @@
|
|||
"25b76c3c6f216793a36b1f29287dafd993898c67",
|
||||
[]
|
||||
],
|
||||
"25x50-green.png": [
|
||||
"6ab02fce0fa9b708880d4dbb2dc2b927fd30f59b",
|
||||
[]
|
||||
],
|
||||
"50x50-green.png": [
|
||||
"6c1406b7dfd7c59f413a183c8896b8c2b3395bf5",
|
||||
[]
|
||||
],
|
||||
"style-change.js": [
|
||||
"766d140d2b239bcc0c11e92481c5ff302d12db5c",
|
||||
[]
|
||||
|
@ -353519,7 +353702,7 @@
|
|||
]
|
||||
},
|
||||
"lint.ignore": [
|
||||
"0c12d66c04586cf2a807da9b25100fd925e01fa4",
|
||||
"e296376fb69cdef8d293d3b13fb620eb20016553",
|
||||
[]
|
||||
],
|
||||
"loading": {
|
||||
|
@ -359207,7 +359390,7 @@
|
|||
[]
|
||||
],
|
||||
"setup-worker-service.html": [
|
||||
"b7a387f47f95d8351572bf74e8f0bc9f1655f4d0",
|
||||
"dd9d9f54e0773e45cdcfa6ffdcaf0cd5d2949cd2",
|
||||
[]
|
||||
],
|
||||
"single-page-test-fail.html": [
|
||||
|
@ -359484,7 +359667,7 @@
|
|||
[]
|
||||
],
|
||||
"testharness.js": [
|
||||
"3623aa4d57e6bdab1fcab1b235646331381df31e",
|
||||
"adfb692ccd9bf202cc5642558c588ab168af7906",
|
||||
[]
|
||||
],
|
||||
"testharness.js.headers": [
|
||||
|
@ -374564,7 +374747,7 @@
|
|||
[]
|
||||
],
|
||||
"utils.js": [
|
||||
"940c2c28b962f326fa94f509ddb1468902f5b150",
|
||||
"9b0a022af8ecfe88b3e7ad72aa5c930d336996ae",
|
||||
[]
|
||||
],
|
||||
"vp9.mp4": [
|
||||
|
@ -400609,6 +400792,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"worker-data-set-timeout.sub.html": [
|
||||
"ac4b608b08c4ed3867f587847cc699a91cedc5c4",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"worker-eval-blocked.sub.html": [
|
||||
"9a264f2a240bfb89b29aeee7ec39fb1e035b0f52",
|
||||
[
|
||||
|
@ -407836,6 +408026,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-height-flex-items-025.html": [
|
||||
"2c1f6fa64c6711b5c4c6dd32d5e2055ff6e47689",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"flex-minimum-size-001.html": [
|
||||
"c2eea80ca5b79818f6b7a9a36ab1ff64826b5218",
|
||||
[
|
||||
|
@ -408643,6 +408840,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"justify-content-006.html": [
|
||||
"354763c90ce19d4d41a3b1b2b33db14759b2ab45",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"justify-content_space-between-002.html": [
|
||||
"fde1a7312408d02fe3843452585de2ee660ae6f7",
|
||||
[
|
||||
|
@ -415019,6 +415223,15 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"overscroll-behavior.html": [
|
||||
"f018d5cd8769bc4cf991d437f137d6153d2e7f93",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"parsing": {
|
||||
"overscroll-behavior-computed.html": [
|
||||
"e7b40d95c576016ca041ca167f876119ce431f08",
|
||||
|
@ -418909,7 +419122,7 @@
|
|||
]
|
||||
],
|
||||
"fixed-layout-2.html": [
|
||||
"13a4664249f3a758858e190fa9361ffc6b2ed17b",
|
||||
"dcbabb1ff7460ce563c3f127b9215e7b1211434b",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -432180,6 +432393,15 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"document-level-wheel-event-listener-passive-by-default.html": [
|
||||
"b7224835fa398b3a81415af4ff288899bf53c266",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"event-disabled-dynamic.html": [
|
||||
"3f995b02f1b421f376dc6037d42c442307503fb2",
|
||||
[
|
||||
|
@ -484721,7 +484943,7 @@
|
|||
]
|
||||
],
|
||||
"canvas-aspect-ratio.html": [
|
||||
"f523fd7219b204f1a7ac91805c206563d354e3ba",
|
||||
"91fdc6c86c55595c2484a88a4e026827c3608581",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -491914,6 +492136,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"popup-shadow-dom.tentative.html": [
|
||||
"f17bdabac4b2bdd1f2e615e3bf90cf6ee1018059",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"popup-stacking.tentative.html": [
|
||||
"bcba6f064c033aa25291fa7ff4df4ddb4f63d29d",
|
||||
[
|
||||
|
@ -508261,7 +508490,7 @@
|
|||
]
|
||||
],
|
||||
"showPicker-errors.https.window.js": [
|
||||
"ecc64dfe66d6dd9611b33c75cd2504d11814eaf7",
|
||||
"2310c323d9f37d317a65e2bb6cdcc001ebfa3568",
|
||||
[
|
||||
"native-file-system/showPicker-errors.https.window.html",
|
||||
{
|
||||
|
@ -514295,6 +514524,15 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_touch-action-mouse.html": [
|
||||
"9eb3839ec073a07cd7e820c363a9e84a2b69996e",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_touch-action-none-css_touch.html": [
|
||||
"2ff161a915c95d1c14916fede40ca76439813cc9",
|
||||
[
|
||||
|
@ -553141,7 +553379,7 @@
|
|||
},
|
||||
"the-oscillatornode-interface": {
|
||||
"ctor-oscillator.html": [
|
||||
"36bf604b296c63b213d99408ab38937c62a755dc",
|
||||
"bf50195a5b3bf7a9f49186f7892577381ba80c1a",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -553816,7 +554054,7 @@
|
|||
]
|
||||
],
|
||||
"video-frame.any.js": [
|
||||
"14cce43baf144aedc57eab1a84dd8517dc2804e0",
|
||||
"b02badc082f3f6627941a1e73e047065c12c95a2",
|
||||
[
|
||||
"webcodecs/video-frame.any.html",
|
||||
{
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
[flex-minimum-height-flex-items-025.html]
|
||||
[.outer-column-flexbox > div 3]
|
||||
expected: FAIL
|
||||
|
||||
[.outer-column-flexbox > div 2]
|
||||
expected: FAIL
|
||||
|
||||
[.outer-column-flexbox > div 1]
|
||||
expected: FAIL
|
||||
|
||||
[.outer-column-flexbox > div 4]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-height-flex-items-026.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-height-flex-items-027.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-height-flex-items-028.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-height-flex-items-030.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[flex-minimum-width-flex-items-015.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,4 @@
|
|||
[justify-content-006.html]
|
||||
[.middle > div 1]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -312,27 +312,24 @@
|
|||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -56,9 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript; charset=windows-1252 text/javascript]
|
||||
[separate text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[image-loads.html]
|
||||
expected: TIMEOUT
|
|
@ -5,3 +5,15 @@
|
|||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 9]
|
||||
expected: FAIL
|
||||
|
||||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 7]
|
||||
expected: FAIL
|
||||
|
||||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 6]
|
||||
expected: FAIL
|
||||
|
||||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 5]
|
||||
expected: FAIL
|
||||
|
||||
[Test javascript URL string return values in direct and indirect (target) frame contexts. 8]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[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
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -5,18 +5,12 @@
|
|||
[input type search: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -29,42 +23,60 @@
|
|||
[input type text: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setRangeText() a second time (must not fire select)]
|
||||
[input type text: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionDirection a second time (must not fire select)]
|
||||
[input type tel: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
||||
[input type url: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
[popup-shadow-dom.tentative.html]
|
||||
[anchor references use the DOM tree not the flat tree]
|
||||
expected: FAIL
|
||||
|
||||
[The popup stack is preserved across shadow-inclusive ancestors]
|
||||
expected: FAIL
|
||||
|
||||
[Popups located inside shadow DOM can still be shown]
|
||||
expected: FAIL
|
||||
|
||||
[anchor references do not cross shadow boundaries]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -4,6 +4,3 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
[entry.html]
|
||||
expected: TIMEOUT
|
||||
[Start function]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Sanity check: this all works as expected synchronously]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[audiocontext-not-fully-active.html]
|
||||
expected: TIMEOUT
|
||||
[frame in navigated remote-site frame]
|
||||
expected: FAIL
|
||||
|
||||
|
|
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<!-- We add two CSP entries on purpose. The first one does nothing
|
||||
for the purpose of this test, but we want to check that both are
|
||||
inherited -->
|
||||
<meta http-equiv="Content-Security-Policy" content="object-src: 'none'">
|
||||
<meta http-equiv="Content-Security-Policy" content="script-src data: 'self' 'unsafe-inline'; connect-src 'self';">
|
||||
<title>worker-data-set-timeout</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src='../support/testharness-helper.js'></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<script>
|
||||
fetch('./support/worker-with-script-src-none-set-timeout.js')
|
||||
.then(data => data.text())
|
||||
.then(
|
||||
text => assert_shared_worker_is_loaded(
|
||||
`data:text/javascript,${text}`,
|
||||
"Shared worker with data: url inherits CSP",
|
||||
"setTimeout blocked"));
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,56 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
|
||||
<link rel="bookmark" href="https://crbug.com/1033476">
|
||||
<meta name="assert" content="Column flex item's height does not influence its min-height content size suggestion in a varitey of scenarios.">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
|
||||
<style>
|
||||
.outer-column-flexbox {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100px;
|
||||
margin-bottom: 10px; /* Just for visually spacing things out */
|
||||
}
|
||||
</style>
|
||||
|
||||
<body onload="checkLayout('.outer-column-flexbox > div');">
|
||||
|
||||
<div id=log></div>
|
||||
|
||||
<p>Test passes if there is a sequence of filled green squares.</p>
|
||||
|
||||
<!-- %height of descendant is not resolved against specified height for purposes of min-content sizing. -->
|
||||
<div class=outer-column-flexbox>
|
||||
<div style="flex-basis: 100px; height: 200px;" data-expected-height=100>
|
||||
<div style="height: 100%; background: green;" data-expected-height=100></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Same as above, but with an orthogonal writing mode flex item. -->
|
||||
<div class=outer-column-flexbox>
|
||||
<div style="flex-basis: 100px; height: 200px; width: 100px; writing-mode: vertical-rl;" data-expected-height=100>
|
||||
<div style="height: 100%; background: green;" data-expected-height=100></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Same as #1 but with a grid child of the flex item. -->
|
||||
<div class=outer-column-flexbox>
|
||||
<div style="flex-basis: 100px; height: 200px;" data-expected-height=100>
|
||||
<div style="display: grid; height: 100%; background: green" data-expected-height=100></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Same as #1 but with a table child of the flex item that has a >0 intrinsic block size. -->
|
||||
<div class=outer-column-flexbox>
|
||||
<div style="flex-basis: 100px; height: 200px;" data-expected-height=100>
|
||||
<table data-expected-height=100 style="height: 100%; width: 100%; background: green">
|
||||
<td>
|
||||
<div style="height: 50px;"></div>
|
||||
</td>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html" />
|
||||
<meta name="assert" content="Child in nested column flexbox's grows to its parent's flex height, not its parent's specified height.">
|
||||
<link href="support/flexbox.css" rel="stylesheet">
|
||||
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
|
||||
<div class="flexbox column" style="height: 100px;">
|
||||
<!-- min-height: auto resolves to 0 because content-size suggestion is 0. -->
|
||||
<div class="flexbox column" style="flex: 1 0 0px; height: 200px">
|
||||
<!-- min-height: auto resolves to 0 because content-size suggestion is 0. -->
|
||||
<div style="flex: 1 0 0px; width: 100px; background: green;"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-direction-property">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<meta name="assert" content="Nested flex item shrinks correctly when its parent has a % height that resolves to smaller than the item's flex-basis." />
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
|
||||
<style>
|
||||
.OuterFlexbox {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.InnerFlexbox {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.InnerFlexbox-body {
|
||||
background: green;
|
||||
min-height: 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="OuterFlexbox">
|
||||
<div class="InnerFlexbox">
|
||||
<div class="InnerFlexbox-body">
|
||||
<div style="height: 200px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,14 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html" />
|
||||
<meta name="assert" content="Intermediate column flex item's specified min-height is honored.">
|
||||
<link href="support/flexbox.css" rel="stylesheet">
|
||||
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
|
||||
<div class="flexbox column">
|
||||
<div class="flexbox column" style="flex: 1 0 0px; min-height: 100px">
|
||||
<div style="flex: 1 0 0px; width: 100px; background: green;"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html" />
|
||||
<meta name="assert" content="Inner column flexbox doesn't wrap its items because its min-size reported to the outer flexbox accommated the sum of the items' intrinsic block sizes.">
|
||||
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
|
||||
<div style="display: flex; flex-direction: column;">
|
||||
<!-- min-height is min(100, 500) = 100 -->
|
||||
<!-- Final height is 100px. -->
|
||||
<div style="display: flex; flex-direction: column; flex-wrap: wrap; flex: 1 0 0px; height: 500px">
|
||||
<!-- min-height is 50 -->
|
||||
<div style="flex: 1 0 0px; width: 100px; background: green;">
|
||||
<div style="height: 50px;"></div>
|
||||
</div>
|
||||
<!-- min-height is 50 -->
|
||||
<div style="flex: 1 0 0px; width: 100px; background: green;">
|
||||
<div style="height: 50px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-wrap-property" />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html" />
|
||||
<meta name="assert" content="Inner column flexbox wraps its items when they don't fit in the vertical available space.">
|
||||
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
|
||||
<div style="display: flex; flex-direction: column; width: 100px;">
|
||||
<!-- min-height is min(200, 70) = 70 -->
|
||||
<!-- Final height is 70px. Items each have height 100px. They won't both fit, so they need to be wrapped. -->
|
||||
<div style="display: flex; flex-direction: column; flex-wrap: wrap; flex: 1 0 0px; height: 70px">
|
||||
<!-- min-height is 100 -->
|
||||
<div style="flex: 1 0 0px; width: 50px; background: green;">
|
||||
<div style="height: 100px;"></div>
|
||||
</div>
|
||||
<!-- min-height is 100 -->
|
||||
<div style="flex: 1 0 0px; width: 50px; background: green;">
|
||||
<div style="height: 100px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,15 @@
|
|||
<!doctype html>
|
||||
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org" />
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#definite-sizes" />
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
|
||||
<meta name="assert" content="Column flexbox's imposed definite size on row flexbox is honored when resolving percentages in automatic minimum size algorithm.">
|
||||
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<div style="display: flex; flex-direction: column; width: 100px; height: 444px;">
|
||||
<div style="flex-basis: 100px; display: flex; min-height: 0px;">
|
||||
<!-- min-width is min-height transferred through the aspect ratio: 1 x 100% x 100px = 100px -->
|
||||
<img src="support/200x200-green.png" style="min-height: 100%;">
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="dgrogan@chromium.org" href="mailto:dgrogan@chromium.org" />
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<meta name="assert" content="Height of flex item in row flexbox is not ignored when resolving percentages of its descendants to determine content based minimum size suggestion.">
|
||||
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
|
||||
<div style="display: flex; width: 0px; height: 20px;">
|
||||
<div style="flex-basis: 50px; height: 100px;">
|
||||
<img src="support/200x200-green.png" style="height: 100%">
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,12 @@
|
|||
<!doctype html>
|
||||
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#algo-stretch">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square-only.html">
|
||||
<meta name="assert" content="Item stretches to row flexbox's height when the row flexbox has a definite height but is a child of a column flexbox with an indefinite height." />
|
||||
<p>Test passes if there is a filled green square.</p>
|
||||
|
||||
<div style="display: flex; flex-direction: column;">
|
||||
<div style="height: 100px; display: flex;">
|
||||
<div style="width: 100px; background: green;"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#justify-content-property">
|
||||
<meta name="assert" content="Flex item in nested column flexbox is justified properly.">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
|
||||
<style>
|
||||
.outer {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100px;
|
||||
border: 2px solid black;
|
||||
position: relative;
|
||||
}
|
||||
.middle {
|
||||
flex: 0 0 50px;
|
||||
min-height: 50px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
</style>
|
||||
|
||||
Test passes if orange square is in bottom left corner of rectangle.
|
||||
|
||||
<div class="outer">
|
||||
<div class="middle">
|
||||
<div style="width: 30px; height: 30px; background: orange" data-offset-y=20></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
checkLayout('.middle > div');
|
||||
</script>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5713">
|
||||
<meta name="assert" content="If stretch alignment is applied to both axis the aspect-ratio of a replaced element is ignored.">
|
||||
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<div style="display: grid; grid-template: 100px / 100px; width: 100px; height: 100px; background: red;">
|
||||
<img src="support/25x50-green.png" width=25 height=50 style="background: green; align-self: stretch; justify-self: stretch; width: auto; height: auto;"></img>
|
||||
</div>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5713">
|
||||
<meta name="assert" content="If stretch alignment is applied to both axis the aspect-ratio of a replaced element is ignored.">
|
||||
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<div style="display: grid; grid-template: 100px / 100px; width: 100px; height: 100px; background: red;">
|
||||
<img src="support/25x50-green.png" width=25 height=50 style="background: green; align-self: stretch; justify-self: stretch; width: auto; height: auto; writing-mode: vertical-lr;"></img>
|
||||
</div>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5713">
|
||||
<meta name="assert" content="If stretch alignment is applied to both axis the aspect-ratio of a replaced element is ignored, but not when auto margins are present.">
|
||||
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<div style="display: grid; grid-template: 100px / 500px; width: 100px; height: 100px; background: red;">
|
||||
<img src="support/50x50-green.png" width=50 height=50 style="background: green; align-self: stretch; justify-self: stretch; width: auto; height: auto; margin-right: auto;"></img>
|
||||
</div>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5713">
|
||||
<meta name="assert" content="If stretch alignment is applied to both axis the aspect-ratio of a replaced element is ignored, but not when auto margins are present.">
|
||||
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<div style="display: grid; grid-template: 500px / 100px; width: 100px; height: 100px; background: red;">
|
||||
<img src="support/50x50-green.png" width=50 height=50 style="background: green; align-self: stretch; justify-self: stretch; width: auto; height: auto; margin-bottom: auto;"></img>
|
||||
</div>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5713">
|
||||
<meta name="assert" content="Stretch alignment in one axis should apply aspect-ratio in the other">
|
||||
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<div style="display: grid; grid-template: 100px / 100px; width: 100px; height: 100px; background: red;">
|
||||
<img src="support/50x50-green.png" width=50 height=50 style="background: green; justify-self: stretch; width: auto; height: auto;"></img>
|
||||
</div>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
|
||||
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5713">
|
||||
<meta name="assert" content="Stretch alignment in one axis should apply aspect-ratio in the other">
|
||||
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<div style="display: grid; grid-template: 100px / 100px; width: 100px; height: 100px; background: red;">
|
||||
<img src="support/50x50-green.png" width=50 height=50 style="background: green; align-self: stretch; width: auto; height: auto;"></img>
|
||||
</div>
|
Binary file not shown.
After Width: | Height: | Size: 99 B |
Binary file not shown.
After Width: | Height: | Size: 205 B |
|
@ -1,6 +1,10 @@
|
|||
<!doctype html>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="/css/css-scroll-snap/support/common.js"></script>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-overscroll-behavior">
|
||||
|
||||
<style>
|
||||
|
@ -57,11 +61,22 @@ setup({explicit_timeout: true});
|
|||
const container = document.getElementById('container');
|
||||
const non_scrollable = document.getElementById('non_scrollable');
|
||||
const root = document.getElementById('root');
|
||||
const btnDone = document.getElementById('btnDone');
|
||||
var test = async_test("overscroll-behavior prevents scroll-propagation in the area and direction as specified");
|
||||
var instruction1 = document.getElementById("i1");
|
||||
var instruction2 = document.getElementById("i2");
|
||||
var instruction3 = document.getElementById("i3");
|
||||
var instruction4 = document.getElementById("i4");
|
||||
var actions_promise;
|
||||
|
||||
scrollTop = () => container.scrollTop;
|
||||
scrollLeft = () => container.scrollLeft;
|
||||
|
||||
function smoothScrollByXY(xPosition, yPosition, xScrollOffset, yScrollOffset) {
|
||||
return new test_driver.Actions()
|
||||
.scroll(xPosition, yPosition, xScrollOffset, yScrollOffset)
|
||||
.send();
|
||||
}
|
||||
|
||||
function setUpForRoot(offset) {
|
||||
root.scrollTop = offset;
|
||||
|
@ -137,7 +152,9 @@ function verify_non_scrollable_allows_propagation() {
|
|||
assert_equals(root.scrollLeft, 0);
|
||||
assert_equals(root.scrollTop, 0);
|
||||
}, "overscroll-behavior on non-scrollable area should not affect scroll propagation.");
|
||||
test.done();
|
||||
actions_promise.then( () => {
|
||||
test.done();
|
||||
});
|
||||
}
|
||||
|
||||
var verifyAndSetupForNext = [
|
||||
|
@ -147,7 +164,7 @@ var verifyAndSetupForNext = [
|
|||
verify_inner_allowed_and_set_nonscrollable_allows_propagation,
|
||||
verify_non_scrollable_allows_propagation];
|
||||
|
||||
on_event(document.getElementById("btnDone"), "click", function() {
|
||||
on_event(btnDone, "click", function() {
|
||||
if (current_test < verifyAndSetupForNext.length)
|
||||
verifyAndSetupForNext[current_test++]();
|
||||
});
|
||||
|
@ -155,4 +172,27 @@ on_event(document.getElementById("btnDone"), "click", function() {
|
|||
var current_test = 0;
|
||||
verifyAndSetupForNext[current_test++]();
|
||||
|
||||
// Inject scroll actions.
|
||||
const test_cases = [
|
||||
{ x: 200, y: 500, dx: -200, dy: -200 },
|
||||
{ x: 200, y: 500, dx: -200, dy: -200 },
|
||||
{ x: 200, y: 500, dx: -200, dy: -200 },
|
||||
{ x: 200, y: 100, dx: -200, dy: -200 },
|
||||
];
|
||||
|
||||
actions_promise = new Promise( (resolve) => {resolve();} );
|
||||
for (let action of test_cases) {
|
||||
actions_promise = actions_promise.then(() => {
|
||||
return smoothScrollByXY(action.x, action.y, 0, action.dy);
|
||||
}).then(() => {
|
||||
return waitForAnimationEnd(scrollTop);
|
||||
}).then(() => {
|
||||
return smoothScrollByXY(action.x, action.y, action.dx, 0);
|
||||
}).then(() => {
|
||||
return waitForAnimationEnd(scrollLeft);
|
||||
}).then(() => {
|
||||
return test_driver.click(btnDone);
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
|
@ -0,0 +1,10 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://crbug.com/958381">
|
||||
<table style="position: relative; max-height: 10px;">
|
||||
<caption>caption</caption>
|
||||
<td><div id=target style="position: absolute;"></div></td>
|
||||
</table>
|
||||
<script>
|
||||
document.body.offsetTop;
|
||||
document.getElementById('target').style.top = '10px';
|
||||
</script>
|
|
@ -30,8 +30,8 @@
|
|||
|
||||
<hr/>
|
||||
<p>This should be a 100px-wide blue square:</p>
|
||||
<p>Table-layout:fixed does not apply to width:min-content/fit-content tables</p>
|
||||
<x-table style="table-layout: auto; width: fit-content; border-spacing: 0px">
|
||||
<p>Table-layout:fixed does apply to width:min-content/fit-content tables</p>
|
||||
<x-table style="table-layout: fixed; width: fit-content; border-spacing: 0px">
|
||||
<x-tr>
|
||||
<x-td style="padding: 0; background: blue; height: 50px;"><div style="width: 100px"></div></x-td>
|
||||
<x-td style="padding: 0"></x-td>
|
||||
|
@ -39,8 +39,8 @@
|
|||
</x-table>
|
||||
<x-table style="table-layout: fixed; width: min-content; border-spacing: 0px">
|
||||
<x-tr>
|
||||
<x-td style="padding: 0; background: blue; height: 50px;"><div style="width: 100px"></div></x-td>
|
||||
<x-td style="padding: 0"></x-td>
|
||||
<x-td style="padding: 0; background: blue; height: 50px;width:100px;"><div style="width: 100px"></div></x-td>
|
||||
<x-td style="padding: 0;height:50px"><div style="width: 100px"></div></x-td>
|
||||
</x-tr>
|
||||
</x-table>
|
||||
|
||||
|
@ -75,10 +75,10 @@
|
|||
'fixed'
|
||||
],
|
||||
[
|
||||
"Table-layout:fixed is not applied when width is min-content",
|
||||
"Table-layout:fixed is applied when width is min-content",
|
||||
document.querySelector("x-table:nth-of-type(3) > x-tr:first-child > x-td:first-child").offsetWidth,
|
||||
document.querySelector("x-table:nth-of-type(4) > x-tr:first-child > x-td:first-child").offsetWidth
|
||||
],
|
||||
]
|
||||
])
|
||||
|
||||
</script>
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
<link rel="help" href="https://github.com/WICG/interventions/issues/64">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<body onload=runTest()>
|
||||
<div>This is a manual test since there is no way to synthesize wheel events.
|
||||
Scroll by wheel in the middle of the page to run the test.</div>
|
||||
|
@ -35,6 +38,12 @@ function waitFor(condition) {
|
|||
|
||||
function runTest() {
|
||||
promise_test (async () => {
|
||||
const pos_x = Math.floor(window.innerWidth / 2);
|
||||
const pos_y = Math.floor(window.innerHeight / 2);
|
||||
const delta_x = 0;
|
||||
const delta_y = 100;
|
||||
await new test_driver.Actions()
|
||||
.scroll(pos_x, pos_y, delta_x, delta_y).send();
|
||||
await waitFor(()=> { return wheel_arrived; });
|
||||
assert_false(cancelable);
|
||||
}, "Wheel events are non-cancelable since the event listener is treated as passive.");
|
|
@ -10,11 +10,18 @@
|
|||
}
|
||||
</style>
|
||||
<body>
|
||||
<canvas id="contained" width="250" height="100" style="contain: size;"></canvas>
|
||||
<script>
|
||||
function assert_ratio(img, expected) {
|
||||
let epsilon = 0.001;
|
||||
assert_approx_equals(parseInt(getComputedStyle(img).width, 10) / parseInt(getComputedStyle(img).height, 10), expected, epsilon);
|
||||
}
|
||||
|
||||
test(function() {
|
||||
canvas = document.getElementById("contained");
|
||||
assert_ratio(canvas, 2.5);
|
||||
}, "Canvas width and height attributes are used as the surface size with contain:size");
|
||||
|
||||
// Create and append a new canvas and immediately check the ratio.
|
||||
test(function() {
|
||||
var canvas = document.createElement("canvas");
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<link rel=author title="Mason Freed" href="mailto:masonfreed@chromium.org">
|
||||
<link rel=help href="https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Popup/explainer.md">
|
||||
<link rel=match href="popup-hidden-display-ref.tentative.html">
|
||||
|
||||
No popup should be displayed here.<p>
|
||||
|
||||
<div style="display:none">
|
||||
<popup>This content should be hidden</popup>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
const popup = document.querySelector('popup');
|
||||
popup.show();
|
||||
if (!popup.open)
|
||||
document.body.appendChild(document.createTextNode('FAIL'));
|
||||
</script>
|
|
@ -0,0 +1,165 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<link rel="author" title="Mason Freed" href="mailto:masonfreed@chromium.org">
|
||||
<link rel=help href="https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/Popup/explainer.md">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<script>
|
||||
function ensureShadowDom(host) {
|
||||
host.querySelectorAll('my-element').forEach(host => {
|
||||
if (host.shadowRoot)
|
||||
return; // Declarative Shadow DOM is enabled
|
||||
const template = host.firstElementChild;
|
||||
assert_true(template instanceof HTMLTemplateElement);
|
||||
const shadow = host.attachShadow({mode: 'open'});
|
||||
shadow.appendChild(template.content);
|
||||
template.remove();
|
||||
})
|
||||
}
|
||||
function findPopups(root) {
|
||||
let popups = [];
|
||||
if (!root)
|
||||
return popups;
|
||||
if (root instanceof HTMLPopupElement)
|
||||
popups.push(root);
|
||||
popups.push(...findPopups(root.shadowRoot));
|
||||
root.childNodes.forEach(child => {
|
||||
popups.push(...findPopups(child));
|
||||
})
|
||||
return popups;
|
||||
}
|
||||
function getPopupReferences(testId) {
|
||||
const testRoot = document.querySelector(`#${testId}`);
|
||||
assert_true(!!testRoot);
|
||||
ensureShadowDom(testRoot);
|
||||
return findPopups(testRoot);
|
||||
}
|
||||
function popupVisible(popup) {
|
||||
const style = getComputedStyle(popup);
|
||||
return !!(style.display !== "none" && style.visibility !== "hidden" &&
|
||||
(popup.offsetWidth || popup.offsetHeight || popup.getClientRects().length));
|
||||
}
|
||||
function showPopup(testId,popupNum) {
|
||||
getPopupReferences(testId)[popupNum].show();
|
||||
}
|
||||
</script>
|
||||
|
||||
<div id=test1>
|
||||
<button onclick='showPopup("test1",0)'>Test1 Popup</button>
|
||||
<my-element>
|
||||
<template shadowroot=open>
|
||||
<popup>
|
||||
<p>This should show, even though it is inside shadow DOM.</p>
|
||||
</popup>
|
||||
</template>
|
||||
</my-element>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
const popup = getPopupReferences('test1')[0];
|
||||
popup.show();
|
||||
assert_true(popup.open);
|
||||
assert_true(popupVisible(popup));
|
||||
}, "Popups located inside shadow DOM can still be shown");
|
||||
</script>
|
||||
|
||||
|
||||
<div id=test2>
|
||||
<button id=t2b1 onclick='showPopup("test2",0)'>Test 2 Popup 1</button>
|
||||
<popup anchor=t2b1 style="top: 400px;">
|
||||
<p>Popup 1</p>
|
||||
<button id=t2b2 onclick='showPopup("test2",1)'>Test 2 Popup 2</button>
|
||||
<my-element>
|
||||
<template shadowroot=open>
|
||||
<popup anchor=t2b2 style="top: 400px;">
|
||||
<p>This popup can never be visible:</p>
|
||||
<p>Hiding this popup will hide *all* open popups,</p>
|
||||
<p>because t2b2 doesn't exist in this context.</p>
|
||||
<p>And since popup 1 is not shown, it is display:none,</p>
|
||||
<p>which means no child content is shown at all.</p>
|
||||
</popup>
|
||||
</template>
|
||||
</my-element>
|
||||
</popup>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
const [popup1,popup2] = getPopupReferences('test2');
|
||||
popup1.show();
|
||||
assert_true(popup1.open);
|
||||
assert_true(popupVisible(popup1));
|
||||
popup2.show();
|
||||
assert_false(popup1.open); // P1 was closed by P2
|
||||
assert_true(popup2.open); // P2 thinks it is open
|
||||
assert_false(popupVisible(popup1)); // But neither is visible
|
||||
assert_false(popupVisible(popup2));
|
||||
}, "anchor references do not cross shadow boundaries");
|
||||
</script>
|
||||
|
||||
|
||||
<div id=test3>
|
||||
<my-element>
|
||||
<template shadowroot=open>
|
||||
<button id=t3b1 onclick='showPopup("test3",0)'>Test 3 Popup 1</button>
|
||||
<popup anchor=t3b1>
|
||||
<p>This popup will be hidden when popup2 shows.</p>
|
||||
<slot></slot>
|
||||
</popup>
|
||||
</template>
|
||||
<button id=t3b2 onclick='showPopup("test3",1)'>Test 3 Popup 2</button>
|
||||
</my-element>
|
||||
<popup anchor=t3b2>Popup 2</popup>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
const [popup1,popup2] = getPopupReferences('test3');
|
||||
popup1.show();
|
||||
assert_true(popup1.open);
|
||||
assert_true(popupVisible(popup1));
|
||||
// Showing popup2 will close popup1, since it is not a DOM
|
||||
// tree ancestor of popup2's anchor button.
|
||||
popup2.show();
|
||||
assert_true(popup2.open);
|
||||
assert_true(popupVisible(popup2));
|
||||
assert_false(popup1.open);
|
||||
assert_false(popupVisible(popup1));
|
||||
popup2.hide();
|
||||
}, "anchor references use the DOM tree not the flat tree");
|
||||
</script>
|
||||
|
||||
|
||||
<div id=test4>
|
||||
<button id=t4b1 onclick='showPopup("test4",0)'>Test 4 Popup 1</button>
|
||||
<popup anchor=t4b1>
|
||||
<p>This should not get hidden when popup2 opens.</p>
|
||||
<my-element>
|
||||
<template shadowroot=open>
|
||||
<button id=t4b2 onclick='showPopup("test4",1)'>Test 4 Popup 2</button>
|
||||
<popup anchor=t4b2>
|
||||
<p>This should not hide popup1.</p>
|
||||
</popup>
|
||||
</template>
|
||||
</my-element>
|
||||
</popup>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
test(function() {
|
||||
const [popup1,popup2] = getPopupReferences('test4');
|
||||
popup1.show();
|
||||
popup2.show();
|
||||
// Both 1 and 2 should be open at this point.
|
||||
assert_true(popup1.open);
|
||||
assert_true(popupVisible(popup1));
|
||||
assert_true(popup2.open);
|
||||
assert_true(popupVisible(popup2));
|
||||
// This should hide both of them.
|
||||
popup1.hide();
|
||||
assert_false(popup2.open);
|
||||
assert_false(popupVisible(popup2));
|
||||
}, "The popup stack is preserved across shadow-inclusive ancestors");
|
||||
</script>
|
|
@ -613,6 +613,9 @@ CSS-COLLIDING-SUPPORT-NAME: css/css-backgrounds/support/50x50-green.png
|
|||
CSS-COLLIDING-SUPPORT-NAME: css/css-grid/grid-items/support/50x50-green.png
|
||||
CSS-COLLIDING-SUPPORT-NAME: css/CSS2/support/50x50-green.png
|
||||
CSS-COLLIDING-SUPPORT-NAME: css/CSS2/ui/support/animated.gif
|
||||
CSS-COLLIDING-SUPPORT-NAME: css/css-grid/alignment/support/50x50-green.png
|
||||
CSS-COLLIDING-SUPPORT-NAME: css/css-grid/alignment/support/25x50-green.png
|
||||
CSS-COLLIDING-SUPPORT-NAME: css/css-grid/grid-items/support/25x50-green.png
|
||||
CSS-COLLIDING-SUPPORT-NAME: css/CSS2/backgrounds/support/animated.gif
|
||||
CSS-COLLIDING-SUPPORT-NAME: css/css-shapes/shape-outside/shape-image/support/animated.gif
|
||||
CSS-COLLIDING-SUPPORT-NAME: css/css-display/support/util.js
|
||||
|
|
|
@ -84,7 +84,7 @@ function define_file_picker_error_tests(showPickerMethod) {
|
|||
await promise_rejects_js(t, TypeError, self[showPickerMethod]({
|
||||
startIn: 'secrets',
|
||||
}));
|
||||
}, showPickerMethod + ': unknown common starting directory.');
|
||||
}, showPickerMethod + ': unknown well-known starting directory.');
|
||||
|
||||
const invalid_extensions = {
|
||||
'.extensiontoolong': 'extension length more than 16.',
|
||||
|
|
|
@ -6,6 +6,9 @@
|
|||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="pointerevent_support.js"></script>
|
||||
<style>
|
||||
#target0 {
|
||||
|
@ -86,6 +89,7 @@
|
|||
var target0 = document.getElementById("target0");
|
||||
|
||||
var test_touchaction = async_test("touch-action attribute test");
|
||||
var actions_promise;
|
||||
|
||||
xScr0 = target0.scrollLeft;
|
||||
yScr0 = target0.scrollTop;
|
||||
|
@ -111,10 +115,22 @@
|
|||
}
|
||||
|
||||
if(xScrollIsReceived && yScrollIsReceived) {
|
||||
test_touchaction.done();
|
||||
// Make sure the test finishes after all the input actions are completed.
|
||||
actions_promise.then( () => {
|
||||
test_touchaction.done();
|
||||
});
|
||||
updateDescriptionComplete();
|
||||
}
|
||||
});
|
||||
|
||||
const posOffsetX = 0;
|
||||
const posOffsetY = 0;
|
||||
const scrollDeltaX = 200;
|
||||
const scrollDeltaY = 200;
|
||||
actions_promise = new test_driver.Actions()
|
||||
.scroll(posOffsetX, posOffsetY, scrollDeltaX, scrollDeltaY,
|
||||
{origin: target0})
|
||||
.send();
|
||||
}
|
||||
|
||||
function updateDescriptionNextStepMouse() {
|
|
@ -80,24 +80,6 @@ promise_test(function() {
|
|||
"\"navigator.serviceWorker exists\""
|
||||
],
|
||||
"status": 0
|
||||
},
|
||||
{
|
||||
"assert_name": "assert_true",
|
||||
"test": null,
|
||||
"args": [
|
||||
"true",
|
||||
"\"True is true\""
|
||||
],
|
||||
"status": 0
|
||||
},
|
||||
{
|
||||
"assert_name": "assert_false",
|
||||
"test": "Worker test",
|
||||
"args": [
|
||||
"false",
|
||||
"\"False is false\""
|
||||
],
|
||||
"status": 0
|
||||
}
|
||||
],
|
||||
"type": "complete"
|
||||
|
|
|
@ -3570,9 +3570,11 @@ policies and contribution forms [3].
|
|||
escape_html(test.message ? tests[i].message : " ") +
|
||||
(tests[i].stack ? "<pre>" +
|
||||
escape_html(tests[i].stack) +
|
||||
"</pre>": "") +
|
||||
"<details><summary>Asserts run</summary>" + get_asserts_output(test) + "</details>"
|
||||
"</td></tr>";
|
||||
"</pre>": "");
|
||||
if (!(test instanceof RemoteTest)) {
|
||||
html += "<details><summary>Asserts run</summary>" + get_asserts_output(test) + "</details>"
|
||||
}
|
||||
html += "</td></tr>";
|
||||
}
|
||||
html += "</tbody></table>";
|
||||
try {
|
||||
|
|
|
@ -95,8 +95,14 @@
|
|||
};
|
||||
should(() => {
|
||||
node = new OscillatorNode(context, options);
|
||||
}, 'new OscillatorNode(, ' + JSON.stringify(options) + ')').notThrow();
|
||||
}, 'new OscillatorNode(c, ' + JSON.stringify(options) + ')').notThrow();
|
||||
|
||||
should(
|
||||
() => {
|
||||
node = new OscillatorNode(context, {periodicWave: null});
|
||||
},
|
||||
'new OscillatorNode(c, {periodicWave: null}')
|
||||
.throw(DOMException, 'TypeError');
|
||||
task.done();
|
||||
});
|
||||
|
||||
|
|
|
@ -123,4 +123,20 @@ function testUnconfiguredCodec(test, codec, codecInput) {
|
|||
encodeOrDecodeShouldThrow(codec, codecInput);
|
||||
|
||||
return promise_rejects_dom(test, 'InvalidStateError', codec.flush(), 'flush');
|
||||
}
|
||||
}
|
||||
|
||||
// Verifies a PlaneInit structure matches the actual constructed plane.
|
||||
function verifyPlane(expected, actual) {
|
||||
assert_less_than_equal(expected.stride, actual.stride, 'plane strides');
|
||||
assert_equals(expected.rows, actual.rows, 'plane rows');
|
||||
assert_less_than_equal(
|
||||
expected.stride * expected.rows, actual.length, 'plane size');
|
||||
|
||||
var testBuffer = new Uint8Array(actual.length);
|
||||
actual.readInto(testBuffer);
|
||||
for (var h = 0; h < actual.rows; ++h) {
|
||||
assert_array_equals(
|
||||
expected.src.slice(h * expected.stride, expected.stride),
|
||||
testBuffer.slice(h * actual.stride, expected.stride), 'plane data');
|
||||
}
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue