mirror of
https://github.com/servo/servo.git
synced 2025-07-25 16:20:36 +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
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
[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.]
|
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||||
expected: FAIL
|
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]
|
[Hit test intersecting scaled box]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Hit test within unscaled box]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -8,3 +8,6 @@
|
||||||
[throws if handleEvent is thruthy and not callable]
|
[throws if handleEvent is thruthy and not callable]
|
||||||
expected: FAIL
|
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]
|
[test the top of layer]
|
||||||
expected: FAIL
|
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]
|
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
[<iframe>: separate response Content-Type: text/plain */*]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||||
expected: FAIL
|
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]
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
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
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,3 @@
|
||||||
[combined text/javascript ]
|
[combined text/javascript ]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript x/x]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -5,3 +5,9 @@
|
||||||
[HTTP Cache - Partioning by top-level origin 1]
|
[HTTP Cache - Partioning by top-level origin 1]
|
||||||
expected: FAIL
|
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]
|
[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]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[iframe_sandbox_popups_escaping-3.html]
|
[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]
|
[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]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -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]
|
[promise-job-entry.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Fulfillment handler on fulfilled promise]
|
[Fulfillment handler on fulfilled promise]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Rejection handler on pending-then-rejected promise]
|
[Rejection handler on pending-then-rejected promise]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Sanity check: this all works as expected with no promises involved]
|
[Sanity check: this all works as expected with no promises involved]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
@ -15,5 +16,5 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fulfillment handler on pending-then-fulfilled promise]
|
[Fulfillment handler on pending-then-fulfilled promise]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[realtimeanalyser-fft-scaling.html]
|
[realtimeanalyser-fft-scaling.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[017.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, about:blank]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
[018.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, javascript:]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
[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.]
|
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
|
@ -573,6 +573,17 @@
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"replaced-elements": {
|
||||||
|
"attributes-for-embedded-content-and-images": {
|
||||||
|
"input-image-content-crash.html": [
|
||||||
|
"afeba98912d9706c3a2e32562571588a86e614d7",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"the-details-element": {
|
"the-details-element": {
|
||||||
"empty-crash.html": [
|
"empty-crash.html": [
|
||||||
"d409eff4a88c88011e7a8ffc48d1dc7e71462d7a",
|
"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": [
|
"widows-orphans-001.html": [
|
||||||
"8da27f0b6594fc7ddd90bdb160be8f80a9479038",
|
"8da27f0b6594fc7ddd90bdb160be8f80a9479038",
|
||||||
[
|
[
|
||||||
|
@ -158597,7 +158647,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"paint-function-arguments.https.html": [
|
"paint-function-arguments.https.html": [
|
||||||
"fc303bf12839617bc24b0972d23520950ef4cea8",
|
"c613bd159f928e91dac25fba4a83b344843d8ade",
|
||||||
[
|
[
|
||||||
null,
|
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": [
|
"auto-scrollbar-inside-stf-abspos.html": [
|
||||||
|
@ -186388,7 +186451,7 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"view-box-mutation.html": [
|
"view-box-mutation-001.html": [
|
||||||
"d0c85fd59d36e06180bbea07700d6f7bc69e9559",
|
"d0c85fd59d36e06180bbea07700d6f7bc69e9559",
|
||||||
[
|
[
|
||||||
null,
|
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": [
|
"view-box-nested.html": [
|
||||||
"9e7fc17e2a5bc8c33b412d9f3c6e96caba60009a",
|
"9e7fc17e2a5bc8c33b412d9f3c6e96caba60009a",
|
||||||
[
|
[
|
||||||
|
@ -231563,6 +231652,19 @@
|
||||||
],
|
],
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
|
],
|
||||||
|
"forced-colors-mode-28.html": [
|
||||||
|
"4e00c65357f84cd0206baba679469f25f9055c75",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/forced-colors-mode/forced-colors-mode-28-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"html": {
|
"html": {
|
||||||
|
@ -303131,7 +303233,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"paint-function-arguments-ref.html": [
|
"paint-function-arguments-ref.html": [
|
||||||
"6391d17f01ae4f7f2366d21b66a42fb380401916",
|
"764c8f3c78b7a3e4e494726675bedbb3d2d99789",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"paint2d-composite-ref.html": [
|
"paint2d-composite-ref.html": [
|
||||||
|
@ -323095,11 +323197,11 @@
|
||||||
"445b0bdd2ec95a1ac9be08228503475b386cf961",
|
"445b0bdd2ec95a1ac9be08228503475b386cf961",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"split-origin-popup-with-iframe.html": [
|
"split-cache-popup-with-iframe.html": [
|
||||||
"b66ccfb43b4017e5013e5ebd751dc3e54a84bc72",
|
"48b16180cfdfa5c9a1755c17d1a7e8704018f6e8",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"split-origin-popup.html": [
|
"split-cache-popup.html": [
|
||||||
"edb579479414fe980782b54fd39305c12b3de9e7",
|
"edb579479414fe980782b54fd39305c12b3de9e7",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
|
@ -324083,6 +324185,10 @@
|
||||||
"39caee40b52aca059a9a65ffde754788228ff9dc",
|
"39caee40b52aca059a9a65ffde754788228ff9dc",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"forced-colors-mode-28-ref.html": [
|
||||||
|
"9792073004b07893281ec6e4d96f52fb0e3939a1",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"resources": {
|
"resources": {
|
||||||
"float-image.jpg": [
|
"float-image.jpg": [
|
||||||
"ab06d5f94d16e22bb08fad79d6fef662b2a7de5a",
|
"ab06d5f94d16e22bb08fad79d6fef662b2a7de5a",
|
||||||
|
@ -333499,6 +333605,10 @@
|
||||||
"8b16672d6b7b501e9db773666ad0f444af33e5ac",
|
"8b16672d6b7b501e9db773666ad0f444af33e5ac",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"jsurl-form-submit-iframe.html": [
|
||||||
|
"00a1eefd0fcecce532ed6b05120129259ffbc8e1",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"location.html": [
|
"location.html": [
|
||||||
"6724189eff51c3e4d05fa6fb2ee82d58b4032482",
|
"6724189eff51c3e4d05fa6fb2ee82d58b4032482",
|
||||||
[]
|
[]
|
||||||
|
@ -334491,38 +334601,6 @@
|
||||||
"e6f5746eb743a338ad6fbd401715fed368e4cf74",
|
"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": [
|
"nested-missing-export.js": [
|
||||||
"3801ae847afca704cfac9d99428c96851296b8cb",
|
"3801ae847afca704cfac9d99428c96851296b8cb",
|
||||||
[]
|
[]
|
||||||
|
@ -337188,7 +337266,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"webauthn.idl": [
|
"webauthn.idl": [
|
||||||
"70f250286cdcc0f6b66393e88206710891a9d651",
|
"5627180867581a2ef5940bd06c828a5f6157daf2",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"webdriver.idl": [
|
"webdriver.idl": [
|
||||||
|
@ -339385,6 +339463,10 @@
|
||||||
"b028fcd9a36ff71b0eacd0363121a1fe2774f384",
|
"b028fcd9a36ff71b0eacd0363121a1fe2774f384",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"about-blank.https.sub.html.headers": [
|
||||||
|
"ea3f6b335c7620acf59f546fd48484bf624ccb38",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"going-back.sub.https.html.headers": [
|
"going-back.sub.https.html.headers": [
|
||||||
"ea3f6b335c7620acf59f546fd48484bf624ccb38",
|
"ea3f6b335c7620acf59f546fd48484bf624ccb38",
|
||||||
[]
|
[]
|
||||||
|
@ -339442,12 +339524,16 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"resources": {
|
"resources": {
|
||||||
|
"child-frame-script.mjs": [
|
||||||
|
"038c0f3a848776e10fcf905168788081bb1c233d",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"helpers.mjs": [
|
"helpers.mjs": [
|
||||||
"4b742c2b6e731c6fb97717e6785a8198be482fc6",
|
"8943707778c35e56cb0bf15e01c6a060967a0e5a",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"send-origin-isolation-header.py": [
|
"send-origin-isolation-header.py": [
|
||||||
"b0ba30fcd4939ffff6dfe6fc8959a831187c257e",
|
"67d85620af1e856947c0d7785cf1f224d45ad404",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -342408,7 +342494,7 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"idlharness.js": [
|
"idlharness.js": [
|
||||||
"cb66fcaa98c06d4f9b0b8136649c1f7119fe75b7",
|
"f336df5f6871fbc5a0120107a410ae677ab92ad5",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"idlharness.js.headers": [
|
"idlharness.js.headers": [
|
||||||
|
@ -347668,7 +347754,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"requirements_mypy.txt": [
|
"requirements_mypy.txt": [
|
||||||
"857c7886e18319b342488446563457052c0b6aad",
|
"dc5df8ef9ecef115f24496d0658f53e78dd26691",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"runner": {
|
"runner": {
|
||||||
|
@ -354036,7 +354122,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"testloader.py": [
|
"testloader.py": [
|
||||||
"0340294dcaa9c07d9c58bf609fb4f572d1dd1055",
|
"af1b00725dc43ba6e864bec8f8c837923c8da38d",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"testrunner.py": [
|
"testrunner.py": [
|
||||||
|
@ -355105,7 +355191,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"urltestdata.json": [
|
"urltestdata.json": [
|
||||||
"1ed95583c12f3d1316e29857aa016e3a0e51a7f4",
|
"ded7107ff757d21fbc79939b92d0f709eba82764",
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -360617,83 +360703,83 @@
|
||||||
],
|
],
|
||||||
"resources": {
|
"resources": {
|
||||||
"accept-language.py": [
|
"accept-language.py": [
|
||||||
"dd00f4b2ee73d74cc60de49f8199c4ea69ffe593",
|
"b68cf355038ca9f9f938a5c3b2f5c75ebfd05487",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"accept.py": [
|
"accept.py": [
|
||||||
"a033ebec6467747744a3236ad38886fb9b2dd8e5",
|
"842df80cda00670855062114b6cf063139d035ab",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-allow-lists.py": [
|
"access-control-allow-lists.py": [
|
||||||
"526d365b3111d46ce723e92f737673afaa300977",
|
"32c11a0c39baa465f3214c37e9a63fa35a3a3862",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-allow-with-body.py": [
|
"access-control-allow-with-body.py": [
|
||||||
"7c7f45c69013b90d8db0fdeebe9e14964c0e24fe",
|
"18564e2d44e7f4387487a227cb5e3793d9a4633a",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-auth-basic.py": [
|
"access-control-auth-basic.py": [
|
||||||
"af32aab97cd5ce664a1f1b6fee1b864afc44e351",
|
"d1c5579ce242c67464560ee3e47970c9235dfc1d",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-allow-no-credentials.py": [
|
"access-control-basic-allow-no-credentials.py": [
|
||||||
"12f8660d1fc2636b010a8cd430c028c750f814ba",
|
"1b8bcdb8ae9814fab28449582f5564c7d6dace5d",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-allow-star.py": [
|
"access-control-basic-allow-star.py": [
|
||||||
"4557c06b0e3a5544b3f70c0c80df8c009b423188",
|
"8d4642d098cac3c6385361d97274a14a96de815c",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-allow.py": [
|
"access-control-basic-allow.py": [
|
||||||
"2325925157c1e5e26d36d77acfdc5f6155199f53",
|
"6051bc2cdc4f68e7ea109fa6d9216b40ff866ee7",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-cors-safelisted-request-headers.py": [
|
"access-control-basic-cors-safelisted-request-headers.py": [
|
||||||
"eba0e7d4c5cafc8664c0643b8ad247137374bef2",
|
"46523a905a9f70183d0a5e96cff2d76ad9e6d549",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-denied.py": [
|
"access-control-basic-denied.py": [
|
||||||
"9f8687854598c16a2b893cada9991dca2b02313d",
|
"0d3964cb1157f75bbc59d2fa75c16aa98951a591",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-options-not-supported.py": [
|
"access-control-basic-options-not-supported.py": [
|
||||||
"77b274e957ca87270926ad4622d2c79ec9600fed",
|
"bb3f63e311f64455a789f2a316e28a82aa5257b5",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-preflight-cache-invalidation.py": [
|
"access-control-basic-preflight-cache-invalidation.py": [
|
||||||
"6dc8a2a150793b6244fd5fa711bd73c740d59a1e",
|
"f4f592dac79224f51d130a320278c5c038639239",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-preflight-cache-timeout.py": [
|
"access-control-basic-preflight-cache-timeout.py": [
|
||||||
"a767d8a4a56d36e289f16981edba38054d90adb1",
|
"00c319f082af700d6c5616e489af4f684df6535b",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-preflight-cache.py": [
|
"access-control-basic-preflight-cache.py": [
|
||||||
"56892fb6b12c1c9b2f99c57939806f4a84b729d1",
|
"7a6bb60c01a70ca8efd4b20d1f8fccd47ba4228b",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-put-allow.py": [
|
"access-control-basic-put-allow.py": [
|
||||||
"65f6466f5972d28478687939f6eea9cb428d48c4",
|
"9b347bca4234e5dccbf5f71c3657b1a02d5c7ac6",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-basic-whitelist-response-headers.py": [
|
"access-control-basic-whitelist-response-headers.py": [
|
||||||
"4dac75331976ed83432859bbeaceb2a5a648d481",
|
"346b6b919656b23fb911587d447756711a59231e",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-cookie.py": [
|
"access-control-cookie.py": [
|
||||||
"1e0d41d22eaa88521f1d21c92f658f0e8522b9b1",
|
"8c26475c387a7de7458060f18adeab3b6429361a",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-origin-header.py": [
|
"access-control-origin-header.py": [
|
||||||
"f5128776d2b60c7d83907253c6305bf47ed2117f",
|
"e282fe4425004cd1cc82ebd6488f70bec4f4a95d",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-preflight-denied.py": [
|
"access-control-preflight-denied.py": [
|
||||||
"e8010cc0ef71d8d1db3c4e381df45b56d541026e",
|
"1ec3037f36b88402e5f59b37b3842d19df10fa29",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-preflight-request-header-lowercase.py": [
|
"access-control-preflight-request-header-lowercase.py": [
|
||||||
"d35b89b9f98a669a3946661bd82a51992400c287",
|
"e77fc9a7d2eeaa1dbeb703c760c06c3def42de84",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"access-control-preflight-request-header-sorted.py": [
|
"access-control-preflight-request-header-sorted.py": [
|
||||||
|
@ -360807,23 +360893,23 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"corsenabled.py": [
|
"corsenabled.py": [
|
||||||
"4a3e1270b65f41acea1c6f2df4d3f1ec9b95eca7",
|
"aae19f18f3c9255d002a2d635f22e733f3f1b354",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"delay.py": [
|
"delay.py": [
|
||||||
"8f97db6f4fc990c654e2e26d2e52d7190dd2af7b",
|
"61a0ed268844841ff0e6a80bd1808c61d144d796",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"echo-headers.py": [
|
"echo-headers.py": [
|
||||||
"8f23d3db019e7cc311bb58cae7d6704ca9402121",
|
"1c5bd46709d4d781ff6da86c9ba04a017356853c",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"echo-method.py": [
|
"echo-method.py": [
|
||||||
"ccb46b6b2eb4d4b4c281720e0a16142f048ddbc3",
|
"7899c184b768cfba8c50c9d6814ff0058d594cc8",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"empty-div-utf8-html.py": [
|
"empty-div-utf8-html.py": [
|
||||||
"26d54b9d1496af5fc72a1ba1d2a2ec83c1822f50",
|
"5d4c936590c2086872969d16528e9d0c1314fada",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"folder.txt": [
|
"folder.txt": [
|
||||||
|
@ -360831,11 +360917,11 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"form.py": [
|
"form.py": [
|
||||||
"6b1c49a993bfa25ba6c39303880e8860fb3e1489",
|
"c592943b795596c4ebbd06c6ddfc79ed0fad2ec0",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"gzip.py": [
|
"gzip.py": [
|
||||||
"f17f92e4cc17792d7b558d1cd4e1e1d76350dd27",
|
"17f142c4405f8e121a2468ffc380a9d56ef0822e",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"header-content-length-twice.asis": [
|
"header-content-length-twice.asis": [
|
||||||
|
@ -360847,7 +360933,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"header-user-agent.py": [
|
"header-user-agent.py": [
|
||||||
"4778de40268bd3ca004195fc52fb69af64926c3e",
|
"ac6af13afe0fd6d8d44df51998f84100cf6f3414",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"headers-basic.asis": [
|
"headers-basic.asis": [
|
||||||
|
@ -360871,7 +360957,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"headers.py": [
|
"headers.py": [
|
||||||
"602db35a3cb1e6294a1c8052d84c90a8642d8fda",
|
"00b37c62abc7d7c34ed983f6dadac910bb0ff9f6",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"image.gif": [
|
"image.gif": [
|
||||||
|
@ -360879,7 +360965,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"img-utf8-html.py": [
|
"img-utf8-html.py": [
|
||||||
"085867f9510e48fc926650b3e6fbbe62547afbc6",
|
"3057674cb6036a15b7061d65aa2aa7754bb6f8f7",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"img.jpg": [
|
"img.jpg": [
|
||||||
|
@ -361515,7 +361601,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"url-charset.window.js": [
|
"url-charset.window.js": [
|
||||||
"4eb103db35d27af9bef1954ce71f6c9f54c48e20",
|
"777709b64a50e51b9ba37c5ce240073aa4b1f8ef",
|
||||||
[
|
[
|
||||||
"FileAPI/url/url-charset.window.html",
|
"FileAPI/url/url-charset.window.html",
|
||||||
{}
|
{}
|
||||||
|
@ -387923,13 +388009,6 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"display-with-float.html": [
|
|
||||||
"49f94799d93b58c77289d4ac35cb8b7d3239b4fa",
|
|
||||||
[
|
|
||||||
null,
|
|
||||||
{}
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"inheritance.html": [
|
"inheritance.html": [
|
||||||
"bfd072651cb6ec82cca7d9be5b6768afbc39fca0",
|
"bfd072651cb6ec82cca7d9be5b6768afbc39fca0",
|
||||||
[
|
[
|
||||||
|
@ -389460,6 +389539,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"fontface-load-in-modal-dialog.html": [
|
||||||
|
"8838e05eaf4c3df6d1bc85f782421b15b1e3db76",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"fontfaceset-load-css-wide-keywords.html": [
|
"fontfaceset-load-css-wide-keywords.html": [
|
||||||
"b85b92bd15e387db3dacd93b325f7f7b4d8d80db",
|
"b85b92bd15e387db3dacd93b325f7f7b4d8d80db",
|
||||||
[
|
[
|
||||||
|
@ -395120,6 +395206,20 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"scrollbar-gutter-invalid.html": [
|
||||||
|
"bfddfcc563064e3ae2db13fd87e75852ed1eef4c",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"scrollbar-gutter-valid.html": [
|
||||||
|
"07a5c1acc02c5b7868b13a264334f71a3e2d40e5",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"text-overflow-computed.html": [
|
"text-overflow-computed.html": [
|
||||||
"60add5dd12d6435377ab039c4401be1de256ddc4",
|
"60add5dd12d6435377ab039c4401be1de256ddc4",
|
||||||
[
|
[
|
||||||
|
@ -404840,6 +404940,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"scrollbar-gutter.html": [
|
||||||
|
"5bf8cb07dd8412f1c709031920b5f7b8ef837957",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"shape-image-threshold.html": [
|
"shape-image-threshold.html": [
|
||||||
"d16d892c46ade8814540371539ad977b1b1dcc40",
|
"d16d892c46ade8814540371539ad977b1b1dcc40",
|
||||||
[
|
[
|
||||||
|
@ -431637,7 +431744,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"split-cache.tentative.html": [
|
"split-cache.tentative.html": [
|
||||||
"ca7cf3c2c06ee7bccd815c926d25b7160be31cf7",
|
"4b04c9ff79bf951cce993c6dbcc556dc1e505c41",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -455406,6 +455513,13 @@
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
|
],
|
||||||
|
"textarea-scroll-selection.html": [
|
||||||
|
"c8e252f7da6e3dc66691ce10b69528949105a079",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"sequential-focus-navigation-and-the-tabindex-attribute": {
|
"sequential-focus-navigation-and-the-tabindex-attribute": {
|
||||||
|
@ -455952,13 +456066,6 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"flex-legend-float-abspos.html": [
|
|
||||||
"f6eead471cc076d20839a0e95be01b7742f199fa",
|
|
||||||
[
|
|
||||||
null,
|
|
||||||
{}
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"legend-align-justify-self.html": [
|
"legend-align-justify-self.html": [
|
||||||
"29df29d17778a9d3d592c5e942f093a44f419b3c",
|
"29df29d17778a9d3d592c5e942f093a44f419b3c",
|
||||||
[
|
[
|
||||||
|
@ -461381,6 +461488,13 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"jsurl-form-submit.tentative.html": [
|
||||||
|
"f476308b7d98017282545425ab6c530d22da3b52",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"jsurl-navigation-then-form-submit.html": [
|
"jsurl-navigation-then-form-submit.html": [
|
||||||
"93a4ea6004a49175a195e2a7844daeed26c70687",
|
"93a4ea6004a49175a195e2a7844daeed26c70687",
|
||||||
[
|
[
|
||||||
|
@ -465146,13 +465260,6 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"nested-imports.html": [
|
|
||||||
"23bb595d0ebce1fbe14a3b72ce34fc1efa2720fe",
|
|
||||||
[
|
|
||||||
null,
|
|
||||||
{}
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"nomodule-attribute.html": [
|
"nomodule-attribute.html": [
|
||||||
"656c99b292ac03f401eead1c4798666de61ca91a",
|
"656c99b292ac03f401eead1c4798666de61ca91a",
|
||||||
[
|
[
|
||||||
|
@ -473687,7 +473794,7 @@
|
||||||
},
|
},
|
||||||
"measure-memory": {
|
"measure-memory": {
|
||||||
"detached.tentative.window.js": [
|
"detached.tentative.window.js": [
|
||||||
"87c93160526ec37699c062fea4ab935616b5ee5d",
|
"c6a133cfe456c7c8488ea76d85b903261de206fb",
|
||||||
[
|
[
|
||||||
"measure-memory/detached.tentative.window.html",
|
"measure-memory/detached.tentative.window.html",
|
||||||
{
|
{
|
||||||
|
@ -479372,6 +479479,13 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"origin-isolation": {
|
"origin-isolation": {
|
||||||
|
"about-blank.https.sub.html": [
|
||||||
|
"ec24853a1605678102d7f025a386c82b44d9af9b",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"going-back.sub.https.html": [
|
"going-back.sub.https.html": [
|
||||||
"7e95f19366996ce0c97b87631b10d660d07c2e56",
|
"7e95f19366996ce0c97b87631b10d660d07c2e56",
|
||||||
[
|
[
|
||||||
|
@ -504924,6 +505038,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"animate-stop-currentcolor.html": [
|
||||||
|
"1536035dec58709256e5d09fec22eae999a0a00d",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"animateMotion-fill-freeze.html": [
|
"animateMotion-fill-freeze.html": [
|
||||||
"4e768efb0046972fdb62f9af6545134d97a9495c",
|
"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]
|
[Hit test intersecting scaled box]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Hit test within unscaled box]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -8,3 +8,6 @@
|
||||||
[throws if handleEvent is thruthy and not callable]
|
[throws if handleEvent is thruthy and not callable]
|
||||||
expected: FAIL
|
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]
|
[test the top of layer]
|
||||||
expected: FAIL
|
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 ]
|
[fetch(): separate response Content-Type: text/plain ]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html */*]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*]
|
[<iframe>: separate response Content-Type: text/plain */*]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||||
expected: FAIL
|
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]
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
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
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,3 @@
|
||||||
[combined text/javascript ]
|
[combined text/javascript ]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript x/x]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -5,3 +5,9 @@
|
||||||
[HTTP Cache - Partioning by top-level origin 3]
|
[HTTP Cache - Partioning by top-level origin 3]
|
||||||
expected: FAIL
|
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]
|
[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]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
[iframe_sandbox_popups_escaping-3.html]
|
[iframe_sandbox_popups_escaping-3.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
expected: TIMEOUT
|
|
||||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
[iframe_sandbox_popups_nonescaping-3.html]
|
[iframe_sandbox_popups_nonescaping-3.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: TIMEOUT
|
||||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||||
expected: FAIL
|
expected: NOTRUN
|
||||||
|
|
||||||
|
|
|
@ -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]
|
[promise-job-entry.html]
|
||||||
|
expected: TIMEOUT
|
||||||
[Fulfillment handler on fulfilled promise]
|
[Fulfillment handler on fulfilled promise]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Rejection handler on pending-then-rejected promise]
|
[Rejection handler on pending-then-rejected promise]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Sanity check: this all works as expected with no promises involved]
|
[Sanity check: this all works as expected with no promises involved]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
@ -15,5 +16,5 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Fulfillment handler on pending-then-fulfilled promise]
|
[Fulfillment handler on pending-then-fulfilled promise]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
[realtimeanalyser-fft-scaling.html]
|
[realtimeanalyser-fft-scaling.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
5
tests/wpt/metadata/webmessaging/with-ports/017.html.ini
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
[017.html]
|
||||||
|
expected: TIMEOUT
|
||||||
|
[origin of the script that invoked the method, about:blank]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
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 => {
|
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(
|
const blob = new Blob(
|
||||||
[
|
[
|
||||||
`aaa\u001B$@<textarea>\u001B(B<script>/* xss */<\/script></textarea>bbb`
|
`aaa\u001B$@<textarea>\u001B(B<script>/* xss */<\/script></textarea>bbb`
|
||||||
|
@ -6,7 +9,9 @@ async_test(t => {
|
||||||
{type: 'text/html;charset=utf-8'});
|
{type: 'text/html;charset=utf-8'});
|
||||||
const url = URL.createObjectURL(blob);
|
const url = URL.createObjectURL(blob);
|
||||||
const win = window.open(url);
|
const win = window.open(url);
|
||||||
t.add_cleanup(() => win.close());
|
t.add_cleanup(() => {
|
||||||
|
win.close();
|
||||||
|
});
|
||||||
|
|
||||||
win.onload = t.step_func_done(() => {
|
win.onload = t.step_func_done(() => {
|
||||||
assert_equals(win.document.charset, 'UTF-8');
|
assert_equals(win.document.charset, 'UTF-8');
|
||||||
|
@ -19,7 +24,9 @@ async_test(t => {
|
||||||
{type: 'text/html;charset=utf-8'});
|
{type: 'text/html;charset=utf-8'});
|
||||||
const url = URL.createObjectURL(blob);
|
const url = URL.createObjectURL(blob);
|
||||||
const win = window.open(url);
|
const win = window.open(url);
|
||||||
t.add_cleanup(() => win.close());
|
t.add_cleanup(() => {
|
||||||
|
win.close();
|
||||||
|
});
|
||||||
|
|
||||||
win.onload = t.step_func_done(() => {
|
win.onload = t.step_func_done(() => {
|
||||||
assert_equals(win.document.charset, 'UTF-8');
|
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);
|
context.fillRect(40, 40, width, width);
|
||||||
};
|
};
|
||||||
|
|
||||||
drawCanvas('box-1', 'rgb(50, 100, 150)', '50px');
|
drawCanvas('box-1', 'rgb(50, 100, 150)', '50');
|
||||||
drawCanvas('box-2', 'rgb(150, 100, 50)', '100px');
|
drawCanvas('box-2', 'rgb(150, 100, 50)', '100');
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -36,7 +36,7 @@ registerPaint('box', class {
|
||||||
static get inputArguments() { return ['<color>', '<length>']; }
|
static get inputArguments() { return ['<color>', '<length>']; }
|
||||||
paint(ctx, geom, properties, args) {
|
paint(ctx, geom, properties, args) {
|
||||||
ctx.fillStyle = args[0].toString();
|
ctx.fillStyle = args[0].toString();
|
||||||
let size = args[1].toString();
|
let size = parseInt(args[1].toString());
|
||||||
ctx.fillRect(40, 40, size, size);
|
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.
|
// Create iframe that is same-origin to the opener.
|
||||||
var iframe = document.createElement("iframe");
|
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);
|
document.body.appendChild(iframe);
|
||||||
|
|
||||||
window.addEventListener("message", function listener(event) {
|
window.addEventListener("message", function listener(event) {
|
|
@ -2,7 +2,7 @@
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<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">
|
<meta name="help" href="https://fetch.spec.whatwg.org/#http-cache-partitions">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
@ -15,19 +15,18 @@
|
||||||
const host = get_host_info();
|
const host = get_host_info();
|
||||||
|
|
||||||
// We run this entire test four times, varying the following two booleans:
|
// 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
|
// - load_resource_in_iframe, which controls whether the popup loads the
|
||||||
// resource in an iframe or the mainframe. Note that the iframe is always
|
// resource in an iframe or the top-level frame. Note that the iframe is
|
||||||
// same-origin to the opener.
|
// always same-site to the opener.
|
||||||
function performFullTest(is_same_origin_test, load_resource_in_iframe) {
|
function performFullTest(is_cross_site_test, load_resource_in_iframe, name) {
|
||||||
const POPUP_HTTP_ORIGIN = is_same_origin_test ? host.HTTP_ORIGIN : host.HTTP_NOTSAMESITE_ORIGIN
|
const POPUP_HTTP_ORIGIN = is_cross_site_test ? host.HTTP_NOTSAMESITE_ORIGIN : host.HTTP_ORIGIN
|
||||||
const LOCAL_HTTP_ORIGIN = host.HTTP_ORIGIN
|
const LOCAL_HTTP_ORIGIN = host.HTTP_ORIGIN
|
||||||
|
|
||||||
const popupBaseURL = POPUP_HTTP_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') ;
|
const popupBaseURL = POPUP_HTTP_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') ;
|
||||||
const localBaseURL = LOCAL_HTTP_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') ;
|
const localBaseURL = LOCAL_HTTP_ORIGIN + window.location.pathname.replace(/\/[^\/]*$/, '/') ;
|
||||||
|
|
||||||
var test = {
|
var test = {
|
||||||
name: "HTTP Cache is partitioned by top-frame origin",
|
|
||||||
requests: [
|
requests: [
|
||||||
{
|
{
|
||||||
response_headers: [
|
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
|
// 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.
|
// 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
|
// load_resource_in_iframe does not affect the expectation as, even
|
||||||
// though the iframe (if present) is same-origin, we expect a cache miss
|
// though the iframe (if present) is same-site, we expect a cache miss
|
||||||
// when the popup's mainframe is a different origin.
|
// when the popup's top-level frame is a different site.
|
||||||
expected_response_headers: [
|
expected_response_headers: [
|
||||||
["server-request-count", is_same_origin_test ? "2" : "3"]
|
["server-request-count", is_cross_site_test ? "3" : "2"]
|
||||||
],
|
],
|
||||||
base_url: localBaseURL
|
base_url: localBaseURL
|
||||||
}
|
}
|
||||||
|
@ -69,8 +68,8 @@ function performFullTest(is_same_origin_test, load_resource_in_iframe) {
|
||||||
function popup_fetch() {
|
function popup_fetch() {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
var relativeUrl = load_resource_in_iframe
|
var relativeUrl = load_resource_in_iframe
|
||||||
? "resources/split-origin-popup-with-iframe.html"
|
? "resources/split-cache-popup-with-iframe.html"
|
||||||
: "resources/split-origin-popup.html";
|
: "resources/split-cache-popup.html";
|
||||||
var win = window.open(popupBaseURL + relativeUrl);
|
var win = window.open(popupBaseURL + relativeUrl);
|
||||||
|
|
||||||
// Post a message to initiate the popup's request and give the necessary
|
// 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(
|
||||||
performFullTest(false, true);
|
false /* is_cross_site_test */, false /* load_resource_in_iframe */,
|
||||||
performFullTest(true, false);
|
"HTTP cache is shared between same-site top-level frames");
|
||||||
performFullTest(false, false);
|
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>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</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 {
|
partial dictionary AuthenticationExtensionsClientOutputs {
|
||||||
CredentialPropertiesOutput credProps;
|
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-3'].src,
|
||||||
iframes['same-origin-4'].src,
|
iframes['same-origin-4'].src,
|
||||||
iframes['cross-origin-5'].src,
|
iframes['cross-origin-5'].src,
|
||||||
|
iframes['same-origin-8'].sec,
|
||||||
windows['same-origin-7'].location.href,
|
windows['same-origin-7'].location.href,
|
||||||
windows['same-origin-12'].location.href,
|
windows['same-origin-12'].location.href,
|
||||||
];
|
];
|
||||||
|
@ -89,11 +90,17 @@ promise_test(async testCase => {
|
||||||
// 2) By closing the window:
|
// 2) By closing the window:
|
||||||
windows['cross-origin-9'].close();
|
windows['cross-origin-9'].close();
|
||||||
|
|
||||||
|
await waitForMessage('cross-site-1');
|
||||||
|
await waitForMessage('same-origin-3');
|
||||||
|
await waitForMessage('same-origin-7');
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await performance.measureMemory();
|
const result = await performance.measureMemory();
|
||||||
checkMeasureMemory(result, {
|
checkMeasureMemory(result, {
|
||||||
allowed: allowed.concat([
|
allowed: allowed.concat([
|
||||||
iframes['cross-site-1'].src,
|
iframes['cross-site-1'].src,
|
||||||
|
iframes['same-origin-3'].contentWindow.location.href,
|
||||||
|
windows['same-origin-7'].location.href,
|
||||||
]),
|
]),
|
||||||
required: [
|
required: [
|
||||||
window.location.href,
|
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