Update web-platform-tests to revision 1a7f5f868420607ef13a00c6ec14fd9e0310e7c0
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[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.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -23366,7 +23366,7 @@
|
|||
},
|
||||
"web-nfc": {
|
||||
"NDEFReader-document-hidden-manual.https.html": [
|
||||
"9cf42e83bf306b5272fd753461fb78c3c9a4992f",
|
||||
"10ce53e4a4f40bd0dfae074bf854f3491ea964a6",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -24335,6 +24335,19 @@
|
|||
]
|
||||
},
|
||||
"content-dpr": {
|
||||
"content-dpr-various-elements.html": [
|
||||
"728ef264e9db2231f74459101be07490473fa021",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/content-dpr/content-dpr-various-elements-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"image-pseudo-element-content-dpr.html": [
|
||||
"7770df39997206261036029734b2304e6be331b2",
|
||||
[
|
||||
|
@ -203162,6 +203175,19 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"not-links.html": [
|
||||
"d49a86fd0ea710d8fd36798e84034f3042e58e81",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/selectors/not-links-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"of-type-selectors.xhtml": [
|
||||
"73ec208b8f219d8d3b74984d65c8e72a997c8470",
|
||||
[
|
||||
|
@ -231108,6 +231134,123 @@
|
|||
]
|
||||
],
|
||||
"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": [
|
||||
"116c61c45ebfa7d2725df78f3a920fc3c24c7165",
|
||||
[
|
||||
|
@ -231998,6 +232141,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"use-inheritance-001.svg": [
|
||||
"5e375b94cd6c15f4ded39f351ce91d67e94b74bd",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/svg/struct/reftests/reference/green-100x100.svg",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"use-svg-dimensions-override-001.svg": [
|
||||
"c658adce80f82d5ce6457101ecd3b3d3f562ddd9",
|
||||
[
|
||||
|
@ -251488,51 +251644,51 @@
|
|||
],
|
||||
"presentation-role": {
|
||||
"497.html": [
|
||||
"5efa4ab7798027c065871027d247252784bff3ba",
|
||||
"a97df5db893b1e01b9df4abf78791573dc223c5a",
|
||||
[]
|
||||
],
|
||||
"498.html": [
|
||||
"834ba206d70077e3e2d06e7a45e8a5dfb833c62a",
|
||||
"0a910a18fe3c712dcba762aea2f623f5d3afdb0d",
|
||||
[]
|
||||
],
|
||||
"499.html": [
|
||||
"ad2dee407edc0344918b1f73918e10ff8f34e196",
|
||||
"3f751df39bc9bc192e0d5aac2dd5ecb31ba1292b",
|
||||
[]
|
||||
],
|
||||
"500.html": [
|
||||
"578e7a2db72474779d7256550f99f9b13829f3aa",
|
||||
"0ff6cd807a791569fad8f37c9aa3315e1bfbe901",
|
||||
[]
|
||||
],
|
||||
"501.html": [
|
||||
"77cfc2ede08a01fe25d56edd39d2c0f90fb8d4c1",
|
||||
"bdad37ed22eced067c49144b701efe5d0cac5ae1",
|
||||
[]
|
||||
],
|
||||
"502.html": [
|
||||
"ae8c74d5c78911d27b8c7e83dcc7e8f76e3c4669",
|
||||
"d52afe008efc0f7be01f680d35cc9216d25b37f3",
|
||||
[]
|
||||
],
|
||||
"503.html": [
|
||||
"3859142529adc3fc8a9a0d74c0714d1223efa719",
|
||||
"6157cd2fcda6eb5c3984f95a9bfd4f66020ceab9",
|
||||
[]
|
||||
],
|
||||
"504.html": [
|
||||
"ea19a43595765c73f6fe25a99ab9dde6276b50b4",
|
||||
"c96550bc842a419b47323a2c245eb8324a794779",
|
||||
[]
|
||||
],
|
||||
"505.html": [
|
||||
"163156413011faa0a5b90e3971001f6c122fa179",
|
||||
"e4665cb1b18f4eaae6221b8176a2d9fbf6d21883",
|
||||
[]
|
||||
],
|
||||
"506.html": [
|
||||
"495763d77999690ea590efd500f9d5191964bc46",
|
||||
"f92881a1409c004708fa5921a616c2e6fe30d659",
|
||||
[]
|
||||
],
|
||||
"507.html": [
|
||||
"09e6859655e5f9c5cf198432215e916f20e7f3a0",
|
||||
"a88438ec16ce54c66068d8bbe223fca187ce1ea4",
|
||||
[]
|
||||
],
|
||||
"509.html": [
|
||||
"9780ce2ac4e291540f5b561f7ed82d60c7f041c7",
|
||||
"4450eb332fa30387f3d209248806af3ed0c55416",
|
||||
[]
|
||||
],
|
||||
"510.html": [
|
||||
|
@ -258441,6 +258597,10 @@
|
|||
}
|
||||
},
|
||||
"content-dpr": {
|
||||
"content-dpr-various-elements-ref.html": [
|
||||
"9a7e10e51b06ab6a4c2453b8f048cfd8709bd471",
|
||||
[]
|
||||
],
|
||||
"image-pseudo-element-content-dpr-ref.html": [
|
||||
"baa25ac87c8f96ca630d2a6b508d6f3649fb8bb8",
|
||||
[]
|
||||
|
@ -304752,6 +304912,10 @@
|
|||
[]
|
||||
]
|
||||
},
|
||||
"not-links-ref.html": [
|
||||
"1efe5943f4e33eb0046fa89dfac8a97eeff3da85",
|
||||
[]
|
||||
],
|
||||
"of-type-selectors-ref.xhtml": [
|
||||
"ae866213df0112292c3bade7c48ad2d27f9a14f8",
|
||||
[]
|
||||
|
@ -312364,7 +312528,7 @@
|
|||
[]
|
||||
],
|
||||
"redirect.py": [
|
||||
"eb5c98dd52ff8bc373bfcae42b1b517bd9a2158f",
|
||||
"05129c515ad9433b68a69e43c58059c6c7faa3ba",
|
||||
[]
|
||||
],
|
||||
"sandboxed-iframe.html": [
|
||||
|
@ -312396,7 +312560,7 @@
|
|||
[]
|
||||
],
|
||||
"trickle.py": [
|
||||
"e2c9beec1e077c67b0d83202ba644c018cbace94",
|
||||
"57c9407dc4b2db368b87930163efd6f36b49e849",
|
||||
[]
|
||||
],
|
||||
"utils.js": [
|
||||
|
@ -315253,6 +315417,14 @@
|
|||
"30ddeac2e7a3596de3910def1a7066e817873cbe",
|
||||
[]
|
||||
],
|
||||
"require-corp-sw.js": [
|
||||
"3e2f069ded033f33528c8f850d330c5b4e84e46c",
|
||||
[]
|
||||
],
|
||||
"require-corp-sw.js.headers": [
|
||||
"6604450991a122e3e241e40b1b9e0516c525389d",
|
||||
[]
|
||||
],
|
||||
"script-factory.js": [
|
||||
"9db755226020479fd87e87f42ea622c999b38f7d",
|
||||
[]
|
||||
|
@ -319729,7 +319901,7 @@
|
|||
[]
|
||||
],
|
||||
"resolve-url.js": [
|
||||
"cbe97edbbb3caf35f49d4f4859a263e1060d05b8",
|
||||
"cac16d0b492f2362b49625a9961dc6608104d8bf",
|
||||
[]
|
||||
],
|
||||
"resource.py": [
|
||||
|
@ -337423,7 +337595,7 @@
|
|||
[]
|
||||
],
|
||||
"nfc-mock.js": [
|
||||
"ce1ad8e98b35bde2845354459026692e9400216a",
|
||||
"7832a8231efb01f277960afc91adf01cfe3e3ac6",
|
||||
[]
|
||||
],
|
||||
"sensor.mojom.js": [
|
||||
|
@ -341467,6 +341639,42 @@
|
|||
[]
|
||||
],
|
||||
"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": [
|
||||
"871003f3a2303404696d467a7cfaad729b811206",
|
||||
[]
|
||||
|
@ -342669,7 +342877,7 @@
|
|||
[]
|
||||
],
|
||||
"serve.py": [
|
||||
"f63bdcca5b00520334d99334a74e748544fc45e1",
|
||||
"e4f0d5efaee37170a9c03a208924e483b2a4608a",
|
||||
[]
|
||||
],
|
||||
"test_functional.py": [
|
||||
|
@ -347299,7 +347507,7 @@
|
|||
[]
|
||||
],
|
||||
"testfiles.py": [
|
||||
"a9a8fe87ba50582d4cd15a6a233a372119ad265c",
|
||||
"f2960e8f51e445e3f6f53ba8e7c0145aa5072038",
|
||||
[]
|
||||
],
|
||||
"tests": {
|
||||
|
@ -348390,7 +348598,7 @@
|
|||
[]
|
||||
],
|
||||
"server.py": [
|
||||
"c037732a6baef31d58b3dff927b074dfcfabb4ff",
|
||||
"9e842802fc0f1b273cd78313275e0bf78dbcaf64",
|
||||
[]
|
||||
],
|
||||
"sslutils": {
|
||||
|
@ -353682,10 +353890,6 @@
|
|||
"2db48544a2d7d7f55201043e73297283cd99c263",
|
||||
[]
|
||||
],
|
||||
"returns-same-object.js": [
|
||||
"c004d8f7e564e2c43860d6f7da6d1cedffc5a9df",
|
||||
[]
|
||||
],
|
||||
"setting-members.js": [
|
||||
"4c5c8a35ae88ce2d65b1426fdf37230fa261039c",
|
||||
[]
|
||||
|
@ -353841,6 +354045,10 @@
|
|||
"527702f551174f8f2578fce16c7854351126e3a5",
|
||||
[]
|
||||
],
|
||||
"dynamic-import-data-url-block-cross-origin.js": [
|
||||
"caa15319c55c0ff2302df96391002461f7b4207c",
|
||||
[]
|
||||
],
|
||||
"dynamic-import-given-url-worker.js": [
|
||||
"55102759352c5564e832e37bb8c7f0e7bd007f4d",
|
||||
[]
|
||||
|
@ -353865,6 +354073,10 @@
|
|||
"56f8a6ffe822ecb8fa0d042cc4c246a3c623f8c6",
|
||||
[]
|
||||
],
|
||||
"dynamic-import-script-block-cross-origin.js": [
|
||||
"52ec5306635916b5db6cf10de27bc9e171aad529",
|
||||
[]
|
||||
],
|
||||
"dynamic-import-worker.js": [
|
||||
"2e756fe055e9e9ec815031483b02dc286918ca2c",
|
||||
[]
|
||||
|
@ -353877,6 +354089,10 @@
|
|||
"60080d4292a8033e9824a289eef85574cc6a3a81",
|
||||
[]
|
||||
],
|
||||
"export-block-cross-origin.js": [
|
||||
"a4b513d280e9eddc105c62cadd6894ac829a705d",
|
||||
[]
|
||||
],
|
||||
"export-credentials.py": [
|
||||
"be6d2ff2fc17b94d69548746cd25d6b6c471cb0c",
|
||||
[]
|
||||
|
@ -353957,6 +354173,10 @@
|
|||
"2d857a2e90a11af9f52e5d59d15ee30d225deeaf",
|
||||
[]
|
||||
],
|
||||
"static-import-data-url-block-cross-origin.js": [
|
||||
"833348d66cce77334e10a214d6299d3b0dad085c",
|
||||
[]
|
||||
],
|
||||
"static-import-non-existent-script-worker.js": [
|
||||
"16f70e9daf4909605746c6614a509afb3cf71ed1",
|
||||
[]
|
||||
|
@ -353981,6 +354201,10 @@
|
|||
"ffcab9e45fdfec17bb2db64f0d4dba3d89ed8308",
|
||||
[]
|
||||
],
|
||||
"static-import-script-block-cross-origin.js": [
|
||||
"82be8e7ce72edab7050b14cccc658ff39ddfe632",
|
||||
[]
|
||||
],
|
||||
"static-import-worker.js": [
|
||||
"19a347999d386fd4df8dc831c6d164b27630ef7a",
|
||||
[]
|
||||
|
@ -377220,7 +377444,7 @@
|
|||
},
|
||||
"content-dpr": {
|
||||
"image-with-dpr-header.html": [
|
||||
"6c4e60844763469bbe21990879191eac0f296230",
|
||||
"bfa1509d46455945acb9b31d6789726b2f860c84",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -405732,7 +405956,7 @@
|
|||
]
|
||||
],
|
||||
"focus-visible-010.html": [
|
||||
"eb01204b29c8e30b651b083459c01983b99dd70d",
|
||||
"00cd7f0b665d90a82b9939b5451b1e10cf89e5ee",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -428317,6 +428541,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"anchor-jsurl-form-submit.html": [
|
||||
"b0534cd52e51e7f13ee42a2ae6e1602d3071d270",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"child_navigates_parent_location.html": [
|
||||
"9111232e26e7de672b9e4df4b47b1c408338ae1c",
|
||||
[
|
||||
|
@ -430742,6 +430973,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"require-corp-sw.https.html": [
|
||||
"690ea6314f5c28c1bd8b58cb0d2350831361314f",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"require-corp.https.html": [
|
||||
"6f799b6e4086c1e73654b694174cacc496b2582d",
|
||||
[
|
||||
|
@ -432568,7 +432806,7 @@
|
|||
]
|
||||
],
|
||||
"utf-16be.html": [
|
||||
"ae28fb6d6a7c08ff3ccc5353139e2842492d9950",
|
||||
"db15896c86c1dfdec07f04ca7f923141ab1d2dfe",
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=appcache",
|
||||
{
|
||||
|
@ -432670,16 +432908,10 @@
|
|||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
],
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16be.html?include=xmldocument",
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"utf-16le.html": [
|
||||
"1d0bb574a77bb9a78cba3a8bb4a869ea780944a4",
|
||||
"1a3e4926b466f5ec6b3ee10938a5bc15d884722f",
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html?include=appcache",
|
||||
{
|
||||
|
@ -432781,16 +433013,10 @@
|
|||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
],
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-16le.html?include=xmldocument",
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"utf-8.html": [
|
||||
"c521c9dc398b4c200bc357d4a66c55efd38f7ae9",
|
||||
"7434dc9176c9f8695a4cf89e2cbec5a7d2ead6f3",
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=appcache",
|
||||
{
|
||||
|
@ -432892,16 +433118,10 @@
|
|||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
],
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/utf-8.html?include=xmldocument",
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"windows-1251.html": [
|
||||
"e80e12403aedfdddfd1aa73ed4057316a4e5a931",
|
||||
"1c8ade458826b3a7d8076003b28ea65ba7aa363d",
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=appcache",
|
||||
{
|
||||
|
@ -433003,16 +433223,10 @@
|
|||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
],
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1251.html?include=xmldocument",
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
],
|
||||
"windows-1252.html": [
|
||||
"c2c6b0adeb13df97352f37ccfef9bd6b1fce9e63",
|
||||
"5cefb612eafcd78f477a9464fa6f5aa940508f20",
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html?include=appcache",
|
||||
{
|
||||
|
@ -433114,12 +433328,6 @@
|
|||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
],
|
||||
[
|
||||
"html/infrastructure/urls/resolving-urls/query-encoding/windows-1252.html?include=xmldocument",
|
||||
{
|
||||
"timeout": "long"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
|
@ -438666,7 +438874,7 @@
|
|||
]
|
||||
],
|
||||
"object-attributes.html": [
|
||||
"30fdcf520b8b519ab58187f40fd460454ffb39a3",
|
||||
"c630d8055c60c3891a008281878466b86c1eef11",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -547143,7 +547351,7 @@
|
|||
]
|
||||
],
|
||||
"commitStyles.html": [
|
||||
"ca7d6410d0aa9cd02431cb6f8aab427f941e5cc7",
|
||||
"abda8f10e59febf1cfc3654d4f37c60ccf1e79fa",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -548630,7 +548838,7 @@
|
|||
]
|
||||
],
|
||||
"NDEFReader_scan.https.html": [
|
||||
"6e66b7d4673d22d8863cabea57d802e92251d3b9",
|
||||
"581412ea35d5d1e25dcc638380aa7fac540c7b9e",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -548665,7 +548873,7 @@
|
|||
]
|
||||
],
|
||||
"NDEFWriter_write.https.html": [
|
||||
"1cca68c4a9676d7d988f6b46bbba0250ccae40bd",
|
||||
"4ca7faa12bcde0174153953ef351c7ba094caac5",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -560068,11 +560276,40 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"returns-same-object.html": [
|
||||
"b69ea3aa05828c398cc1bc63f677930f9ee70ce0",
|
||||
"returns-same-object.any.js": [
|
||||
"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": [
|
||||
|
@ -560483,6 +560720,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"shared-worker-import-data-url-cross-origin.html": [
|
||||
"3f22c5094d1b8c167d76af14bdce1dc912451f43",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"shared-worker-import-data-url.any.js": [
|
||||
"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]
|
||||
expected: FAIL
|
||||
|
||||
[looks up handleEvent method on every event dispatch]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,6 +2,3 @@
|
|||
[listeners are called when <iframe> is resized]
|
||||
expected: FAIL
|
||||
|
||||
[listeners are called correct number of times]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -21,3 +21,6 @@
|
|||
[test the top of layer]
|
||||
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]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,3 +2,6 @@
|
|||
[Programmatic focus on page load bshould match :focus-visible]
|
||||
expected: FAIL
|
||||
|
||||
[Programmatic focus on page load should match :focus-visible]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -312,21 +312,24 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;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]
|
||||
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 ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,3 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%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]
|
||||
expected: TIMEOUT
|
||||
[Autofocus elements in iframed documents with URL fragments should be skipped.]
|
||||
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
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: NOTRUN
|
||||
|
@ -16,5 +16,5 @@
|
|||
expected: NOTRUN
|
||||
|
||||
[Non-HTMLElement should not support autofocus]
|
||||
expected: NOTRUN
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -9,3 +9,6 @@
|
|||
[object.height]
|
||||
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]
|
||||
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]
|
||||
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>
|
||||
</head>
|
||||
<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">
|
||||
This is an image.
|
||||
</p>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 498 Image element with role="presentation" but aria-disabled="true" </title>
|
||||
</head>
|
||||
<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>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 499 Image element with role="presentation" but aria-dropeffect="move" </title>
|
||||
</head>
|
||||
<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>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 500 Image element with role="presentation" but with a valid aria-flowto attribute</title>
|
||||
</head>
|
||||
<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>
|
||||
</body>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 501 Image element with role="presentation" but with aria-grabbed="true"</title>
|
||||
</head>
|
||||
<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>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 502 Image element with role="presentation" but with aria-haspopup="true"</title>
|
||||
</head>
|
||||
<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>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 503 Image element with role="presentation" but with aria-hidden="true"</title>
|
||||
</head>
|
||||
<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>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 504 Image element with role="presentation" but with aria-invalid="true"</title>
|
||||
</head>
|
||||
<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>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 505 Image element with role="presentation" but with aria-label="test"</title>
|
||||
</head>
|
||||
<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>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 506 Image element with role="presentation" but with a valid aria-labelledby attribute</title>
|
||||
</head>
|
||||
<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">
|
||||
test_label
|
||||
</div>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 507 Image element with role="presentation" but with aria-live="assertive"</title>
|
||||
</head>
|
||||
<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>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<title>Test 509 Image element with role="presentation" but with aria-relevant="text"</title>
|
||||
</head>
|
||||
<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>
|
||||
</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="srcset" srcset="resources/square.png 4x">
|
||||
<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_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">
|
||||
|
@ -21,6 +23,8 @@
|
|||
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("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_valid").naturalWidth, 25, "Value Content-DPR header value and srcset")
|
||||
assert_equals(document.getElementById("explicit_width").naturalWidth, 25, "Explicit width attribute")
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
assert_equals(getComputedStyle(el).outlineColor, "rgb(0, 100, 0)");
|
||||
t.done();
|
||||
}));
|
||||
}, "Programmatic focus on page load bshould match :focus-visible");
|
||||
}, "Programmatic focus on page load should match :focus-visible");
|
||||
</script>
|
||||
</body>
|
||||
</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
|
||||
|
||||
from six.moves.urllib.parse import urlencode, urlparse
|
||||
|
||||
def main(request, response):
|
||||
stashed_data = {'count': 0, 'preflight': "0"}
|
||||
status = 302
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
import time
|
||||
|
||||
from six.moves import xrange
|
||||
|
||||
def main(request, response):
|
||||
delay = float(request.GET.first("ms", 500)) / 1E3
|
||||
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',
|
||||
{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
|
||||
subsetTestByKey('window-open', async_test, function() {
|
||||
var id = 'test_window_open';
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<meta name="variant" content="?include=base-href">
|
||||
<meta name="variant" content="?include=workers">
|
||||
<meta name="variant" content="?include=eventsource">
|
||||
<meta name="variant" content="?include=xmldocument">
|
||||
<meta name="variant" content="?include=window-open">
|
||||
<meta name="variant" content="?include=hyperlink-search">
|
||||
<meta name="variant" content="?include=history">
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<meta name="variant" content="?include=base-href">
|
||||
<meta name="variant" content="?include=workers">
|
||||
<meta name="variant" content="?include=eventsource">
|
||||
<meta name="variant" content="?include=xmldocument">
|
||||
<meta name="variant" content="?include=window-open">
|
||||
<meta name="variant" content="?include=hyperlink-search">
|
||||
<meta name="variant" content="?include=history">
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
<meta name="variant" content="?include=base-href">
|
||||
<meta name="variant" content="?include=workers">
|
||||
<meta name="variant" content="?include=eventsource">
|
||||
<meta name="variant" content="?include=xmldocument">
|
||||
<meta name="variant" content="?include=window-open">
|
||||
<meta name="variant" content="?include=hyperlink-search">
|
||||
<meta name="variant" content="?include=history">
|
||||
|
|
|
@ -7,34 +7,44 @@
|
|||
<body onload="on_load()">
|
||||
<div id="log"></div>
|
||||
<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="obj3" data="missing.html" name="o3" height="50" width="100"></object>
|
||||
</form>
|
||||
<script>
|
||||
var obj1;
|
||||
var obj2;
|
||||
var obj3;
|
||||
var t1 = async_test("object.contentWindow");
|
||||
var t2 = async_test("object.contentWindow.name");
|
||||
var t3 = async_test("object.width");
|
||||
var t4 = async_test("object.height");
|
||||
|
||||
setup(function() {
|
||||
obj1 = document.getElementById("obj1");
|
||||
obj2 = document.getElementById("obj2");
|
||||
obj3 = document.getElementById("obj3");
|
||||
});
|
||||
|
||||
function on_load () {
|
||||
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/'.");
|
||||
obj1.setAttribute("name", "o1");
|
||||
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.");
|
||||
assert_equals(obj3.contentWindow, null, "The contentWindow of the object element should be null as it is showing fallback content.");
|
||||
});
|
||||
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() {
|
||||
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.interceptor_ = new MojoInterfaceInterceptor(device.mojom.NFC.name);
|
||||
this.interceptor_.oninterfacerequest =
|
||||
e => this.bindingSet_.addBinding(this, e.handle);
|
||||
this.interceptor_.oninterfacerequest = e => {
|
||||
if (this.should_close_pipe_on_request_)
|
||||
e.handle.close();
|
||||
else
|
||||
this.bindingSet_.addBinding(this, e.handle);
|
||||
}
|
||||
|
||||
this.interceptor_.start();
|
||||
|
||||
this.hw_status_ = NFCHWStatus.ENABLED;
|
||||
|
@ -159,6 +164,7 @@ var WebNFCTest = (() => {
|
|||
this.operations_suspended_ = false;
|
||||
this.is_formatted_tag_ = false;
|
||||
this.data_transfer_failed_ = false;
|
||||
this.should_close_pipe_on_request_ = false;
|
||||
}
|
||||
|
||||
// NFC delegate functions.
|
||||
|
@ -278,6 +284,7 @@ var WebNFCTest = (() => {
|
|||
this.cancelPendingPushOperation();
|
||||
this.is_formatted_tag_ = false;
|
||||
this.data_transfer_failed_ = false;
|
||||
this.should_close_pipe_on_request_ = false;
|
||||
}
|
||||
|
||||
cancelPendingPushOperation() {
|
||||
|
@ -360,6 +367,10 @@ var WebNFCTest = (() => {
|
|||
simulateDataTransferFails() {
|
||||
this.data_transfer_failed_ = true;
|
||||
}
|
||||
|
||||
simulateClosedPipe() {
|
||||
this.should_close_pipe_on_request_ = true;
|
||||
}
|
||||
}
|
||||
|
||||
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 "
|
||||
"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.")
|
||||
|
||||
|
||||
|
|
|
@ -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))
|
||||
nontest_changed_paths.add((full_path, repo_path))
|
||||
|
||||
interface_name = lambda x: os.path.splitext(os.path.basename(x))[0]
|
||||
interfaces_changed_names = map(interface_name, interfaces_changed)
|
||||
interfaces_changed_names = [os.path.splitext(os.path.basename(interface))[0]
|
||||
for interface in interfaces_changed]
|
||||
|
||||
def affected_by_wdspec(test):
|
||||
# type: (str) -> bool
|
||||
|
@ -299,7 +299,7 @@ def affected_testfiles(files_changed, # type: Iterable[Text]
|
|||
|
||||
def affected_by_interfaces(file_contents):
|
||||
# type: (Union[bytes, Text]) -> bool
|
||||
if len(interfaces_changed) > 0:
|
||||
if len(interfaces_changed_names) > 0:
|
||||
if 'idlharness.js' in file_contents:
|
||||
for interface in interfaces_changed_names:
|
||||
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 "
|
||||
"are mapped to a loopback device in /etc/hosts. "
|
||||
"See https://github.com/web-platform-tests/wpt#running-the-tests "
|
||||
"for instructions.")
|
||||
"are mapped to a loopback device in /etc/hosts. "
|
||||
"See https://web-platform-tests.org/running-tests/from-local-system.html#system-setup "
|
||||
"for instructions.")
|
||||
|
||||
|
||||
class RequestRewriter(object):
|
||||
|
|
|
@ -166,6 +166,18 @@ test(t => {
|
|||
assert_numeric_style_equals(getComputedStyle(div).width, 100);
|
||||
}, '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 => {
|
||||
const div = createDiv(t);
|
||||
div.style.opacity = '0.1';
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
<link rel="help" href="https://w3c.github.io/web-nfc/#visible-document">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="resources/nfc-helpers.js"></script>
|
||||
<script>
|
||||
|
||||
promise_test(async t => {
|
||||
nfc_test(async (t, mockNFC) => {
|
||||
mockNFC.simulateClosedPipe();
|
||||
const reader = new NDEFReader();
|
||||
const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]);
|
||||
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
|
||||
// implementation for NFC Mojo interface.
|
||||
promise_test(async t => {
|
||||
nfc_test(async (t, mockNFC) => {
|
||||
mockNFC.simulateClosedPipe();
|
||||
if (window.testRunner) {
|
||||
window.testRunner.setPermission('nfc', 'granted',
|
||||
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
|
||||
// implementation for NFC Mojo interface.
|
||||
promise_test(async t => {
|
||||
nfc_test(async (t, mockNFC) => {
|
||||
mockNFC.simulateClosedPipe();
|
||||
if (window.testRunner) {
|
||||
// Deny nfc permissions for Chromium testrunner.
|
||||
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>
|