mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Update web-platform-tests to revision 0a45e9baf952da4787f81ca93d34dfad3ca24d33
This commit is contained in:
parent
1d217b7f0f
commit
5097f12054
108 changed files with 1154 additions and 315 deletions
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -17,6 +17,3 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[elementsFromPoint-invalid-cases.html]
|
||||
[The root element is the last element returned for otherwise empty queries within the viewport]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[mediaquery-sort-dedup.html]
|
||||
[Media queries are not sorted lexicographically]
|
||||
expected: FAIL
|
||||
|
||||
[Media queries are not deduplicated]
|
||||
expected: FAIL
|
||||
|
|
@ -318,9 +318,6 @@
|
|||
[<iframe>: separate response Content-Type: 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
|
||||
|
||||
|
@ -330,3 +327,9 @@
|
|||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,9 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,3 @@
|
|||
[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
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_2.html]
|
||||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Testing baselines]
|
||||
expected: FAIL
|
||||
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[2d.text.drawing.style.spacing.measure.html]
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Testing baselines]
|
||||
expected: FAIL
|
||||
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[2d.text.drawing.style.spacing.measure.html]
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[2d.text.drawing.style.spacing.measure.worker.html]
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Testing baselines]
|
||||
expected: FAIL
|
||||
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -10,7 +9,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
|
|
|
@ -171,6 +171,3 @@
|
|||
[XHTML img usemap="#hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (standards) IMG usemap="no-hash-name"]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-1.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -167,3 +167,9 @@
|
|||
[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-4.5730330770610604e-25\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
|
||||
|
||||
[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\]\t2.5984584840275810e+21\t9.3139332532882690e-1\t2.5984584840275810e+21\t2.7898616120211077e+21\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 2.5984584840275810e+21 at index of 28696.\n\tMax RelError of 2.7898616120211077e+21 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
[X SNR (-384.8602297044423 dB) is not greater than or equal to 65.737. Got -384.8602297044423.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -163540,6 +163540,58 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"overflow-clip-margin-001.html": [
|
||||
"9a97f94e816011a1d4a26d4f03208022779a4d47",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-overflow/overflow-clip-margin-001-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"overflow-clip-margin-002.html": [
|
||||
"79dcaad63bae2ae7d8240f2af5dfd184de4f1f2f",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-overflow/overflow-clip-margin-002-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"overflow-clip-margin-003.html": [
|
||||
"52625e90977f1e3ab87037a0bd4f48343b026fc8",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-overflow/overflow-clip-margin-003-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"overflow-clip-margin-invalidation.html": [
|
||||
"d9c87a34a53f17451b0d3ae8c2071971d1df3a94",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-overflow/overflow-clip-margin-invalidation-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"overflow-ellipsis-dynamic-001.html": [
|
||||
"2a9edba9308bf06009d7b9a27f21f1e0f1a231c7",
|
||||
[
|
||||
|
@ -176964,7 +177016,7 @@
|
|||
]
|
||||
],
|
||||
"hyphens-auto-010.html": [
|
||||
"01acaf0c9bac7db58e032dd0154d2f9f6c127053",
|
||||
"1aac0bf29fd26558922a4fbe113ac0e5330ebee5",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -176981,7 +177033,7 @@
|
|||
]
|
||||
],
|
||||
"hyphens-auto-inline-010.html": [
|
||||
"03776617bf6ec5266e1f0ade3c5e4241242589fd",
|
||||
"ebeef66ad2199044c2c2b1d2419de6ec24668e99",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -177122,7 +177174,7 @@
|
|||
]
|
||||
],
|
||||
"hyphens-none-012.html": [
|
||||
"5b70c95e4e1f43719a1c64fedacc3ca49190da02",
|
||||
"47e72a4cfb249b64cf385c5f2ee4970d16d1a2d0",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -177135,7 +177187,7 @@
|
|||
]
|
||||
],
|
||||
"hyphens-none-013.html": [
|
||||
"d234cc0d0950c0f3d6c8c8c032b331578ce1949d",
|
||||
"30f207baa637d8b0d795b84d78d2aa54ffd0c61d",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -254913,7 +254965,7 @@
|
|||
[]
|
||||
],
|
||||
"README.md": [
|
||||
"a3f718166a2c29d44b83f62c1aca622a80500711",
|
||||
"96fdf8d770f566e145c8dd0a31e01e184778ecf0",
|
||||
[]
|
||||
],
|
||||
"WebCryptoAPI": {
|
||||
|
@ -257847,6 +257899,14 @@
|
|||
[]
|
||||
]
|
||||
},
|
||||
"critical-ch": {
|
||||
"resources": {
|
||||
"echo-critical-hint.py": [
|
||||
"4e2577a231b8b49ab95da71b519a101120711448",
|
||||
[]
|
||||
]
|
||||
}
|
||||
},
|
||||
"http-equiv-accept-ch-merge.https.html.headers": [
|
||||
"8759b65606b192b0dcb73cfd465de8529a159ba0",
|
||||
[]
|
||||
|
@ -312746,6 +312806,22 @@
|
|||
"378da736ecfcec921fa257273f7369cb253e3b81",
|
||||
[]
|
||||
],
|
||||
"overflow-clip-margin-001-ref.html": [
|
||||
"7efcc11ddb67112a2524451916e4154e7d2e5cb8",
|
||||
[]
|
||||
],
|
||||
"overflow-clip-margin-002-ref.html": [
|
||||
"84110e57792086613515a824483fa0b9a8d75ff0",
|
||||
[]
|
||||
],
|
||||
"overflow-clip-margin-003-ref.html": [
|
||||
"cf6b55a2f91d52a669ab64ce7f2ee66ae3abb139",
|
||||
[]
|
||||
],
|
||||
"overflow-clip-margin-invalidation-ref.html": [
|
||||
"1ec2a5ce0a21c8dd578b3fcfde702307e4e2a9a8",
|
||||
[]
|
||||
],
|
||||
"reference": {
|
||||
"input-scrollable-region-001-ref.html": [
|
||||
"d7125ee2ef3285d461b2172208e23d8d4cc27a64",
|
||||
|
@ -315891,19 +315967,19 @@
|
|||
[]
|
||||
],
|
||||
"hyphens-auto-010H-ref.html": [
|
||||
"861f0ed9d079b6d7f1353199f5f19c9bbed867cf",
|
||||
"6d453b9560b7d9c7c0503029ebb17e0fe53848ef",
|
||||
[]
|
||||
],
|
||||
"hyphens-auto-010M-ref.html": [
|
||||
"d6c0065eb887a0ef7f847a741a752635694cfb75",
|
||||
"27adc3f08f5397691e8bd56006b6dc725651dcc8",
|
||||
[]
|
||||
],
|
||||
"hyphens-auto-inline-010H-ref.html": [
|
||||
"c3e6271c19fe044463352258f89f72c00842bdc6",
|
||||
"0a3aedf286af83eca4602e0ea529884c29200291",
|
||||
[]
|
||||
],
|
||||
"hyphens-auto-inline-010M-ref.html": [
|
||||
"ace0c5e7537816c5807321eee0360be0ff87e9fc",
|
||||
"59f5247e50fd9f42187193af7eafa9d385a14229",
|
||||
[]
|
||||
],
|
||||
"hyphens-manual-010-ref.html": [
|
||||
|
@ -330281,7 +330357,7 @@
|
|||
[]
|
||||
],
|
||||
"github-intro.md": [
|
||||
"44b6828ad3c83f1510c92ffab3d5b561e47469ce",
|
||||
"3c45177dae2d61d186eca5be77ecaa8f063c789a",
|
||||
[]
|
||||
],
|
||||
"h2tests.md": [
|
||||
|
@ -337644,7 +337720,7 @@
|
|||
[]
|
||||
],
|
||||
"drawing-text-to-the-canvas.yaml": [
|
||||
"a00caef1764fcced8f51673e08e4738d95df6a4f",
|
||||
"921464e6bc72ad187cfd2c8955c4a2cc7e9cfb1a",
|
||||
[]
|
||||
],
|
||||
"fill-and-stroke-styles.yaml": [
|
||||
|
@ -337738,7 +337814,7 @@
|
|||
[]
|
||||
],
|
||||
"text.yaml": [
|
||||
"280f4335ae2bae7bfa09ff1d87951f2bcfe3af53",
|
||||
"16187397eb32aca2a5b5684982fee39bf8146f73",
|
||||
[]
|
||||
],
|
||||
"the-canvas-state.yaml": [
|
||||
|
@ -390218,6 +390294,71 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"critical-ch": {
|
||||
"iframe.https.window.js": [
|
||||
"87c68a347ce1d683852a17559d9202483871e7f2",
|
||||
[
|
||||
"client-hints/critical-ch/iframe.https.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"mis-matched-count.https.window.js": [
|
||||
"b0c8d875a86946971f547d4cd01d079e0de65ed3",
|
||||
[
|
||||
"client-hints/critical-ch/mis-matched-count.https.window.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"script",
|
||||
"/common/utils.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"mis-matched.https.window.js": [
|
||||
"fcfd5412c009efc824d23a691f0c0857a35a254a",
|
||||
[
|
||||
"client-hints/critical-ch/mis-matched.https.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"navigation.https.window.js": [
|
||||
"831987eef1b515da10619d93237b2689d22c2ae8",
|
||||
[
|
||||
"client-hints/critical-ch/navigation.https.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"non-secure.http.window.js": [
|
||||
"46c00ffdb66da314bbeec7804795566d3217712e",
|
||||
[
|
||||
"client-hints/critical-ch/non-secure.http.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"request-count.https.window.js": [
|
||||
"36c0ef8b99349e8ded23b80c3efc0894071adba0",
|
||||
[
|
||||
"client-hints/critical-ch/request-count.https.window.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"script",
|
||||
"/common/utils.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"subresource.https.window.js": [
|
||||
"494933500946aba2620c479857f99e091d4e3376",
|
||||
[
|
||||
"client-hints/critical-ch/subresource.https.window.html",
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"http-equiv-accept-ch-malformed-header.https.html": [
|
||||
"d7c6b8dfb063f256a0f2442cad7f866ddd401ec1",
|
||||
[
|
||||
|
@ -409278,6 +409419,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"target-text.html": [
|
||||
"37cbdd4c15aedaa09d62af71545b7d9760a207ff",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"tree-abiding-pseudo-elements.html": [
|
||||
"05c23a3bc143ce2a005b3686af2eae2cb60cb7ba",
|
||||
[
|
||||
|
@ -409286,6 +409434,13 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"target-text-computed.html": [
|
||||
"429903052ed196d272464b6a5838c2d3a18cd46e",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"text-selection.html": [
|
||||
"42acd0aa52a25b3f92c0cfc47089fcd79c71c75c",
|
||||
[
|
||||
|
@ -420822,15 +420977,15 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"medialist-interfaces-003.html": [
|
||||
"1778c4a7ae98904460054157c2cc44ae264e0e70",
|
||||
"medialist-interfaces-004.html": [
|
||||
"7cbea37cba421bbf13887322cc48b72a8e04cdc8",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"medialist-interfaces-004.html": [
|
||||
"7cbea37cba421bbf13887322cc48b72a8e04cdc8",
|
||||
"mediaquery-sort-dedup.html": [
|
||||
"0ae78d03009e9352a1a0cb62ca0b20bbfd1a08b2",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -450775,7 +450930,14 @@
|
|||
]
|
||||
],
|
||||
"2d.text.drawing.style.spacing.html": [
|
||||
"a4ec083311ba0cdb32babf9b4e3351111c29ade5",
|
||||
"67092690ed37ba90b79048969a3d6b0de40e93b6",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"2d.text.drawing.style.spacing.measure.html": [
|
||||
"d4f0faa983cb8cc2dd83191c832ecb39bb4420ac",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -465209,14 +465371,28 @@
|
|||
]
|
||||
],
|
||||
"2d.text.drawing.style.spacing.html": [
|
||||
"d3cf89ad7be91fda67b7f5e005533293b1581e0e",
|
||||
"512ed7157c86e3365f959efa393f88e47447efcc",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"2d.text.drawing.style.spacing.measure.html": [
|
||||
"fd6638d8c703b4ce6fa715918e56fdb25a16e33e",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"2d.text.drawing.style.spacing.measure.worker.js": [
|
||||
"3a787b755cf538eb36d5b903efca8752e5ef8c63",
|
||||
[
|
||||
"html/canvas/offscreen/text/2d.text.drawing.style.spacing.measure.worker.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"2d.text.drawing.style.spacing.worker.js": [
|
||||
"0499b310b1eeaac3bd16b4c3dd957dcd7c0b5aad",
|
||||
"1dac9f5c1f34996ce7c0a18737bd58b40ed0da92",
|
||||
[
|
||||
"html/canvas/offscreen/text/2d.text.drawing.style.spacing.worker.html",
|
||||
{}
|
||||
|
@ -489734,7 +489910,7 @@
|
|||
]
|
||||
],
|
||||
"mediasource-worker-play-terminate-worker.html": [
|
||||
"d1c1c3d3fe8b0feba9eebb8c4796e904c0bcbf2f",
|
||||
"69f2cbaaea37c5936bfc871af1996c134f52d0a3",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -496764,34 +496940,6 @@
|
|||
]
|
||||
},
|
||||
"paint-timing": {
|
||||
"basetest.html": [
|
||||
"759dfaa97a5fd24ec9df82fabed858ff826384b2",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"border-image.html": [
|
||||
"4614fecd2101c8457722e8b65a7ba39f1cf2eff6",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"buffered-flag.window.js": [
|
||||
"0b7c8bea2e42ea54acc4e24f0ca548b51dea567d",
|
||||
[
|
||||
"paint-timing/buffered-flag.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"child-painting-first-image.html": [
|
||||
"3badae1849feaf5b2a0288ebe556af3ea1216586",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"fcp-only": {
|
||||
"fcp-background-size.html": [
|
||||
"25fe986bdede921980b96c10f9d3d26a83558cbc",
|
||||
|
@ -496983,13 +497131,6 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"first-contentful-bg-image.html": [
|
||||
"00224b33ec9ecd2d15ee41c5ff609ad44592dff7",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-canvas-none.html": [
|
||||
"33a4352126c0d59668e5fdd30d96a4c54ad34468",
|
||||
[
|
||||
|
@ -496997,64 +497138,6 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-canvas-webgl2.html": [
|
||||
"f7c5f50ecba0bd5a5d45fb41a02d0457e49e6713",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-canvas.html": [
|
||||
"e6a4365b760c7126be458c505a49ef1ea7234d53",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-image.html": [
|
||||
"18abfe731d6bbfe27fb738331ae3137ebaf47a23",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-paint.html": [
|
||||
"a93f1b73263efb7a57e1e8be3145d5aee85b9646",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-svg.html": [
|
||||
"c68e72c01065310f2d23bba3154dd49cd9c9482c",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-image-child.html": [
|
||||
"d707d437b61457679ff890a6dfb71c2133416298",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"first-paint-bg-color.html": [
|
||||
"a4f799045f1c6430a37a0e091cf613193a82c163",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-paint-only.html": [
|
||||
"473b1aa121d37815360bd0d49729c16971189dd6",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"idlharness.window.js": [
|
||||
"049f0f18f1be64ad5d250f045b0dda3edbc931a4",
|
||||
[
|
||||
|
@ -497080,8 +497163,116 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"replaced-content-image.html": [
|
||||
"b3199aa0f6d54cc102ed5262c71021e232816ccc",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"supported-paint-type.window.js": [
|
||||
"518faff5cfb2240a0ab70c5729be77b456ebef93",
|
||||
[
|
||||
"paint-timing/supported-paint-type.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"with-first-paint": {
|
||||
"basetest.html": [
|
||||
"759dfaa97a5fd24ec9df82fabed858ff826384b2",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"border-image.html": [
|
||||
"4abccfe8e8fa2166e675f4985246e3100d9602f7",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"buffered-flag.window.js": [
|
||||
"0b7c8bea2e42ea54acc4e24f0ca548b51dea567d",
|
||||
[
|
||||
"paint-timing/with-first-paint/buffered-flag.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"child-painting-first-image.html": [
|
||||
"92a926a2b9f2194a4495e8efa6ece857917a1e07",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-bg-image.html": [
|
||||
"40eaa635bbccc1e346e68c2da2db3a268ab71cc5",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-canvas-webgl2.html": [
|
||||
"f7c5f50ecba0bd5a5d45fb41a02d0457e49e6713",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-canvas.html": [
|
||||
"e6a4365b760c7126be458c505a49ef1ea7234d53",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-image.html": [
|
||||
"504a07dd43f2a6ad0b6bd09936f9e7889c941308",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-paint.html": [
|
||||
"7d23155b0d60fc66a7647aa8758f7e69b4b15766",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-contentful-svg.html": [
|
||||
"74799a2ecdbb153dd55c80c0df0b5482fbbccd56",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-image-child.html": [
|
||||
"5c24527cf56f015d9f646e5b0c39ea416d07a5a6",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"first-paint-bg-color.html": [
|
||||
"a4f799045f1c6430a37a0e091cf613193a82c163",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"first-paint-only.html": [
|
||||
"473b1aa121d37815360bd0d49729c16971189dd6",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"mask-image.html": [
|
||||
"d022f43039f00ddc629aaa503d03931caab4a315",
|
||||
"e69e562d106d77974ba88dfc767cb93caa5a6ba2",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -497094,27 +497285,14 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"replaced-content-image.html": [
|
||||
"b3199aa0f6d54cc102ed5262c71021e232816ccc",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"sibling-painting-first-image.html": [
|
||||
"096c49ac19ec6f04255430b87e8e3ab216a8416c",
|
||||
"d393795e2dc34c925c658085f9fa1fc8f660d6cc",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"supported-paint-type.window.js": [
|
||||
"518faff5cfb2240a0ab70c5729be77b456ebef93",
|
||||
[
|
||||
"paint-timing/supported-paint-type.window.html",
|
||||
{}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"payment-handler": {
|
||||
"can-make-payment-event-constructor.https.html": [
|
||||
|
@ -512340,10 +512518,10 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"screen_enumeration_permission.window.js": [
|
||||
"screen_enumeration_permission.https.window.js": [
|
||||
"00adbfc52acfceedc949093444f24f04f9dc1a27",
|
||||
[
|
||||
"screen_enumeration/screen_enumeration_permission.window.html",
|
||||
"screen_enumeration/screen_enumeration_permission.https.window.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -21,6 +21,3 @@
|
|||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,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,8 +0,0 @@
|
|||
[medialist-interfaces-003.html]
|
||||
type: testharness
|
||||
[mediatest_mediaquery_serialize_1]
|
||||
expected: FAIL
|
||||
|
||||
[mediatest_mediaquery_serialize_2]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
[mediaquery-sort-dedup.html]
|
||||
[Media queries are not sorted lexicographically]
|
||||
expected: FAIL
|
||||
|
||||
[Media queries are not deduplicated]
|
||||
expected: FAIL
|
||||
|
|
@ -318,9 +318,6 @@
|
|||
[<iframe>: separate response Content-Type: 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
|
||||
|
||||
|
@ -330,3 +327,9 @@
|
|||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;x=" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,9 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,3 @@
|
|||
[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
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_2.html]
|
||||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Testing baselines]
|
||||
expected: FAIL
|
||||
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[2d.text.drawing.style.spacing.measure.html]
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Testing baselines]
|
||||
expected: FAIL
|
||||
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[2d.text.drawing.style.spacing.measure.html]
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[2d.text.drawing.style.spacing.measure.worker.html]
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
|
@ -2,3 +2,6 @@
|
|||
[Testing baselines]
|
||||
expected: FAIL
|
||||
|
||||
[Testing letter spacing and word spacing]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -10,7 +9,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_escaping-1.html]
|
||||
type: testharness
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_escaping-2.html]
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -395,3 +395,9 @@
|
|||
[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-4.5730330770610604e-25\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
|
||||
|
||||
[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\]\t2.5984584840275810e+21\t9.3139332532882690e-1\t2.5984584840275810e+21\t2.7898616120211077e+21\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 2.5984584840275810e+21 at index of 28696.\n\tMax RelError of 2.7898616120211077e+21 at index of 28696.\n]
|
||||
expected: FAIL
|
||||
|
||||
[X SNR (-384.8602297044423 dB) is not greater than or equal to 65.737. Got -384.8602297044423.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
[Worker-constructor.html]
|
||||
expected: ERROR
|
|
@ -102,13 +102,6 @@ that modify sensitive resources (such as `.py`). The latter require
|
|||
someone with merge access to comment with "LGTM" or "w3c-test:mirror" to
|
||||
indicate the pull request has been checked.
|
||||
|
||||
Branches
|
||||
========
|
||||
|
||||
In the vast majority of cases the **only** upstream branch that you
|
||||
should need to care about is `master`. If you see other branches in
|
||||
the repository, you can generally safely ignore them.
|
||||
|
||||
Contributing
|
||||
============
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
async_test((t) => {
|
||||
var iframe = document.createElement("iframe");
|
||||
iframe.addEventListener('load', (e) => {
|
||||
t.step(()=>{assert_equals(iframe.contentDocument.body.textContent, "FAIL");});
|
||||
t.done();
|
||||
});
|
||||
iframe.src = "resources/echo-critical-hint.py";
|
||||
document.body.appendChild(iframe);
|
||||
}, "Critical-CH iframe");
|
|
@ -0,0 +1,10 @@
|
|||
// META: script=/common/utils.js
|
||||
|
||||
async_test((t) => {
|
||||
var popup_window = window.open("resources/echo-critical-hint.py?mismatch=true&token="+token());
|
||||
assert_not_equals(popup_window, null, "Popup windows not allowed?");
|
||||
popup_window.addEventListener('load', (e) => {
|
||||
t.step(()=>{assert_equals(popup_window.document.body.textContent, "1")});
|
||||
t.done();
|
||||
});
|
||||
}, "Critical-CH navigation")
|
|
@ -0,0 +1,8 @@
|
|||
async_test((t) => {
|
||||
var popup_window = window.open("resources/echo-critical-hint.py?mismatch=true");
|
||||
assert_not_equals(popup_window, null, "Popup windows not allowed?");
|
||||
popup_window.addEventListener('load', (e) => {
|
||||
t.step(()=>{assert_equals(popup_window.document.body.textContent, "FAIL")});
|
||||
t.done();
|
||||
});
|
||||
}, "Critical-CH navigation")
|
|
@ -0,0 +1,8 @@
|
|||
async_test((t) => {
|
||||
var popup_window = window.open("resources/echo-critical-hint.py");
|
||||
assert_not_equals(popup_window, null, "Popup windows not allowed?");
|
||||
popup_window.addEventListener('load', (e) => {
|
||||
t.step(()=>{assert_equals(popup_window.document.body.textContent, "PASS")});
|
||||
t.done();
|
||||
});
|
||||
}, "Critical-CH navigation")
|
|
@ -0,0 +1,8 @@
|
|||
async_test((t) => {
|
||||
var popup_window = window.open("resources/echo-critical-hint.py");
|
||||
assert_not_equals(popup_window, null, "Popup windows not allowed?");
|
||||
popup_window.addEventListener('load', (e) => {
|
||||
t.step(()=>{assert_equals(popup_window.document.body.textContent, "FAIL")});
|
||||
t.done();
|
||||
});
|
||||
}, "Critical-CH non-secure navigation")
|
|
@ -0,0 +1,10 @@
|
|||
// META: script=/common/utils.js
|
||||
|
||||
async_test((t) => {
|
||||
var popup_window = window.open("resources/echo-critical-hint.py?token="+token());
|
||||
assert_not_equals(popup_window, null, "Popup windows not allowed?");
|
||||
popup_window.addEventListener('load', (e) => {
|
||||
t.step(()=>{assert_equals(popup_window.document.body.textContent, "2")});
|
||||
t.done();
|
||||
});
|
||||
}, "Critical-CH navigation")
|
|
@ -0,0 +1,43 @@
|
|||
import sys
|
||||
|
||||
def main(request, response):
|
||||
"""
|
||||
Simple handler that sets a response header based on which client hint
|
||||
request headers were received.
|
||||
"""
|
||||
|
||||
response.headers.append(b"Content-Type", b"text/html; charset=UTF-8")
|
||||
response.headers.append(b"Access-Control-Allow-Origin", b"*")
|
||||
response.headers.append(b"Access-Control-Allow-Headers", b"*")
|
||||
response.headers.append(b"Access-Control-Expose-Headers", b"*")
|
||||
|
||||
response.headers.append(b"Accept-CH", b"device-memory")
|
||||
|
||||
critical = b"device-memory"
|
||||
if(request.GET.first(b"mismatch", None) is not None):
|
||||
critical = b"viewport-width"
|
||||
|
||||
response.headers.append(b"Critical-CH", critical)
|
||||
|
||||
response.headers.append(b"Cache-Control", b"no-store")
|
||||
|
||||
result = "FAIL"
|
||||
|
||||
if b"device-memory" in request.headers:
|
||||
result = "PASS"
|
||||
|
||||
token = request.GET.first(b"token", None)
|
||||
if(token is not None):
|
||||
with request.server.stash.lock:
|
||||
count = request.server.stash.take(token)
|
||||
if(count == None):
|
||||
count = 1
|
||||
else:
|
||||
count += 1
|
||||
request.server.stash.put(token, count)
|
||||
result = str(count)
|
||||
|
||||
if b"viewport-width" in request.headers:
|
||||
result = "MISMATCH"
|
||||
|
||||
response.content = result
|
|
@ -0,0 +1,7 @@
|
|||
promise_test(() =>
|
||||
fetch("resources/echo-critical-hint.py")
|
||||
.then((r) => r.text())
|
||||
.then((r) => {
|
||||
assert_equals(r, "FAIL");
|
||||
})
|
||||
, "Critical-CH");
|
|
@ -0,0 +1,32 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Verifies overflow-clip-margin extends outside bounds</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow-clip-margin">
|
||||
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
|
||||
<style>
|
||||
.container {
|
||||
display: flex;
|
||||
}
|
||||
.parent {
|
||||
position: relative;
|
||||
top: -10px;
|
||||
left: -10px;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
flex: none;
|
||||
background-color: green;
|
||||
}
|
||||
.spacer {
|
||||
flex: none;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
</style>
|
||||
<p>You should see two green squares touching each other. The one on the
|
||||
right should be slightly larger.</p>
|
||||
<div class="spacer"></div>
|
||||
<div class="container">
|
||||
<div class="spacer" style="background-color: green"></div>
|
||||
<div class="parent"></div>
|
||||
</div>
|
|
@ -0,0 +1,42 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Verifies overflow-clip-margin extends outside bounds</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow-clip-margin">
|
||||
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
|
||||
<link rel="match" href="overflow-clip-margin-001-ref.html">
|
||||
<style>
|
||||
.container {
|
||||
display: flex;
|
||||
}
|
||||
.parent {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
flex: none;
|
||||
overflow: clip;
|
||||
overflow-clip-margin: 10px;
|
||||
}
|
||||
.child {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
position: relative;
|
||||
top: -50px;
|
||||
left: -50px;
|
||||
background-color: green;
|
||||
}
|
||||
.spacer {
|
||||
flex: none;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
</style>
|
||||
<p>You should see two green squares touching each other. The one on the
|
||||
right should be slightly larger.</p>
|
||||
<div class="spacer"></div>
|
||||
<div class="container">
|
||||
<div class="spacer" style="width: 90px; background-color: green"></div>
|
||||
<div class="spacer" style="width: 10px"></div>
|
||||
<div class="parent">
|
||||
<div class="child"></div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,31 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Verifies overflow-clip-margin impacts layout</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow-clip-margin">
|
||||
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
|
||||
<style>
|
||||
.scroller {
|
||||
overflow: auto;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
.child {
|
||||
position: relative;
|
||||
width: 110px;
|
||||
height: 110px;
|
||||
background-color: green;
|
||||
}
|
||||
</style>
|
||||
<p>You should see a green box with scrollbars.</p>
|
||||
<div class="scroller">
|
||||
<div class="child"></div>
|
||||
</div>
|
||||
|
||||
<p>You should see a green box with scrollbars.</p>
|
||||
<div class="scroller">
|
||||
<div class="child" style="width: 150px; height: 150px"></div>
|
||||
</div>
|
||||
|
||||
<p>You should see a green box with no scrollbars.</p>
|
||||
<div class="scroller" style="background-color: green">
|
||||
</div>
|
|
@ -0,0 +1,46 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Verifies overflow-clip-margin impacts layout</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow-clip-margin">
|
||||
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
|
||||
<link rel="match" href="overflow-clip-margin-002-ref.html">
|
||||
<style>
|
||||
.scroller {
|
||||
overflow: auto;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
.parent {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
overflow: clip;
|
||||
overflow-clip-margin: 10px;
|
||||
}
|
||||
.child {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
position: relative;
|
||||
top: -50px;
|
||||
left: -50px;
|
||||
background-color: green;
|
||||
}
|
||||
</style>
|
||||
<p>You should see a green box with scrollbars.</p>
|
||||
<div class="scroller">
|
||||
<div class="parent">
|
||||
<div class="child"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>You should see a green box with scrollbars.</p>
|
||||
<div class="scroller">
|
||||
<div class="parent" style="overflow-clip-margin: 100px">
|
||||
<div class="child"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>You should see a green box with no scrollbars.</p>
|
||||
<div class="scroller">
|
||||
<div class="parent" style="background-color: green">
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,15 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Verifies overflow-clip-margin doesn't impact paint effects</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow-clip-margin">
|
||||
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
|
||||
<style>
|
||||
.parent {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: green;
|
||||
box-shadow: 20px 20px 5px red;
|
||||
}
|
||||
</style>
|
||||
<p>You should see a green box with a red box shadow.
|
||||
<div class="parent"></div>
|
|
@ -0,0 +1,18 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>Verifies overflow-clip-margin doesn't impact paint effects</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow-clip-margin">
|
||||
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
|
||||
<link rel="match" href="overflow-clip-margin-003-ref.html">
|
||||
<style>
|
||||
.parent {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
background-color: green;
|
||||
overflow: clip;
|
||||
overflow-clip-margin: 1px;
|
||||
box-shadow: 20px 20px 5px red;
|
||||
}
|
||||
</style>
|
||||
<p>You should see a green box with a red box shadow.
|
||||
<div class="parent"></div>
|
|
@ -0,0 +1,40 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Overflow: overflow-clip-margin: invalidation on change</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow-clip-margin">
|
||||
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
|
||||
<style>
|
||||
.container {
|
||||
display: flex;
|
||||
}
|
||||
.parent_overflow {
|
||||
position: relative;
|
||||
top: -10px;
|
||||
left: -10px;
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
flex: none;
|
||||
background-color: green;
|
||||
}
|
||||
.parent {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
flex: none;
|
||||
background-color: green;
|
||||
}
|
||||
.spacer {
|
||||
flex: none;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
</style>
|
||||
<div class="spacer"></div>
|
||||
<div class="container">
|
||||
<div class="spacer"></div>
|
||||
<div class="parent"></div>
|
||||
<div class="spacer"></div>
|
||||
<div class="container">
|
||||
<div class="spacer"></div>
|
||||
<div class="parent_overflow"></div>
|
||||
</body>
|
|
@ -0,0 +1,64 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<title>CSS Overflow: overflow-clip-margin: invalidation on change</title>
|
||||
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#propdef-overflow-clip-margin">
|
||||
<meta name="assert" content="overflow-clip-margin: toggling should invalidate.">
|
||||
<link rel="author" title="Scott Violet" href="mailto:sky@chromium.org">
|
||||
<link rel="match" href="overflow-clip-margin-invalidation-ref.html">
|
||||
<style>
|
||||
.container {
|
||||
display: flex;
|
||||
}
|
||||
.parent {
|
||||
flex: none;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
flex: none;
|
||||
overflow: clip;
|
||||
}
|
||||
.child {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
position: relative;
|
||||
top: -50px;
|
||||
left: -50px;
|
||||
background-color: green;
|
||||
}
|
||||
.spacer {
|
||||
flex: none;
|
||||
height: 100px;
|
||||
width: 100px;
|
||||
}
|
||||
.margin {
|
||||
overflow-clip-margin: 10px;
|
||||
}
|
||||
</style>
|
||||
<script src="/common/reftest-wait.js"></script>
|
||||
<script src="/common/rendering-utils.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="spacer"></div>
|
||||
<div class="container">
|
||||
<div class="spacer"></div>
|
||||
<div id="div_with_margin" class="parent margin">
|
||||
<div class="child"></div>
|
||||
</div>
|
||||
<div class="spacer"></div>
|
||||
<div class="container">
|
||||
<div class="spacer"></div>
|
||||
<div id="div_without_margin" class="parent">
|
||||
<div class="child"></div>
|
||||
</div>
|
||||
</body>
|
||||
<script>
|
||||
async function runTest() {
|
||||
document.getElementById('div_with_margin').classList.remove("margin");
|
||||
document.getElementById('div_without_margin').classList.add("margin");
|
||||
takeScreenshot();
|
||||
}
|
||||
onload = () => {
|
||||
waitForAtLeastOneFrame().then(() => { runTest() });
|
||||
}
|
||||
</script>
|
||||
</html>
|
|
@ -0,0 +1,20 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Pseudo-Elements Test: ::target-text parsing</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#selectordef-target-text">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/css/support/parsing-testcommon.js"></script>
|
||||
<script>
|
||||
test_valid_selector("::target-text");
|
||||
test_valid_selector(".a::target-text");
|
||||
test_valid_selector("div ::target-text");
|
||||
test_valid_selector("::part(my-part)::target-text");
|
||||
|
||||
test_invalid_selector("::before::target-text");
|
||||
test_invalid_selector("::target-text.a");
|
||||
test_invalid_selector("::target-text div");
|
||||
test_invalid_selector("::target-text::after");
|
||||
test_invalid_selector("::target-text:hover");
|
||||
test_invalid_selector(":not(::target-text)");
|
||||
</script>
|
|
@ -0,0 +1,22 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSS Pseudo-Elements Test: ::target-text getComputedStyle</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#selectordef-target-text">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
#target::target-text {
|
||||
background-color: green;
|
||||
}
|
||||
#target::target-text {
|
||||
color: lime;
|
||||
}
|
||||
</style>
|
||||
<div id="target"></div>
|
||||
<script>
|
||||
test(() => {
|
||||
let style = getComputedStyle(target, "::target-text");
|
||||
assert_equals(style.backgroundColor, "rgb(0, 128, 0)", "Background color is green.");
|
||||
assert_equals(style.color, "rgb(0, 255, 0)", "Color is lime.");
|
||||
}, "getComputedStyle() for ::target-text");
|
||||
</script>
|
|
@ -35,4 +35,4 @@
|
|||
|
||||
<body lang="en">
|
||||
|
||||
<div>regulation implementation</div>
|
||||
<div>regulation implementation now</div>
|
||||
|
|
|
@ -39,14 +39,14 @@
|
|||
|
||||
<body lang="en">
|
||||
|
||||
<div>There are <span>new guidelines now</span>.</div>
|
||||
<div>There are <span>new engines now</span>.</div>
|
||||
|
||||
<!--
|
||||
Expected result:
|
||||
There
|
||||
are
|
||||
new
|
||||
guide-
|
||||
lines
|
||||
en-
|
||||
gines
|
||||
now.
|
||||
-->
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
}
|
||||
</style>
|
||||
|
||||
<div>regu-lation imple-menta-tion</div>
|
||||
<div>regu-lation imple-menta-tion now</div>
|
||||
|
||||
<!--
|
||||
Expected result:
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
}
|
||||
</style>
|
||||
|
||||
<div>regu‐lation imple‐menta‐tion</div>
|
||||
<div>regu‐lation imple‐menta‐tion now</div>
|
||||
|
||||
<!--
|
||||
Expected result:
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<body lang="en">
|
||||
|
||||
<div>regu‐<br>lation<br>imple‐<br>menta‐<br>tion</div>
|
||||
<div>regu‐<br>lation<br>imple‐<br>menta‐<br>tion<br>now</div>
|
||||
|
||||
<!--
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<body lang="en">
|
||||
|
||||
<div>regu-<br>lation<br>imple-<br>menta-<br>tion</div>
|
||||
<div>regu-<br>lation<br>imple-<br>menta-<br>tion<br>now</div>
|
||||
|
||||
<!--
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<body lang="en">
|
||||
|
||||
<div>There<br>are<br>new<br>guide‐<br>lines<br>now.</div>
|
||||
<div>There<br>are<br>new<br>en‐<br>gines<br>now.</div>
|
||||
|
||||
<!--
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
<body lang="en">
|
||||
|
||||
<div>There<br>are<br>new<br>guide-<br>lines<br>now.</div>
|
||||
<div>There<br>are<br>new<br>en-<br>gines<br>now.</div>
|
||||
|
||||
<!--
|
||||
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>CSS Test: CSSOM Media Query Serialization</title>
|
||||
<link rel="author" title="Ben Sheldon" href="mailto:ben@codeforamerica.org">
|
||||
<link rel="author" title="Chapman Shoop" href="mailto:chapman.shoop@gmail.com">
|
||||
<link rel="help" href="http://www.w3.org/TR/cssom-1/#serializing-media-queries">
|
||||
<meta name="flags" content="dom">
|
||||
<meta name="assert" content="Media Queries are serialized according to the specification">
|
||||
<script src="/resources/testharness.js" type="text/javascript"></script>
|
||||
<script src="/resources/testharnessreport.js" type="text/javascript"></script>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>Test not run - javascript required.</noscript>
|
||||
<div id="log"></div>
|
||||
<script type="text/javascript">
|
||||
|
||||
var styleElement;
|
||||
var styleSheet;
|
||||
var mediaList;
|
||||
|
||||
// Setup - accepts media value for style element, e.g. <style media=???">
|
||||
function setupMedia(media) {
|
||||
styleElement = document.getElementById("styleElement");
|
||||
|
||||
if (styleElement) {
|
||||
// teardown
|
||||
document.getElementsByTagName("head")[0].removeChild(styleElement);
|
||||
styleElement = undefined;
|
||||
styleSheet = undefined;
|
||||
mediaList = undefined;
|
||||
}
|
||||
|
||||
styleElement = document.createElement("style");
|
||||
styleElement.id = "styleElement";
|
||||
styleElement.type = "text/css";
|
||||
styleElement.media = media;
|
||||
document.getElementsByTagName("head")[0].appendChild(styleElement);
|
||||
styleSheet = styleElement.sheet;
|
||||
mediaList = styleSheet.media;
|
||||
}
|
||||
|
||||
// First explicit example input (first column) and output (second column) in specification.
|
||||
test(function() {
|
||||
setupMedia('not screen and (min-WIDTH:5px) AND (max-width:40px )');
|
||||
|
||||
assert_equals(mediaList.mediaText, "not screen and (max-width: 40px) and (min-width: 5px)");
|
||||
|
||||
}, "mediatest_mediaquery_serialize_1");
|
||||
|
||||
// Second explicit example input (first column) and output (second column) in specification.
|
||||
test(function() {
|
||||
setupMedia('all and (color) and (color) ');
|
||||
|
||||
assert_equals(mediaList.mediaText, "(color)");
|
||||
|
||||
}, "mediatest_mediaquery_serialize_2");
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<title>CSSOM test: Media query serialization quirks</title>
|
||||
<link rel="help" href="https://drafts.csswg.org/cssom/#serializing-media-queries">
|
||||
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
|
||||
<link rel="author" href="https://mozilla.org" title="Mozilla">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
test(function() {
|
||||
assert_equals(matchMedia("(min-width: 10px) and (min-height: 10px)").media, "(min-width: 10px) and (min-height: 10px)");
|
||||
} , "Media queries are not sorted lexicographically");
|
||||
test(function() {
|
||||
assert_equals(matchMedia("(color) and (color)").media, "(color) and (color)");
|
||||
}, "Media queries are not deduplicated");
|
||||
</script>
|
|
@ -83,6 +83,10 @@ which is commonly referred to as the "upstream" repository. Synchronizing your
|
|||
forked repository with the upstream repository will keep your forked local copy
|
||||
up-to-date with the latest commits.
|
||||
|
||||
In the vast majority of cases, the **only** upstream branch that you should
|
||||
need to care about is `master`. If you see other branches in the repository,
|
||||
you can generally safely ignore them.
|
||||
|
||||
1. On the command line, navigate to to the directory where your forked copy of
|
||||
the repository is located.
|
||||
|
||||
|
@ -99,13 +103,16 @@ up-to-date with the latest commits.
|
|||
4. To pull in changes in the original repository that are not present in your
|
||||
local repository first fetch them:
|
||||
|
||||
$ git fetch upstream
|
||||
$ git fetch -p upstream
|
||||
|
||||
Then merge them into your local repository:
|
||||
|
||||
$ git merge upstream/master
|
||||
|
||||
For additional information, please see the [GitHub docs][github-fork-docs].
|
||||
We recommend using `-p` to "prune" the outdated branches that would
|
||||
otherwise accumulate in your local repository.
|
||||
|
||||
For additional information, please see the [GitHub docs][github-fork-docs].
|
||||
|
||||
## Configure your environment
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<body class="show_output">
|
||||
|
||||
<h1>2d.text.drawing.style.spacing</h1>
|
||||
<p class="desc">Testing baselines</p>
|
||||
<p class="desc">Testing letter spacing and word spacing</p>
|
||||
|
||||
|
||||
<p class="output">Actual output:</p>
|
||||
|
@ -16,7 +16,7 @@
|
|||
|
||||
<ul id="d"></ul>
|
||||
<script>
|
||||
var t = async_test("Testing baselines");
|
||||
var t = async_test("Testing letter spacing and word spacing");
|
||||
_addTest(function(canvas, ctx) {
|
||||
|
||||
_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0");
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
|
||||
<title>Canvas test: 2d.text.drawing.style.spacing.measure</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.spacing.measure</h1>
|
||||
<p class="desc">Testing letter spacing and word spacing</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 letter spacing and word spacing");
|
||||
_addTest(function(canvas, ctx) {
|
||||
|
||||
_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0");
|
||||
_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0");
|
||||
var width_normal = ctx.measureText('Hello World').width;
|
||||
|
||||
ctx.textLetterSpacing = 3;
|
||||
_assertSame(ctx.textLetterSpacing, 3, "ctx.textLetterSpacing", "3");
|
||||
_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0");
|
||||
var width_with_spacing = ctx.measureText('Hello World').width;
|
||||
// Add letter spacing after each letter, so 11 * 3 = 33px longer.
|
||||
_assertSame(width_with_spacing, width_normal + 33, "width_with_spacing", "width_normal + 33");
|
||||
|
||||
ctx.textWordSpacing = 5;
|
||||
ctx.textLetterSpacing = 0;
|
||||
_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0");
|
||||
_assertSame(ctx.textWordSpacing, 5, "ctx.textWordSpacing", "5");
|
||||
// Add Word Spacing between "Hello" and "World", so it's 5px longer.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
_assertSame(width_with_spacing, width_normal + 5, "width_with_spacing", "width_normal + 5");
|
||||
|
||||
ctx.textLetterSpacing = -2;
|
||||
ctx.textWordSpacing = -1;
|
||||
_assertSame(ctx.textLetterSpacing, -2, "ctx.textLetterSpacing", "-2");
|
||||
_assertSame(ctx.textWordSpacing, -1, "ctx.textWordSpacing", "-1");
|
||||
// Add Word Spacing and letter spacing, so it's -11*2 = -22px from
|
||||
// letter spacing and -1px from word spacing.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
_assertSame(width_with_spacing, width_normal - 23, "width_with_spacing", "width_normal - 23");
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
|
@ -6,11 +6,11 @@
|
|||
<script src="/html/canvas/resources/canvas-tests.js"></script>
|
||||
|
||||
<h1>2d.text.drawing.style.spacing</h1>
|
||||
<p class="desc">Testing baselines</p>
|
||||
<p class="desc">Testing letter spacing and word spacing</p>
|
||||
|
||||
|
||||
<script>
|
||||
var t = async_test("Testing baselines");
|
||||
var t = async_test("Testing letter spacing and word spacing");
|
||||
var t_pass = t.done.bind(t);
|
||||
var t_fail = t.step_func(function(reason) {
|
||||
throw reason;
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
<!DOCTYPE html>
|
||||
<!-- DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py. -->
|
||||
<title>OffscreenCanvas test: 2d.text.drawing.style.spacing.measure</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.spacing.measure</h1>
|
||||
<p class="desc">Testing letter spacing and word spacing</p>
|
||||
|
||||
|
||||
<script>
|
||||
var t = async_test("Testing letter spacing and word spacing");
|
||||
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');
|
||||
|
||||
_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0");
|
||||
_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0");
|
||||
var width_normal = ctx.measureText('Hello World').width;
|
||||
|
||||
ctx.textLetterSpacing = 3;
|
||||
_assertSame(ctx.textLetterSpacing, 3, "ctx.textLetterSpacing", "3");
|
||||
_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0");
|
||||
var width_with_spacing = ctx.measureText('Hello World').width;
|
||||
// Add letter spacing after each letter, so 11 * 3 = 33px longer.
|
||||
_assertSame(width_with_spacing, width_normal + 33, "width_with_spacing", "width_normal + 33");
|
||||
|
||||
ctx.textWordSpacing = 5;
|
||||
ctx.textLetterSpacing = 0;
|
||||
_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0");
|
||||
_assertSame(ctx.textWordSpacing, 5, "ctx.textWordSpacing", "5");
|
||||
// Add Word Spacing between "Hello" and "World", so it's 5px longer.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
_assertSame(width_with_spacing, width_normal + 5, "width_with_spacing", "width_normal + 5");
|
||||
|
||||
ctx.textLetterSpacing = -2;
|
||||
ctx.textWordSpacing = -1;
|
||||
_assertSame(ctx.textLetterSpacing, -2, "ctx.textLetterSpacing", "-2");
|
||||
_assertSame(ctx.textWordSpacing, -1, "ctx.textWordSpacing", "-1");
|
||||
// Add Word Spacing and letter spacing, so it's -11*2 = -22px from
|
||||
// letter spacing and -1px from word spacing.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
_assertSame(width_with_spacing, width_normal - 23, "width_with_spacing", "width_normal - 23");
|
||||
t.done();
|
||||
|
||||
});
|
||||
</script>
|
|
@ -0,0 +1,49 @@
|
|||
// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
|
||||
// OffscreenCanvas test in a worker:2d.text.drawing.style.spacing.measure
|
||||
// Description:Testing letter spacing and word spacing
|
||||
// Note:
|
||||
|
||||
importScripts("/resources/testharness.js");
|
||||
importScripts("/html/canvas/resources/canvas-tests.js");
|
||||
|
||||
var t = async_test("Testing letter spacing and word spacing");
|
||||
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');
|
||||
|
||||
_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0");
|
||||
_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0");
|
||||
var width_normal = ctx.measureText('Hello World').width;
|
||||
|
||||
ctx.textLetterSpacing = 3;
|
||||
_assertSame(ctx.textLetterSpacing, 3, "ctx.textLetterSpacing", "3");
|
||||
_assertSame(ctx.textWordSpacing, 0, "ctx.textWordSpacing", "0");
|
||||
var width_with_spacing = ctx.measureText('Hello World').width;
|
||||
// Add letter spacing after each letter, so 11 * 3 = 33px longer.
|
||||
_assertSame(width_with_spacing, width_normal + 33, "width_with_spacing", "width_normal + 33");
|
||||
|
||||
ctx.textWordSpacing = 5;
|
||||
ctx.textLetterSpacing = 0;
|
||||
_assertSame(ctx.textLetterSpacing, 0, "ctx.textLetterSpacing", "0");
|
||||
_assertSame(ctx.textWordSpacing, 5, "ctx.textWordSpacing", "5");
|
||||
// Add Word Spacing between "Hello" and "World", so it's 5px longer.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
_assertSame(width_with_spacing, width_normal + 5, "width_with_spacing", "width_normal + 5");
|
||||
|
||||
ctx.textLetterSpacing = -2;
|
||||
ctx.textWordSpacing = -1;
|
||||
_assertSame(ctx.textLetterSpacing, -2, "ctx.textLetterSpacing", "-2");
|
||||
_assertSame(ctx.textWordSpacing, -1, "ctx.textWordSpacing", "-1");
|
||||
// Add Word Spacing and letter spacing, so it's -11*2 = -22px from
|
||||
// letter spacing and -1px from word spacing.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
_assertSame(width_with_spacing, width_normal - 23, "width_with_spacing", "width_normal - 23");
|
||||
t.done();
|
||||
|
||||
});
|
||||
done();
|
|
@ -1,12 +1,12 @@
|
|||
// DO NOT EDIT! This test has been generated by /html/canvas/tools/gentest.py.
|
||||
// OffscreenCanvas test in a worker:2d.text.drawing.style.spacing
|
||||
// Description:Testing baselines
|
||||
// Description:Testing letter spacing and word spacing
|
||||
// Note:
|
||||
|
||||
importScripts("/resources/testharness.js");
|
||||
importScripts("/html/canvas/resources/canvas-tests.js");
|
||||
|
||||
var t = async_test("Testing baselines");
|
||||
var t = async_test("Testing letter spacing and word spacing");
|
||||
var t_pass = t.done.bind(t);
|
||||
var t_fail = t.step_func(function(reason) {
|
||||
throw reason;
|
||||
|
|
|
@ -739,7 +739,7 @@
|
|||
});
|
||||
|
||||
- name: 2d.text.drawing.style.spacing
|
||||
desc: Testing baselines
|
||||
desc: Testing letter spacing and word spacing
|
||||
testing:
|
||||
- 2d.text.drawing.style.spacing
|
||||
code: |
|
||||
|
@ -759,6 +759,39 @@
|
|||
@assert ctx.textLetterSpacing === -1;
|
||||
@assert ctx.textWordSpacing === -1;
|
||||
|
||||
- name: 2d.text.drawing.style.spacing.measure
|
||||
desc: Testing letter spacing and word spacing
|
||||
testing:
|
||||
- 2d.text.drawing.style.spacing
|
||||
code: |
|
||||
@assert ctx.textLetterSpacing === 0;
|
||||
@assert ctx.textWordSpacing === 0;
|
||||
var width_normal = ctx.measureText('Hello World').width;
|
||||
|
||||
ctx.textLetterSpacing = 3;
|
||||
@assert ctx.textLetterSpacing === 3;
|
||||
@assert ctx.textWordSpacing === 0;
|
||||
var width_with_spacing = ctx.measureText('Hello World').width;
|
||||
// Add letter spacing after each letter, so 11 * 3 = 33px longer.
|
||||
@assert width_with_spacing === width_normal + 33;
|
||||
|
||||
ctx.textWordSpacing = 5;
|
||||
ctx.textLetterSpacing = 0;
|
||||
@assert ctx.textLetterSpacing === 0;
|
||||
@assert ctx.textWordSpacing === 5;
|
||||
// Add Word Spacing between "Hello" and "World", so it's 5px longer.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
@assert width_with_spacing === width_normal + 5;
|
||||
|
||||
ctx.textLetterSpacing = -2;
|
||||
ctx.textWordSpacing = -1;
|
||||
@assert ctx.textLetterSpacing === -2;
|
||||
@assert ctx.textWordSpacing === -1;
|
||||
// Add Word Spacing and letter spacing, so it's -11*2 = -22px from
|
||||
// letter spacing and -1px from word spacing.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
@assert width_with_spacing === width_normal - 23;
|
||||
|
||||
- name: 2d.text.drawing.style.fontKerning
|
||||
desc: Testing basic functionalities of fontKerning for canvas
|
||||
testing:
|
||||
|
|
|
@ -1236,7 +1236,7 @@
|
|||
}).then(t_pass, t_fail);
|
||||
|
||||
- name: 2d.text.drawing.style.spacing
|
||||
desc: Testing baselines
|
||||
desc: Testing letter spacing and word spacing
|
||||
testing:
|
||||
- 2d.text.drawing.style.spacing
|
||||
code: |
|
||||
|
@ -1257,6 +1257,40 @@
|
|||
@assert ctx.textWordSpacing === -1;
|
||||
t.done();
|
||||
|
||||
- name: 2d.text.drawing.style.spacing.measure
|
||||
desc: Testing letter spacing and word spacing
|
||||
testing:
|
||||
- 2d.text.drawing.style.spacing
|
||||
code: |
|
||||
@assert ctx.textLetterSpacing === 0;
|
||||
@assert ctx.textWordSpacing === 0;
|
||||
var width_normal = ctx.measureText('Hello World').width;
|
||||
|
||||
ctx.textLetterSpacing = 3;
|
||||
@assert ctx.textLetterSpacing === 3;
|
||||
@assert ctx.textWordSpacing === 0;
|
||||
var width_with_spacing = ctx.measureText('Hello World').width;
|
||||
// Add letter spacing after each letter, so 11 * 3 = 33px longer.
|
||||
@assert width_with_spacing === width_normal + 33;
|
||||
|
||||
ctx.textWordSpacing = 5;
|
||||
ctx.textLetterSpacing = 0;
|
||||
@assert ctx.textLetterSpacing === 0;
|
||||
@assert ctx.textWordSpacing === 5;
|
||||
// Add Word Spacing between "Hello" and "World", so it's 5px longer.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
@assert width_with_spacing === width_normal + 5;
|
||||
|
||||
ctx.textLetterSpacing = -2;
|
||||
ctx.textWordSpacing = -1;
|
||||
@assert ctx.textLetterSpacing === -2;
|
||||
@assert ctx.textWordSpacing === -1;
|
||||
// Add Word Spacing and letter spacing, so it's -11*2 = -22px from
|
||||
// letter spacing and -1px from word spacing.
|
||||
width_with_spacing = ctx.measureText('Hello World').width;
|
||||
@assert width_with_spacing === width_normal - 23;
|
||||
t.done();
|
||||
|
||||
- name: 2d.text.drawing.style.fontKerning
|
||||
desc: Testing basic functionalities of fontKerning for canvas
|
||||
testing:
|
||||
|
|
|
@ -18,6 +18,13 @@ function terminateWorkerAfterMultipleSetTimeouts(test, worker, timeouts_remainin
|
|||
}
|
||||
|
||||
function startWorkerAndTerminateWorker(test, when_to_start_timeouts, timeouts_to_await) {
|
||||
// TODO(https://crbug.com/878133): Enable main-thread feature detection of
|
||||
// whether or not the implementation supports MSE-in-Workers, and fail the
|
||||
// test rapidly here rather than flakily pass/failing the test on those
|
||||
// implementations. If the timeout occurs near to when the worker's report
|
||||
// of lack of MSE support reaches the main thread, then the test could
|
||||
// pass in some cases (when timeout occurs prior to handling that error)
|
||||
// and fail in others (when worker.onerror dispatch occurs first).
|
||||
const worker = new Worker("mediasource-worker-util.js");
|
||||
worker.onerror = test.unreached_func("worker error");
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
<body>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/utils.js"></script>
|
||||
<script src="../resources/utils.js"></script>
|
||||
<style>
|
||||
#bordered {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border: 30px solid transparent;
|
||||
border-image-source: url(resources/circle.svg);
|
||||
border-image-source: url(../resources/circle.svg);
|
||||
border-image-width: 0px;
|
||||
}
|
||||
</style>
|
|
@ -38,7 +38,7 @@ async_test(function (t) {
|
|||
}));
|
||||
const iframe = document.createElement('iframe');
|
||||
iframe.id = 'child-iframe';
|
||||
iframe.src = 'resources/subframe-painting.html';
|
||||
iframe.src = '../resources/subframe-painting.html';
|
||||
document.body.appendChild(iframe);
|
||||
}, 'Parent frame ignores paint-timing events fired from child image rendering.');
|
||||
</script>
|
|
@ -14,7 +14,7 @@ setup({"hide_test_state": true});
|
|||
async_test(function (t) {
|
||||
assert_implements(window.PerformancePaintTiming, "Paint Timing isn't supported.");
|
||||
const body = document.getElementsByTagName('body')[0];
|
||||
body.style.backgroundImage = 'url(resources/circles.png)';
|
||||
body.style.backgroundImage = 'url(../resources/circles.png)';
|
||||
window.onload = function() {
|
||||
function testPaintEntries() {
|
||||
const bufferedEntries = performance.getEntriesByType('paint');
|
|
@ -12,7 +12,7 @@ setup({"hide_test_state": true});
|
|||
async_test(function (t) {
|
||||
assert_implements(window.PerformancePaintTiming, "Paint Timing isn't supported.");
|
||||
const img = document.createElement("IMG");
|
||||
img.src = "resources/circles.png";
|
||||
img.src = "../resources/circles.png";
|
||||
img.onload = function() {
|
||||
function testPaintEntries() {
|
||||
const bufferedEntries = performance.getEntriesByType('paint');
|
|
@ -34,7 +34,7 @@ async_test(function (t) {
|
|||
assert_equals(bufferedEntries[0].name, "first-paint");
|
||||
});
|
||||
const img = document.createElement("IMG");
|
||||
img.src = "resources/circles.png";
|
||||
img.src = "../resources/circles.png";
|
||||
img.onload = function() {
|
||||
function secondTestPaintEntries() {
|
||||
const moreBufferedEntries = performance.getEntriesByType('paint');
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue