Update web-platform-tests to revision 157b71e48394fb63f91fa497be429c3543b0ab03

This commit is contained in:
WPT Sync Bot 2019-11-25 08:22:18 +00:00
parent ea32495504
commit ae09310953
43 changed files with 874 additions and 287 deletions

View file

@ -7,7 +7,7 @@
expected: FAIL
[Opening a blob URL in a new window immediately before revoking it works.]
expected: FAIL
expected: TIMEOUT
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
expected: FAIL

View file

@ -2,8 +2,14 @@
[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]
[Revoke blob URL after creating Request, will fetch]
expected: FAIL
[Revoke blob URL after calling fetch, fetch should succeed]
expected: FAIL

View file

@ -273357,6 +273357,12 @@
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-failure.js.headers": [
[]
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-success.js": [
[]
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-success.js.headers": [
[]
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js": [
[]
],
@ -273387,6 +273393,9 @@
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-failure.https.html.headers": [
[]
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-success.https.html.headers": [
[]
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html.headers": [
[]
],
@ -289632,6 +289641,9 @@
"wasm/serialization/module/resources/serviceworker-failure.js": [
[]
],
"wasm/serialization/module/resources/serviceworker-success.js": [
[]
],
"wasm/serialization/module/resources/sharedworker-failure.js": [
[]
],
@ -312657,6 +312669,16 @@
}
]
],
"compression/decompression-corrupt-input.any.js": [
[
"compression/decompression-corrupt-input.any.html",
{}
],
[
"compression/decompression-corrupt-input.any.worker.html",
{}
]
],
"compression/decompression-empty-input.tentative.any.js": [
[
"compression/decompression-empty-input.tentative.any.html",
@ -323183,6 +323205,18 @@
{}
]
],
"css/css-grid/parsing/grid-shorthand-invalid.html": [
[
"css/css-grid/parsing/grid-shorthand-invalid.html",
{}
]
],
"css/css-grid/parsing/grid-shorthand-valid.html": [
[
"css/css-grid/parsing/grid-shorthand-valid.html",
{}
]
],
"css/css-grid/parsing/grid-shorthand.html": [
[
"css/css-grid/parsing/grid-shorthand.html",
@ -323267,6 +323301,18 @@
{}
]
],
"css/css-grid/parsing/grid-template-shorthand-invalid.html": [
[
"css/css-grid/parsing/grid-template-shorthand-invalid.html",
{}
]
],
"css/css-grid/parsing/grid-template-shorthand-valid.html": [
[
"css/css-grid/parsing/grid-template-shorthand-valid.html",
{}
]
],
"css/css-grid/parsing/grid-template-shorthand.html": [
[
"css/css-grid/parsing/grid-template-shorthand.html",
@ -358130,6 +358176,12 @@
{}
]
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-success.https.html": [
[
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-success.https.html",
{}
]
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html": [
[
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html",
@ -416726,9 +416778,9 @@
{}
]
],
"trusted-types/idlharness.window.js": [
"trusted-types/idlharness.tentative.window.js": [
[
"trusted-types/idlharness.window.html",
"trusted-types/idlharness.tentative.window.html",
{
"script_metadata": [
[
@ -423351,6 +423403,12 @@
{}
]
],
"wasm/serialization/module/window-serviceworker-success.https.html": [
[
"wasm/serialization/module/window-serviceworker-success.https.html",
{}
]
],
"wasm/serialization/module/window-sharedworker-failure.html": [
[
"wasm/serialization/module/window-sharedworker-failure.html",
@ -471169,7 +471227,7 @@
"support"
],
"common/security-features/resources/common.sub.js": [
"b43417b417c189d1e1b3444baa286456df979bb5",
"cdd20a9d8daecefec26c1fe3ef5d7f2a4ed48008",
"support"
],
"common/security-features/resources/common.sub.js.headers": [
@ -471548,6 +471606,10 @@
"11d8736cb225d6ce575677dcdb70b0a19dd4f65f",
"testharness"
],
"compression/decompression-corrupt-input.any.js": [
"95e91b662ee47f545167cd05dc4d06b85cb74b00",
"testharness"
],
"compression/decompression-empty-input.tentative.any.js": [
"ff4cff522a4a7ba0ba3eedb79c4d39b0752c9caf",
"testharness"
@ -579089,7 +579151,7 @@
"testharness"
],
"css/css-grid/parsing/grid-area-valid.html": [
"8e7d0d43d1cfac44935593892b67fdb40b179791",
"9f93e6325b1b3cb2fff53f1c9e8b4963ac875e09",
"testharness"
],
"css/css-grid/parsing/grid-auto-columns-computed.html": [
@ -579128,6 +579190,14 @@
"d4dcdb12b177cf97c3aa030cbb19c2ce2ae6d25d",
"testharness"
],
"css/css-grid/parsing/grid-shorthand-invalid.html": [
"642a4abab3b8177982c4006e4a5c0477d035305a",
"testharness"
],
"css/css-grid/parsing/grid-shorthand-valid.html": [
"435959af25e0f03b8f53844f907430daa3d36d97",
"testharness"
],
"css/css-grid/parsing/grid-shorthand.html": [
"91995608dd9eda5cd8d99abe3454cd67e52e405b",
"testharness"
@ -579184,6 +579254,14 @@
"2d3a1ed8045c3eef9982cffc3f95415518f560cb",
"testharness"
],
"css/css-grid/parsing/grid-template-shorthand-invalid.html": [
"366cdf4d887aa937875cd5e5a49631d1b3e283b1",
"testharness"
],
"css/css-grid/parsing/grid-template-shorthand-valid.html": [
"042268f334816172b077edf341b1c091196f5197",
"testharness"
],
"css/css-grid/parsing/grid-template-shorthand.html": [
"b9165359a7250afab60463878b9beb8592424f58",
"testharness"
@ -652148,6 +652226,14 @@
"6604450991a122e3e241e40b1b9e0516c525389d",
"support"
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-success.js": [
"34add843ecaaff85b5d50b6eab31a616226f9234",
"support"
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/serviceworker-success.js.headers": [
"20319c1b02dda1ca0d40a0cae6bf6b460f5562f1",
"support"
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/sharedworker-failure.js": [
"8472318abd53207ec56b3f5988fb0a49d0c006a4",
"support"
@ -652220,6 +652306,14 @@
"63b60e490f47f4db77d33d7a4ca2f5b9a4181de8",
"support"
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-success.https.html": [
"3d5ced9760625793950bf27934c182f48420a487",
"testharness"
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-serviceworker-success.https.html.headers": [
"4fff9d9fba4c81f953826ffea010a75be626b95d",
"support"
],
"html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-sharedworker-failure.https.html": [
"023cb5acdef1c144dbad4ebefd0af23fc6c17d79",
"testharness"
@ -666261,7 +666355,7 @@
"testharness"
],
"lint.whitelist": [
"be6ae4f0314942a35632a1b0dc8b10dd9dd34657",
"48d7e9d6a747b973333912b6e940055449f2f5ce",
"support"
],
"loading/lazyload/common.js": [
@ -711280,8 +711374,8 @@
"074fe79dc93fee6563bcb9ce2db3fa708bf4ad4f",
"testharness"
],
"trusted-types/idlharness.window.js": [
"7be9615ce67ca1582c3b82ed849d7019a61e4cdd",
"trusted-types/idlharness.tentative.window.js": [
"5a854a12b78026a3318dad70ffa0d6a690e39f55",
"testharness"
],
"trusted-types/support/WorkerGlobalScope-importScripts.https.js": [
@ -716412,6 +716506,10 @@
"39796f9d94a39d2a13ed832544ce781373a20655",
"support"
],
"wasm/serialization/module/resources/serviceworker-success.js": [
"89dd8a3831b138cb6c4eb2a5578b95bb711cd189",
"support"
],
"wasm/serialization/module/resources/sharedworker-failure.js": [
"854c70b9e84e6e6fb1c59f64a06a79646a122576",
"support"
@ -716444,6 +716542,10 @@
"97c5a1decdb85317930508ece8f306fb80880ca2",
"testharness"
],
"wasm/serialization/module/window-serviceworker-success.https.html": [
"a479b37e5e227e4961f59e09554c137041528124",
"testharness"
],
"wasm/serialization/module/window-sharedworker-failure.html": [
"667e985a30b53c0ecadfd4c68f6217b87a7a5b98",
"testharness"

View file

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

View file

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

View file

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

View file

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

View file

@ -1,4 +0,0 @@
[traverse_the_history_4.html]
[Multiple history traversals, last would be aborted]
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-screenx-screeny.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: negative values for legacy `screenx`, `screeny`]
expected: FAIL
[features "screenx=-204" should NOT set "left=204"]
expected: TIMEOUT
[features "screeny=-204" should NOT set "top=204"]
expected: TIMEOUT
[features "screeny=-204.5" should NOT set "top=204"]
expected: TIMEOUT
[features "screeny=-0" should NOT set "top=204"]
expected: TIMEOUT
[features "screenx=-0" should NOT set "left=204"]
expected: TIMEOUT
[features "screenx=-204.5" should NOT set "left=204"]
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,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 +1,4 @@
[embedded-opener-remove-frame.html]
expected: TIMEOUT
[opener and "removed" embedded documents]
expected: FAIL
@ -7,5 +6,5 @@
expected: FAIL
[opener of discarded auxiliary browsing context]
expected: TIMEOUT
expected: FAIL

View file

@ -0,0 +1,4 @@
[window-serviceworker-success.https.html]
[Test ServiceWorkerContainer.onmessageerror using SharedArrayBuffer]
expected: FAIL

View file

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

View file

@ -1,2 +0,0 @@
[script-onerror-insertion-point-2.html]
expected: TIMEOUT

View file

@ -1,4 +0,0 @@
[DOMContentLoaded-defer.html]
[The end: DOMContentLoaded and defer scripts]
expected: FAIL

View file

@ -1,5 +0,0 @@
[promise-rejection-events-onerror.html]
expected: TIMEOUT
[Throwing inside an unhandledrejection handler invokes the error handler.]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[window-serviceworker-success.https.html]
[Test ServiceWorkerContainer.onmessageerror using WebAssembly.Module]
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

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

View file

@ -286,9 +286,17 @@ function bindEvents2(resolveObject, resolveEventName, rejectObject, rejectEventN
function createElement(tagName, attrs, parentNode, doBindEvents) {
var element = document.createElement(tagName);
if (doBindEvents)
if (doBindEvents) {
bindEvents(element);
if (element.tagName == "IFRAME" && !('srcdoc' in attrs || 'src' in attrs)) {
// If we're loading a frame, ensure we spin the event loop after load to
// paper over the different event timing in Gecko vs Blink/WebKit
// see https://github.com/whatwg/html/issues/4965
element.eventPromise = element.eventPromise.then(() => {
return new Promise(resolve => setTimeout(resolve, 0))
});
}
}
// We set the attributes after binding to events to catch any
// event-triggering attribute changes. E.g. form submission.
//

View file

@ -0,0 +1,299 @@
// META global=worker
// This test checks that DecompressionStream behaves according to the standard
// when the input is corrupted. To avoid a combinatorial explosion in the
// number of tests, we only mutate one field at a time, and we only test
// "interesting" values.
'use strict';
// The many different cases are summarised in this data structure.
const expectations = [
{
format: 'deflate',
// Decompresses to 'expected output'.
baseInput: [120, 156, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41,
40, 45, 1, 0, 48, 173, 6, 36],
// See RFC1950 for the definition of the various fields used by deflate:
// https://tools.ietf.org/html/rfc1950.
fields: [
{
// The function of this field. This matches the name used in the RFC.
name: 'CMF',
// The offset of the field in bytes from the start of the input.
offset: 0,
// The length of the field in bytes.
length: 1,
cases: [
{
// The value to set the field to. If the field contains multiple
// bytes, all the bytes will be set to this value.
value: 0,
// The expected result. 'success' means the input is decoded
// successfully. 'error' means that the stream will be errored.
result: 'error'
}
]
},
{
name: 'FLG',
offset: 1,
length: 1,
// FLG contains a 4-bit checksum (FCHECK) which is calculated in such a
// way that there are 4 valid values for this field.
cases: [
{
value: 218,
result: 'success'
},
{
value: 1,
result: 'success'
},
{
value: 94,
result: 'success'
},
{
// The remaining 252 values cause an error.
value: 157,
result: 'error'
}
]
},
{
name: 'DATA',
// In general, changing any bit of the data will trigger a checksum
// error. Only the last byte does anything else.
offset: 18,
length: 1,
cases: [
{
value: 4,
result: 'success'
},
{
value: 5,
result: 'error'
}
]
},
{
name: 'ADLER',
offset: -4,
length: 4,
cases: [
{
value: 255,
result: 'error'
}
]
}
]
},
{
format: 'gzip',
// Decompresses to 'expected output'.
baseInput: [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],
// See RFC1952 for the definition of the various fields used by gzip:
// https://tools.ietf.org/html/rfc1952.
fields: [
{
name: 'ID',
offset: 0,
length: 2,
cases: [
{
value: 255,
result: 'error'
}
]
},
{
name: 'CM',
offset: 2,
length: 1,
cases: [
{
value: 0,
result: 'error'
}
]
},
{
name: 'FLG',
offset: 3,
length: 1,
cases: [
{
value: 1, // FTEXT
result: 'success'
},
{
value: 2, // FHCRC
result: 'error'
}
]
},
{
name: 'MTIME',
offset: 4,
length: 4,
cases: [
{
// Any value is valid for this field.
value: 255,
result: 'success'
}
]
},
{
name: 'XFL',
offset: 8,
length: 1,
cases: [
{
// Any value is accepted.
value: 255,
result: 'success'
}
]
},
{
name: 'OS',
offset: 9,
length: 1,
cases: [
{
// Any value is accepted.
value: 128,
result: 'success'
}
]
},
{
name: 'DATA',
// The last byte of the data is the most interesting.
offset: 26,
length: 1,
cases: [
{
value: 3,
result: 'error'
},
{
value: 4,
result: 'success'
}
]
},
{
name: 'CRC',
offset: -8,
length: 4,
cases: [
{
// Any change will error the stream.
value: 0,
result: 'error'
}
]
},
{
name: 'ISIZE',
offset: -4,
length: 4,
cases: [
{
// A mismatch will error the stream.
value: 1,
result: 'error'
}
]
}
]
}
];
async function tryDecompress(input, format) {
const ds = new DecompressionStream(format);
const reader = ds.readable.getReader();
const writer = ds.writable.getWriter();
writer.write(input).catch(() => {});
writer.close().catch(() => {});
let out = [];
while (true) {
try {
const { value, done } = await reader.read();
if (done) {
break;
}
out = out.concat(Array.from(value));
} catch (e) {
return { result: 'error' };
}
}
const expectedOutput = 'expected output';
if (out.length !== expectedOutput.length) {
return { result: 'corrupt' };
}
for (let i = 0; i < out.length; ++i) {
if (out[i] !== expectedOutput.charCodeAt(i)) {
return { result: 'corrupt' };
}
}
return { result: 'success' };
}
function corruptInput(input, offset, length, value) {
const output = new Uint8Array(input);
if (offset < 0) {
offset += input.length;
}
for (let i = offset; i < offset + length; ++i) {
output[i] = value;
}
return output;
}
for (const { format, baseInput, fields } of expectations) {
promise_test(async () => {
const { result } = await tryDecompress(new Uint8Array(baseInput), format);
assert_equals(result, 'success', 'decompression should succeed');
}, `the unchanged input for '${format}' should decompress successfully`);
promise_test(async () => {
const truncatedInput = new Uint8Array(baseInput.slice(0, -1));
const { result } = await tryDecompress(truncatedInput, format);
assert_equals(result, 'error', 'decompression should fail');
}, `truncating the input for '${format}' should give an error`);
promise_test(async () => {
const extendedInput = new Uint8Array(baseInput.concat([0]));
const { result } = await tryDecompress(extendedInput, format);
assert_equals(result, 'error', 'decompression should fail');
}, `trailing junk for '${format}' should give an error`);
for (const { name, offset, length, cases } of fields) {
for (const { value, result } of cases) {
promise_test(async () => {
const corruptedInput = corruptInput(baseInput, offset, length, value);
const { result: actual } =
await tryDecompress(corruptedInput, format);
assert_equals(actual, result, 'result should match');
}, `format '${format}' field ${name} should be ${result} for ${value}`);
}
}
}

View file

@ -13,26 +13,32 @@
<body>
<script>
// auto
test_valid_value("grid-area", "auto", "auto / auto / auto / auto");
test_valid_value("grid-area", "AuTo", "auto / auto / auto / auto");
test_valid_value("grid-row", "auto", "auto / auto");
test_valid_value("grid-area", "auto");
test_valid_value("grid-area", "auto / auto", "auto");
test_valid_value("grid-area", "auto / auto / auto", "auto");
test_valid_value("grid-area", "auto / auto / auto / auto", "auto");
test_valid_value("grid-area", "AuTo", "auto");
test_valid_value("grid-row", "auto");
test_valid_value("grid-row", "auto/auto", "auto");
test_valid_value("grid-column-end", "AuTo", "auto");
// <custom-ident>
test_valid_value("grid-area", "--a", "--a / --a / --a / --a");
test_valid_value("grid-row", "-zπ", "-zπ / -zπ");
test_valid_value("grid-area", "--a");
test_valid_value("grid-row", "-zπ");
test_valid_value("grid-row", "-zπ/-zπ", "-zπ");
test_valid_value("grid-row", "i / i", "i");
test_valid_value("grid-row-start", "AZ");
test_valid_value("grid-column-start", "-_π");
test_valid_value("grid-row-end", "_9");
// <integer> && <custom-ident>?
test_valid_value("grid-area", "1", "1 / auto / auto / auto");
test_valid_value("grid-area", "+90 -a-", "90 -a- / auto / auto / auto");
test_valid_value("grid-row", "az 2", "2 az / auto");
test_valid_value("grid-column", "9", "9 / auto");
test_valid_value("grid-column", "-19 zA", "-19 zA / auto");
test_valid_value("grid-column", "-A0 33", "33 -A0 / auto");
test_valid_value("grid-area", "1");
test_valid_value("grid-area", "+90 -a-", "90 -a-");
test_valid_value("grid-row", "az 2", "2 az");
test_valid_value("grid-column", "9");
test_valid_value("grid-column", "-19 zA");
test_valid_value("grid-column", "-A0 33", "33 -A0");
test_valid_value("grid-row-start", "-19");
test_valid_value("grid-row-start", "9 -Z_");
test_valid_value("grid-column-start", "+90", "90");
@ -41,27 +47,41 @@ test_valid_value("grid-row-end", "1 -πA");
test_valid_value("grid-column-end", "π_ +5", "5 π_");
// span && [ <integer> || <custom-ident> ]
test_valid_value("grid-area", "span 2 i", "span 2 i / auto / auto / auto");
test_valid_value("grid-area", "i 2 SpAn", "span 2 i / auto / auto / auto");
test_valid_value("grid-row", "span 2", "span 2 / auto");
test_valid_value("grid-column", "i SpAn", "span i / auto");
test_valid_value("grid-row-start", "span i", "span i");
test_valid_value("grid-area", "span 2 i");
test_valid_value("grid-area", "i 2 SpAn", "span 2 i");
test_valid_value("grid-row", "span 2");
test_valid_value("grid-column", "i SpAn", "span i");
test_valid_value("grid-row-start", "span i");
test_valid_value("grid-column-start", "SpAn i 2", "span 2 i");
test_valid_value("grid-row-end", "2 i span", "span 2 i");
test_valid_value("grid-column-end", "2 SpAn", "span 2");
// <grid-line> [ / <grid-line> ]{0,3}
test_valid_value("grid-area", "auto / i", "auto / i / auto / i");
test_valid_value("grid-area", "auto / i / 2 j", "auto / i / 2 j / i");
test_valid_value("grid-area", "auto / i");
test_valid_value("grid-area", "auto / i / auto / i", "auto / i");
test_valid_value("grid-area", "auto / i / auto / 2 i");
test_valid_value("grid-area", "1 / i / auto / i", "1 / i");
test_valid_value("grid-area", "1 / auto / auto / auto", "1");
test_valid_value("grid-area", "1 / auto / i / auto", "1 / auto / i");
test_valid_value("grid-area", "1 / j / i / k");
test_valid_value("grid-area", "1 / auto / 2 / auto", "1 / auto / 2");
test_valid_value("grid-area", "1 / i / 2 / auto");
test_valid_value("grid-area", "i / i / auto / auto");
test_valid_value("grid-area", "i / auto / i / auto", "i / auto");
test_valid_value("grid-area", "auto / i / 2 j");
test_valid_value("grid-area", "auto / i / 2 j / span 3 k");
test_valid_value("grid-row", "auto / i");
test_valid_value("grid-row", "i / auto");
test_valid_value("grid-row", "2 i / auto", "2 i");
test_valid_value("grid-row", "1 / auto", "1");
test_valid_value("grid-column", "2 j / span 3 k");
// https://github.com/w3c/csswg-drafts/issues/2858
// '\\31 st' in Blink, Firefox, '1st' in Edge, '"1st"' in Safari.
test_valid_value("grid-column-end", "\\31st", ["\\31 st", "1st", '"1st"']);
test_valid_value("grid-column-end", "\\31 st", ["\\31 st", "1st", '"1st"']);
// '\\31 st' in Blink, Firefox, EdgeHTML and Safari serialize invalid values.
test_valid_value("grid-column-end", "\\31st", ["\\31 st", "\\31st"]);
test_valid_value("grid-column-end", "\\31 st", ["\\31 st", "\\31st"]);
test_valid_value("grid-column", "\\31st / \\31 st", ["\\31 st", "\\31st"]);
</script>
</body>
</html>

View file

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Grid Layout Test: parsing 'grid' with invalid values</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#propdef-grid">
<meta name="assert" content="grid-template supports only the grammar `<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>`.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value("grid", 'none none');
test_invalid_value("grid", 'none []');
test_invalid_value("grid", '10px');
test_invalid_value("grid", '20%');
test_invalid_value("grid", '5fr');
test_invalid_value("grid", '[a]');
test_invalid_value("grid", '[a] 10px');
test_invalid_value("grid", '[a] 10px []');
test_invalid_value("grid", '[]');
test_invalid_value("grid", '10px "a"');
test_invalid_value("grid", '[] 10px "a"');
test_invalid_value("grid", '10px [] "a"');
test_invalid_value("grid", '[] [] "a"');
test_invalid_value("grid", '"a" none');
test_invalid_value("grid", '"a" 10px 10px');
test_invalid_value("grid", '"a" [a] 10px');
test_invalid_value("grid", '"a" [a] 10px [a]');
test_invalid_value("grid", '"a" [a] [a] 10px');
test_invalid_value("grid", '"a" 10px [a] [a]');
test_invalid_value("grid", '"a" [a] [a]');
test_invalid_value("grid", '[a] "a" [a] [a]');
test_invalid_value("grid", '"a" "a" [a] [a]');
test_invalid_value("grid", '"a" [a] [a] / none');
test_invalid_value("grid", '"a" "a" [a] [a] / none');
test_invalid_value("grid", 'none / "a"');
test_invalid_value("grid", '"a" / none');
test_invalid_value("grid", 'none / [] "a"');
test_invalid_value("grid", 'none / "a" []');
test_invalid_value("grid", 'none / "a" [] 10px');
// FIXME: add more values to test full syntax
</script>
</body>
</html>

View file

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Grid Layout Test: parsing 'grid' with valid values</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#propdef-grid">
<meta name="assert" content="grid-template supports the grammar `<'grid-template'> | <'grid-template-rows'> / [ auto-flow && dense? ] <'grid-auto-columns'>? | [ auto-flow && dense? ] <'grid-auto-rows'>? / <'grid-template-columns'>`.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
// <'grid-template'> values
test_valid_value("grid", 'auto / auto');
test_valid_value("grid", 'none / [a] 0px');
test_valid_value("grid", 'none / [] 0px', 'none / 0px');
test_valid_value("grid", '[a] 10px / auto');
test_valid_value("grid", '[a] 10px / none');
test_valid_value("grid", '[] 10px [] / [] auto []', '10px / auto');
test_valid_value("grid", '[a] "a" 10px');
test_valid_value("grid", '[a] "a" 10px []', '[a] "a" 10px');
test_valid_value("grid", '"a" 10px');
test_valid_value("grid", '[] "a" 10px', '"a" 10px');
test_valid_value("grid", '[a] "a" 10px [a]');
// FIXME: add more values to test full syntax
</script>
</body>
</html>

View file

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Grid Layout Test: parsing grid-template with invalid values</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#propdef-grid-template">
<meta name="assert" content="grid-template supports only the grammar `none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?`.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value("grid-template", 'auto');
test_invalid_value("grid-template", 'none none');
test_invalid_value("grid-template", 'none []');
test_invalid_value("grid-template", '10px');
test_invalid_value("grid-template", '20%');
test_invalid_value("grid-template", '5fr');
test_invalid_value("grid-template", '[a]');
test_invalid_value("grid-template", '[a] 10px');
test_invalid_value("grid-template", '[a] 10px []');
test_invalid_value("grid-template", '[]');
test_invalid_value("grid-template", '10px "a"');
test_invalid_value("grid-template", '[] 10px "a"');
test_invalid_value("grid-template", '10px [] "a"');
test_invalid_value("grid-template", '[] [] "a"');
test_invalid_value("grid-template", '"a" none');
test_invalid_value("grid-template", '"a" 10px 10px');
test_invalid_value("grid-template", '"a" [a] 10px');
test_invalid_value("grid-template", '"a" [a] 10px [a]');
test_invalid_value("grid-template", '"a" [a] [a] 10px');
test_invalid_value("grid-template", '"a" 10px [a] [a]');
test_invalid_value("grid-template", '"a" [a] [a]');
test_invalid_value("grid-template", '[a] "a" [a] [a]');
test_invalid_value("grid-template", '"a" "a" [a] [a]');
test_invalid_value("grid-template", '"a" [a] [a] / none');
test_invalid_value("grid-template", '"a" "a" [a] [a] / none');
test_invalid_value("grid-template", 'none / "a"');
test_invalid_value("grid-template", '"a" / none');
test_invalid_value("grid-template", 'none / [] "a"');
test_invalid_value("grid-template", 'none / "a" []');
test_invalid_value("grid-template", 'none / "a" [] 10px');
// FIXME: add more values to test full syntax
</script>
</body>
</html>

View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Grid Layout Test: parsing grid-template with valid values</title>
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
<link rel="help" href="https://drafts.csswg.org/css-grid/#propdef-grid-template">
<meta name="assert" content="grid-template supports the grammar `none | [ <'grid-template-rows'> / <'grid-template-columns'> ] | [ <line-names>? <string> <track-size>? <line-names>? ]+ [ / <explicit-track-list> ]?`.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value("grid-template", 'auto / auto');
test_valid_value("grid-template", 'none / [a] 0px');
test_valid_value("grid-template", 'none / [] 0px', 'none / 0px');
test_valid_value("grid-template", '[a] 10px / auto');
test_valid_value("grid-template", '[a] 10px / none');
test_valid_value("grid-template", '[] 10px [] / [] auto []', '10px / auto');
test_valid_value("grid-template", '[a] "a" 10px');
test_valid_value("grid-template", '[a] "a" 10px []', '[a] "a" 10px');
test_valid_value("grid-template", '"a" 10px');
test_valid_value("grid-template", '[] "a" 10px', '"a" 10px');
test_valid_value("grid-template", '[a] "a" 10px [a]');
// FIXME: add more values to test full syntax
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
"use strict";
self.importScripts("/resources/testharness.js");
let state = "start in worker";
self.onmessage = e => {
if (e.data === "start in window") {
assert_equals(state, "start in worker");
e.source.postMessage(state);
state = "waiting for message from the window";
} else if (e.data === "we are expecting a messageerror due to the worker sending us a SAB") {
assert_equals(state, "waiting for message from the window");
e.source.postMessage(new SharedArrayBuffer());
state = "done in worker";
} else {
e.source.postMessage(`worker onmessage was reached when in state "${state}" and data ${e.data}`);
}
};

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test ServiceWorkerContainer.onmessageerror using SharedArrayBuffer</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
<script>
"use strict";
promise_test(t => {
const scope = "resources/blank.html";
return service_worker_unregister_and_register(t, "resources/serviceworker-success.js", scope)
.then(reg => {
t.add_cleanup(() => service_worker_unregister(t, scope));
return wait_for_state(t, reg.installing, "activated");
})
.then(() => with_iframe(scope))
.then(iframe => {
t.add_cleanup(() => iframe.remove());
const sw = iframe.contentWindow.navigator.serviceWorker;
let state = "start in window";
return new Promise(resolve => {
sw.onmessage = t.step_func(e => {
if (e.data === "start in worker") {
assert_equals(state, "start in window");
state = "we are expecting a messageerror due to the worker sending us a SAB";
sw.controller.postMessage(state);
} else {
assert_unreached("Got an unexpected message from the service worker: " + e.data);
}
});
sw.onmessageerror = t.step_func(e => {
assert_equals(state, "we are expecting a messageerror due to the worker sending us a SAB");
assert_equals(e.data, null, "data");
assert_equals(e.origin, self.origin, "origin");
assert_not_equals(e.source, null, "source");
assert_equals(e.ports.length, 0, "ports length");
state = "done in window";
resolve();
});
sw.controller.postMessage(state);
});
});
});
</script>

View file

@ -0,0 +1,2 @@
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

View file

@ -282,6 +282,7 @@ GENERATE_TESTS: shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/w
GENERATE_TESTS: shadow-dom/untriaged/shadow-trees/upper-boundary-encapsulation/window-named-properties-003.html
# Intentional use of setTimeout
SET TIMEOUT: common/security-features/resources/common.sub.js
SET TIMEOUT: css/css-fonts/font-display/font-display.html
SET TIMEOUT: css/css-fonts/font-display/font-display-change.html
SET TIMEOUT: css/css-fonts/font-display/font-display-change-ref.html

View file

@ -12,6 +12,5 @@ idl_test(
TrustedScript: ['window.trustedTypes.createPolicy("SomeName2", { createScript: s => s }).createScript("A string")'],
TrustedScriptURL: ['window.trustedTypes.createPolicy("SomeName3", { createScriptURL: s => s }).createScriptURL("A string")'],
});
},
'Trusted Types'
}
);

View file

@ -0,0 +1,19 @@
"use strict";
self.importScripts("/resources/testharness.js");
self.importScripts("./create-empty-wasm-module.js");
let state = "start in worker";
self.onmessage = e => {
if (e.data === "start in window") {
assert_equals(state, "start in worker");
e.source.postMessage(state);
state = "waiting for message from the window";
} else if (e.data === "we are expecting a messageerror due to the worker sending us a WebAssembly.Module") {
assert_equals(state, "waiting for message from the window");
e.source.postMessage(createEmptyWasmModule());
state = "done in worker";
} else {
e.source.postMessage(`worker onmessage was reached when in state "${state}" and data ${e.data}`);
}
};

View file

@ -0,0 +1,49 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Test ServiceWorkerContainer.onmessageerror using WebAssembly.Module</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
<script src="./resources/create-empty-wasm-module.js"></script>
<script>
"use strict";
promise_test(t => {
const scope = "resources/blank.html";
return service_worker_unregister_and_register(t, "resources/serviceworker-success.js", scope)
.then(reg => {
t.add_cleanup(() => service_worker_unregister(t, scope));
return wait_for_state(t, reg.installing, "activated");
})
.then(() => with_iframe(scope))
.then(iframe => {
t.add_cleanup(() => iframe.remove());
const sw = iframe.contentWindow.navigator.serviceWorker;
let state = "start in window";
return new Promise(resolve => {
sw.onmessage = t.step_func(e => {
if (e.data === "start in worker") {
assert_equals(state, "start in window");
state = "we are expecting a messageerror due to the worker sending us a WebAssembly.Module";
sw.controller.postMessage(state);
} else {
assert_unreached("Got an unexpected message from the service worker: " + e.data);
}
});
sw.onmessageerror = t.step_func(e => {
assert_equals(state, "we are expecting a messageerror due to the worker sending us a WebAssembly.Module");
assert_equals(e.data, null, "data");
assert_equals(e.origin, self.origin, "origin");
assert_not_equals(e.source, null, "source");
assert_equals(e.ports.length, 0, "ports length");
state = "done in window";
resolve();
});
sw.controller.postMessage(state);
});
});
});
</script>