Update web-platform-tests to revision 077d53c8da8b47c1d5060893af96a29f27b10008

This commit is contained in:
WPT Sync Bot 2021-01-05 08:22:08 +00:00
parent 29103941fe
commit 08d41a134a
74 changed files with 413 additions and 331 deletions

View file

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

View file

@ -0,0 +1,4 @@
[hit-test-floats-003.html]
[Miss float below something else]
expected: FAIL

View file

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

View file

@ -0,0 +1,2 @@
[dynamic-import.https.html]
expected: CRASH

View file

@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

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

View file

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

View file

@ -1,5 +1,5 @@
[embedded-opener-remove-frame.html]
expected: CRASH
expected: TIMEOUT
[opener of discarded nested browsing context]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,4 +0,0 @@
[form-double-submit-2.html]
[preventDefault should allow onclick submit() to succeed]
expected: FAIL

View file

@ -1,4 +0,0 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

@ -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

View file

@ -0,0 +1,4 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[import-in-moduleworker.html]
expected: ERROR
[Base URL in module dedicated workers: import]
expected: FAIL

View file

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

View file

@ -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",
[

View file

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

View file

@ -0,0 +1,4 @@
[hit-test-floats-003.html]
[Miss float below something else]
expected: FAIL

View file

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

View file

@ -1,2 +0,0 @@
[dynamic-import.html]
expected: CRASH

View file

@ -0,0 +1,2 @@
[dynamic-import.https.html]
expected: CRASH

View file

@ -2,3 +2,6 @@
[Hit test intersecting scaled box]
expected: FAIL
[Hit test within unscaled box]
expected: FAIL

View file

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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

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

View file

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

View file

@ -1,5 +1,5 @@
[embedded-opener-remove-frame.html]
expected: CRASH
expected: TIMEOUT
[opener and "removed" embedded documents]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,4 +0,0 @@
[form-double-submit-2.html]
[preventDefault should allow onclick submit() to succeed]
expected: FAIL

View file

@ -1,4 +0,0 @@
[form-double-submit-3.html]
[<button> should have the same double-submit protection as <input type=submit>]
expected: FAIL

View file

@ -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

View file

@ -0,0 +1,4 @@
[iframe_005.html]
[document.write external script into iframe write back into parent]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,5 @@
[017.html]
expected: TIMEOUT
[origin of the script that invoked the method, about:blank]
expected: TIMEOUT

View file

@ -0,0 +1,5 @@
[018.html]
expected: TIMEOUT
[origin of the script that invoked the method, javascript:]
expected: TIMEOUT

View file

@ -1,4 +1,5 @@
[import-in-moduleworker.html]
expected: ERROR
[Base URL in module dedicated workers: import]
expected: FAIL

View file

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

View file

@ -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>

View file

@ -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>

View file

@ -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';

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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);

View file

@ -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() );
}));

View file

@ -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", () => {

View file

@ -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();
}

View file

@ -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");

View file

@ -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()
}));

View file

@ -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);

View file

@ -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>

View file

@ -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>&lt;image&gt; embedding SVG image with auto height</title>
<h:link rel="match" href="reference/green-rect-100x100.svg"/>
</metadata>
<image href="data:image/svg+xml,&lt;svg xmlns='http://www.w3.org/2000/svg' width='50' height='50' &gt;&lt;rect width='50' height='50' fill='green'/&gt;&lt;/svg&gt;" width="1.5"/>
</svg>

After

Width:  |  Height:  |  Size: 479 B