mirror of
https://github.com/servo/servo.git
synced 2025-06-27 10:33:39 +01:00
Update web-platform-tests to revision e9e85e67994df01673a8eb55c47d1b6f5eb6c18a
This commit is contained in:
parent
078b816959
commit
ad8638dd6e
70 changed files with 289 additions and 170 deletions
|
@ -0,0 +1,4 @@
|
||||||
|
[hit-test-floats-004.html]
|
||||||
|
[Miss float below something else]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-005.html]
|
|
||||||
[Miss clipped float]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -5,9 +5,6 @@
|
||||||
[[data-expected-height\] 7]
|
[[data-expected-height\] 7]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[[data-expected-height\] 1]
|
[[data-expected-height\] 4]
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[[data-expected-height\] 2]
|
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[CaretPosition-001.html]
|
||||||
|
[Element at (400, 100)]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[matchMedia-display-none-iframe.html]
|
||||||
|
expected: ERROR
|
|
@ -315,15 +315,15 @@
|
||||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: separate response Content-Type: text/html */*]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: */* text/html]
|
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,6 +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]
|
[separate text/javascript error]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,6 @@
|
||||||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
[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']
|
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_1.html]
|
||||||
|
[Multiple history traversals from the same task]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_2.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[cross-origin-objects-on-new-window.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -171,3 +171,6 @@
|
||||||
[XHTML img usemap="#hash-id"]
|
[XHTML img usemap="#hash-id"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTML (standards) IMG usemap="no-hash-name"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_escaping-2.html]
|
[iframe_sandbox_popups_escaping-2.html]
|
||||||
expected: TIMEOUT
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[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,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-2.html]
|
[iframe_sandbox_popups_nonescaping-2.html]
|
||||||
expected: TIMEOUT
|
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: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[iframe_sandbox_popups_nonescaping-3.html]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
|
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: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[checkpoint-importScripts.any.sharedworker.html]
|
||||||
|
expected: ERROR
|
||||||
|
|
||||||
|
[checkpoint-importScripts.any.worker.html]
|
|
@ -3,3 +3,6 @@
|
||||||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||||
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]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[017.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, about:blank]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[018.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, javascript:]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[Worker-constructor.html]
|
|
||||||
expected: ERROR
|
|
|
@ -337959,6 +337959,10 @@
|
||||||
"checkpoint-after-error-event.js": [
|
"checkpoint-after-error-event.js": [
|
||||||
"f415732aa68dd529dcdacc49fb0d0ca6816c1249",
|
"f415732aa68dd529dcdacc49fb0d0ca6816c1249",
|
||||||
[]
|
[]
|
||||||
|
],
|
||||||
|
"resolve-then-throw.js": [
|
||||||
|
"a841eb780a050a82acb3cd496f4f7ad04a8f3a5b",
|
||||||
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -340137,10 +340141,6 @@
|
||||||
"document-fonts-ready.html.ini": [
|
"document-fonts-ready.html.ini": [
|
||||||
"d074292053b6d580efda36155c1d82af699494bc",
|
"d074292053b6d580efda36155c1d82af699494bc",
|
||||||
[]
|
[]
|
||||||
],
|
|
||||||
"html-elements.html.ini": [
|
|
||||||
"67caa470342db6d2b46dab28464f2491f84dd7b2",
|
|
||||||
[]
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"browsers": {
|
"browsers": {
|
||||||
|
@ -341060,7 +341060,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"trusted-types.tentative.idl": [
|
"trusted-types.tentative.idl": [
|
||||||
"4e469c19b823bf3d452f480e086474e49741964a",
|
"df7bebae7bb6f5c1b62b908ede3ac3cdf112d520",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"ua-client-hints.idl": [
|
"ua-client-hints.idl": [
|
||||||
|
@ -341108,7 +341108,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"web-animations.idl": [
|
"web-animations.idl": [
|
||||||
"ae64bb867eb23d6c491d3e9fee743c7cf8963236",
|
"2f2b086e65cc981d47def182b46ad48ebb28f846",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"web-bluetooth.idl": [
|
"web-bluetooth.idl": [
|
||||||
|
@ -351130,7 +351130,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"safari-technology-preview.rb": [
|
"safari-technology-preview.rb": [
|
||||||
"63ad4e5425e593e6641bc36d4ac4fc1bbb9085d6",
|
"9219623d55f6e034703f5125ac7285e1ba68d7aa",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"system_info.yml": [
|
"system_info.yml": [
|
||||||
|
@ -357590,7 +357590,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"client.py": [
|
"client.py": [
|
||||||
"7f122c83dd99117678e574b7a7a81b6e976dbfd9",
|
"fe5189ec0b30a4e20642624c55e464ef40f2901d",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"error.py": [
|
"error.py": [
|
||||||
|
@ -358115,7 +358115,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"executorwebdriver.py": [
|
"executorwebdriver.py": [
|
||||||
"2b3d53d7445706ae3ab601c42e2f17496f6868db",
|
"695b16b9cca19525a0656f66da45fe66c599fb8b",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"executorwebkit.py": [
|
"executorwebkit.py": [
|
||||||
|
@ -360340,7 +360340,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"conftest.py": [
|
"conftest.py": [
|
||||||
"d5fd320a696a507718299c765278edde6205608a",
|
"bd5db0cfeba7bbc8aaf23c3151109cf48094ff09",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -360390,10 +360390,6 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"close_window.html": [
|
|
||||||
"7a3619829d10de99268b35968e8dec8985575564",
|
|
||||||
[]
|
|
||||||
],
|
|
||||||
"input.html": [
|
"input.html": [
|
||||||
"e2c6dadd1218e0a7d8b7d243a1c49b7f47092d77",
|
"e2c6dadd1218e0a7d8b7d243a1c49b7f47092d77",
|
||||||
[]
|
[]
|
||||||
|
@ -360452,7 +360448,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"conftest.py": [
|
"conftest.py": [
|
||||||
"d5fd320a696a507718299c765278edde6205608a",
|
"bd5db0cfeba7bbc8aaf23c3151109cf48094ff09",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -360682,7 +360678,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"conftest.py": [
|
"conftest.py": [
|
||||||
"f34630c3cbc5de2700552e576bc7c797d2bd724f",
|
"b080761bde881d236aed87dbfcd03963051ba443",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -360722,11 +360718,11 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"fixtures.py": [
|
"fixtures.py": [
|
||||||
"80ccfddf3d15ad739f7eca6a77fac79e2dcdcaef",
|
"364ede1c93b12debcfbb171cc0aada8a663dbab4",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"helpers.py": [
|
"helpers.py": [
|
||||||
"8bc53e7b4030dfdc6a78d11cb95915ea081eae73",
|
"f857083b47743e0925e7baf8b0b964008be7923c",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"html": {
|
"html": {
|
||||||
|
@ -436294,7 +436290,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"script-resource-with-nonsniffable-types.tentative.sub.html": [
|
"script-resource-with-nonsniffable-types.tentative.sub.html": [
|
||||||
"81e256003b685305551fb54bf729461024853cf4",
|
"6d490d55bce25f807b2fe84ad110ceb166f30f8f",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -470270,6 +470266,31 @@
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
|
],
|
||||||
|
"checkpoint-importScripts.any.js": [
|
||||||
|
"8791a099b6ec875e5851d3f18c0b9c29a9eab83b",
|
||||||
|
[
|
||||||
|
"html/semantics/scripting-1/the-script-element/microtasks/checkpoint-importScripts.any.sharedworker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"dedicatedworker,sharedworker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"html/semantics/scripting-1/the-script-element/microtasks/checkpoint-importScripts.any.worker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"dedicatedworker,sharedworker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"module": {
|
"module": {
|
||||||
|
@ -521287,7 +521308,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"setting-the-timeline-of-an-animation.html": [
|
"setting-the-timeline-of-an-animation.html": [
|
||||||
"dd8617503951aafd71015d591914a1b54e3907a7",
|
"7e98ef4260f778c4257203f92db39a6bdaa92871",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -525904,7 +525925,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"RTCPeerConnection-createDataChannel.html": [
|
"RTCPeerConnection-createDataChannel.html": [
|
||||||
"87867664b58a6787bd96cfb85559b4f1171e263f",
|
"7ad8bf7d46ecd7a3702542d8b484132afcc94d63",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
@ -525973,7 +525994,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"RTCPeerConnection-iceGatheringState.html": [
|
"RTCPeerConnection-iceGatheringState.html": [
|
||||||
"d9e3f42d2c21003c5a6c5614c24398aa9e681c60",
|
"88acf348eb5eaf0e803a88381d1b5463647b7a9e",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -562281,14 +562302,14 @@
|
||||||
},
|
},
|
||||||
"close_window": {
|
"close_window": {
|
||||||
"close.py": [
|
"close.py": [
|
||||||
"f4e3b0481d3b3cbc93ba8b44c639934cf8eef9de",
|
"fa8236791067410c01bae081723ee26e237a476b",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"user_prompts.py": [
|
"user_prompts.py": [
|
||||||
"22df9155e8e7bd3aa32fc96c7dd482972c490fd2",
|
"c0f9cc7610c21ea97064392eb2e09fce6f853bbc",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{
|
{
|
||||||
|
@ -562408,7 +562429,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"navigate.py": [
|
"navigate.py": [
|
||||||
"ead4f5aa04befe664f17036de925fd9df7626470",
|
"9426ea089b0f24da8576ac39eab74abe4abe4786",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -562950,7 +562971,7 @@
|
||||||
},
|
},
|
||||||
"get_window_handles": {
|
"get_window_handles": {
|
||||||
"get.py": [
|
"get.py": [
|
||||||
"07ff9d4d26fd3b7cff5620b5295ebe386a226cf2",
|
"b25d76ce588449cf3279aa61e4c1c39863e44d12",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -563334,7 +563355,7 @@
|
||||||
},
|
},
|
||||||
"permissions": {
|
"permissions": {
|
||||||
"set.py": [
|
"set.py": [
|
||||||
"349462dbb5037321e16b92b8055bd94c015ea11c",
|
"4dce1589641d9c35e729344ac548f3ba99bc084a",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -563492,14 +563513,14 @@
|
||||||
},
|
},
|
||||||
"switch_to_window": {
|
"switch_to_window": {
|
||||||
"alerts.py": [
|
"alerts.py": [
|
||||||
"8824138c2d25c07232847062c4853d73075eb94e",
|
"2fc390e8641b980bc1c317db93f9f1166bcb8284",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"switch.py": [
|
"switch.py": [
|
||||||
"907be66a149e8196c87760544140636d9625bbb9",
|
"8fb80fb3238f99eae758658d7796b29c1f8db717",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[hit-test-floats-004.html]
|
||||||
|
[Miss float below something else]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[hit-test-floats-005.html]
|
|
||||||
[Miss clipped float]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -8,9 +8,6 @@
|
||||||
[[data-expected-height\] 3]
|
[[data-expected-height\] 3]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[[data-expected-height\] 1]
|
[[data-expected-height\] 4]
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[[data-expected-height\] 2]
|
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[CaretPosition-001.html]
|
||||||
|
[Element at (400, 100)]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[matchMedia-display-none-iframe.html]
|
||||||
|
expected: ERROR
|
|
@ -315,15 +315,15 @@
|
||||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: separate response Content-Type: text/html */*]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: */* text/html]
|
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -56,6 +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]
|
[separate text/javascript error]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,6 @@
|
||||||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
[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']
|
[X-Content-Type-Options%3A%20%2Cnosniff]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_1.html]
|
||||||
|
[Multiple history traversals from the same task]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_2.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[cross-origin-objects-on-new-window.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -172,3 +172,6 @@
|
||||||
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
|
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[HTML (standards) IMG usemap="no-hash-name"]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[iframe_sandbox_popups_escaping-2.html]
|
[iframe_sandbox_popups_escaping-2.html]
|
||||||
expected: TIMEOUT
|
expected: CRASH
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[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,6 +1,6 @@
|
||||||
[iframe_sandbox_popups_nonescaping-2.html]
|
[iframe_sandbox_popups_nonescaping-2.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: TIMEOUT
|
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: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[iframe_sandbox_popups_nonescaping-3.html]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
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: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[checkpoint-importScripts.any.sharedworker.html]
|
||||||
|
expected: ERROR
|
||||||
|
|
||||||
|
[checkpoint-importScripts.any.worker.html]
|
|
@ -4,3 +4,6 @@
|
||||||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||||
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]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
[017.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, about:blank]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[018.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, javascript:]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[Worker-constructor.html]
|
|
||||||
expected: ERROR
|
|
|
@ -42,12 +42,7 @@ function test(mime_type, is_blocking_expected) {
|
||||||
});
|
});
|
||||||
|
|
||||||
// www1 is cross-origin, so the HTTP response is CORB-eligible.
|
// www1 is cross-origin, so the HTTP response is CORB-eligible.
|
||||||
//
|
var src_prefix = "http://{{domains[www1]}}:{{ports[http][0]}}/fetch/corb/resources/sniffable-resource.py";
|
||||||
// TODO(lukasza@chromium.org): Once https://crbug.com/888079 and
|
|
||||||
// https://crbug.com/1098938 are fixed, we should use a cross-*origin*
|
|
||||||
// rather than cross-*site* URL below (e.g. s/hosts[alt]/domains/g).
|
|
||||||
// See also https://crbug.com/918660 for more context.
|
|
||||||
var src_prefix = "http://{{hosts[alt][www1]}}:{{ports[http][0]}}/fetch/corb/resources/sniffable-resource.py";
|
|
||||||
body = `window['${script_has_run_token}'] = true;`
|
body = `window['${script_has_run_token}'] = true;`
|
||||||
script.src = src_prefix + "?type=" + mime_type + "&body=" + encodeURIComponent(body);
|
script.src = src_prefix + "?type=" + mime_type + "&body=" + encodeURIComponent(body);
|
||||||
document.body.appendChild(script)
|
document.body.appendChild(script)
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
// META: global=dedicatedworker,sharedworker
|
||||||
|
|
||||||
|
// The `then` handlers for `Promise.resolve()` are evaluated in the first
|
||||||
|
// microtasks checkpoint after `Promise.resolve()`.
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------
|
||||||
|
// Check when microtasks checkpoint is performed around importScripts().
|
||||||
|
|
||||||
|
// The expectation is: the `then` handlers are evaluated after the script
|
||||||
|
// calling importScripts() is finished, not immediately after importScripts().
|
||||||
|
// Although #clean-up-after-running-script is executed as a part of
|
||||||
|
// #run-a-classic-script for importScripts()ed scripts, but at that time
|
||||||
|
// microtasks checkpoint is NOT performed because JavaScript execution context
|
||||||
|
// stack is not empty.
|
||||||
|
|
||||||
|
self.log = [];
|
||||||
|
|
||||||
|
// Microtasks should be executed before
|
||||||
|
// #run-a-classic-script/#run-a-module-script is completed, and thus before
|
||||||
|
// script evaluation scheduled by setTimeout().
|
||||||
|
async_test(t => {
|
||||||
|
self.addEventListener('error',
|
||||||
|
t.unreached_func('error event should not be fired'));
|
||||||
|
|
||||||
|
t.step_timeout(() => {
|
||||||
|
assert_array_equals(log, [
|
||||||
|
'importScripts()ed script',
|
||||||
|
'catch',
|
||||||
|
'promise'
|
||||||
|
]);
|
||||||
|
t.done();
|
||||||
|
},
|
||||||
|
0);
|
||||||
|
}, "Promise resolved during importScripts()");
|
||||||
|
|
||||||
|
try {
|
||||||
|
importScripts('resources/resolve-then-throw.js');
|
||||||
|
} catch (e) {
|
||||||
|
self.log.push('catch');
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
self.log.push('importScripts()ed script');
|
||||||
|
Promise.resolve().then(() => self.log.push('promise'));
|
||||||
|
throw new Error('foo');
|
|
@ -1,9 +0,0 @@
|
||||||
[html-elements.html]
|
|
||||||
[Compare CSS span definitions (only valid if pre-reqs pass)]
|
|
||||||
expected:
|
|
||||||
if product == "safari" or product == "epiphany" or product == "webkit": FAIL # https://bugs.webkit.org/show_bug.cgi?id=187052
|
|
||||||
|
|
||||||
|
|
||||||
[Compare CSS div definitions (only valid if pre-reqs pass)]
|
|
||||||
expected:
|
|
||||||
if product == "safari" or product == "epiphany" or product == "webkit": FAIL # https://bugs.webkit.org/show_bug.cgi?id=187052
|
|
|
@ -30,7 +30,20 @@ typedef [StringContext=TrustedScriptURL] USVString ScriptURLString;
|
||||||
SecureContext
|
SecureContext
|
||||||
] interface TrustedTypePolicyFactory : EventTarget {
|
] interface TrustedTypePolicyFactory : EventTarget {
|
||||||
TrustedTypePolicy createPolicy(DOMString policyName, optional TrustedTypePolicyOptions policyOptions = {});
|
TrustedTypePolicy createPolicy(DOMString policyName, optional TrustedTypePolicyOptions policyOptions = {});
|
||||||
// All the policy object names that have been created
|
boolean isHTML(any checkedObject);
|
||||||
|
boolean isScript(any checkedObject);
|
||||||
|
boolean isScriptURL(any checkedObject);
|
||||||
|
readonly attribute TrustedHTML emptyHTML;
|
||||||
|
readonly attribute TrustedScript emptyScript;
|
||||||
|
DOMString? getAttributeType(DOMString tagName, DOMString attribute,
|
||||||
|
optional DOMString elementNS, optional DOMString attrNs);
|
||||||
|
DOMString? getPropertyType(DOMString tagName, DOMString property,
|
||||||
|
optional DOMString elementNS);
|
||||||
|
|
||||||
|
readonly attribute TrustedTypePolicy defaultPolicy;
|
||||||
|
object? getTypeMapping(optional DOMString ns);
|
||||||
|
|
||||||
|
attribute EventHandler onbeforecreatepolicy;
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
|
|
|
@ -24,7 +24,7 @@ interface Animation : EventTarget {
|
||||||
optional AnimationTimeline? timeline);
|
optional AnimationTimeline? timeline);
|
||||||
attribute DOMString id;
|
attribute DOMString id;
|
||||||
attribute AnimationEffect? effect;
|
attribute AnimationEffect? effect;
|
||||||
readonly attribute AnimationTimeline? timeline;
|
attribute AnimationTimeline? timeline;
|
||||||
attribute double? startTime;
|
attribute double? startTime;
|
||||||
attribute double? currentTime;
|
attribute double? currentTime;
|
||||||
attribute double playbackRate;
|
attribute double playbackRate;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
cask 'safari-technology-preview' do
|
cask 'safari-technology-preview' do
|
||||||
if MacOS.version <= :mojave
|
if MacOS.version <= :catalina
|
||||||
version '108,001-15210-20200610-d35e22e0-d9fa-4503-9988-cf7b2b554e15'
|
version '111,001-32177-20200728-f459b529-99a7-4707-a85c-e693ddb56eee'
|
||||||
sha256 '0299fd2f2836b170a8b633b00d289bcc6913716042e82251af4fa1d5394b87d5'
|
sha256 'f95f72e8cf6a3160fad71411168c8f0eeb805ca1e7a7eec06b6e92d2a0ab6e85'
|
||||||
else
|
else
|
||||||
version '108,001-16091-20200610-09f04256-ae36-4930-b7c4-b1333f8d8e5f'
|
version '111,001-32479-20200728-12c458d1-e348-4ec5-9d55-9e9bad9c805e'
|
||||||
sha256 '22a4d9ca7fb39227cbf4a83be13ad05973171cf88eb6bcc2fac4556a36017357'
|
sha256 '6b199cca77be7407f40a62bc1ec576a8751b24da15613dfc0a951ac3d996f45f'
|
||||||
end
|
end
|
||||||
|
|
||||||
url "https://secure-appldnld.apple.com/STP/#{version.after_comma}/SafariTechnologyPreview.dmg"
|
url "https://secure-appldnld.apple.com/STP/#{version.after_comma}/SafariTechnologyPreview.dmg"
|
||||||
|
@ -13,7 +13,7 @@ cask 'safari-technology-preview' do
|
||||||
homepage 'https://developer.apple.com/safari/download/'
|
homepage 'https://developer.apple.com/safari/download/'
|
||||||
|
|
||||||
auto_updates true
|
auto_updates true
|
||||||
depends_on macos: '>= :mojave'
|
depends_on macos: '>= :catalina'
|
||||||
|
|
||||||
pkg 'Safari Technology Preview.pkg'
|
pkg 'Safari Technology Preview.pkg'
|
||||||
|
|
||||||
|
|
|
@ -242,6 +242,15 @@ class Window(object):
|
||||||
def __init__(self, session):
|
def __init__(self, session):
|
||||||
self.session = session
|
self.session = session
|
||||||
|
|
||||||
|
@command
|
||||||
|
def close(self):
|
||||||
|
handles = self.session.send_session_command("DELETE", "window")
|
||||||
|
if handles is not None and len(handles) == 0:
|
||||||
|
# With no more open top-level browsing contexts, the session is closed.
|
||||||
|
self.session.session_id = None
|
||||||
|
|
||||||
|
return handles
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@command
|
@command
|
||||||
def rect(self):
|
def rect(self):
|
||||||
|
@ -548,6 +557,13 @@ class Session(object):
|
||||||
def source(self):
|
def source(self):
|
||||||
return self.send_session_command("GET", "source")
|
return self.send_session_command("GET", "source")
|
||||||
|
|
||||||
|
@command
|
||||||
|
def new_window(self, type_hint=None):
|
||||||
|
body = {"type": type_hint}
|
||||||
|
value = self.send_session_command("POST", "window/new", body)
|
||||||
|
|
||||||
|
return value["handle"]
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@command
|
@command
|
||||||
def window_handle(self):
|
def window_handle(self):
|
||||||
|
@ -569,15 +585,6 @@ class Session(object):
|
||||||
|
|
||||||
return self.send_session_command("POST", url, body)
|
return self.send_session_command("POST", url, body)
|
||||||
|
|
||||||
@command
|
|
||||||
def close(self):
|
|
||||||
handles = self.send_session_command("DELETE", "window")
|
|
||||||
if handles is not None and len(handles) == 0:
|
|
||||||
# With no more open top-level browsing contexts, the session is closed.
|
|
||||||
self.session_id = None
|
|
||||||
|
|
||||||
return handles
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
@command
|
@command
|
||||||
def handles(self):
|
def handles(self):
|
||||||
|
|
|
@ -112,7 +112,7 @@ class WebDriverTestharnessProtocolPart(TestharnessProtocolPart):
|
||||||
for handle in handles:
|
for handle in handles:
|
||||||
try:
|
try:
|
||||||
self.webdriver.window_handle = handle
|
self.webdriver.window_handle = handle
|
||||||
self.webdriver.close()
|
self.webdriver.window.close()
|
||||||
except client.NoSuchWindowException:
|
except client.NoSuchWindowException:
|
||||||
pass
|
pass
|
||||||
self.webdriver.window_handle = self.runner_handle
|
self.webdriver.window_handle = self.runner_handle
|
||||||
|
|
|
@ -60,7 +60,7 @@ test(t => {
|
||||||
new Animation(new KeyframeEffect(createDiv(t), null, 100 * MS_PER_SEC),
|
new Animation(new KeyframeEffect(createDiv(t), null, 100 * MS_PER_SEC),
|
||||||
null);
|
null);
|
||||||
animation.startTime = document.timeline.currentTime;
|
animation.startTime = document.timeline.currentTime;
|
||||||
assert_equals(animation.playState, 'idle');
|
assert_equals(animation.playState, 'running');
|
||||||
|
|
||||||
animation.timeline = document.timeline;
|
animation.timeline = document.timeline;
|
||||||
|
|
||||||
|
@ -73,7 +73,7 @@ test(t => {
|
||||||
new Animation(new KeyframeEffect(createDiv(t), null, 100 * MS_PER_SEC),
|
new Animation(new KeyframeEffect(createDiv(t), null, 100 * MS_PER_SEC),
|
||||||
null);
|
null);
|
||||||
animation.startTime = document.timeline.currentTime - 200 * MS_PER_SEC;
|
animation.startTime = document.timeline.currentTime - 200 * MS_PER_SEC;
|
||||||
assert_equals(animation.playState, 'idle');
|
assert_equals(animation.playState, 'running');
|
||||||
|
|
||||||
animation.timeline = document.timeline;
|
animation.timeline = document.timeline;
|
||||||
|
|
||||||
|
|
|
@ -4,15 +4,15 @@ from webdriver.error import NoSuchWindowException
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(name="session")
|
@pytest.fixture(name="session")
|
||||||
def fixture_session(capabilities, session, create_window):
|
def fixture_session(capabilities, session):
|
||||||
"""Prevent re-using existent history by running the test in a new window."""
|
"""Prevent re-using existent history by running the test in a new window."""
|
||||||
original_handle = session.window_handle
|
original_handle = session.window_handle
|
||||||
session.window_handle = create_window()
|
session.window_handle = session.new_window()
|
||||||
|
|
||||||
yield session
|
yield session
|
||||||
|
|
||||||
try:
|
try:
|
||||||
session.close()
|
session.window.close()
|
||||||
except NoSuchWindowException:
|
except NoSuchWindowException:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -15,10 +15,10 @@ def test_no_browsing_context(session, closed_window):
|
||||||
assert_error(response, "no such window")
|
assert_error(response, "no such window")
|
||||||
|
|
||||||
|
|
||||||
def test_close_browsing_context(session, create_window):
|
def test_close_browsing_context(session):
|
||||||
original_handles = session.handles
|
original_handles = session.handles
|
||||||
|
|
||||||
new_handle = create_window()
|
new_handle = session.new_window()
|
||||||
session.window_handle = new_handle
|
session.window_handle = new_handle
|
||||||
|
|
||||||
response = close(session)
|
response = close(session)
|
||||||
|
@ -27,10 +27,10 @@ def test_close_browsing_context(session, create_window):
|
||||||
assert new_handle not in handles
|
assert new_handle not in handles
|
||||||
|
|
||||||
|
|
||||||
def test_close_browsing_context_with_dismissed_beforeunload_prompt(session, create_window):
|
def test_close_browsing_context_with_dismissed_beforeunload_prompt(session):
|
||||||
original_handles = session.handles
|
original_handles = session.handles
|
||||||
|
|
||||||
new_handle = create_window()
|
new_handle = session.new_window()
|
||||||
session.window_handle = new_handle
|
session.window_handle = new_handle
|
||||||
|
|
||||||
session.url = inline("""
|
session.url = inline("""
|
||||||
|
|
|
@ -11,10 +11,10 @@ def close(session):
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def check_user_prompt_closed_without_exception(session, create_dialog, create_window):
|
def check_user_prompt_closed_without_exception(session, create_dialog):
|
||||||
def check_user_prompt_closed_without_exception(dialog_type, retval):
|
def check_user_prompt_closed_without_exception(dialog_type, retval):
|
||||||
original_handle = session.window_handle
|
original_handle = session.window_handle
|
||||||
new_handle = create_window()
|
new_handle = session.new_window()
|
||||||
session.window_handle = new_handle
|
session.window_handle = new_handle
|
||||||
|
|
||||||
create_dialog(dialog_type, text=dialog_type)
|
create_dialog(dialog_type, text=dialog_type)
|
||||||
|
@ -34,9 +34,9 @@ def check_user_prompt_closed_without_exception(session, create_dialog, create_wi
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def check_user_prompt_closed_with_exception(session, create_dialog, create_window):
|
def check_user_prompt_closed_with_exception(session, create_dialog):
|
||||||
def check_user_prompt_closed_with_exception(dialog_type, retval):
|
def check_user_prompt_closed_with_exception(dialog_type, retval):
|
||||||
new_handle = create_window()
|
new_handle = session.new_window()
|
||||||
session.window_handle = new_handle
|
session.window_handle = new_handle
|
||||||
|
|
||||||
create_dialog(dialog_type, text=dialog_type)
|
create_dialog(dialog_type, text=dialog_type)
|
||||||
|
@ -52,9 +52,9 @@ def check_user_prompt_closed_with_exception(session, create_dialog, create_windo
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def check_user_prompt_not_closed_but_exception(session, create_dialog, create_window):
|
def check_user_prompt_not_closed_but_exception(session, create_dialog):
|
||||||
def check_user_prompt_not_closed_but_exception(dialog_type):
|
def check_user_prompt_not_closed_but_exception(dialog_type):
|
||||||
new_handle = create_window()
|
new_handle = session.new_window()
|
||||||
session.window_handle = new_handle
|
session.window_handle = new_handle
|
||||||
|
|
||||||
create_dialog(dialog_type, text=dialog_type)
|
create_dialog(dialog_type, text=dialog_type)
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
import pytest
|
from tests.support.asserts import assert_success
|
||||||
|
|
||||||
from tests.support.asserts import assert_error, assert_success
|
|
||||||
from tests.support.inline import inline
|
from tests.support.inline import inline
|
||||||
|
|
||||||
|
|
||||||
def element_click(session, element):
|
def element_click(session, element):
|
||||||
return session.transport.send(
|
return session.transport.send(
|
||||||
"POST", "session/{session_id}/element/{element_id}/click".format(
|
"POST", "session/{session_id}/element/{element_id}/click".format(
|
||||||
|
@ -93,12 +92,14 @@ def test_link_hash(session):
|
||||||
""", args=(element,)) is True
|
""", args=(element,)) is True
|
||||||
|
|
||||||
|
|
||||||
def test_link_closes_window(session, create_window):
|
def test_link_closes_window(session, url):
|
||||||
new_handle = create_window()
|
new_handle = session.new_window()
|
||||||
session.window_handle = new_handle
|
session.window_handle = new_handle
|
||||||
|
|
||||||
session.url = inline("""<a href="/webdriver/tests/element_click/support/close_window.html">asdf</a>""")
|
session.url = inline("""<a href="javascript:window.close()">Close me</a>""")
|
||||||
element = session.find.css("a", all=False)
|
element = session.find.css("a", all=False)
|
||||||
|
|
||||||
response = element_click(session, element)
|
response = element_click(session, element)
|
||||||
assert_success(response)
|
assert_success(response)
|
||||||
|
|
||||||
assert new_handle not in session.handles
|
assert new_handle not in session.handles
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
<html>
|
|
||||||
<body onload="checkload()">
|
|
||||||
<script>
|
|
||||||
function checkload() {
|
|
||||||
window.close()
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -4,15 +4,15 @@ from webdriver.error import NoSuchWindowException
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(name="session")
|
@pytest.fixture(name="session")
|
||||||
def fixture_session(capabilities, session, create_window):
|
def fixture_session(capabilities, session):
|
||||||
"""Prevent re-using existent history by running the test in a new window."""
|
"""Prevent re-using existent history by running the test in a new window."""
|
||||||
original_handle = session.window_handle
|
original_handle = session.window_handle
|
||||||
session.window_handle = create_window()
|
session.window_handle = session.new_window()
|
||||||
|
|
||||||
yield session
|
yield session
|
||||||
|
|
||||||
try:
|
try:
|
||||||
session.close()
|
session.window.close()
|
||||||
except NoSuchWindowException:
|
except NoSuchWindowException:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -6,12 +6,11 @@ def get_window_handles(session):
|
||||||
"GET", "session/{session_id}/window/handles".format(**vars(session)))
|
"GET", "session/{session_id}/window/handles".format(**vars(session)))
|
||||||
|
|
||||||
|
|
||||||
def test_no_browsing_context(session, create_window):
|
def test_no_browsing_context(session):
|
||||||
window_handles = session.handles
|
window_handles = session.handles
|
||||||
|
|
||||||
new_handle = create_window()
|
session.window_handle = session.new_window()
|
||||||
session.window_handle = new_handle
|
session.window.close()
|
||||||
session.close()
|
|
||||||
|
|
||||||
response = get_window_handles(session)
|
response = get_window_handles(session)
|
||||||
assert_success(response, window_handles)
|
assert_success(response, window_handles)
|
||||||
|
@ -26,9 +25,9 @@ def test_single_window(session):
|
||||||
assert value[0] == session.window_handle
|
assert value[0] == session.window_handle
|
||||||
|
|
||||||
|
|
||||||
def test_multiple_windows(session, create_window):
|
def test_multiple_windows(session):
|
||||||
original_handle = session.window_handle
|
original_handle = session.window_handle
|
||||||
new_handle = create_window()
|
new_handle = session.new_window()
|
||||||
|
|
||||||
response = get_window_handles(session)
|
response = get_window_handles(session)
|
||||||
value = assert_success(response)
|
value = assert_success(response)
|
||||||
|
|
|
@ -100,10 +100,10 @@ def test_set_to_state(session, url, state, realmSetting):
|
||||||
{}
|
{}
|
||||||
])
|
])
|
||||||
@pytest.mark.capabilities({"acceptInsecureCerts": True})
|
@pytest.mark.capabilities({"acceptInsecureCerts": True})
|
||||||
def test_set_to_state_cross_realm(session, create_window, url, state, realmSetting):
|
def test_set_to_state_cross_realm(session, url, state, realmSetting):
|
||||||
session.url = url("/common/blank.html", protocol="https")
|
session.url = url("/common/blank.html", protocol="https")
|
||||||
original_window = session.window_handle
|
original_window = session.window_handle
|
||||||
session.window_handle = create_window()
|
session.window_handle = session.new_window()
|
||||||
session.url = url("/common/blank.html", protocol="https")
|
session.url = url("/common/blank.html", protocol="https")
|
||||||
parameters = { "descriptor": { "name": "geolocation" }, "state": state }
|
parameters = { "descriptor": { "name": "geolocation" }, "state": state }
|
||||||
parameters.update(realmSetting)
|
parameters.update(realmSetting)
|
||||||
|
|
|
@ -4,10 +4,10 @@ from webdriver.error import NoSuchAlertException, NoSuchWindowException
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(name="session")
|
@pytest.fixture(name="session")
|
||||||
def fixture_session(capabilities, session, create_window):
|
def fixture_session(capabilities, session):
|
||||||
"""Prevent dialog rate limits by running the test in a new window."""
|
"""Prevent dialog rate limits by running the test in a new window."""
|
||||||
original_handle = session.window_handle
|
original_handle = session.window_handle
|
||||||
session.window_handle = create_window()
|
session.window_handle = session.new_window()
|
||||||
|
|
||||||
yield session
|
yield session
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ def fixture_session(capabilities, session, create_window):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
session.close()
|
session.window.close()
|
||||||
except NoSuchWindowException:
|
except NoSuchWindowException:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
@ -87,18 +87,6 @@ def create_frame(session):
|
||||||
return create_frame
|
return create_frame
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def create_window(session):
|
|
||||||
"""Open new window and return the window handle."""
|
|
||||||
def create_window():
|
|
||||||
windows_before = session.handles
|
|
||||||
name = session.execute_script("window.open()")
|
|
||||||
assert len(session.handles) == len(windows_before) + 1
|
|
||||||
new_windows = list(set(session.handles) - set(windows_before))
|
|
||||||
return new_windows.pop()
|
|
||||||
return create_window
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def http(configuration):
|
def http(configuration):
|
||||||
return HTTPRequest(configuration["host"], configuration["port"])
|
return HTTPRequest(configuration["host"], configuration["port"])
|
||||||
|
@ -224,13 +212,13 @@ def create_dialog(session):
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def closed_window(session, create_window):
|
def closed_window(session):
|
||||||
original_handle = session.window_handle
|
original_handle = session.window_handle
|
||||||
|
new_handle = session.new_window()
|
||||||
|
|
||||||
new_handle = create_window()
|
|
||||||
session.window_handle = new_handle
|
session.window_handle = new_handle
|
||||||
|
|
||||||
session.close()
|
session.window.close()
|
||||||
assert new_handle not in session.handles, "Unable to close window {}".format(new_handle)
|
assert new_handle not in session.handles, "Unable to close window {}".format(new_handle)
|
||||||
|
|
||||||
yield new_handle
|
yield new_handle
|
||||||
|
|
|
@ -70,7 +70,7 @@ def cleanup_session(session):
|
||||||
for window in _windows(session, exclude=[current_window]):
|
for window in _windows(session, exclude=[current_window]):
|
||||||
session.window_handle = window
|
session.window_handle = window
|
||||||
if len(session.handles) > 1:
|
if len(session.handles) > 1:
|
||||||
session.close()
|
session.window.close()
|
||||||
|
|
||||||
session.window_handle = current_window
|
session.window_handle = current_window
|
||||||
|
|
||||||
|
|
|
@ -11,10 +11,10 @@ def switch_to_window(session, handle):
|
||||||
{"handle": handle})
|
{"handle": handle})
|
||||||
|
|
||||||
|
|
||||||
def test_retain_tab_modal_status(session, create_window):
|
def test_retain_tab_modal_status(session):
|
||||||
handle = session.window_handle
|
handle = session.window_handle
|
||||||
|
|
||||||
new_handle = create_window()
|
new_handle = session.new_window()
|
||||||
response = switch_to_window(session, new_handle)
|
response = switch_to_window(session, new_handle)
|
||||||
assert_success(response)
|
assert_success(response)
|
||||||
|
|
||||||
|
|
|
@ -15,9 +15,7 @@ def test_null_parameter_value(session, http):
|
||||||
assert_error(Response.from_http(response), "invalid argument")
|
assert_error(Response.from_http(response), "invalid argument")
|
||||||
|
|
||||||
|
|
||||||
def test_null_response_value(session, create_window):
|
def test_null_response_value(session):
|
||||||
new_handle = create_window()
|
response = switch_to_window(session, session.new_window())
|
||||||
|
|
||||||
response = switch_to_window(session, new_handle)
|
|
||||||
value = assert_success(response)
|
value = assert_success(response)
|
||||||
assert value is None
|
assert value is None
|
||||||
|
|
|
@ -707,6 +707,11 @@ for (const options of [{}, {negotiated: true, id: 0}]) {
|
||||||
await createDataChannelPair(t, options, pc1);
|
await createDataChannelPair(t, options, pc1);
|
||||||
}, `addTrack, then creating ${mode}, should negotiate properly when max-bundle is used`);
|
}, `addTrack, then creating ${mode}, should negotiate properly when max-bundle is used`);
|
||||||
|
|
||||||
|
/*
|
||||||
|
This test is disabled until https://github.com/w3c/webrtc-pc/issues/2562
|
||||||
|
has been resolved; it presupposes that stopping the first transceiver
|
||||||
|
breaks the transport.
|
||||||
|
|
||||||
promise_test(async t => {
|
promise_test(async t => {
|
||||||
const pc1 = new RTCPeerConnection({bundlePolicy: "max-bundle"});
|
const pc1 = new RTCPeerConnection({bundlePolicy: "max-bundle"});
|
||||||
const pc2 = new RTCPeerConnection();
|
const pc2 = new RTCPeerConnection();
|
||||||
|
@ -726,6 +731,7 @@ for (const options of [{}, {negotiated: true, id: 0}]) {
|
||||||
await dc1Closed;
|
await dc1Closed;
|
||||||
}, `Stopping the bundle-tag when there is a ${mode} in the bundle ` +
|
}, `Stopping the bundle-tag when there is a ${mode} in the bundle ` +
|
||||||
`should kill the DataChannel`);
|
`should kill the DataChannel`);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -137,8 +137,12 @@
|
||||||
await pc1.setLocalDescription(await pc1.createOffer());
|
await pc1.setLocalDescription(await pc1.createOffer());
|
||||||
await pc2.setRemoteDescription(pc1.localDescription);
|
await pc2.setRemoteDescription(pc1.localDescription);
|
||||||
await pc2.setLocalDescription(await pc2.createAnswer());
|
await pc2.setLocalDescription(await pc2.createAnswer());
|
||||||
|
assert_equals(pc2.getTransceivers().length, 0,
|
||||||
|
'PC2 transceivers should be invisible after negotiation');
|
||||||
await iceGatheringStateTransitions(pc2, 'new');
|
await iceGatheringStateTransitions(pc2, 'new');
|
||||||
await pc1.setRemoteDescription(pc2.localDescription);
|
await pc1.setRemoteDescription(pc2.localDescription);
|
||||||
|
assert_equals(pc1.getTransceivers().length, 0,
|
||||||
|
'PC1 transceivers should be invisible after negotiation');
|
||||||
await iceGatheringStateTransitions(pc1, 'new');
|
await iceGatheringStateTransitions(pc1, 'new');
|
||||||
}, 'renegotiation that closes all transports should result in ICE gathering state "new"');
|
}, 'renegotiation that closes all transports should result in ICE gathering state "new"');
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue