mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +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]
|
||||
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]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
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
|
||||
|
||||
|
|
|
@ -56,3 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
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!]
|
||||
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]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
[opener of discarded nested browsing context]
|
||||
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]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -9,7 +10,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-1.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
[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)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -14,24 +11,9 @@
|
|||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||
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)]
|
||||
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)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -44,30 +26,54 @@
|
|||
[input type password: selectionStart 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
|
||||
|
||||
[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)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionDirection 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: selectionStart a second time (must not fire select)]
|
||||
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
|
||||
|
||||
[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
|
||||
|
||||
|
|
|
@ -4,5 +4,5 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[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]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
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]
|
||||
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": [
|
||||
"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": [
|
||||
"fcc8584515c51d60bb01092ffe1f701273c7bb58",
|
||||
[
|
||||
|
@ -338171,6 +338143,66 @@
|
|||
"focus-restoration-in-same-site-iframes-outer-window.html": [
|
||||
"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": [
|
||||
"d4e3da7e6a1a9e7763bde6b13c0add204ff3c7de",
|
||||
"342f1ede0b030a85271a5db71b3773d1531aee48",
|
||||
[]
|
||||
],
|
||||
"deprecation-reporting.idl": [
|
||||
|
@ -353395,7 +353427,7 @@
|
|||
]
|
||||
},
|
||||
"lint.ignore": [
|
||||
"2e0fc8b39bc8df1a44d7b5469d81014c32fa844b",
|
||||
"ab3d0e5157064def99f47cfbfc0e1207db477cbe",
|
||||
[]
|
||||
],
|
||||
"loading": {
|
||||
|
@ -372650,7 +372682,7 @@
|
|||
]
|
||||
},
|
||||
"stash.py": [
|
||||
"535355a828796196ee6be950c5ef9a0802236826",
|
||||
"bf6e59927be44a503aa9ca15b8495f57704f89e7",
|
||||
[]
|
||||
],
|
||||
"utils.py": [
|
||||
|
@ -374415,6 +374447,10 @@
|
|||
"input.html": [
|
||||
"e2c6dadd1218e0a7d8b7d243a1c49b7f47092d77",
|
||||
[]
|
||||
],
|
||||
"test_click_wdspec.html": [
|
||||
"a9451ec82bec97654896f697704218bb6068d14e",
|
||||
[]
|
||||
]
|
||||
}
|
||||
},
|
||||
|
@ -374685,7 +374721,7 @@
|
|||
[]
|
||||
],
|
||||
"refine.py": [
|
||||
"d5d24e934f61684be8512d120a4853bff7efadef",
|
||||
"35c962b9ecbfa21c61535683c094e17884770e9f",
|
||||
[]
|
||||
],
|
||||
"test_actions_pointer_wdspec.html": [
|
||||
|
@ -374729,7 +374765,7 @@
|
|||
[]
|
||||
],
|
||||
"refine.py": [
|
||||
"3a6d63e04ce941d26ab3898cb2fc2a730d46c1ce",
|
||||
"90f722587c3be0e4066fbb6a604668a6d40f359f",
|
||||
[]
|
||||
],
|
||||
"test_actions_wdspec.html": [
|
||||
|
@ -374788,7 +374824,7 @@
|
|||
[]
|
||||
],
|
||||
"helpers.py": [
|
||||
"a1082caf58cf0466185268a3c95e59b643a76bcb",
|
||||
"13607e30481876a7777edfad57f48fcafbf8e40f",
|
||||
[]
|
||||
],
|
||||
"html": {
|
||||
|
@ -431057,7 +431093,7 @@
|
|||
},
|
||||
"custom-state-pseudo-class": {
|
||||
"idlharness.window.js": [
|
||||
"dccc0f56f4683ae975e3738641d9bddc3e08b7aa",
|
||||
"d5d40c54616745c6110078d34c591d6d07a92fb2",
|
||||
[
|
||||
"custom-state-pseudo-class/idlharness.window.html",
|
||||
{
|
||||
|
@ -458821,6 +458857,41 @@
|
|||
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": {
|
||||
|
@ -483352,7 +483423,7 @@
|
|||
]
|
||||
],
|
||||
"focus-events.html": [
|
||||
"d63362aaa1828f35de410b56c1ccc2d7869a111e",
|
||||
"5f8ca20a13d85427fa3d304254d0156224734248",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -513181,6 +513252,15 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_element_haspointercapture_release_pending_capture.html": [
|
||||
"e75dff867528d91d62b14ac7e48d822626deba34",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_fractional_coordinates.html": [
|
||||
"b106340efd5d05ba4ab4281863a476dbe6134a64",
|
||||
[
|
||||
|
@ -513451,6 +513531,15 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_releasepointercapture_release_right_after_capture.html": [
|
||||
"409951b918aa6ef9de4603ac97f330085080e2b7",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_root_computed_style.html": [
|
||||
"c3034d475eee8c58ed1b079fce9466925c5d0379",
|
||||
[
|
||||
|
@ -513510,6 +513599,15 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_setpointercapture_override_pending_capture_element.html": [
|
||||
"f7c1d4299192f28ac8b3b99142951876f3155b45",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_setpointercapture_relatedtarget.html": [
|
||||
"37de34d5a68375b44106f705164d46be78c57780",
|
||||
[
|
||||
|
@ -513519,6 +513617,15 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_setpointercapture_to_same_element_twice.html": [
|
||||
"5225ac508d42dca00b0a7269c8a4f95350545d64",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"pointerevent_suppress_compat_events_on_click.html": [
|
||||
"2f99e7a976ac8006cff25b9cde1ee1e29b6a14d1",
|
||||
[
|
||||
|
@ -532076,7 +532183,7 @@
|
|||
]
|
||||
],
|
||||
"ShadowRoot-interface.html": [
|
||||
"8efa50e4ea18cc6655dba923cdcf4f6e59029c5b",
|
||||
"e95b1d9542e2e3b502693e0063de0980f5a32789",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -589877,6 +589984,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"events.py": [
|
||||
"e3d32c1bcb44c7eb3b810fbce5ca0709c97abcd9",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"file_upload.py": [
|
||||
"73832d0f85ae683ee2d1f54e9c0b7e3e432e9afd",
|
||||
[
|
||||
|
@ -590796,7 +590910,7 @@
|
|||
]
|
||||
],
|
||||
"key_events.py": [
|
||||
"c3958015bfd4dee51842a642e6762aafb5fabf2d",
|
||||
"8dbe024d18396f010b2dcac7281b8436b5b69c65",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -590833,7 +590947,7 @@
|
|||
]
|
||||
],
|
||||
"pointer.py": [
|
||||
"9579a57aa7222d8a1f9517ad71735e86ec8a0e47",
|
||||
"674d46d7b610294b6cadabb4e1e46d79cab8940d",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -590842,21 +590956,21 @@
|
|||
]
|
||||
],
|
||||
"pointer_contextmenu.py": [
|
||||
"fda3f18bbc1c9cdcede30abe74f6d4e2f297d48f",
|
||||
"50f684327f2ab044905cbd3b0da59336ead25f20",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"pointer_dblclick.py": [
|
||||
"8c89cef5f380d769705be704698232c7f9c928ec",
|
||||
"5be635a4d5604e33bf61c41b2190e620309179b8",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"pointer_modifier_click.py": [
|
||||
"ba81f6d090b248c512cf896bc8e6059f252db8c8",
|
||||
"28c4086e0f8c99d9350523b8a29478b7c54fa17e",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -590870,14 +590984,14 @@
|
|||
]
|
||||
],
|
||||
"pointer_pause_dblclick.py": [
|
||||
"85679f3614a8fe010cba7dcd698ce5e82bc26660",
|
||||
"d46178a1d650828ef84ccb02f08a12b292f4c3eb",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"pointer_tripleclick.py": [
|
||||
"3bf41bab849d5de742f8707eb98337e24ebbfb6d",
|
||||
"8239fc2a60620fe4ea6616a0a15139ece54e8cad",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -590909,7 +591023,7 @@
|
|||
]
|
||||
],
|
||||
"wheel.py": [
|
||||
"fc84f2f2e0148967464505f83317edac2e54bd84",
|
||||
"67734800b19d3b08f934c8ec8c4dab0c4cd425f1",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -590970,7 +591084,7 @@
|
|||
]
|
||||
],
|
||||
"sequence.py": [
|
||||
"2d816f8094b3975523904c9e197390dfc058dd06",
|
||||
"75143d85ca600b3e3a2d7d5ac3679a26b7d7bf5a",
|
||||
[
|
||||
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]
|
||||
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 ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
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
|
||||
|
||||
|
|
|
@ -56,3 +56,6 @@
|
|||
[separate text/javascript x/x]
|
||||
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!]
|
||||
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]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
[opener and "removed" embedded documents]
|
||||
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]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -9,7 +10,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
[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)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -14,24 +11,9 @@
|
|||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||
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)]
|
||||
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)]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -44,30 +26,54 @@
|
|||
[input type password: selectionStart 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
|
||||
|
||||
[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)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionDirection 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: selectionStart a second time (must not fire select)]
|
||||
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
|
||||
|
||||
[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
|
||||
|
||||
|
|
|
@ -5,5 +5,5 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[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]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
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]
|
||||
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';
|
||||
|
||||
class MyElement extends HTMLElement {};
|
||||
customElements.define('my-element', MyElement);
|
||||
|
||||
idl_test(
|
||||
['custom-state-pseudo-class'],
|
||||
['html', 'wai-aria'],
|
||||
idl_array => {
|
||||
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_false(e.bubbles, "blur event doesn't bubble");
|
||||
assert_false(e.cancelable, "blur event is not cancelable");
|
||||
assert_equals(document.activeElement, document.body);
|
||||
});
|
||||
|
||||
i1.focus();
|
||||
|
|
|
@ -4,5 +4,11 @@
|
|||
// Source: Custom State Pseudo Class (https://wicg.github.io/custom-state-pseudo-class/)
|
||||
|
||||
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: xhr/resources/init.htm
|
||||
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: resources/test/tests/functional/generate-callback.html
|
||||
|
|
|
@ -6,8 +6,12 @@
|
|||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script type="text/javascript" src="pointerevent_support.js"></script>
|
||||
<script>
|
||||
var actions_promise;
|
||||
var detected_pointertypes = {};
|
||||
add_completion_callback(showPointerTypes);
|
||||
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) {
|
||||
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>
|
||||
</head>
|
|
@ -6,8 +6,12 @@
|
|||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="pointerevent_support.js"></script>
|
||||
<script type="text/javascript">
|
||||
var actions_promise;
|
||||
var detected_pointertypes = {};
|
||||
add_completion_callback(showPointerTypes);
|
||||
var test_setPointerCapture = async_test("Release pointer capture right after setpointercapture");
|
||||
|
@ -36,8 +40,19 @@
|
|||
});
|
||||
|
||||
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>
|
||||
</head>
|
|
@ -6,8 +6,12 @@
|
|||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="pointerevent_support.js"></script>
|
||||
<script type="text/javascript">
|
||||
var actions_promise;
|
||||
var detected_pointertypes = {};
|
||||
add_completion_callback(showPointerTypes);
|
||||
var test_setPointerCapture = async_test("setPointerCapture: override the pending pointer capture element");
|
||||
|
@ -38,8 +42,19 @@
|
|||
});
|
||||
|
||||
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>
|
||||
</head>
|
|
@ -6,8 +6,12 @@
|
|||
<link rel="stylesheet" type="text/css" href="pointerevent_styles.css">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
<script src="/resources/testdriver-actions.js"></script>
|
||||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="pointerevent_support.js"></script>
|
||||
<script type="text/javascript">
|
||||
var actions_promise;
|
||||
var detected_pointertypes = {};
|
||||
add_completion_callback(showPointerTypes);
|
||||
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) {
|
||||
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>
|
||||
</head>
|
|
@ -96,12 +96,19 @@ function testStyleSheets(mode) {
|
|||
|
||||
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');
|
||||
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);
|
||||
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[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 + '.');
|
||||
}
|
||||
|
||||
|
|
|
@ -75,7 +75,10 @@ def start_server(address=None, authkey=None, mp_context=None):
|
|||
manager = ServerDictManager(address, authkey, **kwargs)
|
||||
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):
|
||||
|
|
|
@ -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
|
||||
|
||||
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):
|
||||
|
|
|
@ -5,8 +5,9 @@ import pytest
|
|||
from webdriver.error import NoSuchWindowException
|
||||
|
||||
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.helpers import filter_dict
|
||||
from tests.support.sync import Poll
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import pytest
|
||||
|
||||
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", [
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
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.helpers import filter_dict
|
||||
|
||||
|
||||
@pytest.mark.parametrize("click_pause", [0, 200])
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import pytest
|
||||
|
||||
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", [
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
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
|
||||
|
||||
|
|
|
@ -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.helpers import filter_dict
|
||||
|
||||
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 "\
|
||||
|
|
|
@ -27,12 +27,3 @@ def get_keys(input_el):
|
|||
return ""
|
||||
else:
|
||||
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 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.helpers import filter_dict
|
||||
|
||||
|
||||
def test_null_response_value(session, wheel_chain):
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# 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):
|
||||
|
|
|
@ -22,12 +22,3 @@ def get_keys(input_el):
|
|||
return ""
|
||||
else:
|
||||
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,
|
||||
];
|
||||
"""))
|
||||
|
||||
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