Auto merge of #27742 - servo-wpt-sync:wpt_update_07-11-2020, r=servo-wpt-sync

Sync WPT with upstream (07-11-2020)

Automated downstream sync of changes from upstream as of 07-11-2020.
[no-wpt-sync]
r? @servo-wpt-sync
This commit is contained in:
bors-servo 2020-11-07 09:00:21 -05:00 committed by GitHub
commit 534fdd70e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
93 changed files with 2700 additions and 250 deletions

View file

@ -0,0 +1,2 @@
[image-orientation-none-cross-origin-svg.html]
expected: TIMEOUT

View file

@ -0,0 +1,4 @@
[gb18030-decoder.html]
[gb18030 decoder: two bytes 0xFE 0xFF]
expected: FAIL

View file

@ -0,0 +1,652 @@
[gb18030-encoder.html]
[gb18030 encoder: range 159]
expected: FAIL
[gb18030 encoder: range 116]
expected: FAIL
[gb18030 encoder: range 117]
expected: FAIL
[gb18030 encoder: range 114]
expected: FAIL
[gb18030 encoder: range 115]
expected: FAIL
[gb18030 encoder: range 112]
expected: FAIL
[gb18030 encoder: range 113]
expected: FAIL
[gb18030 encoder: range 110]
expected: FAIL
[gb18030 encoder: range 111]
expected: FAIL
[gb18030 encoder: range 118]
expected: FAIL
[gb18030 encoder: range 119]
expected: FAIL
[gb18030 encoder: Euro]
expected: FAIL
[gb18030 encoder: range 50]
expected: FAIL
[gb18030 encoder: range 14]
expected: FAIL
[gb18030 encoder: range 52]
expected: FAIL
[gb18030 encoder: range 53]
expected: FAIL
[gb18030 encoder: range 54]
expected: FAIL
[gb18030 encoder: range 55]
expected: FAIL
[gb18030 encoder: range 56]
expected: FAIL
[gb18030 encoder: range 57]
expected: FAIL
[gb18030 encoder: range 58]
expected: FAIL
[gb18030 encoder: range 59]
expected: FAIL
[gb18030 encoder: range 188]
expected: FAIL
[gb18030 encoder: range 158]
expected: FAIL
[gb18030 encoder: range 105]
expected: FAIL
[gb18030 encoder: range 104]
expected: FAIL
[gb18030 encoder: range 107]
expected: FAIL
[gb18030 encoder: range 106]
expected: FAIL
[gb18030 encoder: range 101]
expected: FAIL
[gb18030 encoder: range 100]
expected: FAIL
[gb18030 encoder: range 103]
expected: FAIL
[gb18030 encoder: range 102]
expected: FAIL
[gb18030 encoder: range 109]
expected: FAIL
[gb18030 encoder: range 108]
expected: FAIL
[gb18030 encoder: range 8]
expected: FAIL
[gb18030 encoder: range 9]
expected: FAIL
[gb18030 encoder: range 6]
expected: FAIL
[gb18030 encoder: range 7]
expected: FAIL
[gb18030 encoder: range 4]
expected: FAIL
[gb18030 encoder: range 5]
expected: FAIL
[gb18030 encoder: range 2]
expected: FAIL
[gb18030 encoder: range 3]
expected: FAIL
[gb18030 encoder: range 0]
expected: FAIL
[gb18030 encoder: range 1]
expected: FAIL
[gb18030 encoder: range 25]
expected: FAIL
[gb18030 encoder: range 24]
expected: FAIL
[gb18030 encoder: range 27]
expected: FAIL
[gb18030 encoder: range 26]
expected: FAIL
[gb18030 encoder: range 21]
expected: FAIL
[gb18030 encoder: range 20]
expected: FAIL
[gb18030 encoder: range 23]
expected: FAIL
[gb18030 encoder: range 22]
expected: FAIL
[gb18030 encoder: range 196]
expected: FAIL
[gb18030 encoder: range 197]
expected: FAIL
[gb18030 encoder: range 194]
expected: FAIL
[gb18030 encoder: range 182]
expected: FAIL
[gb18030 encoder: range 29]
expected: FAIL
[gb18030 encoder: range 28]
expected: FAIL
[gb18030 encoder: range 190]
expected: FAIL
[gb18030 encoder: range 191]
expected: FAIL
[gb18030 encoder: range 205]
expected: FAIL
[gb18030 encoder: range 202]
expected: FAIL
[gb18030 encoder: range 203]
expected: FAIL
[gb18030 encoder: range 200]
expected: FAIL
[gb18030 encoder: range 189]
expected: FAIL
[gb18030 encoder: character]
expected: FAIL
[gb18030 encoder: range 201]
expected: FAIL
[gb18030 encoder: Ranges pointer special case]
expected: FAIL
[gb18030 encoder: range 156]
expected: FAIL
[gb18030 encoder: range 157]
expected: FAIL
[gb18030 encoder: range 36]
expected: FAIL
[gb18030 encoder: range 37]
expected: FAIL
[gb18030 encoder: range 34]
expected: FAIL
[gb18030 encoder: range 35]
expected: FAIL
[gb18030 encoder: range 32]
expected: FAIL
[gb18030 encoder: range 33]
expected: FAIL
[gb18030 encoder: range 30]
expected: FAIL
[gb18030 encoder: range 31]
expected: FAIL
[gb18030 encoder: range 185]
expected: FAIL
[gb18030 encoder: range 184]
expected: FAIL
[gb18030 encoder: range 183]
expected: FAIL
[gb18030 encoder: range 186]
expected: FAIL
[gb18030 encoder: range 181]
expected: FAIL
[gb18030 encoder: range 180]
expected: FAIL
[gb18030 encoder: range 38]
expected: FAIL
[gb18030 encoder: range 39]
expected: FAIL
[gb18030 encoder: range 198]
expected: FAIL
[gb18030 encoder: range 199]
expected: FAIL
[gb18030 encoder: range 83]
expected: FAIL
[gb18030 encoder: range 82]
expected: FAIL
[gb18030 encoder: range 81]
expected: FAIL
[gb18030 encoder: range 80]
expected: FAIL
[gb18030 encoder: range 87]
expected: FAIL
[gb18030 encoder: range 86]
expected: FAIL
[gb18030 encoder: range 85]
expected: FAIL
[gb18030 encoder: range 84]
expected: FAIL
[gb18030 encoder: range 89]
expected: FAIL
[gb18030 encoder: poo]
expected: FAIL
[gb18030 encoder: range 138]
expected: FAIL
[gb18030 encoder: range 139]
expected: FAIL
[gb18030 encoder: range 195]
expected: FAIL
[gb18030 encoder: range 187]
expected: FAIL
[gb18030 encoder: range 130]
expected: FAIL
[gb18030 encoder: range 131]
expected: FAIL
[gb18030 encoder: range 132]
expected: FAIL
[gb18030 encoder: range 128]
expected: FAIL
[gb18030 encoder: range 134]
expected: FAIL
[gb18030 encoder: range 135]
expected: FAIL
[gb18030 encoder: range 136]
expected: FAIL
[gb18030 encoder: legacy ICU special case 1]
expected: FAIL
[gb18030 encoder: legacy ICU special case 2]
expected: FAIL
[gb18030 encoder: range 204]
expected: FAIL
[gb18030 encoder: PUA]
expected: FAIL
[gb18030 encoder: range 18]
expected: FAIL
[gb18030 encoder: range 19]
expected: FAIL
[gb18030 encoder: PUA #3]
expected: FAIL
[gb18030 encoder: PUA #2]
expected: FAIL
[gb18030 encoder: range 16]
expected: FAIL
[gb18030 encoder: range 17]
expected: FAIL
[gb18030 encoder: range 10]
expected: FAIL
[gb18030 encoder: range 11]
expected: FAIL
[gb18030 encoder: range 12]
expected: FAIL
[gb18030 encoder: range 13]
expected: FAIL
[gb18030 encoder: range 94]
expected: FAIL
[gb18030 encoder: range 95]
expected: FAIL
[gb18030 encoder: range 96]
expected: FAIL
[gb18030 encoder: range 97]
expected: FAIL
[gb18030 encoder: range 90]
expected: FAIL
[gb18030 encoder: range 91]
expected: FAIL
[gb18030 encoder: range 92]
expected: FAIL
[gb18030 encoder: range 93]
expected: FAIL
[gb18030 encoder: range 152]
expected: FAIL
[gb18030 encoder: range 153]
expected: FAIL
[gb18030 encoder: range 150]
expected: FAIL
[gb18030 encoder: range 151]
expected: FAIL
[gb18030 encoder: range 98]
expected: FAIL
[gb18030 encoder: range 99]
expected: FAIL
[gb18030 encoder: range 154]
expected: FAIL
[gb18030 encoder: range 155]
expected: FAIL
[gb18030 encoder: range 88]
expected: FAIL
[gb18030 encoder: range 129]
expected: FAIL
[gb18030 encoder: range 51]
expected: FAIL
[gb18030 encoder: range 127]
expected: FAIL
[gb18030 encoder: range 126]
expected: FAIL
[gb18030 encoder: range 125]
expected: FAIL
[gb18030 encoder: range 124]
expected: FAIL
[gb18030 encoder: range 123]
expected: FAIL
[gb18030 encoder: range 122]
expected: FAIL
[gb18030 encoder: range 121]
expected: FAIL
[gb18030 encoder: range 120]
expected: FAIL
[gb18030 encoder: legacy ICU special case 3]
expected: FAIL
[gb18030 encoder: range 149]
expected: FAIL
[gb18030 encoder: range 148]
expected: FAIL
[gb18030 encoder: range 141]
expected: FAIL
[gb18030 encoder: range 140]
expected: FAIL
[gb18030 encoder: range 143]
expected: FAIL
[gb18030 encoder: range 142]
expected: FAIL
[gb18030 encoder: range 145]
expected: FAIL
[gb18030 encoder: range 144]
expected: FAIL
[gb18030 encoder: range 147]
expected: FAIL
[gb18030 encoder: range 146]
expected: FAIL
[gb18030 encoder: range 15]
expected: FAIL
[gb18030 encoder: range 69]
expected: FAIL
[gb18030 encoder: range 68]
expected: FAIL
[gb18030 encoder: range 61]
expected: FAIL
[gb18030 encoder: range 60]
expected: FAIL
[gb18030 encoder: range 63]
expected: FAIL
[gb18030 encoder: range 62]
expected: FAIL
[gb18030 encoder: range 65]
expected: FAIL
[gb18030 encoder: range 64]
expected: FAIL
[gb18030 encoder: range 67]
expected: FAIL
[gb18030 encoder: range 66]
expected: FAIL
[gb18030 encoder: range 133]
expected: FAIL
[gb18030 encoder: range 192]
expected: FAIL
[gb18030 encoder: range 178]
expected: FAIL
[gb18030 encoder: range 179]
expected: FAIL
[gb18030 encoder: range 174]
expected: FAIL
[gb18030 encoder: range 175]
expected: FAIL
[gb18030 encoder: range 176]
expected: FAIL
[gb18030 encoder: range 137]
expected: FAIL
[gb18030 encoder: range 170]
expected: FAIL
[gb18030 encoder: range 171]
expected: FAIL
[gb18030 encoder: range 172]
expected: FAIL
[gb18030 encoder: range 173]
expected: FAIL
[gb18030 encoder: range 177]
expected: FAIL
[gb18030 encoder: range 193]
expected: FAIL
[gb18030 encoder: range 78]
expected: FAIL
[gb18030 encoder: range 79]
expected: FAIL
[gb18030 encoder: range 72]
expected: FAIL
[gb18030 encoder: range 73]
expected: FAIL
[gb18030 encoder: range 70]
expected: FAIL
[gb18030 encoder: range 71]
expected: FAIL
[gb18030 encoder: range 76]
expected: FAIL
[gb18030 encoder: range 77]
expected: FAIL
[gb18030 encoder: range 74]
expected: FAIL
[gb18030 encoder: range 75]
expected: FAIL
[gb18030 encoder: range 206]
expected: FAIL
[gb18030 encoder: range 163]
expected: FAIL
[gb18030 encoder: range 162]
expected: FAIL
[gb18030 encoder: range 161]
expected: FAIL
[gb18030 encoder: range 160]
expected: FAIL
[gb18030 encoder: range 167]
expected: FAIL
[gb18030 encoder: range 166]
expected: FAIL
[gb18030 encoder: range 165]
expected: FAIL
[gb18030 encoder: range 164]
expected: FAIL
[gb18030 encoder: range 169]
expected: FAIL
[gb18030 encoder: range 168]
expected: FAIL
[gb18030 encoder: range 49]
expected: FAIL
[gb18030 encoder: range 48]
expected: FAIL
[gb18030 encoder: range 47]
expected: FAIL
[gb18030 encoder: range 46]
expected: FAIL
[gb18030 encoder: range 45]
expected: FAIL
[gb18030 encoder: range 44]
expected: FAIL
[gb18030 encoder: range 43]
expected: FAIL
[gb18030 encoder: range 42]
expected: FAIL
[gb18030 encoder: range 41]
expected: FAIL
[gb18030 encoder: range 40]
expected: FAIL

View file

@ -0,0 +1,34 @@
[gbk-encoder.html]
[gbk encoder: legacy ICU special case 1]
expected: FAIL
[gbk encoder: legacy ICU special case 3]
expected: FAIL
[gbk encoder: character]
expected: FAIL
[gbk encoder: PUA #2]
expected: FAIL
[gbk encoder: PUA]
expected: FAIL
[gbk encoder: poo]
expected: FAIL
[gbk encoder: legacy ICU special case 2]
expected: FAIL
[gbk encoder: Euro]
expected: FAIL
[gbk encoder: legacy WebKit case 2]
expected: FAIL
[gbk encoder: legacy WebKit case 3]
expected: FAIL
[gbk encoder: legacy WebKit case 1]
expected: FAIL

View file

@ -315,18 +315,18 @@
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
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>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +1,4 @@
[embedded-opener-remove-frame.html]
expected: CRASH
[opener of discarded nested browsing context]
expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.text.drawing.style.textRendering.settings.html]
[Testing basic functionalities of textRendering in Canvas]
expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.text.drawing.style.textRendering.settings.html]
[Testing basic functionalities of textRendering in Canvas]
expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.text.drawing.style.textRendering.settings.worker.html]
[Testing basic functionalities of textRendering in Canvas]
expected: FAIL

View file

@ -171,6 +171,3 @@
[XHTML img usemap="#hash-id"]
expected: FAIL
[HTML (standards) IMG usemap="no-hash-name"]
expected: FAIL

View file

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

View file

@ -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

View file

@ -1,4 +0,0 @@
[form-double-submit-2.html]
[preventDefault should allow onclick submit() to succeed]
expected: FAIL

View file

@ -0,0 +1,4 @@
[form-double-submit.html]
[default submit action should supersede onclick submit()]
expected: FAIL

View file

@ -1,4 +0,0 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -1,5 +1,5 @@
[ignore-opens-during-unload.window.html]
expected: TIMEOUT
expected: CRASH
[document.open should bail out when ignore-opens-during-unload is greater than 0 during visibilitychange event (open(parent) while unloading parent and child)]
expected: TIMEOUT

View file

@ -251,3 +251,9 @@
[X SNR (43.842664034730205 dB) is not greater than or equal to 65.737. Got 43.842664034730205.]
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-5.0056340366103069e-13\t9.3139332532882690e-1\t9.3139332532932750e-1\t1.0000000000005376e+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.3139332532932750e-1 at index of 28696.\n\tMax RelError of 1.0000000000005376e+0 at index of 28696.\n]
expected: FAIL
[X SNR (43.82404088229215 dB) is not greater than or equal to 65.737. Got 43.82404088229215.]
expected: FAIL

View file

@ -1,4 +1,5 @@
[audiocontext-not-fully-active.html]
expected: TIMEOUT
[frame in navigated remote-site frame]
expected: FAIL

View file

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

View file

@ -423,6 +423,13 @@
},
"css-sizing": {
"aspect-ratio": {
"block-aspect-ratio-029-crash.html": [
"f940f6df5f0773b16d9846897d5cdf3c3578b538",
[
null,
{}
]
],
"small-aspect-ratio-crash.html": [
"07712542f179c5e83cc44f4f15130c48e030d8c0",
[
@ -154141,6 +154148,35 @@
}
]
],
"image-orientation-none-cross-origin-svg.html": [
"23e5cbfe9633677b07a0aa4e8dc18a3d0d0161a6",
[
null,
[
[
"/css/css-images/image-orientation/reference/image-orientation-none-cross-origin-svg-ref.html",
"=="
]
],
{
"fuzzy": [
[
null,
[
[
10,
10
],
[
100,
100
]
]
]
]
}
]
],
"image-orientation-none-cross-origin.html": [
"6629f78e5b2923a41e49b4236a4c8b7d17abb2f1",
[
@ -187157,6 +187193,23 @@
{}
]
],
"eol-spaces-bidi-003.html": [
"14f31ec0d85fcbbbae45d155aa40efae20ea977c",
[
null,
[
[
"/css/css-text/white-space/reference/eol-spaces-bidi-003-ref.html",
"=="
],
[
"/css/css-text/white-space/reference/eol-spaces-bidi-alt-003-ref.html",
"=="
]
],
{}
]
],
"full-width-leading-spaces-001.html": [
"c23e4fdbc76e6f4c70cf936aaba2e7f5f51b734e",
[
@ -311807,6 +311860,10 @@
"3e6962184ec3dcb75cd08a440017ed84161fdb4a",
[]
],
"image-orientation-none-cross-origin-svg-ref.html": [
"e34a7087d4cc1d75ce723bb3c15b67f7cb5f58ff",
[]
],
"image-orientation-none-image-document-ref.html": [
"90eaeaa3da839b111098da9e6f9e4754fe05d2b2",
[]
@ -311904,6 +311961,10 @@
"exif-orientation-9-u.jpg": [
"7d41aead39e38d1377ec9b1732ca53b0fbb1906c",
[]
],
"svg-with-image-rotated.svg": [
"e46581663cc74a68fc2d6500189ca86a1363a29f",
[]
]
}
},
@ -319421,6 +319482,14 @@
"30a4ffd303d55f6228b886aa658822975601967a",
[]
],
"eol-spaces-bidi-003-ref.html": [
"0fe8f48c25a107e10a77f18791fb608d5f64e3c0",
[]
],
"eol-spaces-bidi-alt-003-ref.html": [
"6f610aa935f1d9b21f6880e3b81eec78b2f0988e",
[]
],
"full-width-leading-spaces-001-ref.html": [
"2b9cf1c3b27edbe44a1009366e47d245e4cb7a8b",
[]
@ -333192,6 +333261,16 @@
]
}
},
"legacy-mb-schinese": {
"gb18030": {
"resources": {
"ranges.js": [
"5bbd553dc01b538e3559e5ea4dc497d483ae30a7",
[]
]
}
}
},
"legacy-mb-tchinese": {
"big5": {
"big5-decoder.js": [
@ -335112,7 +335191,7 @@
},
"metadata": {
"META.yml": [
"4e7a13a0b7f3befe96f693b988c6fdff93b8805d",
"8d9fc0058ec13f7b14d24586e5225b844f5bc97e",
[]
],
"README.md": [
@ -336411,7 +336490,7 @@
},
"html": {
"META.yml": [
"636b42b68c1046421f743b07a6764a715cabcb64",
"94b925cc0760b29dc6d0ee7c6fb37ec424da833b",
[]
],
"README.md": [
@ -337585,7 +337664,7 @@
[]
],
"open-closer.html": [
"6f43a5188c790577c4a1a03da270317eedba0fb0",
"7575c7c95fcc18ccbb949f9144eb1154a3f64538",
[]
],
"opener-setter.html": [
@ -338969,7 +339048,7 @@
[]
],
"drawing-text-to-the-canvas.yaml": [
"0f8a118ca8d3f68aea6a0a54a2a5d5524790a34d",
"0d7bbfde91df96144a143c028927297e6a254648",
[]
],
"fill-and-stroke-styles.yaml": [
@ -339063,7 +339142,7 @@
[]
],
"text.yaml": [
"9a895bc5185a055dc0aa4a4fa86031181454f641",
"30a0ad1a6fe5ef721ea91820ed95354c66710582",
[]
],
"the-canvas-state.yaml": [
@ -339909,10 +339988,6 @@
}
},
"the-innertext-idl-attribute": {
"META.yml": [
"d6731152017813410e50aade07f44594816c4983",
[]
],
"getter-tests.js": [
"fd32e8d69a37e0c01adb642bcdf403b633428ed2",
[]
@ -344851,7 +344926,7 @@
},
"embedded-content": {
"META.yml": [
"199c4c412fe026fca11ea5dd43b0e7873f7784ae",
"c1dd8dddf9eec3ab3fb58df01c549c251f3a3fdf",
[]
],
"image-maps": {
@ -345502,7 +345577,7 @@
[]
],
"iframe_sandbox_popups_helper-2.html": [
"9c393fc954af906322c26dbe128f1d0914fa5b6f",
"ea28cf53754ab4eed1dada0cf630da6deae450df",
[]
],
"iframe_sandbox_popups_helper-3.html": [
@ -347503,7 +347578,7 @@
},
"selectors": {
"META.yml": [
"546b7791d54103bb76fb6cdcb748e02a850c2030",
"3195b8671c55d4e8f5c7b449b73d4581028d5f40",
[]
],
"pseudo-classes": {
@ -366996,7 +367071,7 @@
[]
],
"browser.py": [
"726d5598f524539bceb131d230b7a02bed36361c",
"86bb19b599370c63058c9ea255ff3c2f354cabfa",
[]
],
"commands.json": [
@ -367162,7 +367237,7 @@
[]
],
"requirements_firefox.txt": [
"8b45703a5596ed0d1f4ae577af31b8afd2f0bc8f",
"5585609e5c3de329db9d97c134ea793287b66d03",
[]
],
"requirements_ie.txt": [
@ -396272,7 +396347,7 @@
]
],
"javascript_src_allowed-href_blank.html": [
"d1c2b38f247a0a11ecff8ead40eff2152545f461",
"007338bc45eb8eb019a71eb138a5465b482f06fa",
[
null,
{}
@ -431114,20 +431189,6 @@
}
]
],
"gb18030-encoder.html": [
"799d69274ef4fb08376aa4be7c16e41f6e03fbe6",
[
null,
{}
]
],
"gbk-encoder.html": [
"a6074f975d34fb6a216bdce4c7f560270512fd20",
[
null,
{}
]
],
"idlharness.any.js": [
"acd100c43b461c85399407087d20a51a57ce8352",
[
@ -436968,6 +437029,40 @@
]
}
},
"legacy-mb-schinese": {
"gb18030": {
"gb18030-decoder.html": [
"b8fb0d04c44ee7e1f868ec5fe1faf59fd2c3b556",
[
null,
{}
]
],
"gb18030-encoder.html": [
"a6570c8d2b800135f8a2ef990534d9f208cabfae",
[
null,
{}
]
]
},
"gbk": {
"gbk-decoder.html": [
"8c45683180070ef80e6797a4d61fffb32aeaef6e",
[
null,
{}
]
],
"gbk-encoder.html": [
"e43cb73fea72e5446e2678d202b6050b56db706f",
[
null,
{}
]
]
}
},
"legacy-mb-tchinese": {
"big5": {
"big5-decode-big5-hkscs.html": [
@ -453779,10 +453874,12 @@
},
"geolocation-API": {
"PositionOptions.https.html": [
"6aaf56d633e4b5ce71b9a938fb87f2718ed4b823",
"828224d50de5ad2c21a3e0b343dbfa6affb9e602",
[
null,
{}
{
"testdriver": true
}
]
],
"clearWatch_TypeError.html": [
@ -456639,7 +456736,7 @@
]
],
"choose-_blank-003.html": [
"6912300ab2d969a3a75fb1d475690ccbb010c0d6",
"5571344c85a5d4e4816bfcf1a15668bc7d530ffa",
[
null,
{}
@ -458249,6 +458346,13 @@
{}
]
],
"2d.text.drawing.style.textRendering.settings.html": [
"f0b5ff4226d0fa905a695b0a03140c7434261182",
[
null,
{}
]
],
"2d.text.measure.actualBoundingBox.html": [
"44cff25d1afa82ba5f960784548b81e50025e787",
[
@ -472718,6 +472822,20 @@
{}
]
],
"2d.text.drawing.style.textRendering.settings.html": [
"8b744526dbf3e9ddff4126cb72fe6af7a09a5b3c",
[
null,
{}
]
],
"2d.text.drawing.style.textRendering.settings.worker.js": [
"059edbeb4e8a061c830a1c24c09b51c24d73d330",
[
"html/canvas/offscreen/text/2d.text.drawing.style.textRendering.settings.worker.html",
{}
]
],
"2d.text.font.default.html": [
"0d355729a6bdc843915e4324f07ae26c11aca4f9",
[
@ -520230,7 +520348,7 @@
]
],
"at-scroll-timeline-start-end.html": [
"c53de5d865f37c49340e3ca85d3dc31a8ab6e48d",
"e881d0d676bc3d1612af0677e3d1206e750cab81",
[
null,
{}
@ -530781,6 +530899,13 @@
{}
]
],
"animatetransform-type-missing-value-default.html": [
"aceca27f4cc725e3354f8870addb5d8697af58ab",
[
null,
{}
]
],
"end-element-on-inactive-element.svg": [
"34be9b9781f707d488e284c3285b82009557366b",
[
@ -533552,14 +533677,21 @@
]
],
"eval-csp-tt-default-policy.tentative.html": [
"2ec1422d57bd31ae4a40746ed518dc9ae038f48a",
"9afe571199c9b48003dbe89fc445e9de32e85222",
[
null,
{}
]
],
"eval-csp-tt-no-default-policy.tentative.html": [
"983dd5601a4da3444c311e552b824463307eae96",
"8c4aba11ecbbc54f3b6b8e9a1d9787b3461a7f45",
[
null,
{}
]
],
"eval-function-constructor.tentative.html": [
"a20bc4a78db14daa627159e1c96a48c744382903",
[
null,
{}
@ -533580,7 +533712,7 @@
]
],
"eval-with-permissive-csp.tentative.html": [
"51bb0aaa188c48990c49e085c48842336c34fc6d",
"8910d4e7ef0fa983e61308bc149eaad971c183a5",
[
null,
{}
@ -543546,7 +543678,7 @@
]
],
"createcredential-large-blob-not-supported.https.html": [
"1a320d54d156baf0cd55f32c3154331f6ce958e3",
"167a65b92262759e652009e51c5f8ad6f2e4ac1e",
[
null,
{
@ -543556,7 +543688,7 @@
]
],
"createcredential-large-blob-supported.https.html": [
"46623de77476141fb4adf72e3b63ddc62d34489b",
"5c07745a49dfeb1084b50bdeb6adf6463f74a348",
[
null,
{
@ -543626,7 +543758,7 @@
]
],
"getcredential-large-blob-not-supported.https.html": [
"26e91d8f4f632fe9f396e9758421f3131b4e8633",
"97cea30f27f491bf0fd1aec6fe6e4734d48e591a",
[
null,
{
@ -543636,7 +543768,7 @@
]
],
"getcredential-large-blob-supported.https.html": [
"02aea568173a317e76ce0516f06d2a5d675a7252",
"c7cc0dfc4ae7c6d20385f0ba71798f6209c8676d",
[
null,
{

View file

@ -0,0 +1,2 @@
[image-orientation-none-cross-origin-svg.html]
expected: TIMEOUT

View file

@ -1,18 +0,0 @@
[gb18030-encoder.html]
type: testharness
bug: https://github.com/servo/servo/issues/13238
[gb18030 encoder: Euro]
expected: FAIL
[gb18030 encoder: character]
expected: FAIL
[gb18030 encoder: PUA]
expected: FAIL
[gb18030 encoder: PUA #2]
expected: FAIL
[gb18030 encoder: poo]
expected: FAIL

View file

@ -1,18 +0,0 @@
[gbk-encoder.html]
type: testharness
bug: https://github.com/servo/servo/issues/13238
[gbk encoder: Euro]
expected: FAIL
[gbk encoder: character]
expected: FAIL
[gbk encoder: PUA]
expected: FAIL
[gbk encoder: PUA #2]
expected: FAIL
[gbk encoder: poo]
expected: FAIL

View file

@ -0,0 +1,4 @@
[gb18030-decoder.html]
[gb18030 decoder: two bytes 0xFE 0xFF]
expected: FAIL

View file

@ -0,0 +1,652 @@
[gb18030-encoder.html]
[gb18030 encoder: range 159]
expected: FAIL
[gb18030 encoder: range 116]
expected: FAIL
[gb18030 encoder: range 117]
expected: FAIL
[gb18030 encoder: range 114]
expected: FAIL
[gb18030 encoder: range 115]
expected: FAIL
[gb18030 encoder: range 112]
expected: FAIL
[gb18030 encoder: range 113]
expected: FAIL
[gb18030 encoder: range 110]
expected: FAIL
[gb18030 encoder: range 111]
expected: FAIL
[gb18030 encoder: range 118]
expected: FAIL
[gb18030 encoder: range 119]
expected: FAIL
[gb18030 encoder: Euro]
expected: FAIL
[gb18030 encoder: range 50]
expected: FAIL
[gb18030 encoder: range 14]
expected: FAIL
[gb18030 encoder: range 52]
expected: FAIL
[gb18030 encoder: range 53]
expected: FAIL
[gb18030 encoder: range 54]
expected: FAIL
[gb18030 encoder: range 55]
expected: FAIL
[gb18030 encoder: range 56]
expected: FAIL
[gb18030 encoder: range 57]
expected: FAIL
[gb18030 encoder: range 58]
expected: FAIL
[gb18030 encoder: range 59]
expected: FAIL
[gb18030 encoder: range 188]
expected: FAIL
[gb18030 encoder: range 158]
expected: FAIL
[gb18030 encoder: range 105]
expected: FAIL
[gb18030 encoder: range 104]
expected: FAIL
[gb18030 encoder: range 107]
expected: FAIL
[gb18030 encoder: range 106]
expected: FAIL
[gb18030 encoder: range 101]
expected: FAIL
[gb18030 encoder: range 100]
expected: FAIL
[gb18030 encoder: range 103]
expected: FAIL
[gb18030 encoder: range 102]
expected: FAIL
[gb18030 encoder: range 109]
expected: FAIL
[gb18030 encoder: range 108]
expected: FAIL
[gb18030 encoder: range 8]
expected: FAIL
[gb18030 encoder: range 9]
expected: FAIL
[gb18030 encoder: range 6]
expected: FAIL
[gb18030 encoder: range 7]
expected: FAIL
[gb18030 encoder: range 4]
expected: FAIL
[gb18030 encoder: range 5]
expected: FAIL
[gb18030 encoder: range 2]
expected: FAIL
[gb18030 encoder: range 3]
expected: FAIL
[gb18030 encoder: range 0]
expected: FAIL
[gb18030 encoder: range 1]
expected: FAIL
[gb18030 encoder: range 25]
expected: FAIL
[gb18030 encoder: range 24]
expected: FAIL
[gb18030 encoder: range 27]
expected: FAIL
[gb18030 encoder: range 26]
expected: FAIL
[gb18030 encoder: range 21]
expected: FAIL
[gb18030 encoder: range 20]
expected: FAIL
[gb18030 encoder: range 23]
expected: FAIL
[gb18030 encoder: range 22]
expected: FAIL
[gb18030 encoder: range 196]
expected: FAIL
[gb18030 encoder: range 197]
expected: FAIL
[gb18030 encoder: range 194]
expected: FAIL
[gb18030 encoder: range 182]
expected: FAIL
[gb18030 encoder: range 29]
expected: FAIL
[gb18030 encoder: range 28]
expected: FAIL
[gb18030 encoder: range 190]
expected: FAIL
[gb18030 encoder: range 191]
expected: FAIL
[gb18030 encoder: range 205]
expected: FAIL
[gb18030 encoder: range 202]
expected: FAIL
[gb18030 encoder: range 203]
expected: FAIL
[gb18030 encoder: range 200]
expected: FAIL
[gb18030 encoder: range 189]
expected: FAIL
[gb18030 encoder: character]
expected: FAIL
[gb18030 encoder: range 201]
expected: FAIL
[gb18030 encoder: Ranges pointer special case]
expected: FAIL
[gb18030 encoder: range 156]
expected: FAIL
[gb18030 encoder: range 157]
expected: FAIL
[gb18030 encoder: range 36]
expected: FAIL
[gb18030 encoder: range 37]
expected: FAIL
[gb18030 encoder: range 34]
expected: FAIL
[gb18030 encoder: range 35]
expected: FAIL
[gb18030 encoder: range 32]
expected: FAIL
[gb18030 encoder: range 33]
expected: FAIL
[gb18030 encoder: range 30]
expected: FAIL
[gb18030 encoder: range 31]
expected: FAIL
[gb18030 encoder: range 185]
expected: FAIL
[gb18030 encoder: range 184]
expected: FAIL
[gb18030 encoder: range 183]
expected: FAIL
[gb18030 encoder: range 186]
expected: FAIL
[gb18030 encoder: range 181]
expected: FAIL
[gb18030 encoder: range 180]
expected: FAIL
[gb18030 encoder: range 38]
expected: FAIL
[gb18030 encoder: range 39]
expected: FAIL
[gb18030 encoder: range 198]
expected: FAIL
[gb18030 encoder: range 199]
expected: FAIL
[gb18030 encoder: range 83]
expected: FAIL
[gb18030 encoder: range 82]
expected: FAIL
[gb18030 encoder: range 81]
expected: FAIL
[gb18030 encoder: range 80]
expected: FAIL
[gb18030 encoder: range 87]
expected: FAIL
[gb18030 encoder: range 86]
expected: FAIL
[gb18030 encoder: range 85]
expected: FAIL
[gb18030 encoder: range 84]
expected: FAIL
[gb18030 encoder: range 89]
expected: FAIL
[gb18030 encoder: poo]
expected: FAIL
[gb18030 encoder: range 138]
expected: FAIL
[gb18030 encoder: range 139]
expected: FAIL
[gb18030 encoder: range 195]
expected: FAIL
[gb18030 encoder: range 187]
expected: FAIL
[gb18030 encoder: range 130]
expected: FAIL
[gb18030 encoder: range 131]
expected: FAIL
[gb18030 encoder: range 132]
expected: FAIL
[gb18030 encoder: range 128]
expected: FAIL
[gb18030 encoder: range 134]
expected: FAIL
[gb18030 encoder: range 135]
expected: FAIL
[gb18030 encoder: range 136]
expected: FAIL
[gb18030 encoder: legacy ICU special case 1]
expected: FAIL
[gb18030 encoder: legacy ICU special case 2]
expected: FAIL
[gb18030 encoder: range 204]
expected: FAIL
[gb18030 encoder: PUA]
expected: FAIL
[gb18030 encoder: range 18]
expected: FAIL
[gb18030 encoder: range 19]
expected: FAIL
[gb18030 encoder: PUA #3]
expected: FAIL
[gb18030 encoder: PUA #2]
expected: FAIL
[gb18030 encoder: range 16]
expected: FAIL
[gb18030 encoder: range 17]
expected: FAIL
[gb18030 encoder: range 10]
expected: FAIL
[gb18030 encoder: range 11]
expected: FAIL
[gb18030 encoder: range 12]
expected: FAIL
[gb18030 encoder: range 13]
expected: FAIL
[gb18030 encoder: range 94]
expected: FAIL
[gb18030 encoder: range 95]
expected: FAIL
[gb18030 encoder: range 96]
expected: FAIL
[gb18030 encoder: range 97]
expected: FAIL
[gb18030 encoder: range 90]
expected: FAIL
[gb18030 encoder: range 91]
expected: FAIL
[gb18030 encoder: range 92]
expected: FAIL
[gb18030 encoder: range 93]
expected: FAIL
[gb18030 encoder: range 152]
expected: FAIL
[gb18030 encoder: range 153]
expected: FAIL
[gb18030 encoder: range 150]
expected: FAIL
[gb18030 encoder: range 151]
expected: FAIL
[gb18030 encoder: range 98]
expected: FAIL
[gb18030 encoder: range 99]
expected: FAIL
[gb18030 encoder: range 154]
expected: FAIL
[gb18030 encoder: range 155]
expected: FAIL
[gb18030 encoder: range 88]
expected: FAIL
[gb18030 encoder: range 129]
expected: FAIL
[gb18030 encoder: range 51]
expected: FAIL
[gb18030 encoder: range 127]
expected: FAIL
[gb18030 encoder: range 126]
expected: FAIL
[gb18030 encoder: range 125]
expected: FAIL
[gb18030 encoder: range 124]
expected: FAIL
[gb18030 encoder: range 123]
expected: FAIL
[gb18030 encoder: range 122]
expected: FAIL
[gb18030 encoder: range 121]
expected: FAIL
[gb18030 encoder: range 120]
expected: FAIL
[gb18030 encoder: legacy ICU special case 3]
expected: FAIL
[gb18030 encoder: range 149]
expected: FAIL
[gb18030 encoder: range 148]
expected: FAIL
[gb18030 encoder: range 141]
expected: FAIL
[gb18030 encoder: range 140]
expected: FAIL
[gb18030 encoder: range 143]
expected: FAIL
[gb18030 encoder: range 142]
expected: FAIL
[gb18030 encoder: range 145]
expected: FAIL
[gb18030 encoder: range 144]
expected: FAIL
[gb18030 encoder: range 147]
expected: FAIL
[gb18030 encoder: range 146]
expected: FAIL
[gb18030 encoder: range 15]
expected: FAIL
[gb18030 encoder: range 69]
expected: FAIL
[gb18030 encoder: range 68]
expected: FAIL
[gb18030 encoder: range 61]
expected: FAIL
[gb18030 encoder: range 60]
expected: FAIL
[gb18030 encoder: range 63]
expected: FAIL
[gb18030 encoder: range 62]
expected: FAIL
[gb18030 encoder: range 65]
expected: FAIL
[gb18030 encoder: range 64]
expected: FAIL
[gb18030 encoder: range 67]
expected: FAIL
[gb18030 encoder: range 66]
expected: FAIL
[gb18030 encoder: range 133]
expected: FAIL
[gb18030 encoder: range 192]
expected: FAIL
[gb18030 encoder: range 178]
expected: FAIL
[gb18030 encoder: range 179]
expected: FAIL
[gb18030 encoder: range 174]
expected: FAIL
[gb18030 encoder: range 175]
expected: FAIL
[gb18030 encoder: range 176]
expected: FAIL
[gb18030 encoder: range 137]
expected: FAIL
[gb18030 encoder: range 170]
expected: FAIL
[gb18030 encoder: range 171]
expected: FAIL
[gb18030 encoder: range 172]
expected: FAIL
[gb18030 encoder: range 173]
expected: FAIL
[gb18030 encoder: range 177]
expected: FAIL
[gb18030 encoder: range 193]
expected: FAIL
[gb18030 encoder: range 78]
expected: FAIL
[gb18030 encoder: range 79]
expected: FAIL
[gb18030 encoder: range 72]
expected: FAIL
[gb18030 encoder: range 73]
expected: FAIL
[gb18030 encoder: range 70]
expected: FAIL
[gb18030 encoder: range 71]
expected: FAIL
[gb18030 encoder: range 76]
expected: FAIL
[gb18030 encoder: range 77]
expected: FAIL
[gb18030 encoder: range 74]
expected: FAIL
[gb18030 encoder: range 75]
expected: FAIL
[gb18030 encoder: range 206]
expected: FAIL
[gb18030 encoder: range 163]
expected: FAIL
[gb18030 encoder: range 162]
expected: FAIL
[gb18030 encoder: range 161]
expected: FAIL
[gb18030 encoder: range 160]
expected: FAIL
[gb18030 encoder: range 167]
expected: FAIL
[gb18030 encoder: range 166]
expected: FAIL
[gb18030 encoder: range 165]
expected: FAIL
[gb18030 encoder: range 164]
expected: FAIL
[gb18030 encoder: range 169]
expected: FAIL
[gb18030 encoder: range 168]
expected: FAIL
[gb18030 encoder: range 49]
expected: FAIL
[gb18030 encoder: range 48]
expected: FAIL
[gb18030 encoder: range 47]
expected: FAIL
[gb18030 encoder: range 46]
expected: FAIL
[gb18030 encoder: range 45]
expected: FAIL
[gb18030 encoder: range 44]
expected: FAIL
[gb18030 encoder: range 43]
expected: FAIL
[gb18030 encoder: range 42]
expected: FAIL
[gb18030 encoder: range 41]
expected: FAIL
[gb18030 encoder: range 40]
expected: FAIL

View file

@ -0,0 +1,34 @@
[gbk-encoder.html]
[gbk encoder: legacy ICU special case 1]
expected: FAIL
[gbk encoder: legacy ICU special case 3]
expected: FAIL
[gbk encoder: character]
expected: FAIL
[gbk encoder: PUA #2]
expected: FAIL
[gbk encoder: PUA]
expected: FAIL
[gbk encoder: poo]
expected: FAIL
[gbk encoder: legacy ICU special case 2]
expected: FAIL
[gbk encoder: Euro]
expected: FAIL
[gbk encoder: legacy WebKit case 2]
expected: FAIL
[gbk encoder: legacy WebKit case 3]
expected: FAIL
[gbk encoder: legacy WebKit case 1]
expected: FAIL

View file

@ -315,18 +315,18 @@
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
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>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +0,0 @@
[opener-closed.html]
expected: TIMEOUT
[An auxiliary browsing context should report `null` for `window.opener` when that browsing context is discarded]
expected: TIMEOUT

View file

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

View file

@ -0,0 +1,4 @@
[2d.text.drawing.style.textRendering.settings.html]
[Testing basic functionalities of textRendering in Canvas]
expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.text.drawing.style.textRendering.settings.html]
[Testing basic functionalities of textRendering in Canvas]
expected: FAIL

View file

@ -0,0 +1,4 @@
[2d.text.drawing.style.textRendering.settings.worker.html]
[Testing basic functionalities of textRendering in Canvas]
expected: FAIL

View file

@ -172,6 +172,3 @@
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
expected: FAIL
[HTML (standards) IMG usemap="no-hash-name"]
expected: FAIL

View file

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

View file

@ -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

View file

@ -1,4 +0,0 @@
[form-double-submit-2.html]
[preventDefault should allow onclick submit() to succeed]
expected: FAIL

View file

@ -0,0 +1,4 @@
[form-double-submit.html]
[default submit action should supersede onclick submit()]
expected: FAIL

View file

@ -1,4 +0,0 @@
[module-delayed.html]
[async document.write in a module]
expected: FAIL

View file

@ -1,5 +1,5 @@
[ignore-opens-during-unload.window.html]
expected: TIMEOUT
expected: CRASH
[ignore-opens-during-unload]
expected: FAIL

View file

@ -479,3 +479,9 @@
[X SNR (43.842664034730205 dB) is not greater than or equal to 65.737. Got 43.842664034730205.]
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-5.0056340366103069e-13\t9.3139332532882690e-1\t9.3139332532932750e-1\t1.0000000000005376e+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.3139332532932750e-1 at index of 28696.\n\tMax RelError of 1.0000000000005376e+0 at index of 28696.\n]
expected: FAIL
[X SNR (43.82404088229215 dB) is not greater than or equal to 65.737. Got 43.82404088229215.]
expected: FAIL

View file

@ -1,4 +1,5 @@
[audiocontext-not-fully-active.html]
expected: TIMEOUT
[frame in navigated remote-site frame]
expected: FAIL

View file

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

View file

@ -13,7 +13,7 @@
<body>
<div id='log'></div>
<a target="_blank" href='javascript:opener.t1.done();' id='test'>
<a target="_blank" rel="opener" href='javascript:opener.t1.done();' id='test'>
<script nonce='abc'>
var t1 = async_test("Test that the javascript: src is allowed to run");

View file

@ -0,0 +1,181 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>CSS Images: image-orientation, CORS detection for SVG content</title>
<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5165">
<link rel="match" href="reference/image-orientation-none-cross-origin-svg-ref.html">
<meta name=fuzzy content="10;100">
<script src="/common/get-host-info.sub.js"></script>
<script src="/common/reftest-wait.js"></script>
<script src="/common/rendering-utils.js"></script>
<style>
.image {
width: 40px;
height: 20px;
position: fixed;
}
</style>
<script>
function toCors(src) {
return src.replace(new URL(src).origin, get_host_info().HTTP_REMOTE_ORIGIN)
}
window.onload = () => {
const images = [
{
id_image: "cors_from_image",
id_foreign: "cors_from_foreign",
cors: true,
orientation: 'from-image',
shouldBeRotated: true,
left: '10px'
},
{
id_image: "cors_none_image",
id_foreign: "cors_none_foreign",
cors: true,
orientation: 'none',
shouldBeRotated: true,
left: '60px'
},
{
id_image: "same_from_image",
id_foreign: "same_from_foreign",
cors: false,
orientation: 'from-image',
shouldBeRotated: true,
left: '110px'
},
{
id_image: "same_none_image",
id_foreign: "same_none_foreign",
cors: false,
orientation: 'none',
shouldBeRotated: false,
left: '160px'
},
];
images.forEach(data => {
if (data.cors) {
image_src = document.getElementById("cors_img");
image = document.getElementById(data.id_image);
image.setAttribute("href", image_src.src);
foreign = document.getElementById(data.id_foreign);
foreign.src = image_src.src;
} else {
image_src = document.getElementById("same_img");
image = document.getElementById(data.id_image);
image.setAttribute("href", image_src.src);
foreign = document.getElementById(data.id_foreign);
foreign.src = image_src.src;
}
const canvas_svg_image = document.createElement('canvas');
canvas_svg_image.className = "image";
canvas_svg_image.width = canvas_svg_image.height = 1;
canvas_svg_image.style.left = data.left;
canvas_svg_image.style.top = "140px";
// The source of image-orientation preference for canvas drawImage
// is currently not standardized.
// See https://github.com/w3c/csswg-drafts/issues/4666
canvas_svg_image.style.imageOrientation = data.orientation;
document.body.appendChild(canvas_svg_image);
ctx = canvas_svg_image.getContext('2d');
sx = data.shouldBeRotated ? 80 : 0;
sy = data.shouldBeRotated ? 40 : 0;
ctx.drawImage(image, sx, sy, 1, 1, 0, 0, 1, 1);
const canvas_svg_foreign = document.createElement('canvas');
canvas_svg_foreign.className = "image";
canvas_svg_foreign.width = canvas_svg_foreign.height = 1;
canvas_svg_foreign.style.left = data.left;
canvas_svg_foreign.style.top = "170px";
canvas_svg_foreign.style.imageOrientation = data.orientation;
document.body.appendChild(canvas_svg_foreign);
ctx = canvas_svg_foreign.getContext('2d');
sx = data.shouldBeRotated ? 80 : 0;
sy = data.shouldBeRotated ? 40 : 0;
ctx.drawImage(foreign, sx, sy, 1, 1, 0, 0, 1, 1);
})
waitForAtLeastOneFrame().then(() => { takeScreenshot() });
}
</script>
</head>
<body>
<svg class="image" id="svg_cors_from" style="left: 10px; top: 50px; image-orientation: from-image;">
<image id="cors_from_image" href="support/exif-orientation-3-lr.jpg" X="-57" Y="-27"></image>
</svg>
<!-- This should be functionally identical to a plain <img> element. We test it here to verify
that SVG foreign object correctly tracks the security origin for the image. -->
<svg class="image" style="left: 10px; top: 80px; image-orientation: from-image;">
<foreignObject x="-57" y="-27" width="100" height="50">
<img id="cors_from_foreign" src="support/exif-orientation-3-lr.jpg"></img>
</foreignObject>
</svg>
<!-- Note SVG-as-image requires any <image> elements to use (base64 encoded) data: URLs, that can
never be cross origin. This just tests that we don't crash or do other strange things. -->
<img class="image" id="img_cors_from" src="support/svg-with-image-rotated.svg" style="left: 10px; top: 110px; image-orientation: from-image;"/>
<svg class="image" style="left: 60px; top: 50px; image-orientation: none;">
<image id="cors_none_image" href="support/exif-orientation-3-lr.jpg" X="-57" Y="-27"></image>
</svg>
<!-- This should be functionally identical to a plain <img> element. We test it here to verify
that SVG foreign object correctly tracks the security origin for the image. -->
<svg class="image" style="left: 60px; top: 80px; image-orientation: none;">
<foreignObject x="-57" y="-27" width="100" height="50">
<img id="cors_none_foreign" src="support/exif-orientation-3-lr.jpg"></img>
</foreignObject>
</svg>
<!-- Note SVG-as-image requires any <image> elements to use (base64 encoded) data: URLs, that can
never be cross origin. This just tests that we don't crash or do other strange things. -->
<img class="image" id="img_cors_none" src="support/svg-with-image-rotated.svg" style="left: 60px; top: 110px; image-orientation: none;"/>
<svg class="image" style="left: 110px; top: 50px; image-orientation: from-image;">
<image id="same_from_image" href="support/exif-orientation-3-lr.jpg" X="-57" Y="-27"></image>
</svg>
<!-- This should be functionally identical to a plain <img> element. We test it here to verify
that SVG foreign object correctly tracks the security origin for the image. -->
<svg class="image" style="left: 110px; top: 80px; image-orientation: from-image;">
<foreignObject x="-57" y="-27" width="100" height="50">
<img id="same_from_foreign" src="support/exif-orientation-3-lr.jpg"></img>
</foreignObject>
</svg>
<!-- Note SVG-as-image requires any <image> elements to use (base64 encoded) data: URLs, that can
never be cross origin. This just tests that we don't crash or do other strange things. -->
<img class="image" id="img_same_from" src="support/svg-with-image-rotated.svg" style="left: 110px; top: 110px; image-orientation: from-image;"/>
<svg class="image" style="left: 160px; top: 50px; image-orientation: none;">
<image id="same_none_image" href="support/exif-orientation-3-lr.jpg" X="0" Y="0"></image>
</svg>
<!-- This should be functionally identical to a plain <img> element. We test it here to verify
that SVG foreign object correctly tracks the security origin for the image. -->
<svg class="image" style="left: 160px; top: 80px; image-orientation: none;">
<foreignObject x="0" y="0" width="100" height="50">
<img id="same_none_foreign" src="support/exif-orientation-3-lr.jpg"></img>
</foreignObject>
</svg>
<!-- Note SVG-as-image requires any <image> elements to use (base64 encoded) data: URLs, that can
never be cross origin. This just tests that we don't crash or do other strange things. -->
<img class="image" id="img_same_none" src="support/svg-with-image-rotated.svg" style="left: 160px; top: 110px; image-orientation: none;"/>
<!-- This is the easiest way to get a cross origin url for SVG <image> -->
<script>
const img = document.createElement('img')
img.src = "support/exif-orientation-3-lr.jpg"
img.id = "same_img";
img.style.display = "none";
document.body.appendChild(img)
const imgCors = document.createElement('img')
imgCors.src = img.src
imgCors.src = toCors(imgCors.src)
imgCors.id = "cors_img";
imgCors.style.display = "none";
document.body.appendChild(imgCors)
</script>
</body>
</html>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Images: image-orientation, CORS detection for SVG content, reference</title>
<link rel="author" title="Stephen Chenney" href="mailto:schenney@chromium.org">
<style>
div {
background-image: url("../support/exif-orientation-1-ul.jpg");
width: 40px;
height: 20px;
position: fixed;
}
</style>
</head>
<body>
<div style="left: 10px; top: 50px"></div>
<div style="left: 10px; top: 80px"></div>
<div style="left: 10px; top: 110px"></div>
<div style="left: 10px; top: 140px"></div>
<div style="left: 10px; top: 170px"></div>
<div style="left: 60px; top: 50px"></div>
<div style="left: 60px; top: 80px"></div>
<div style="left: 60px; top: 110px"></div>
<div style="left: 60px; top: 140px"></div>
<div style="left: 60px; top: 170px"></div>
<div style="left: 110px; top: 50px"></div>
<div style="left: 110px; top: 80px"></div>
<div style="left: 110px; top: 110px"></div>
<div style="left: 110px; top: 140px"></div>
<div style="left: 110px; top: 170px"></div>
<div style="left: 160px; top: 50px"></div>
<div style="left: 160px; top: 80px"></div>
<div style="left: 160px; top: 110px"></div>
<div style="left: 160px; top: 140px"></div>
<div style="left: 160px; top: 170px"></div>
</body>
</html>

View file

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="40" height="20">
<image xlink:href="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QDGRXhpZgAASUkqAAgAAAAHABIBAwABAAAAAwAAABoBBQABAAAAYgAAABsBBQABAAAAagAAACgBAwABAAAAAgAAADEBAgANAAAAcgAAADIBAgAUAAAAgAAAAGmHBAABAAAAlAAAAAAAAABIAAAAAQAAAEgAAAABAAAAR0lNUCAyLjEwLjE0AAAyMDIwOjAyOjEzIDExOjMyOjIwAAMAAaADAAEAAAABAAAAAqAEAAEAAABkAAAAA6AEAAEAAAAyAAAAAAAAAP/bAEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/bAEMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/CABEIADIAZAMBEQACEQEDEQH/xAAYAAEBAQEBAAAAAAAAAAAAAAAACAYJCv/EABgBAQEBAQEAAAAAAAAAAAAAAAAJCAoH/9oADAMBAAIQAxAAAAGK8r4nAAHcWfu4aX8p9LAAHmjqxNMAAdxZ+7hpfyn0sAAeaOrE0wAB3Fn7uGl/KfSwAB5Au6fIwAArSENod5l/RYAA58dafPIAAKNgDbzX5V0oAAJD6qOa8AAUbAG3mvyrpQAASH1Uc14AAo2ANvNflXSgAA//xAAeEAAABQUBAAAAAAAAAAAAAAAABAYVFgUHIDA1N//aAAgBAQABBQLKz/nWyz/nWyz/AJ1k4Hw4Hw4Hw4Hw4Hw4HwmVWqClEmixE0WImixE0WImixE0WOdB5Wyg8rZQeVl//8QAMBEAAAIECgsBAQAAAAAAAAAABQYAAgQHAwgVF1VWlJbT1AESEyAwNziFhrW2ERb/2gAIAQMBAT8B3nP8ui73b3onxXP8ui73b3onxXP8ui73b3onvyQFUYH2Jmw0kgKowPsTNhpJAVRgfYmbDSSAqjA+xM2GkkBVGB9iZsNJICqMD7EzYaRTSERhCL+QWtvJhTbmuF/qtq1NZdB2lohdmdTHBKbSHhmNeEX1INRSDU1ltOqooqro/FVdGhJtndVBJV1gPIpNs7qoJKusB5FJtndVBJV1gPIpNs7qoJKusB5FJtndVBJV1gPIpNs7qoJKusB5HfihdOzvfLPuDNxYoXTs73yz7gzcWKF07O98s+4M2/8A/8QALxEAAAIECwkBAQAAAAAAAAAABgcAAgMFBAgTFhdWV5aX1NUBIDA3OIWGtrcSEf/aAAgBAgEBPwHeO7meJ+y+vOnindzPE/ZfXnTxTu5nifsvrzp36CiRscKvD0I6QlBRI2OFXh6EdISgokbHCrw9COkJQUSNjhV4ehHSEoKJGxwq8PQjpCUFEjY4VeHoR0hI5hbF07IyZkQJ2gEFO+BMZnyMEgQWccFgrKUAQXatJNgwgLNkpKNV12q/5V2fpousut/Vltu1JiAipoVu86MmkxARU0K3edGTSYgIqaFbvOjJpMQEVNCt3nRk0mICKmhW7zoyaTEBFTQrd50ZPfjtdTpmeGfPgpxY7XU6Znhnz4KcWO11OmZ4Z8+Cm/8A/8QAKxAAAAMECAYDAAAAAAAAAAAAAgMEAAUGNAEgMDaUldLUEiGDhbS1ERMU/9oACAEBAAY/Aq0O929687WHe7e9edrDvdvevOvOq8SdradV4k7W06rxJ2tp1XiTtbTqvEna2nVeJO1siTpIkf6Ygv8AT9ZCd8PAkkHErPGLgLLUBAHiGIQhfFHMQqRU86aWvZEuevTdNeyJc9em6a9kS569N017Ilz16bpr2RLnr03TXsiXPXpuq6Xr+Sdapev5J1ql6/knV//EABcQAAMBAAAAAAAAAAAAAAAAAAEhUGH/2gAIAQEAAT8hm6aaGDBgwYMZeGBv3BW9CjNGDBgwYMYYY//aAAwDAQACAAMAAAAQAAAAAAAAAAAAAAAAAAADbbYSSSAAAAAAAAAAAAAAAAAAAH//xAAVEQEBAAAAAAAAAAAAAAAAAABQgf/aAAgBAwEBPxA1RRRy5cuXLmH8VsUvwlxG9+/fv373XXf/xAAVEQEBAAAAAAAAAAAAAAAAAABQgf/aAAgBAgEBPxA3DDB69evXr24QT7b2b5BGrFixYsWEkk//xAAVEAEBAAAAAAAAAAAAAAAAAABQAf/aAAgBAQABPxA3XXUGDBgwYOgVjhxRPtxEgYMGDBg8MMP/2Q==" x="-57" y="-27"></image>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -0,0 +1,6 @@
<!DOCTYPE html>
<title>CSS aspect ratio: An intrinsic max-width should not crash when used with aspect ratio</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">
<div style="max-width: max-content; height: 100px; aspect-ratio: 1/1;"></div>

View file

@ -0,0 +1,27 @@
<!doctype html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS Text 3 test: trailing collapsible spaces and bidi</title>
<link rel="author" title="Jose Dapena Paz" href="mailto:jdapena@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-white-space-pre-wrap">
<link rel="help" href="https://drafts.csswg.org/css-text-3/#white-space-phase-2">
<link rel="match" href="reference/eol-spaces-bidi-003-ref.html">
<link rel="match" href="reference/eol-spaces-bidi-alt-003-ref.html">
<meta name="assert" content="Hanging space between OP and D should take paragraph direction and show in the end of the line (blue box to the left)">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
direction: rtl;
font: 20px/1 Ahem;
margin-left: 20px;
background: green;
width: 4ch;
}
.blue { color: blue; }
.bgblue { background-color: blue; }
.space { color: transparent; }
</style>
<p>Test passes if a blue box (the white space) is visible at the left start in first line.</p>
<div>ب<span class="bgblue"><span class="blue">X</span>OP</span><span class="space">X<br>XXX</span>D</div>

View file

@ -0,0 +1,21 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Text 3 test reference</title>
<link rel="author" title="Jose Dapena Paz" href="mailto:jdapena@igalia.com">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
direction: rtl;
font: 20px/1 Ahem;
margin-left: 20px;
background: green;
width: 4ch;
}
.blue { color: blue; }
.space { color: transparent; }
</style>
<p>Test passes if a blue box (the white space) is visible at the left start in first line.</p>
<div>ب<span class="blue">X</span>OP<span class="space">X<br>XXX</span>D</div>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Text 3 test reference</title>
<link rel="author" title="Jose Dapena Paz" href="mailto:jdapena@igalia.com">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style>
div {
direction: rtl;
font: 20px/1 Ahem;
margin-left: 20px;
background: green;
width: 4ch;
overflow: hidden;
}
.blue { color: blue; }
.space { color: transparent; }
</style>
<p>Test passes if a blue box (the white space) is visible at the left start in first line.</p>
<div>ب<span class="blue">X</span>OP<span class="space">X<br>XXX</span>D</div>

View file

@ -1,21 +0,0 @@
<!doctype html>
<meta charset=gb18030> <!-- if the server overrides this, it is stupid, as this is a testsuite -->
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id=log></div>
<script>
function encode(input, output, desc) {
test(function() {
var a = document.createElement("a") // <a> uses document encoding for URL's query
a.href = "https://example.com/?" + input
assert_equals(a.search.substr(1), output) // remove leading "?"
}, "gb18030 encoder: " + desc)
}
encode("s", "s", "very basic")
encode("\u20AC", "%A2%E3", "Euro")
encode("\u4E02", "%81@", "character")
encode("\uE4C6", "%A1@", "PUA")
encode("\uE4C5", "%FE%FE", "PUA #2")
encode("\ud83d\udca9", "%949%DA3", "poo")
</script>

View file

@ -1,21 +0,0 @@
<!doctype html>
<meta charset=gbk> <!-- if the server overrides this, it is stupid, as this is a testsuite -->
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<div id=log></div>
<script>
function encode(input, output, desc) {
test(function() {
var a = document.createElement("a") // <a> uses document encoding for URL's query
a.href = "https://example.com/?" + input
assert_equals(a.search.substr(1), output) // remove leading "?"
}, "gbk encoder: " + desc)
}
encode("s", "s", "very basic")
encode("\u20AC", "%80", "Euro")
encode("\u4E02", "%81@", "character")
encode("\uE4C6", "%A1@", "PUA")
encode("\uE4C5", "%FE%FE", "PUA #2")
encode("\ud83d\udca9", "%26%23128169%3B", "poo")
</script>

View file

@ -0,0 +1,55 @@
<!doctype html>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=resources/ranges.js></script>
<script>
const decode = (input, output, desc) => {
test(function() {
for (encoding of ["gb18030", "gbk"])
assert_equals(new TextDecoder(encoding).decode(new Uint8Array(input)), output)
}, "gb18030 decoder: " + desc)
}
decode([115], "s", "ASCII");
decode([0x80], "\u20AC", "euro");
decode([0xFF], "\uFFFD", "initial byte out of accepted ranges");
decode([0x81], "\uFFFD", "end of queue, gb18030 first not 0");
decode([0x81, 0x28], "\ufffd(", "two bytes 0x81 0x28");
decode([0x81, 0x40], "\u4E02", "two bytes 0x81 0x40");
decode([0x81, 0x7E], "\u4E8A", "two bytes 0x81 0x7e");
decode([0x81, 0x7F], "\ufffd\u007f", "two bytes 0x81 0x7f");
decode([0x81, 0x80], "\u4E90", "two bytes 0x81 0x80");
decode([0x81, 0xFE], "\u4FA2", "two bytes 0x81 0xFE");
decode([0x81, 0xFF], "\ufffd", "two bytes 0x81 0xFF");
decode([0xFE, 0x40], "\uFA0C", "two bytes 0xFE 0x40");
decode([0xFE, 0xFE], "\uE4C5", "two bytes 0xFE 0xFE");
decode([0xFE, 0xFF], "\ufffd", "two bytes 0xFE 0xFF");
decode([0x81, 0x30], "\ufffd", "two bytes 0x81 0x30");
decode([0x81, 0x30, 0xFE], "\ufffd", "three bytes 0x81 0x30 0xFE");
decode([0x81, 0x30, 0xFF], "\ufffd0\ufffd", "three bytes 0x81 0x30 0xFF");
decode([0x81, 0x30, 0xFE, 0x29], "\ufffd0\ufffd)", "four bytes 0x81 0x30 0xFE 0x29");
decode([0xFE, 0x39, 0xFE, 0x39], "\ufffd", "four bytes 0xFE 0x39 0xFE 0x39");
decode([0x81, 0x35, 0xF4, 0x36], "\u1E3E", "pointer 7458");
decode([0x81, 0x35, 0xF4, 0x37], "\ue7c7", "pointer 7457");
decode([0x81, 0x35, 0xF4, 0x38], "\u1E40", "pointer 7459");
decode([0x84, 0x31, 0xA4, 0x39], "\uffff", "pointer 39419");
decode([0x84, 0x31, 0xA5, 0x30], "\ufffd", "pointer 39420");
decode([0x8F, 0x39, 0xFE, 0x39], "\ufffd", "pointer 189999");
decode([0x90, 0x30, 0x81, 0x30], "\u{10000}", "pointer 189000");
decode([0xE3, 0x32, 0x9A, 0x35], "\u{10FFFF}", "pointer 1237575");
decode([0xE3, 0x32, 0x9A, 0x36], "\ufffd", "pointer 1237576");
decode([0x83, 0x36, 0xC8, 0x30], "\uE7C8", "legacy ICU special case 1");
decode([0xA1, 0xAD], "\u2026", "legacy ICU special case 2");
decode([0xA1, 0xAB], "\uFF5E", "legacy ICU special case 3");
let i = 0;
for (const range of ranges) {
const pointer = range[0];
decode([
Math.floor(pointer / 12600) + 0x81,
Math.floor((pointer % 12600) / 1260) + 0x30,
Math.floor((pointer % 1260) / 10) + 0x81,
pointer % 10 + 0x30
], range[1], "range " + i++);
}
</script>

View file

@ -0,0 +1,48 @@
<!doctype html>
<meta charset=gb18030>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script src=resources/ranges.js></script>
<script>
const encode = (input, output, desc) => {
test(function() {
const a = document.createElement("a"); // <a> uses document encoding for URL's query
a.href = "https://example.com/?" + input;
assert_equals(a.search.substr(1), output); // remove leading "?"
}, "gb18030 encoder: " + desc);
}
encode("s", "s", "very basic");
encode("\u20AC", "%A2%E3", "Euro");
encode("\u4E02", "%81@", "character");
encode("\uE4C6", "%A1@", "PUA");
encode("\uE4C5", "%FE%FE", "PUA #2");
encode("\uE5E5", "%26%2358853%3B", "PUA #3");
encode("\ud83d\udca9", "%949%DA3", "poo");
encode("\uE7C7", "%815%F47", "Ranges pointer special case");
encode("\uE7C8", "%836%C80", "legacy ICU special case 1");
encode("\u2026", "%A1%AD", "legacy ICU special case 2");
encode("\uFF5E", "%A1%AB", "legacy ICU special case 3");
const upperCaseNibble = x => {
return Math.floor(x).toString(16).toUpperCase();
}
const encodePointer = pointer => {
const firstByte = Math.floor(pointer / 12600) + 0x81;
const thirdByte = Math.floor((pointer % 1260) / 10) + 0x81;
return "%"
+ upperCaseNibble(firstByte / 16)
+ upperCaseNibble(firstByte % 16)
+ String.fromCharCode(Math.floor((pointer % 12600) / 1260) + 0x30)
+ "%"
+ upperCaseNibble(thirdByte / 16)
+ upperCaseNibble(thirdByte % 16)
+ String.fromCharCode(pointer % 10 + 0x30);
}
let i = 0;
for (const range of ranges) {
encode(range[1], encodePointer(range[0]), "range " + i++);
}
</script>

View file

@ -0,0 +1,210 @@
// Based on https://encoding.spec.whatwg.org/index-gb18030-ranges.txt
const ranges = [
[0, "\u0080"],
[36, "\u00A5"],
[38, "\u00A9"],
[45, "\u00B2"],
[50, "\u00B8"],
[81, "\u00D8"],
[89, "\u00E2"],
[95, "\u00EB"],
[96, "\u00EE"],
[100, "\u00F4"],
[103, "\u00F8"],
[104, "\u00FB"],
[105, "\u00FD"],
[109, "\u0102"],
[126, "\u0114"],
[133, "\u011C"],
[148, "\u012C"],
[172, "\u0145"],
[175, "\u0149"],
[179, "\u014E"],
[208, "\u016C"],
[306, "\u01CF"],
[307, "\u01D1"],
[308, "\u01D3"],
[309, "\u01D5"],
[310, "\u01D7"],
[311, "\u01D9"],
[312, "\u01DB"],
[313, "\u01DD"],
[341, "\u01FA"],
[428, "\u0252"],
[443, "\u0262"],
[544, "\u02C8"],
[545, "\u02CC"],
[558, "\u02DA"],
[741, "\u03A2"],
[742, "\u03AA"],
[749, "\u03C2"],
[750, "\u03CA"],
[805, "\u0402"],
[819, "\u0450"],
[820, "\u0452"],
[7922, "\u2011"],
[7924, "\u2017"],
[7925, "\u201A"],
[7927, "\u201E"],
[7934, "\u2027"],
[7943, "\u2031"],
[7944, "\u2034"],
[7945, "\u2036"],
[7950, "\u203C"],
[8062, "\u20AD"],
[8148, "\u2104"],
[8149, "\u2106"],
[8152, "\u210A"],
[8164, "\u2117"],
[8174, "\u2122"],
[8236, "\u216C"],
[8240, "\u217A"],
[8262, "\u2194"],
[8264, "\u219A"],
[8374, "\u2209"],
[8380, "\u2210"],
[8381, "\u2212"],
[8384, "\u2216"],
[8388, "\u221B"],
[8390, "\u2221"],
[8392, "\u2224"],
[8393, "\u2226"],
[8394, "\u222C"],
[8396, "\u222F"],
[8401, "\u2238"],
[8406, "\u223E"],
[8416, "\u2249"],
[8419, "\u224D"],
[8424, "\u2253"],
[8437, "\u2262"],
[8439, "\u2268"],
[8445, "\u2270"],
[8482, "\u2296"],
[8485, "\u229A"],
[8496, "\u22A6"],
[8521, "\u22C0"],
[8603, "\u2313"],
[8936, "\u246A"],
[8946, "\u249C"],
[9046, "\u254C"],
[9050, "\u2574"],
[9063, "\u2590"],
[9066, "\u2596"],
[9076, "\u25A2"],
[9092, "\u25B4"],
[9100, "\u25BE"],
[9108, "\u25C8"],
[9111, "\u25CC"],
[9113, "\u25D0"],
[9131, "\u25E6"],
[9162, "\u2607"],
[9164, "\u260A"],
[9218, "\u2641"],
[9219, "\u2643"],
[11329, "\u2E82"],
[11331, "\u2E85"],
[11334, "\u2E89"],
[11336, "\u2E8D"],
[11346, "\u2E98"],
[11361, "\u2EA8"],
[11363, "\u2EAB"],
[11366, "\u2EAF"],
[11370, "\u2EB4"],
[11372, "\u2EB8"],
[11375, "\u2EBC"],
[11389, "\u2ECB"],
[11682, "\u2FFC"],
[11686, "\u3004"],
[11687, "\u3018"],
[11692, "\u301F"],
[11694, "\u302A"],
[11714, "\u303F"],
[11716, "\u3094"],
[11723, "\u309F"],
[11725, "\u30F7"],
[11730, "\u30FF"],
[11736, "\u312A"],
[11982, "\u322A"],
[11989, "\u3232"],
[12102, "\u32A4"],
[12336, "\u3390"],
[12348, "\u339F"],
[12350, "\u33A2"],
[12384, "\u33C5"],
[12393, "\u33CF"],
[12395, "\u33D3"],
[12397, "\u33D6"],
[12510, "\u3448"],
[12553, "\u3474"],
[12851, "\u359F"],
[12962, "\u360F"],
[12973, "\u361B"],
[13738, "\u3919"],
[13823, "\u396F"],
[13919, "\u39D1"],
[13933, "\u39E0"],
[14080, "\u3A74"],
[14298, "\u3B4F"],
[14585, "\u3C6F"],
[14698, "\u3CE1"],
[15583, "\u4057"],
[15847, "\u4160"],
[16318, "\u4338"],
[16434, "\u43AD"],
[16438, "\u43B2"],
[16481, "\u43DE"],
[16729, "\u44D7"],
[17102, "\u464D"],
[17122, "\u4662"],
[17315, "\u4724"],
[17320, "\u472A"],
[17402, "\u477D"],
[17418, "\u478E"],
[17859, "\u4948"],
[17909, "\u497B"],
[17911, "\u497E"],
[17915, "\u4984"],
[17916, "\u4987"],
[17936, "\u499C"],
[17939, "\u49A0"],
[17961, "\u49B8"],
[18664, "\u4C78"],
[18703, "\u4CA4"],
[18814, "\u4D1A"],
[18962, "\u4DAF"],
[19043, "\u9FA6"],
[33469, "\uE76C"],
[33470, "\uE7C8"],
[33471, "\uE7E7"],
[33484, "\uE815"],
[33485, "\uE819"],
[33490, "\uE81F"],
[33497, "\uE827"],
[33501, "\uE82D"],
[33505, "\uE833"],
[33513, "\uE83C"],
[33520, "\uE844"],
[33536, "\uE856"],
[33550, "\uE865"],
[37845, "\uF92D"],
[37921, "\uF97A"],
[37948, "\uF996"],
[38029, "\uF9E8"],
[38038, "\uF9F2"],
[38064, "\uFA10"],
[38065, "\uFA12"],
[38066, "\uFA15"],
[38069, "\uFA19"],
[38075, "\uFA22"],
[38076, "\uFA25"],
[38078, "\uFA2A"],
[39108, "\uFE32"],
[39109, "\uFE45"],
[39113, "\uFE53"],
[39114, "\uFE58"],
[39115, "\uFE67"],
[39116, "\uFE6C"],
[39265, "\uFF5F"],
[39394, "\uFFE6"],
[189000, "\u{10000}"]
];

View file

@ -0,0 +1,33 @@
<!doctype html>
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
const gbkPointers = [
6432, 7533, 7536, 7672, 7673, 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681, 7682, 7683, 7684,
23766, 23770, 23771, 23772, 23773, 23774, 23776, 23777, 23778, 23779, 23780, 23781, 23782, 23784, 23785, 23786,
23787, 23790, 23791, 23792, 23793, 23796, 23797, 23798, 23799, 23800, 23801, 23802, 23803, 23805, 23806, 23807,
23808, 23809, 23810, 23811, 23813, 23814, 23815, 23816, 23817, 23818, 23819, 23820, 23821, 23822, 23823, 23824,
23825, 23826, 23827, 23828, 23831, 23832, 23833, 23834, 23835, 23836, 23837, 23838, 23839, 23840, 23841, 23842,
23843, 23844
];
const codePoints = [
0x20ac, 0x1e3f, 0x01f9, 0x303e, 0x2ff0, 0x2ff1, 0x2ff2, 0x2ff3, 0x2ff4, 0x2ff5, 0x2ff6, 0x2ff7, 0x2ff8, 0x2ff9, 0x2ffa, 0x2ffb,
0x2e81, 0x2e84, 0x3473, 0x3447, 0x2e88, 0x2e8b, 0x359e, 0x361a, 0x360e, 0x2e8c, 0x2e97, 0x396e, 0x3918, 0x39cf, 0x39df, 0x3a73,
0x39d0, 0x3b4e, 0x3c6e, 0x3ce0, 0x2ea7, 0x2eaa, 0x4056, 0x415f, 0x2eae, 0x4337, 0x2eb3, 0x2eb6, 0x2eb7, 0x43b1, 0x43ac, 0x2ebb,
0x43dd, 0x44d6, 0x4661, 0x464c, 0x4723, 0x4729, 0x477c, 0x478d, 0x2eca, 0x4947, 0x497a, 0x497d, 0x4982, 0x4983, 0x4985, 0x4986,
0x499f, 0x499b, 0x49b7, 0x49b6, 0x4ca3, 0x4c9f, 0x4ca0, 0x4ca1, 0x4c77, 0x4ca2, 0x4d13, 0x4d14, 0x4d15, 0x4d16, 0x4d17, 0x4d18,
0x4d19, 0x4dae
];
for (let i = 0; i < gbkPointers.length; i++) {
const pointer = gbkPointers[i];
test(function() {
const lead = pointer / 190 + 0x81;
const trail = pointer % 190;
const offset = trail < 0x3F ? 0x40 : 0x41;
const encoded = [lead, trail + offset];
const decoded = new TextDecoder("GBK").decode(new Uint8Array(encoded)).charCodeAt(0);
assert_equals(decoded, codePoints[i]);
}, "gbk pointer: " + pointer)
}
</script>

View file

@ -0,0 +1,26 @@
<!doctype html>
<meta charset=gbk> <!-- if the server overrides this, it is stupid, as this is a testsuite -->
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<script>
function encode(input, output, desc) {
test(function() {
const a = document.createElement("a") // <a> uses document encoding for URL's query
a.href = "https://example.com/?" + input;
assert_equals(a.search.substr(1), output); // remove leading "?"
}, "gbk encoder: " + desc);
}
encode("s", "s", "very basic");
encode("\u20AC", "%80", "Euro");
encode("\u4E02", "%81@", "character");
encode("\uE4C6", "%A1@", "PUA");
encode("\uE4C5", "%FE%FE", "PUA #2");
encode("\ud83d\udca9", "%26%23128169%3B", "poo");
encode("\uE7C8", "%26%2359336%3B", "legacy ICU special case 1");
encode("\u2026", "%A1%AD", "legacy ICU special case 2");
encode("\uFF5E", "%A1%AB", "legacy ICU special case 3");
encode("\u00A5", "%26%23165%3B", "legacy WebKit case 1");
encode("\u22EF", "%26%238943%3B", "legacy WebKit case 2");
encode("\u301C", "%26%2312316%3B", "legacy WebKit case 3");
</script>

View file

@ -1,4 +1,3 @@
suggested_reviewers:
- zcorpan
- mikewest
- iVanlIsh

View file

@ -4,11 +4,10 @@
<link rel="help" href="http://www.w3.org/TR/geolocation-API/#position_options_interface">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src='support.js'></script>
<p>Clear all Geolocation permissions before running this test. If prompted for permission, please allow.</p>
<div id="log"></div>
<script>
// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00123
test(function() {
@ -35,7 +34,9 @@ test(function() {
}, 'Call watchPosition with wrong type for enableHighAccuracy. No exception expected.');
// Rewrite http://dev.w3.org/geo/api/test-suite/t.html?00086, 00088, 00091 and 00092
test(function() {
promise_test(async function() {
await test_driver.set_permission({name: 'geolocation'}, 'granted');
var t86 = async_test('Set timeout and maximumAge to 0, check that timeout error raised (getCurrentPosition)'),
t88 = async_test('Set timeout and maximumAge to 0, check that timeout error raised (watchPosition)'),
t91 = async_test('Check that a negative timeout value is equivalent to a 0 timeout value (getCurrentLocation)'),

View file

@ -5,5 +5,4 @@ suggested_reviewers:
- foolip
- jdm
- jgraham
- zcorpan
- zqzhang

View file

@ -2,7 +2,7 @@
<meta charset="utf-8">
<html>
<body onload="openAuxiliary()">
<a target="_blank">Open auxiliary context that will close this window (its opener)</a>
<a rel="opener" target="_blank">Open auxiliary context that will close this window (its opener)</a>
<script src="/common/PrefixedLocalStorage.js"></script>
<script>
function openAuxiliary () {

View file

@ -11,10 +11,10 @@ setup(() => prefixedStorage = new PrefixedLocalStorageTest());
async_test(t => {
t.add_cleanup(() => prefixedStorage.cleanup());
prefixedStorage.onSet('hasOpener', t.step_func_done(e => {
assert_equals(e.newValue, 'true');
assert_equals(e.newValue, 'false');
}));
var a = document.getElementsByTagName('a')[0];
a.href = prefixedStorage.url(a.href);
a.click();
}, 'Context created by link targeting "_blank" should retain opener reference');
}, 'Context created by link targeting "_blank" should not have opener reference');
</script>

View file

@ -0,0 +1,57 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>Canvas test: 2d.text.drawing.style.textRendering.settings</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
<body class="show_output">
<h1>2d.text.drawing.style.textRendering.settings</h1>
<p class="desc">Testing basic functionalities of textRendering in Canvas</p>
<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
<ul id="d"></ul>
<script>
var t = async_test("Testing basic functionalities of textRendering in Canvas");
_addTest(function(canvas, ctx) {
// Setting textRendering with lower cases
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "auto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "optimizespeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "optimizelegibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "geometricprecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "OPtimizeSpeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "OPtimizELEgibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "GeometricPrecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
});
</script>

View file

@ -0,0 +1,57 @@
<!DOCTYPE html>
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
<title>OffscreenCanvas test: 2d.text.drawing.style.textRendering.settings</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
<h1>2d.text.drawing.style.textRendering.settings</h1>
<p class="desc">Testing basic functionalities of textRendering in Canvas</p>
<script>
var t = async_test("Testing basic functionalities of textRendering in Canvas");
var t_pass = t.done.bind(t);
var t_fail = t.step_func(function(reason) {
throw reason;
});
t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
// Setting textRendering with lower cases
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "auto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "optimizespeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "optimizelegibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "geometricprecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "OPtimizeSpeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "OPtimizELEgibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "GeometricPrecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
t.done();
});
</script>

View file

@ -0,0 +1,53 @@
// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
// OffscreenCanvas test in a worker:2d.text.drawing.style.textRendering.settings
// Description:Testing basic functionalities of textRendering in Canvas
// Note:
importScripts("/resources/testharness.js");
importScripts("/html/canvas/resources/canvas-tests.js");
var t = async_test("Testing basic functionalities of textRendering in Canvas");
var t_pass = t.done.bind(t);
var t_fail = t.step_func(function(reason) {
throw reason;
});
t.step(function() {
var offscreenCanvas = new OffscreenCanvas(100, 50);
var ctx = offscreenCanvas.getContext('2d');
// Setting textRendering with lower cases
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "auto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "optimizespeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "optimizelegibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "geometricprecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
_assertSame(ctx.textRendering, "Auto", "ctx.textRendering", "\"Auto\"");
ctx.textRendering = "OPtimizeSpeed";
_assertSame(ctx.textRendering, "OptimizeSpeed", "ctx.textRendering", "\"OptimizeSpeed\"");
ctx.textRendering = "OPtimizELEgibility";
_assertSame(ctx.textRendering, "OptimizeLegibility", "ctx.textRendering", "\"OptimizeLegibility\"");
ctx.textRendering = "GeometricPrecision";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
_assertSame(ctx.textRendering, "GeometricPrecision", "ctx.textRendering", "\"GeometricPrecision\"");
t.done();
});
done();

View file

@ -897,4 +897,41 @@
ctx.fontVariantCaps = "abcd";
@assert ctx.fontVariantCaps === "TitlingCaps";
- name: 2d.text.drawing.style.textRendering.settings
desc: Testing basic functionalities of textRendering in Canvas
testing:
- 2d.text.drawing.style.textRendering
code: |
// Setting textRendering with lower cases
@assert ctx.textRendering === "Auto";
ctx.textRendering = "auto";
@assert ctx.textRendering === "Auto";
ctx.textRendering = "optimizespeed";
@assert ctx.textRendering === "OptimizeSpeed";
ctx.textRendering = "optimizelegibility";
@assert ctx.textRendering === "OptimizeLegibility";
ctx.textRendering = "geometricprecision";
@assert ctx.textRendering === "GeometricPrecision";
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
@assert ctx.textRendering === "Auto";
ctx.textRendering = "OPtimizeSpeed";
@assert ctx.textRendering === "OptimizeSpeed";
ctx.textRendering = "OPtimizELEgibility";
@assert ctx.textRendering === "OptimizeLegibility";
ctx.textRendering = "GeometricPrecision";
@assert ctx.textRendering === "GeometricPrecision";
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
@assert ctx.textRendering === "GeometricPrecision";
# TODO: shadows, alpha, composite, clip

View file

@ -1399,4 +1399,42 @@
@assert ctx.fontVariantCaps === "TitlingCaps";
t.done();
- name: 2d.text.drawing.style.textRendering.settings
desc: Testing basic functionalities of textRendering in Canvas
testing:
- 2d.text.drawing.style.textRendering
code: |
// Setting textRendering with lower cases
@assert ctx.textRendering === "Auto";
ctx.textRendering = "auto";
@assert ctx.textRendering === "Auto";
ctx.textRendering = "optimizespeed";
@assert ctx.textRendering === "OptimizeSpeed";
ctx.textRendering = "optimizelegibility";
@assert ctx.textRendering === "OptimizeLegibility";
ctx.textRendering = "geometricprecision";
@assert ctx.textRendering === "GeometricPrecision";
// Setting textRendering with lower cases and upper cases word.
ctx.textRendering = "aUto";
@assert ctx.textRendering === "Auto";
ctx.textRendering = "OPtimizeSpeed";
@assert ctx.textRendering === "OptimizeSpeed";
ctx.textRendering = "OPtimizELEgibility";
@assert ctx.textRendering === "OptimizeLegibility";
ctx.textRendering = "GeometricPrecision";
@assert ctx.textRendering === "GeometricPrecision";
// Setting textRendering with non-existing font variant.
ctx.textRendering = "abcd";
@assert ctx.textRendering === "GeometricPrecision";
t.done();
# TODO: shadows, alpha, composite, clip

View file

@ -1,2 +0,0 @@
suggested_reviewers:
- zcorpan

View file

@ -1,3 +1,2 @@
suggested_reviewers:
- foolip
- zcorpan

View file

@ -19,6 +19,7 @@
var a = document.createElement("a");
a.href = location.href;
a.target = "_blank";
a.rel = "opener";
document.body.appendChild(a);
a.click();
}

View file

@ -1,3 +1,2 @@
suggested_reviewers:
- lilles
- zcorpan

View file

@ -35,6 +35,10 @@
start: auto;
end: auto;
}
@scroll-timeline timeline_auto_auto_implicit {
source: selector(#scroller);
time-range: 10s;
}
@scroll-timeline timeline_50px_auto {
source: selector(#scroller);
time-range: 10s;
@ -72,6 +76,7 @@
#element_0px_100px { animation-timeline: timeline_0px_100px; }
#element_50px_100px { animation-timeline: timeline_50px_100px; }
#element_auto_auto { animation-timeline: timeline_auto_auto; }
#element_auto_auto_implicit { animation-timeline: timeline_auto_auto_implicit; }
#element_50px_auto { animation-timeline: timeline_50px_auto; }
#element_auto_100px { animation-timeline: timeline_auto_100px; }
#element_25p_75p { animation-timeline: timeline_25p_75p; }
@ -84,6 +89,7 @@
<div id=element_0px_100px></div>
<div id=element_50px_100px></div>
<div id=element_auto_auto></div>
<div id=element_auto_auto_implicit></div>
<div id=element_50px_auto></div>
<div id=element_auto_100px></div>
<div id=element_25p_75p></div>
@ -146,11 +152,19 @@
test_approximate_width_at_fraction(element_auto_auto, 0.1, '110px');
test_approximate_width_at_fraction(element_auto_auto, 0.5, '150px');
test_approximate_width_at_fraction(element_auto_auto, 0.9, '190px');
// TODO: Effects for scroll linked animations are not inclusive at max scroll
// https://github.com/w3c/csswg-drafts/issues/5223
test_approximate_width_at_fraction(element_auto_auto, 1, '0px');
// [auto, auto] (implicit)
test_approximate_width_at_fraction(element_auto_auto_implicit, 0, '100px');
test_approximate_width_at_fraction(element_auto_auto_implicit, 0.1, '110px');
test_approximate_width_at_fraction(element_auto_auto_implicit, 0.5, '150px');
test_approximate_width_at_fraction(element_auto_auto_implicit, 0.9, '190px');
// TODO: Effects for scroll linked animations are not inclusive at max scroll
// https://github.com/w3c/csswg-drafts/issues/5223
test_approximate_width_at_fraction(element_auto_auto_implicit, 1, '0px');
// [50px, auto]
{
let offset = (t) => (max => 50 * (1 - t) + max * t);

View file

@ -0,0 +1,62 @@
<!doctype html>
<title>&lt;animateTransform> 'type' attribute missing/invalid value default</title>
<link rel="help" href="https://svgwg.org/specs/animations/#AnimateTransformElementTypeAttribute">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<svg height="10">
<rect width="10" height="10" fill="blue">
<animateTransform attributeName="transform" type="translate"
fill="freeze" dur="1s" from="10 0" to="10 0"/>
</rect>
<rect width="10" height="10" fill="blue">
<animateTransform attributeName="transform"
fill="freeze" dur="1s" from="30 0" to="30 0"/>
</rect>
<rect width="10" height="10" fill="blue">
<animateTransform attributeName="transform" type="foo"
fill="freeze" dur="1s" from="50 0" to="50 0"/>
</rect>
<rect width="10" height="10" fill="blue">
<animateTransform attributeName="transform" type="foo"
fill="freeze" dur="1s" from="70 0" to="70 0"/>
</rect>
</svg>
<script>
const animations = document.querySelectorAll('animateTransform');
async_test(t => {
animations[0].addEventListener('beginEvent', t.step_func_done(function() {
let ctm = animations[0].targetElement.getCTM();
assert_equals(ctm.e, 10);
assert_equals(ctm.f, 0);
}));
}, document.title + ', "type" attribute is "translate"');
async_test(t => {
animations[1].addEventListener('beginEvent', t.step_func_done(function() {
let ctm = animations[1].targetElement.getCTM();
assert_equals(ctm.e, 30);
assert_equals(ctm.f, 0);
}));
}, document.title + ', missing "type" attribute');
async_test(t => {
animations[2].addEventListener('beginEvent', t.step_func_done(function() {
let ctm = animations[2].targetElement.getCTM();
assert_equals(ctm.e, 0);
assert_equals(ctm.f, 0);
}));
}, document.title + ', invalid "type" attribute');
async_test(t => {
animations[3].addEventListener('beginEvent', t.step_func(function() {
animations[3].removeAttribute('type');
window.requestAnimationFrame(t.step_func_done(function() {
let ctm = animations[3].targetElement.getCTM();
assert_equals(ctm.e, 70);
assert_equals(ctm.f, 0);
}));
}));
}, document.title + ', removed "type" attribute');
</script>

View file

@ -561,7 +561,7 @@ class Chrome(Browser):
return self.find_nightly_binary(dest)
def install_mojojs(self, dest, channel, browser_binary):
if channel == "nightly":
if channel == "nightly" or channel == "canary":
url = self._latest_chromium_snapshot_url() + "mojojs.zip"
else:
chrome_version = self.version(binary=browser_binary)
@ -785,8 +785,8 @@ class Chrome(Browser):
try:
version_string = call(binary, "--version").strip()
except subprocess.CalledProcessError:
self.logger.warning("Failed to call %s" % binary)
except (subprocess.CalledProcessError, OSError) as e:
self.logger.warning("Failed to call %s: %s" % (binary, e))
return None
m = re.match(r"(?:Google Chrome|Chromium) (.*)", version_string)
if not m:
@ -800,8 +800,8 @@ class Chrome(Browser):
try:
version_string = call(webdriver_binary, "--version").strip()
except subprocess.CalledProcessError:
self.logger.warning("Failed to call %s" % webdriver_binary)
except (subprocess.CalledProcessError, OSError) as e:
self.logger.warning("Failed to call %s: %s" % (webdriver_binary, e))
return None
m = re.match(r"ChromeDriver ([0-9][0-9.]*)", version_string)
if not m:

View file

@ -7,4 +7,4 @@ mozprocess==1.2.0
mozprofile==2.5.0
mozrunner==8.0.0
mozversion==2.3.0
psutil==5.7.2
psutil==5.7.3

View file

@ -27,9 +27,7 @@
}, "eval of !TrustedScript and !string works.");
test(t => {
// The Function constructor will string-ify its arguments. Hence, this
// will apply the default policy, despite being TrustedScript.
assert_equals(new Function(p.createScript('return 1+1'))(), 5);
assert_equals(new Function(p.createScript('return 1+1'))(), 2);
}, "Function constructor of TrustedScript works.");
test(t => {

View file

@ -26,13 +26,11 @@
}, "eval of !TrustedScript and !string works.");
test(t => {
// The Function constructor will string-ify its arguments. Hence, this
// throw because no default policy is defined.
assert_throws_js(EvalError, _ => new Function(p.createScript('1+1')));
assert_equals(new Function(p.createScript('return 1+1'))(), 2);
}, "Function constructor of TrustedScript works.");
test(t => {
assert_throws_js(EvalError, _ => new Function('1+1')());
assert_throws_js(EvalError, _ => new Function('return 1+1')());
}, "Function constructor of string fails.");
</script>

View file

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<script nonce="abc" src="/resources/testharness.js"></script>
<script nonce="abc" src="/resources/testharnessreport.js"></script>
<meta http-equiv="Content-Security-Policy"
content="require-trusted-types-for 'script'">
</head>
<body>
<script>
let policy = trustedTypes.createPolicy("p", { createScript: s => s });
const args = ["a", "b", "c = 5", "return (a+b)*c;"];
const arg_max = 2 ** args.length -1;
// Call 'new Function(...args)', but with a subet of args being Strings,
// and a subset being TrustedScript. We use a bitmask to determine which
// argument gets to be trusted or not.
function new_function_with_maybe_trusted_args(mask) {
let maybe_trusted_args = args.map((value, arg_nr) => {
return (mask & (2**arg_nr)) ? policy.createScript(value) : value;
});
return new Function(...maybe_trusted_args);
}
// Generate all combinations of String/TrustedScript, except for the one
// where all argumentes are TrustedScript.
for (let mask = 0; mask < arg_max; mask++) {
test(t => {
assert_throws_js(EvalError,
_ => new_function_with_maybe_trusted_args(mask));
}, "Function constructor with mixed plain and trusted strings, mask #" + mask);
}
// Now do one with all trusted arguments.
test(t => {
const f = new_function_with_maybe_trusted_args(arg_max);
assert_equals(f(1,2,3), 9);
assert_equals(f(1,2), 15);
}, "Function constructor with mixed plain and trusted strings, mask #" + arg_max);
</script>

View file

@ -34,11 +34,8 @@
}, "eval with TrustedScript and permissive CSP works.");
test(t => {
assert_throws_js(EvalError, _ => {
// The Function constructor will string-ify its arguments. Hence, this
// throw because no default policy is defined.
let s = new Function(p.createScript('return "Hello transformed string"'));
});
let s = new Function(p.createScript('return "Hello transformed string"'))();
assert_equals(s, "Hello a cat string");
}, "new Function with TrustedScript and permissive CSP works.");
trustedTypes.createPolicy("default", { createScript: createScriptJS }, true);

View file

@ -70,7 +70,7 @@ standardSetup(function() {
},
}).runTest("navigator.credentials.create() with largeBlob.support set to required and not supported by authenticator", "NotAllowedError");
}, {
protocol: "ctap2",
protocol: "ctap2_1",
hasResidentKey: true,
hasUserVerification: true,
isUserVerified: true,

View file

@ -73,7 +73,7 @@ standardSetup(function() {
assert_not_own_property(credential.getClientExtensionResults().largeBlob, "written");
}, "navigator.credentials.create() with largeBlob.support set to required and supported by authenticator");
}, {
protocol: "ctap2",
protocol: "ctap2_1",
hasResidentKey: true,
hasUserVerification: true,
isUserVerified: true,

View file

@ -83,7 +83,7 @@ standardSetup(async function() {
assert_false(assertion.getClientExtensionResults().largeBlob.written);
}, "navigator.credentials.get() with largeBlob.write set without authenticator support");
}, {
protocol: "ctap2",
protocol: "ctap2_1",
hasResidentKey: true,
hasUserVerification: true,
isUserVerified: true,

View file

@ -81,7 +81,7 @@ standardSetup(async function(authenticator) {
assert_not_own_property(assertion.getClientExtensionResults().largeBlob, "written");
}, "navigator.credentials.get() read and write blob");
}, {
protocol: "ctap2",
protocol: "ctap2_1",
hasResidentKey: true,
hasUserVerification: true,
extensions: ["largeBlob"],