Update web-platform-tests to revision 1a7f5f868420607ef13a00c6ec14fd9e0310e7c0
|
@ -7,7 +7,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||||
expected: FAIL
|
expected: TIMEOUT
|
||||||
|
|
||||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
|
@ -23366,7 +23366,7 @@
|
||||||
},
|
},
|
||||||
"web-nfc": {
|
"web-nfc": {
|
||||||
"NDEFReader-document-hidden-manual.https.html": [
|
"NDEFReader-document-hidden-manual.https.html": [
|
||||||
"9cf42e83bf306b5272fd753461fb78c3c9a4992f",
|
"10ce53e4a4f40bd0dfae074bf854f3491ea964a6",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -24335,6 +24335,19 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"content-dpr": {
|
"content-dpr": {
|
||||||
|
"content-dpr-various-elements.html": [
|
||||||
|
"728ef264e9db2231f74459101be07490473fa021",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/content-dpr/content-dpr-various-elements-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"image-pseudo-element-content-dpr.html": [
|
"image-pseudo-element-content-dpr.html": [
|
||||||
"7770df39997206261036029734b2304e6be331b2",
|
"7770df39997206261036029734b2304e6be331b2",
|
||||||
[
|
[
|
||||||
|
@ -203162,6 +203175,19 @@
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"not-links.html": [
|
||||||
|
"d49a86fd0ea710d8fd36798e84034f3042e58e81",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/selectors/not-links-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"of-type-selectors.xhtml": [
|
"of-type-selectors.xhtml": [
|
||||||
"73ec208b8f219d8d3b74984d65c8e72a997c8470",
|
"73ec208b8f219d8d3b74984d65c8e72a997c8470",
|
||||||
[
|
[
|
||||||
|
@ -231108,6 +231134,123 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"reftests": {
|
"reftests": {
|
||||||
|
"marker-path-001.svg": [
|
||||||
|
"6eeac7fc8f431bd7949bc998af68b36fdc2e1347",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/painting/reftests/marker-path-001-ref.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"marker-path-002.svg": [
|
||||||
|
"7467c7d52331597d6d80cb33b2292804ce58904b",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/painting/reftests/marker-path-002-ref.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"marker-path-003.svg": [
|
||||||
|
"a31bf84e52e0f1f36cb42142ff06dcb3ed47f18f",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/painting/reftests/marker-path-003-ref.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"marker-path-011.svg": [
|
||||||
|
"b6627f86e8cf4c24a7e6b9da2e125104da7a7336",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/painting/reftests/marker-path-011-ref.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"marker-path-012.svg": [
|
||||||
|
"1586951b1f2a53ac08c0fb178947aa57183849ec",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/painting/reftests/marker-path-012-ref.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"marker-path-013.svg": [
|
||||||
|
"e7a44351faea715a5ff3c5f3e3a8b127249b0d60",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/painting/reftests/marker-path-013-ref.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"marker-path-021.svg": [
|
||||||
|
"db4bc629e245f2a17e540be9bbc205f902ea7561",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/painting/reftests/marker-path-021-ref.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"marker-path-022.svg": [
|
||||||
|
"6a2345ab47078a28fad5775518b341c84c726dae",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/painting/reftests/marker-path-022-ref.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"marker-path-023.svg": [
|
||||||
|
"56fe216e2ff74c89ad4b93b1c811a67516dec724",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/painting/reftests/marker-path-023-ref.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"marker-units-strokewidth-non-scaling-stroke.svg": [
|
"marker-units-strokewidth-non-scaling-stroke.svg": [
|
||||||
"116c61c45ebfa7d2725df78f3a920fc3c24c7165",
|
"116c61c45ebfa7d2725df78f3a920fc3c24c7165",
|
||||||
[
|
[
|
||||||
|
@ -231998,6 +232141,19 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"use-inheritance-001.svg": [
|
||||||
|
"5e375b94cd6c15f4ded39f351ce91d67e94b74bd",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/svg/struct/reftests/reference/green-100x100.svg",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"use-svg-dimensions-override-001.svg": [
|
"use-svg-dimensions-override-001.svg": [
|
||||||
"c658adce80f82d5ce6457101ecd3b3d3f562ddd9",
|
"c658adce80f82d5ce6457101ecd3b3d3f562ddd9",
|
||||||
[
|
[
|
||||||
|
@ -251488,51 +251644,51 @@
|
||||||
],
|
],
|
||||||
"presentation-role": {
|
"presentation-role": {
|
||||||
"497.html": [
|
"497.html": [
|
||||||
"5efa4ab7798027c065871027d247252784bff3ba",
|
"a97df5db893b1e01b9df4abf78791573dc223c5a",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"498.html": [
|
"498.html": [
|
||||||
"834ba206d70077e3e2d06e7a45e8a5dfb833c62a",
|
"0a910a18fe3c712dcba762aea2f623f5d3afdb0d",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"499.html": [
|
"499.html": [
|
||||||
"ad2dee407edc0344918b1f73918e10ff8f34e196",
|
"3f751df39bc9bc192e0d5aac2dd5ecb31ba1292b",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"500.html": [
|
"500.html": [
|
||||||
"578e7a2db72474779d7256550f99f9b13829f3aa",
|
"0ff6cd807a791569fad8f37c9aa3315e1bfbe901",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"501.html": [
|
"501.html": [
|
||||||
"77cfc2ede08a01fe25d56edd39d2c0f90fb8d4c1",
|
"bdad37ed22eced067c49144b701efe5d0cac5ae1",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"502.html": [
|
"502.html": [
|
||||||
"ae8c74d5c78911d27b8c7e83dcc7e8f76e3c4669",
|
"d52afe008efc0f7be01f680d35cc9216d25b37f3",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"503.html": [
|
"503.html": [
|
||||||
"3859142529adc3fc8a9a0d74c0714d1223efa719",
|
"6157cd2fcda6eb5c3984f95a9bfd4f66020ceab9",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"504.html": [
|
"504.html": [
|
||||||
"ea19a43595765c73f6fe25a99ab9dde6276b50b4",
|
"c96550bc842a419b47323a2c245eb8324a794779",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"505.html": [
|
"505.html": [
|
||||||
"163156413011faa0a5b90e3971001f6c122fa179",
|
"e4665cb1b18f4eaae6221b8176a2d9fbf6d21883",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"506.html": [
|
"506.html": [
|
||||||
"495763d77999690ea590efd500f9d5191964bc46",
|
"f92881a1409c004708fa5921a616c2e6fe30d659",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"507.html": [
|
"507.html": [
|
||||||
"09e6859655e5f9c5cf198432215e916f20e7f3a0",
|
"a88438ec16ce54c66068d8bbe223fca187ce1ea4",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"509.html": [
|
"509.html": [
|
||||||
"9780ce2ac4e291540f5b561f7ed82d60c7f041c7",
|
"4450eb332fa30387f3d209248806af3ed0c55416",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"510.html": [
|
"510.html": [
|
||||||
|
@ -258441,6 +258597,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"content-dpr": {
|
"content-dpr": {
|
||||||
|
"content-dpr-various-elements-ref.html": [
|
||||||
|
"9a7e10e51b06ab6a4c2453b8f048cfd8709bd471",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"image-pseudo-element-content-dpr-ref.html": [
|
"image-pseudo-element-content-dpr-ref.html": [
|
||||||
"baa25ac87c8f96ca630d2a6b508d6f3649fb8bb8",
|
"baa25ac87c8f96ca630d2a6b508d6f3649fb8bb8",
|
||||||
[]
|
[]
|
||||||
|
@ -304752,6 +304912,10 @@
|
||||||
[]
|
[]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"not-links-ref.html": [
|
||||||
|
"1efe5943f4e33eb0046fa89dfac8a97eeff3da85",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"of-type-selectors-ref.xhtml": [
|
"of-type-selectors-ref.xhtml": [
|
||||||
"ae866213df0112292c3bade7c48ad2d27f9a14f8",
|
"ae866213df0112292c3bade7c48ad2d27f9a14f8",
|
||||||
[]
|
[]
|
||||||
|
@ -312364,7 +312528,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"redirect.py": [
|
"redirect.py": [
|
||||||
"eb5c98dd52ff8bc373bfcae42b1b517bd9a2158f",
|
"05129c515ad9433b68a69e43c58059c6c7faa3ba",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"sandboxed-iframe.html": [
|
"sandboxed-iframe.html": [
|
||||||
|
@ -312396,7 +312560,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"trickle.py": [
|
"trickle.py": [
|
||||||
"e2c9beec1e077c67b0d83202ba644c018cbace94",
|
"57c9407dc4b2db368b87930163efd6f36b49e849",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"utils.js": [
|
"utils.js": [
|
||||||
|
@ -315253,6 +315417,14 @@
|
||||||
"30ddeac2e7a3596de3910def1a7066e817873cbe",
|
"30ddeac2e7a3596de3910def1a7066e817873cbe",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"require-corp-sw.js": [
|
||||||
|
"3e2f069ded033f33528c8f850d330c5b4e84e46c",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"require-corp-sw.js.headers": [
|
||||||
|
"6604450991a122e3e241e40b1b9e0516c525389d",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"script-factory.js": [
|
"script-factory.js": [
|
||||||
"9db755226020479fd87e87f42ea622c999b38f7d",
|
"9db755226020479fd87e87f42ea622c999b38f7d",
|
||||||
[]
|
[]
|
||||||
|
@ -319729,7 +319901,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"resolve-url.js": [
|
"resolve-url.js": [
|
||||||
"cbe97edbbb3caf35f49d4f4859a263e1060d05b8",
|
"cac16d0b492f2362b49625a9961dc6608104d8bf",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"resource.py": [
|
"resource.py": [
|
||||||
|
@ -337423,7 +337595,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"nfc-mock.js": [
|
"nfc-mock.js": [
|
||||||
"ce1ad8e98b35bde2845354459026692e9400216a",
|
"7832a8231efb01f277960afc91adf01cfe3e3ac6",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"sensor.mojom.js": [
|
"sensor.mojom.js": [
|
||||||
|
@ -341467,6 +341639,42 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"reftests": {
|
"reftests": {
|
||||||
|
"marker-path-001-ref.svg": [
|
||||||
|
"8f766668e6de36479666f3f27fa8eed317e5dfe8",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"marker-path-002-ref.svg": [
|
||||||
|
"c9ee76915bf4156d56be4b6e6c4479c602da182d",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"marker-path-003-ref.svg": [
|
||||||
|
"3ba459c7002ad3714e2216ed25d95bbff04bc441",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"marker-path-011-ref.svg": [
|
||||||
|
"4d6cc760548f2e05a9fa3f8dc2eb8c5f4b889d23",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"marker-path-012-ref.svg": [
|
||||||
|
"ad44874cdadc59204c5c724ea157a3b3da570b38",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"marker-path-013-ref.svg": [
|
||||||
|
"e03fc4827ed92502506c01505979cdceb71aef5e",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"marker-path-021-ref.svg": [
|
||||||
|
"b452ca7325669a972cc913524ca5c27b5870564a",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"marker-path-022-ref.svg": [
|
||||||
|
"2b808f02f0988ab49a8bd6a45af9127910d198cf",
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"marker-path-023-ref.svg": [
|
||||||
|
"a8e764442bb7dee2ce259082cf7cc0c8d1e143e0",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"markers-orient-001-ref.svg": [
|
"markers-orient-001-ref.svg": [
|
||||||
"871003f3a2303404696d467a7cfaad729b811206",
|
"871003f3a2303404696d467a7cfaad729b811206",
|
||||||
[]
|
[]
|
||||||
|
@ -342669,7 +342877,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"serve.py": [
|
"serve.py": [
|
||||||
"f63bdcca5b00520334d99334a74e748544fc45e1",
|
"e4f0d5efaee37170a9c03a208924e483b2a4608a",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"test_functional.py": [
|
"test_functional.py": [
|
||||||
|
@ -347299,7 +347507,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"testfiles.py": [
|
"testfiles.py": [
|
||||||
"a9a8fe87ba50582d4cd15a6a233a372119ad265c",
|
"f2960e8f51e445e3f6f53ba8e7c0145aa5072038",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"tests": {
|
"tests": {
|
||||||
|
@ -348390,7 +348598,7 @@
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"server.py": [
|
"server.py": [
|
||||||
"c037732a6baef31d58b3dff927b074dfcfabb4ff",
|
"9e842802fc0f1b273cd78313275e0bf78dbcaf64",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"sslutils": {
|
"sslutils": {
|
||||||
|
@ -353682,10 +353890,6 @@
|
||||||
"2db48544a2d7d7f55201043e73297283cd99c263",
|
"2db48544a2d7d7f55201043e73297283cd99c263",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"returns-same-object.js": [
|
|
||||||
"c004d8f7e564e2c43860d6f7da6d1cedffc5a9df",
|
|
||||||
[]
|
|
||||||
],
|
|
||||||
"setting-members.js": [
|
"setting-members.js": [
|
||||||
"4c5c8a35ae88ce2d65b1426fdf37230fa261039c",
|
"4c5c8a35ae88ce2d65b1426fdf37230fa261039c",
|
||||||
[]
|
[]
|
||||||
|
@ -353841,6 +354045,10 @@
|
||||||
"527702f551174f8f2578fce16c7854351126e3a5",
|
"527702f551174f8f2578fce16c7854351126e3a5",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"dynamic-import-data-url-block-cross-origin.js": [
|
||||||
|
"caa15319c55c0ff2302df96391002461f7b4207c",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"dynamic-import-given-url-worker.js": [
|
"dynamic-import-given-url-worker.js": [
|
||||||
"55102759352c5564e832e37bb8c7f0e7bd007f4d",
|
"55102759352c5564e832e37bb8c7f0e7bd007f4d",
|
||||||
[]
|
[]
|
||||||
|
@ -353865,6 +354073,10 @@
|
||||||
"56f8a6ffe822ecb8fa0d042cc4c246a3c623f8c6",
|
"56f8a6ffe822ecb8fa0d042cc4c246a3c623f8c6",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"dynamic-import-script-block-cross-origin.js": [
|
||||||
|
"52ec5306635916b5db6cf10de27bc9e171aad529",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"dynamic-import-worker.js": [
|
"dynamic-import-worker.js": [
|
||||||
"2e756fe055e9e9ec815031483b02dc286918ca2c",
|
"2e756fe055e9e9ec815031483b02dc286918ca2c",
|
||||||
[]
|
[]
|
||||||
|
@ -353877,6 +354089,10 @@
|
||||||
"60080d4292a8033e9824a289eef85574cc6a3a81",
|
"60080d4292a8033e9824a289eef85574cc6a3a81",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"export-block-cross-origin.js": [
|
||||||
|
"a4b513d280e9eddc105c62cadd6894ac829a705d",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"export-credentials.py": [
|
"export-credentials.py": [
|
||||||
"be6d2ff2fc17b94d69548746cd25d6b6c471cb0c",
|
"be6d2ff2fc17b94d69548746cd25d6b6c471cb0c",
|
||||||
[]
|
[]
|
||||||
|
@ -353957,6 +354173,10 @@
|
||||||
"2d857a2e90a11af9f52e5d59d15ee30d225deeaf",
|
"2d857a2e90a11af9f52e5d59d15ee30d225deeaf",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"static-import-data-url-block-cross-origin.js": [
|
||||||
|
"833348d66cce77334e10a214d6299d3b0dad085c",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"static-import-non-existent-script-worker.js": [
|
"static-import-non-existent-script-worker.js": [
|
||||||
"16f70e9daf4909605746c6614a509afb3cf71ed1",
|
"16f70e9daf4909605746c6614a509afb3cf71ed1",
|
||||||
[]
|
[]
|
||||||
|
@ -353981,6 +354201,10 @@
|
||||||
"ffcab9e45fdfec17bb2db64f0d4dba3d89ed8308",
|
"ffcab9e45fdfec17bb2db64f0d4dba3d89ed8308",
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"static-import-script-block-cross-origin.js": [
|
||||||
|
"82be8e7ce72edab7050b14cccc658ff39ddfe632",
|
||||||
|
[]
|
||||||
|
],
|
||||||
"static-import-worker.js": [
|
"static-import-worker.js": [
|
||||||
"19a347999d386fd4df8dc831c6d164b27630ef7a",
|
"19a347999d386fd4df8dc831c6d164b27630ef7a",
|
||||||
[]
|
[]
|
||||||
|
@ -377220,7 +377444,7 @@
|
||||||
},
|
},
|
||||||
"content-dpr": {
|
"content-dpr": {
|
||||||
"image-with-dpr-header.html": [
|
"image-with-dpr-header.html": [
|
||||||
"6c4e60844763469bbe21990879191eac0f296230",
|
"bfa1509d46455945acb9b31d6789726b2f860c84",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -405732,7 +405956,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"focus-visible-010.html": [
|
"focus-visible-010.html": [
|
||||||
"eb01204b29c8e30b651b083459c01983b99dd70d",
|
"00cd7f0b665d90a82b9939b5451b1e10cf89e5ee",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -428317,6 +428541,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"anchor-jsurl-form-submit.html": [
|
||||||
|
"b0534cd52e51e7f13ee42a2ae6e1602d3071d270",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"child_navigates_parent_location.html": [
|
"child_navigates_parent_location.html": [
|
||||||
"9111232e26e7de672b9e4df4b47b1c408338ae1c",
|
"9111232e26e7de672b9e4df4b47b1c408338ae1c",
|
||||||
[
|
[
|
||||||
|
@ -430742,6 +430973,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"require-corp-sw.https.html": [
|
||||||
|
"690ea6314f5c28c1bd8b58cb0d2350831361314f",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"require-corp.https.html": [
|
"require-corp.https.html": [
|
||||||
"6f799b6e4086c1e73654b694174cacc496b2582d",
|
"6f799b6e4086c1e73654b694174cacc496b2582d",
|
||||||
[
|
[
|
||||||
|
@ -432568,7 +432806,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"utf-16be.html": [
|
"utf-16be.html": [
|
||||||
"ae28fb6d6a7c08ff3ccc5353139e2842492d9950",
|
"db15896c86c1dfdec07f04ca7f923141ab1d2dfe",
|
||||||
[
|
[
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=appcache",
|
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=appcache",
|
||||||
{
|
{
|
||||||
|
@ -432670,16 +432908,10 @@
|
||||||
{
|
{
|
||||||
"timeout": "long"
|
"timeout": "long"
|
||||||
}
|
}
|
||||||
],
|
|
||||||
[
|
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=xmldocument",
|
|
||||||
{
|
|
||||||
"timeout": "long"
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"utf-16le.html": [
|
"utf-16le.html": [
|
||||||
"1d0bb574a77bb9a78cba3a8bb4a869ea780944a4",
|
"1a3e4926b466f5ec6b3ee10938a5bc15d884722f",
|
||||||
[
|
[
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html?include=appcache",
|
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html?include=appcache",
|
||||||
{
|
{
|
||||||
|
@ -432781,16 +433013,10 @@
|
||||||
{
|
{
|
||||||
"timeout": "long"
|
"timeout": "long"
|
||||||
}
|
}
|
||||||
],
|
|
||||||
[
|
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html?include=xmldocument",
|
|
||||||
{
|
|
||||||
"timeout": "long"
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"utf-8.html": [
|
"utf-8.html": [
|
||||||
"c521c9dc398b4c200bc357d4a66c55efd38f7ae9",
|
"7434dc9176c9f8695a4cf89e2cbec5a7d2ead6f3",
|
||||||
[
|
[
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=appcache",
|
"html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=appcache",
|
||||||
{
|
{
|
||||||
|
@ -432892,16 +433118,10 @@
|
||||||
{
|
{
|
||||||
"timeout": "long"
|
"timeout": "long"
|
||||||
}
|
}
|
||||||
],
|
|
||||||
[
|
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=xmldocument",
|
|
||||||
{
|
|
||||||
"timeout": "long"
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"windows-1251.html": [
|
"windows-1251.html": [
|
||||||
"e80e12403aedfdddfd1aa73ed4057316a4e5a931",
|
"1c8ade458826b3a7d8076003b28ea65ba7aa363d",
|
||||||
[
|
[
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=appcache",
|
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=appcache",
|
||||||
{
|
{
|
||||||
|
@ -433003,16 +433223,10 @@
|
||||||
{
|
{
|
||||||
"timeout": "long"
|
"timeout": "long"
|
||||||
}
|
}
|
||||||
],
|
|
||||||
[
|
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=xmldocument",
|
|
||||||
{
|
|
||||||
"timeout": "long"
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"windows-1252.html": [
|
"windows-1252.html": [
|
||||||
"c2c6b0adeb13df97352f37ccfef9bd6b1fce9e63",
|
"5cefb612eafcd78f477a9464fa6f5aa940508f20",
|
||||||
[
|
[
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html?include=appcache",
|
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html?include=appcache",
|
||||||
{
|
{
|
||||||
|
@ -433114,12 +433328,6 @@
|
||||||
{
|
{
|
||||||
"timeout": "long"
|
"timeout": "long"
|
||||||
}
|
}
|
||||||
],
|
|
||||||
[
|
|
||||||
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html?include=xmldocument",
|
|
||||||
{
|
|
||||||
"timeout": "long"
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -438666,7 +438874,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"object-attributes.html": [
|
"object-attributes.html": [
|
||||||
"30fdcf520b8b519ab58187f40fd460454ffb39a3",
|
"c630d8055c60c3891a008281878466b86c1eef11",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -547143,7 +547351,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"commitStyles.html": [
|
"commitStyles.html": [
|
||||||
"ca7d6410d0aa9cd02431cb6f8aab427f941e5cc7",
|
"abda8f10e59febf1cfc3654d4f37c60ccf1e79fa",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -548630,7 +548838,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"NDEFReader_scan.https.html": [
|
"NDEFReader_scan.https.html": [
|
||||||
"6e66b7d4673d22d8863cabea57d802e92251d3b9",
|
"581412ea35d5d1e25dcc638380aa7fac540c7b9e",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -548665,7 +548873,7 @@
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"NDEFWriter_write.https.html": [
|
"NDEFWriter_write.https.html": [
|
||||||
"1cca68c4a9676d7d988f6b46bbba0250ccae40bd",
|
"4ca7faa12bcde0174153953ef351c7ba094caac5",
|
||||||
[
|
[
|
||||||
null,
|
null,
|
||||||
{}
|
{}
|
||||||
|
@ -560068,11 +560276,40 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"returns-same-object.html": [
|
"returns-same-object.any.js": [
|
||||||
"b69ea3aa05828c398cc1bc63f677930f9ee70ce0",
|
"ba9be9ce8a8534bfc17aa20f1df119ce4efad934",
|
||||||
[
|
[
|
||||||
null,
|
"workers/interfaces/WorkerGlobalScope/location/returns-same-object.any.serviceworker.html",
|
||||||
{}
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"!default,worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"workers/interfaces/WorkerGlobalScope/location/returns-same-object.any.sharedworker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"!default,worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"workers/interfaces/WorkerGlobalScope/location/returns-same-object.any.worker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"!default,worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
"setting-members.html": [
|
"setting-members.html": [
|
||||||
|
@ -560483,6 +560720,13 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"shared-worker-import-data-url-cross-origin.html": [
|
||||||
|
"3f22c5094d1b8c167d76af14bdce1dc912451f43",
|
||||||
|
[
|
||||||
|
null,
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"shared-worker-import-data-url.any.js": [
|
"shared-worker-import-data-url.any.js": [
|
||||||
"81df965b9e1276746c001350658c5ea80334b736",
|
"81df965b9e1276746c001350658c5ea80334b736",
|
||||||
[
|
[
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[hit-test-floats-003.html]
|
||||||
|
[Miss float below something else]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[CaretPosition-001.html]
|
||||||
|
[Element at (400, 100)]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -8,6 +8,3 @@
|
||||||
[throws if handleEvent is thruthy and not callable]
|
[throws if handleEvent is thruthy and not callable]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[looks up handleEvent method on every event dispatch]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,3 @@
|
||||||
[listeners are called when <iframe> is resized]
|
[listeners are called when <iframe> is resized]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[listeners are called correct number of times]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -21,3 +21,6 @@
|
||||||
[test the top of layer]
|
[test the top of layer]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[test some point of the element: top left corner]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -2,3 +2,6 @@
|
||||||
[elementsFromPoint on the root document for points in iframe elements]
|
[elementsFromPoint on the root document for points in iframe elements]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[elementsFromPoint on inner documents]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -2,3 +2,6 @@
|
||||||
[Programmatic focus on page load bshould match :focus-visible]
|
[Programmatic focus on page load bshould match :focus-visible]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[Programmatic focus on page load should match :focus-visible]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -312,21 +312,24 @@
|
||||||
[fetch(): separate response Content-Type: text/plain ]
|
[fetch(): separate response Content-Type: text/plain ]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain ]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/plain */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -53,9 +53,6 @@
|
||||||
[combined text/javascript ]
|
[combined text/javascript ]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
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!]
|
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[X-Content-Type-Options%3A%20'NosniFF']
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
[traverse_the_history_1.html]
|
|
||||||
[Multiple history traversals from the same task]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
[skip-document-with-fragment.html]
|
[skip-document-with-fragment.html]
|
||||||
expected: TIMEOUT
|
|
||||||
[Autofocus elements in iframed documents with URL fragments should be skipped.]
|
[Autofocus elements in iframed documents with URL fragments should be skipped.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Autofocus elements in top-level browsing context's documents with URI fragments should be skipped.]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Element with tabindex should support autofocus]
|
[Element with tabindex should support autofocus]
|
||||||
expected: TIMEOUT
|
expected: FAIL
|
||||||
|
|
||||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
@ -16,5 +16,5 @@
|
||||||
expected: NOTRUN
|
expected: NOTRUN
|
||||||
|
|
||||||
[Non-HTMLElement should not support autofocus]
|
[Non-HTMLElement should not support autofocus]
|
||||||
expected: NOTRUN
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -9,3 +9,6 @@
|
||||||
[object.height]
|
[object.height]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[object.contentWindow.name]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -14,3 +14,6 @@
|
||||||
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44059 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 29020.\n\t[29020\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44059 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 29020.\n\t[29020\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 42286 more errors.\n\tMax AbsError of 1.9962286949157715e+0 at index of 12332.\n\t[12332\]\t9.9879217147827148e-1\t-9.9743652343750000e-1\t1.9962286949157715e+0\t2.0013591321441684e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 10584.\n\t[10584\]\t-5.8778524398803711e-1\t0.0000000000000000e+0\t5.8778524398803711e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -134,3 +134,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[19030\]\t-7.1927757971934625e-8\t-7.3546999692916870e-1\t7.3546992500141073e-1\t9.9999990220164214e-1\t3.8985999999999999e-3\n\t[19031\]\t-3.6017334461212158e-1\t-6.9157749414443970e-1\t3.3140414953231812e-1\t4.7920030992665957e-1\t3.8985999999999999e-3\n\t[38059\]\t-1.5020843591173616e-7\t-9.8956179618835449e-1\t9.8956164597991858e-1\t9.9999984820711907e-1\t3.8985999999999999e-3\n\t[38060\]\t-8.8409073650836945e-2\t-9.9664616584777832e-1\t9.0823709219694138e-1\t9.1129341918891205e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.8956164597991858e-1 at index of 38059.\n\tMax RelError of 9.9999990220164214e-1 at index of 19030.\n]
|
[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[19030\]\t-7.1927757971934625e-8\t-7.3546999692916870e-1\t7.3546992500141073e-1\t9.9999990220164214e-1\t3.8985999999999999e-3\n\t[19031\]\t-3.6017334461212158e-1\t-6.9157749414443970e-1\t3.3140414953231812e-1\t4.7920030992665957e-1\t3.8985999999999999e-3\n\t[38059\]\t-1.5020843591173616e-7\t-9.8956179618835449e-1\t9.8956164597991858e-1\t9.9999984820711907e-1\t3.8985999999999999e-3\n\t[38060\]\t-8.8409073650836945e-2\t-9.9664616584777832e-1\t9.0823709219694138e-1\t9.1129341918891205e-1\t3.8985999999999999e-3\n\tMax AbsError of 9.8956164597991858e-1 at index of 38059.\n\tMax RelError of 9.9999990220164214e-1 at index of 19030.\n]
|
||||||
expected: FAIL
|
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[19030\]\t-2.2063343510520240e+31\t-7.3546999692916870e-1\t2.2063343510520240e+31\t2.9998971545599442e+31\t3.8985999999999999e-3\n\t[19031\]\t-3.6017334461212158e-1\t-6.9157749414443970e-1\t3.3140414953231812e-1\t4.7920030992665957e-1\t3.8985999999999999e-3\n\t[38059\]\t-5.1072609003262559e+31\t-9.8956179618835449e-1\t5.1072609003262559e+31\t5.1611338675347697e+31\t3.8985999999999999e-3\n\t[38060\]\t-8.8409073650836945e-2\t-9.9664616584777832e-1\t9.0823709219694138e-1\t9.1129341918891205e-1\t3.8985999999999999e-3\n\tMax AbsError of 5.1072609003262559e+31 at index of 38059.\n\tMax RelError of 5.1611338675347697e+31 at index of 38059.\n]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[X SNR (-591.4728047569859 dB) is not greater than or equal to 65.737. Got -591.4728047569859.]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[018.html]
|
|
||||||
expected: TIMEOUT
|
|
||||||
[origin of the script that invoked the method, javascript:]
|
|
||||||
expected: TIMEOUT
|
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
[returns-same-object.any.serviceworker.html]
|
||||||
|
expected: ERROR
|
||||||
|
|
||||||
|
[returns-same-object.any.sharedworker.html]
|
||||||
|
expected: ERROR
|
||||||
|
|
||||||
|
[returns-same-object.any.worker.html]
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 497 Image element with role="presentation" but with a reference to a description </title>
|
<title>Test 497 Image element with role="presentation" but with a reference to a description </title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-describedby="foo"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-describedby="foo"/>
|
||||||
<p id="foo">
|
<p id="foo">
|
||||||
This is an image.
|
This is an image.
|
||||||
</p>
|
</p>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 498 Image element with role="presentation" but aria-disabled="true" </title>
|
<title>Test 498 Image element with role="presentation" but aria-disabled="true" </title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-disabled="true"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-disabled="true"/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 499 Image element with role="presentation" but aria-dropeffect="move" </title>
|
<title>Test 499 Image element with role="presentation" but aria-dropeffect="move" </title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-dropeffect="move"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-dropeffect="move"/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 500 Image element with role="presentation" but with a valid aria-flowto attribute</title>
|
<title>Test 500 Image element with role="presentation" but with a valid aria-flowto attribute</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-flowto="test2"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-flowto="test2"/>
|
||||||
<div role="img" id="test2">
|
<div role="img" id="test2">
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 501 Image element with role="presentation" but with aria-grabbed="true"</title>
|
<title>Test 501 Image element with role="presentation" but with aria-grabbed="true"</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-grabbed="true"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-grabbed="true"/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 502 Image element with role="presentation" but with aria-haspopup="true"</title>
|
<title>Test 502 Image element with role="presentation" but with aria-haspopup="true"</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-haspopup="true"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-haspopup="true"/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 503 Image element with role="presentation" but with aria-hidden="true"</title>
|
<title>Test 503 Image element with role="presentation" but with aria-hidden="true"</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-hidden="true"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-hidden="true"/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 504 Image element with role="presentation" but with aria-invalid="true"</title>
|
<title>Test 504 Image element with role="presentation" but with aria-invalid="true"</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-invalid="true"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-invalid="true"/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 505 Image element with role="presentation" but with aria-label="test"</title>
|
<title>Test 505 Image element with role="presentation" but with aria-label="test"</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-label="test"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-label="test"/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 506 Image element with role="presentation" but with a valid aria-labelledby attribute</title>
|
<title>Test 506 Image element with role="presentation" but with a valid aria-labelledby attribute</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-labelledby="test2"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-labelledby="test2"/>
|
||||||
<div id="test2">
|
<div id="test2">
|
||||||
test_label
|
test_label
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 507 Image element with role="presentation" but with aria-live="assertive"</title>
|
<title>Test 507 Image element with role="presentation" but with aria-live="assertive"</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-live="assertive"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-live="assertive"/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<title>Test 509 Image element with role="presentation" but with aria-relevant="text"</title>
|
<title>Test 509 Image element with role="presentation" but with aria-relevant="text"</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<img src="foo.jpg" alt="test1" width="40" height="40" role="presentation" aria-live="polite" aria-relevant="text"/>
|
<img src="foo.jpg" alt="" width="40" height="40" role="presentation" aria-live="polite" aria-relevant="text"/>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Content-DPR: various elements</title>
|
||||||
|
<link rel="author" title="Noam Rosenthal" href="noam@webkit.org">
|
||||||
|
<meta name="assert" content="Assert that content-dpr is taken into account for images in all relevant elements (input/canvas/svg/video-poster)">
|
||||||
|
<style>
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row > * {
|
||||||
|
object-fit: none;
|
||||||
|
object-position: top left;
|
||||||
|
margin: 5px;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background: yellow;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
const canvas = document.getElementById('canvas')
|
||||||
|
const image = new Image()
|
||||||
|
image.onload = () => {
|
||||||
|
const ctx = canvas.getContext('2d')
|
||||||
|
ctx.drawImage(image, 0, 0, 50, 50)
|
||||||
|
}
|
||||||
|
image.src = "resources/square.png"
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>There following green boxes should all be 50px by 50px (cover 25% of the yellow boxes)</p>
|
||||||
|
<div class="row">
|
||||||
|
<div>
|
||||||
|
<img src="resources/square.png" width="50" height="50" />
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<video poster="resources/square.png" width="50" height="50"></video>
|
||||||
|
</div>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" ><image href="resources/square.png" width="50" height="50" /></svg>
|
||||||
|
<div>
|
||||||
|
<input type="image" src="resources/square.png" width="50" height="50" />
|
||||||
|
</div>
|
||||||
|
<canvas id="canvas" width="100" height="100">
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,47 @@
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Content-DPR: various elements</title>
|
||||||
|
<link rel="author" title="Noam Rosenthal" href="noam@webkit.org">
|
||||||
|
<link rel="match" href="content-dpr-various-elements-ref.html" />
|
||||||
|
<meta name="assert" content="Assert that content-dpr is taken into account for images in all relevant elements (input/canvas/svg/video-poster)">
|
||||||
|
<style>
|
||||||
|
.row {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row > * {
|
||||||
|
object-fit: none;
|
||||||
|
object-position: top left;
|
||||||
|
margin: 5px;
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background: yellow;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
document.addEventListener("DOMContentLoaded", () => {
|
||||||
|
const canvas = document.getElementById('canvas')
|
||||||
|
const image = new Image()
|
||||||
|
image.onload = () => {
|
||||||
|
const ctx = canvas.getContext('2d')
|
||||||
|
ctx.drawImage(image, 0, 0)
|
||||||
|
}
|
||||||
|
image.src = "resources/dpr.py?name=square.png&mimeType=image/png&dpr=2&cacheKiller=canvas"
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<p>There following green boxes should all be 50px by 50px (cover 25% of the yellow boxes)</p>
|
||||||
|
<div class="row">
|
||||||
|
<div>
|
||||||
|
<img src="resources/square.png" width="50" height="50" />
|
||||||
|
</div>
|
||||||
|
<video poster="resources/dpr.py?name=square.png&mimeType=image/png&dpr=2&cacheKiller=2"></video>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" ><image href="resources/dpr.py?name=square.png&mimeType=image/png&dpr=2&cacheKiller=3" /></svg>
|
||||||
|
<div>
|
||||||
|
<input type="image" src="resources/dpr.py?name=square.png&mimeType=image/png&dpr=2&cacheKiller=4" />
|
||||||
|
</div>
|
||||||
|
<canvas id="canvas" width="100" height="100">
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -7,6 +7,8 @@
|
||||||
<img id="smaller_than_one" src="resources/dpr.py?name=square.png&mimeType=image/png&dpr=0.5">
|
<img id="smaller_than_one" src="resources/dpr.py?name=square.png&mimeType=image/png&dpr=0.5">
|
||||||
<img id="srcset" srcset="resources/square.png 4x">
|
<img id="srcset" srcset="resources/square.png 4x">
|
||||||
<img id="invalid" src="resources/dpr.py?name=square.png&mimeType=image/png&dpr=xx">
|
<img id="invalid" src="resources/dpr.py?name=square.png&mimeType=image/png&dpr=xx">
|
||||||
|
<img id="invalid_negative" src="resources/dpr.py?name=square.png&mimeType=image/png&dpr=-2">
|
||||||
|
<img id="invalid_zero" src="resources/dpr.py?name=square.png&mimeType=image/png&dpr=0">
|
||||||
<img id="header_and_srcset_invalid" srcset="resources/dpr.py?name=square.png&mimeType=image/png&dpr=xx 4x">
|
<img id="header_and_srcset_invalid" srcset="resources/dpr.py?name=square.png&mimeType=image/png&dpr=xx 4x">
|
||||||
<img id="header_and_srcset_valid" srcset="resources/dpr.py?name=square.png&mimeType=image/png&dpr=4.0 2x">
|
<img id="header_and_srcset_valid" srcset="resources/dpr.py?name=square.png&mimeType=image/png&dpr=4.0 2x">
|
||||||
<img id="explicit_width" src="resources/dpr.py?name=square.png&mimeType=image/png&dpr=4.0" width="100" height="100">
|
<img id="explicit_width" src="resources/dpr.py?name=square.png&mimeType=image/png&dpr=4.0" width="100" height="100">
|
||||||
|
@ -21,6 +23,8 @@
|
||||||
assert_equals(document.getElementById("smaller_than_one").naturalWidth, 200, "Smaller than one Content-DPR header value")
|
assert_equals(document.getElementById("smaller_than_one").naturalWidth, 200, "Smaller than one Content-DPR header value")
|
||||||
assert_equals(document.getElementById("srcset").naturalWidth, 25, "srcset")
|
assert_equals(document.getElementById("srcset").naturalWidth, 25, "srcset")
|
||||||
assert_equals(document.getElementById("invalid").naturalWidth, 100, "Invalid Content-DPR header value")
|
assert_equals(document.getElementById("invalid").naturalWidth, 100, "Invalid Content-DPR header value")
|
||||||
|
assert_equals(document.getElementById("invalid_negative").naturalWidth, 100, "Negative Content-DPR header value")
|
||||||
|
assert_equals(document.getElementById("invalid_zero").naturalWidth, 100, "Zero Content-DPR header value")
|
||||||
assert_equals(document.getElementById("header_and_srcset_invalid").naturalWidth, 25, "Invalid Content-DPR header value with valid srcset")
|
assert_equals(document.getElementById("header_and_srcset_invalid").naturalWidth, 25, "Invalid Content-DPR header value with valid srcset")
|
||||||
assert_equals(document.getElementById("header_and_srcset_valid").naturalWidth, 25, "Value Content-DPR header value and srcset")
|
assert_equals(document.getElementById("header_and_srcset_valid").naturalWidth, 25, "Value Content-DPR header value and srcset")
|
||||||
assert_equals(document.getElementById("explicit_width").naturalWidth, 25, "Explicit width attribute")
|
assert_equals(document.getElementById("explicit_width").naturalWidth, 25, "Explicit width attribute")
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)");
|
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)");
|
||||||
t.done();
|
t.done();
|
||||||
}));
|
}));
|
||||||
}, "Programmatic focus on page load bshould match :focus-visible");
|
}, "Programmatic focus on page load should match :focus-visible");
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>Test that *:not(:link):not(:visited) does not match links</title>
|
||||||
|
<body>
|
||||||
|
<a href="#">Unvisited</a>
|
||||||
|
<a href="">Visited</a>
|
||||||
|
<span style="background-color: green">Green</span>
|
||||||
|
<p>
|
||||||
|
Only "Green" should have a green background.
|
||||||
|
</p>
|
||||||
|
</body>
|
17
tests/wpt/web-platform-tests/css/selectors/not-links.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>Test that *:not(:link):not(:visited) does not match links</title>
|
||||||
|
<link rel="match" href="not-links-ref.html">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/selectors-4/#negation">
|
||||||
|
<style>
|
||||||
|
body > *:not(:link):not(:visited) {
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<a href="#">Unvisited</a>
|
||||||
|
<a href="">Visited</a>
|
||||||
|
<span>Green</span>
|
||||||
|
<p style="background-color: initial">
|
||||||
|
Only "Green" should have a green background.
|
||||||
|
</p>
|
||||||
|
</body>
|
|
@ -1,7 +1,7 @@
|
||||||
from urllib import urlencode
|
|
||||||
from urlparse import urlparse
|
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
from six.moves.urllib.parse import urlencode, urlparse
|
||||||
|
|
||||||
def main(request, response):
|
def main(request, response):
|
||||||
stashed_data = {'count': 0, 'preflight': "0"}
|
stashed_data = {'count': 0, 'preflight': "0"}
|
||||||
status = 302
|
status = 302
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
from six.moves import xrange
|
||||||
|
|
||||||
def main(request, response):
|
def main(request, response):
|
||||||
delay = float(request.GET.first("ms", 500)) / 1E3
|
delay = float(request.GET.first("ms", 500)) / 1E3
|
||||||
count = int(request.GET.first("count", 50))
|
count = int(request.GET.first("count", 50))
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<link rel="author" title="Joey Arhar" href="mailto:jarhar@chromium.org">
|
||||||
|
<link rel="help" href="https://html.spec.whatwg.org/C/#following-hyperlinks">
|
||||||
|
<title>Anchor element with onclick form submission and href to javascript: url</title>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
|
||||||
|
<!-- When an anchor element has an onclick handler which submits a form,
|
||||||
|
the anchor's navigation should occur instead of the form's navigation.
|
||||||
|
However, if the anchor has an href which returns undefined, then the form
|
||||||
|
should be submitted. -->
|
||||||
|
|
||||||
|
<iframe name="test"></iframe>
|
||||||
|
<form target="test" action="form.html"></form>
|
||||||
|
<a id="anchor" target="test" onclick="document.forms[0].submit()" href="javascript:void(0)">Test</a>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
async_test(t => {
|
||||||
|
const anchor = document.getElementById('anchor');
|
||||||
|
t.step(() => anchor.click());
|
||||||
|
window.onmessage = t.step_func(event => {
|
||||||
|
if (typeof event.data === 'string' && event.data.includes('navigation')) {
|
||||||
|
assert_equals(event.data, 'form navigation');
|
||||||
|
t.done();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -0,0 +1,37 @@
|
||||||
|
<!doctype html>
|
||||||
|
<title>Cross Origin Embedder Policy: requests initiated from a service worker with 'require-corp'</title>
|
||||||
|
<script src=/resources/testharness.js></script>
|
||||||
|
<script src=/resources/testharnessreport.js></script>
|
||||||
|
<script src="/common/get-host-info.sub.js"></script>
|
||||||
|
<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
|
||||||
|
<script>
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const SCRIPT = 'resources/require-corp-sw.js';
|
||||||
|
const SCOPE = 'resources/in-scope';
|
||||||
|
let worker = null;
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
const registration =
|
||||||
|
await service_worker_unregister_and_register(t, SCRIPT, SCOPE);
|
||||||
|
promise_test(async t => registration.unregister(), 'Clean up global state');
|
||||||
|
worker = registration.installing;
|
||||||
|
await wait_for_state(t, worker, 'activated');
|
||||||
|
}, 'Set up global state');
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
const p = new Promise(resolve =>
|
||||||
|
navigator.serviceWorker.addEventListener('message', resolve,
|
||||||
|
{once: true}));
|
||||||
|
worker.postMessage('WithCorp');
|
||||||
|
assert_equals((await p).data, 'opaque');
|
||||||
|
}, "fetch() to 'CORP: cross-origin' response should succeed.");
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
const p = new Promise(resolve =>
|
||||||
|
navigator.serviceWorker.addEventListener('message', resolve,
|
||||||
|
{once: true}));
|
||||||
|
worker.postMessage('WithoutCorp');
|
||||||
|
assert_equals((await p).data, 'TypeError: Failed to fetch');
|
||||||
|
}, "fetch() to no CORP response should not succeed.");
|
||||||
|
</script>
|
|
@ -0,0 +1,27 @@
|
||||||
|
// Service worker with 'COEP: require-corp' response header.
|
||||||
|
// This service worker issues a network request for a resource with or without
|
||||||
|
// CORP response header.
|
||||||
|
|
||||||
|
importScripts("/common/get-host-info.sub.js");
|
||||||
|
|
||||||
|
self.addEventListener('message', e => {
|
||||||
|
e.waitUntil((async () => {
|
||||||
|
let result;
|
||||||
|
try {
|
||||||
|
let url;
|
||||||
|
if (e.data === 'WithCorp') {
|
||||||
|
url = get_host_info().HTTPS_REMOTE_ORIGIN +
|
||||||
|
'/html/cross-origin-embedder-policy/resources/' +
|
||||||
|
'nothing-cross-origin-corp.txt';
|
||||||
|
} else if (e.data === 'WithoutCorp') {
|
||||||
|
url = get_host_info().HTTPS_REMOTE_ORIGIN + '/common/blank.html';
|
||||||
|
}
|
||||||
|
const response = await fetch(url, { mode: 'no-cors' });
|
||||||
|
result = response.type;
|
||||||
|
} catch (error) {
|
||||||
|
result = `${error.name}: ${error.message}`;
|
||||||
|
} finally {
|
||||||
|
e.source.postMessage(result);
|
||||||
|
}
|
||||||
|
})());
|
||||||
|
});
|
|
@ -0,0 +1 @@
|
||||||
|
Cross-Origin-Embedder-Policy: require-corp
|
|
@ -353,16 +353,6 @@ onload = function() {
|
||||||
}, 'EventSource#url',
|
}, 'EventSource#url',
|
||||||
{help:'https://html.spec.whatwg.org/multipage/#dom-eventsource'});
|
{help:'https://html.spec.whatwg.org/multipage/#dom-eventsource'});
|
||||||
|
|
||||||
// XMLDocument#load()
|
|
||||||
subsetTestByKey('xmldocument', async_test, function() {
|
|
||||||
var doc = document.implementation.createDocument(null, "x");
|
|
||||||
doc.load(input_url_svg);
|
|
||||||
doc.onload = this.step_func_done(function() {
|
|
||||||
assert_equals(doc.documentElement.textContent, expected_current);
|
|
||||||
});
|
|
||||||
}, 'XMLDocument#load()',
|
|
||||||
{help:'https://html.spec.whatwg.org/multipage/#dom-xmldocument-load'});
|
|
||||||
|
|
||||||
// window.open
|
// window.open
|
||||||
subsetTestByKey('window-open', async_test, function() {
|
subsetTestByKey('window-open', async_test, function() {
|
||||||
var id = 'test_window_open';
|
var id = 'test_window_open';
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
<meta name="variant" content="?include=base-href">
|
<meta name="variant" content="?include=base-href">
|
||||||
<meta name="variant" content="?include=workers">
|
<meta name="variant" content="?include=workers">
|
||||||
<meta name="variant" content="?include=eventsource">
|
<meta name="variant" content="?include=eventsource">
|
||||||
<meta name="variant" content="?include=xmldocument">
|
|
||||||
<meta name="variant" content="?include=window-open">
|
<meta name="variant" content="?include=window-open">
|
||||||
<meta name="variant" content="?include=hyperlink-search">
|
<meta name="variant" content="?include=hyperlink-search">
|
||||||
<meta name="variant" content="?include=history">
|
<meta name="variant" content="?include=history">
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
<meta name="variant" content="?include=base-href">
|
<meta name="variant" content="?include=base-href">
|
||||||
<meta name="variant" content="?include=workers">
|
<meta name="variant" content="?include=workers">
|
||||||
<meta name="variant" content="?include=eventsource">
|
<meta name="variant" content="?include=eventsource">
|
||||||
<meta name="variant" content="?include=xmldocument">
|
|
||||||
<meta name="variant" content="?include=window-open">
|
<meta name="variant" content="?include=window-open">
|
||||||
<meta name="variant" content="?include=hyperlink-search">
|
<meta name="variant" content="?include=hyperlink-search">
|
||||||
<meta name="variant" content="?include=history">
|
<meta name="variant" content="?include=history">
|
||||||
|
|
|
@ -8,7 +8,6 @@
|
||||||
<meta name="variant" content="?include=base-href">
|
<meta name="variant" content="?include=base-href">
|
||||||
<meta name="variant" content="?include=workers">
|
<meta name="variant" content="?include=workers">
|
||||||
<meta name="variant" content="?include=eventsource">
|
<meta name="variant" content="?include=eventsource">
|
||||||
<meta name="variant" content="?include=xmldocument">
|
|
||||||
<meta name="variant" content="?include=window-open">
|
<meta name="variant" content="?include=window-open">
|
||||||
<meta name="variant" content="?include=hyperlink-search">
|
<meta name="variant" content="?include=hyperlink-search">
|
||||||
<meta name="variant" content="?include=history">
|
<meta name="variant" content="?include=history">
|
||||||
|
|
|
@ -7,34 +7,44 @@
|
||||||
<body onload="on_load()">
|
<body onload="on_load()">
|
||||||
<div id="log"></div>
|
<div id="log"></div>
|
||||||
<form>
|
<form>
|
||||||
<object id="obj1" data="blue.html" name="o" height="50" width="100"></object>
|
<object id="obj1" data="/common/blank.html" name="o" height="50" width="100"></object>
|
||||||
<object id="obj2" name="p" type="image/png"></object>
|
<object id="obj2" name="p" type="image/png"></object>
|
||||||
|
<object id="obj3" data="missing.html" name="o3" height="50" width="100"></object>
|
||||||
</form>
|
</form>
|
||||||
<script>
|
<script>
|
||||||
var obj1;
|
var obj1;
|
||||||
var obj2;
|
var obj2;
|
||||||
|
var obj3;
|
||||||
var t1 = async_test("object.contentWindow");
|
var t1 = async_test("object.contentWindow");
|
||||||
|
var t2 = async_test("object.contentWindow.name");
|
||||||
var t3 = async_test("object.width");
|
var t3 = async_test("object.width");
|
||||||
var t4 = async_test("object.height");
|
var t4 = async_test("object.height");
|
||||||
|
|
||||||
setup(function() {
|
setup(function() {
|
||||||
obj1 = document.getElementById("obj1");
|
obj1 = document.getElementById("obj1");
|
||||||
obj2 = document.getElementById("obj2");
|
obj2 = document.getElementById("obj2");
|
||||||
|
obj3 = document.getElementById("obj3");
|
||||||
});
|
});
|
||||||
|
|
||||||
function on_load () {
|
function on_load () {
|
||||||
t1.step(function() {
|
t1.step(function() {
|
||||||
assert_equals(obj1.contentWindow.name, "o", "The contentWindow's name of the object element should be 'o'.");
|
assert_not_equals(obj1.contentWindow, null, "The contentWindow of the object element should not be null.");
|
||||||
assert_equals(obj2.contentWindow, null, "The contentWindow of the object element should be null when it type attribute starts with 'image/'.");
|
assert_equals(obj2.contentWindow, null, "The contentWindow of the object element should be null when it type attribute starts with 'image/'.");
|
||||||
obj1.setAttribute("name", "o1");
|
assert_equals(obj3.contentWindow, null, "The contentWindow of the object element should be null as it is showing fallback content.");
|
||||||
assert_equals(obj1.name, "o1", "The name of the object element should be 'o1'.");
|
|
||||||
assert_equals(obj1.contentWindow.name, "o1", "The contentWindow's name of the object element should be 'o1'.");
|
|
||||||
obj1.removeAttribute("name");
|
|
||||||
assert_equals(obj1.name, "", "The name of the object element should be empty string.");
|
|
||||||
assert_equals(obj1.contentWindow.name, "", "The contentWindow's name of the object element should be empty string.");
|
|
||||||
});
|
});
|
||||||
t1.done()
|
t1.done()
|
||||||
|
|
||||||
|
t2.step(function() {
|
||||||
|
assert_equals(obj1.contentWindow.name, "o", "The contentWindow's name of the object element should be 'o'.");
|
||||||
|
obj1.setAttribute("name", "o1");
|
||||||
|
assert_equals(obj1.name, "o1", "The name of the object element should be 'o1'.");
|
||||||
|
assert_equals(obj1.contentWindow.name, "o", "The contentWindow's name of the object element should still be 'o'.");
|
||||||
|
obj1.removeAttribute("name");
|
||||||
|
assert_equals(obj1.name, "", "The name of the object element should be empty string.");
|
||||||
|
assert_equals(obj1.contentWindow.name, "o", "The contentWindow's name of the object element should still be 'o'.");
|
||||||
|
});
|
||||||
|
t2.done()
|
||||||
|
|
||||||
t3.step(function() {
|
t3.step(function() {
|
||||||
assert_equals(getComputedStyle(obj1, null)["width"], "100px", "The width should be 100px.");
|
assert_equals(getComputedStyle(obj1, null)["width"], "100px", "The width should be 100px.");
|
||||||
});
|
});
|
||||||
|
|
|
@ -144,8 +144,13 @@ var WebNFCTest = (() => {
|
||||||
this.bindingSet_ = new mojo.BindingSet(device.mojom.NFC);
|
this.bindingSet_ = new mojo.BindingSet(device.mojom.NFC);
|
||||||
|
|
||||||
this.interceptor_ = new MojoInterfaceInterceptor(device.mojom.NFC.name);
|
this.interceptor_ = new MojoInterfaceInterceptor(device.mojom.NFC.name);
|
||||||
this.interceptor_.oninterfacerequest =
|
this.interceptor_.oninterfacerequest = e => {
|
||||||
e => this.bindingSet_.addBinding(this, e.handle);
|
if (this.should_close_pipe_on_request_)
|
||||||
|
e.handle.close();
|
||||||
|
else
|
||||||
|
this.bindingSet_.addBinding(this, e.handle);
|
||||||
|
}
|
||||||
|
|
||||||
this.interceptor_.start();
|
this.interceptor_.start();
|
||||||
|
|
||||||
this.hw_status_ = NFCHWStatus.ENABLED;
|
this.hw_status_ = NFCHWStatus.ENABLED;
|
||||||
|
@ -159,6 +164,7 @@ var WebNFCTest = (() => {
|
||||||
this.operations_suspended_ = false;
|
this.operations_suspended_ = false;
|
||||||
this.is_formatted_tag_ = false;
|
this.is_formatted_tag_ = false;
|
||||||
this.data_transfer_failed_ = false;
|
this.data_transfer_failed_ = false;
|
||||||
|
this.should_close_pipe_on_request_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// NFC delegate functions.
|
// NFC delegate functions.
|
||||||
|
@ -278,6 +284,7 @@ var WebNFCTest = (() => {
|
||||||
this.cancelPendingPushOperation();
|
this.cancelPendingPushOperation();
|
||||||
this.is_formatted_tag_ = false;
|
this.is_formatted_tag_ = false;
|
||||||
this.data_transfer_failed_ = false;
|
this.data_transfer_failed_ = false;
|
||||||
|
this.should_close_pipe_on_request_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cancelPendingPushOperation() {
|
cancelPendingPushOperation() {
|
||||||
|
@ -360,6 +367,10 @@ var WebNFCTest = (() => {
|
||||||
simulateDataTransferFails() {
|
simulateDataTransferFails() {
|
||||||
this.data_transfer_failed_ = true;
|
this.data_transfer_failed_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
simulateClosedPipe() {
|
||||||
|
this.should_close_pipe_on_request_ = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let testInternal = {
|
let testInternal = {
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Path (Linear).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
|
||||||
|
<path id="PStart" transform="matrix(2,0,0,2,0,-10)" d="M 0 0 L 10 5 L 0 10 z" fill="green"/>
|
||||||
|
<path id="PMid" transform="matrix(2,0,0,2,0,-10)" d="M 0 0 L 10 5 L 0 10 z" fill="orange"/>
|
||||||
|
<path id="PEnd" transform="matrix(2,0,0,2,0,-10)" d="M 0 0 L 10 5 L 0 10 z" fill="blue"/>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-reference" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 50,120 50,0 50,0 50,0"/>
|
||||||
|
<path d="m 50,140 50,20 50,-20 50,20"/>
|
||||||
|
|
||||||
|
<path d="m 50,200 l 50,0 l 50,0 l 50,0"/>
|
||||||
|
<path d="m 50,220 l 50,20 l 50,-20 l 50,20"/>
|
||||||
|
|
||||||
|
<path d="m 50,280 h 50 v 50 h 50"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 340,120 390,120 440,120"/>
|
||||||
|
<path d="M 290,140 340,160 390,140 440,160"/>
|
||||||
|
|
||||||
|
<path d="M 290,200 L 340,200 L 390,200 L 440,200"/>
|
||||||
|
<path d="M 290,220 L 340,240 L 390,220 L 440,240"/>
|
||||||
|
|
||||||
|
<path d="M 290,280 H 340 V 330 H 390"/>
|
||||||
|
|
||||||
|
<g id="ref" style="stroke:none">
|
||||||
|
<g id="linear">
|
||||||
|
<use xlink:href="#PStart" transform="translate(50,120)"/>
|
||||||
|
<use xlink:href="#PMid" transform="translate(100,120)"/>
|
||||||
|
<use xlink:href="#PMid" transform="translate(150,120)"/>
|
||||||
|
<use xlink:href="#PEnd" transform="translate(200,120)"/>
|
||||||
|
</g>
|
||||||
|
<g id="zigzag">
|
||||||
|
<path d="m 50,140 50,20" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 50,160 50,0 50,0" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 100,140 50,0 50,0" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 150,140 50,20" style="marker-end:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<g id="step">
|
||||||
|
<path d="m 50,280 50,0" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 50,230 50,50 50,50" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 50,280 50,50 50,50" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 100,330 50,0" style="marker-end:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<use xlink:href="#linear" transform="translate(0,80)"/>
|
||||||
|
<use xlink:href="#zigzag" transform="translate(0,80)"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<use xlink:href="#ref" transform="translate(240,0)"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,64 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Path (Linear).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
<html:link rel="help"
|
||||||
|
href="https://www.w3.org/TR/SVG2/painting.html#Markers"/>
|
||||||
|
<html:link rel="match" href="marker-path-001-ref.svg" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-content" style="fill:none;stroke:black;stroke-width:2;marker-start:url(#Start);marker-mid:url(#Mid);marker-end:url(#End)">
|
||||||
|
<path d="m 50,120 50,0 50,0 50,0"/>
|
||||||
|
<path d="m 50,140 50,20 50,-20 50,20"/>
|
||||||
|
|
||||||
|
<path d="m 50,200 l 50,0 l 50,0 l 50,0"/>
|
||||||
|
<path d="m 50,220 l 50,20 l 50,-20 l 50,20"/>
|
||||||
|
|
||||||
|
<path d="m 50,280 h 50 v 50 h 50"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 340,120 390,120 440,120"/>
|
||||||
|
<path d="M 290,140 340,160 390,140 440,160"/>
|
||||||
|
|
||||||
|
<path d="M 290,200 L 340,200 L 390,200 L 440,200"/>
|
||||||
|
<path d="M 290,220 L 340,240 L 390,220 L 440,240"/>
|
||||||
|
|
||||||
|
<path d="M 290,280 H 340 V 330 H 390"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2 KiB |
|
@ -0,0 +1,78 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Path (Bezier).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-reference" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 50,120 c 20,20 30,-20 50,0 c 20,20 30,-20 50,0 c 20,20 30,-20 50,0"/>
|
||||||
|
<path d="m 50,150 c 20,20 30,-20 50,0 s 30,-20 50,0 s 30,-20 50,0"/>
|
||||||
|
|
||||||
|
<path d="m 50,240 q 25,25 50,0 q 25,-25 50,0 q 25,25 50,0"/>
|
||||||
|
<path d="m 50,270 q 25,25 50,0 t 50,0 t 50,0"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 C 310,140 320,100, 340,120 C 360,140 370,100 390,120 C 410,140 420,100 440,120"/>
|
||||||
|
<path d="M 290,150 C 310,170 320,130, 340,150 S 370,130 390,150 S 420,130 440,150"/>
|
||||||
|
|
||||||
|
<path d="M 290,240 Q 315,265 340,240 Q 365,215 390,240 Q 415,265 440,240"/>
|
||||||
|
<path d="M 290,270 Q 315,295 340,270 T 390,270 T 440,270"/>
|
||||||
|
|
||||||
|
<g id="cubic">
|
||||||
|
<path d="m 50,120 20,20" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 100,120 20,20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 150,120 20,20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,120 20,20" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#cubic" transform="translate(240, 0)"/>
|
||||||
|
<use xlink:href="#cubic" transform="translate( 0, 30)"/>
|
||||||
|
<use xlink:href="#cubic" transform="translate(240, 30)"/>
|
||||||
|
|
||||||
|
<g id="quadratic">
|
||||||
|
<path d="m 50,240 20, 20" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 100,240 20,-20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 150,240 20, 20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,240 20,-20" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#quadratic" transform="translate(240, 0)"/>
|
||||||
|
<use xlink:href="#quadratic" transform="translate( 0, 30)"/>
|
||||||
|
<use xlink:href="#quadratic" transform="translate(240, 30)"/>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3 KiB |
|
@ -0,0 +1,60 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Path (Bezier).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
<html:link rel="help"
|
||||||
|
href="https://www.w3.org/TR/SVG2/painting.html#Markers"/>
|
||||||
|
<html:link rel="match" href="marker-path-002-ref.svg" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-content" style="fill:none;stroke:black;stroke-width:2;marker-start:url(#Start);marker-mid:url(#Mid);marker-end:url(#End)">
|
||||||
|
<path d="m 50,120 c 20,20 30,-20 50,0 c 20,20 30,-20 50,0 c 20,20 30,-20 50,0"/>
|
||||||
|
<path d="m 50,150 c 20,20 30,-20 50,0 s 30,-20 50,0 s 30,-20 50,0"/>
|
||||||
|
|
||||||
|
<path d="m 50,240 q 25,25 50,0 q 25,-25 50,0 q 25,25 50,0"/>
|
||||||
|
<path d="m 50,270 q 25,25 50,0 t 50,0 t 50,0"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 C 310,140 320,100, 340,120 C 360,140 370,100 390,120 C 410,140 420,100 440,120"/>
|
||||||
|
<path d="M 290,150 C 310,170 320,130, 340,150 S 370,130 390,150 S 420,130 440,150"/>
|
||||||
|
|
||||||
|
<path d="M 290,240 Q 315,265 340,240 Q 365,215 390,240 Q 415,265 440,240"/>
|
||||||
|
<path d="M 290,270 Q 315,295 340,270 T 390,270 T 440,270"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
|
@ -0,0 +1,70 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Path (Arc).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-reference" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 50,120 a 30,20 90 0 0 50,0 a 30,20 90 0 1 50,0 a 30,20 90 0 0 50,0"/>
|
||||||
|
|
||||||
|
<path d="m 50,240 a 30,20 90 0 1 50,0 a 30,20 90 0 0 50,0 a 30,20 90 0 1 50,0"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 A 30,20 90 0 0 340,120 A 30,20 90 0 1 390,120 A 30,20 90 0 0 440,120"/>
|
||||||
|
|
||||||
|
<path d="M 290,240 A 30,20 90 0 1 340,240 A 30,20 90 0 0 390,240 A 30,20 90 0 1 440,240"/>
|
||||||
|
|
||||||
|
<g id="down">
|
||||||
|
<path d="m 50,120 0, 20" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 100,120 0,-20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 150,120 0, 20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,120 0,-20" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#down" transform="translate(240, 0)"/>
|
||||||
|
|
||||||
|
<g id="up">
|
||||||
|
<path d="m 50,240 0,-20" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 100,240 0, 20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 150,240 0,-20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,240 0, 20" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#up" transform="translate(240, 0)"/>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,56 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Path (Arc).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
<html:link rel="help"
|
||||||
|
href="https://www.w3.org/TR/SVG2/painting.html#Markers"/>
|
||||||
|
<html:link rel="match" href="marker-path-003-ref.svg" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-content" style="fill:none;stroke:black;stroke-width:2;marker-start:url(#Start);marker-mid:url(#Mid);marker-end:url(#End)">
|
||||||
|
<path d="m 50,120 a 30,20 90 0 0 50,0 a 30,20 90 0 1 50,0 a 30,20 90 0 0 50,0"/>
|
||||||
|
|
||||||
|
<path d="m 50,240 a 30,20 90 0 1 50,0 a 30,20 90 0 0 50,0 a 30,20 90 0 1 50,0"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 A 30,20 90 0 0 340,120 A 30,20 90 0 1 390,120 A 30,20 90 0 0 440,120"/>
|
||||||
|
|
||||||
|
<path d="M 290,240 A 30,20 90 0 1 340,240 A 30,20 90 0 0 390,240 A 30,20 90 0 1 440,240"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.9 KiB |
|
@ -0,0 +1,83 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Sub-Path (Linear).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-reference" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 50,120 50,0 m 50,0 50,0"/>
|
||||||
|
<path d="m 50,140 50,20 m 50,-20 50,20"/>
|
||||||
|
|
||||||
|
<path d="m 50,200 l 50,0 m 50,0 l 50,0"/>
|
||||||
|
<path d="m 50,220 l 50,20 m 50,-20 l 50,20"/>
|
||||||
|
|
||||||
|
<path d="m 50,280 h 50 m 0,50 h 50"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 340,120 M 390,120 440,120"/>
|
||||||
|
<path d="M 290,140 340,160 M 390,140 440,160"/>
|
||||||
|
|
||||||
|
<path d="M 290,200 L 340,200 M 390,200 L 440,200"/>
|
||||||
|
<path d="M 290,220 L 340,240 M 390,220 L 440,240"/>
|
||||||
|
|
||||||
|
<path d="M 290,280 H 340 M 340,330 H 390"/>
|
||||||
|
|
||||||
|
<g id="linear">
|
||||||
|
<path d="m 50,120 50,0" style="stroke:none;marker-start:url(#Start);marker-end:url(#Mid)"/>
|
||||||
|
<path d="m 150,120 50,0" style="stroke:none;marker-start:url(#Mid); marker-end:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#linear" transform="translate(240, 0)"/>
|
||||||
|
<use xlink:href="#linear" transform="translate( 0, 80)"/>
|
||||||
|
<use xlink:href="#linear" transform="translate(240, 80)"/>
|
||||||
|
|
||||||
|
<g id="zigzag">
|
||||||
|
<path d="m 50,140 50,20" style="stroke:none;marker-start:url(#Start);marker-end:url(#Mid)"/>
|
||||||
|
<path d="m 150,140 50,20" style="stroke:none;marker-start:url(#Mid); marker-end:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#zigzag" transform="translate(240, 0)"/>
|
||||||
|
<use xlink:href="#zigzag" transform="translate( 0, 80)"/>
|
||||||
|
<use xlink:href="#zigzag" transform="translate(240, 80)"/>
|
||||||
|
|
||||||
|
<g id="step">
|
||||||
|
<path d="m 50,280 50,0" style="stroke:none;marker-start:url(#Start);marker-end:url(#Mid)"/>
|
||||||
|
<path d="m 100,330 50,0" style="stroke:none;marker-start:url(#Mid); marker-end:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#step" transform="translate(240, 0)"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
|
@ -0,0 +1,64 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Sub-Path (Linear).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
<html:link rel="help"
|
||||||
|
href="https://www.w3.org/TR/SVG2/painting.html#Markers"/>
|
||||||
|
<html:link rel="match" href="marker-path-011-ref.svg" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-content" style="fill:none;stroke:black;stroke-width:2;marker-start:url(#Start);marker-mid:url(#Mid);marker-end:url(#End)">
|
||||||
|
<path d="m 50,120 50,0 m 50,0 50,0"/>
|
||||||
|
<path d="m 50,140 50,20 m 50,-20 50,20"/>
|
||||||
|
|
||||||
|
<path d="m 50,200 l 50,0 m 50,0 l 50,0"/>
|
||||||
|
<path d="m 50,220 l 50,20 m 50,-20 l 50,20"/>
|
||||||
|
|
||||||
|
<path d="m 50,280 h 50 m 0,50 h 50"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 340,120 M 390,120 440,120"/>
|
||||||
|
<path d="M 290,140 340,160 M 390,140 440,160"/>
|
||||||
|
|
||||||
|
<path d="M 290,200 L 340,200 M 390,200 L 440,200"/>
|
||||||
|
<path d="M 290,220 L 340,240 M 390,220 L 440,240"/>
|
||||||
|
|
||||||
|
<path d="M 290,280 H 340 M 340,330 H 390"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2 KiB |
|
@ -0,0 +1,70 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Sub-Path (Bezier).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-reference" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 50,120 c 20,20 30,-20 50,0 m 50,0 c 20,20 30,-20 50,0"/>
|
||||||
|
|
||||||
|
<path d="m 50,240 q 25,25 50,0 m 50,0 q 25,25 50,0"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 C 310,140 320,100, 340,120 M 390,120 C 410,140 420,100 440,120"/>
|
||||||
|
|
||||||
|
<path d="M 290,240 Q 315,265 340,240 M 390,240 Q 415,265 440,240"/>
|
||||||
|
|
||||||
|
<g id="cubic">
|
||||||
|
<path d="m 50,120 20,20" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 100,120 20,20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 150,120 20,20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,120 20,20" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#cubic" transform="translate(240, 0)"/>
|
||||||
|
|
||||||
|
<g id="quadratic">
|
||||||
|
<path d="m 50,240 20, 20" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 100,240 20,-20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 150,240 20, 20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,240 20,-20" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#quadratic" transform="translate(240, 0)"/>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,56 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Sub-Path (Bezier).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
<html:link rel="help"
|
||||||
|
href="https://www.w3.org/TR/SVG2/painting.html#Markers"/>
|
||||||
|
<html:link rel="match" href="marker-path-012-ref.svg" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-content" style="fill:none;stroke:black;stroke-width:2;marker-start:url(#Start);marker-mid:url(#Mid);marker-end:url(#End)">
|
||||||
|
<path d="m 50,120 c 20,20 30,-20 50,0 m 50,0 c 20,20 30,-20 50,0"/>
|
||||||
|
|
||||||
|
<path d="m 50,240 q 25,25 50,0 m 50,0 q 25,25 50,0"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 C 310,140 320,100, 340,120 M 390,120 C 410,140 420,100 440,120"/>
|
||||||
|
|
||||||
|
<path d="M 290,240 Q 315,265 340,240 M 390,240 Q 415,265 440,240"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,70 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Sub-Path (Arc).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-reference" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 50,120 a 30,20 90 0 0 50,0 m 50,0 a 30,20 90 0 0 50,0"/>
|
||||||
|
|
||||||
|
<path d="m 50,240 a 30,20 90 0 1 50,0 m 50,0 a 30,20 90 0 1 50,0"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 A 30,20 90 0 0 340,120 M 390,120 A 30,20 90 0 0 440,120"/>
|
||||||
|
|
||||||
|
<path d="M 290,240 A 30,20 90 0 1 340,240 M 390,240 A 30,20 90 0 1 440,240"/>
|
||||||
|
|
||||||
|
<g id="down">
|
||||||
|
<path d="m 50,120 0, 20" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 100,120 0,-20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 150,120 0, 20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,120 0,-20" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#down" transform="translate(240, 0)"/>
|
||||||
|
|
||||||
|
<g id="up">
|
||||||
|
<path d="m 50,240 0,-20" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 100,240 0, 20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 150,240 0,-20" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,240 0, 20" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
<use xlink:href="#up" transform="translate(240, 0)"/>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.4 KiB |
|
@ -0,0 +1,56 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Sub-Path (Arc).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
<html:link rel="help"
|
||||||
|
href="https://www.w3.org/TR/SVG2/painting.html#Markers"/>
|
||||||
|
<html:link rel="match" href="marker-path-013-ref.svg" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-content" style="fill:none;stroke:black;stroke-width:2;marker-start:url(#Start);marker-mid:url(#Mid);marker-end:url(#End)">
|
||||||
|
<path d="m 50,120 a 30,20 90 0 0 50,0 m 50,0 a 30,20 90 0 0 50,0"/>
|
||||||
|
|
||||||
|
<path d="m 50,240 a 30,20 90 0 1 50,0 m 50,0 a 30,20 90 0 1 50,0"/>
|
||||||
|
|
||||||
|
<path d="M 290,120 A 30,20 90 0 0 340,120 M 390,120 A 30,20 90 0 0 440,120"/>
|
||||||
|
|
||||||
|
<path d="M 290,240 A 30,20 90 0 1 340,240 M 390,240 A 30,20 90 0 1 440,240"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,75 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Closed Sub-Path (Linear).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-reference" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 120,100 -40,40 40,40 40,-40 z" />
|
||||||
|
<path d="m 240,100 -40,40 40,40 40,-40 z" />
|
||||||
|
<path d="m 360,100 -40,40 40,40 40,-40 z" />
|
||||||
|
|
||||||
|
<path d="m 60,200 -40,40 40,40 40,-40 z m 60,60 -40,40 40,40 40,-40 z" />
|
||||||
|
<path d="m 200,200 -40,40 40,40 40,-40 z m 60,60 -40,40 40,40 40,-40 z" />
|
||||||
|
<path d="m 340,200 -40,40 40,40 40,-40 z m 60,60 -40,40 40,40 40,-40 z" />
|
||||||
|
|
||||||
|
<!-- Arrows -->
|
||||||
|
<path d="m 120,100 -40, 0" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 200,140 0, 40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 240,180 40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 280,140 0,-40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 360,100 -40, 0" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
|
||||||
|
<path d="m 60,200 -40, 0" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
|
||||||
|
<path d="m 160,240 0, 40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,280 40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 240,240 0,-40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,200 -40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
|
||||||
|
<path d="m 220,300 0, 40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 260,340 40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 300,300 0,-40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 260,260 -40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
|
||||||
|
<path d="m 400,260 -40, 0" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
|
@ -0,0 +1,56 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Closed Sub-Path (Linear).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
<html:link rel="help"
|
||||||
|
href="https://www.w3.org/TR/SVG2/painting.html#Markers"/>
|
||||||
|
<html:link rel="match" href="marker-path-021-ref.svg" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-content" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 120,100 -40,40 40,40 40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 240,100 -40,40 40,40 40,-40 z" style="marker-mid:url(#Mid)" />
|
||||||
|
<path d="m 360,100 -40,40 40,40 40,-40 z" style="marker-end:url(#End)" />
|
||||||
|
|
||||||
|
<path d="m 60,200 -40,40 40,40 40,-40 z m 60,60 -40,40 40,40 40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 200,200 -40,40 40,40 40,-40 z m 60,60 -40,40 40,40 40,-40 z" style="marker-mid:url(#Mid)" />
|
||||||
|
<path d="m 340,200 -40,40 40,40 40,-40 z m 60,60 -40,40 40,40 40,-40 z" style="marker-end:url(#End)" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2 KiB |
|
@ -0,0 +1,75 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Closed Sub-Path (Bezier).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-reference" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 120,100 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 240,100 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 360,100 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-end:url(#End)"/>
|
||||||
|
|
||||||
|
<path d="m 60,200 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z m 60,60 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 200,200 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z m 60,60 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 340,200 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z m 60,60 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-end:url(#End)"/>
|
||||||
|
|
||||||
|
<!-- Arrows -->
|
||||||
|
<path d="m 120,100 -40, 0" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 200,140 0, 40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 240,180 40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 280,140 0,-40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 360,100 -40, 0" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
|
||||||
|
<path d="m 60,200 -40, 0" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
|
||||||
|
<path d="m 160,240 0, 40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,280 40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 240,240 0,-40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,200 -40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
|
||||||
|
<path d="m 220,300 0, 40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 260,340 40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 300,300 0,-40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 260,260 -40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
|
||||||
|
<path d="m 400,260 -40, 0" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
|
@ -0,0 +1,56 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Closed Sub-Path (Bezier).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
<html:link rel="help"
|
||||||
|
href="https://www.w3.org/TR/SVG2/painting.html#Markers"/>
|
||||||
|
<html:link rel="match" href="marker-path-022-ref.svg" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-content" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 120,100 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 240,100 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 360,100 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-end:url(#End)"/>
|
||||||
|
|
||||||
|
<path d="m 60,200 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z m 60,60 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 200,200 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z m 60,60 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 340,200 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z m 60,60 c -40,0 -40,0 -40,40 c 0,40 0,40 40,40 c 40,0 40,0 40,-40 c 0,-40 0,-40 -40,-40 z" style="marker-end:url(#End)"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.5 KiB |
|
@ -0,0 +1,75 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Closed Sub-Path (Arc).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-reference" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
<path d="m 120,100 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 240,100 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 360,100 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-end:url(#End)"/>
|
||||||
|
|
||||||
|
<path d="m 60,200 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z m 60,60 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 200,200 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z m 60,60 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 340,200 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z m 60,60 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-end:url(#End)"/>
|
||||||
|
|
||||||
|
<!-- Arrows -->
|
||||||
|
<path d="m 120,100 -40, 0" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
<path d="m 200,140 0, 40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 240,180 40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 280,140 0,-40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 360,100 -40, 0" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
|
||||||
|
<path d="m 60,200 -40, 0" style="stroke:none;marker-start:url(#Start)"/>
|
||||||
|
|
||||||
|
<path d="m 160,240 0, 40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,280 40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 240,240 0,-40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 200,200 -40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
|
||||||
|
<path d="m 220,300 0, 40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 260,340 40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 300,300 0,-40" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
<path d="m 260,260 -40, 0" style="stroke:none;marker-start:url(#Mid)"/>
|
||||||
|
|
||||||
|
<path d="m 400,260 -40, 0" style="stroke:none;marker-start:url(#End)"/>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1,58 @@
|
||||||
|
<svg id="svg-root"
|
||||||
|
width="100%" height="100%" viewBox="0 0 480 360"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:html="http://www.w3.org/1999/xhtml">
|
||||||
|
<g id="testmeta">
|
||||||
|
<title>Markers on Closed Sub-Path (Arc).</title>
|
||||||
|
<html:link rel="author"
|
||||||
|
title="Tavmjong Bah"
|
||||||
|
href="http://tavmjong.free.fr"/>
|
||||||
|
<html:link rel="help"
|
||||||
|
href="https://www.w3.org/TR/SVG2/painting.html#Markers"/>
|
||||||
|
<html:link rel="match" href="marker-path-023-ref.svg" />
|
||||||
|
</g>
|
||||||
|
|
||||||
|
<defs>
|
||||||
|
<marker id="Start"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="green">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="Mid"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="orange">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
<marker id="End"
|
||||||
|
viewBox="0 0 10 10" refX="0" refY="5"
|
||||||
|
markerUnits="strokeWidth"
|
||||||
|
markerWidth="12"
|
||||||
|
markerHeight="9"
|
||||||
|
orient="auto"
|
||||||
|
fill="blue">
|
||||||
|
<path d="M 0 0 L 10 5 L 0 10 z"/>
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
|
||||||
|
<g id="test-body-content" style="fill:none;stroke:black;stroke-width:2">
|
||||||
|
|
||||||
|
<path d="m 120,100 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 240,100 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 360,100 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-end:url(#End)"/>
|
||||||
|
|
||||||
|
<path d="m 60,200 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z m 60,60 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-start:url(#Start)"/>
|
||||||
|
<path d="m 200,200 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z m 60,60 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-mid:url(#Mid)"/>
|
||||||
|
<path d="m 340,200 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z m 60,60 a 40,40 0 0 0 -40,40 a 40,40 0 0 0 40,40 a 40,40 0 0 0 40,-40 a 40,40 0 0 0 -40,-40 z" style="marker-end:url(#End)"/>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
|
@ -0,0 +1,35 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
|
<title>Use property inheritance in SVG2</title>
|
||||||
|
<metadata>
|
||||||
|
<h:link rel="help" href="https://svgwg.org/svg2-draft/struct.html#UseStyleInheritance"/>
|
||||||
|
<h:link rel="match" href="reference/green-100x100.svg"/>
|
||||||
|
<h:link rel="author" title="Mike Bremford" href="http://bfo.com"/>
|
||||||
|
</metadata>
|
||||||
|
<style>
|
||||||
|
use rect { stroke: red }
|
||||||
|
.container rect { fill: red; stroke: red }
|
||||||
|
rect { stroke-width: 40px; stroke: green }
|
||||||
|
rect:root { opacity: 0 }
|
||||||
|
</style>
|
||||||
|
<defs>
|
||||||
|
<g class="container">
|
||||||
|
<rect id="r" x="20" y="20" width="60" height="60" style="fill-opacity:1"/>
|
||||||
|
</g>
|
||||||
|
</defs>
|
||||||
|
<g>
|
||||||
|
<use href="#r" xlink:href="#r" style="fill: green; fill-opacity:0"/>
|
||||||
|
</g>
|
||||||
|
<!--
|
||||||
|
This presume the SVG2 use inheritance rules, in SVG1 it will display as red.
|
||||||
|
|
||||||
|
1. The "rect" cloned by the "use" element is in a shadow DOM, so it DOES NOT
|
||||||
|
inherit the stroke from the "use rect" or ".container rect" style rules.
|
||||||
|
2. The cloned "rect" DOES get the rules set by the "rect" style rule, as that
|
||||||
|
still matches elements in the shadow DOM.
|
||||||
|
3. The "rect" DOES inherit "fill: green" from the <use>
|
||||||
|
4. The "rect"'s own "fill-opacity: 1" overrides the "fill-opacity: 0" inherited
|
||||||
|
from the "use" element.
|
||||||
|
5. Even though "rect" is considered to have no parent, it is not a root element
|
||||||
|
so does not match the rect:root style rule
|
||||||
|
-->
|
||||||
|
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
|
@ -35,7 +35,7 @@ from mod_pywebsocket import standalone as pywebsocket
|
||||||
|
|
||||||
EDIT_HOSTS_HELP = ("Please ensure all the necessary WPT subdomains "
|
EDIT_HOSTS_HELP = ("Please ensure all the necessary WPT subdomains "
|
||||||
"are mapped to a loopback device in /etc/hosts. "
|
"are mapped to a loopback device in /etc/hosts. "
|
||||||
"See https://github.com/web-platform-tests/wpt#running-the-tests "
|
"See https://web-platform-tests.org/running-tests/from-local-system.html#system-setup "
|
||||||
"for instructions.")
|
"for instructions.")
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -278,8 +278,8 @@ def affected_testfiles(files_changed, # type: Iterable[Text]
|
||||||
full_path = os.path.join(wpt_root, repo_path[1:].replace("/", os.path.sep))
|
full_path = os.path.join(wpt_root, repo_path[1:].replace("/", os.path.sep))
|
||||||
nontest_changed_paths.add((full_path, repo_path))
|
nontest_changed_paths.add((full_path, repo_path))
|
||||||
|
|
||||||
interface_name = lambda x: os.path.splitext(os.path.basename(x))[0]
|
interfaces_changed_names = [os.path.splitext(os.path.basename(interface))[0]
|
||||||
interfaces_changed_names = map(interface_name, interfaces_changed)
|
for interface in interfaces_changed]
|
||||||
|
|
||||||
def affected_by_wdspec(test):
|
def affected_by_wdspec(test):
|
||||||
# type: (str) -> bool
|
# type: (str) -> bool
|
||||||
|
@ -299,7 +299,7 @@ def affected_testfiles(files_changed, # type: Iterable[Text]
|
||||||
|
|
||||||
def affected_by_interfaces(file_contents):
|
def affected_by_interfaces(file_contents):
|
||||||
# type: (Union[bytes, Text]) -> bool
|
# type: (Union[bytes, Text]) -> bool
|
||||||
if len(interfaces_changed) > 0:
|
if len(interfaces_changed_names) > 0:
|
||||||
if 'idlharness.js' in file_contents:
|
if 'idlharness.js' in file_contents:
|
||||||
for interface in interfaces_changed_names:
|
for interface in interfaces_changed_names:
|
||||||
regex = '[\'"]' + interface + '(\\.idl)?[\'"]'
|
regex = '[\'"]' + interface + '(\\.idl)?[\'"]'
|
||||||
|
|
|
@ -65,9 +65,9 @@ handler returns, or for directly writing to the output stream.
|
||||||
|
|
||||||
|
|
||||||
EDIT_HOSTS_HELP = ("Please ensure all the necessary WPT subdomains "
|
EDIT_HOSTS_HELP = ("Please ensure all the necessary WPT subdomains "
|
||||||
"are mapped to a loopback device in /etc/hosts. "
|
"are mapped to a loopback device in /etc/hosts. "
|
||||||
"See https://github.com/web-platform-tests/wpt#running-the-tests "
|
"See https://web-platform-tests.org/running-tests/from-local-system.html#system-setup "
|
||||||
"for instructions.")
|
"for instructions.")
|
||||||
|
|
||||||
|
|
||||||
class RequestRewriter(object):
|
class RequestRewriter(object):
|
||||||
|
|
|
@ -166,6 +166,18 @@ test(t => {
|
||||||
assert_numeric_style_equals(getComputedStyle(div).width, 100);
|
assert_numeric_style_equals(getComputedStyle(div).width, 100);
|
||||||
}, 'Commits em units as pixel values');
|
}, 'Commits em units as pixel values');
|
||||||
|
|
||||||
|
test(t => {
|
||||||
|
const div = createDiv(t);
|
||||||
|
const animation = div.animate(
|
||||||
|
{ transform: 'translate(20px, 20px)' },
|
||||||
|
{ duration: 1, fill: 'forwards' }
|
||||||
|
);
|
||||||
|
animation.finish();
|
||||||
|
animation.commitStyles();
|
||||||
|
animation.cancel();
|
||||||
|
assert_equals(getComputedStyle(div).transform, 'matrix(1, 0, 0, 1, 20, 20)');
|
||||||
|
}, 'Commits transforms');
|
||||||
|
|
||||||
promise_test(async t => {
|
promise_test(async t => {
|
||||||
const div = createDiv(t);
|
const div = createDiv(t);
|
||||||
div.style.opacity = '0.1';
|
div.style.opacity = '0.1';
|
||||||
|
|
|
@ -5,9 +5,11 @@
|
||||||
<link rel="help" href="https://w3c.github.io/web-nfc/#visible-document">
|
<link rel="help" href="https://w3c.github.io/web-nfc/#visible-document">
|
||||||
<script src="/resources/testharness.js"></script>
|
<script src="/resources/testharness.js"></script>
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="resources/nfc-helpers.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
promise_test(async t => {
|
nfc_test(async (t, mockNFC) => {
|
||||||
|
mockNFC.simulateClosedPipe();
|
||||||
const reader = new NDEFReader();
|
const reader = new NDEFReader();
|
||||||
const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]);
|
const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]);
|
||||||
const promise = readerWatcher.wait_for("reading").then(event => {
|
const promise = readerWatcher.wait_for("reading").then(event => {
|
||||||
|
|
|
@ -47,7 +47,8 @@ promise_test(async t => {
|
||||||
|
|
||||||
// We do not provide NFC mock here to simulate that there has no available
|
// We do not provide NFC mock here to simulate that there has no available
|
||||||
// implementation for NFC Mojo interface.
|
// implementation for NFC Mojo interface.
|
||||||
promise_test(async t => {
|
nfc_test(async (t, mockNFC) => {
|
||||||
|
mockNFC.simulateClosedPipe();
|
||||||
if (window.testRunner) {
|
if (window.testRunner) {
|
||||||
window.testRunner.setPermission('nfc', 'granted',
|
window.testRunner.setPermission('nfc', 'granted',
|
||||||
location.origin, location.origin);
|
location.origin, location.origin);
|
||||||
|
|
|
@ -156,7 +156,8 @@ promise_test(async t => {
|
||||||
|
|
||||||
// We do not provide NFC mock here to simulate that there has no available
|
// We do not provide NFC mock here to simulate that there has no available
|
||||||
// implementation for NFC Mojo interface.
|
// implementation for NFC Mojo interface.
|
||||||
promise_test(async t => {
|
nfc_test(async (t, mockNFC) => {
|
||||||
|
mockNFC.simulateClosedPipe();
|
||||||
if (window.testRunner) {
|
if (window.testRunner) {
|
||||||
// Deny nfc permissions for Chromium testrunner.
|
// Deny nfc permissions for Chromium testrunner.
|
||||||
window.testRunner.setPermission('nfc', 'granted',
|
window.testRunner.setPermission('nfc', 'granted',
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
// META: global=!default,worker
|
||||||
|
|
||||||
|
test(function() {
|
||||||
|
assert_equals(location, location);
|
||||||
|
}, 'location === location');
|
|
@ -1,14 +0,0 @@
|
||||||
<!doctype html>
|
|
||||||
<title>location === location</title>
|
|
||||||
<script src="/resources/testharness.js"></script>
|
|
||||||
<script src="/resources/testharnessreport.js"></script>
|
|
||||||
<div id="log"></div>
|
|
||||||
<script>
|
|
||||||
async_test(function() {
|
|
||||||
var worker = new Worker('returns-same-object.js');
|
|
||||||
worker.onmessage = this.step_func(function(e) {
|
|
||||||
assert_true(e.data);
|
|
||||||
this.done();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
|
@ -1 +0,0 @@
|
||||||
postMessage(location === location);
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
const sourcePromise = new Promise(resolve => {
|
||||||
|
if ('DedicatedWorkerGlobalScope' in self &&
|
||||||
|
self instanceof DedicatedWorkerGlobalScope) {
|
||||||
|
self.onmessage = e => {
|
||||||
|
resolve(e.target);
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
'SharedWorkerGlobalScope' in self &&
|
||||||
|
self instanceof SharedWorkerGlobalScope) {
|
||||||
|
self.onconnect = e => {
|
||||||
|
resolve(e.ports[0]);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const importedModulesPromise =
|
||||||
|
import("data:text/javascript, export const importedModules = ['export-block-cross-origin.js'];")
|
||||||
|
.then(module => module.importedModules)
|
||||||
|
.catch(() => ['ERROR']);
|
||||||
|
|
||||||
|
Promise.all([sourcePromise, importedModulesPromise]).then(results => {
|
||||||
|
const [source, importedModules] = results;
|
||||||
|
source.postMessage(importedModules);
|
||||||
|
});
|
|
@ -0,0 +1,24 @@
|
||||||
|
const sourcePromise = new Promise(resolve => {
|
||||||
|
if ('DedicatedWorkerGlobalScope' in self &&
|
||||||
|
self instanceof DedicatedWorkerGlobalScope) {
|
||||||
|
self.onmessage = e => {
|
||||||
|
resolve(e.target);
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
'SharedWorkerGlobalScope' in self &&
|
||||||
|
self instanceof SharedWorkerGlobalScope) {
|
||||||
|
self.onconnect = e => {
|
||||||
|
resolve(e.ports[0]);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const importedModulesPromise =
|
||||||
|
import('./export-block-cross-origin.js')
|
||||||
|
.then(module => module.importedModules)
|
||||||
|
.catch(() => ['ERROR']);
|
||||||
|
|
||||||
|
Promise.all([sourcePromise, importedModulesPromise]).then(results => {
|
||||||
|
const [source, importedModules] = results;
|
||||||
|
source.postMessage(importedModules);
|
||||||
|
});
|
|
@ -0,0 +1 @@
|
||||||
|
export const importedModules = ['export-block-cross-origin.js'];
|
|
@ -0,0 +1,14 @@
|
||||||
|
import * as module from "data:text/javascript, export const importedModules = ['export-block-cross-origin.js'];";
|
||||||
|
|
||||||
|
if ('DedicatedWorkerGlobalScope' in self &&
|
||||||
|
self instanceof DedicatedWorkerGlobalScope) {
|
||||||
|
self.onmessage = e => {
|
||||||
|
e.target.postMessage(module.importedModules);
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
'SharedWorkerGlobalScope' in self &&
|
||||||
|
self instanceof SharedWorkerGlobalScope) {
|
||||||
|
self.onconnect = e => {
|
||||||
|
e.ports[0].postMessage(module.importedModules);
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
import * as module from './export-block-cross-origin.js';
|
||||||
|
|
||||||
|
if ('DedicatedWorkerGlobalScope' in self &&
|
||||||
|
self instanceof DedicatedWorkerGlobalScope) {
|
||||||
|
self.onmessage = e => {
|
||||||
|
e.target.postMessage(module.importedModules);
|
||||||
|
};
|
||||||
|
} else if (
|
||||||
|
'SharedWorkerGlobalScope' in self &&
|
||||||
|
self instanceof SharedWorkerGlobalScope) {
|
||||||
|
self.onconnect = e => {
|
||||||
|
e.ports[0].postMessage(module.importedModules);
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<title>SharedWorker: ES modules for data URL workers</title>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script>
|
||||||
|
|
||||||
|
const import_from_data_url_worker_test = (importType, isDataURL, expectation) => {
|
||||||
|
promise_test(async () => {
|
||||||
|
const importURL = new URL(`resources/${importType}-import-` +
|
||||||
|
`${isDataURL ? 'data-url' : 'script'}-block-cross-origin.js`,
|
||||||
|
location.href) + '?pipe=header(Access-Control-Allow-Origin, *)';
|
||||||
|
const dataURL = `data:text/javascript,import "${importURL}";`;
|
||||||
|
const worker = new SharedWorker(dataURL, { type: 'module' });
|
||||||
|
worker.port.postMessage('Send message for tests from main script.');
|
||||||
|
const msgEvent =
|
||||||
|
await new Promise(resolve => worker.port.onmessage = resolve);
|
||||||
|
assert_array_equals(msgEvent.data,
|
||||||
|
expectation === 'blocked' ? ['ERROR']
|
||||||
|
: ['export-block-cross-origin.js']);
|
||||||
|
}, `${importType} import ${isDataURL ? 'data url' : 'script'} from data: ` +
|
||||||
|
`URL should be ${expectation}.`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Static import should obey the outside settings.
|
||||||
|
// SecurityOrigin of the outside settings is decided by Window.
|
||||||
|
import_from_data_url_worker_test('static', true, 'allowed');
|
||||||
|
import_from_data_url_worker_test('static', false, 'allowed');
|
||||||
|
|
||||||
|
|
||||||
|
// Dynamic import should obey the inside settings.
|
||||||
|
// SecurityOrigin of the inside settings is a unique opaque origin.
|
||||||
|
//
|
||||||
|
// Data url script is cross-origin to the inside settings' SecurityOrigin, but
|
||||||
|
// dynamic importing it is allowed.
|
||||||
|
// https://fetch.spec.whatwg.org/#concept-main-fetch
|
||||||
|
// Step 5: request’s current URL’s scheme is "data" [spec text]
|
||||||
|
import_from_data_url_worker_test('dynamic', true, 'allowed');
|
||||||
|
|
||||||
|
// Non-data url script is cross-origin to the inside settings' SecurityOrigin.
|
||||||
|
// It should be blocked.
|
||||||
|
import_from_data_url_worker_test('dynamic', false, 'blocked');
|
||||||
|
|
||||||
|
</script>
|