mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Auto merge of #28078 - servo-wpt-sync:wpt_update_19-01-2021, r=servo-wpt-sync
Sync WPT with upstream (19-01-2021) Automated downstream sync of changes from upstream as of 19-01-2021. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
97ee6792ca
91 changed files with 1112 additions and 201 deletions
|
@ -0,0 +1,8 @@
|
||||||
|
[url-charset.window.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[Blob charset should override any auto-detected charset.]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[Blob charset should override <meta charset>.]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[hit-test-floats-004.html]
|
||||||
|
[Miss float below something else]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -2,6 +2,3 @@
|
||||||
[Hit test intersecting scaled box]
|
[Hit test intersecting scaled box]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Hit test within unscaled box]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[elementFromPoint-001.html]
|
|
||||||
[CSSOM View - 5 - extensions to the Document interface]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[matchMedia-display-none-iframe.html]
|
|
||||||
expected: ERROR
|
|
|
@ -309,15 +309,21 @@
|
||||||
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/plain */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,3 +56,6 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -11,3 +11,9 @@
|
||||||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[X-Content-Type-Options%3A%20'NosniFF']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[traverse_the_history_5.html]
|
[traverse_the_history_4.html]
|
||||||
[Multiple history traversals, last would be aborted]
|
[Multiple history traversals, last would be aborted]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[embedded-opener-remove-frame.html]
|
[embedded-opener-remove-frame.html]
|
||||||
expected: CRASH
|
|
||||||
[opener of discarded nested browsing context]
|
[opener of discarded nested browsing context]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[focus-events.html]
|
||||||
|
[focusing on a focusable element fires a blur event at the previous focussed element]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[supported-elements.html]
|
[supported-elements.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Contenteditable element should support autofocus]
|
[Contenteditable element should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -9,7 +10,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Area element should support autofocus]
|
[Area element should support autofocus]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Host element with delegatesFocus should support autofocus]
|
[Host element with delegatesFocus should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_escaping-1.html]
|
[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]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-1.html]
|
[iframe_sandbox_popups_nonescaping-1.html]
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-2.html]
|
[iframe_sandbox_popups_nonescaping-2.html]
|
||||||
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
[select-event.html]
|
[select-event.html]
|
||||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: selectionDirection a second time (must not fire select)]
|
[textarea: selectionDirection a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -14,24 +11,9 @@
|
||||||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: select() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type url: selectionEnd out of range a second time (must not fire select)]
|
[input type url: selectionEnd out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type search: selectionEnd a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type password: setRangeText() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type tel: setSelectionRange out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -44,30 +26,54 @@
|
||||||
[input type password: selectionStart a second time (must not fire select)]
|
[input type password: selectionStart a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: setSelectionRange out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: selectionStart a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type text: selectionEnd out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type tel: setSelectionRange() a second time (must not fire select)]
|
[input type tel: setSelectionRange() a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: selectionDirection a second time (must not fire select)]
|
[input type url: selectionDirection a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: selectionEnd a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type text: selectionStart a second time (must not fire select)]
|
[input type text: selectionStart a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: selectionStart out of range a second time (must not fire select)]
|
[textarea: selectionEnd a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
[input type url: setSelectionRange() a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type url: selectionEnd 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 url: selectionStart 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 tel: selectionDirection a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type url: select() 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
|
||||||
|
|
||||||
|
[input type text: selectionStart out of range a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type text: setRangeText() a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type tel: select() a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type tel: selectionStart a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[realtimeanalyser-fft-scaling.html]
|
[realtimeanalyser-fft-scaling.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -548,3 +548,6 @@
|
||||||
[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\]\t1.9545141262291947e-15\t9.3139332532882690e-1\t9.3139332532882491e-1\t9.9999999999999789e-1\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.3139332532882491e-1 at index of 28696.\n\tMax RelError of 9.9999999999999789e-1 at index of 28696.\n]
|
[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\]\t1.9545141262291947e-15\t9.3139332532882690e-1\t9.3139332532882491e-1\t9.9999999999999789e-1\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.3139332532882491e-1 at index of 28696.\n\tMax RelError of 9.9999999999999789e-1 at index of 28696.\n]
|
||||||
expected: FAIL
|
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-1.1388699060609259e-22\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,4 @@
|
||||||
|
[events.py]
|
||||||
|
[test_event_mousemove]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[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,2 +0,0 @@
|
||||||
[Worker-constructor.html]
|
|
||||||
expected: ERROR
|
|
8
tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini
Normal file
8
tests/wpt/metadata/FileAPI/url/url-charset.window.js.ini
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[url-charset.window.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[Blob charset should override any auto-detected charset.]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[Blob charset should override <meta charset>.]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -18145,13 +18145,6 @@
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"pointerevent_element_haspointercapture_release_pending_capture-manual.html": [
|
|
||||||
"17ad3e24ba4cc2bae4a58d84225c2a841fa4e867",
|
|
||||||
[
|
|
||||||
null,
|
|
||||||
{}
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"pointerevent_multiple_primary_pointers_boundary_events-manual.html": [
|
"pointerevent_multiple_primary_pointers_boundary_events-manual.html": [
|
||||||
"029aa26368413ea96b90823285a780b6798a12d9",
|
"029aa26368413ea96b90823285a780b6798a12d9",
|
||||||
[
|
[
|
||||||
|
@ -18180,27 +18173,6 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"pointerevent_releasepointercapture_release_right_after_capture-manual.html": [
|
|
||||||
"8f64b9208732da5199dc934b3c16bee0c088146e",
|
|
||||||
[
|
|
||||||
null,
|
|
||||||
{}
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"pointerevent_setpointercapture_override_pending_capture_element-manual.html": [
|
|
||||||
"4e4818c21b706d9e169c7f82e8cd30cf82635dac",
|
|
||||||
[
|
|
||||||
null,
|
|
||||||
{}
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"pointerevent_setpointercapture_to_same_element_twice-manual.html": [
|
|
||||||
"161c5c2fcb9bf00d77779b630fd193b0cfd9164e",
|
|
||||||
[
|
|
||||||
null,
|
|
||||||
{}
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"pointerevent_touch-action-mouse-manual.html": [
|
"pointerevent_touch-action-mouse-manual.html": [
|
||||||
"fcc8584515c51d60bb01092ffe1f701273c7bb58",
|
"fcc8584515c51d60bb01092ffe1f701273c7bb58",
|
||||||
[
|
[
|
||||||
|
@ -338171,6 +338143,66 @@
|
||||||
"focus-restoration-in-same-site-iframes-outer-window.html": [
|
"focus-restoration-in-same-site-iframes-outer-window.html": [
|
||||||
"4ccba143d3ac9e89e768e252d05abd4892b8e5cf",
|
"4ccba143d3ac9e89e768e252d05abd4892b8e5cf",
|
||||||
[]
|
[]
|
||||||
|
],
|
||||||
|
"iframe-activeelement-after-focusing-out-different-site-iframes-outer.sub.html": [
|
||||||
|
"3fcebfc8ba4c69307ab7e67430d3668d2620f6fb",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-activeelement-after-focusing-out-iframes-inner.html": [
|
||||||
|
"a94af6b9fbae67eb010037187fb6f3350a3c0b5e",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-activeelement-after-focusing-out-same-site-iframes-outer.html": [
|
||||||
|
"98399deb7b61f41ec4f3cde4db95914b4152df21",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-contentwindow-focus-with-different-site-intermediate-frame-inner.html": [
|
||||||
|
"c4997f5bd4fa4dc37a0316ab7045577d2edd54c6",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-contentwindow-focus-with-different-site-intermediate-frame-middle.sub.html": [
|
||||||
|
"e3a5facf82e4c08753705ee1803b76ceef30f671",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-contentwindow-focus-with-different-site-intermediate-frame-outer.sub.html": [
|
||||||
|
"9dbb6af9d9a4dd795cd0976bc87695e0363372b4",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-contentwindow-focus-with-same-as-top-intermediate-frame-inner.html": [
|
||||||
|
"30be12aa811a7642578d6dcb467a49bdce01f92e",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-contentwindow-focus-with-same-as-top-intermediate-frame-middle.sub.html": [
|
||||||
|
"747e1467466eabe5b09ec80891603e8ad1a5335c",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-contentwindow-focus-with-same-as-top-intermediate-frame-outer.html": [
|
||||||
|
"71cfe78c0d7614f585a7dcecb3b6c12e6698d321",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-focus-with-different-site-intermediate-frame-inner.html": [
|
||||||
|
"e2adcc06b20c6eb7720fad86148215628f65b089",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-focus-with-different-site-intermediate-frame-middle.sub.html": [
|
||||||
|
"647f8928d6d01f387d4519eefc76f9885f80ab79",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-focus-with-different-site-intermediate-frame-outer.sub.html": [
|
||||||
|
"5e80410206d0d2fe7cbe5faef206c9a930a5a8ed",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-focus-with-same-as-top-intermediate-frame-inner.html": [
|
||||||
|
"c55c5b449983c74c9afb3cd2cdadf965c0e74252",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-focus-with-same-as-top-intermediate-frame-middle.sub.html": [
|
||||||
|
"9fdbc3c3582e88d67be9f0fe6624cb5b4bfa24df",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"iframe-focus-with-same-as-top-intermediate-frame-outer.html": [
|
||||||
|
"3f6085a739c36d046ad3e926328958f6a75d3ba7",
|
||||||
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -352626,7 +352658,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"custom-state-pseudo-class.idl": [
|
"custom-state-pseudo-class.idl": [
|
||||||
"d4e3da7e6a1a9e7763bde6b13c0add204ff3c7de",
|
"342f1ede0b030a85271a5db71b3773d1531aee48",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"deprecation-reporting.idl": [
|
"deprecation-reporting.idl": [
|
||||||
|
@ -353395,7 +353427,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"lint.ignore": [
|
"lint.ignore": [
|
||||||
"2e0fc8b39bc8df1a44d7b5469d81014c32fa844b",
|
"ab3d0e5157064def99f47cfbfc0e1207db477cbe",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"loading": {
|
"loading": {
|
||||||
|
@ -372650,7 +372682,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"stash.py": [
|
"stash.py": [
|
||||||
"535355a828796196ee6be950c5ef9a0802236826",
|
"bf6e59927be44a503aa9ca15b8495f57704f89e7",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"utils.py": [
|
"utils.py": [
|
||||||
|
@ -374415,6 +374447,10 @@
|
||||||
"input.html": [
|
"input.html": [
|
||||||
"e2c6dadd1218e0a7d8b7d243a1c49b7f47092d77",
|
"e2c6dadd1218e0a7d8b7d243a1c49b7f47092d77",
|
||||||
[]
|
[]
|
||||||
|
],
|
||||||
|
"test_click_wdspec.html": [
|
||||||
|
"a9451ec82bec97654896f697704218bb6068d14e",
|
||||||
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -374685,7 +374721,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"refine.py": [
|
"refine.py": [
|
||||||
"d5d24e934f61684be8512d120a4853bff7efadef",
|
"35c962b9ecbfa21c61535683c094e17884770e9f",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"test_actions_pointer_wdspec.html": [
|
"test_actions_pointer_wdspec.html": [
|
||||||
|
@ -374729,7 +374765,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"refine.py": [
|
"refine.py": [
|
||||||
"3a6d63e04ce941d26ab3898cb2fc2a730d46c1ce",
|
"90f722587c3be0e4066fbb6a604668a6d40f359f",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"test_actions_wdspec.html": [
|
"test_actions_wdspec.html": [
|
||||||
|
@ -374788,7 +374824,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"helpers.py": [
|
"helpers.py": [
|
||||||
"a1082caf58cf0466185268a3c95e59b643a76bcb",
|
"13607e30481876a7777edfad57f48fcafbf8e40f",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"html": {
|
"html": {
|
||||||
|
@ -431057,7 +431093,7 @@
|
||||||
},
|
},
|
||||||
"custom-state-pseudo-class": {
|
"custom-state-pseudo-class": {
|
||||||
"idlharness.window.js": [
|
"idlharness.window.js": [
|
||||||
"dccc0f56f4683ae975e3738641d9bddc3e08b7aa",
|
"d5d40c54616745c6110078d34c591d6d07a92fb2",
|
||||||
[
|
[
|
||||||
"custom-state-pseudo-class/idlharness.window.html",
|
"custom-state-pseudo-class/idlharness.window.html",
|
||||||
{
|
{
|
||||||
|
@ -458821,6 +458857,41 @@
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
|
],
|
||||||
|
"iframe-activeelement-after-focusing-out-iframes.html": [
|
||||||
|
"832b2675e2543813bc130295ceac976ff49c9128",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"iframe-contentwindow-focus-with-different-site-intermediate-frame.html": [
|
||||||
|
"2fdc8e843a1c4de8d613689afeb31d4a451ea976",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"iframe-contentwindow-focus-with-same-as-top-intermediate-frame.html": [
|
||||||
|
"cb9239f44d893e0f27342bd7300d40f54f49c892",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"iframe-focus-with-different-site-intermediate-frame.html": [
|
||||||
|
"fd3aab70579ef04bb9df6d95413a307e55e07643",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"iframe-focus-with-same-as-top-intermediate-frame.html": [
|
||||||
|
"b4763f9e2fae085eab5d8c0bddc89ecefd5f4cbf",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"font-access": {
|
"font-access": {
|
||||||
|
@ -483352,7 +483423,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"focus-events.html": [
|
"focus-events.html": [
|
||||||
"d63362aaa1828f35de410b56c1ccc2d7869a111e",
|
"5f8ca20a13d85427fa3d304254d0156224734248",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -513181,6 +513252,15 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"pointerevent_element_haspointercapture_release_pending_capture.html": [
|
||||||
|
"e75dff867528d91d62b14ac7e48d822626deba34",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"testdriver": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"pointerevent_fractional_coordinates.html": [
|
"pointerevent_fractional_coordinates.html": [
|
||||||
"b106340efd5d05ba4ab4281863a476dbe6134a64",
|
"b106340efd5d05ba4ab4281863a476dbe6134a64",
|
||||||
[
|
[
|
||||||
|
@ -513451,6 +513531,15 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"pointerevent_releasepointercapture_release_right_after_capture.html": [
|
||||||
|
"409951b918aa6ef9de4603ac97f330085080e2b7",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"testdriver": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"pointerevent_root_computed_style.html": [
|
"pointerevent_root_computed_style.html": [
|
||||||
"c3034d475eee8c58ed1b079fce9466925c5d0379",
|
"c3034d475eee8c58ed1b079fce9466925c5d0379",
|
||||||
[
|
[
|
||||||
|
@ -513510,6 +513599,15 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"pointerevent_setpointercapture_override_pending_capture_element.html": [
|
||||||
|
"f7c1d4299192f28ac8b3b99142951876f3155b45",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"testdriver": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"pointerevent_setpointercapture_relatedtarget.html": [
|
"pointerevent_setpointercapture_relatedtarget.html": [
|
||||||
"37de34d5a68375b44106f705164d46be78c57780",
|
"37de34d5a68375b44106f705164d46be78c57780",
|
||||||
[
|
[
|
||||||
|
@ -513519,6 +513617,15 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"pointerevent_setpointercapture_to_same_element_twice.html": [
|
||||||
|
"5225ac508d42dca00b0a7269c8a4f95350545d64",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{
|
||||||
|
"testdriver": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"pointerevent_suppress_compat_events_on_click.html": [
|
"pointerevent_suppress_compat_events_on_click.html": [
|
||||||
"2f99e7a976ac8006cff25b9cde1ee1e29b6a14d1",
|
"2f99e7a976ac8006cff25b9cde1ee1e29b6a14d1",
|
||||||
[
|
[
|
||||||
|
@ -532076,7 +532183,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"ShadowRoot-interface.html": [
|
"ShadowRoot-interface.html": [
|
||||||
"8efa50e4ea18cc6655dba923cdcf4f6e59029c5b",
|
"e95b1d9542e2e3b502693e0063de0980f5a32789",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -589877,6 +589984,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"events.py": [
|
||||||
|
"e3d32c1bcb44c7eb3b810fbce5ca0709c97abcd9",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"file_upload.py": [
|
"file_upload.py": [
|
||||||
"73832d0f85ae683ee2d1f54e9c0b7e3e432e9afd",
|
"73832d0f85ae683ee2d1f54e9c0b7e3e432e9afd",
|
||||||
[
|
[
|
||||||
|
@ -590796,7 +590910,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"key_events.py": [
|
"key_events.py": [
|
||||||
"c3958015bfd4dee51842a642e6762aafb5fabf2d",
|
"8dbe024d18396f010b2dcac7281b8436b5b69c65",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
@ -590833,7 +590947,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"pointer.py": [
|
"pointer.py": [
|
||||||
"9579a57aa7222d8a1f9517ad71735e86ec8a0e47",
|
"674d46d7b610294b6cadabb4e1e46d79cab8940d",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
@ -590842,21 +590956,21 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"pointer_contextmenu.py": [
|
"pointer_contextmenu.py": [
|
||||||
"fda3f18bbc1c9cdcede30abe74f6d4e2f297d48f",
|
"50f684327f2ab044905cbd3b0da59336ead25f20",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"pointer_dblclick.py": [
|
"pointer_dblclick.py": [
|
||||||
"8c89cef5f380d769705be704698232c7f9c928ec",
|
"5be635a4d5604e33bf61c41b2190e620309179b8",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"pointer_modifier_click.py": [
|
"pointer_modifier_click.py": [
|
||||||
"ba81f6d090b248c512cf896bc8e6059f252db8c8",
|
"28c4086e0f8c99d9350523b8a29478b7c54fa17e",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -590870,14 +590984,14 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"pointer_pause_dblclick.py": [
|
"pointer_pause_dblclick.py": [
|
||||||
"85679f3614a8fe010cba7dcd698ce5e82bc26660",
|
"d46178a1d650828ef84ccb02f08a12b292f4c3eb",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"pointer_tripleclick.py": [
|
"pointer_tripleclick.py": [
|
||||||
"3bf41bab849d5de742f8707eb98337e24ebbfb6d",
|
"8239fc2a60620fe4ea6616a0a15139ece54e8cad",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -590909,7 +591023,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"wheel.py": [
|
"wheel.py": [
|
||||||
"fc84f2f2e0148967464505f83317edac2e54bd84",
|
"67734800b19d3b08f934c8ec8c4dab0c4cd425f1",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -590970,7 +591084,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"sequence.py": [
|
"sequence.py": [
|
||||||
"2d816f8094b3975523904c9e197390dfc058dd06",
|
"75143d85ca600b3e3a2d7d5ac3679a26b7d7bf5a",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[hit-test-floats-004.html]
|
||||||
|
[Miss float below something else]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -2,6 +2,3 @@
|
||||||
[Hit test intersecting scaled box]
|
[Hit test intersecting scaled box]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Hit test within unscaled box]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[elementFromPoint-001.html]
|
|
||||||
[CSSOM View - 5 - extensions to the Document interface]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[matchMedia-display-none-iframe.html]
|
|
||||||
expected: ERROR
|
|
|
@ -309,15 +309,21 @@
|
||||||
[fetch(): separate response Content-Type: text/plain ]
|
[fetch(): separate response Content-Type: text/plain ]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/plain */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,3 +56,6 @@
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -11,3 +11,9 @@
|
||||||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[X-Content-Type-Options%3A%20'NosniFF']
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[X-Content-Type-Options%3A%20%40%23%24%23%25%25%26%5E%26%5E*()()11!%2Cnosniff]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
[traverse_the_history_5.html]
|
[traverse_the_history_4.html]
|
||||||
[Multiple history traversals, last would be aborted]
|
[Multiple history traversals, last would be aborted]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[embedded-opener-remove-frame.html]
|
[embedded-opener-remove-frame.html]
|
||||||
expected: CRASH
|
|
||||||
[opener and "removed" embedded documents]
|
[opener and "removed" embedded documents]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[focus-events.html]
|
||||||
|
[focusing on a focusable element fires a blur event at the previous focussed element]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[supported-elements.html]
|
[supported-elements.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Contenteditable element should support autofocus]
|
[Contenteditable element should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -9,7 +10,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Area element should support autofocus]
|
[Area element should support autofocus]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Host element with delegatesFocus should support autofocus]
|
[Host element with delegatesFocus should support autofocus]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[iframe_sandbox_popups_escaping-1.html]
|
[iframe_sandbox_popups_escaping-1.html]
|
||||||
type: testharness
|
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]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[iframe_sandbox_popups_nonescaping-1.html]
|
[iframe_sandbox_popups_nonescaping-1.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: CRASH
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[iframe_sandbox_popups_nonescaping-2.html]
|
[iframe_sandbox_popups_nonescaping-2.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
[select-event.html]
|
[select-event.html]
|
||||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: selectionDirection a second time (must not fire select)]
|
[textarea: selectionDirection a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -14,24 +11,9 @@
|
||||||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: select() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type url: selectionEnd out of range a second time (must not fire select)]
|
[input type url: selectionEnd out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[textarea: setSelectionRange() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type search: selectionEnd a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type password: setRangeText() a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type tel: setSelectionRange out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
@ -44,30 +26,54 @@
|
||||||
[input type password: selectionStart a second time (must not fire select)]
|
[input type password: selectionStart a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: setSelectionRange out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[textarea: selectionStart a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type text: selectionEnd out of range a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type tel: setSelectionRange() a second time (must not fire select)]
|
[input type tel: setSelectionRange() a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: selectionDirection a second time (must not fire select)]
|
[input type url: selectionDirection a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: selectionEnd a second time (must not fire select)]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[input type text: selectionStart a second time (must not fire select)]
|
[input type text: selectionStart a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type password: selectionStart out of range a second time (must not fire select)]
|
[textarea: selectionEnd a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[input type url: setSelectionRange out of range a second time (must not fire select)]
|
[input type url: setSelectionRange() a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type url: selectionEnd 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 url: selectionStart 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 tel: selectionDirection a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type url: select() 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
|
||||||
|
|
||||||
|
[input type text: selectionStart out of range a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type text: setRangeText() a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type tel: select() a second time (must not fire select)]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[input type tel: selectionStart a second time (must not fire select)]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -5,5 +5,5 @@
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[realtimeanalyser-fft-scaling.html]
|
[realtimeanalyser-fft-scaling.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -776,3 +776,6 @@
|
||||||
[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\]\t1.9545141262291947e-15\t9.3139332532882690e-1\t9.3139332532882491e-1\t9.9999999999999789e-1\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.3139332532882491e-1 at index of 28696.\n\tMax RelError of 9.9999999999999789e-1 at index of 28696.\n]
|
[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\]\t1.9545141262291947e-15\t9.3139332532882690e-1\t9.3139332532882491e-1\t9.9999999999999789e-1\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.3139332532882491e-1 at index of 28696.\n\tMax RelError of 9.9999999999999789e-1 at index of 28696.\n]
|
||||||
expected: FAIL
|
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-1.1388699060609259e-22\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,4 @@
|
||||||
|
[events.py]
|
||||||
|
[test_event_mousemove]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[017.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[origin of the script that invoked the method, about:blank]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
5
tests/wpt/metadata/webmessaging/with-ports/018.html.ini
Normal file
5
tests/wpt/metadata/webmessaging/with-ports/018.html.ini
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
[018.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, javascript:]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[Worker-constructor.html]
|
|
||||||
expected: ERROR
|
|
|
@ -3,12 +3,18 @@
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
class MyElement extends HTMLElement {};
|
||||||
|
customElements.define('my-element', MyElement);
|
||||||
|
|
||||||
idl_test(
|
idl_test(
|
||||||
['custom-state-pseudo-class'],
|
['custom-state-pseudo-class'],
|
||||||
['html', 'wai-aria'],
|
['html', 'wai-aria'],
|
||||||
idl_array => {
|
idl_array => {
|
||||||
idl_array.add_objects({
|
idl_array.add_objects({
|
||||||
// Nothing to add; spec only defined a partial interface.
|
CustomStateSet: [ 'customStateSet' ],
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const myElement = document.createElement('my-element');
|
||||||
|
self.customStateSet = myElement.attachInternals().states;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>iframe activeElement after focusing out iframe</title>
|
||||||
|
<script src=/resources/testharness.js></script>
|
||||||
|
<script src=/resources/testharnessreport.js></script>
|
||||||
|
<script>
|
||||||
|
function waitForEvent(target, event, checkFn) {
|
||||||
|
return new Promise(resolve => {
|
||||||
|
target.addEventListener(event, e => {
|
||||||
|
if (checkFn && !checkFn(e)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
resolve();
|
||||||
|
}, { once: true });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function focusTopLevel(w) {
|
||||||
|
w.postMessage("focus", "*");
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getLog(w) {
|
||||||
|
let log = "";
|
||||||
|
step_timeout(function() {
|
||||||
|
w.postMessage("getlog", "*");
|
||||||
|
}, 0);
|
||||||
|
await waitForEvent(window, "message", (e) => {
|
||||||
|
log = e.data;
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function runTest(t, url) {
|
||||||
|
let w = window.open(url);
|
||||||
|
t.add_cleanup(() => { w.close(); });
|
||||||
|
await waitForEvent(window, "message", e => e.data === "ready");
|
||||||
|
focusTopLevel(w);
|
||||||
|
assert_equals(await getLog(w), 'outerlog:willfocusinput,windowfocus,didfocusinput,innerlog:willfocusinput,windowfocus,didfocusinput,activeElement:INPUT,windowblur,activeElement:BODY,');
|
||||||
|
}
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
await runTest(t, "support/iframe-activeelement-after-focusing-out-different-site-iframes-outer.sub.html");
|
||||||
|
}, "Check iframe activeElement after focusing out different site iframe");
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
await runTest(t, "support/iframe-activeelement-after-focusing-out-same-site-iframes-outer.html");
|
||||||
|
}, "Check iframe activeElement after focusing out same site iframe");
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>iframe.contentWindow.focus() with different-site intermediate frame</title>
|
||||||
|
<script src=/resources/testharness.js></script>
|
||||||
|
<script src=/resources/testharnessreport.js></script>
|
||||||
|
<script>
|
||||||
|
setup({explicit_done:true});
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
var actual = e.data;
|
||||||
|
test(function() {
|
||||||
|
assert_equals(actual, "outeronload;outeractivelement:body;starttest;middleactivelement:body;callfocus;middleactivelement:iframe;innerfocus;middletimer;middleactivelement:iframe;outeractivelement:iframe;", 'Check log');
|
||||||
|
}, "Check result");
|
||||||
|
w.close();
|
||||||
|
done();
|
||||||
|
};
|
||||||
|
var w = window.open("support/iframe-contentwindow-focus-with-different-site-intermediate-frame-outer.sub.html");
|
||||||
|
</script>
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>iframe.contentWindow.focus() with same-as-top intermediate frame</title>
|
||||||
|
<script src=/resources/testharness.js></script>
|
||||||
|
<script src=/resources/testharnessreport.js></script>
|
||||||
|
<script>
|
||||||
|
setup({explicit_done:true});
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
var actual = e.data;
|
||||||
|
test(function() {
|
||||||
|
assert_equals(actual, "outeronload;outeractivelement:body;starttest;middleactivelement:body;callfocus;middleactivelement:iframe;innerfocus;middletimer;middleactivelement:iframe;outeractivelement:iframe;", 'Check log');
|
||||||
|
}, "Check result");
|
||||||
|
w.close();
|
||||||
|
done();
|
||||||
|
};
|
||||||
|
var w = window.open("support/iframe-contentwindow-focus-with-same-as-top-intermediate-frame-outer.html");
|
||||||
|
</script>
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>iframe.focus() with different-site intermediate frame</title>
|
||||||
|
<script src=/resources/testharness.js></script>
|
||||||
|
<script src=/resources/testharnessreport.js></script>
|
||||||
|
<script>
|
||||||
|
setup({explicit_done:true});
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
var actual = e.data;
|
||||||
|
test(function() {
|
||||||
|
assert_equals(actual, "outeronload;outeractivelement:body;starttest;middleactivelement:body;callfocus;middleactivelement:iframe;innerfocus;middletimer;middleactivelement:iframe;outeractivelement:iframe;", 'Check log');
|
||||||
|
}, "Check result");
|
||||||
|
w.close();
|
||||||
|
done();
|
||||||
|
};
|
||||||
|
var w = window.open("support/iframe-focus-with-different-site-intermediate-frame-outer.sub.html");
|
||||||
|
</script>
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<title>iframe.focus() with same-as-top intermediate frame</title>
|
||||||
|
<script src=/resources/testharness.js></script>
|
||||||
|
<script src=/resources/testharnessreport.js></script>
|
||||||
|
<script>
|
||||||
|
setup({explicit_done:true});
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
var actual = e.data;
|
||||||
|
test(function() {
|
||||||
|
assert_equals(actual, "outeronload;outeractivelement:body;starttest;middleactivelement:body;callfocus;middleactivelement:iframe;innerfocus;middletimer;middleactivelement:iframe;outeractivelement:iframe;", 'Check log');
|
||||||
|
}, "Check result");
|
||||||
|
w.close();
|
||||||
|
done();
|
||||||
|
};
|
||||||
|
var w = window.open("support/iframe-focus-with-same-as-top-intermediate-frame-outer.html");
|
||||||
|
</script>
|
|
@ -0,0 +1,34 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe active element after focusing out different site iframes outer</title>
|
||||||
|
<input></input></br>
|
||||||
|
<iframe src="http://{{hosts[alt][www]}}:{{ports[http][0]}}/focus/support/iframe-activeelement-after-focusing-out-iframes-inner.html"></iframe>
|
||||||
|
<script>
|
||||||
|
let outerlog = "outerlog:";
|
||||||
|
|
||||||
|
let input = document.querySelector("input");
|
||||||
|
let iframe = document.querySelector("iframe");
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
if (e.data == "ready") {
|
||||||
|
opener.postMessage("ready", "*");
|
||||||
|
} else if (e.data == "focus") {
|
||||||
|
outerlog += "willfocusinput,";
|
||||||
|
input.focus();
|
||||||
|
outerlog += "didfocusinput,";
|
||||||
|
} else if (e.data == "getlog") {
|
||||||
|
iframe.contentWindow.postMessage("getlog", "*");
|
||||||
|
} else {
|
||||||
|
opener.postMessage(outerlog + e.data, "*");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
window.onfocus = function() {
|
||||||
|
outerlog += "windowfocus,";
|
||||||
|
};
|
||||||
|
|
||||||
|
window.onblur = function() {
|
||||||
|
outerlog += "windowblur,";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
</script>
|
|
@ -0,0 +1,38 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe active element inner document</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Inner</h1><br>
|
||||||
|
<input></input>
|
||||||
|
<script>
|
||||||
|
let innerlog = "innerlog:";
|
||||||
|
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
if (e.data == "getlog") {
|
||||||
|
parent.postMessage(innerlog, "*");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
window.onfocus = function() {
|
||||||
|
innerlog += "windowfocus,";
|
||||||
|
};
|
||||||
|
|
||||||
|
window.onblur = function() {
|
||||||
|
innerlog += "windowblur,";
|
||||||
|
innerlog += "activeElement:" + document.activeElement.tagName + ",";
|
||||||
|
};
|
||||||
|
|
||||||
|
let input = document.querySelector("input");
|
||||||
|
window.onload = function() {
|
||||||
|
innerlog += "willfocusinput,";
|
||||||
|
input.focus();
|
||||||
|
innerlog += "didfocusinput,";
|
||||||
|
innerlog += "activeElement:" + document.activeElement.tagName + ",";
|
||||||
|
parent.postMessage("ready", "*");
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,34 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe active element after focusing out same site iframes outer</title>
|
||||||
|
<input></input></br>
|
||||||
|
<iframe src="iframe-activeelement-after-focusing-out-iframes-inner.html"></iframe>
|
||||||
|
<script>
|
||||||
|
let outerlog = "outerlog:";
|
||||||
|
|
||||||
|
let input = document.querySelector("input");
|
||||||
|
let iframe = document.querySelector("iframe");
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
if (e.data == "ready") {
|
||||||
|
opener.postMessage("ready", "*");
|
||||||
|
} else if (e.data == "focus") {
|
||||||
|
outerlog += "willfocusinput,";
|
||||||
|
input.focus();
|
||||||
|
outerlog += "didfocusinput,";
|
||||||
|
} else if (e.data == "getlog") {
|
||||||
|
iframe.contentWindow.postMessage("getlog", "*");
|
||||||
|
} else {
|
||||||
|
opener.postMessage(outerlog + e.data, "*");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
window.onload = function() {
|
||||||
|
window.onfocus = function() {
|
||||||
|
outerlog += "windowfocus,";
|
||||||
|
};
|
||||||
|
|
||||||
|
window.onblur = function() {
|
||||||
|
outerlog += "windowblur,";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
</script>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>iframe.contentWindow.focus() with different-site intermediate frame inner</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
document.body.onfocus = function() {
|
||||||
|
parent.postMessage("innerfocus;", "*");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe.contentWindow.focus() with different-site intermediate frame middle</title>
|
||||||
|
<iframe src="http://{{hosts[][www]}}:{{ports[http][0]}}/focus/support/iframe-contentwindow-focus-with-different-site-intermediate-frame-inner.html"></iframe>
|
||||||
|
<script>
|
||||||
|
let iframe = document.getElementsByTagName("iframe")[0];
|
||||||
|
let log = "";
|
||||||
|
function getLog() {
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
log += e.data;
|
||||||
|
if (e.data == "starttest;") {
|
||||||
|
log += "middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
log += "callfocus;";
|
||||||
|
iframe.contentWindow.focus();
|
||||||
|
log += "middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
setTimeout(function() {
|
||||||
|
log += "middletimer;middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
parent.postMessage(getLog(), "*");
|
||||||
|
}, 1500);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
* TODO: Get browsers to agree on this one.
|
||||||
|
*
|
||||||
|
* Does not fire in Firefox without Fission
|
||||||
|
* https://bugzilla.mozilla.org/show_bug.cgi?id=1675484
|
||||||
|
*
|
||||||
|
* Fires in Blink in the iframe.focus() case but not in
|
||||||
|
* the iframe.contentWindow.focus() case.
|
||||||
|
*/
|
||||||
|
// iframe.onfocus = function() {
|
||||||
|
// log += "middlefocus;";
|
||||||
|
// }
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe.contentWindow.focus() with different-site intermediate frame outer</title>
|
||||||
|
<script>
|
||||||
|
let log = "";
|
||||||
|
function getLog() {
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
log += e.data;
|
||||||
|
};
|
||||||
|
window.onload = function() {
|
||||||
|
log += "outeronload;";
|
||||||
|
log += "outeractivelement:" + document.activeElement.localName + ";";
|
||||||
|
document.getElementsByTagName("iframe")[0].contentWindow.postMessage("starttest;", "*");
|
||||||
|
setTimeout(function() {
|
||||||
|
log += "outeractivelement:" + document.activeElement.localName + ";";
|
||||||
|
opener.postMessage(getLog(), "*");
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<iframe src="http://{{hosts[alt][www]}}:{{ports[http][0]}}/focus/support/iframe-contentwindow-focus-with-different-site-intermediate-frame-middle.sub.html"></iframe>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>iframe.contentWindow.focus() with same-as-top intermediate frame inner</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
document.body.onfocus = function() {
|
||||||
|
parent.postMessage("innerfocus;", "*");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe.contentWindow.focus() with same-as-top intermediate frame middle</title>
|
||||||
|
<iframe src="http://{{hosts[alt][www]}}:{{ports[http][0]}}/focus/support/iframe-contentwindow-focus-with-same-as-top-intermediate-frame-inner.html"></iframe>
|
||||||
|
<script>
|
||||||
|
let iframe = document.getElementsByTagName("iframe")[0];
|
||||||
|
let log = "";
|
||||||
|
function getLog() {
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
log += e.data;
|
||||||
|
if (e.data == "starttest;") {
|
||||||
|
log += "middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
log += "callfocus;";
|
||||||
|
iframe.contentWindow.focus();
|
||||||
|
log += "middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
parent.opener.step_timeout(function() {
|
||||||
|
log += "middletimer;middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
parent.postMessage(getLog(), "*");
|
||||||
|
}, 1500);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
* TODO: Get browsers to agree on this one.
|
||||||
|
*
|
||||||
|
* Does not fire in Firefox without Fission
|
||||||
|
* https://bugzilla.mozilla.org/show_bug.cgi?id=1675484
|
||||||
|
*
|
||||||
|
* Fires in Blink in the iframe.focus() case but not in
|
||||||
|
* the iframe.contentWindow.focus() case.
|
||||||
|
*/
|
||||||
|
// iframe.onfocus = function() {
|
||||||
|
// log += "middlefocus;";
|
||||||
|
// }
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe.contentWindow.focus() with same-as-top intermediate frame outer</title>
|
||||||
|
<script>
|
||||||
|
let log = "";
|
||||||
|
function getLog() {
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
log += e.data;
|
||||||
|
};
|
||||||
|
window.onload = function() {
|
||||||
|
log += "outeronload;";
|
||||||
|
log += "outeractivelement:" + document.activeElement.localName + ";";
|
||||||
|
document.getElementsByTagName("iframe")[0].contentWindow.postMessage("starttest;", "*");
|
||||||
|
opener.step_timeout(function() {
|
||||||
|
log += "outeractivelement:" + document.activeElement.localName + ";";
|
||||||
|
opener.postMessage(getLog(), "*");
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<iframe src="iframe-contentwindow-focus-with-same-as-top-intermediate-frame-middle.sub.html"></iframe>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>iframe.focus() with different-site intermediate frame inner</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
document.body.onfocus = function() {
|
||||||
|
parent.postMessage("innerfocus;", "*");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe.focus() with different-site intermediate frame middle</title>
|
||||||
|
<iframe src="http://{{hosts[][www]}}:{{ports[http][0]}}/focus/support/iframe-focus-with-different-site-intermediate-frame-inner.html"></iframe>
|
||||||
|
<script>
|
||||||
|
let iframe = document.getElementsByTagName("iframe")[0];
|
||||||
|
let log = "";
|
||||||
|
function getLog() {
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
log += e.data;
|
||||||
|
if (e.data == "starttest;") {
|
||||||
|
log += "middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
log += "callfocus;";
|
||||||
|
iframe.focus();
|
||||||
|
log += "middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
setTimeout(function() {
|
||||||
|
log += "middletimer;middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
parent.postMessage(getLog(), "*");
|
||||||
|
}, 1500);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
* TODO: Get browsers to agree on this one.
|
||||||
|
*
|
||||||
|
* Does not fire in Firefox without Fission
|
||||||
|
* https://bugzilla.mozilla.org/show_bug.cgi?id=1675484
|
||||||
|
*
|
||||||
|
* Fires in Blink in the iframe.focus() case but not in
|
||||||
|
* the iframe.contentWindow.focus() case.
|
||||||
|
*/
|
||||||
|
// iframe.onfocus = function() {
|
||||||
|
// log += "middlefocus;";
|
||||||
|
// }
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe.focus() with different-site intermediate frame outer</title>
|
||||||
|
<script>
|
||||||
|
let log = "";
|
||||||
|
function getLog() {
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
log += e.data;
|
||||||
|
};
|
||||||
|
window.onload = function() {
|
||||||
|
log += "outeronload;";
|
||||||
|
log += "outeractivelement:" + document.activeElement.localName + ";";
|
||||||
|
document.getElementsByTagName("iframe")[0].contentWindow.postMessage("starttest;", "*");
|
||||||
|
setTimeout(function() {
|
||||||
|
log += "outeractivelement:" + document.activeElement.localName + ";";
|
||||||
|
opener.postMessage(getLog(), "*");
|
||||||
|
}, 3000);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<iframe src="http://{{hosts[alt][www]}}:{{ports[http][0]}}/focus/support/iframe-focus-with-different-site-intermediate-frame-middle.sub.html"></iframe>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>iframe.focus() with same-as-top intermediate frame inner</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
document.body.onfocus = function() {
|
||||||
|
parent.postMessage("innerfocus;", "*");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe.focus() with same-as-top intermediate frame middle</title>
|
||||||
|
<iframe src="http://{{hosts[alt][www]}}:{{ports[http][0]}}/focus/support/iframe-focus-with-same-as-top-intermediate-frame-inner.html"></iframe>
|
||||||
|
<script>
|
||||||
|
let iframe = document.getElementsByTagName("iframe")[0];
|
||||||
|
let log = "";
|
||||||
|
function getLog() {
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
log += e.data;
|
||||||
|
if (e.data == "starttest;") {
|
||||||
|
log += "middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
log += "callfocus;";
|
||||||
|
iframe.focus();
|
||||||
|
log += "middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
parent.opener.step_timeout(function() {
|
||||||
|
log += "middletimer;middleactivelement:" + document.activeElement.localName + ";";
|
||||||
|
parent.postMessage(getLog(), "*");
|
||||||
|
}, 1500);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
/*
|
||||||
|
* TODO: Get browsers to agree on this one.
|
||||||
|
*
|
||||||
|
* Does not fire in Firefox without Fission
|
||||||
|
* https://bugzilla.mozilla.org/show_bug.cgi?id=1675484
|
||||||
|
*
|
||||||
|
* Fires in Blink in the iframe.focus() case but not in
|
||||||
|
* the iframe.contentWindow.focus() case.
|
||||||
|
*/
|
||||||
|
// iframe.onfocus = function() {
|
||||||
|
// log += "middlefocus;";
|
||||||
|
// }
|
||||||
|
|
||||||
|
</script>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>iframe.focus() with same-as-top intermediate frame outer</title>
|
||||||
|
<script>
|
||||||
|
let log = "";
|
||||||
|
function getLog() {
|
||||||
|
return log;
|
||||||
|
}
|
||||||
|
window.onmessage = function(e) {
|
||||||
|
log += e.data;
|
||||||
|
};
|
||||||
|
window.onload = function() {
|
||||||
|
log += "outeronload;";
|
||||||
|
log += "outeractivelement:" + document.activeElement.localName + ";";
|
||||||
|
document.getElementsByTagName("iframe")[0].contentWindow.postMessage("starttest;", "*");
|
||||||
|
opener.step_timeout(function() {
|
||||||
|
log += "outeractivelement:" + document.activeElement.localName + ";";
|
||||||
|
opener.postMessage(getLog(), "*");
|
||||||
|
}, 2000);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<iframe src="iframe-focus-with-same-as-top-intermediate-frame-middle.sub.html"></iframe>
|
|
@ -25,6 +25,7 @@
|
||||||
assert_true(e.isTrusted, "blur event is trusted");
|
assert_true(e.isTrusted, "blur event is trusted");
|
||||||
assert_false(e.bubbles, "blur event doesn't bubble");
|
assert_false(e.bubbles, "blur event doesn't bubble");
|
||||||
assert_false(e.cancelable, "blur event is not cancelable");
|
assert_false(e.cancelable, "blur event is not cancelable");
|
||||||
|
assert_equals(document.activeElement, document.body);
|
||||||
});
|
});
|
||||||
|
|
||||||
i1.focus();
|
i1.focus();
|
||||||
|
|
|
@ -4,5 +4,11 @@
|
||||||
// Source: Custom State Pseudo Class (https://wicg.github.io/custom-state-pseudo-class/)
|
// Source: Custom State Pseudo Class (https://wicg.github.io/custom-state-pseudo-class/)
|
||||||
|
|
||||||
partial interface ElementInternals {
|
partial interface ElementInternals {
|
||||||
[SameObject, PutForwards=value] readonly attribute DOMTokenList states;
|
readonly attribute CustomStateSet states;
|
||||||
|
};
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
|
interface CustomStateSet {
|
||||||
|
setlike<DOMString>;
|
||||||
|
undefined add(DOMString value);
|
||||||
};
|
};
|
||||||
|
|
|
@ -214,6 +214,10 @@ SET TIMEOUT: webvtt/*
|
||||||
SET TIMEOUT: workers/*
|
SET TIMEOUT: workers/*
|
||||||
SET TIMEOUT: xhr/resources/init.htm
|
SET TIMEOUT: xhr/resources/init.htm
|
||||||
SET TIMEOUT: xhr/resources/xmlhttprequest-timeout.js
|
SET TIMEOUT: xhr/resources/xmlhttprequest-timeout.js
|
||||||
|
SET TIMEOUT: focus/support/iframe-focus-with-different-site-intermediate-frame-outer.sub.html
|
||||||
|
SET TIMEOUT: focus/support/iframe-focus-with-different-site-intermediate-frame-middle.sub.html
|
||||||
|
SET TIMEOUT: focus/support/iframe-contentwindow-focus-with-different-site-intermediate-frame-outer.sub.html
|
||||||
|
SET TIMEOUT: focus/support/iframe-contentwindow-focus-with-different-site-intermediate-frame-middle.sub.html
|
||||||
|
|
||||||
# generate_tests implementation and sample usage
|
# generate_tests implementation and sample usage
|
||||||
GENERATE_TESTS: resources/test/tests/functional/generate-callback.html
|
GENERATE_TESTS: resources/test/tests/functional/generate-callback.html
|
||||||
|
|
|
@ -6,8 +6,12 @@
|
||||||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/testdriver.js"></script>
|
||||||
|
<script src="/resources/testdriver-actions.js"></script>
|
||||||
|
<script src="/resources/testdriver-vendor.js"></script>
|
||||||
<script type="text/javascript" src="pointerevent_support.js"></script>
|
<script type="text/javascript" src="pointerevent_support.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
var actions_promise;
|
||||||
var detected_pointertypes = {};
|
var detected_pointertypes = {};
|
||||||
add_completion_callback(showPointerTypes);
|
add_completion_callback(showPointerTypes);
|
||||||
var test_pointerEvent = async_test("hasPointerCapture test after the pending pointer capture element releases pointer capture");
|
var test_pointerEvent = async_test("hasPointerCapture test after the pending pointer capture element releases pointer capture");
|
||||||
|
@ -47,8 +51,19 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
on_event(target0, "lostpointercapture", function (e) {
|
on_event(target0, "lostpointercapture", function (e) {
|
||||||
test_pointerEvent.done();
|
// Make sure the test finishes after all the input actions are completed.
|
||||||
|
actions_promise.then( () => {
|
||||||
|
test_pointerEvent.done();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Inject mouse inputs.
|
||||||
|
actions_promise = new test_driver.Actions()
|
||||||
|
.pointerMove(10, 10, {origin: target0})
|
||||||
|
.pointerDown()
|
||||||
|
.pointerMove(10, 10, {origin: target1})
|
||||||
|
.pointerUp()
|
||||||
|
.send();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
|
@ -6,8 +6,12 @@
|
||||||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/testdriver.js"></script>
|
||||||
|
<script src="/resources/testdriver-actions.js"></script>
|
||||||
|
<script src="/resources/testdriver-vendor.js"></script>
|
||||||
<script src="pointerevent_support.js"></script>
|
<script src="pointerevent_support.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
var actions_promise;
|
||||||
var detected_pointertypes = {};
|
var detected_pointertypes = {};
|
||||||
add_completion_callback(showPointerTypes);
|
add_completion_callback(showPointerTypes);
|
||||||
var test_setPointerCapture = async_test("Release pointer capture right after setpointercapture");
|
var test_setPointerCapture = async_test("Release pointer capture right after setpointercapture");
|
||||||
|
@ -36,8 +40,19 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
on_event(target0, "pointerup", function (event) {
|
on_event(target0, "pointerup", function (event) {
|
||||||
test_setPointerCapture.done();
|
// Make sure the test finishes after all the input actions are completed.
|
||||||
|
actions_promise.then( () => {
|
||||||
|
test_setPointerCapture.done();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Inject mouse inputs.
|
||||||
|
actions_promise = new test_driver.Actions()
|
||||||
|
.pointerMove(0, 0, {origin: target0})
|
||||||
|
.pointerDown()
|
||||||
|
.pointerMove(10, 10, {origin: target0})
|
||||||
|
.pointerUp()
|
||||||
|
.send();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
|
@ -6,8 +6,12 @@
|
||||||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/testdriver.js"></script>
|
||||||
|
<script src="/resources/testdriver-actions.js"></script>
|
||||||
|
<script src="/resources/testdriver-vendor.js"></script>
|
||||||
<script src="pointerevent_support.js"></script>
|
<script src="pointerevent_support.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
var actions_promise;
|
||||||
var detected_pointertypes = {};
|
var detected_pointertypes = {};
|
||||||
add_completion_callback(showPointerTypes);
|
add_completion_callback(showPointerTypes);
|
||||||
var test_setPointerCapture = async_test("setPointerCapture: override the pending pointer capture element");
|
var test_setPointerCapture = async_test("setPointerCapture: override the pending pointer capture element");
|
||||||
|
@ -38,8 +42,19 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
on_event(target1, "pointerup", function (event) {
|
on_event(target1, "pointerup", function (event) {
|
||||||
test_setPointerCapture.done();
|
// Make sure the test finishes after all the input actions are completed.
|
||||||
|
actions_promise.then( () => {
|
||||||
|
test_setPointerCapture.done();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Inject mouse inputs.
|
||||||
|
actions_promise = new test_driver.Actions()
|
||||||
|
.pointerMove(0, 0, {origin: target0})
|
||||||
|
.pointerDown()
|
||||||
|
.pointerMove(10, 10, {origin: target0})
|
||||||
|
.pointerUp()
|
||||||
|
.send();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
|
@ -6,8 +6,12 @@
|
||||||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/testdriver.js"></script>
|
||||||
|
<script src="/resources/testdriver-actions.js"></script>
|
||||||
|
<script src="/resources/testdriver-vendor.js"></script>
|
||||||
<script src="pointerevent_support.js"></script>
|
<script src="pointerevent_support.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
var actions_promise;
|
||||||
var detected_pointertypes = {};
|
var detected_pointertypes = {};
|
||||||
add_completion_callback(showPointerTypes);
|
add_completion_callback(showPointerTypes);
|
||||||
var test_setPointerCapture = async_test("setPointerCapture: set to the element which already captured the pointer");
|
var test_setPointerCapture = async_test("setPointerCapture: set to the element which already captured the pointer");
|
||||||
|
@ -37,8 +41,19 @@
|
||||||
});
|
});
|
||||||
|
|
||||||
on_event(target0, "pointerup", function (event) {
|
on_event(target0, "pointerup", function (event) {
|
||||||
test_setPointerCapture.done();
|
// Make sure the test finishes after all the input actions are completed.
|
||||||
|
actions_promise.then( () => {
|
||||||
|
test_setPointerCapture.done();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Inject mouse inputs.
|
||||||
|
actions_promise = new test_driver.Actions()
|
||||||
|
.pointerMove(0, 0, {origin: target0})
|
||||||
|
.pointerDown()
|
||||||
|
.pointerMove(10, 10, {origin: target0})
|
||||||
|
.pointerUp()
|
||||||
|
.send();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
|
@ -96,12 +96,19 @@ function testStyleSheets(mode) {
|
||||||
|
|
||||||
shadowRoot.innerHTML = '<span></span><style> a.rule {} </style><style> b.rule {} </style>';
|
shadowRoot.innerHTML = '<span></span><style> a.rule {} </style><style> b.rule {} </style>';
|
||||||
assert_equals(shadowRoot.styleSheets.length, 0, 'shadowRoot.styleSheets must be empty when the shadow root is not connected');
|
assert_equals(shadowRoot.styleSheets.length, 0, 'shadowRoot.styleSheets must be empty when the shadow root is not connected');
|
||||||
|
var styles = shadowRoot.querySelectorAll('style');
|
||||||
|
assert_equals(styles[0].sheet, null, "Sheet should be null in a disconnected tree");
|
||||||
|
assert_equals(styles[1].sheet, null, "Sheet should be null in a disconnected tree");
|
||||||
|
|
||||||
document.body.appendChild(host);
|
document.body.appendChild(host);
|
||||||
assert_equals(shadowRoot.styleSheets.length, 2, 'shadowRoot.styleSheets must contain two items when the shadow root has two style elements');
|
assert_equals(shadowRoot.styleSheets.length, 2, 'shadowRoot.styleSheets must contain two items when the shadow root has two style elements');
|
||||||
var styles = shadowRoot.querySelectorAll('style');
|
|
||||||
assert_equals(shadowRoot.styleSheets[0], styles[0].sheet, 'shadowRoot.styleSheets[0] must be the first style element in the shadow root');
|
assert_equals(shadowRoot.styleSheets[0], styles[0].sheet, 'shadowRoot.styleSheets[0] must be the first style element in the shadow root');
|
||||||
assert_equals(shadowRoot.styleSheets[1], styles[1].sheet, 'shadowRoot.styleSheets[1] must be the second style element in the shadow root');
|
assert_equals(shadowRoot.styleSheets[1], styles[1].sheet, 'shadowRoot.styleSheets[1] must be the second style element in the shadow root');
|
||||||
|
|
||||||
|
host.remove();
|
||||||
|
assert_equals(shadowRoot.styleSheets.length, 0, 'shadowRoot.styleSheets must be empty when the shadow root is not connected');
|
||||||
|
assert_equals(styles[0].sheet, null, "Sheet should be null in a disconnected tree");
|
||||||
|
assert_equals(styles[1].sheet, null, "Sheet should be null in a disconnected tree");
|
||||||
}, 'ShadowRoot.styleSheets must return a StyleSheetList sequence containing the shadow root style sheets when shadow root is ' + mode + '.');
|
}, 'ShadowRoot.styleSheets must return a StyleSheetList sequence containing the shadow root style sheets when shadow root is ' + mode + '.');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,10 @@ def start_server(address=None, authkey=None, mp_context=None):
|
||||||
manager = ServerDictManager(address, authkey, **kwargs)
|
manager = ServerDictManager(address, authkey, **kwargs)
|
||||||
manager.start()
|
manager.start()
|
||||||
|
|
||||||
return (manager, manager._address, manager._authkey)
|
address = manager._address
|
||||||
|
if isinstance(address, bytes):
|
||||||
|
address = address.decode("ascii")
|
||||||
|
return (manager, address, manager._authkey)
|
||||||
|
|
||||||
|
|
||||||
class LockWrapper(object):
|
class LockWrapper(object):
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
from webdriver import Element
|
||||||
|
from tests.support.asserts import assert_success
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
|
|
||||||
|
def get_events(session):
|
||||||
|
"""Return list of mouse events recorded in the fixture."""
|
||||||
|
return session.execute_script("return allEvents.events;") or []
|
||||||
|
|
||||||
|
def element_click(session, element):
|
||||||
|
return session.transport.send(
|
||||||
|
"POST", "session/{session_id}/element/{element_id}/click".format(
|
||||||
|
session_id=session.session_id,
|
||||||
|
element_id=element.id))
|
||||||
|
|
||||||
|
def test_event_mousemove(session, url):
|
||||||
|
session.url = url("/webdriver/tests/element_click/support/test_click_wdspec.html")
|
||||||
|
|
||||||
|
element = session.find.css('#outer', all=False)
|
||||||
|
response = element_click(session, element)
|
||||||
|
assert_success(response)
|
||||||
|
|
||||||
|
events = get_events(session)
|
||||||
|
assert len(events) == 4
|
||||||
|
|
||||||
|
expected = [
|
||||||
|
{"type": "mousemove", "buttons": 0, "button": 0},
|
||||||
|
{"type": "mousedown", "buttons": 1, "button": 0},
|
||||||
|
{"type": "mouseup", "buttons": 0, "button": 0},
|
||||||
|
{"type": "click", "buttons": 0, "button": 0},
|
||||||
|
]
|
||||||
|
filtered_events = [filter_dict(e, expected[0]) for e in events]
|
||||||
|
|
||||||
|
assert expected == filtered_events
|
|
@ -0,0 +1,100 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset=utf-8>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Test Element Click</title>
|
||||||
|
<style>
|
||||||
|
div { padding:0px; margin: 0px; }
|
||||||
|
#trackPointer { position: fixed; }
|
||||||
|
#resultContainer { width: 600px; height: 60px; }
|
||||||
|
.area { width: 100px; height: 50px; background-color: #ccc; }
|
||||||
|
.block { width: 5px; height: 5px; border: solid 1px red; }
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
"use strict";
|
||||||
|
var els = {};
|
||||||
|
var allEvents = { events: [] };
|
||||||
|
function displayMessage(message) {
|
||||||
|
document.getElementById("events").innerHTML = "<p>" + message + "</p>";
|
||||||
|
}
|
||||||
|
|
||||||
|
function appendMessage(message) {
|
||||||
|
document.getElementById("events").innerHTML += "<p>" + message + "</p>";
|
||||||
|
}
|
||||||
|
|
||||||
|
function recordPointerEvent(event) {
|
||||||
|
if (event.type === "contextmenu") {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
allEvents.events.push({
|
||||||
|
"type": event.type,
|
||||||
|
"button": event.button,
|
||||||
|
"buttons": event.buttons,
|
||||||
|
"pageX": event.pageX,
|
||||||
|
"pageY": event.pageY,
|
||||||
|
"ctrlKey": event.ctrlKey,
|
||||||
|
"metaKey": event.metaKey,
|
||||||
|
"altKey": event.altKey,
|
||||||
|
"shiftKey": event.shiftKey,
|
||||||
|
"target": event.target.id
|
||||||
|
});
|
||||||
|
appendMessage(event.type + " " +
|
||||||
|
"button: " + event.button + ", " +
|
||||||
|
"pageX: " + event.pageX + ", " +
|
||||||
|
"pageY: " + event.pageY + ", " +
|
||||||
|
"button: " + event.button + ", " +
|
||||||
|
"buttons: " + event.buttons + ", " +
|
||||||
|
"ctrlKey: " + event.ctrlKey + ", " +
|
||||||
|
"altKey: " + event.altKey + ", " +
|
||||||
|
"metaKey: " + event.metaKey + ", " +
|
||||||
|
"shiftKey: " + event.shiftKey + ", " +
|
||||||
|
"target id: " + event.target.id);
|
||||||
|
}
|
||||||
|
|
||||||
|
function recordFirstPointerMove(event) {
|
||||||
|
recordPointerEvent(event);
|
||||||
|
window.removeEventListener("mousemove", recordFirstPointerMove);
|
||||||
|
}
|
||||||
|
|
||||||
|
function resetEvents() {
|
||||||
|
allEvents.events.length = 0;
|
||||||
|
displayMessage("");
|
||||||
|
}
|
||||||
|
|
||||||
|
function move(el, offsetX, offsetY, timeout) {
|
||||||
|
return function(event) {
|
||||||
|
setTimeout(function() {
|
||||||
|
el.style.top = event.clientY + offsetY + "px";
|
||||||
|
el.style.left = event.clientX + offsetX + "px";
|
||||||
|
}, timeout);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
|
var outer = document.getElementById("outer");
|
||||||
|
window.addEventListener("mousemove", recordFirstPointerMove);
|
||||||
|
outer.addEventListener("click", recordPointerEvent);
|
||||||
|
outer.addEventListener("dblclick", recordPointerEvent);
|
||||||
|
outer.addEventListener("mousedown", recordPointerEvent);
|
||||||
|
outer.addEventListener("mouseup", recordPointerEvent);
|
||||||
|
outer.addEventListener("contextmenu", recordPointerEvent);
|
||||||
|
|
||||||
|
//visual cue for mousemove
|
||||||
|
var pointer = document.getElementById("trackPointer");
|
||||||
|
window.addEventListener("mousemove", move(pointer, 15, 15, 30));
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="trackPointer" class="block"></div>
|
||||||
|
<div>
|
||||||
|
<h2>ClickReporter</h2>
|
||||||
|
<div id="outer" class="area">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="resultContainer">
|
||||||
|
<h2>Events</h2>
|
||||||
|
<div id="events"></div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -5,7 +5,8 @@ from collections import defaultdict
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from tests.perform_actions.support.keys import ALL_EVENTS, Keys, ALTERNATIVE_KEY_NAMES
|
from tests.perform_actions.support.keys import ALL_EVENTS, Keys, ALTERNATIVE_KEY_NAMES
|
||||||
from tests.perform_actions.support.refine import filter_dict, get_events, get_keys
|
from tests.perform_actions.support.refine import get_events, get_keys
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
|
|
||||||
|
|
||||||
def test_keyup_only_sends_no_events(session, key_reporter, key_chain):
|
def test_keyup_only_sends_no_events(session, key_reporter, key_chain):
|
||||||
|
|
|
@ -5,8 +5,9 @@ import pytest
|
||||||
from webdriver.error import NoSuchWindowException
|
from webdriver.error import NoSuchWindowException
|
||||||
|
|
||||||
from tests.perform_actions.support.mouse import get_inview_center, get_viewport_rect
|
from tests.perform_actions.support.mouse import get_inview_center, get_viewport_rect
|
||||||
from tests.perform_actions.support.refine import filter_dict, get_events
|
from tests.perform_actions.support.refine import get_events
|
||||||
from tests.support.asserts import assert_move_to_coordinates
|
from tests.support.asserts import assert_move_to_coordinates
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
from tests.support.sync import Poll
|
from tests.support.sync import Poll
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from tests.perform_actions.support.keys import Keys
|
from tests.perform_actions.support.keys import Keys
|
||||||
from tests.perform_actions.support.refine import filter_dict, get_events
|
from tests.perform_actions.support.refine import get_events
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("modifier, prop", [
|
@pytest.mark.parametrize("modifier, prop", [
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from tests.perform_actions.support.refine import filter_dict, get_events
|
from tests.perform_actions.support.refine import get_events
|
||||||
from tests.support.asserts import assert_move_to_coordinates
|
from tests.support.asserts import assert_move_to_coordinates
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("click_pause", [0, 200])
|
@pytest.mark.parametrize("click_pause", [0, 200])
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from tests.perform_actions.support.keys import Keys
|
from tests.perform_actions.support.keys import Keys
|
||||||
from tests.perform_actions.support.refine import filter_dict, get_events
|
from tests.perform_actions.support.refine import get_events
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("modifier, prop", [
|
@pytest.mark.parametrize("modifier, prop", [
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from tests.perform_actions.support.mouse import get_inview_center, get_viewport_rect
|
from tests.perform_actions.support.mouse import get_inview_center, get_viewport_rect
|
||||||
from tests.perform_actions.support.refine import filter_dict, get_events
|
from tests.perform_actions.support.refine import get_events
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
|
|
||||||
_DBLCLICK_INTERVAL = 640
|
_DBLCLICK_INTERVAL = 640
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
from tests.perform_actions.support.refine import filter_dict, get_events
|
from tests.perform_actions.support.refine import get_events
|
||||||
from tests.support.asserts import assert_move_to_coordinates
|
from tests.support.asserts import assert_move_to_coordinates
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
|
|
||||||
lots_of_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor "\
|
lots_of_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor "\
|
||||||
"incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud "\
|
"incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud "\
|
||||||
|
|
|
@ -27,12 +27,3 @@ def get_keys(input_el):
|
||||||
return ""
|
return ""
|
||||||
else:
|
else:
|
||||||
return rv
|
return rv
|
||||||
|
|
||||||
|
|
||||||
def filter_dict(source, d):
|
|
||||||
"""Filter `source` dict to only contain same keys as `d` dict.
|
|
||||||
|
|
||||||
:param source: dictionary to filter.
|
|
||||||
:param d: dictionary whose keys determine the filtering.
|
|
||||||
"""
|
|
||||||
return {k: source[k] for k in d.keys()}
|
|
||||||
|
|
|
@ -2,8 +2,9 @@ import pytest
|
||||||
|
|
||||||
from webdriver.error import NoSuchWindowException
|
from webdriver.error import NoSuchWindowException
|
||||||
|
|
||||||
from tests.perform_actions.support.refine import filter_dict, get_events
|
from tests.perform_actions.support.refine import get_events
|
||||||
from tests.support.asserts import assert_move_to_coordinates
|
from tests.support.asserts import assert_move_to_coordinates
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
|
|
||||||
|
|
||||||
def test_null_response_value(session, wheel_chain):
|
def test_null_response_value(session, wheel_chain):
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# META: timeout=long
|
# META: timeout=long
|
||||||
|
|
||||||
from tests.release_actions.support.refine import filter_dict, get_events, get_keys
|
from tests.release_actions.support.refine import get_events, get_keys
|
||||||
|
from tests.support.helpers import filter_dict
|
||||||
|
|
||||||
|
|
||||||
def test_release_no_actions_sends_no_events(session, key_reporter):
|
def test_release_no_actions_sends_no_events(session, key_reporter):
|
||||||
|
|
|
@ -22,12 +22,3 @@ def get_keys(input_el):
|
||||||
return ""
|
return ""
|
||||||
else:
|
else:
|
||||||
return rv
|
return rv
|
||||||
|
|
||||||
|
|
||||||
def filter_dict(source, d):
|
|
||||||
"""Filter `source` dict to only contain same keys as `d` dict.
|
|
||||||
|
|
||||||
:param source: dictionary to filter.
|
|
||||||
:param d: dictionary whose keys determine the filtering.
|
|
||||||
"""
|
|
||||||
return {k: source[k] for k in d.keys()}
|
|
||||||
|
|
|
@ -238,3 +238,11 @@ def available_screen_size(session):
|
||||||
screen.availHeight - screen.availTop,
|
screen.availHeight - screen.availTop,
|
||||||
];
|
];
|
||||||
"""))
|
"""))
|
||||||
|
|
||||||
|
def filter_dict(source, d):
|
||||||
|
"""Filter `source` dict to only contain same keys as `d` dict.
|
||||||
|
|
||||||
|
:param source: dictionary to filter.
|
||||||
|
:param d: dictionary whose keys determine the filtering.
|
||||||
|
"""
|
||||||
|
return {k: source[k] for k in d.keys()}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue