mirror of
https://github.com/servo/servo.git
synced 2025-08-03 12:40:06 +01:00
Auto merge of #27977 - servo-wpt-sync:wpt_update_23-12-2020, r=servo-wpt-sync
Sync WPT with upstream (23-12-2020) Automated downstream sync of changes from upstream as of 23-12-2020. [no-wpt-sync] r? @servo-wpt-sync
This commit is contained in:
commit
cbda5c3e3e
94 changed files with 887 additions and 144 deletions
|
@ -0,0 +1,4 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,2 @@
|
|||
[HTMLMediaElement.html]
|
||||
expected: TIMEOUT
|
|
@ -312,18 +312,21 @@
|
|||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,3 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
[select-event.html]
|
||||
[input type password: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[activation-behavior.window.html]
|
||||
[<a> that is not connected should be followed]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -446,3 +446,6 @@
|
|||
[X SNR (-336.53098362261886 dB) is not greater than or equal to 65.737. Got -336.53098362261886.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t-1.1388579153751666e-22\t9.3139332532882690e-1\t9.3139332532882690e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.3139332532882690e-1 at index of 28696.\n\tMax RelError of 1.0000000000000000e+0 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -105134,7 +105134,7 @@
|
|||
]
|
||||
],
|
||||
"fixed-table-layout-017.xht": [
|
||||
"805a2ccf2e94962980366e328cc9f9d22f5dc00c",
|
||||
"c66223537bcb44cab0a72f6585dd40310b0762cf",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -105147,7 +105147,7 @@
|
|||
]
|
||||
],
|
||||
"fixed-table-layout-018.xht": [
|
||||
"8dbbac772d9a939fb0f5a4444c08ed81e545a8c9",
|
||||
"d172b6bfc85e52329c409592d6e19e7b7654d432",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -105160,7 +105160,7 @@
|
|||
]
|
||||
],
|
||||
"fixed-table-layout-019.xht": [
|
||||
"131f85a65c1b978ef8877a6391384d508a9d5ea0",
|
||||
"c2f64ea3e0a075c4c351155b82f982baa80350b3",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -105173,7 +105173,7 @@
|
|||
]
|
||||
],
|
||||
"fixed-table-layout-020.xht": [
|
||||
"831103582df2c03b3961db786a886682ec993e96",
|
||||
"34ba94eef8c59ba9c885fb312a7cd14c80c04c86",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -105186,7 +105186,7 @@
|
|||
]
|
||||
],
|
||||
"fixed-table-layout-021.xht": [
|
||||
"644e7d0a78a0d46985b1a4a5091cfaceeb5cbc84",
|
||||
"b105f755c4cbec80563eae2bf4d996e2554c54b1",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -105199,7 +105199,7 @@
|
|||
]
|
||||
],
|
||||
"fixed-table-layout-022.xht": [
|
||||
"255d7cee57d10a4cd90342dc36a34b9953261445",
|
||||
"31801fd405dfc5ce7b953139fd75f55b1db46f7f",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -105212,7 +105212,7 @@
|
|||
]
|
||||
],
|
||||
"fixed-table-layout-023.xht": [
|
||||
"3e26748aa1f7f6287c611ccdb3551d6587f3c4f2",
|
||||
"10049012596b2a091a8a2910b1196540ced77d5b",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -253100,6 +253100,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"circle-005.svg": [
|
||||
"2d1fbf92aa71c69d368748ed5d77e4919471ec6c",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/svg/geometry/reftests/circle-ref.svg",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"ellipse-001.svg": [
|
||||
"e6d394de206f8831136dbe916d55166038ee94c2",
|
||||
[
|
||||
|
@ -261468,6 +261481,12 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"badging": {
|
||||
"META.yml": [
|
||||
"1826b19d02e46a74c0b40795d6786569d3f06ee1",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"battery-status": {
|
||||
"META.yml": [
|
||||
"a069984ddb226b6f07cd5f1408e159634dfec7f4",
|
||||
|
@ -280685,6 +280704,10 @@
|
|||
]
|
||||
},
|
||||
"content-index": {
|
||||
"META.yml": [
|
||||
"9c88d6e2af9aa18e85ceecb90f085c0c6fffe3f0",
|
||||
[]
|
||||
],
|
||||
"resources": {
|
||||
"sw.js": [
|
||||
"e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
|
||||
|
@ -283287,7 +283310,7 @@
|
|||
[]
|
||||
],
|
||||
"cookie-helper.sub.js": [
|
||||
"50dcdfc5ecbb6dd023eef9ce64beab5e277db406",
|
||||
"a0ded48f2a82498f1643a6fd35490d08d3559419",
|
||||
[]
|
||||
],
|
||||
"cookie-test.js": [
|
||||
|
@ -283306,6 +283329,10 @@
|
|||
"a0aa83558dbb8c027de6d436d0a6af82519b3481",
|
||||
[]
|
||||
],
|
||||
"dropSameSiteMultiAttribute.py": [
|
||||
"af4fbeeca46baeb99ec6fb0ea00b1bcf46296367",
|
||||
[]
|
||||
],
|
||||
"dropSameSiteNone.py": [
|
||||
"2d0a837b5d90dbf6ec16a030f2107bdbdb2dc15d",
|
||||
[]
|
||||
|
@ -283354,6 +283381,10 @@
|
|||
"05f096708871c7f12628efcbe8026d371eb812b1",
|
||||
[]
|
||||
],
|
||||
"setSameSiteMultiAttribute.py": [
|
||||
"988f67f0b05321faf8d5b47b779885c00980424f",
|
||||
[]
|
||||
],
|
||||
"setSameSiteNone.py": [
|
||||
"446c75eb44735f328d13982d943fa6b1046e2fe8",
|
||||
[]
|
||||
|
@ -303732,6 +303763,10 @@
|
|||
]
|
||||
},
|
||||
"css-color-adjust": {
|
||||
"META.yml": [
|
||||
"e72f837c95c06189d2945adedaa02351989590ab",
|
||||
[]
|
||||
],
|
||||
"rendering": {
|
||||
"dark-color-scheme": {
|
||||
"color-scheme-change-checkbox-notref.html": [
|
||||
|
@ -315800,7 +315835,7 @@
|
|||
[]
|
||||
],
|
||||
"test-shared.js": [
|
||||
"da3db7470134e3e8c2bebfd2a42b32acf4e72cb6",
|
||||
"7a1da2e649708a0ed7d6d9dbe76322ce67bd266b",
|
||||
[]
|
||||
]
|
||||
}
|
||||
|
@ -319675,6 +319710,12 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"css-size-adjust": {
|
||||
"META.yml": [
|
||||
"399781a705ad5e127ec904734df5ac02adeddf12",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"css-sizing": {
|
||||
"META.yml": [
|
||||
"086e654a8e039f259b5e828d024f808c2e95016b",
|
||||
|
@ -333860,6 +333901,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"custom-state-pseudo-class": {
|
||||
"META.yml": [
|
||||
"ee34d8b900423cdc4de0876f4909c528b835dad6",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"density-size-correction": {
|
||||
"density-corrected-image-svg-aspect-ratio-ref.html": [
|
||||
"fa13136876c88b8e3b32d68c2c0155862151c51b",
|
||||
|
@ -333936,6 +333983,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"deprecation-reporting": {
|
||||
"META.yml": [
|
||||
"57ba808a2e4b1f787988967817391d9ecc397418",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"device-memory": {
|
||||
"META.yml": [
|
||||
"b8dd4761adff3e18b6552d4a8f02abdcd30a3ea6",
|
||||
|
@ -334458,6 +334511,14 @@
|
|||
"497ed770bfb6fb367f2eeb1978225bc4d036055b",
|
||||
[]
|
||||
],
|
||||
"sync-xhr-report-only.html.headers": [
|
||||
"8de201c750893f0f615ccf7fcba1600d1cf5f43f",
|
||||
[]
|
||||
],
|
||||
"sync-xhr-reporting.html.headers": [
|
||||
"ab319fc4ceb1d583a04832d665efb36bc87628a2",
|
||||
[]
|
||||
],
|
||||
"unoptimized-image.jpg": [
|
||||
"599137a55d710fe6b8d3052c05c81915622ea0d0",
|
||||
[]
|
||||
|
@ -352122,7 +352183,7 @@
|
|||
[]
|
||||
],
|
||||
"dom.idl": [
|
||||
"9d371fbe7c5f63cec026c237456d1df9beacc36f",
|
||||
"bd8a17a379311b14236159cc67b4ac9958231d21",
|
||||
[]
|
||||
],
|
||||
"element-timing.idl": [
|
||||
|
@ -352702,7 +352763,17 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"intervention-reporting": {
|
||||
"META.yml": [
|
||||
"b738239a16f9110ac148b4d3c0bcfecb7eca25bd",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"is-input-pending": {
|
||||
"META.yml": [
|
||||
"f0cc50994a4b038c113ca5f481f0a744c3260d8e",
|
||||
[]
|
||||
],
|
||||
"README.md": [
|
||||
"7994b1a4ec36302942d1a6e6809e15505b727ed9",
|
||||
[]
|
||||
|
@ -352751,6 +352822,10 @@
|
|||
}
|
||||
},
|
||||
"js-self-profiling": {
|
||||
"META.yml": [
|
||||
"84e5177d5e5e4c0b689038b80f9baaad5baa7f88",
|
||||
[]
|
||||
],
|
||||
"__dir__.headers": [
|
||||
"35b10bd2ccdbfa99feb96079fafab61346d025ed",
|
||||
[]
|
||||
|
@ -354834,7 +354909,7 @@
|
|||
},
|
||||
"network-error-logging": {
|
||||
"META.yml": [
|
||||
"bc063177d1d14febb1c4bdb86e70cfdce8ca0b5b",
|
||||
"6c1f88eafc4a6de6e046204373647b93509008fa",
|
||||
[]
|
||||
],
|
||||
"README.md": [
|
||||
|
@ -355237,6 +355312,10 @@
|
|||
}
|
||||
},
|
||||
"origin-policy": {
|
||||
"META.yml": [
|
||||
"9efb2a7d6718d1c98161329470238a165a004824",
|
||||
[]
|
||||
],
|
||||
"bad-server": {
|
||||
"resources": {
|
||||
"subframe-with-bad-header.py": [
|
||||
|
@ -355390,6 +355469,12 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"page-lifecycle": {
|
||||
"META.yml": [
|
||||
"8036af19bb9df20e30872a6c954ca4f23dbe9c8c",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"page-visibility": {
|
||||
"META.yml": [
|
||||
"9b9aea8e8b11bf98dd23c8e161e3a7d701da2aba",
|
||||
|
@ -355978,6 +356063,18 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"permissions-request": {
|
||||
"META.yml": [
|
||||
"b30db1cfb67de2ed067196f0a71733424dc03ddf",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"permissions-revoke": {
|
||||
"META.yml": [
|
||||
"16203fe4d74624e1b4ac12c9c8b5a79568dc65a2",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"META.yml": [
|
||||
"8df9be5e5b1961296346b4c98a295acbe0fd97c0",
|
||||
|
@ -359048,6 +359145,12 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"savedata": {
|
||||
"META.yml": [
|
||||
"883c3fccf4da9f0fd7fd0bf7391ff86959006561",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"screen-capture": {
|
||||
"META.yml": [
|
||||
"47882d3275f1cc928555045b2def8fc90f6bcdb0",
|
||||
|
@ -359279,6 +359382,10 @@
|
|||
]
|
||||
},
|
||||
"serial": {
|
||||
"META.yml": [
|
||||
"64938c92982f45c7ef5ad5e6262e1401087c4423",
|
||||
[]
|
||||
],
|
||||
"resources": {
|
||||
"automation.js": [
|
||||
"98f67fb6282ceb866b63a3eb9bfa19d0dc0f1b2d",
|
||||
|
@ -364041,7 +364148,7 @@
|
|||
[]
|
||||
],
|
||||
"serve.py": [
|
||||
"fe0d34b371d2244c1afece8d002d83d7a2b5fb9c",
|
||||
"0a5f16ef57e4740138f14f2e5c1a5fb797af915a",
|
||||
[]
|
||||
],
|
||||
"test_functional.py": [
|
||||
|
@ -371570,7 +371677,7 @@
|
|||
[]
|
||||
],
|
||||
"mpcontext.py": [
|
||||
"2a84e188d39f1300046d9ab07992d679ebab9003",
|
||||
"daade1054cf41689981a50b7ec5d944be1681424",
|
||||
[]
|
||||
],
|
||||
"print_reftest_runner.html": [
|
||||
|
@ -372090,7 +372197,7 @@
|
|||
[]
|
||||
],
|
||||
"test_stash.py": [
|
||||
"f688ac6016c0a0d41b9bf85bb2b9c2ed68f2ad07",
|
||||
"8ca3944cdb0c23ac497f3d514f5869b4c02fce6f",
|
||||
[]
|
||||
]
|
||||
},
|
||||
|
@ -372206,7 +372313,7 @@
|
|||
},
|
||||
"trusted-types": {
|
||||
"META.yml": [
|
||||
"d0743949b6a122d8bd0adf7b1ed0181f0c51429d",
|
||||
"8cc6a43aa12617ff8738ce571814f954454b6666",
|
||||
[]
|
||||
],
|
||||
"default-policy-report-only.tentative.html.headers": [
|
||||
|
@ -372312,6 +372419,12 @@
|
|||
[]
|
||||
]
|
||||
},
|
||||
"ua-client-hints": {
|
||||
"META.yml": [
|
||||
"c994748e0f27bcc75019ad7a20816ee138d15f91",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"uievents": {
|
||||
"META.yml": [
|
||||
"2f1ec58efec10e0dd6374aac05cb926c8cffa3f1",
|
||||
|
@ -373360,6 +373473,12 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"web-otp": {
|
||||
"META.yml": [
|
||||
"63f87544a3d98543a2a42394cbea0900a33b0b70",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"web-share": {
|
||||
"META.yml": [
|
||||
"d2eccca6f424e93cc463fafc5a3b16e5a7ecc565",
|
||||
|
@ -374342,6 +374461,12 @@
|
|||
[]
|
||||
]
|
||||
},
|
||||
"webhid": {
|
||||
"META.yml": [
|
||||
"d32b9264cb1b0a8522ce933294ace81fb71e0239",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"webmessaging": {
|
||||
"META.yml": [
|
||||
"95d5071171b5a20cc14a414c97c9eae2f525f43f",
|
||||
|
@ -374575,6 +374700,10 @@
|
|||
]
|
||||
},
|
||||
"webrtc-insertable-streams": {
|
||||
"META.yml": [
|
||||
"63fc4fc6954e144be205817b3169d277bf88a763",
|
||||
[]
|
||||
],
|
||||
"RTCPeerConnection-insertable-streams.js": [
|
||||
"87f4394b0b5e42be0ef00f78506eded669010b9f",
|
||||
[]
|
||||
|
@ -374594,6 +374723,12 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"webrtc-priority": {
|
||||
"META.yml": [
|
||||
"a422e814479f03528f90953e574b5017578879d1",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"webrtc-stats": {
|
||||
"META.yml": [
|
||||
"10bcf856eb9258e0845f2fdcb6e08c43ebcdf78a",
|
||||
|
@ -374604,6 +374739,12 @@
|
|||
[]
|
||||
]
|
||||
},
|
||||
"webrtc-svc": {
|
||||
"META.yml": [
|
||||
"17d93c51a9f195f5093882b1934c79f0a0635554",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"websockets": {
|
||||
"META.yml": [
|
||||
"14e23e03a854f4d83caa345d45c5b43f1a68bee3",
|
||||
|
@ -374895,6 +375036,10 @@
|
|||
}
|
||||
},
|
||||
"webtransport": {
|
||||
"META.yml": [
|
||||
"8507bee4ad26006b3542e213c600a59b5b456813",
|
||||
[]
|
||||
],
|
||||
"quic": {
|
||||
"handlers": {
|
||||
"README.md": [
|
||||
|
@ -376925,12 +377070,42 @@
|
|||
"13c5d7b595c62394e4593bd0dca142bcd7a21068",
|
||||
[]
|
||||
],
|
||||
"anchors": {
|
||||
"META.yml": [
|
||||
"0b7f740ac531002086e79b7f57647c62fd5db220",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"ar-module": {
|
||||
"META.yml": [
|
||||
"47e5ea9cd4cd595de3b799f034977f3e336aa565",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"dom-overlay": {
|
||||
"META.yml": [
|
||||
"be2b6e613a1457ca3c14dc854005353636ea23af",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"gamepads-module": {
|
||||
"META.yml": [
|
||||
"a6751571a701f681bef89e09350cbd7a11c90d2f",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"hand-input": {
|
||||
"META.yml": [
|
||||
"caa72f8632b5987ecd245b249c97c81d853c8e6b",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"hit-test": {
|
||||
"META.yml": [
|
||||
"e3f94f05a1ffc60dde730e76faaba8bbb1aae1b1",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"layers": {
|
||||
"META.yml": [
|
||||
"117c1adf021812164c4941a8321c9fc0661f1b67",
|
||||
|
@ -402266,6 +402441,21 @@
|
|||
}
|
||||
]
|
||||
],
|
||||
"multiple-samesite-attributes.https.html": [
|
||||
"312fa2a2cc9adeb251a9dbc061cbf150ae3e2c45",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
],
|
||||
[
|
||||
"cookies/samesite/multiple-samesite-attributes.https.html?legacy-samesite",
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"sandbox-iframe-nested.https.html": [
|
||||
"310f86a44687d5b715106c382afcc246808f5fc7",
|
||||
[
|
||||
|
@ -430704,6 +430894,20 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"sync-xhr-report-only.html": [
|
||||
"a68cf713eebe2fc9d4f4fed04e33a485bfaf6718",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"sync-xhr-reporting.html": [
|
||||
"3bcb63459d5987ed7f2add3382c17d9198ac36ad",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"unsized-media-reporting-tentative.html": [
|
||||
"47a36436464e031e18f710330106694b7fa0c182",
|
||||
[
|
||||
|
@ -488487,7 +488691,7 @@
|
|||
]
|
||||
],
|
||||
"select-event.html": [
|
||||
"af49024aa2bdfaa45f8eb200fad201d915f831a2",
|
||||
"09626a5a5cef0acf4b92bdfcbeece88b6d1693be",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
[matchMedia-display-none-iframe.html]
|
||||
expected: ERROR
|
|
@ -0,0 +1,2 @@
|
|||
[HTMLMediaElement.html]
|
||||
expected: TIMEOUT
|
|
@ -312,18 +312,21 @@
|
|||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
[<iframe>: combined response Content-Type: */* text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,6 +53,3 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit-3.html]
|
||||
[<button> should have the same double-submit protection as <input type=submit>]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
[select-event.html]
|
||||
[input type password: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionEnd a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: setSelectionRange() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: select() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type tel: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionEnd out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: selectionStart out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[textarea: setSelectionRange out of range a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type text: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type url: setRangeText() a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type password: selectionDirection a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
||||
[input type search: selectionStart a second time (must not fire select)]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[activation-behavior.window.html]
|
||||
[<a> that is not connected should be followed]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[module-delayed.html]
|
||||
[async document.write in a module]
|
||||
expected: FAIL
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -674,3 +674,6 @@
|
|||
[X SNR (-336.53098362261886 dB) is not greater than or equal to 65.737. Got -336.53098362261886.]
|
||||
expected: FAIL
|
||||
|
||||
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[28696\]\t-1.1388579153751666e-22\t9.3139332532882690e-1\t9.3139332532882690e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\t[28697\]\t7.0477002859115601e-1\t9.0675884485244751e-1\t2.0198881626129150e-1\t2.2275913536212616e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.3139332532882690e-1 at index of 28696.\n\tMax RelError of 1.0000000000000000e+0 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
1
tests/wpt/web-platform-tests/badging/META.yml
Normal file
1
tests/wpt/web-platform-tests/badging/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://w3c.github.io/badging/
|
1
tests/wpt/web-platform-tests/content-index/META.yml
Normal file
1
tests/wpt/web-platform-tests/content-index/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/content-index/spec/
|
|
@ -299,6 +299,28 @@ function resetSameSiteNoneCookies(origin, value) {
|
|||
})
|
||||
}
|
||||
|
||||
// Reset test cookies with multiple SameSite attributes on |origin|.
|
||||
// If |origin| matches `self.origin`, assert (via `document.cookie`)
|
||||
// that they were properly removed.
|
||||
function resetSameSiteMultiAttributeCookies(origin, value) {
|
||||
return credFetch(origin + "/cookies/resources/dropSameSiteMultiAttribute.py")
|
||||
.then(_ => {
|
||||
if (origin == self.origin) {
|
||||
assert_dom_cookie("samesite_unsupported", value, false);
|
||||
assert_dom_cookie("samesite_unsupported_none", value, false);
|
||||
assert_dom_cookie("samesite_unsupported_lax", value, false);
|
||||
assert_dom_cookie("samesite_unsupported_strict", value, false);
|
||||
assert_dom_cookie("samesite_none_unsupported", value, false);
|
||||
assert_dom_cookie("samesite_lax_unsupported", value, false);
|
||||
assert_dom_cookie("samesite_strict_unsupported", value, false);
|
||||
assert_dom_cookie("samesite_lax_none", value, false);
|
||||
}
|
||||
})
|
||||
.then(_ => {
|
||||
return credFetch(origin + "/cookies/resources/setSameSiteMultiAttribute.py?" + value);
|
||||
})
|
||||
}
|
||||
|
||||
//
|
||||
// DOM based cookie manipulation APIs
|
||||
//
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
from cookies.resources.helpers import makeDropCookie, setNoCacheAndCORSHeaders
|
||||
|
||||
def main(request, response):
|
||||
"""Respond to `/cookies/resources/dropSameSiteMultiAttribute.py by dropping
|
||||
the cookies set by setSameSiteMultiAttribute.py"""
|
||||
headers = setNoCacheAndCORSHeaders(request, response)
|
||||
|
||||
# Expire the cookies, and return a JSON-encoded success code.
|
||||
headers.append(makeDropCookie(b"samesite_unsupported", True))
|
||||
headers.append(makeDropCookie(b"samesite_unsupported_none", True))
|
||||
headers.append(makeDropCookie(b"samesite_unsupported_lax", False))
|
||||
headers.append(makeDropCookie(b"samesite_unsupported_strict", False))
|
||||
headers.append(makeDropCookie(b"samesite_none_unsupported", True))
|
||||
headers.append(makeDropCookie(b"samesite_lax_unsupported", True))
|
||||
headers.append(makeDropCookie(b"samesite_strict_unsupported", True))
|
||||
headers.append(makeDropCookie(b"samesite_lax_none", True))
|
||||
return headers, b'{"success": true}'
|
|
@ -0,0 +1,60 @@
|
|||
from cookies.resources.helpers import makeCookieHeader, setNoCacheAndCORSHeaders
|
||||
|
||||
from wptserve.utils import isomorphic_encode
|
||||
|
||||
def main(request, response):
|
||||
"""Respond to `/cookie/set/samesite?{value}` by setting the following combination of cookies:
|
||||
1. `samesite_unsupported={value};SameSite=Unsupported;path=/;Secure`
|
||||
2. `samesite_unsupported_none={value};SameSite=Unsupported;SameSite=None;path=/;Secure`
|
||||
3. `samesite_unsupported_lax={value};SameSite=Unsupported;SameSite=Lax;path=/`
|
||||
4. `samesite_unsupported_strict={value};SameSite=Unsupported;SameSite=Strict;path=/`
|
||||
5. `samesite_none_unsupported={value};SameSite=None;SameSite=Unsupported;path=/;Secure`
|
||||
6. `samesite_lax_unsupported={value};SameSite=Lax;SameSite=Unsupported;path=/;Secure`
|
||||
7. `samesite_strict_unsupported={value};SameSite=Strict;SameSite=Unsupported;path=/;Secure`
|
||||
8. `samesite_lax_none={value};SameSite=Lax;SameSite=None;path=/;Secure`
|
||||
9. `samesite_lax_strict={value};SameSite=Lax;SameSite=Strict;path=/`
|
||||
10. `samesite_strict_lax={value};SameSite=Strict;SameSite=Lax;path=/`
|
||||
Then navigate to a page that will post a message back to the opener with the set cookies"""
|
||||
headers = setNoCacheAndCORSHeaders(request, response)
|
||||
value = isomorphic_encode(request.url_parts.query)
|
||||
|
||||
headers.append((b"Content-Type", b"text/html; charset=utf-8"))
|
||||
# Unknown value; single attribute
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_unsupported", value, {b"SameSite":b"Unsupported", b"path":b"/", b"Secure":b""}))
|
||||
|
||||
# Multiple attributes; first attribute unknown
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_unsupported_none", value, {b"SameSite":b"Unsupported", b"SameSite":b"None", b"path":b"/", b"Secure":b""}))
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_unsupported_lax", value, {b"SameSite":b"Unsupported", b"SameSite":b"Lax", b"path":b"/"}))
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_unsupported_strict", value, {b"SameSite":b"Unsupported", b"SameSite":b"Strict", b"path":b"/"}))
|
||||
|
||||
# Multiple attributes; second attribute unknown
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_none_unsupported", value, {b"SameSite":b"None", b"SameSite":b"Unsupported", b"path":b"/", b"Secure":b""}))
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_lax_unsupported", value, {b"SameSite":b"Lax", b"SameSite":b"Unsupported", b"path":b"/", b"Secure":b""}))
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_strict_unsupported", value, {b"SameSite":b"Strict", b"SameSite":b"Unsupported", b"path":b"/", b"Secure":b""}))
|
||||
|
||||
# Multiple attributes; both known
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_lax_none", value, {b"SameSite":b"Lax", b"SameSite":b"None", b"path":b"/", b"Secure":b""}))
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_lax_strict", value, {b"SameSite":b"Lax", b"SameSite":b"Strict", b"path":b"/"}))
|
||||
headers.append(makeCookieHeader(
|
||||
b"samesite_strict_lax", value, {b"SameSite":b"Strict", b"SameSite":b"Lax", b"path":b"/"}))
|
||||
|
||||
document = b"""
|
||||
<!DOCTYPE html>
|
||||
<script>
|
||||
// A same-site navigation, which should attach all cookies including SameSite ones.
|
||||
// This is necessary because this page may have been reached via a cross-site navigation, so
|
||||
// we might not have access to some SameSite cookies from here.
|
||||
window.location = "../samesite/resources/echo-cookies.html";
|
||||
</script>
|
||||
"""
|
||||
|
||||
return headers, document
|
|
@ -0,0 +1,103 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8"/>
|
||||
<meta name="timeout" content="long">
|
||||
<meta name="variant" content="">
|
||||
<meta name="variant" content="?legacy-samesite">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/cookies/resources/cookie-helper.sub.js"></script>
|
||||
<script>
|
||||
function assert_cookie_present(origin, name, value) {
|
||||
return new Promise((resolve, reject) => {
|
||||
var img = document.createElement("img");
|
||||
img.onload = _ => resolve("'" + name + "=" + value + "' present on " + origin);
|
||||
img.onerror = _ => reject("'" + name + "=" + value + "' not present on " + origin);
|
||||
|
||||
// We need to URL encode the destination path/query if we're redirecting:
|
||||
if (origin.match(/\/redir/))
|
||||
img.src = origin + encodeURIComponent("/cookies/resources/imgIfMatch.py?name=" + name + "&value=" + value);
|
||||
else
|
||||
img.src = origin + "/cookies/resources/imgIfMatch.py?name=" + name + "&value=" + value;
|
||||
});
|
||||
}
|
||||
|
||||
function assert_cookie_absent(origin, name, value) {
|
||||
return new Promise((resolve, reject) => {
|
||||
var img = document.createElement("img");
|
||||
img.onload = _ => reject("'" + name + "=" + value + "' present on " + origin);
|
||||
img.onerror = _ => resolve("'" + name + "=" + value + "' not present on " + origin);
|
||||
|
||||
// We need to URL encode the destination path/query if we're redirecting:
|
||||
if (origin.match(/\/redir/))
|
||||
img.src = origin + encodeURIComponent("/cookies/resources/imgIfMatch.py?name=" + name + "&value=" + value);
|
||||
else
|
||||
img.src = origin + "/cookies/resources/imgIfMatch.py?name=" + name + "&value=" + value;
|
||||
});
|
||||
}
|
||||
|
||||
function create_test(origin, target, expectedStatus, title) {
|
||||
promise_test(t => {
|
||||
var value = "" + Math.random();
|
||||
return resetSameSiteMultiAttributeCookies(origin, value)
|
||||
.then(_ => {
|
||||
var asserts = [
|
||||
assert_cookie_present(target, "samesite_unsupported_none", value),
|
||||
assert_cookie_present(target, "samesite_lax_none", value),
|
||||
expectedStatus == SameSiteStatus.STRICT ?
|
||||
assert_cookie_present(target, "samesite_unsupported_strict", value) :
|
||||
assert_cookie_absent(target, "samesite_unsupported_strict", value),
|
||||
expectedStatus == SameSiteStatus.STRICT ?
|
||||
assert_cookie_present(target, "samesite_lax_strict", value) :
|
||||
assert_cookie_absent(target, "samesite_lax_strict", value),
|
||||
expectedStatus == SameSiteStatus.CROSS_SITE ?
|
||||
assert_cookie_absent(target, "samesite_unsupported_lax", value) :
|
||||
assert_cookie_present(target, "samesite_unsupported_lax", value),
|
||||
expectedStatus == SameSiteStatus.CROSS_SITE ?
|
||||
assert_cookie_absent(target, "samesite_strict_lax", value) :
|
||||
assert_cookie_present(target, "samesite_strict_lax", value)
|
||||
];
|
||||
if (isLegacySameSite()) {
|
||||
// Legacy behavior: unsupported SameSite value acts like SameSite=None.
|
||||
asserts.push(assert_cookie_present(target, "samesite_none_unsupported", value));
|
||||
asserts.push(assert_cookie_present(target, "samesite_lax_unsupported", value));
|
||||
asserts.push(assert_cookie_present(target, "samesite_strict_unsupported", value));
|
||||
asserts.push(assert_cookie_present(target, "samesite_unsupported", value));
|
||||
} else {
|
||||
asserts.push(expectedStatus == SameSiteStatus.CROSS_SITE ?
|
||||
assert_cookie_absent(target, "samesite_none_unsupported", value) :
|
||||
assert_cookie_present(target, "samesite_none_unsupported", value));
|
||||
asserts.push(expectedStatus == SameSiteStatus.CROSS_SITE ?
|
||||
assert_cookie_absent(target, "samesite_lax_unsupported", value) :
|
||||
assert_cookie_present(target, "samesite_lax_unsupported", value));
|
||||
asserts.push(expectedStatus == SameSiteStatus.CROSS_SITE ?
|
||||
assert_cookie_absent(target, "samesite_strict_unsupported", value) :
|
||||
assert_cookie_present(target, "samesite_strict_unsupported", value));
|
||||
asserts.push(expectedStatus == SameSiteStatus.CROSS_SITE ?
|
||||
assert_cookie_absent(target, "samesite_unsupported", value) :
|
||||
assert_cookie_present(target, "samesite_unsupported", value));
|
||||
}
|
||||
return Promise.all(asserts);
|
||||
});
|
||||
}, title);
|
||||
}
|
||||
|
||||
// No redirect:
|
||||
create_test(SECURE_ORIGIN, SECURE_ORIGIN, SameSiteStatus.STRICT, "Same-host images are strictly same-site");
|
||||
create_test(SECURE_SUBDOMAIN_ORIGIN, SECURE_SUBDOMAIN_ORIGIN, SameSiteStatus.STRICT, "Subdomain images are strictly same-site");
|
||||
create_test(SECURE_CROSS_SITE_ORIGIN, SECURE_CROSS_SITE_ORIGIN, SameSiteStatus.CROSS_SITE, "Cross-site images are cross-site");
|
||||
|
||||
// Redirect from {same-host,subdomain,cross-site} to same-host:
|
||||
create_test(SECURE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to same-host images are strictly same-site");
|
||||
create_test(SECURE_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to same-host images are strictly same-site");
|
||||
create_test(SECURE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to same-host images are strictly same-site");
|
||||
|
||||
// Redirect from {same-host,subdomain,cross-site} to same-host:
|
||||
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Same-host redirecting to subdomain images are strictly same-site");
|
||||
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Subdomain redirecting to subdomain images are strictly same-site");
|
||||
create_test(SECURE_SUBDOMAIN_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_SUBDOMAIN_ORIGIN), SameSiteStatus.STRICT, "Cross-site redirecting to subdomain images are strictly same-site");
|
||||
|
||||
// Redirect from {same-host,subdomain,cross-site} to cross-site:
|
||||
create_test(SECURE_CROSS_SITE_ORIGIN, redirectTo(SECURE_ORIGIN, SECURE_CROSS_SITE_ORIGIN), SameSiteStatus.CROSS_SITE, "Same-host redirecting to cross-site images are cross-site");
|
||||
create_test(SECURE_CROSS_SITE_ORIGIN, redirectTo(SECURE_SUBDOMAIN_ORIGIN, SECURE_CROSS_SITE_ORIGIN), SameSiteStatus.CROSS_SITE, "Subdomain redirecting to cross-site images are cross-site");
|
||||
create_test(SECURE_CROSS_SITE_ORIGIN, redirectTo(SECURE_CROSS_SITE_ORIGIN, SECURE_CROSS_SITE_ORIGIN), SameSiteStatus.CROSS_SITE, "Cross-site redirecting to cross-site images are cross-site");
|
||||
</script>
|
|
@ -9,12 +9,13 @@
|
|||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
|
||||
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout" title="17.5.2.1 Fixed table layout" />
|
||||
<link rel="match" href="fixed-table-layout-017-ref.xht" />
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
|
||||
<meta content="" name="flags" />
|
||||
<meta content="A column with a percentage width in a 'table-layout: fixed' table can be calculated and predicted when in 'border-collapse: separate' model." name="assert" />
|
||||
|
||||
<style type="text/css"><![CDATA[
|
||||
table, div {font: 1.25em/1 serif;}
|
||||
table, div {font: 1.25em/1 Ahem;}
|
||||
|
||||
table
|
||||
{
|
||||
|
|
|
@ -9,12 +9,13 @@
|
|||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
|
||||
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout" title="17.5.2.1 Fixed table layout" />
|
||||
<link rel="match" href="fixed-table-layout-017-ref.xht" />
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
|
||||
<meta content="" name="flags" />
|
||||
<meta content="A column with a percentage width in a 'table-layout: fixed' table can be calculated and predicted when in 'border-collapse: separate' model." name="assert" />
|
||||
|
||||
<style type="text/css"><![CDATA[
|
||||
table, div {font: 1.25em/1 serif;}
|
||||
table, div {font: 1.25em/1 Ahem;}
|
||||
|
||||
table
|
||||
{
|
||||
|
|
|
@ -9,12 +9,13 @@
|
|||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
|
||||
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout" title="17.5.2.1 Fixed table layout" />
|
||||
<link rel="match" href="fixed-table-layout-017-ref.xht" />
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
|
||||
<meta content="" name="flags" />
|
||||
<meta content="A column with a percentage width in a 'table-layout: fixed' table can be calculated and predicted when in 'border-collapse: separate' model." name="assert" />
|
||||
|
||||
<style type="text/css"><![CDATA[
|
||||
table, div {font: 1.25em/1 serif;}
|
||||
table, div {font: 1.25em/1 Ahem;}
|
||||
|
||||
table
|
||||
{
|
||||
|
|
|
@ -9,12 +9,13 @@
|
|||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
|
||||
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout" title="17.5.2.1 Fixed table layout" />
|
||||
<link rel="match" href="fixed-table-layout-017-ref.xht" />
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
|
||||
<meta content="" name="flags" />
|
||||
<meta content="A column with a percentage width in a 'table-layout: fixed' table can be calculated, predicted, rendered." name="assert" />
|
||||
|
||||
<style type="text/css"><![CDATA[
|
||||
table, div {font: 1.25em/1 serif;}
|
||||
table, div {font: 1.25em/1 Ahem;}
|
||||
|
||||
table
|
||||
{
|
||||
|
|
|
@ -9,12 +9,13 @@
|
|||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
|
||||
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout" title="17.5.2.1 Fixed table layout" />
|
||||
<link rel="match" href="fixed-table-layout-021-ref.xht" />
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
|
||||
<meta content="" name="flags" />
|
||||
<meta content="A column with a percentage width in a 'table-layout: fixed' table can be calculated, predicted, rendered." name="assert" />
|
||||
|
||||
<style type="text/css"><![CDATA[
|
||||
table, div {font: 1.25em/1 serif;}
|
||||
table, div {font: 1.25em/1 Ahem;}
|
||||
|
||||
table
|
||||
{
|
||||
|
@ -150,19 +151,19 @@
|
|||
<col></col>
|
||||
|
||||
<tr>
|
||||
<td id="first-cell">1st</td>
|
||||
<td id="second-cell">2nd</td>
|
||||
<td id="third-cell">3rd</td>
|
||||
<td id="first-cell">1</td>
|
||||
<td id="second-cell">2</td>
|
||||
<td id="third-cell">3</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<div id="reference1st">ref</div>
|
||||
<div id="reference1st">r</div>
|
||||
|
||||
<div id="reference2nd">ref</div>
|
||||
<div id="reference2nd">r</div>
|
||||
|
||||
<div id="reference3rd">ref</div>
|
||||
<div id="reference3rd">r</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -9,12 +9,13 @@
|
|||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
|
||||
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout" title="17.5.2.1 Fixed table layout" />
|
||||
<link rel="match" href="fixed-table-layout-022-ref.xht" />
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
|
||||
<meta content="" name="flags" />
|
||||
<meta content="A column with a percentage width in a 'table-layout: fixed' table can be calculated, predicted, rendered." name="assert" />
|
||||
|
||||
<style type="text/css"><![CDATA[
|
||||
table, div {font: 1.25em/1 serif;}
|
||||
table, div {font: 1.25em/1 Ahem;}
|
||||
|
||||
table
|
||||
{
|
||||
|
@ -181,21 +182,21 @@
|
|||
<col id="fourth"></col>
|
||||
|
||||
<tr>
|
||||
<td id="first-cell">1st</td>
|
||||
<td id="second-cell">2nd</td>
|
||||
<td id="third-cell">3rd</td>
|
||||
<td id="fourth-cell">4th</td>
|
||||
<td id="first-cell">1</td>
|
||||
<td id="second-cell">2</td>
|
||||
<td id="third-cell">3</td>
|
||||
<td id="fourth-cell">4</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<div id="reference1st">ref</div>
|
||||
<div id="reference1st">r</div>
|
||||
|
||||
<div id="reference2nd">ref</div>
|
||||
<div id="reference2nd">r</div>
|
||||
|
||||
<div id="reference3rd">ref</div>
|
||||
<div id="reference3rd">r</div>
|
||||
|
||||
<div id="reference4th">ref</div>
|
||||
<div id="reference4th">r</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" />
|
||||
<link rel="help" href="http://www.w3.org/TR/CSS21/tables.html#fixed-table-layout" title="17.5.2.1 Fixed table layout" />
|
||||
<link rel="match" href="fixed-table-layout-023-ref.xht" />
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
|
||||
<meta content="" name="flags" />
|
||||
<meta content="A column with a percentage width in a 'table-layout: fixed' table can be calculated, predicted, rendered." name="assert" />
|
||||
|
@ -20,7 +21,7 @@
|
|||
width: 640px;
|
||||
}
|
||||
|
||||
table, div {font: 1.25em/1 serif;}
|
||||
table, div {font: 1.25em/1 Ahem;}
|
||||
|
||||
table
|
||||
{
|
||||
|
@ -187,21 +188,21 @@
|
|||
<col id="fourth"></col>
|
||||
|
||||
<tr>
|
||||
<td id="first-cell">1st</td>
|
||||
<td id="second-cell">2nd</td>
|
||||
<td id="third-cell">3rd</td>
|
||||
<td id="fourth-cell">4th</td>
|
||||
<td id="first-cell">1</td>
|
||||
<td id="second-cell">2</td>
|
||||
<td id="third-cell">3</td>
|
||||
<td id="fourth-cell">4</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<div id="reference1st">ref</div>
|
||||
<div id="reference1st">r</div>
|
||||
|
||||
<div id="reference2nd">ref</div>
|
||||
<div id="reference2nd">r</div>
|
||||
|
||||
<div id="reference3rd">ref</div>
|
||||
<div id="reference3rd">r</div>
|
||||
|
||||
<div id="reference4th">ref</div>
|
||||
<div id="reference4th">r</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
spec: https://drafts.csswg.org/css-color-adjust/
|
|
@ -69,6 +69,27 @@ export const writingModes = [
|
|||
block: "horizontal", inline: "vertical" },
|
||||
];
|
||||
|
||||
// Check if logical properties work well in WebKit non-standard
|
||||
// '-webkit-writing-mode: horizontal-bt' mode
|
||||
if (CSS.supports("-webkit-writing-mode", "horizontal-bt")) {
|
||||
writingModes.push (
|
||||
{
|
||||
styles: [
|
||||
{"-webkit-writing-mode": "horizontal-bt", "direction": "ltr"},
|
||||
],
|
||||
blockStart: "bottom", blockEnd: "top", inlineStart: "left", inlineEnd: "right",
|
||||
over: "top", under: "bottom", lineLeft: "left", lineRight: "right",
|
||||
block: "vertical", inline: "horizontal" },
|
||||
{
|
||||
styles: [
|
||||
{"-webkit-writing-mode": "horizontal-bt", "direction": "rtl"},
|
||||
],
|
||||
blockStart: "bottom", blockEnd: "top", inlineStart: "right", inlineEnd: "left",
|
||||
over: "top", under: "bottom", lineLeft: "left", lineRight: "right",
|
||||
block: "vertical", inline: "horizontal" },
|
||||
)
|
||||
}
|
||||
|
||||
export function testCSSValues(testName, style, expectedValues) {
|
||||
for (const [property, value] of expectedValues) {
|
||||
assert_equals(style.getPropertyValue(property), value, `${testName}, ${property}`);
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
spec: https://drafts.csswg.org/css-size-adjust/
|
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/custom-state-pseudo-class/
|
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/deprecation-reporting/
|
|
@ -0,0 +1,28 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src='/resources/testharness.js'></script>
|
||||
<script src='/resources/testharnessreport.js'></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
const check_report_format = ([reports, observer]) => {
|
||||
const report = reports[0];
|
||||
assert_equals(report.type, "document-policy-violation");
|
||||
assert_equals(report.body.featureId, "sync-xhr");
|
||||
assert_equals(report.body.disposition, "report");
|
||||
};
|
||||
|
||||
promise_test(async t => {
|
||||
const report = new Promise(resolve => {
|
||||
new ReportingObserver((reports, observer) => resolve([reports, observer]),
|
||||
{types: ['document-policy-violation']}).observe();
|
||||
});
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", document.location.href, false);
|
||||
xhr.send();
|
||||
check_report_format(await report);
|
||||
}, "Sync-xhr report only mode");
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1 @@
|
|||
Document-Policy-Report-Only: sync-xhr=?0
|
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<script src='/resources/testharness.js'></script>
|
||||
<script src='/resources/testharnessreport.js'></script>
|
||||
<script src='../resources/document-policy-report-json.js'></script>
|
||||
</head>
|
||||
<body>
|
||||
<script>
|
||||
var t = async_test("Sync-xhr Report Format");
|
||||
|
||||
var check_report_format = (reports, observer) => {
|
||||
let report = reports[0];
|
||||
assert_equals(report.type, "document-policy-violation");
|
||||
assert_equals(report.url, document.location.href);
|
||||
assert_equals(report.body.featureId, "sync-xhr");
|
||||
assert_equals(report.body.sourceFile, document.location.href);
|
||||
assert_equals(typeof report.body.lineNumber, "number");
|
||||
assert_equals(typeof report.body.columnNumber, "number");
|
||||
assert_equals(report.body.disposition, "enforce");
|
||||
check_report_json(report);
|
||||
};
|
||||
|
||||
new ReportingObserver(t.step_func_done(check_report_format),
|
||||
{types: ['document-policy-violation']}).observe();
|
||||
|
||||
t.step_func(() => {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", document.location.href, false);
|
||||
assert_throws_dom('NetworkError',
|
||||
() => xhr.send(),
|
||||
"Synchronous XHR.send should throw an exception when disabled");
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1 @@
|
|||
Document-Policy: sync-xhr=?0
|
|
@ -44,16 +44,36 @@ const actions = [
|
|||
{
|
||||
label: "setRangeText()",
|
||||
action: el => el.setRangeText("newmiddle", el.selectionStart, el.selectionEnd, "select")
|
||||
},
|
||||
{
|
||||
label: "selectionStart out of range",
|
||||
action: el => el.selectionStart = 1000
|
||||
},
|
||||
{
|
||||
label: "selectionEnd out of range",
|
||||
action: el => el.selectionEnd = 1000
|
||||
},
|
||||
{
|
||||
label: "setSelectionRange out of range",
|
||||
action: el => el.setSelectionRange(1000, 2000)
|
||||
}
|
||||
];
|
||||
|
||||
function initialize(el) {
|
||||
el.value = "foobar";
|
||||
el.setSelectionRange(0, 0);
|
||||
return new Promise(requestAnimationFrame);
|
||||
}
|
||||
|
||||
els.forEach((el) => {
|
||||
const elLabel = el.localName === "textarea" ? "textarea" : "input type " + el.type;
|
||||
|
||||
actions.forEach((action) => {
|
||||
// promise_test instead of async_test is important because these need to happen in sequence (to test that events
|
||||
// fire if and only if the selection changes).
|
||||
promise_test(t => {
|
||||
promise_test(async t => {
|
||||
await initialize(el);
|
||||
|
||||
const watcher = new EventWatcher(t, el, "select");
|
||||
|
||||
const promise = watcher.wait_for("select").then(e => {
|
||||
|
@ -92,6 +112,35 @@ els.forEach((el) => {
|
|||
// step_wait properly timeouts before the whole test collapses
|
||||
await t.step_wait(() => !element.onselect, "event didn't fire", 200, 10);
|
||||
}, `${elLabel}: ${action.label} disconnected node`);
|
||||
|
||||
// Intentionally still using promise_test, as assert_unreachable does not
|
||||
// make the test fail inside a listener while t.unreached_func() does.
|
||||
promise_test(async t => {
|
||||
const element = el.cloneNode(true);
|
||||
let fired = false;
|
||||
|
||||
element.onselect = () => fired = true;
|
||||
action.action(element);
|
||||
assert_false(fired, "the select event must not fire synchronously")
|
||||
|
||||
await t.step_wait(() => fired, "event didn't fire", 200, 10);
|
||||
}, `${elLabel}: ${action.label} event queue`);
|
||||
|
||||
promise_test(t => {
|
||||
const element = el.cloneNode(true);
|
||||
assert_equals(element.selectionEnd, 0);
|
||||
|
||||
element.onselect = () => {
|
||||
element.onselect = t.unreached_func("the select event must not fire twice");
|
||||
};
|
||||
|
||||
action.action(element);
|
||||
action.action(element);
|
||||
|
||||
return new Promise(resolve => {
|
||||
t.step_timeout(resolve, 200);
|
||||
});
|
||||
}, `${elLabel}: ${action.label} twice in disconnected node (must fire select only once)`);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -43,7 +43,7 @@ dictionary EventInit {
|
|||
};
|
||||
|
||||
partial interface Window {
|
||||
[Replaceable] readonly attribute any event; // legacy
|
||||
[Replaceable] readonly attribute (Event or undefined) event; // legacy
|
||||
};
|
||||
|
||||
[Exposed=(Window,Worker)]
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/intervention-reporting/
|
1
tests/wpt/web-platform-tests/is-input-pending/META.yml
Normal file
1
tests/wpt/web-platform-tests/is-input-pending/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/is-input-pending/
|
1
tests/wpt/web-platform-tests/js-self-profiling/META.yml
Normal file
1
tests/wpt/web-platform-tests/js-self-profiling/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/js-self-profiling/
|
|
@ -1,2 +1,3 @@
|
|||
spec: https://w3c.github.io/network-error-logging/
|
||||
suggested_reviewers:
|
||||
- dcreager
|
||||
|
|
1
tests/wpt/web-platform-tests/origin-policy/META.yml
Normal file
1
tests/wpt/web-platform-tests/origin-policy/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/origin-policy/
|
1
tests/wpt/web-platform-tests/page-lifecycle/META.yml
Normal file
1
tests/wpt/web-platform-tests/page-lifecycle/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/page-lifecycle/
|
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/permissions-request/
|
1
tests/wpt/web-platform-tests/permissions-revoke/META.yml
Normal file
1
tests/wpt/web-platform-tests/permissions-revoke/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/permissions-revoke/
|
1
tests/wpt/web-platform-tests/savedata/META.yml
Normal file
1
tests/wpt/web-platform-tests/savedata/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/savedata/
|
1
tests/wpt/web-platform-tests/serial/META.yml
Normal file
1
tests/wpt/web-platform-tests/serial/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/serial/
|
|
@ -0,0 +1,24 @@
|
|||
<svg width="340" height="140"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||
<title>Circle coordinates and radius specified by properties</title>
|
||||
<html:link rel="help" href="https://svgwg.org/svg2-draft/geometry.html"/>
|
||||
<html:link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1683652"/>
|
||||
<html:link rel="match" href="circle-ref.svg"/>
|
||||
<style>
|
||||
circle {
|
||||
cx: 204px;
|
||||
cy: 56px;
|
||||
r: 5px;
|
||||
fill: blue;
|
||||
}
|
||||
</style>
|
||||
<circle />
|
||||
<script><![CDATA[
|
||||
let circle = document.querySelector("circle");
|
||||
circle.parentNode.style.display = "none";
|
||||
circle.getTotalLength();
|
||||
circle.parentNode.style.display = "";
|
||||
circle.style.r = "65px";
|
||||
]]></script>
|
||||
</svg>
|
After Width: | Height: | Size: 752 B |
|
@ -6,6 +6,7 @@ import abc
|
|||
import argparse
|
||||
import json
|
||||
import logging
|
||||
import multiprocessing
|
||||
import os
|
||||
import platform
|
||||
import signal
|
||||
|
@ -967,11 +968,19 @@ def get_parser():
|
|||
return parser
|
||||
|
||||
|
||||
class MpContext(object):
|
||||
def __getattr__(self, name):
|
||||
return getattr(multiprocessing, name)
|
||||
|
||||
|
||||
def run(config_cls=ConfigBuilder, route_builder=None, mp_context=None, **kwargs):
|
||||
received_signal = threading.Event()
|
||||
|
||||
if mp_context is None:
|
||||
import multiprocessing as mp_context
|
||||
if hasattr(multiprocessing, "get_context"):
|
||||
mp_context = multiprocessing.get_context()
|
||||
else:
|
||||
mp_context = MpContext()
|
||||
|
||||
with build_config(os.path.join(repo_root, "config.json"),
|
||||
config_cls=config_cls,
|
||||
|
|
|
@ -5,12 +5,17 @@ import six
|
|||
_context = None
|
||||
|
||||
|
||||
class MpContext(object):
|
||||
def __getattr__(self, name):
|
||||
return getattr(multiprocessing, name)
|
||||
|
||||
|
||||
def get_context():
|
||||
global _context
|
||||
|
||||
if six.PY2:
|
||||
return multiprocessing
|
||||
|
||||
if _context is None:
|
||||
_context = multiprocessing.get_context("spawn")
|
||||
if six.PY2:
|
||||
_context = MpContext()
|
||||
else:
|
||||
_context = multiprocessing.get_context("spawn")
|
||||
return _context
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
import multiprocessing
|
||||
import threading
|
||||
import sys
|
||||
|
||||
from multiprocessing.managers import BaseManager
|
||||
|
||||
import pytest
|
||||
from six import PY3
|
||||
|
||||
Stash = pytest.importorskip("wptserve.stash").Stash
|
||||
|
||||
|
@ -63,6 +66,9 @@ class SlowLock(BaseManager):
|
|||
pass
|
||||
|
||||
|
||||
@pytest.mark.xfail(sys.platform == "win32" or
|
||||
PY3 and multiprocessing.get_start_method() == "spawn",
|
||||
reason="https://github.com/web-platform-tests/wpt/issues/16938")
|
||||
def test_delayed_lock(add_cleanup):
|
||||
"""Ensure that delays in proxied Lock retrieval do not interfere with
|
||||
initialization in parallel threads."""
|
||||
|
@ -103,6 +109,9 @@ class SlowDict(BaseManager):
|
|||
pass
|
||||
|
||||
|
||||
@pytest.mark.xfail(sys.platform == "win32" or
|
||||
PY3 and multiprocessing.get_start_method() == "spawn",
|
||||
reason="https://github.com/web-platform-tests/wpt/issues/16938")
|
||||
def test_delayed_dict(add_cleanup):
|
||||
"""Ensure that delays in proxied `dict` retrieval do not interfere with
|
||||
initialization in parallel threads."""
|
||||
|
|
|
@ -1,2 +1,3 @@
|
|||
spec: https://w3c.github.io/webappsec-trusted-types/dist/spec/
|
||||
suggested_reviewers:
|
||||
- mikewest
|
||||
|
|
1
tests/wpt/web-platform-tests/ua-client-hints/META.yml
Normal file
1
tests/wpt/web-platform-tests/ua-client-hints/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/ua-client-hints/
|
1
tests/wpt/web-platform-tests/web-otp/META.yml
Normal file
1
tests/wpt/web-platform-tests/web-otp/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/web-otp/
|
1
tests/wpt/web-platform-tests/webhid/META.yml
Normal file
1
tests/wpt/web-platform-tests/webhid/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://wicg.github.io/webhid/
|
|
@ -0,0 +1 @@
|
|||
spec: https://w3c.github.io/webrtc-insertable-streams/
|
1
tests/wpt/web-platform-tests/webrtc-priority/META.yml
Normal file
1
tests/wpt/web-platform-tests/webrtc-priority/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://w3c.github.io/webrtc-priority/
|
1
tests/wpt/web-platform-tests/webrtc-svc/META.yml
Normal file
1
tests/wpt/web-platform-tests/webrtc-svc/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://w3c.github.io/webrtc-svc/
|
1
tests/wpt/web-platform-tests/webtransport/META.yml
Normal file
1
tests/wpt/web-platform-tests/webtransport/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://w3c.github.io/webtransport/
|
1
tests/wpt/web-platform-tests/webxr/anchors/META.yml
Normal file
1
tests/wpt/web-platform-tests/webxr/anchors/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://immersive-web.github.io/anchors/
|
1
tests/wpt/web-platform-tests/webxr/ar-module/META.yml
Normal file
1
tests/wpt/web-platform-tests/webxr/ar-module/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://immersive-web.github.io/webxr-ar-module/
|
|
@ -0,0 +1 @@
|
|||
spec: https://immersive-web.github.io/webxr-gamepads-module/
|
1
tests/wpt/web-platform-tests/webxr/hand-input/META.yml
Normal file
1
tests/wpt/web-platform-tests/webxr/hand-input/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://immersive-web.github.io/webxr-hand-input/
|
1
tests/wpt/web-platform-tests/webxr/hit-test/META.yml
Normal file
1
tests/wpt/web-platform-tests/webxr/hit-test/META.yml
Normal file
|
@ -0,0 +1 @@
|
|||
spec: https://immersive-web.github.io/hit-test/
|
Loading…
Add table
Add a link
Reference in a new issue