mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Update web-platform-tests to revision 077d53c8da8b47c1d5060893af96a29f27b10008
This commit is contained in:
parent
29103941fe
commit
08d41a134a
74 changed files with 413 additions and 331 deletions
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[dynamic-import.https.html]
|
||||
expected: CRASH
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -17,3 +17,6 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
[parse-focus-visible.html]
|
||||
[":focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
["a:focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
[":focus:not(:focus-visible)" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
|
@ -309,21 +309,21 @@
|
|||
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
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>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,3 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript; charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[Content-Type-Options%3A%20nosniff]
|
||||
[X-Content-Type-Options%3A%20%22nosniFF%22]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[opener of discarded nested browsing context]
|
||||
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,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.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,4 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit-2.html]
|
||||
[preventDefault should allow onclick submit() to succeed]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -1,25 +1,10 @@
|
|||
[select-event.html]
|
||||
[textarea: 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 url: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart out of range 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: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -29,42 +14,51 @@
|
|||
[input type password: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: setSelectionRange 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
|
||||
|
||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange() 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: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart a second time (must not fire select)]
|
||||
[input type password: select() 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 password: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionDirection 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 tel: 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 out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[iframe_005.html]
|
||||
[document.write external script into iframe write back into parent]
|
||||
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,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -485,3 +485,6 @@
|
|||
[X SNR (-673.8482633884685 dB) is not greater than or equal to 65.737. Got -673.8482633884685.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t-4.0587832018260933e-37\t9.3139332532882690e-1\t9.3139332532882690e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.3139332532882690e-1 at index of 28696.\n\tMax RelError of 1.0000000000000000e+0 at index of 28696.\n]
|
||||
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 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[import-in-moduleworker.html]
|
||||
expected: ERROR
|
||||
[Base URL in module dedicated workers: import]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -169302,7 +169302,7 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"dynamic-import.html": [
|
||||
"dynamic-import.https.html": [
|
||||
"62957fcd4b77c799ebb70f788e8c23b5ca0ef677",
|
||||
[
|
||||
null,
|
||||
|
@ -171832,7 +171832,7 @@
|
|||
]
|
||||
],
|
||||
"position-sticky-nested-table.html": [
|
||||
"7a5fca415dcefacd590ec147efea99e6f4f134c3",
|
||||
"51ea20588ae1678d42b9c931a28edbd848a9a504",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -252868,6 +252868,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"image-embedding-svg-with-auto-height.svg": [
|
||||
"45ebb573762e03a9494a5c6a317c2d8c2ef2fca2",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/svg/embedded/reference/green-rect-100x100.svg",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"image-embedding-svg-with-viewport-units-inline-style.svg": [
|
||||
"7ef2655dc91c815d57d1496d2e5707d54ac94c5d",
|
||||
[
|
||||
|
@ -428975,8 +428988,15 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"focus-in-focus-event-001.html": [
|
||||
"bd4145a3fe5390c55a4e7e9eb29bbcfa922bdf1e",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"focus-visible-001.html": [
|
||||
"78d79e0b4757c82b5ac639ef2d03aaf76ce423af",
|
||||
"068368995794c0559d3551ca3dc3471f7d777240",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -428985,7 +429005,7 @@
|
|||
]
|
||||
],
|
||||
"focus-visible-002.html": [
|
||||
"703c9c0946c85797c2351ceb2aa88214793b0766",
|
||||
"2846ae465a5665ca1d33db3f4c0ec14bf620a47e",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -428995,7 +429015,7 @@
|
|||
]
|
||||
],
|
||||
"focus-visible-003.html": [
|
||||
"4d3df3d7b794eedb84d22dccf8309bbe1e4972dd",
|
||||
"9d57225708a89bfae2c1549144d2284f7f138ba6",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -429004,7 +429024,7 @@
|
|||
]
|
||||
],
|
||||
"focus-visible-004.html": [
|
||||
"f4a33111c09b120679a459447d0f4333d1ffec3a",
|
||||
"318d1eeb05430bd06fb166b8ffc13fa0b67c0c5c",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -429013,7 +429033,7 @@
|
|||
]
|
||||
],
|
||||
"focus-visible-005.html": [
|
||||
"7983727f80e7e7a9b192e7b078c25c5b8740681d",
|
||||
"4aec863e3b9af3d5ba568de34a320bf92dda2adf",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -429022,7 +429042,7 @@
|
|||
]
|
||||
],
|
||||
"focus-visible-006.html": [
|
||||
"0383eb841f4872cd581e457c1af3661a45d6e03d",
|
||||
"89d9782ac8eb439154d5f65f95f622d2c25acf3f",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -429040,7 +429060,7 @@
|
|||
]
|
||||
],
|
||||
"focus-visible-008.html": [
|
||||
"171530f4119aa69f6d8f32b7fbde920845bb0fc9",
|
||||
"c84985fe1015ee756459ad23967810988b38fedb",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -429049,21 +429069,21 @@
|
|||
]
|
||||
],
|
||||
"focus-visible-009.html": [
|
||||
"102c47e961207a4263f86ac1540bcbbfe272a9d3",
|
||||
"bbadd578e004e5b84203979c3a6c07a820bd7564",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"focus-visible-010.html": [
|
||||
"9cfc3b8146ca633b8605268cf8d1fa08b91804fa",
|
||||
"cfd4282e9b599b0caa62cbbfa15ea34d88217a29",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"focus-visible-011.html": [
|
||||
"73c4607fd10caac6dbd76495026cb13a6fd42ec3",
|
||||
"3d66dc91386ecc1fb7c7cc166150550c5a65275d",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -429072,7 +429092,7 @@
|
|||
]
|
||||
],
|
||||
"focus-visible-012.html": [
|
||||
"2ccb2e675616d4a38f36390db083d5d6c8b60253",
|
||||
"dcb00e18d2535a6ab826f089d1034185de6be446",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -429658,6 +429678,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"parse-focus-visible.html": [
|
||||
"52ac963add29bf7ef2c6828b12977e1b853d8e83",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"parse-id.html": [
|
||||
"2441c4217eb4b9ef1c8bde1aa5a96269b09b6304",
|
||||
[
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[dynamic-import.html]
|
||||
expected: CRASH
|
|
@ -0,0 +1,2 @@
|
|||
[dynamic-import.https.html]
|
||||
expected: CRASH
|
|
@ -2,3 +2,6 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -21,3 +21,6 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
[parse-focus-visible.html]
|
||||
[":focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
["a:focus-visible" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
||||
[":focus:not(:focus-visible)" should be a valid selector]
|
||||
expected: FAIL
|
||||
|
|
@ -309,21 +309,21 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
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>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,3 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript; charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[Content-Type-Options%3A%20nosniff]
|
||||
[X-Content-Type-Options%3A%20%22nosniFF%22]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[opener and "removed" embedded documents]
|
||||
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,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.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,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit-2.html]
|
||||
[preventDefault should allow onclick submit() to succeed]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -1,25 +1,10 @@
|
|||
[select-event.html]
|
||||
[textarea: 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 url: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart out of range 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: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -29,42 +14,51 @@
|
|||
[input type password: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: setSelectionRange 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
|
||||
|
||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange() 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: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart a second time (must not fire select)]
|
||||
[input type password: select() 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 password: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionDirection 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 tel: 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 out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[iframe_005.html]
|
||||
[document.write external script into iframe write back into parent]
|
||||
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,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -713,3 +713,6 @@
|
|||
[X SNR (-673.8482633884685 dB) is not greater than or equal to 65.737. Got -673.8482633884685.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t-4.0587832018260933e-37\t9.3139332532882690e-1\t9.3139332532882690e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.3139332532882690e-1 at index of 28696.\n\tMax RelError of 1.0000000000000000e+0 at index of 28696.\n]
|
||||
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 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[import-in-moduleworker.html]
|
||||
expected: ERROR
|
||||
[Base URL in module dedicated workers: import]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -64,7 +64,6 @@ window.addEventListener('load', function() {
|
|||
document.getElementById('scroller1').scrollTop = 50;
|
||||
document.getElementById('scroller2').scrollTop = 125;
|
||||
document.getElementById('scroller3').scrollTop = 250;
|
||||
createIndicatorForStickyElements(document.querySelectorAll('.sticky'));
|
||||
});
|
||||
</script>
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Selectors Level 4: :focus in focus event</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/selectors-4/#focus-pseudo">
|
||||
<link rel="help" href="https://w3c.github.io/uievents/#event-type-focus">
|
||||
<link rel="help" href="https://crbug.com/523126">
|
||||
<meta name='author' title='Takayoshi Kochi' href='mailto:kochi@chromium.org'>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<input type="text">
|
||||
<script>
|
||||
var input = document.querySelector('input');
|
||||
input.addEventListener('focus', function(e) {
|
||||
var focused = document.querySelector(':focus');
|
||||
test(() => {
|
||||
assert_equals(e.target, focused, "':focus' matches event.target");
|
||||
}, "Checks that ':focus' pseudo-class matches inside 'focus' evente handler");
|
||||
}, false);
|
||||
input.focus();
|
||||
</script>
|
|
@ -13,17 +13,17 @@
|
|||
<style>
|
||||
@supports not (selector(:focus-visible)) {
|
||||
:focus {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
}
|
||||
|
||||
:focus-visible {
|
||||
outline: darkgreen solid 5px;
|
||||
outline: green solid 5px;
|
||||
}
|
||||
|
||||
:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -39,7 +39,8 @@
|
|||
<script>
|
||||
async_test(function(t) {
|
||||
el.addEventListener("focus", t.step_func(function() {
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)");
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${el.tagName}#${el.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(el).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${el.tagName}#${el.id} should NOT be red`);
|
||||
t.done();
|
||||
}));
|
||||
const tab_key = '\ue004';
|
||||
|
|
|
@ -14,17 +14,17 @@
|
|||
<style>
|
||||
@supports not (selector(:focus-visible)) {
|
||||
:focus {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
}
|
||||
|
||||
:focus-visible {
|
||||
outline: darkgreen solid 5px;
|
||||
outline: green solid 5px;
|
||||
}
|
||||
|
||||
:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -37,76 +37,65 @@
|
|||
</ol>
|
||||
<br>
|
||||
<div>
|
||||
<input data-tested="false" id="input1" value="Focus me."></input>
|
||||
<input class="check" id="input1" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input2" type="text" value="Focus me."></input>
|
||||
<input class="check" id="input2" type="text" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input3" type="email" value="Focus me."></input>
|
||||
<input class="check" id="input3" type="email" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input4" type="password" value="Focus me."></input>
|
||||
<input class="check" id="input4" type="password" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input5" type="search" value="Focus me."></input>
|
||||
<input class="check" id="input5" type="search" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input6" type="telephone" value="Focus me."></input>
|
||||
<input class="check" id="input6" type="telephone" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input7" type="url" value="Focus me."></input>
|
||||
<input class="check" id="input7" type="url" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input8" type="number" value="10000"></input>
|
||||
<input class="check" id="input8" type="number" value="10000"></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input9" type="date"></input>
|
||||
<input class="check" id="input9" type="date"></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input10" type="datetime-local"></input>
|
||||
<input class="check" id="input10" type="datetime-local"></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input11" type="month"></input>
|
||||
<input class="check" id="input11" type="month"></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input12" type="time"></input>
|
||||
<input class="check" id="input12" type="time"></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="input13" type="week"></input>
|
||||
<input class="check" id="input13" type="week"></input>
|
||||
</div>
|
||||
<div>
|
||||
<textarea data-tested="false" id="input14">Focus me.</textarea>
|
||||
<textarea class="check" id="input14">Focus me.</textarea>
|
||||
</div>
|
||||
<div>
|
||||
<select data-tested="false" id="input15">
|
||||
<select class="check" id="input15">
|
||||
<option>Focus me.</option>
|
||||
<option>Focus me.</option>
|
||||
</select>
|
||||
</div>
|
||||
<script>
|
||||
async_test(function(t) {
|
||||
function mouseClickInTarget(selector) {
|
||||
let target = document.querySelector(selector);
|
||||
return test_driver.click(target);
|
||||
}
|
||||
|
||||
function testNextTarget(e) {
|
||||
let el = e.target;
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)");
|
||||
el.dataset.tested = true;
|
||||
let nextTarget = document.querySelector("[data-tested=false]");
|
||||
if (nextTarget) {
|
||||
nextTarget.addEventListener("click", testNextTarget);
|
||||
mouseClickInTarget("[data-tested=false]");
|
||||
} else {
|
||||
t.done();
|
||||
}
|
||||
}
|
||||
input1.addEventListener("click", t.step_func(testNextTarget));
|
||||
|
||||
mouseClickInTarget("[data-tested=false]");
|
||||
}, "Mouse focus on elements which would show a virtual keyboard should match :focus-visible");
|
||||
for (const target of document.querySelectorAll(".check")) {
|
||||
promise_test(() => {
|
||||
return new Promise(resolve => {
|
||||
target.addEventListener("focus", resolve);
|
||||
test_driver.click(target);
|
||||
}).then(() => {
|
||||
assert_equals(getComputedStyle(target).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${target.tagName}#${target.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(target).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${target.tagName}#${target.id} should NOT be red`);
|
||||
});
|
||||
}, `Focus element ${target.tagName}#${target.id} via mouse should match :focus-visible as it supports keyboard input`);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
|
||||
:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
background-color: darkseagreen;
|
||||
background-color: lime;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -36,45 +36,45 @@
|
|||
</ol>
|
||||
<br />
|
||||
<div>
|
||||
<span data-tested="false" id="el-1" tabindex="1">Focus me</span>
|
||||
<span class="check" id="el-1" tabindex="1">Focus me</span>
|
||||
</div>
|
||||
<div>
|
||||
<span data-tested="false" id="el-2" tabindex="-1">Focus me</span>
|
||||
<span class="check" id="el-2" tabindex="-1">Focus me</span>
|
||||
</div>
|
||||
<div>
|
||||
<span data-tested="false" id="el-3" tabindex="0">Focus me</span>
|
||||
<span class="check" id="el-3" tabindex="0">Focus me</span>
|
||||
</div>
|
||||
<div>
|
||||
<button data-tested="false" id="el-4">Focus me</span>
|
||||
<button class="check" id="el-4">Focus me</span>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="el-5" type="button" value="Focus me"></input>
|
||||
<input class="check" id="el-5" type="button" value="Focus me"></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="el-6" type="image" alt="Focus me."></input>
|
||||
<input class="check" id="el-6" type="image" alt="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="el-7" type="reset" value="Focus me."></input>
|
||||
<input class="check" id="el-7" type="reset" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="el-8" type="submit" value="Focus me."></input>
|
||||
<input class="check" id="el-8" type="submit" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<label><input data-tested="false" id="el-9" type="checkbox"></input> Focus me.</label>
|
||||
<label><input class="check" id="el-9" type="checkbox"></input> Focus me.</label>
|
||||
</div>
|
||||
<div>
|
||||
<label><input data-tested="false" id="el-10" type="radio"></input> Focus me.</label>
|
||||
<label><input class="check" id="el-10" type="radio"></input> Focus me.</label>
|
||||
</div>
|
||||
<div>
|
||||
<!-- Focusing file input triggers a modal, so only test manually -->
|
||||
<input id="el-12" type="file" value="Focus me."></input>
|
||||
<input id="el-11" type="file" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<label><input data-tested="false" id="el-13" type="range"></input> Focus me.</label>
|
||||
<label><input class="check" id="el-12" type="range"></input> Focus me.</label>
|
||||
</div>
|
||||
<div>
|
||||
<!-- Ensure the color input is last, as it has a pop-up which obscures other elements -->
|
||||
<label><input data-tested="false" id="el-11" type="color"></input> Focus me.</label>
|
||||
<label><input class="check" id="el-13" type="color"></input> Focus me.</label>
|
||||
</div>
|
||||
<script>
|
||||
function mouseClickInTarget(selector) {
|
||||
|
@ -82,22 +82,17 @@
|
|||
return test_driver.click(target);
|
||||
}
|
||||
|
||||
async_test(function(t) {
|
||||
document.querySelectorAll("[data-tested]").forEach((el) => {
|
||||
el.addEventListener("click", t.step_func((e) => {
|
||||
let el = e.target;
|
||||
assert_equals(getComputedStyle(el).outlineStyle, "none");
|
||||
el.dataset.tested = true;
|
||||
if (document.querySelector("[data-tested=false]")) {
|
||||
mouseClickInTarget("[data-tested=false]");
|
||||
} else {
|
||||
t.done();
|
||||
}
|
||||
}));
|
||||
for (const target of document.querySelectorAll(".check")) {
|
||||
promise_test(() => {
|
||||
return new Promise(resolve => {
|
||||
target.addEventListener("focus", resolve);
|
||||
test_driver.click(target);
|
||||
}).then(() => {
|
||||
assert_equals(getComputedStyle(target).backgroundColor, "rgb(0, 255, 0)", `backgroundColor for ${target.tagName}#${target.id} should be lime`);
|
||||
assert_not_equals(getComputedStyle(target).outlineColor, "rgb(255, 0, 0)", `outlineColor for ${target.tagName}#${target.id} should NOT be red`);
|
||||
});
|
||||
|
||||
mouseClickInTarget("[data-tested=false]");
|
||||
}, "Mouse focus on input elements which do not show a virtual keyboard should NOT match :focus-visible");
|
||||
}, `Focus element ${target.tagName}#${target.id} via mouse should NOT match :focus-visible as it does NOT support keyboard input`);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -23,7 +23,12 @@
|
|||
|
||||
:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
background-color: darkseagreen;
|
||||
background-color: lime;
|
||||
}
|
||||
|
||||
.check {
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -36,47 +41,39 @@
|
|||
</ol>
|
||||
<br />
|
||||
<div>
|
||||
<span data-tested="false" id="el-1" tabindex="1">Focus me</span>
|
||||
<span class="check" id="el-1" tabindex="1">Focus me</span>
|
||||
</div>
|
||||
<div>
|
||||
<span data-tested="false" id="el-2" tabindex="-1">Focus me</span>
|
||||
<span class="check" id="el-2" tabindex="-1">Focus me</span>
|
||||
</div>
|
||||
<div>
|
||||
<span data-tested="false" id="el-3" tabindex="0">Focus me</span>
|
||||
<span class="check" id="el-3" tabindex="0">Focus me</span>
|
||||
</div>
|
||||
<div>
|
||||
<button data-tested="false" id="el-4">Focus me</span>
|
||||
<button class="check" id="el-4">Focus me</span>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="el-5" type="button" value="Focus me"></input>
|
||||
<input class="check" id="el-5" type="button" value="Focus me"></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="el-6" type="image" alt="Focus me."></input>
|
||||
<input class="check" id="el-6" type="image" alt="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="el-7" type="reset" value="Focus me."></input>
|
||||
<input class="check" id="el-7" type="reset" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<input data-tested="false" id="el-8" type="submit" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<label><input data-tested="false" id="el-9" type="checkbox"></input> Focus me.</label>
|
||||
</div>
|
||||
<div>
|
||||
<label><input data-tested="false" id="el-10" type="radio"></input> Focus me.</label>
|
||||
<input class="check" id="el-8" type="submit" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<!-- Focusing file input triggers a modal, so only test manually -->
|
||||
<input id="el-12" type="file" value="Focus me."></input>
|
||||
<input id="el-9" type="file" value="Focus me."></input>
|
||||
</div>
|
||||
<div>
|
||||
<label><input data-tested="false" id="el-13" type="range"></input> Focus me.</label>
|
||||
<label><input class="check" id="el-10" type="range"></input> Focus me.</label>
|
||||
</div>
|
||||
<div>
|
||||
<!-- Ensure the color input is last, as it has a pop-up which obscures other elements,
|
||||
causing the `mouseClickInTarget` method to fail and the test to hang waiting for
|
||||
a click event.-->
|
||||
<label><input data-tested="false" id="el-11" type="color"></input> Focus me.</label>
|
||||
<!-- Ensure the color input is last, as it has a pop-up which obscures other elements -->
|
||||
<label><input class="check" id="el-11" type="color"></input> Focus me.</label>
|
||||
</div>
|
||||
<script>
|
||||
function mouseClickInTarget(selector) {
|
||||
|
@ -84,22 +81,17 @@
|
|||
return test_driver.click(target);
|
||||
}
|
||||
|
||||
async_test(function(t) {
|
||||
document.querySelectorAll("[data-tested]").forEach((el) => {
|
||||
el.addEventListener("click", t.step_func((e) => {
|
||||
let el = e.target;
|
||||
assert_equals(getComputedStyle(el).outlineStyle, "none");
|
||||
el.dataset.tested = true;
|
||||
if (document.querySelector("[data-tested=false]")) {
|
||||
mouseClickInTarget("[data-tested=false]");
|
||||
} else {
|
||||
t.done();
|
||||
}
|
||||
}));
|
||||
for (const target of document.querySelectorAll(".check")) {
|
||||
promise_test(() => {
|
||||
return new Promise(resolve => {
|
||||
target.addEventListener("focus", resolve);
|
||||
test_driver.click(target);
|
||||
}).then(() => {
|
||||
assert_equals(getComputedStyle(target).backgroundColor, "rgb(0, 255, 0)", `backgroundColor for ${target.tagName}#${target.id} should be lime`);
|
||||
assert_not_equals(getComputedStyle(target).outlineColor, "rgb(255, 0, 0)", `outlineColor for ${target.tagName}#${target.id} should NOT be red`);
|
||||
});
|
||||
|
||||
mouseClickInTarget("[data-tested=false]");
|
||||
}, "Mouse focus on input elements which do not show a virtual keyboard should NOT match :focus-visible - not affected by -webkit-appearance");
|
||||
}, `Focus element ${target.tagName}#${target.id} via mouse should NOT match :focus-visible as it does NOT support keyboard input - not affected by "appearance: none"`);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -16,9 +16,13 @@
|
|||
}
|
||||
}
|
||||
|
||||
:focus-visible {
|
||||
outline: red solid 5px;
|
||||
}
|
||||
|
||||
:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
background-color: darkseagreen;
|
||||
background-color: lime;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -38,7 +42,8 @@
|
|||
});
|
||||
async_test(function(t) {
|
||||
el.addEventListener("focus", t.step_func(function() {
|
||||
assert_equals(getComputedStyle(el).outlineStyle, "none");
|
||||
assert_equals(getComputedStyle(el).backgroundColor, "rgb(0, 255, 0)", `backgroundColor for ${el.tagName}#${el.id} should be lime`);
|
||||
assert_not_equals(getComputedStyle(el).outlineColor, "rgb(255, 0, 0)", `outlineColor for ${el.tagName}#${el.id} should NOT be red`);
|
||||
t.done();
|
||||
}));
|
||||
test_driver.click(button);
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<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>
|
||||
<style>
|
||||
span[contenteditable] {
|
||||
|
@ -17,19 +16,13 @@
|
|||
padding: 2px 5px;
|
||||
}
|
||||
|
||||
@supports not (selector(:focus-visible)) {
|
||||
:focus {
|
||||
background-color: tomato;
|
||||
}
|
||||
}
|
||||
|
||||
:focus-visible {
|
||||
outline: darkgreen solid 5px;
|
||||
outline: green solid 5px;
|
||||
}
|
||||
|
||||
:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -48,7 +41,8 @@
|
|||
var actions_promise;
|
||||
async_test(function(t) {
|
||||
el.addEventListener("focus", t.step_func(function() {
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)");
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${el.tagName}#${el.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(el).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${el.tagName}#${el.id} should NOT be red`);
|
||||
// Make sure the test finishes after all the input actions are completed.
|
||||
actions_promise.then( () => t.done() );
|
||||
}));
|
||||
|
|
|
@ -8,21 +8,20 @@
|
|||
<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>
|
||||
<style>
|
||||
@supports not (selector(:focus-visible)) {
|
||||
#el:focus {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
}
|
||||
|
||||
:focus-visible {
|
||||
outline: darkgreen solid 5px;
|
||||
outline: green solid 5px;
|
||||
}
|
||||
|
||||
#el:focus:not(:focus-visible) {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
outline: 0;
|
||||
}
|
||||
</style>
|
||||
|
@ -44,9 +43,11 @@
|
|||
el.focus();
|
||||
}));
|
||||
el.addEventListener("focus", t.step_func(function() {
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)");
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${el.tagName}#${el.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(el).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${el.tagName}#${el.id} should NOT be red`);
|
||||
t.done();
|
||||
}));
|
||||
test_driver.send_keys(el, "\ue004\ue007"); // TAB and ENTER
|
||||
}, "Programmatic focus after keypress should match :focus-visible");
|
||||
} else {
|
||||
button.addEventListener("click", () => {
|
||||
|
|
|
@ -10,16 +10,16 @@
|
|||
<style>
|
||||
@supports not (selector(:focus-visible)) {
|
||||
#buton:focus {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
}
|
||||
|
||||
:focus-visible {
|
||||
outline: darkgreen solid 5px;
|
||||
outline: green solid 5px;
|
||||
}
|
||||
|
||||
#button:focus:not(:focus-visible) {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
outline: 0;
|
||||
}
|
||||
</style>
|
||||
|
@ -34,13 +34,15 @@
|
|||
<script>
|
||||
async_test(function(t) {
|
||||
button.addEventListener("focus", t.step_func(function() {
|
||||
assert_equals(getComputedStyle(button).outlineColor, "rgb(0, 100, 0)");
|
||||
assert_equals(getComputedStyle(button).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${button.tagName}#${button.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(button).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${button.tagName}#${button.id} should NOT be red`);
|
||||
t.done();
|
||||
}));
|
||||
|
||||
// Handle the case where the button is focused before the test runs.
|
||||
if (document.activeElement === button) {
|
||||
assert_equals(getComputedStyle(button).outlineColor, "rgb(0, 100, 0)");
|
||||
assert_equals(getComputedStyle(button).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${button.tagName}#${button.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(button).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${button.tagName}#${button.id} should NOT be red`);
|
||||
t.done();
|
||||
}
|
||||
|
||||
|
|
|
@ -10,16 +10,16 @@
|
|||
<style>
|
||||
@supports not (selector(:focus-visible)) {
|
||||
:focus {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
}
|
||||
|
||||
:focus-visible {
|
||||
outline: darkgreen solid 5px;
|
||||
outline: green solid 5px;
|
||||
}
|
||||
|
||||
:focus:not(:focus-visible) {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
outline: 0;
|
||||
}
|
||||
</style>
|
||||
|
@ -38,7 +38,8 @@
|
|||
|
||||
async_test(function(t) {
|
||||
el.addEventListener("focus", t.step_func(function() {
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)");
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${el.tagName}#${el.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(el).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${el.tagName}#${el.id} should NOT be red`);
|
||||
t.done();
|
||||
}));
|
||||
}, "Programmatic focus on page load should match :focus-visible");
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<style>
|
||||
@supports not (selector(:focus-visible)) {
|
||||
#next:focus {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -21,11 +21,11 @@
|
|||
}
|
||||
|
||||
#next:focus-visible {
|
||||
outline: darkgreen solid 5px;
|
||||
outline: green solid 5px;
|
||||
}
|
||||
|
||||
#next:focus:not(:focus-visible) {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
outline: 0;
|
||||
}
|
||||
</style>
|
||||
|
@ -49,7 +49,8 @@
|
|||
|
||||
async_test(function(t) {
|
||||
next.addEventListener("focus", t.step_func(() => {
|
||||
assert_equals(getComputedStyle(next).outlineColor, "rgb(0, 100, 0)");
|
||||
assert_equals(getComputedStyle(next).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${next.tagName}#${next.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(next).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${next.tagName}#${next.id} should NOT be red`);
|
||||
t.done()
|
||||
}));
|
||||
|
||||
|
|
|
@ -13,18 +13,18 @@
|
|||
<style>
|
||||
@supports not (selector(:focus-visible)) {
|
||||
:focus {
|
||||
background-color: tomato;
|
||||
background-color: red;
|
||||
}
|
||||
}
|
||||
|
||||
:focus-visible {
|
||||
outline: 0;
|
||||
outline-color: tomato;
|
||||
background-color: tomato;
|
||||
outline-color: red;
|
||||
background-color: red;
|
||||
}
|
||||
|
||||
:focus:not(:focus-visible) {
|
||||
outline: darkgreen solid 5px;
|
||||
outline: green solid 5px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
@ -43,12 +43,14 @@
|
|||
var t = async_test( "Keyboard focus should match :focus-visible");
|
||||
|
||||
el.addEventListener("click", t.step_func(function(e) {
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)", "after focus()");
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${el.tagName}#${el.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(el).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${el.tagName}#${el.id} should NOT be red`);
|
||||
}), true);
|
||||
|
||||
el.addEventListener("keydown", t.step_func(function(e) {
|
||||
if (e.altKey || e.ctrlKey || e.metaKey) {
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)", "after kb event");
|
||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 128, 0)", `outlineColor for ${el.tagName}#${el.id} should be green`);
|
||||
assert_not_equals(getComputedStyle(el).backgroundColor, "rgb(255, 0, 0)", `backgroundColor for ${el.tagName}#${el.id} should NOT be red`);
|
||||
t.done();
|
||||
return;
|
||||
}
|
||||
|
@ -56,10 +58,6 @@
|
|||
t.done();
|
||||
}));
|
||||
|
||||
t.step_timeout(() => {
|
||||
assert_true(false, "timeout");
|
||||
}, 1000);
|
||||
|
||||
const ctrl_key = '\uE009';
|
||||
test_driver.click(el).then(() => {
|
||||
return test_driver.send_keys(el, ctrl_key);
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Selectors: :focus-visible pseudo-class</title>
|
||||
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
|
||||
<link rel="help" href="https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
<script>
|
||||
test_valid_selector(':focus-visible');
|
||||
test_valid_selector('a:focus-visible');
|
||||
test_valid_selector(':focus:not(:focus-visible)');
|
||||
</script>
|
|
@ -0,0 +1,8 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:h="http://www.w3.org/1999/xhtml" viewBox="0 0 3 3" width="200" height="200">
|
||||
<metadata>
|
||||
<title><image> embedding SVG image with auto height</title>
|
||||
<h:link rel="match" href="reference/green-rect-100x100.svg"/>
|
||||
</metadata>
|
||||
<image href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' ><rect width='50' height='50' fill='green'/></svg>" width="1.5"/>
|
||||
</svg>
|
After Width: | Height: | Size: 479 B |
Loading…
Add table
Add a link
Reference in a new issue