mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Auto merge of #27060 - servo-wpt-sync:wpt_update_23-06-2020, r=jdm
Sync WPT with upstream (23-06-2020) Automated downstream sync of changes from upstream as of 23-06-2020. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
0838d782c6
137 changed files with 1275 additions and 722 deletions
|
@ -4,7 +4,7 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[view-box-mutation-001.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[view-box-mutation-002.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[view-box-mutation-003.html]
|
||||
expected: FAIL
|
|
@ -2,6 +2,3 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -8,3 +8,6 @@
|
|||
[throws if handleEvent is thruthy and not callable]
|
||||
expected: FAIL
|
||||
|
||||
[doesn't look up handleEvent method on callable event listeners]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -17,6 +17,3 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[HTMLMediaElement.html]
|
||||
expected: TIMEOUT
|
|
@ -312,27 +312,24 @@
|
|||
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
[<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/html */*]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,3 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -5,3 +5,9 @@
|
|||
[HTTP Cache - Partioning by top-level origin 1]
|
||||
expected: FAIL
|
||||
|
||||
[HTTP cache is not shared between same-site frames with cross-site top-level frames]
|
||||
expected: FAIL
|
||||
|
||||
[HTTP cache is not shared between cross-site top-level frames]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[textarea-scroll-selection.html]
|
||||
[programatic focus() scrolls selection into view including ancestors]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit-2.html]
|
||||
[preventDefault should allow onclick submit() to succeed]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[jsurl-form-submit.tentative.html]
|
||||
[Verifies that form submissions scheduled inside javascript: urls take precedence over the javascript: url's return value.]
|
||||
expected: FAIL
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
[promise-job-entry.html]
|
||||
expected: TIMEOUT
|
||||
[Fulfillment handler on fulfilled promise]
|
||||
expected: FAIL
|
||||
|
||||
[Rejection handler on pending-then-rejected promise]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Sanity check: this all works as expected with no promises involved]
|
||||
expected: FAIL
|
||||
|
@ -15,5 +16,5 @@
|
|||
expected: FAIL
|
||||
|
||||
[Fulfillment handler on pending-then-fulfilled promise]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -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: TIMEOUT
|
||||
|
|
|
@ -573,6 +573,17 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"replaced-elements": {
|
||||
"attributes-for-embedded-content-and-images": {
|
||||
"input-image-content-crash.html": [
|
||||
"afeba98912d9706c3a2e32562571588a86e614d7",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"the-details-element": {
|
||||
"empty-crash.html": [
|
||||
"d409eff4a88c88011e7a8ffc48d1dc7e71462d7a",
|
||||
|
@ -123742,6 +123753,45 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"trailing-child-margin-000.html": [
|
||||
"d204483a33ebff421cf9f3da9fab2d1183fcd1c0",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"trailing-child-margin-001.html": [
|
||||
"7f13b8953d9949b6b9f25bfc33662406537a8f9c",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"trailing-child-margin-002.html": [
|
||||
"3011d23711459b6c21300e0e53d38180b987ec09",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"widows-orphans-001.html": [
|
||||
"8da27f0b6594fc7ddd90bdb160be8f80a9479038",
|
||||
[
|
||||
|
@ -158597,7 +158647,7 @@
|
|||
]
|
||||
],
|
||||
"paint-function-arguments.https.html": [
|
||||
"fc303bf12839617bc24b0972d23520950ef4cea8",
|
||||
"c613bd159f928e91dac25fba4a83b344843d8ade",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -166006,6 +166056,19 @@
|
|||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"replaced-element-012.tentative.html": [
|
||||
"e8bd0b60ca7dbaeec0ae27c362346f02d7735618",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/reference/ref-filled-green-100px-square.xht",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"auto-scrollbar-inside-stf-abspos.html": [
|
||||
|
@ -186388,7 +186451,7 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"view-box-mutation.html": [
|
||||
"view-box-mutation-001.html": [
|
||||
"d0c85fd59d36e06180bbea07700d6f7bc69e9559",
|
||||
[
|
||||
null,
|
||||
|
@ -186401,6 +186464,32 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"view-box-mutation-002.html": [
|
||||
"d18d823409c9d43c137d6a2edc7853dc9c96068b",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-transforms/transform-box/reference/greensquare200x200.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"view-box-mutation-003.html": [
|
||||
"873972885481d5ae780b1dbdb80541e41e65cec4",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-transforms/transform-box/reference/greensquare200x200.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"view-box-nested.html": [
|
||||
"9e7fc17e2a5bc8c33b412d9f3c6e96caba60009a",
|
||||
[
|
||||
|
@ -231563,6 +231652,19 @@
|
|||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"forced-colors-mode-28.html": [
|
||||
"4e00c65357f84cd0206baba679469f25f9055c75",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/forced-colors-mode/forced-colors-mode-28-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"html": {
|
||||
|
@ -303131,7 +303233,7 @@
|
|||
[]
|
||||
],
|
||||
"paint-function-arguments-ref.html": [
|
||||
"6391d17f01ae4f7f2366d21b66a42fb380401916",
|
||||
"764c8f3c78b7a3e4e494726675bedbb3d2d99789",
|
||||
[]
|
||||
],
|
||||
"paint2d-composite-ref.html": [
|
||||
|
@ -323095,11 +323197,11 @@
|
|||
"445b0bdd2ec95a1ac9be08228503475b386cf961",
|
||||
[]
|
||||
],
|
||||
"split-origin-popup-with-iframe.html": [
|
||||
"b66ccfb43b4017e5013e5ebd751dc3e54a84bc72",
|
||||
"split-cache-popup-with-iframe.html": [
|
||||
"48b16180cfdfa5c9a1755c17d1a7e8704018f6e8",
|
||||
[]
|
||||
],
|
||||
"split-origin-popup.html": [
|
||||
"split-cache-popup.html": [
|
||||
"edb579479414fe980782b54fd39305c12b3de9e7",
|
||||
[]
|
||||
]
|
||||
|
@ -324083,6 +324185,10 @@
|
|||
"39caee40b52aca059a9a65ffde754788228ff9dc",
|
||||
[]
|
||||
],
|
||||
"forced-colors-mode-28-ref.html": [
|
||||
"9792073004b07893281ec6e4d96f52fb0e3939a1",
|
||||
[]
|
||||
],
|
||||
"resources": {
|
||||
"float-image.jpg": [
|
||||
"ab06d5f94d16e22bb08fad79d6fef662b2a7de5a",
|
||||
|
@ -333499,6 +333605,10 @@
|
|||
"8b16672d6b7b501e9db773666ad0f444af33e5ac",
|
||||
[]
|
||||
],
|
||||
"jsurl-form-submit-iframe.html": [
|
||||
"00a1eefd0fcecce532ed6b05120129259ffbc8e1",
|
||||
[]
|
||||
],
|
||||
"location.html": [
|
||||
"6724189eff51c3e4d05fa6fb2ee82d58b4032482",
|
||||
[]
|
||||
|
@ -334491,38 +334601,6 @@
|
|||
"e6f5746eb743a338ad6fbd401715fed368e4cf74",
|
||||
[]
|
||||
],
|
||||
"nested-imports-a.js": [
|
||||
"a127aeb559a0a4d6eedccae19905088fa9fce4b9",
|
||||
[]
|
||||
],
|
||||
"nested-imports-b.js": [
|
||||
"18a5af40cc0ec3a3c10de50f3cd3bffe22c6ec4d",
|
||||
[]
|
||||
],
|
||||
"nested-imports-c.js": [
|
||||
"ec44596aeae7482656b29f1d6aebf6d2ab6a9d54",
|
||||
[]
|
||||
],
|
||||
"nested-imports-d.js": [
|
||||
"cee87849c6258182d6c0085ab504867c197fb8d4",
|
||||
[]
|
||||
],
|
||||
"nested-imports-e.js": [
|
||||
"ec6f0360a608429f774e430a2658f3235d72ed43",
|
||||
[]
|
||||
],
|
||||
"nested-imports-f.js": [
|
||||
"0591e0b3166907bdf94cff3677c2460f9824e082",
|
||||
[]
|
||||
],
|
||||
"nested-imports-g.js": [
|
||||
"86cbe7d3f8e0c29fd7848d9b2626166a0f6f3d30",
|
||||
[]
|
||||
],
|
||||
"nested-imports-h.js": [
|
||||
"a1612912599a4c79307cffe79b43133ceb7f99b0",
|
||||
[]
|
||||
],
|
||||
"nested-missing-export.js": [
|
||||
"3801ae847afca704cfac9d99428c96851296b8cb",
|
||||
[]
|
||||
|
@ -337188,7 +337266,7 @@
|
|||
[]
|
||||
],
|
||||
"webauthn.idl": [
|
||||
"70f250286cdcc0f6b66393e88206710891a9d651",
|
||||
"5627180867581a2ef5940bd06c828a5f6157daf2",
|
||||
[]
|
||||
],
|
||||
"webdriver.idl": [
|
||||
|
@ -339385,6 +339463,10 @@
|
|||
"b028fcd9a36ff71b0eacd0363121a1fe2774f384",
|
||||
[]
|
||||
],
|
||||
"about-blank.https.sub.html.headers": [
|
||||
"ea3f6b335c7620acf59f546fd48484bf624ccb38",
|
||||
[]
|
||||
],
|
||||
"going-back.sub.https.html.headers": [
|
||||
"ea3f6b335c7620acf59f546fd48484bf624ccb38",
|
||||
[]
|
||||
|
@ -339442,12 +339524,16 @@
|
|||
[]
|
||||
],
|
||||
"resources": {
|
||||
"child-frame-script.mjs": [
|
||||
"038c0f3a848776e10fcf905168788081bb1c233d",
|
||||
[]
|
||||
],
|
||||
"helpers.mjs": [
|
||||
"4b742c2b6e731c6fb97717e6785a8198be482fc6",
|
||||
"8943707778c35e56cb0bf15e01c6a060967a0e5a",
|
||||
[]
|
||||
],
|
||||
"send-origin-isolation-header.py": [
|
||||
"b0ba30fcd4939ffff6dfe6fc8959a831187c257e",
|
||||
"67d85620af1e856947c0d7785cf1f224d45ad404",
|
||||
[]
|
||||
]
|
||||
}
|
||||
|
@ -342408,7 +342494,7 @@
|
|||
]
|
||||
},
|
||||
"idlharness.js": [
|
||||
"cb66fcaa98c06d4f9b0b8136649c1f7119fe75b7",
|
||||
"f336df5f6871fbc5a0120107a410ae677ab92ad5",
|
||||
[]
|
||||
],
|
||||
"idlharness.js.headers": [
|
||||
|
@ -347668,7 +347754,7 @@
|
|||
[]
|
||||
],
|
||||
"requirements_mypy.txt": [
|
||||
"857c7886e18319b342488446563457052c0b6aad",
|
||||
"dc5df8ef9ecef115f24496d0658f53e78dd26691",
|
||||
[]
|
||||
],
|
||||
"runner": {
|
||||
|
@ -354036,7 +354122,7 @@
|
|||
[]
|
||||
],
|
||||
"testloader.py": [
|
||||
"0340294dcaa9c07d9c58bf609fb4f572d1dd1055",
|
||||
"af1b00725dc43ba6e864bec8f8c837923c8da38d",
|
||||
[]
|
||||
],
|
||||
"testrunner.py": [
|
||||
|
@ -355105,7 +355191,7 @@
|
|||
[]
|
||||
],
|
||||
"urltestdata.json": [
|
||||
"1ed95583c12f3d1316e29857aa016e3a0e51a7f4",
|
||||
"ded7107ff757d21fbc79939b92d0f709eba82764",
|
||||
[]
|
||||
]
|
||||
}
|
||||
|
@ -360617,83 +360703,83 @@
|
|||
],
|
||||
"resources": {
|
||||
"accept-language.py": [
|
||||
"dd00f4b2ee73d74cc60de49f8199c4ea69ffe593",
|
||||
"b68cf355038ca9f9f938a5c3b2f5c75ebfd05487",
|
||||
[]
|
||||
],
|
||||
"accept.py": [
|
||||
"a033ebec6467747744a3236ad38886fb9b2dd8e5",
|
||||
"842df80cda00670855062114b6cf063139d035ab",
|
||||
[]
|
||||
],
|
||||
"access-control-allow-lists.py": [
|
||||
"526d365b3111d46ce723e92f737673afaa300977",
|
||||
"32c11a0c39baa465f3214c37e9a63fa35a3a3862",
|
||||
[]
|
||||
],
|
||||
"access-control-allow-with-body.py": [
|
||||
"7c7f45c69013b90d8db0fdeebe9e14964c0e24fe",
|
||||
"18564e2d44e7f4387487a227cb5e3793d9a4633a",
|
||||
[]
|
||||
],
|
||||
"access-control-auth-basic.py": [
|
||||
"af32aab97cd5ce664a1f1b6fee1b864afc44e351",
|
||||
"d1c5579ce242c67464560ee3e47970c9235dfc1d",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-allow-no-credentials.py": [
|
||||
"12f8660d1fc2636b010a8cd430c028c750f814ba",
|
||||
"1b8bcdb8ae9814fab28449582f5564c7d6dace5d",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-allow-star.py": [
|
||||
"4557c06b0e3a5544b3f70c0c80df8c009b423188",
|
||||
"8d4642d098cac3c6385361d97274a14a96de815c",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-allow.py": [
|
||||
"2325925157c1e5e26d36d77acfdc5f6155199f53",
|
||||
"6051bc2cdc4f68e7ea109fa6d9216b40ff866ee7",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-cors-safelisted-request-headers.py": [
|
||||
"eba0e7d4c5cafc8664c0643b8ad247137374bef2",
|
||||
"46523a905a9f70183d0a5e96cff2d76ad9e6d549",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-denied.py": [
|
||||
"9f8687854598c16a2b893cada9991dca2b02313d",
|
||||
"0d3964cb1157f75bbc59d2fa75c16aa98951a591",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-options-not-supported.py": [
|
||||
"77b274e957ca87270926ad4622d2c79ec9600fed",
|
||||
"bb3f63e311f64455a789f2a316e28a82aa5257b5",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-preflight-cache-invalidation.py": [
|
||||
"6dc8a2a150793b6244fd5fa711bd73c740d59a1e",
|
||||
"f4f592dac79224f51d130a320278c5c038639239",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-preflight-cache-timeout.py": [
|
||||
"a767d8a4a56d36e289f16981edba38054d90adb1",
|
||||
"00c319f082af700d6c5616e489af4f684df6535b",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-preflight-cache.py": [
|
||||
"56892fb6b12c1c9b2f99c57939806f4a84b729d1",
|
||||
"7a6bb60c01a70ca8efd4b20d1f8fccd47ba4228b",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-put-allow.py": [
|
||||
"65f6466f5972d28478687939f6eea9cb428d48c4",
|
||||
"9b347bca4234e5dccbf5f71c3657b1a02d5c7ac6",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-whitelist-response-headers.py": [
|
||||
"4dac75331976ed83432859bbeaceb2a5a648d481",
|
||||
"346b6b919656b23fb911587d447756711a59231e",
|
||||
[]
|
||||
],
|
||||
"access-control-cookie.py": [
|
||||
"1e0d41d22eaa88521f1d21c92f658f0e8522b9b1",
|
||||
"8c26475c387a7de7458060f18adeab3b6429361a",
|
||||
[]
|
||||
],
|
||||
"access-control-origin-header.py": [
|
||||
"f5128776d2b60c7d83907253c6305bf47ed2117f",
|
||||
"e282fe4425004cd1cc82ebd6488f70bec4f4a95d",
|
||||
[]
|
||||
],
|
||||
"access-control-preflight-denied.py": [
|
||||
"e8010cc0ef71d8d1db3c4e381df45b56d541026e",
|
||||
"1ec3037f36b88402e5f59b37b3842d19df10fa29",
|
||||
[]
|
||||
],
|
||||
"access-control-preflight-request-header-lowercase.py": [
|
||||
"d35b89b9f98a669a3946661bd82a51992400c287",
|
||||
"e77fc9a7d2eeaa1dbeb703c760c06c3def42de84",
|
||||
[]
|
||||
],
|
||||
"access-control-preflight-request-header-sorted.py": [
|
||||
|
@ -360807,23 +360893,23 @@
|
|||
[]
|
||||
],
|
||||
"corsenabled.py": [
|
||||
"4a3e1270b65f41acea1c6f2df4d3f1ec9b95eca7",
|
||||
"aae19f18f3c9255d002a2d635f22e733f3f1b354",
|
||||
[]
|
||||
],
|
||||
"delay.py": [
|
||||
"8f97db6f4fc990c654e2e26d2e52d7190dd2af7b",
|
||||
"61a0ed268844841ff0e6a80bd1808c61d144d796",
|
||||
[]
|
||||
],
|
||||
"echo-headers.py": [
|
||||
"8f23d3db019e7cc311bb58cae7d6704ca9402121",
|
||||
"1c5bd46709d4d781ff6da86c9ba04a017356853c",
|
||||
[]
|
||||
],
|
||||
"echo-method.py": [
|
||||
"ccb46b6b2eb4d4b4c281720e0a16142f048ddbc3",
|
||||
"7899c184b768cfba8c50c9d6814ff0058d594cc8",
|
||||
[]
|
||||
],
|
||||
"empty-div-utf8-html.py": [
|
||||
"26d54b9d1496af5fc72a1ba1d2a2ec83c1822f50",
|
||||
"5d4c936590c2086872969d16528e9d0c1314fada",
|
||||
[]
|
||||
],
|
||||
"folder.txt": [
|
||||
|
@ -360831,11 +360917,11 @@
|
|||
[]
|
||||
],
|
||||
"form.py": [
|
||||
"6b1c49a993bfa25ba6c39303880e8860fb3e1489",
|
||||
"c592943b795596c4ebbd06c6ddfc79ed0fad2ec0",
|
||||
[]
|
||||
],
|
||||
"gzip.py": [
|
||||
"f17f92e4cc17792d7b558d1cd4e1e1d76350dd27",
|
||||
"17f142c4405f8e121a2468ffc380a9d56ef0822e",
|
||||
[]
|
||||
],
|
||||
"header-content-length-twice.asis": [
|
||||
|
@ -360847,7 +360933,7 @@
|
|||
[]
|
||||
],
|
||||
"header-user-agent.py": [
|
||||
"4778de40268bd3ca004195fc52fb69af64926c3e",
|
||||
"ac6af13afe0fd6d8d44df51998f84100cf6f3414",
|
||||
[]
|
||||
],
|
||||
"headers-basic.asis": [
|
||||
|
@ -360871,7 +360957,7 @@
|
|||
[]
|
||||
],
|
||||
"headers.py": [
|
||||
"602db35a3cb1e6294a1c8052d84c90a8642d8fda",
|
||||
"00b37c62abc7d7c34ed983f6dadac910bb0ff9f6",
|
||||
[]
|
||||
],
|
||||
"image.gif": [
|
||||
|
@ -360879,7 +360965,7 @@
|
|||
[]
|
||||
],
|
||||
"img-utf8-html.py": [
|
||||
"085867f9510e48fc926650b3e6fbbe62547afbc6",
|
||||
"3057674cb6036a15b7061d65aa2aa7754bb6f8f7",
|
||||
[]
|
||||
],
|
||||
"img.jpg": [
|
||||
|
@ -361515,7 +361601,7 @@
|
|||
]
|
||||
],
|
||||
"url-charset.window.js": [
|
||||
"4eb103db35d27af9bef1954ce71f6c9f54c48e20",
|
||||
"777709b64a50e51b9ba37c5ce240073aa4b1f8ef",
|
||||
[
|
||||
"FileAPI/url/url-charset.window.html",
|
||||
{}
|
||||
|
@ -387923,13 +388009,6 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"display-with-float.html": [
|
||||
"49f94799d93b58c77289d4ac35cb8b7d3239b4fa",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"inheritance.html": [
|
||||
"bfd072651cb6ec82cca7d9be5b6768afbc39fca0",
|
||||
[
|
||||
|
@ -389460,6 +389539,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"fontface-load-in-modal-dialog.html": [
|
||||
"8838e05eaf4c3df6d1bc85f782421b15b1e3db76",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fontfaceset-load-css-wide-keywords.html": [
|
||||
"b85b92bd15e387db3dacd93b325f7f7b4d8d80db",
|
||||
[
|
||||
|
@ -395120,6 +395206,20 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"scrollbar-gutter-invalid.html": [
|
||||
"bfddfcc563064e3ae2db13fd87e75852ed1eef4c",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"scrollbar-gutter-valid.html": [
|
||||
"07a5c1acc02c5b7868b13a264334f71a3e2d40e5",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"text-overflow-computed.html": [
|
||||
"60add5dd12d6435377ab039c4401be1de256ddc4",
|
||||
[
|
||||
|
@ -404840,6 +404940,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"scrollbar-gutter.html": [
|
||||
"5bf8cb07dd8412f1c709031920b5f7b8ef837957",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"shape-image-threshold.html": [
|
||||
"d16d892c46ade8814540371539ad977b1b1dcc40",
|
||||
[
|
||||
|
@ -431637,7 +431744,7 @@
|
|||
]
|
||||
],
|
||||
"split-cache.tentative.html": [
|
||||
"ca7cf3c2c06ee7bccd815c926d25b7160be31cf7",
|
||||
"4b04c9ff79bf951cce993c6dbcc556dc1e505c41",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -455406,6 +455513,13 @@
|
|||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"textarea-scroll-selection.html": [
|
||||
"c8e252f7da6e3dc66691ce10b69528949105a079",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"sequential-focus-navigation-and-the-tabindex-attribute": {
|
||||
|
@ -455952,13 +456066,6 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"flex-legend-float-abspos.html": [
|
||||
"f6eead471cc076d20839a0e95be01b7742f199fa",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"legend-align-justify-self.html": [
|
||||
"29df29d17778a9d3d592c5e942f093a44f419b3c",
|
||||
[
|
||||
|
@ -461381,6 +461488,13 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"jsurl-form-submit.tentative.html": [
|
||||
"f476308b7d98017282545425ab6c530d22da3b52",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"jsurl-navigation-then-form-submit.html": [
|
||||
"93a4ea6004a49175a195e2a7844daeed26c70687",
|
||||
[
|
||||
|
@ -465146,13 +465260,6 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"nested-imports.html": [
|
||||
"23bb595d0ebce1fbe14a3b72ce34fc1efa2720fe",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"nomodule-attribute.html": [
|
||||
"656c99b292ac03f401eead1c4798666de61ca91a",
|
||||
[
|
||||
|
@ -473687,7 +473794,7 @@
|
|||
},
|
||||
"measure-memory": {
|
||||
"detached.tentative.window.js": [
|
||||
"87c93160526ec37699c062fea4ab935616b5ee5d",
|
||||
"c6a133cfe456c7c8488ea76d85b903261de206fb",
|
||||
[
|
||||
"measure-memory/detached.tentative.window.html",
|
||||
{
|
||||
|
@ -479372,6 +479479,13 @@
|
|||
]
|
||||
},
|
||||
"origin-isolation": {
|
||||
"about-blank.https.sub.html": [
|
||||
"ec24853a1605678102d7f025a386c82b44d9af9b",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"going-back.sub.https.html": [
|
||||
"7e95f19366996ce0c97b87631b10d660d07c2e56",
|
||||
[
|
||||
|
@ -504924,6 +505038,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"animate-stop-currentcolor.html": [
|
||||
"1536035dec58709256e5d09fec22eae999a0a00d",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"animateMotion-fill-freeze.html": [
|
||||
"4e768efb0046972fdb62f9af6545134d97a9495c",
|
||||
[
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-003.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[view-box-mutation-001.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[view-box-mutation-002.html]
|
||||
expected: FAIL
|
|
@ -0,0 +1,2 @@
|
|||
[view-box-mutation-003.html]
|
||||
expected: FAIL
|
|
@ -1,2 +0,0 @@
|
|||
[view-box-mutation.html]
|
||||
expected: FAIL
|
|
@ -2,6 +2,3 @@
|
|||
[Hit test intersecting scaled box]
|
||||
expected: FAIL
|
||||
|
||||
[Hit test within unscaled box]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -8,3 +8,6 @@
|
|||
[throws if handleEvent is thruthy and not callable]
|
||||
expected: FAIL
|
||||
|
||||
[doesn't look up handleEvent method on callable event listeners]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -21,6 +21,3 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[HTMLMediaElement.html]
|
||||
expected: TIMEOUT
|
|
@ -312,27 +312,24 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
[<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/html */*]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,3 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -5,3 +5,9 @@
|
|||
[HTTP Cache - Partioning by top-level origin 3]
|
||||
expected: FAIL
|
||||
|
||||
[HTTP cache is not shared between same-site frames with cross-site top-level frames]
|
||||
expected: FAIL
|
||||
|
||||
[HTTP cache is not shared between cross-site top-level frames]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_3.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[cross-origin-objects-on-new-window.html]
|
||||
expected: TIMEOUT
|
|
@ -0,0 +1,4 @@
|
|||
[textarea-scroll-selection.html]
|
||||
[programatic focus() scrolls selection into view including ancestors]
|
||||
expected: FAIL
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
[flex-legend-float-abspos.html]
|
||||
[dynamic changes to float]
|
||||
expected: FAIL
|
||||
|
||||
[dynamic changes to position]
|
||||
expected: FAIL
|
||||
|
||||
[inserting a new legend and removing it again]
|
||||
expected: FAIL
|
||||
|
||||
[no dynamic changes]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[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: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit-2.html]
|
||||
[preventDefault should allow onclick submit() to succeed]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[jsurl-form-submit.tentative.html]
|
||||
[Verifies that form submissions scheduled inside javascript: urls take precedence over the javascript: url's return value.]
|
||||
expected: FAIL
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
[promise-job-entry.html]
|
||||
expected: TIMEOUT
|
||||
[Fulfillment handler on fulfilled promise]
|
||||
expected: FAIL
|
||||
|
||||
[Rejection handler on pending-then-rejected promise]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Sanity check: this all works as expected with no promises involved]
|
||||
expected: FAIL
|
||||
|
@ -15,5 +16,5 @@
|
|||
expected: FAIL
|
||||
|
||||
[Fulfillment handler on pending-then-fulfilled promise]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
5
tests/wpt/metadata/webmessaging/with-ports/018.html.ini
Normal file
5
tests/wpt/metadata/webmessaging/with-ports/018.html.ini
Normal file
|
@ -0,0 +1,5 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,4 +1,7 @@
|
|||
async_test(t => {
|
||||
// This could be detected as ISO-2022-JP, in which case there would be no
|
||||
// <textarea>, and thus the script inside would be interpreted as actual
|
||||
// script.
|
||||
const blob = new Blob(
|
||||
[
|
||||
`aaa\u001B$@<textarea>\u001B(B<script>/* xss */<\/script></textarea>bbb`
|
||||
|
@ -6,7 +9,9 @@ async_test(t => {
|
|||
{type: 'text/html;charset=utf-8'});
|
||||
const url = URL.createObjectURL(blob);
|
||||
const win = window.open(url);
|
||||
t.add_cleanup(() => win.close());
|
||||
t.add_cleanup(() => {
|
||||
win.close();
|
||||
});
|
||||
|
||||
win.onload = t.step_func_done(() => {
|
||||
assert_equals(win.document.charset, 'UTF-8');
|
||||
|
@ -19,7 +24,9 @@ async_test(t => {
|
|||
{type: 'text/html;charset=utf-8'});
|
||||
const url = URL.createObjectURL(blob);
|
||||
const win = window.open(url);
|
||||
t.add_cleanup(() => win.close());
|
||||
t.add_cleanup(() => {
|
||||
win.close();
|
||||
});
|
||||
|
||||
win.onload = t.step_func_done(() => {
|
||||
assert_equals(win.document.charset, 'UTF-8');
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-break-3/#break-margins">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="columns:2; column-gap:0; width:100px; column-fill:auto; height:100px; background:red;">
|
||||
<div style="display:flow-root; background:green;">
|
||||
<div style="height:70px; margin-bottom:50px;"></div>
|
||||
</div>
|
||||
<!-- We're at the very beginning of the second column here, so inserting a
|
||||
forced break will have no effect. -->
|
||||
<div style="break-before:column; height:100px; background:green;"></div>
|
||||
</div>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-break-3/#break-margins">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="columns:2; column-gap:0; width:100px; column-fill:auto; height:100px; background:red;">
|
||||
<div style="display:flow-root; background:green;">
|
||||
<div style="height:70px; margin-bottom:50px;"></div>
|
||||
<div style="height:100px;"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
|
||||
<link rel="help" href="https://www.w3.org/TR/css-break-3/#break-margins">
|
||||
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
<div style="columns:2; column-gap:0; width:100px; column-fill:auto; height:100px; background:red;">
|
||||
<fieldset style="margin:0; border:none; padding:0; background:green;">
|
||||
<div style="height:70px; margin-bottom:50px;"></div>
|
||||
</fieldset>
|
||||
<div style="break-before:column; height:100px; background:green;"></div>
|
||||
</div>
|
|
@ -1,24 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Computed float value of flex/grid items</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-containers">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#grid-containers">
|
||||
<meta name="assert" content="computed float value of flex/grid items should be as specified">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<div style="display:flex;">
|
||||
<div id="flex-item" style="float:left;"></div>
|
||||
</div>
|
||||
<div style="display:grid;">
|
||||
<div id="grid-item" style="float:right;"></div>
|
||||
</div>
|
||||
<script>
|
||||
function getFloatFor(id) {
|
||||
return window.getComputedStyle(document.getElementById(id)).getPropertyValue("float");
|
||||
}
|
||||
test(function() {
|
||||
assert_equals(getFloatFor("flex-item"), "left");
|
||||
assert_equals(getFloatFor("grid-item"), "right");
|
||||
}, "computed style for float");
|
||||
</script>
|
|
@ -0,0 +1,30 @@
|
|||
<!doctype html>
|
||||
<link rel="author" title="Xiaocheng Hu" href="xiaochengh@chromium.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-font-loading/#font-face-load">
|
||||
<link rel="help" href="https://crbug.com/1092411">
|
||||
<meta name="assert" content="Ensure that content of a modal dialog is re-rendered with loaded web font." />
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
#target {
|
||||
font: 25px/1 custom-font, monospace;
|
||||
}
|
||||
</style>
|
||||
<dialog><span id=target>0123456789</span></dialog>
|
||||
<script>
|
||||
document.querySelector('dialog').showModal();
|
||||
|
||||
function raf() {
|
||||
return new Promise(resolve => requestAnimationFrame(resolve));
|
||||
}
|
||||
|
||||
promise_test(async () => {
|
||||
await raf();
|
||||
|
||||
const face = new FontFace('custom-font', 'url(/fonts/Ahem.ttf)');
|
||||
document.fonts.add(face);
|
||||
await face.load();
|
||||
|
||||
assert_equals(target.offsetWidth, 250);
|
||||
}, 'Modal dialog content should be re-rendered with loaded web font');
|
||||
</script>
|
|
@ -0,0 +1,29 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Overflow: parsing invalid scrollbar-gutter declarations</title>
|
||||
<link rel="author" title="Felipe Erias Morandeira" href="mailto:felipeerias@gmail.com"/>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#scollbar-gutter-property"/>
|
||||
<meta name="assert" content="Parsing invalid scrollbar-gutter declarations">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
test_invalid_value("scrollbar-gutter", "auto both");
|
||||
test_invalid_value("scrollbar-gutter", "force auto");
|
||||
test_invalid_value("scrollbar-gutter", "auto always");
|
||||
test_invalid_value("scrollbar-gutter", "always stable");
|
||||
test_invalid_value("scrollbar-gutter", "force");
|
||||
test_invalid_value("scrollbar-gutter", "both");
|
||||
test_invalid_value("scrollbar-gutter", "force both");
|
||||
|
||||
test_invalid_value("scrollbar-gutter", "");
|
||||
test_invalid_value("scrollbar-gutter", "0");
|
||||
test_invalid_value("scrollbar-gutter", "1px");
|
||||
test_invalid_value("scrollbar-gutter", "3em");
|
||||
test_invalid_value("scrollbar-gutter", "1 2 3");
|
||||
test_invalid_value("scrollbar-gutter", "none");
|
||||
test_invalid_value("scrollbar-gutter", "red");
|
||||
|
||||
</script>
|
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Overflow: parsing valid scrollbar-gutter declarations</title>
|
||||
<link rel="author" title="Felipe Erias Morandeira" href="mailto:felipeerias@gmail.com"/>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-4/#scollbar-gutter-property"/>
|
||||
<meta name="assert" content="Parsing valid scrollbar-gutter declarations">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
test_valid_value("scrollbar-gutter", "auto");
|
||||
test_valid_value("scrollbar-gutter", "stable");
|
||||
test_valid_value("scrollbar-gutter", "stable both");
|
||||
test_valid_value("scrollbar-gutter", "stable force");
|
||||
test_valid_value("scrollbar-gutter", "stable both force");
|
||||
test_valid_value("scrollbar-gutter", "always");
|
||||
test_valid_value("scrollbar-gutter", "always both");
|
||||
test_valid_value("scrollbar-gutter", "always force");
|
||||
test_valid_value("scrollbar-gutter", "always both force");
|
||||
|
||||
test_valid_value("scrollbar-gutter", "force both stable", "stable both force");
|
||||
test_valid_value("scrollbar-gutter", "force always both", "always both force");
|
||||
|
||||
</script>
|
|
@ -32,9 +32,8 @@ function drawCanvas(canvasID, color, width) {
|
|||
context.fillRect(40, 40, width, width);
|
||||
};
|
||||
|
||||
drawCanvas('box-1', 'rgb(50, 100, 150)', '50px');
|
||||
drawCanvas('box-2', 'rgb(150, 100, 50)', '100px');
|
||||
|
||||
drawCanvas('box-1', 'rgb(50, 100, 150)', '50');
|
||||
drawCanvas('box-2', 'rgb(150, 100, 50)', '100');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -36,7 +36,7 @@ registerPaint('box', class {
|
|||
static get inputArguments() { return ['<color>', '<length>']; }
|
||||
paint(ctx, geom, properties, args) {
|
||||
ctx.fillStyle = args[0].toString();
|
||||
let size = args[1].toString();
|
||||
let size = parseInt(args[1].toString());
|
||||
ctx.fillRect(40, 40, size, size);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
<!DOCTYPE html>
|
||||
<title>CSS aspect-ratio: picture</title>
|
||||
<link rel="author" title="Google LLC" href="https://www.google.com/">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio">
|
||||
<link rel="match" href="../../reference/ref-filled-green-100px-square.xht" />
|
||||
|
||||
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
|
||||
|
||||
<picture>
|
||||
<source srcset="support/20x50-green.png">
|
||||
<img style="width: 100px; aspect-ratio: 1/1;">
|
||||
</picture>
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<html class="reftest-wait">
|
||||
<title>transform-box: view-box, viewport mutated, <text></title>
|
||||
<link rel="stylesheet" href="/fonts/ahem.css">
|
||||
<link rel="match" href="reference/greensquare200x200.html">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-box">
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/rendering-utils.js"></script>
|
||||
<style>
|
||||
#target {
|
||||
transform-box: view-box;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
</style>
|
||||
<p>There should be a green 200x200 rectangle below, and no red.</p>
|
||||
<svg width="400" height="200">
|
||||
<rect width="200" height="200" fill="red"/>
|
||||
<text id="target" x="100" y="160" fill="green"
|
||||
font-family="Ahem" font-size="200">X</text>
|
||||
</svg>
|
||||
<script>
|
||||
waitForAtLeastOneFrame().then(() => {
|
||||
document.querySelector('svg').setAttribute('width', 200);
|
||||
takeScreenshot();
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,26 @@
|
|||
<!doctype html>
|
||||
<html class="reftest-wait">
|
||||
<title>transform-box: view-box, viewport mutated, <foreignObject></title>
|
||||
<link rel="match" href="reference/greensquare200x200.html">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-transforms/#transform-box">
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/rendering-utils.js"></script>
|
||||
<style>
|
||||
#target {
|
||||
transform-box: view-box;
|
||||
transform: translate(-50%, 0);
|
||||
}
|
||||
</style>
|
||||
<p>There should be a green 200x200 rectangle below, and no red.</p>
|
||||
<svg width="400" height="200">
|
||||
<rect width="200" height="200" fill="red"/>
|
||||
<foreignObject id="target" x="100" width="200" height="100%">
|
||||
<div style="width: 200px; height: 200px; background-color: green"></div>
|
||||
</foreignObject>
|
||||
</svg>
|
||||
<script>
|
||||
waitForAtLeastOneFrame().then(() => {
|
||||
document.querySelector('svg').setAttribute('width', 200);
|
||||
takeScreenshot();
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,30 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>'display' property</title>
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-get">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#dom-stylepropertymap-set">
|
||||
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#property-stle-value-normalization">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="../../resources/testhelper.js"></script>
|
||||
<script src="resources/testsuite.js"></script>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
runPropertyTests('scrollbar-gutter', [
|
||||
{ syntax: 'auto' },
|
||||
{ syntax: 'stable' },
|
||||
{ syntax: 'always' },
|
||||
]);
|
||||
runUnsupportedPropertyTests('scrollbar-gutter', [
|
||||
'stable both',
|
||||
'stable force',
|
||||
'stable both force',
|
||||
'always both',
|
||||
'always force',
|
||||
'always both force'
|
||||
]);
|
||||
|
||||
</script>
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
// Create iframe that is same-origin to the opener.
|
||||
var iframe = document.createElement("iframe");
|
||||
iframe.src = host.HTTP_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') + "split-origin-popup.html";
|
||||
iframe.src = host.HTTP_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') + "split-cache-popup.html";
|
||||
document.body.appendChild(iframe);
|
||||
|
||||
window.addEventListener("message", function listener(event) {
|
|
@ -2,7 +2,7 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>HTTP Cache - Partioning by top-level origin</title>
|
||||
<title>HTTP Cache - Partioning by site</title>
|
||||
<meta name="help" href="https://fetch.spec.whatwg.org/#http-cache-partitions">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
@ -15,19 +15,18 @@
|
|||
const host = get_host_info();
|
||||
|
||||
// We run this entire test four times, varying the following two booleans:
|
||||
// - is_same_origin_test, which controls whether the popup is same-origin.
|
||||
// - is_cross_site_test, which controls whether the popup is cross-site.
|
||||
// - load_resource_in_iframe, which controls whether the popup loads the
|
||||
// resource in an iframe or the mainframe. Note that the iframe is always
|
||||
// same-origin to the opener.
|
||||
function performFullTest(is_same_origin_test, load_resource_in_iframe) {
|
||||
const POPUP_HTTP_ORIGIN = is_same_origin_test ? host.HTTP_ORIGIN : host.HTTP_NOTSAMESITE_ORIGIN
|
||||
// resource in an iframe or the top-level frame. Note that the iframe is
|
||||
// always same-site to the opener.
|
||||
function performFullTest(is_cross_site_test, load_resource_in_iframe, name) {
|
||||
const POPUP_HTTP_ORIGIN = is_cross_site_test ? host.HTTP_NOTSAMESITE_ORIGIN : host.HTTP_ORIGIN
|
||||
const LOCAL_HTTP_ORIGIN = host.HTTP_ORIGIN
|
||||
|
||||
const popupBaseURL = POPUP_HTTP_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') ;
|
||||
const localBaseURL = LOCAL_HTTP_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') ;
|
||||
|
||||
var test = {
|
||||
name: "HTTP Cache is partitioned by top-frame origin",
|
||||
requests: [
|
||||
{
|
||||
response_headers: [
|
||||
|
@ -45,10 +44,10 @@ function performFullTest(is_same_origin_test, load_resource_in_iframe) {
|
|||
// If the popup's request was a cache hit, we would only expect 2
|
||||
// requests to the server. If it was a cache miss, we would expect 3.
|
||||
// load_resource_in_iframe does not affect the expectation as, even
|
||||
// though the iframe (if present) is same-origin, we expect a cache miss
|
||||
// when the popup's mainframe is a different origin.
|
||||
// though the iframe (if present) is same-site, we expect a cache miss
|
||||
// when the popup's top-level frame is a different site.
|
||||
expected_response_headers: [
|
||||
["server-request-count", is_same_origin_test ? "2" : "3"]
|
||||
["server-request-count", is_cross_site_test ? "3" : "2"]
|
||||
],
|
||||
base_url: localBaseURL
|
||||
}
|
||||
|
@ -69,8 +68,8 @@ function performFullTest(is_same_origin_test, load_resource_in_iframe) {
|
|||
function popup_fetch() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
var relativeUrl = load_resource_in_iframe
|
||||
? "resources/split-origin-popup-with-iframe.html"
|
||||
: "resources/split-origin-popup.html";
|
||||
? "resources/split-cache-popup-with-iframe.html"
|
||||
: "resources/split-cache-popup.html";
|
||||
var win = window.open(popupBaseURL + relativeUrl);
|
||||
|
||||
// Post a message to initiate the popup's request and give the necessary
|
||||
|
@ -118,13 +117,26 @@ function performFullTest(is_same_origin_test, load_resource_in_iframe) {
|
|||
})
|
||||
}
|
||||
|
||||
promise_test(() => local_fetch().then(popup_fetch).then(local_fetch2).then(check_server_info))
|
||||
promise_test(() => {
|
||||
return local_fetch()
|
||||
.then(popup_fetch)
|
||||
.then(local_fetch2)
|
||||
.then(check_server_info)
|
||||
}, name)
|
||||
}
|
||||
|
||||
performFullTest(true, true);
|
||||
performFullTest(false, true);
|
||||
performFullTest(true, false);
|
||||
performFullTest(false, false);
|
||||
performFullTest(
|
||||
false /* is_cross_site_test */, false /* load_resource_in_iframe */,
|
||||
"HTTP cache is shared between same-site top-level frames");
|
||||
performFullTest(
|
||||
true /* is_cross_site_test */, false /* load_resource_in_iframe */,
|
||||
"HTTP cache is not shared between cross-site top-level frames");
|
||||
performFullTest(
|
||||
false /* is_cross_site_test */, true /* load_resource_in_iframe */,
|
||||
"HTTP cache is shared between same-site frames with same-site top-level frames");
|
||||
performFullTest(
|
||||
true /* is_cross_site_test */, true /* load_resource_in_iframe */,
|
||||
"HTTP cache is not shared between same-site frames with cross-site top-level frames");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Forced colors mode - background-image.
|
||||
</title>
|
||||
<style>
|
||||
body {
|
||||
forced-color-adjust: none;
|
||||
}
|
||||
div {
|
||||
height: 20px;
|
||||
width: 10px;
|
||||
}
|
||||
#div2, #div3 {
|
||||
background-image: url("resources/test-image.jpg");
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
The background-image should be reverted in Forced Colors Mode unless the value
|
||||
is a url() function.
|
||||
<div id="div1"></div>
|
||||
<div id="div2"></div>
|
||||
<div id="div3"></div>
|
||||
<div id="div4"></div>
|
||||
</body>
|
|
@ -0,0 +1,34 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>Forced colors mode - background-image.
|
||||
</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-color-adjust-1/#forced-colors-properties">
|
||||
<link rel=match href="forced-colors-mode-28-ref.html">
|
||||
<style>
|
||||
div {
|
||||
height: 20px;
|
||||
width: 10px;
|
||||
}
|
||||
#div1 {
|
||||
background-image: url("resources/test-image.jpg");
|
||||
background-image: linear-gradient(red, yellow);
|
||||
}
|
||||
#div2 {
|
||||
background-image: linear-gradient(red, yellow);
|
||||
background-image: url("resources/test-image.jpg");
|
||||
}
|
||||
#div3 {
|
||||
background-image: url("resources/test-image.jpg");
|
||||
}
|
||||
#div4 {
|
||||
background-image: linear-gradient(red, yellow);
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
The background-image should be reverted in Forced Colors Mode unless the value
|
||||
is a url() function.
|
||||
<div id="div1"></div>
|
||||
<div id="div2"></div>
|
||||
<div id="div3"></div>
|
||||
<div id="div4"></div>
|
||||
</body>
|
|
@ -0,0 +1,46 @@
|
|||
<!doctype html>
|
||||
<title>programatic focus() scrolls selection into view including ancestors</title>
|
||||
<link rel="author" href="https://mozilla.org" title="Mozilla">
|
||||
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
|
||||
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1644366">
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<div style="overflow: auto; height: 100px">
|
||||
<textarea style="overflow: hidden; height: 200px">
|
||||
Some text
|
||||
That is surely more
|
||||
Than 100px tall
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
For sure.
|
||||
</textarea>
|
||||
</div>
|
||||
<script>
|
||||
promise_test(async function(t) {
|
||||
await new Promise(resolve => window.addEventListener("load", resolve));
|
||||
let textarea = document.querySelector("textarea");
|
||||
textarea.setSelectionRange(textarea.value.length, textarea.value.length);
|
||||
textarea.focus();
|
||||
|
||||
await new Promise(resolve => {
|
||||
requestAnimationFrame(() => requestAnimationFrame(resolve));
|
||||
});
|
||||
|
||||
assert_not_equals(textarea.parentNode.scrollTop, 0, "Should've scrolled ancestor to show the selection");
|
||||
});
|
||||
</script>
|
|
@ -1,97 +0,0 @@
|
|||
<!doctype html>
|
||||
<title>
|
||||
legend and float and position: absolute/fixed when the display type of
|
||||
the fieldset is flex.
|
||||
</title>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<style>
|
||||
body { margin: 0; }
|
||||
fieldset {
|
||||
border: 10px solid;
|
||||
display: flex;
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
width: 300px;
|
||||
}
|
||||
legend { height: 10px; }
|
||||
#legend1 { float: left; }
|
||||
#legend2 { float: right; }
|
||||
#legend3 { position: absolute; }
|
||||
#legend4 { position: fixed; }
|
||||
</style>
|
||||
<fieldset id=fieldset>
|
||||
<div>div</div>
|
||||
<legend id=legend1>legend1</legend>
|
||||
<legend id=legend2>legend2</legend>
|
||||
<legend id=legend3>legend3</legend>
|
||||
<legend id=legend4>legend4</legend>
|
||||
<legend id=legend5>legend5</legend>
|
||||
</fieldset>
|
||||
<script>
|
||||
const fieldset = document.getElementById('fieldset');
|
||||
const legends = document.getElementsByTagName('legend');
|
||||
const [legend1, legend2, legend3, legend4, legend5] = legends;
|
||||
const expectedTop = 0;
|
||||
const expectedLeft = 10 + 20;
|
||||
|
||||
function assert_rendered_legend(legend) {
|
||||
assert_equals(legend.offsetTop, expectedTop, `${legend.id}.offsetTop`);
|
||||
assert_equals(legend.offsetLeft, expectedLeft, `${legend.id}.offsetLeft`);
|
||||
for (const other of legends) {
|
||||
if (other === legend) {
|
||||
continue;
|
||||
}
|
||||
if (other.offsetTop === expectedTop && other.offsetLeft === expectedLeft) {
|
||||
assert_unreached(`${other.id} should not be the "rendered legend"`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
test(t => {
|
||||
assert_rendered_legend(legend5);
|
||||
}, 'no dynamic changes');
|
||||
|
||||
test(t => {
|
||||
const legend = document.createElement('legend');
|
||||
t.add_cleanup(() => {
|
||||
legend.remove();
|
||||
});
|
||||
legend.id = 'script-inserted';
|
||||
legend.textContent = 'script-inserted legend';
|
||||
fieldset.insertBefore(legend, legend1);
|
||||
assert_rendered_legend(legend);
|
||||
legend.remove();
|
||||
assert_rendered_legend(legend5);
|
||||
}, 'inserting a new legend and removing it again');
|
||||
|
||||
test(t => {
|
||||
t.add_cleanup(() => {
|
||||
legend1.id = 'legend1';
|
||||
legend2.id = 'legend2';
|
||||
});
|
||||
legend2.id = '';
|
||||
assert_rendered_legend(legend2);
|
||||
legend1.id = '';
|
||||
assert_rendered_legend(legend1);
|
||||
legend1.id = 'legend1';
|
||||
assert_rendered_legend(legend2);
|
||||
legend2.id = 'legend2';
|
||||
assert_rendered_legend(legend5);
|
||||
}, 'dynamic changes to float');
|
||||
|
||||
test(t => {
|
||||
t.add_cleanup(() => {
|
||||
legend3.id = 'legend3';
|
||||
legend4.id = 'legend4';
|
||||
});
|
||||
legend4.id = '';
|
||||
assert_rendered_legend(legend4);
|
||||
legend3.id = '';
|
||||
assert_rendered_legend(legend3);
|
||||
legend3.id = 'legend3';
|
||||
assert_rendered_legend(legend4);
|
||||
legend4.id = 'legend4';
|
||||
assert_rendered_legend(legend5);
|
||||
}, 'dynamic changes to position');
|
||||
</script>
|
|
@ -0,0 +1,17 @@
|
|||
<!doctype html>
|
||||
<title>Crash test: asynchronously applying image content to image input</title>
|
||||
<link rel="author" href="mailto:yuzhehan@chromium.org" title="Yu Han">
|
||||
<link rel="help" href="https://crbug.com/1096002">
|
||||
<style>
|
||||
.content { content: url(data:text/plain,aaa); }
|
||||
</style>
|
||||
<input id="input" type="image">
|
||||
<script>
|
||||
onload = ()=> {
|
||||
document.body.offsetTop;
|
||||
input.setAttribute('class', 'content');
|
||||
document.body.offsetTop;
|
||||
input.setAttribute('class', '');
|
||||
document.body.offsetTop;
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org">
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<!-- This behavior is not explicitly specified. -->
|
||||
|
||||
<iframe id=frameid name=framename></iframe>
|
||||
<form id=formid target=framename action="resources/form.html"></form>
|
||||
|
||||
<script>
|
||||
async_test(t => {
|
||||
frameid.src = 'resources/jsurl-form-submit-iframe.html';
|
||||
|
||||
frameid.onload = t.step_func(() => {
|
||||
assert_equals(
|
||||
frameid.contentDocument.location.pathname,
|
||||
'/html/semantics/forms/form-submission-0/resources/jsurl-form-submit-iframe.html');
|
||||
|
||||
frameid.onload = t.step_func_done(() => {
|
||||
assert_equals(
|
||||
frameid.contentDocument.location.pathname,
|
||||
'/html/semantics/forms/form-submission-0/resources/form.html');
|
||||
});
|
||||
|
||||
frameid.contentDocument.getElementById('anchorid').click();
|
||||
});
|
||||
|
||||
}, `Verifies that form submissions scheduled inside javascript: urls take precedence over the javascript: url's return value.`);
|
||||
</script>
|
|
@ -0,0 +1,12 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
|
||||
<form id=formid action="form.html"></form>
|
||||
<a id=anchorid href="javascript:jsurl()">anchor</a>
|
||||
|
||||
<script>
|
||||
function jsurl() {
|
||||
formid.submit();
|
||||
return 'jsurl return value';
|
||||
}
|
||||
</script>
|
|
@ -1 +0,0 @@
|
|||
import { b } from "./nested-imports-b.js";
|
|
@ -1,2 +0,0 @@
|
|||
import { c } from "./nested-imports-c.js";
|
||||
export const b = "b";
|
|
@ -1,2 +0,0 @@
|
|||
import { d } from "./nested-imports-d.js";
|
||||
export const c = "c";
|
|
@ -1,3 +0,0 @@
|
|||
import { e } from "./nested-imports-e.js";
|
||||
import "./resources/delayed-modulescript.py";
|
||||
export const d = "d";
|
|
@ -1,2 +0,0 @@
|
|||
import { f } from "./nested-imports-f.js";
|
||||
export const e = "e";
|
|
@ -1,2 +0,0 @@
|
|||
import { g } from "./nested-imports-g.js";
|
||||
export const f = "f";
|
|
@ -1,2 +0,0 @@
|
|||
import { h } from "./nested-imports-h.js";
|
||||
export const g = "g";
|
|
@ -1,2 +0,0 @@
|
|||
import { c } from "./nested-imports-c.js";
|
||||
export const h = "h";
|
|
@ -1,29 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<title>Test imports under more than 3 levels in different modules</title>
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
setup({ allow_uncaught_exception: true });
|
||||
|
||||
window.log = [];
|
||||
|
||||
const test_load = async_test("should load all modules successfully");
|
||||
window.addEventListener(
|
||||
"load",
|
||||
test_load.step_func_done((ev) => {
|
||||
assert_equals(log.length, 2);
|
||||
|
||||
assert_equals(log[0], 1);
|
||||
assert_equals(log[1], 2);
|
||||
})
|
||||
);
|
||||
|
||||
function unreachable() {
|
||||
log.push("unexpected");
|
||||
}
|
||||
</script>
|
||||
<script type="module" src="./nested-imports-a.js" onerror="unreachable()"
|
||||
onload="log.push(1)"></script>
|
||||
<script type="module" src="./nested-imports-e.js" onerror="unreachable()"
|
||||
onload="log.push(2)"></script>
|
|
@ -191,3 +191,21 @@ dictionary CredentialPropertiesOutput {
|
|||
partial dictionary AuthenticationExtensionsClientOutputs {
|
||||
CredentialPropertiesOutput credProps;
|
||||
};
|
||||
|
||||
partial dictionary AuthenticationExtensionsClientInputs {
|
||||
AuthenticationExtensionsLargeBlobInputs largeBlob;
|
||||
};
|
||||
|
||||
dictionary AuthenticationExtensionsLargeBlobInputs {
|
||||
boolean read;
|
||||
ArrayBuffer write;
|
||||
};
|
||||
|
||||
partial dictionary AuthenticationExtensionsClientOutputs {
|
||||
AuthenticationExtensionsLargeBlobOutputs largeBlob;
|
||||
};
|
||||
|
||||
dictionary AuthenticationExtensionsLargeBlobOutputs {
|
||||
ArrayBuffer blob;
|
||||
boolean written;
|
||||
};
|
||||
|
|
|
@ -66,6 +66,7 @@ promise_test(async testCase => {
|
|||
iframes['same-origin-3'].src,
|
||||
iframes['same-origin-4'].src,
|
||||
iframes['cross-origin-5'].src,
|
||||
iframes['same-origin-8'].sec,
|
||||
windows['same-origin-7'].location.href,
|
||||
windows['same-origin-12'].location.href,
|
||||
];
|
||||
|
@ -89,11 +90,17 @@ promise_test(async testCase => {
|
|||
// 2) By closing the window:
|
||||
windows['cross-origin-9'].close();
|
||||
|
||||
await waitForMessage('cross-site-1');
|
||||
await waitForMessage('same-origin-3');
|
||||
await waitForMessage('same-origin-7');
|
||||
|
||||
try {
|
||||
const result = await performance.measureMemory();
|
||||
checkMeasureMemory(result, {
|
||||
allowed: allowed.concat([
|
||||
iframes['cross-site-1'].src,
|
||||
iframes['same-origin-3'].contentWindow.location.href,
|
||||
windows['same-origin-7'].location.href,
|
||||
]),
|
||||
required: [
|
||||
window.location.href,
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>The initial about:blank respects origin isolation</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
|
||||
<div id="log"></div>
|
||||
|
||||
<script type="module">
|
||||
import {
|
||||
insertIframe,
|
||||
setBothDocumentDomains,
|
||||
testSameAgentCluster,
|
||||
testDifferentAgentClusters
|
||||
} from "./resources/helpers.mjs";
|
||||
|
||||
promise_setup(async () => {
|
||||
await insertAboutBlankIframe();
|
||||
await insertIframe("{{hosts[][www]}}");
|
||||
});
|
||||
|
||||
// Since the initial about:blank inherits its origin from its parent, it is
|
||||
// same-origin with the parent, and thus cross-origin with child2.
|
||||
testSameAgentCluster([self, 0], "parent to about:blank");
|
||||
testDifferentAgentClusters([0, 1], "about:blank to child2");
|
||||
testDifferentAgentClusters([1, 0], "child2 to about:blank");
|
||||
|
||||
async function insertAboutBlankIframe() {
|
||||
const iframe = document.createElement("iframe");
|
||||
document.body.append(iframe);
|
||||
|
||||
// Now use document.write() to get the child frame script in there, without
|
||||
// actually navigating anywhere.
|
||||
// We need to absolutize the URL to since about:blank doesn't have a base URL.
|
||||
const scriptURL = (new URL("./resources/child-frame-script.mjs", import.meta.url)).href;
|
||||
iframe.contentDocument.write(`<script type="module" src="${scriptURL}"></scr` + `ipt>`);
|
||||
iframe.contentDocument.close();
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
// Note that since this code runs during the same event loop turn as the
|
||||
// contentDocument.write() above, we know that the load/error events will
|
||||
// not have been fired at this time. (The spec guarantees they are fired
|
||||
// from queued tasks.)
|
||||
const script = iframe.contentDocument.querySelector("script");
|
||||
script.onload = resolve;
|
||||
script.onerror = () => reject(
|
||||
new Error("Could not load the child frame script into the about:blank page")
|
||||
);
|
||||
});
|
||||
|
||||
await setBothDocumentDomains(iframe.contentWindow);
|
||||
}
|
||||
</script>
|
|
@ -0,0 +1 @@
|
|||
Origin-Isolation: ?1
|
|
@ -0,0 +1,43 @@
|
|||
import { sendWasmModule } from "./helpers.mjs";
|
||||
|
||||
window.onmessage = async (e) => {
|
||||
// These could come from the parent or siblings.
|
||||
if (e.data.constructor === WebAssembly.Module) {
|
||||
e.source.postMessage("WebAssembly.Module message received", "*");
|
||||
}
|
||||
|
||||
// These only come from the parent.
|
||||
if (e.data.command === "set document.domain") {
|
||||
document.domain = e.data.newDocumentDomain;
|
||||
parent.postMessage("document.domain is set", "*");
|
||||
} else if (e.data.command === "send WASM module") {
|
||||
const destinationFrameWindow = parent.frames[e.data.indexIntoParentFrameOfDestination];
|
||||
const whatHappened = await sendWasmModule(destinationFrameWindow);
|
||||
parent.postMessage(whatHappened, "*");
|
||||
} else if (e.data.command === "access document") {
|
||||
const destinationFrameWindow = parent.frames[e.data.indexIntoParentFrameOfDestination];
|
||||
try {
|
||||
destinationFrameWindow.document;
|
||||
parent.postMessage("accessed document successfully", "*");
|
||||
} catch (e) {
|
||||
parent.postMessage(e.name, "*");
|
||||
}
|
||||
} else if (e.data.command === "access location.href") {
|
||||
const destinationFrameWindow = parent.frames[e.data.indexIntoParentFrameOfDestination];
|
||||
try {
|
||||
destinationFrameWindow.location.href;
|
||||
parent.postMessage("accessed location.href successfully", "*");
|
||||
} catch (e) {
|
||||
parent.postMessage(e.name, "*");
|
||||
}
|
||||
}
|
||||
|
||||
// We could also receive e.data === "WebAssembly.Module message received",
|
||||
// but that's handled by await sendWasmModule() above.
|
||||
};
|
||||
|
||||
window.onmessageerror = e => {
|
||||
e.source.postMessage("messageerror", "*");
|
||||
};
|
||||
|
||||
document.body.textContent = location.href;
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue