Update web-platform-tests to revision 4f22c5b19bae217799ce92c9df6dfdf2800c6d81

This commit is contained in:
WPT Sync Bot 2019-09-30 10:46:11 +00:00
parent 086e06b28b
commit ae931fea9a
70 changed files with 1114 additions and 416 deletions

View file

@ -14,6 +14,9 @@
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL
[url-with-fetch.any.html]
[Untitled]

View file

@ -286065,6 +286065,12 @@
"upgrade-insecure-requests/META.yml": [
[]
],
"upgrade-insecure-requests/generic/test-case.sub.js": [
[]
],
"upgrade-insecure-requests/generic/tools/generate.py": [
[]
],
"upgrade-insecure-requests/link-upgrade/basic-link-no-upgrade.sub.html": [
[]
],
@ -286125,7 +286131,10 @@
"upgrade-insecure-requests/link-upgrade/resources/post-message-to-opener.sub.html": [
[]
],
"upgrade-insecure-requests/support/generate.py": [
"upgrade-insecure-requests/spec.src.json": [
[]
],
"upgrade-insecure-requests/spec_json.js": [
[]
],
"upgrade-insecure-requests/support/redirect-cors.py": [
@ -308327,6 +308336,144 @@
{}
]
],
"compression/decompression-bad-chunks.any.js": [
[
"compression/decompression-bad-chunks.any.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
],
[
"compression/decompression-bad-chunks.any.serviceworker.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
],
[
"compression/decompression-bad-chunks.any.sharedworker.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
],
[
"compression/decompression-bad-chunks.any.worker.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
]
],
"compression/decompression-constructor-error.any.js": [
[
"compression/decompression-constructor-error.any.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
],
[
"compression/decompression-constructor-error.any.serviceworker.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
],
[
"compression/decompression-constructor-error.any.sharedworker.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
],
[
"compression/decompression-constructor-error.any.worker.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
]
],
"compression/decompression-correct-input.any.js": [
[
"compression/decompression-correct-input.any.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
],
[
"compression/decompression-correct-input.any.serviceworker.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
],
[
"compression/decompression-correct-input.any.sharedworker.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
],
[
"compression/decompression-correct-input.any.worker.html",
{
"script_metadata": [
[
"global",
"worker"
]
]
}
]
],
"console/console-is-a-namespace.any.js": [
[
"console/console-is-a-namespace.any.html",
@ -395194,6 +395341,12 @@
{}
]
],
"resource-timing/resource_hash.htm": [
[
"resource-timing/resource_hash.htm",
{}
]
],
"resource-timing/resource_ignore_data_url.html": [
[
"resource-timing/resource_ignore_data_url.html",
@ -457856,11 +458009,11 @@
"support"
],
"common/security-features/tools/format_spec_src_json.py": [
"1276c78f9fb71f98971476000c082ab3511787e6",
"b4549bb710cd119e87ca4a41d65d7980b6b40406",
"support"
],
"common/security-features/tools/generate.py": [
"0cf7fab42ec199b5f93926a5133ff149bff93c8c",
"fa36d8c63d6d84a1c5eafd3160b879f7f3c94310",
"support"
],
"common/security-features/tools/spec_validator.py": [
@ -458047,6 +458200,18 @@
"1d3965fca6769c70bc02308a4c70b4e58c8990e5",
"reftest"
],
"compression/decompression-bad-chunks.any.js": [
"8f44ffd902f0838cecf72be50245ab4c683fc09c",
"testharness"
],
"compression/decompression-constructor-error.any.js": [
"9ffdb08ce2ff365f70af8121f82e5856c6de9533",
"testharness"
],
"compression/decompression-correct-input.any.js": [
"11d8736cb225d6ce575677dcdb70b0a19dd4f65f",
"testharness"
],
"conformance-checkers/META.yml": [
"978b5c85721c28f267ec21ceb620017514441385",
"support"
@ -586720,11 +586885,11 @@
"testharness"
],
"css/css-transforms/animation/rotate-interpolation.html": [
"911d8e38bd0bb6c3d5652d6824c64c58bd2233cf",
"dbf66a734f443eb608d92980ec38304cc7283530",
"testharness"
],
"css/css-transforms/animation/scale-interpolation.html": [
"c6fec26461155ec15d9eb0ab469205c4868db161",
"e71b134ce5f94143127ba830e99d37c20a433313",
"testharness"
],
"css/css-transforms/animation/transform-interpolation-001.html": [
@ -586756,7 +586921,7 @@
"testharness"
],
"css/css-transforms/animation/translate-interpolation.html": [
"c73f68a130e86b39b4832111bbfb05c633e09429",
"3d40863b3b4332799443433f1a470de0100956ce",
"testharness"
],
"css/css-transforms/backface-visibility-hidden-001.html": [
@ -587676,27 +587841,27 @@
"testharness"
],
"css/css-transforms/parsing/perspective-origin-invalid.html": [
"2ed6721e091702a436217086eebd81172f359339",
"f4f01a339957df866b8bfad4cea3de1bf26c7915",
"testharness"
],
"css/css-transforms/parsing/perspective-origin-valid.html": [
"79f4e0df12e84e880e8c501856a977e1a2c468b8",
"7653d7eceb8d1d0b0ae7adb5c6fb542d5f42adda",
"testharness"
],
"css/css-transforms/parsing/rotate-parsing-invalid.html": [
"9eef999716da1025b1c8595f60e52ff2cdb7715e",
"4b6d7cf2ad5f21091e3bd8d47388d28ae964d73a",
"testharness"
],
"css/css-transforms/parsing/rotate-parsing-valid.html": [
"ae9732282b7de4555551037b54dadea7ca9b0bc4",
"af0226c96765551a5f7468fcfd1742091f119212",
"testharness"
],
"css/css-transforms/parsing/scale-parsing-invalid.html": [
"1072d1d6b1ecc46142ffbdd2ad62b87079651672",
"968e0dc17b1c6bad9f680d4ebfdd80df4f57afe0",
"testharness"
],
"css/css-transforms/parsing/scale-parsing-valid.html": [
"2ae12222f1361b6b0016ce235fad92d03b3bff45",
"ac23a17b0133c271cb88d9579ebf33b93f4f502d",
"testharness"
],
"css/css-transforms/parsing/transform-box-computed.html": [
@ -587704,39 +587869,39 @@
"testharness"
],
"css/css-transforms/parsing/transform-box-invalid.html": [
"781601cd26aa43430272011d67447a9079015659",
"af07a7e406ca640c8135802f2f0a8742b7b0e747",
"testharness"
],
"css/css-transforms/parsing/transform-box-valid.html": [
"0754a5c9aeea70b07c9bb7bc1b2d20494f07a060",
"df53d327acf72fef155288094df41b4254e2d1b7",
"testharness"
],
"css/css-transforms/parsing/transform-invalid.html": [
"7fb8367ecb2f6e2f151a1ee6afaab9896f07f8c8",
"25aeeae4e5df99febd541a61a5f0b0f9a8ff2471",
"testharness"
],
"css/css-transforms/parsing/transform-origin-computed.html": [
"696d89db67fc9dd611fa0c09fccbe0408134e744",
"b8648b8a11a707ec06faa0fae7fd4879c0879631",
"testharness"
],
"css/css-transforms/parsing/transform-origin-invalid.html": [
"0dd1eeaf592b94fe65d0ccfb731c826b5dfcb3dc",
"5533be4e22e1b67599f0a064ef9d7580736c7b76",
"testharness"
],
"css/css-transforms/parsing/transform-origin-valid.html": [
"f76a0b407e16e3b98c7bac0c4149725deb02ea98",
"d5c952ed0f78f93d1e5fa40c571c3ee1b3d8f958",
"testharness"
],
"css/css-transforms/parsing/transform-valid.html": [
"18de33f8a7a21be5b337cc02288471d7ba99f9ae",
"7879bd686a6f32b76947c1ffee6f8aff4c2c4db2",
"testharness"
],
"css/css-transforms/parsing/translate-parsing-invalid.html": [
"9064586bdaab692334594a1cc17f24d639aab93c",
"2b7ff750c7cd004e3aaa64cb9ae84dd75bb05c69",
"testharness"
],
"css/css-transforms/parsing/translate-parsing-valid.html": [
"c59ac9fa958175948f36bcab5044911f4b9215ba",
"17699ccc1c2d6570a0f20c3c9442cfaf681369d2",
"testharness"
],
"css/css-transforms/patternTransform/reference/svg-patternTransform-combination-ref.html": [
@ -590616,11 +590781,11 @@
"reftest"
],
"css/css-transforms/transforms-support-calc.html": [
"1ad1bcc4b68c5419e2fa0651dad1a3386223e36b",
"a952d21b6646c862777b13c8d7a670ad4ae6eb72",
"testharness"
],
"css/css-transforms/translate-getComputedStyle.html": [
"46a2c309020b5c66daba37f4d39879998b750214",
"2a4cdc6d6c622d2d131fdc0dfce95db28af4f831",
"testharness"
],
"css/css-transforms/translate-optional-second-001.html": [
@ -626072,7 +626237,7 @@
"support"
],
"fetch/api/resources/preflight.py": [
"d2249606db624892dab96fc9484a9e274947b859",
"a2552c2565ad9be6d17dea1cb6a90ff9eb211190",
"support"
],
"fetch/api/resources/redirect-empty-location.py": [
@ -649628,7 +649793,7 @@
"support"
],
"interfaces/gyroscope.idl": [
"24cd82c643159d680004937d12a17a38c06ece1b",
"3754fd81e6bf605a308794e5b759ecd8784a6a15",
"support"
],
"interfaces/hr-time.idl": [
@ -675775,6 +675940,10 @@
"de3c3d015d1db068868b54b924a358018fb49e84",
"testharness"
],
"resource-timing/resource_hash.htm": [
"a44c1c9065967682261346051f5e4391d81f1667",
"testharness"
],
"resource-timing/resource_ignore_data_url.html": [
"f8ca2f1187e934fc9b07b5dbc31769f887528b51",
"testharness"
@ -693515,6 +693684,14 @@
"704bba994088a6e2197142a7ddbd71bc89eea7d8",
"testharness"
],
"upgrade-insecure-requests/generic/test-case.sub.js": [
"cde228dbad89f7b707a6332dc8ed3b41e0474555",
"support"
],
"upgrade-insecure-requests/generic/tools/generate.py": [
"cde29893f5fbd35ff0ccf00f7ee323fbb3194c8b",
"support"
],
"upgrade-insecure-requests/iframe-redirect-upgrade.https.html": [
"7d0a310cf43e6144d3fc2d13f81d3f8912569e3f",
"testharness"
@ -693659,8 +693836,12 @@
"cf1d3c382e4b139db42e807ab1db166cb0d4fbbb",
"testharness"
],
"upgrade-insecure-requests/support/generate.py": [
"e3f5aaf3ddf858989f83bcba1743ef73978162e1",
"upgrade-insecure-requests/spec.src.json": [
"6aee9a280b0ff5001c77e2d8a688618c049dc226",
"support"
],
"upgrade-insecure-requests/spec_json.js": [
"9122ce38e31e1a2c2c2c3f4caa291ae24e91a8cb",
"support"
],
"upgrade-insecure-requests/support/redirect-cors.py": [
@ -698232,7 +698413,7 @@
"wdspec"
],
"webdriver/tests/take_element_screenshot/user_prompts.py": [
"221eaa9363528d3fa102f9506d81bca89546e9f5",
"5d1b497ff2c4dcda6b1d5d14d9fd99c4c282809c",
"wdspec"
],
"webdriver/tests/take_screenshot/__init__.py": [
@ -698248,7 +698429,7 @@
"wdspec"
],
"webdriver/tests/take_screenshot/user_prompts.py": [
"902463f22c8165628ce5fccffafdc70481300f20",
"ad9e3695148d63153db8aacbe3b8444a814d5ba3",
"wdspec"
],
"webgl/META.yml": [

View file

@ -0,0 +1,2 @@
[c15-ids-000.xht]
expected: FAIL

View file

@ -1,2 +0,0 @@
[mix-blend-mode-animation.html]
expected: FAIL

View file

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

View file

@ -312,15 +312,18 @@
[<iframe>: separate response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL

View file

@ -53,3 +53,9 @@
[combined text/javascript ]
expected: FAIL
[separate text/javascript;charset=windows-1252 error text/javascript]
expected: FAIL
[separate text/javascript x/x]
expected: FAIL

View file

@ -1,4 +0,0 @@
[navigation-unload-same-origin-fragment.html]
[Tests that a fragment navigation in the unload handler will not block the initial navigation]
expected: FAIL

View file

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

View file

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

View file

@ -0,0 +1,4 @@
[creating_browsing_context_test_01.html]
[first argument: absolute url]
expected: FAIL

View file

@ -1,24 +1,5 @@
[open-features-negative-innerwidth-innerheight.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `innerwidth`, `innerheight`]
expected: FAIL
[features "innerheight=-404.5" should NOT set "height=404"]
expected: TIMEOUT
[features "innerwidth=-404.5" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=-404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerheight=-404e1" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=-404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerwidth=-404e1" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,24 +1,5 @@
[open-features-negative-top-left.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for `top`, `left`]
expected: FAIL
[features "top=-204" should NOT set "top=204"]
expected: TIMEOUT
[features "top=-204.5" should NOT set "top=204"]
expected: TIMEOUT
[features "left=-204" should NOT set "left=204"]
expected: TIMEOUT
[features "top=-0" should NOT set "top=204"]
expected: TIMEOUT
[features "left=-204.5" should NOT set "left=204"]
expected: TIMEOUT
[features "left=-0" should NOT set "left=204"]
expected: TIMEOUT

View file

@ -1,24 +1,5 @@
[open-features-negative-width-height.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for `width`, `height`]
expected: FAIL
[features "height=-404" should NOT set "height=404"]
expected: TIMEOUT
[features "height=-404e1" should NOT set "height=404"]
expected: TIMEOUT
[features "height=-404.5" should NOT set "height=404"]
expected: TIMEOUT
[features "width=-404" should NOT set "width=404"]
expected: TIMEOUT
[features "width=-404e1" should NOT set "width=404"]
expected: TIMEOUT
[features "width=-404.5" should NOT set "width=404"]
expected: TIMEOUT

View file

@ -1,48 +1,32 @@
[open-features-non-integer-height.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `height`]
expected: FAIL
[features "height=405*3" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405.32" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405e1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405/5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405^4" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405.5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405e-1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405 " should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "height=405LLl" should set "height=405"]
expected: TIMEOUT
[features "height=/404" should NOT set "height=404"]
expected: TIMEOUT
[top=0,left=0,width=401,: absence of feature "height" should be treated same as "height=0"]
expected: TIMEOUT
[top=0,left=0: absence of feature "height" should be treated same as "height=0"]
expected: TIMEOUT
[features "height=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "height=L404" should NOT set "height=404"]
expected: TIMEOUT
expected: FAIL

View file

@ -1,42 +1,32 @@
[open-features-non-integer-innerheight.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerheight`]
expected: FAIL
[features "innerheight=405e-1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405LLl" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405^4" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405e1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405 " should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405/5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405.32" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405.5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "innerheight=405*3" should set "height=405"]
expected: TIMEOUT
[features "innerheight=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=L404" should NOT set "height=404"]
expected: TIMEOUT
[features "innerheight=/404" should NOT set "height=404"]
expected: TIMEOUT
expected: FAIL

View file

@ -1,42 +1,32 @@
[open-features-non-integer-innerwidth.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `innerwidth`]
expected: FAIL
[features "innerwidth=405e-1" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "innerwidth=405*3" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "innerwidth=405.5" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "innerwidth=405e1" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "innerwidth=405.32" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "innerwidth=405 " should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "innerwidth=405LLl" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "innerwidth=405/5" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "innerwidth=405^4" should set "width=405"]
expected: TIMEOUT
[features "innerwidth=/404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=_404" should NOT set "width=404"]
expected: TIMEOUT
[features "innerwidth=L404" should NOT set "width=404"]
expected: TIMEOUT
expected: FAIL

View file

@ -1,42 +1,32 @@
[open-features-non-integer-left.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `left`]
expected: FAIL
[features "left=105e1" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105 " should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105/5" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105e-1" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105^4" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105LLl" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105.32" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105*3" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "left=105.5" should set "left=105"]
expected: TIMEOUT
[features "left=L104" should NOT set "left=104"]
expected: TIMEOUT
[features "left=/104" should NOT set "left=104"]
expected: TIMEOUT
[features "left=_104" should NOT set "left=104"]
expected: TIMEOUT
expected: FAIL

View file

@ -1,42 +1,32 @@
[open-features-non-integer-screenx.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screenx`]
expected: FAIL
[features "screenx=105.5" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105e1" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105 " should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105*3" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105e-1" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105^4" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105LLl" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105/5" should set "left=105"]
expected: TIMEOUT
expected: FAIL
[features "screenx=105.32" should set "left=105"]
expected: TIMEOUT
[features "screenx=_104" should NOT set "left=104"]
expected: TIMEOUT
[features "screenx=L104" should NOT set "left=104"]
expected: TIMEOUT
[features "screenx=/104" should NOT set "left=104"]
expected: TIMEOUT
expected: FAIL

View file

@ -1,42 +1,32 @@
[open-features-non-integer-screeny.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for legacy feature `screeny`]
expected: FAIL
[features "screeny=405^4" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405e-1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405LLl" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405e1" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405 " should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405/5" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405*3" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405.32" should set "height=405"]
expected: TIMEOUT
expected: FAIL
[features "screeny=405.5" should set "height=405"]
expected: TIMEOUT
[features "screeny=_404" should NOT set "height=404"]
expected: TIMEOUT
[features "screeny=L404" should NOT set "height=404"]
expected: TIMEOUT
[features "screeny=/404" should NOT set "height=404"]
expected: TIMEOUT
expected: FAIL

View file

@ -1,42 +1,32 @@
[open-features-non-integer-top.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `top`]
expected: FAIL
[features "top=105/5" should set "top=105"]
expected: TIMEOUT
expected: FAIL
[features "top=105*3" should set "top=105"]
expected: TIMEOUT
expected: FAIL
[features "top=105LLl" should set "top=105"]
expected: TIMEOUT
expected: FAIL
[features "top=105e-1" should set "top=105"]
expected: TIMEOUT
expected: FAIL
[features "top=105.32" should set "top=105"]
expected: TIMEOUT
expected: FAIL
[features "top=105e1" should set "top=105"]
expected: TIMEOUT
expected: FAIL
[features "top=105 " should set "top=105"]
expected: TIMEOUT
expected: FAIL
[features "top=105^4" should set "top=105"]
expected: TIMEOUT
expected: FAIL
[features "top=105.5" should set "top=105"]
expected: TIMEOUT
[features "top=/104" should NOT set "top=104"]
expected: TIMEOUT
[features "top=_104" should NOT set "top=104"]
expected: TIMEOUT
[features "top=L104" should NOT set "top=104"]
expected: TIMEOUT
expected: FAIL

View file

@ -1,48 +1,32 @@
[open-features-non-integer-width.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `width`]
expected: FAIL
[features "width=405^4" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405.5" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405e1" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405 " should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405.32" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405LLl" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405*3" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405e-1" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405/5" should set "width=405"]
expected: TIMEOUT
[top=0,left=0: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=_404" should NOT set "width=404"]
expected: TIMEOUT
[top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=/404" should NOT set "width=404"]
expected: TIMEOUT
[features "width=L404" should NOT set "width=404"]
expected: TIMEOUT
expected: FAIL

View file

@ -1,5 +0,0 @@
[opener-setter.html]
expected: TIMEOUT
[Auxiliary browsing context created via `window.open` and setting `window.opener` to `null` should report `window.opener` `null`]
expected: TIMEOUT

View file

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

View file

@ -1,4 +0,0 @@
[media_fragment_seek.html]
[Video should seek to time specified in media fragment syntax]
expected: FAIL

View file

@ -1,4 +1,5 @@
[iframe_sandbox_popups_escaping-2.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL
expected: TIMEOUT

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_escaping-3.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: FAIL
expected: TIMEOUT

View file

@ -1,5 +1,6 @@
[iframe_sandbox_popups_nonescaping-3.html]
type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
expected: FAIL
expected: NOTRUN

View file

@ -0,0 +1,10 @@
[non-active-document.html]
[DOMParser]
expected: FAIL
[createHTMLDocument]
expected: FAIL
[<template>]
expected: FAIL

View file

@ -1,7 +1,11 @@
[form-submission-algorithm.html]
expected: TIMEOUT
[If form's firing submission events is true, then return; 'submit' event]
expected: FAIL
[If form's firing submission events is true, then return; 'invalid' event]
expected: FAIL
[Cannot navigate (after constructing the entry list)]
expected: TIMEOUT

View file

@ -1,7 +0,0 @@
[toggleEvent.html]
[Calling open twice on 'details' fires only one toggle event]
expected: FAIL
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
expected: FAIL

View file

@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL

View file

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

View file

@ -0,0 +1,2 @@
[transition_calc_implicit.html]
expected: TIMEOUT

View file

@ -6,7 +6,9 @@ import os
def main():
'''Formats spec.src.json.'''
script_directory = os.path.dirname(os.path.abspath(__file__))
for dir in ['mixed-content', 'referrer-policy']:
for dir in [
'mixed-content', 'referrer-policy', 'upgrade-insecure-requests'
]:
filename = os.path.join(script_directory, '..', '..', '..', dir,
'spec.src.json')
spec = json.load(

View file

@ -110,6 +110,18 @@ def handle_deliveries(policy_deliveries):
else:
raise Exception(
'Invalid delivery_type: %s' % delivery.delivery_type)
elif delivery.key == 'upgradeInsecureRequests':
# https://w3c.github.io/webappsec-upgrade-insecure-requests/#delivery
assert (delivery.value == 'upgrade')
if delivery.delivery_type == 'meta':
meta += '<meta http-equiv="Content-Security-Policy" ' + \
'content="upgrade-insecure-requests">'
elif delivery.delivery_type == 'http-rp':
headers[
'Content-Security-Policy'] = 'upgrade-insecure-requests'
else:
raise Exception(
'Invalid delivery_type: %s' % delivery.delivery_type)
else:
raise Exception('Invalid delivery_key: %s' % delivery.key)
return {"meta": meta, "headers": headers}

View file

@ -0,0 +1,74 @@
// META: global=worker
'use strict';
const badChunks = [
{
name: 'undefined',
value: undefined
},
{
name: 'null',
value: null
},
{
name: 'numeric',
value: 3.14
},
{
name: 'object, not BufferSource',
value: {}
},
{
name: 'array',
value: [65]
},
{
name: 'SharedArrayBuffer',
// Use a getter to postpone construction so that all tests don't fail where
// SharedArrayBuffer is not yet implemented.
get value() {
return new SharedArrayBuffer();
}
},
{
name: 'shared Uint8Array',
get value() {
new Uint8Array(new SharedArrayBuffer())
}
},
{
name: 'invalid deflate bytes',
get value() {
new Uint8Array([0, 156, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 48, 173, 6, 36])
}
},
{
name: 'invalid gzip bytes',
get value() {
new Uint8Array([0, 139, 8, 0, 0, 0, 0, 0, 0, 3, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 176, 1, 57, 179, 15, 0, 0, 0])
}
},
];
for (const chunk of badChunks) {
promise_test(async t => {
const ds = new DecompressionStream('gzip');
const reader = ds.readable.getReader();
const writer = ds.writable.getWriter();
const writePromise = writer.write(chunk.value);
const readPromise = reader.read();
await promise_rejects(t, new TypeError(), writePromise, 'write should reject');
await promise_rejects(t, new TypeError(), readPromise, 'read should reject');
}, `chunk of type ${chunk.name} should error the stream for gzip`);
promise_test(async t => {
const ds = new DecompressionStream('deflate');
const reader = ds.readable.getReader();
const writer = ds.writable.getWriter();
const writePromise = writer.write(chunk.value);
const readPromise = reader.read();
await promise_rejects(t, new TypeError(), writePromise, 'write should reject');
await promise_rejects(t, new TypeError(), readPromise, 'read should reject');
}, `chunk of type ${chunk.name} should error the stream for deflate`);
}

View file

@ -0,0 +1,15 @@
// META: global=worker
'use strict';
test(t => {
assert_throws(new TypeError(), () => new DecompressionStream('a'), 'constructor should throw');
}, '"a" should cause the constructor to throw');
test(t => {
assert_throws(new TypeError(), () => new DecompressionStream(), 'constructor should throw');
}, 'no input should cause the constructor to throw');
test(t => {
assert_throws(new Error(), () => new DecompressionStream({ toString() { throw Error(); } }), 'constructor should throw');
}, 'non-string input should cause the constructor to throw');

View file

@ -0,0 +1,26 @@
// META: global=worker
'use strict';
const deflateChunkValue = new Uint8Array([120, 156, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 48, 173, 6, 36]);
const gzipChunkValue = new Uint8Array([31, 139, 8, 0, 0, 0, 0, 0, 0, 3, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 176, 1, 57, 179, 15, 0, 0, 0]);
const trueChunkValue = new TextEncoder().encode('expected output');
promise_test(async t => {
const ds = new DecompressionStream('deflate');
const reader = ds.readable.getReader();
const writer = ds.writable.getWriter();
const writePromise = writer.write(deflateChunkValue);
const { done, value } = await reader.read();
assert_array_equals(Array.from(value), trueChunkValue, "value should match");
}, 'decompressing deflated input should work');
promise_test(async t => {
const ds = new DecompressionStream('gzip');
const reader = ds.readable.getReader();
const writer = ds.writable.getWriter();
const writePromise = writer.write(gzipChunkValue);
const { done, value } = await reader.read();
assert_array_equals(Array.from(value), trueChunkValue, "value should match");
}, 'decompressing gzip input should work');

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>rotate interpolation</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-rotate">
<meta name="assert" content="rotate supports animation.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>scale interpolation</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-scale">
<meta name="assert" content="scale supports animation.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>translate interpolation</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-translate">
<meta name="assert" content="translate supports <length> and <percentage> animation.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing perspective-origin with invalid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#perspective-origin-property">
<meta name="assert" content="perspective-origin supports only the '<position>' grammar.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing perspective-origin with valid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#perspective-origin-property">
<meta name="assert" content="perspective-origin supports the full '<position>' grammar.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing rotate with invalid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-rotate">
<meta name="assert" content="rotate supports only the grammar 'none | <number>{3}? <angle>'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing rotate with valid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-rotate">
<meta name="assert" content="rotate supports the full grammar 'none | <number>{3}? <angle>'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing scale with invalid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-scale">
<meta name="assert" content="scale supports only the grammar 'none | <number>{1,3}'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing scale with valid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-scale">
<meta name="assert" content="scale supports the full grammar 'none | <number>{1,3}'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 1: parsing transform-box with invalid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-box-property">
<meta name="assert" content="transform-box supports only the grammar 'content-box | border-box | fill-box | stroke-box | view-box'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 1: parsing transform-box with valid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-box-property">
<meta name="assert" content="transform-box supports the full grammar 'content-box | border-box | fill-box | stroke-box | view-box'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing transform with invalid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#transform-property">
<meta name="assert" content="transform supports only the grammar 'none | <transform-list>'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: getComputedStyle().transformOrigin</title>
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#transform-origin-property">
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-origin-property">
<meta name="assert" content="transform-origin computed value is two or three absolute lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 1: parsing transform-origin with invalid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-origin-property">
<meta name="assert" content="transform-origin supports only the grammar from spec.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 1: parsing transform-origin with valid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-origin-property">
<meta name="assert" content="transform-origin supports the full grammar from spec.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing transform with valid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#transform-property">
<meta name="assert" content="transform supports the full grammar 'none | <transform-list>'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing translate with invalid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-translate">
<meta name="assert" content="translate supports only the grammar 'none | <length-percentage> [ <length-percentage> <length>? ]?'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: parsing translate with valid values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-translate">
<meta name="assert" content="translate supports the full grammar 'none | <length-percentage> [ <length-percentage> <length>? ]?'.">
<script src="/resources/testharness.js"></script>

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: calc values</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/">
<link rel="help" href="https://drafts.csswg.org/css-values-3/#calc-notation">
<meta name="assert" content="calc values are supported in css-transforms properties.">

View file

@ -3,7 +3,6 @@
<head>
<meta charset="utf-8">
<title>CSS Transform Module Level 2: translate getComputedStyle</title>
<link rel="author" title="Eric Willigers" href="mailto:ericwilligers@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-transforms-2/#propdef-translate">
<meta name="assert" content="translate computed style does not resolve percentages.">
<style type="text/css">

View file

@ -26,7 +26,6 @@ def main(request, response):
response.set_error(400, "No Access-Control-Request-Method header")
return "ERROR: No access-control-request-method in preflight!"
# https://github.com/whatwg/fetch/issues/922
if request.headers.get("Accept", "") != "*/*":
response.set_error(400, "Request does not have 'Accept: */*' header")
return "ERROR: Invalid access in preflight!"

View file

@ -3,8 +3,9 @@
// (https://github.com/tidoust/reffy-reports)
// Source: Gyroscope (https://w3c.github.io/gyroscope/)
[Constructor(optional GyroscopeSensorOptions sensorOptions), SecureContext, Exposed=Window]
[SecureContext, Exposed=Window]
interface Gyroscope : Sensor {
constructor(optional GyroscopeSensorOptions sensorOptions = {});
readonly attribute double? x;
readonly attribute double? y;
readonly attribute double? z;

View file

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Resource Timing: image with a hash</title>
<link rel="help" href="http://www.w3.org/TR/resource-timing/#dom-performanceresourcetiming-initiatortype"/>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/webperftestharness.js"></script>
<script src="resources/webperftestharnessextension.js"></script>
<script>
setup({explicit_done: true});
// explicitly test the namespace before we start testing
test_namespace("getEntriesByType");
function onload_test() {
if (window.performance.getEntriesByType === undefined) {
done();
return;
}
const url = "resources/fake_responses.py?tag=" + Math.random() + '#hash=1';
const image = new Image();
image.onload = image.onerror = () => {
const entries = window.performance.getEntriesByType('resource').filter(r => r.initiatorType === 'img');
test_equals(entries.length, 1, "There should be one entry");
if (entries.length === 1) {
test_true(entries[0].name.indexOf('#hash=1') > -1, "There should be a hash in the resource name");
}
done();
}
image.src = url;
}
window.onload = onload_test;
</script>
</head>
<body>
<h1>Description</h1>
<p>This test validates that a hash in an image URL is preserved in resource timing API results.</p>
<div id="log"></div>
</body>
</html>

View file

@ -0,0 +1,37 @@
// TODO(hiroshige): Document the type of `scenario`.
function TestCase(scenario, description) {
const urls = getRequestURLs(scenario.subresource,
scenario.origin,
scenario.redirection);
const checkResult = _ => {
// Send request to check if the key has been torn down.
return xhrRequest(urls.assertUrl)
.then(assertResult => {
// Now check if the value has been torn down. If it's still there,
// we have blocked the request to mixed-content.
assert_equals(assertResult.status, scenario.expectation,
"The resource request should be '" + scenario.expectation + "'.");
});
};
function runTest() {
/** @type {Subresource} */
const subresource = {
subresourceType: scenario.subresource,
url: urls.testUrl,
policyDeliveries: scenario.subresource_policy_deliveries,
};
promise_test(() => {
return xhrRequest(urls.announceUrl)
// Send out the real resource request.
// This should tear down the key if it's not blocked.
.then(_ => invokeRequest(subresource, scenario.source_context_list))
// We check the key state, regardless of whether the main request
// succeeded or failed.
.then(checkResult, checkResult);
}, description);
} // runTest
return {start: runTest};
}

View file

@ -0,0 +1,42 @@
#!/usr/bin/env python
import os
import sys
sys.path.insert(
0,
os.path.join(
os.path.dirname(os.path.abspath(__file__)), '..', '..', '..', 'common',
'security-features', 'tools'))
import generate
class UpgradeInsecureRequestsConfig(object):
def __init__(self):
self.selection_pattern = \
'%(source_context_list)s.%(delivery_type)s/' + \
'%(delivery_value)s/' + \
'%(subresource)s/' + \
'%(origin)s.%(redirection)s.%(source_scheme)s'
self.test_file_path_pattern = 'gen/' + self.selection_pattern + '.html'
self.test_description_template = 'Upgrade-Insecure-Requests: Expects %(expectation)s for %(subresource)s to %(origin)s origin and %(redirection)s redirection from %(source_scheme)s context.'
self.test_page_title_template = 'Upgrade-Insecure-Requests: %s'
self.helper_js = '/upgrade-insecure-requests/generic/test-case.sub.js'
# For debug target only.
self.sanity_checker_js = '/upgrade-insecure-requests/generic/sanity-checker.js'
self.spec_json_js = '/upgrade-insecure-requests/spec_json.js'
self.test_case_name = 'TestCase'
script_directory = os.path.dirname(os.path.abspath(__file__))
self.spec_directory = os.path.abspath(
os.path.join(script_directory, '..', '..'))
if __name__ == '__main__':
generate.main(UpgradeInsecureRequestsConfig())

View file

@ -0,0 +1,376 @@
{
"specification": [
{
"name": "No upgrade-insecure-request",
"title": "No upgrade-insecure-request",
"description": "No upgrade-insecure-request",
"specification_url": "https://w3c.github.io/webappsec-upgrade-insecure-requests/",
"test_expansion": [
{
"name": "Without upgrade-insecure-request, all requests are blocked ...",
"expansion": "default",
"source_scheme": "https",
"source_context_list": "*",
"delivery_type": "meta",
"delivery_value": null,
"redirection": "*",
"subresource": "*",
"origin": "*",
"expectation": "blocked"
},
{
"name": "... except for the secure requests listed here",
"expansion": "override",
"source_scheme": "https",
"source_context_list": "*",
"delivery_type": "meta",
"delivery_value": null,
"redirection": "no-redirect",
"subresource": "*",
"origin": [
"same-https",
"cross-https",
"same-wss",
"cross-wss"
],
"expectation": "allowed"
}
]
},
{
"name": "With upgrade-insecure-request",
"title": "With upgrade-insecure-request",
"description": "With upgrade-insecure-request",
"specification_url": "https://w3c.github.io/webappsec-upgrade-insecure-requests/",
"test_expansion": [
{
"name": "With upgrade-insecure-request, all insecure requests are upgraded and allowed.",
"expansion": "default",
"source_scheme": "https",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "upgrade",
"redirection": "*",
"subresource": "*",
"origin": "*",
"expectation": "allowed"
}
]
}
],
"delivery_key": "upgradeInsecureRequests",
"excluded_tests": [
{
"name": "Omit secure requests",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": "no-redirect",
"subresource": "*",
"origin": [
"same-https",
"cross-https",
"same-wss",
"cross-wss"
],
"expectation": "allowed"
},
{
"name": "For inheriting tests skip http-rp because we already have <meta> tests",
"expansion": "*",
"source_scheme": "*",
"source_context_list": [
"srcdoc-inherit",
"iframe-blank-inherit",
"worker-classic-data"
],
"delivery_type": "http-rp",
"delivery_value": "*",
"redirection": "*",
"subresource": "*",
"origin": "*",
"expectation": "*"
},
{
"name": "Workers are same-origin only",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": "*",
"subresource": [
"worker-classic",
"worker-module",
"sharedworker-classic"
],
"origin": [
"cross-https",
"cross-http-downgrade",
"cross-wss",
"cross-ws-downgrade"
],
"expectation": "*"
},
{
"name": "Websockets are ws/wss-only",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": "*",
"subresource": "websocket",
"origin": [
"same-https",
"same-http-downgrade",
"cross-https",
"cross-http-downgrade"
],
"expectation": "*"
},
{
"name": "Websockets is no-redirect only",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": [
"downgrade"
],
"subresource": "websocket",
"origin": "*",
"expectation": "*"
},
{
"name": "ws/wss are websocket-only",
"expansion": "*",
"source_scheme": "*",
"source_context_list": "*",
"delivery_type": "*",
"delivery_value": "*",
"redirection": "*",
"subresource": [
"iframe-tag",
"img-tag",
"xhr",
"fetch",
"worker-classic",
"worker-module",
"worker-import-data",
"sharedworker-classic",
"worklet-animation",
"worklet-audio",
"worklet-layout",
"worklet-paint",
"worklet-animation-import-data",
"worklet-audio-import-data",
"worklet-layout-import-data",
"worklet-paint-import-data"
],
"origin": [
"same-wss",
"same-ws-downgrade",
"cross-wss",
"cross-ws-downgrade"
],
"expectation": "*"
}
],
"source_context_schema": {
"supported_delivery_type": {
"top": [
"http-rp",
"meta"
],
"iframe": [
"http-rp",
"meta"
],
"iframe-blank": [
"meta"
],
"srcdoc": [
"meta"
],
"worker-classic": [
"http-rp"
],
"worker-module": [
"http-rp"
],
"worker-classic-data": [],
"worker-module-data": []
},
"supported_subresource": {
"top": "*",
"iframe": "*",
"iframe-blank": "*",
"srcdoc": "*",
"worker-classic": [
"xhr",
"fetch",
"websocket"
],
"worker-module": [
"xhr",
"fetch",
"websocket"
],
"worker-classic-data": [
"xhr",
"fetch",
"websocket"
],
"worker-module-data": [
"xhr",
"fetch",
"websocket"
]
}
},
"subresource_schema": {
"supported_delivery_type": {
"xhr": [],
"worker-classic": [],
"worker-module": [],
"worker-import-data": [],
"sharedworker-classic": [],
"worklet-animation": [],
"worklet-audio": [],
"worklet-layout": [],
"worklet-paint": [],
"worklet-animation-import-data": [],
"worklet-audio-import-data": [],
"worklet-layout-import-data": [],
"worklet-paint-import-data": [],
"fetch": [],
"websocket": [],
"img-tag": [],
"iframe-tag": []
}
},
"source_context_list_schema": {
"top": {
"description": "CSP set by the top-level Document",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
}
],
"subresourcePolicyDeliveries": []
},
"srcdoc-inherit": {
"description": "srcdoc iframe should inherit parent Document's policy",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "srcdoc"
}
],
"subresourcePolicyDeliveries": []
},
"iframe-blank-inherit": {
"description": "blank iframe should inherit parent Document's policy",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "iframe-blank"
}
],
"subresourcePolicyDeliveries": []
},
"worker-classic-data": {
"description": "CSP set by the top-level Document is inherited to dedicated workers",
"sourceContextList": [
{
"sourceContextType": "top",
"policyDeliveries": [
"policy"
]
},
{
"sourceContextType": "worker-classic-data",
"policyDeliveries": []
}
],
"subresourcePolicyDeliveries": []
}
},
"test_expansion_schema": {
"expansion": [
"default",
"override"
],
"source_scheme": [
"https"
],
"delivery_type": [
"http-rp",
"meta"
],
"delivery_value": [
null,
"upgrade"
],
"source_context_list": [
"top",
"srcdoc-inherit",
"iframe-blank-inherit",
"worker-classic-data"
],
"redirection": [
"no-redirect",
"downgrade"
],
"origin": [
"same-https",
"same-http-downgrade",
"cross-https",
"cross-http-downgrade",
"same-wss",
"same-ws-downgrade",
"cross-wss",
"cross-ws-downgrade"
],
"subresource": [
"iframe-tag",
"img-tag",
"xhr",
"fetch",
"websocket",
"worker-classic",
"worker-module",
"worker-import-data",
"sharedworker-classic",
"worklet-animation",
"worklet-audio",
"worklet-layout",
"worklet-paint",
"worklet-animation-import-data",
"worklet-audio-import-data",
"worklet-layout-import-data",
"worklet-paint-import-data"
],
"expectation": [
"allowed",
"blocked"
]
}
}

File diff suppressed because one or more lines are too long

View file

@ -1,64 +0,0 @@
# Usage: execute
# $ python support/generate.py
# at wpt/upgrade-insecure-requests/.
#
# Note: Some tests (link-upgrade.sub.https.html and
# websocket-upgrade.https.html) are not covered by this generator script.
template = '''<!DOCTYPE html>
<html>
<head>
<!-- Generated by wpt/upgrade-insecure-requests/support/generate.py -->%(additionalMeta)s
<title>Upgrade Insecure Requests: %(name)s.</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="./support/testharness-helper.sub.js"></script>
<script src="/common/security-features/resources/common.sub.js"></script>
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
</head>
<body>
<script>
const tests = %(generatorName)s(ResourceType.%(resourceType)s, %(sameOriginOnly)s);
tests.forEach(test => testMap['%(name)s'](test));
</script>
</body>
</html>
'''
def getLong(file):
testsThatNeedMoreTime = [ "worker-subresource-fetch-redirect-upgrade.https.html" ]
if any(file in item for item in testsThatNeedMoreTime ):
return '\n<meta name="timeout" content="long">'
return ""
# resourceType is |ResourceType| in testharness-helper.sub.js.
for name, resourceType in [
('image', 'IMAGE'), ('iframe', 'FRAME'),
('animation-worklet', 'WORKLET'), ('audio-worklet', 'WORKLET'),
('layout-worklet', 'WORKLET'), ('paint-worklet', 'WORKLET'),
('worker', 'WORKER'),
('module-worker', 'WORKER'),
('worker-subresource-xhr', 'FETCH'),
('worker-subresource-fetch', 'FETCH'),
('shared-worker', 'SHARED_WORKER')]:
# TODO(https://crbug.com/989399): Add tests for subresource requests on shared
# workers, and main/subresource requests on service workers.
sameOriginOnly = 'false'
if resourceType == 'WORKER' or resourceType == 'SHARED_WORKER':
sameOriginOnly = 'true'
types = [('', 'generateTests'), ('-redirect', 'generateRedirectTests')]
if name == 'module-worker' or resourceType == 'WORKLET':
types.append(('-import', 'generateModuleImportTests'))
for typeName, generatorName in types:
filename = '%s%s-upgrade.https.html' % (name, typeName)
with open(filename, 'w') as html_file:
html_file.write(template % {
'name': name,
'additionalMeta': getLong(filename),
'resourceType': resourceType,
'generatorName': generatorName,
'sameOriginOnly': sameOriginOnly})

View file

@ -2,7 +2,7 @@
import pytest
from tests.support.asserts import assert_png, assert_success
from tests.support.asserts import assert_dialog_handled, assert_error, assert_png, assert_success
from tests.support.inline import inline
@ -17,8 +17,8 @@ def take_element_screenshot(session, element_id):
@pytest.fixture
def check_user_prompt_not_closed_without_exception(session, create_dialog):
def check_user_prompt_not_closed_without_exception(dialog_type):
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
session.url = inline("<input/>")
element = session.find.css("input", all=False)
@ -27,44 +27,96 @@ def check_user_prompt_not_closed_without_exception(session, create_dialog):
response = take_element_screenshot(session, element.id)
value = assert_success(response)
assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
assert_png(value)
return check_user_prompt_closed_without_exception
@pytest.fixture
def check_user_prompt_closed_with_exception(session, create_dialog):
def check_user_prompt_closed_with_exception(dialog_type, retval):
session.url = inline("<input/>")
element = session.find.css("input", all=False)
create_dialog(dialog_type, text=dialog_type)
response = take_element_screenshot(session, element.id)
assert_error(response, "unexpected alert open")
assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
return check_user_prompt_closed_with_exception
@pytest.fixture
def check_user_prompt_not_closed_but_exception(session, create_dialog):
def check_user_prompt_not_closed_but_exception(dialog_type):
session.url = inline("<input/>")
element = session.find.css("input", all=False)
create_dialog(dialog_type, text=dialog_type)
response = take_element_screenshot(session, element.id)
assert_error(response, "unexpected alert open")
assert session.alert.text == dialog_type
session.alert.dismiss()
return check_user_prompt_not_closed_without_exception
return check_user_prompt_not_closed_but_exception
@pytest.mark.capabilities({"unhandledPromptBehavior": "accept"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_accept(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", True),
("prompt", ""),
])
def test_accept(check_user_prompt_closed_without_exception, dialog_type, retval):
check_user_prompt_closed_without_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "accept and notify"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_accept_and_notify(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", True),
("prompt", ""),
])
def test_accept_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
check_user_prompt_closed_with_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_dismiss(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", False),
("prompt", None),
])
def test_dismiss(check_user_prompt_closed_without_exception, dialog_type, retval):
check_user_prompt_closed_without_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss and notify"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_dismiss_and_notify(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", False),
("prompt", None),
])
def test_dismiss_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
check_user_prompt_closed_with_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "ignore"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_ignore(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
def test_ignore(check_user_prompt_not_closed_but_exception, dialog_type):
check_user_prompt_not_closed_but_exception(dialog_type)
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_default(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", False),
("prompt", None),
])
def test_default(check_user_prompt_closed_with_exception, dialog_type, retval):
check_user_prompt_closed_with_exception(dialog_type, retval)

View file

@ -2,7 +2,7 @@
import pytest
from tests.support.asserts import assert_png, assert_success
from tests.support.asserts import assert_dialog_handled, assert_error, assert_png, assert_success
from tests.support.inline import inline
@ -12,8 +12,8 @@ def take_screenshot(session):
@pytest.fixture
def check_user_prompt_not_closed_without_exception(session, create_dialog):
def check_user_prompt_not_closed_without_exception(dialog_type):
def check_user_prompt_closed_without_exception(session, create_dialog):
def check_user_prompt_closed_without_exception(dialog_type, retval):
session.url = inline("<input/>")
create_dialog(dialog_type, text=dialog_type)
@ -21,44 +21,94 @@ def check_user_prompt_not_closed_without_exception(session, create_dialog):
response = take_screenshot(session)
value = assert_success(response)
assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
assert_png(value)
return check_user_prompt_closed_without_exception
@pytest.fixture
def check_user_prompt_closed_with_exception(session, create_dialog):
def check_user_prompt_closed_with_exception(dialog_type, retval):
session.url = inline("<input/>")
create_dialog(dialog_type, text=dialog_type)
response = take_screenshot(session)
assert_error(response, "unexpected alert open")
assert_dialog_handled(session, expected_text=dialog_type, expected_retval=retval)
return check_user_prompt_closed_with_exception
@pytest.fixture
def check_user_prompt_not_closed_but_exception(session, create_dialog):
def check_user_prompt_not_closed_but_exception(dialog_type):
session.url = inline("<input/>")
create_dialog(dialog_type, text=dialog_type)
response = take_screenshot(session)
assert_error(response, "unexpected alert open")
assert session.alert.text == dialog_type
session.alert.dismiss()
return check_user_prompt_not_closed_without_exception
return check_user_prompt_not_closed_but_exception
@pytest.mark.capabilities({"unhandledPromptBehavior": "accept"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_accept(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", True),
("prompt", ""),
])
def test_accept(check_user_prompt_closed_without_exception, dialog_type, retval):
check_user_prompt_closed_without_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "accept and notify"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_accept_and_notify(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", True),
("prompt", ""),
])
def test_accept_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
check_user_prompt_closed_with_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_dismiss(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", False),
("prompt", None),
])
def test_dismiss(check_user_prompt_closed_without_exception, dialog_type, retval):
check_user_prompt_closed_without_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss and notify"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_dismiss_and_notify(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", False),
("prompt", None),
])
def test_dismiss_and_notify(check_user_prompt_closed_with_exception, dialog_type, retval):
check_user_prompt_closed_with_exception(dialog_type, retval)
@pytest.mark.capabilities({"unhandledPromptBehavior": "ignore"})
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_ignore(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
def test_ignore(check_user_prompt_not_closed_but_exception, dialog_type):
check_user_prompt_not_closed_but_exception(dialog_type)
@pytest.mark.parametrize("dialog_type", ["alert", "confirm", "prompt"])
def test_default(check_user_prompt_not_closed_without_exception, dialog_type):
check_user_prompt_not_closed_without_exception(dialog_type)
@pytest.mark.parametrize("dialog_type, retval", [
("alert", None),
("confirm", False),
("prompt", None),
])
def test_default(check_user_prompt_closed_with_exception, dialog_type, retval):
check_user_prompt_closed_with_exception(dialog_type, retval)

View file

@ -1,4 +1,5 @@
[canvas-resizing-with-pbo-bound.html]
expected: TIMEOUT
[WebGL test #0: Unable to fetch WebGL rendering context for Canvas]
expected: FAIL