Update web-platform-tests to revision aa86bfbb569fee92a3176bae68e3b7ec54140a6d

This commit is contained in:
WPT Sync Bot 2020-07-22 08:20:19 +00:00
parent a242913629
commit 4c80634acb
102 changed files with 1207 additions and 360 deletions

View file

@ -1,4 +0,0 @@
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,2 @@
[percentage-max-height-003.html]
expected: FAIL

View file

@ -1,4 +0,0 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -14,6 +14,6 @@
[test some point of the element: bottom right corner] [test some point of the element: bottom right corner]
expected: FAIL expected: FAIL
[test some point of the element: top left corner] [test the top of layer]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,2 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -315,15 +315,24 @@
[<iframe>: separate response Content-Type: text/html;" text/plain] [<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain] [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain] [<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/plain ] [<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL expected: FAIL

View file

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

View file

@ -11,6 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL expected: FAIL
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff] [X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,5 +1,4 @@
[iframe_sandbox_popups_nonescaping-3.html] [iframe_sandbox_popups_nonescaping-3.html]
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN expected: FAIL

View file

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

View file

@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html] [realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.] [X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL expected: FAIL

View file

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

View file

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

View file

@ -1,7 +1,8 @@
[shared-worker-in-data-url-context.window.html] [shared-worker-in-data-url-context.window.html]
expected: TIMEOUT
[Create a shared worker in a data url frame] [Create a shared worker in a data url frame]
expected: FAIL expected: FAIL
[Create a data url shared worker in a data url frame] [Create a data url shared worker in a data url frame]
expected: FAIL expected: TIMEOUT

View file

@ -17445,15 +17445,15 @@
{} {}
] ]
], ],
"native_FileSystemDirectoryHandle-getEntries-manual.https.html": [ "native_FileSystemDirectoryHandle-getFileHandle-manual.https.html": [
"858bf02f1fa2f5fd2dd01acc96bac149a02896fe", "94b31226f8d600ef60c2412203b9b941d60d0930",
[ [
null, null,
{} {}
] ]
], ],
"native_FileSystemDirectoryHandle-getFileHandle-manual.https.html": [ "native_FileSystemDirectoryHandle-iteration-manual.https.html": [
"94b31226f8d600ef60c2412203b9b941d60d0930", "10d891098dee36fffe58cbc472200add4fb58490",
[ [
null, null,
{} {}
@ -56620,7 +56620,7 @@
] ]
], ],
"floats-clear-multicol-balancing-000.html": [ "floats-clear-multicol-balancing-000.html": [
"a4f3379eca002adbe13b960198967425f7c13787", "b034ceab493971d0bd37d4fc185c80677165019a",
[ [
null, null,
[ [
@ -56633,7 +56633,7 @@
] ]
], ],
"floats-clear-multicol-balancing-001.html": [ "floats-clear-multicol-balancing-001.html": [
"9c8f8148d06727ebf1c166811ef4e2c373339a32", "5944343c603363864d3509489903db530b1f3f9c",
[ [
null, null,
[ [
@ -56646,7 +56646,7 @@
] ]
], ],
"floats-clear-multicol-balancing-002.html": [ "floats-clear-multicol-balancing-002.html": [
"e0343b0ce7a0f7030e2c3b1d9ae3d1056a9bebb3", "99f86d1d455bb4527b390d7dbb2960198d27d098",
[ [
null, null,
[ [
@ -56659,7 +56659,7 @@
] ]
], ],
"floats-clear-multicol-balancing-003.html": [ "floats-clear-multicol-balancing-003.html": [
"8b68f3ad4ebbf98a67875f4823e8c7a348a80421", "4bc32d833da7c6e1c73e728490a2b4993b4dac95",
[ [
null, null,
[ [
@ -139653,6 +139653,19 @@
{} {}
] ]
], ],
"percentage-max-height-003.html": [
"eaab8a35e6fc31ee2144015c04adf12058768cb1",
[
null,
[
[
"/css/reference/ref-filled-green-100px-square.xht",
"=="
]
],
{}
]
],
"percentage-size-subitems-001.html": [ "percentage-size-subitems-001.html": [
"70f3953052a3a770c6cd15ee169607a00fc452b0", "70f3953052a3a770c6cd15ee169607a00fc452b0",
[ [
@ -155276,7 +155289,7 @@
] ]
], ],
"multicol-basic-001.html": [ "multicol-basic-001.html": [
"e3da1a9fd7c1d46e23984cb6d704c79d899d3a7e", "702cf549b1e572f4b6e17ba637603f5667d64b1c",
[ [
null, null,
[ [
@ -155289,7 +155302,7 @@
] ]
], ],
"multicol-basic-002.html": [ "multicol-basic-002.html": [
"f325b85ee1b33d86b7b1a1d2dac99c26b2b3cb05", "50334e96d604092f43fa2583fac0cec7062cfda6",
[ [
null, null,
[ [
@ -155302,7 +155315,7 @@
] ]
], ],
"multicol-basic-003.html": [ "multicol-basic-003.html": [
"814d1e7cd82c54cbae47dbfcb13e105f40050f05", "05cc1e0fe1f3259978c0eff8b55a349bab58e5ba",
[ [
null, null,
[ [
@ -155315,7 +155328,7 @@
] ]
], ],
"multicol-basic-004.html": [ "multicol-basic-004.html": [
"4d8082611936d5ebd70ce2692aff8cc1a9fafd10", "a6699692612985852375d0201330f31b6c64e3b3",
[ [
null, null,
[ [
@ -162634,6 +162647,19 @@
{} {}
] ]
], ],
"marker-animate-002.html": [
"0ed8dbf05e4a9a26ae584b7ccb020cdcd78427fa",
[
null,
[
[
"/css/css-pseudo/marker-animate-002-ref.html",
"=="
]
],
{}
]
],
"marker-color.html": [ "marker-color.html": [
"d45c76696eca826456988d7884adcaa52bfad9cd", "d45c76696eca826456988d7884adcaa52bfad9cd",
[ [
@ -168291,6 +168317,19 @@
{} {}
] ]
], ],
"max-content-input-001.html": [
"aabbea015748f9276718e2ba9728efc375c8910b",
[
null,
[
[
"/css/css-sizing/max-content-input-001-ref.html",
"=="
]
],
{}
]
],
"ortho-writing-mode-001.html": [ "ortho-writing-mode-001.html": [
"9342802645faa7b57a12ce4b8ef17d755fcaface", "9342802645faa7b57a12ce4b8ef17d755fcaface",
[ [
@ -168789,6 +168828,19 @@
{} {}
] ]
], ],
"empty-table-height.html": [
"75f0e99b7b1496bd2c4c630bbe3f3edfe3605342",
[
null,
[
[
"/css/css-tables/min-height-table-ref.html",
"=="
]
],
{}
]
],
"fixup-dynamic-anonymous-inline-table-001.html": [ "fixup-dynamic-anonymous-inline-table-001.html": [
"9bf7b4c578e48d16b92de25220c03132552726e9", "9bf7b4c578e48d16b92de25220c03132552726e9",
[ [
@ -169027,6 +169079,58 @@
{} {}
] ]
], ],
"max-height-table.html": [
"2408b3142ff30f5246324bc27150f88330e1064d",
[
null,
[
[
"/css/css-tables/max-height-table-ref.html",
"=="
]
],
{}
]
],
"min-height-table-2.html": [
"de494e398d1b868533f982615816bef8af5e10c0",
[
null,
[
[
"/css/css-tables/min-height-table-ref.html",
"=="
]
],
{}
]
],
"min-height-table.html": [
"57a0ff9448c6b108f1d5db7552d0d7ee1672bceb",
[
null,
[
[
"/css/css-tables/min-height-table-ref.html",
"=="
]
],
{}
]
],
"min-max-size-table-content-box.html": [
"14016d1318b1b51a80074ed838f936e4e6c01267",
[
null,
[
[
"/css/css-tables/min-max-size-table-content-box-ref.html",
"=="
]
],
{}
]
],
"percent-height-overflow-auto-in-unrestricted-block-size-cell.tentative.html": [ "percent-height-overflow-auto-in-unrestricted-block-size-cell.tentative.html": [
"ffbb796b6afe0fe9fa93e15de3586bef96174d8b", "ffbb796b6afe0fe9fa93e15de3586bef96174d8b",
[ [
@ -278137,7 +278241,7 @@
[] []
], ],
"floats-clear-multicol-balancing-000-ref.html": [ "floats-clear-multicol-balancing-000-ref.html": [
"78b7ffaf2d1a6db9064d1968a47c65b1540e57b0", "e3b700c5d783c1b7e3c0a21c84d681779058132b",
[] []
], ],
"margin-collapse-024-ref.xht": [ "margin-collapse-024-ref.xht": [
@ -303972,11 +304076,11 @@
[] []
], ],
"multicol-count-computed-003-ref.xht": [ "multicol-count-computed-003-ref.xht": [
"60074ee46c61fc59247345639866f76185243fb0", "a2182c59e9bed14940f6f6802400be9be311b892",
[] []
], ],
"multicol-count-computed-004-ref.xht": [ "multicol-count-computed-004-ref.xht": [
"def8e5083ab45f7223a287af52953789dad1413c", "f9eaa671722aedd2898799db8a72358293967898",
[] []
], ],
"multicol-dynamic-add-001-ref.html": [ "multicol-dynamic-add-001-ref.html": [
@ -304036,7 +304140,7 @@
[] []
], ],
"multicol-gap-large-001-ref.xht": [ "multicol-gap-large-001-ref.xht": [
"162d875e76c5c17eaf60924b85ed9011246a6ca3", "3802c3653b2dcfb9bc0d15f644d5eac0a0b247e6",
[] []
], ],
"multicol-gap-large-002-ref.xht": [ "multicol-gap-large-002-ref.xht": [
@ -304396,19 +304500,19 @@
[] []
], ],
"multicol-span-all-margin-001-ref.xht": [ "multicol-span-all-margin-001-ref.xht": [
"6605ad8efb3ea3b3e5e6396dbbf31eb572613fef", "30319f3554f7aae0b567f4676a47592eb65fc707",
[] []
], ],
"multicol-span-all-margin-002-ref.xht": [ "multicol-span-all-margin-002-ref.xht": [
"1538f14025a06e2434808d424e59e8004c0da443", "48b80d12fbfd54208ccbf3f55402509b16982a0a",
[] []
], ],
"multicol-span-all-margin-bottom-001-ref.xht": [ "multicol-span-all-margin-bottom-001-ref.xht": [
"2152b5663724bd65393277d21f8f1caad3128c63", "b3ec5201c139a26ab5d4db65d1e00313e202d12f",
[] []
], ],
"multicol-span-all-margin-nested-001-ref.xht": [ "multicol-span-all-margin-nested-001-ref.xht": [
"dee66329f997bdf882bbb5ee40b5a76efd11877f", "44f1198df8cdd467172975ba5cf6302313fe303c",
[] []
], ],
"multicol-span-all-margin-nested-firstchild-ref.xht": [ "multicol-span-all-margin-nested-firstchild-ref.xht": [
@ -304501,7 +304605,7 @@
[] []
], ],
"multicol-basic-ref.html": [ "multicol-basic-ref.html": [
"7d88977b059defbe00f1b7dbbb37b58f607cf28b", "33b4469428a20d7e49bc3cfce803ad186af7097f",
[] []
], ],
"multicol-clip-scrolled-content-001-ref.html": [ "multicol-clip-scrolled-content-001-ref.html": [
@ -305617,6 +305721,10 @@
"796acbf75980cd62d30ade419359bda8c666b12e", "796acbf75980cd62d30ade419359bda8c666b12e",
[] []
], ],
"marker-animate-002-ref.html": [
"e31774ae370c27d9a655bf15623035291b3d72b6",
[]
],
"marker-color-ref.html": [ "marker-color-ref.html": [
"f2269f7f78b3bf08703fdca1117c660de10ce8ca", "f2269f7f78b3bf08703fdca1117c660de10ce8ca",
[] []
@ -306771,6 +306879,10 @@
"38f480c0acdbf4ca9605831e9e48a9998b1bcdd3", "38f480c0acdbf4ca9605831e9e48a9998b1bcdd3",
[] []
], ],
"max-content-input-001-ref.html": [
"c01e46550a7f0b5b92321d5893a8fe2a1ea0c9ac",
[]
],
"range-percent-intrinsic-size-1-ref.html": [ "range-percent-intrinsic-size-1-ref.html": [
"9a68590b6389eb9c1fefc2dc37f42b2a60b3b41a", "9a68590b6389eb9c1fefc2dc37f42b2a60b3b41a",
[] []
@ -307153,6 +307265,18 @@
[] []
] ]
}, },
"max-height-table-ref.html": [
"ab1036ebb8dffa550b499f8a334c5b6455ba072b",
[]
],
"min-height-table-ref.html": [
"05533216d291c0ae3b52502db110c87bf8f798e6",
[]
],
"min-max-size-table-content-box-ref.html": [
"53f89af133dace914ebaaf7dfb3e517e8a4193fb",
[]
],
"row-group-margin-border-padding-ref.html": [ "row-group-margin-border-padding-ref.html": [
"aa3e68e6ab2830a817f8612e240888c2cc6e7a6a", "aa3e68e6ab2830a817f8612e240888c2cc6e7a6a",
[] []
@ -324889,7 +325013,7 @@
[] []
], ],
"bad-chunk-encoding.py": [ "bad-chunk-encoding.py": [
"23c7b3f47c4d11f51c5174b86541efc5988ba155", "94a77adead858b48137e3988d0c674cd945a4270",
[] []
], ],
"basic.html": [ "basic.html": [
@ -324917,7 +325041,7 @@
[] []
], ],
"echo-content.py": [ "echo-content.py": [
"9a038f329c87e4e9dab96caa8d6fda973880d732", "5e137e15d7d3b0f684b7a1a2aa0b27a719730eb4",
[] []
], ],
"empty.txt": [ "empty.txt": [
@ -324945,7 +325069,7 @@
[] []
], ],
"redirect-empty-location.py": [ "redirect-empty-location.py": [
"2baabae03b0bf368bbcd9b26a01d22ecd8e86470", "1a5f7feb2a4b329473d29d45c1b245c66258d8df",
[] []
], ],
"redirect.py": [ "redirect.py": [
@ -324957,7 +325081,7 @@
[] []
], ],
"script-with-header.py": [ "script-with-header.py": [
"5337cc97bdd7737e40398cb066a98a5246ba4392", "9a9c70ef5cf00d7f16963004e77ff135ed92afb4",
[] []
], ],
"stash-put.py": [ "stash-put.py": [
@ -324969,7 +325093,7 @@
[] []
], ],
"status.py": [ "status.py": [
"5d72e10b24bfd5a36d719940388bb55d44433546", "05a59d5a637edde8fb049627fdce8a3a0e836716",
[] []
], ],
"sw-intercept.js": [ "sw-intercept.js": [
@ -325225,11 +325349,11 @@
[] []
], ],
"document-with-0x00-in-header.py": [ "document-with-0x00-in-header.py": [
"6e8db6195910ef4c85dced8b24541ecde83c5405", "223b3c4027826f2bba1394db465c93ec7cbbe001",
[] []
], ],
"script-with-0x00-in-header.py": [ "script-with-0x00-in-header.py": [
"f4a016a369831ee5dcdb3563468ccf8dd0b0982b", "39f58d8270e7671bf74e40ac84e05a7558df4f68",
[] []
] ]
} }
@ -341412,11 +341536,11 @@
[] []
], ],
"messaging-serialize-helpers.js": [ "messaging-serialize-helpers.js": [
"b4d41aa91c018f867240969297ba4a5c5ae8930d", "3ef347f98fef90322b60eef7f9b35baef2751205",
[] []
], ],
"native-fs-test-helpers.js": [ "native-fs-test-helpers.js": [
"231bc0675320e5862107c603fc48076a841492cf", "cd1613eae5d9041048c8f5df049377d8176c5c24",
[] []
], ],
"opaque-origin-sandbox.html": [ "opaque-origin-sandbox.html": [
@ -341424,11 +341548,11 @@
[] []
], ],
"sandboxed-fs-test-helpers.js": [ "sandboxed-fs-test-helpers.js": [
"1b27445e95117a7b15030a3762fb8cc817208409", "e3c18dbecec93f701531f57434b13cb395681828",
[] []
], ],
"test-helpers.js": [ "test-helpers.js": [
"0d8bdfde8d747faab170e99abb5ed7ddfa43e1a3", "27469349cdeaa8eb02fd3b8e19ed9a4cff2a6081",
[] []
] ]
}, },
@ -341477,14 +341601,14 @@
"48a4ce4ce69e8f6823db6fdd0c83a2a0c3378f32", "48a4ce4ce69e8f6823db6fdd0c83a2a0c3378f32",
[] []
], ],
"FileSystemDirectoryHandle-getEntries.js": [
"571683ccfd1182631a0398017a9f67fa04bb255c",
[]
],
"FileSystemDirectoryHandle-getFileHandle.js": [ "FileSystemDirectoryHandle-getFileHandle.js": [
"dddd67a705808c65f759741956c3b2e16114f43d", "dddd67a705808c65f759741956c3b2e16114f43d",
[] []
], ],
"FileSystemDirectoryHandle-iteration.js": [
"200f5af65f56fdc9280c8b957b187cc4ded93d20",
[]
],
"FileSystemDirectoryHandle-removeEntry.js": [ "FileSystemDirectoryHandle-removeEntry.js": [
"5b25ed6874fe95d4b076af974d5d2d27e471378d", "5b25ed6874fe95d4b076af974d5d2d27e471378d",
[] []
@ -358077,7 +358201,7 @@
"animation-model": { "animation-model": {
"animation-types": { "animation-types": {
"property-list.js": [ "property-list.js": [
"3c3bf5de56d921fdc583e0a4216b4946e2c8a0c0", "e9b7c524a749f2a8372868a1245224cf0f7d01d5",
[] []
], ],
"property-types.js": [ "property-types.js": [
@ -363491,6 +363615,10 @@
"46523a905a9f70183d0a5e96cff2d76ad9e6d549", "46523a905a9f70183d0a5e96cff2d76ad9e6d549",
[] []
], ],
"access-control-basic-cors-safelisted-response-headers.py": [
"346b6b919656b23fb911587d447756711a59231e",
[]
],
"access-control-basic-denied.py": [ "access-control-basic-denied.py": [
"0d3964cb1157f75bbc59d2fa75c16aa98951a591", "0d3964cb1157f75bbc59d2fa75c16aa98951a591",
[] []
@ -363515,10 +363643,6 @@
"9b347bca4234e5dccbf5f71c3657b1a02d5c7ac6", "9b347bca4234e5dccbf5f71c3657b1a02d5c7ac6",
[] []
], ],
"access-control-basic-whitelist-response-headers.py": [
"346b6b919656b23fb911587d447756711a59231e",
[]
],
"access-control-cookie.py": [ "access-control-cookie.py": [
"8c26475c387a7de7458060f18adeab3b6429361a", "8c26475c387a7de7458060f18adeab3b6429361a",
[] []
@ -363738,7 +363862,7 @@
[] []
], ],
"invalid-utf8-html.py": [ "invalid-utf8-html.py": [
"c15d17151a136974fa0838cc3b3311fde2a78fa4", "1c0cd84f42ffb2261d70dbad034cd99eb9ba1b90",
[] []
], ],
"last-modified.py": [ "last-modified.py": [
@ -363800,7 +363924,7 @@
[] []
], ],
"shift-jis-html.py": [ "shift-jis-html.py": [
"47c67d8ae39e96bacd97d7cb14c59151060e2683", "b3326c1ba7b3b2398fc1933ae4a49ad05a005b84",
[] []
], ],
"status.py": [ "status.py": [
@ -363836,7 +363960,7 @@
[] []
], ],
"win-1252-xml.py": [ "win-1252-xml.py": [
"d88086e936ea17f75f30c18f4e9bd424ba609fff", "50e9f04fb8dde0f20b07c5b0777caa005480be3a",
[] []
], ],
"workerxhr-origin-referrer.js": [ "workerxhr-origin-referrer.js": [
@ -396415,7 +396539,7 @@
] ]
], ],
"grid-template-areas-invalid.html": [ "grid-template-areas-invalid.html": [
"5bc70c5697a2a642ce80b902851f3687eba901d7", "b0e60962cfcea643996ff11100687fab96237828",
[ [
null, null,
{} {}
@ -411209,6 +411333,13 @@
{} {}
] ]
], ],
"devicePixelRatio-undisplayed-iframe.tentative.html": [
"c3ee5c51338a5565c27421902489134ef016f329",
[
null,
{}
]
],
"dom-element-scroll.html": [ "dom-element-scroll.html": [
"3f3e27aaf671bd38231fc64e3a5165c388b1bc30", "3f3e27aaf671bd38231fc64e3a5165c388b1bc30",
[ [
@ -481128,47 +481259,6 @@
} }
] ]
], ],
"sandboxed_FileSystemDirectoryHandle-getEntries.https.any.js": [
"da620e2a3b17a97bc4db3872484f217a3fa2c582",
[
"native-file-system/sandboxed_FileSystemDirectoryHandle-getEntries.https.any.html",
{
"script_metadata": [
[
"script",
"resources/test-helpers.js"
],
[
"script",
"resources/sandboxed-fs-test-helpers.js"
],
[
"script",
"script-tests/FileSystemDirectoryHandle-getEntries.js"
]
]
}
],
[
"native-file-system/sandboxed_FileSystemDirectoryHandle-getEntries.https.any.worker.html",
{
"script_metadata": [
[
"script",
"resources/test-helpers.js"
],
[
"script",
"resources/sandboxed-fs-test-helpers.js"
],
[
"script",
"script-tests/FileSystemDirectoryHandle-getEntries.js"
]
]
}
]
],
"sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.js": [ "sandboxed_FileSystemDirectoryHandle-getFileHandle.https.any.js": [
"afe362e757cf9ac98e840c31003a8a85d20100e5", "afe362e757cf9ac98e840c31003a8a85d20100e5",
[ [
@ -481210,6 +481300,47 @@
} }
] ]
], ],
"sandboxed_FileSystemDirectoryHandle-iteration.https.any.js": [
"3961ea3ea86cd209d69485e8301850db193f5c8d",
[
"native-file-system/sandboxed_FileSystemDirectoryHandle-iteration.https.any.html",
{
"script_metadata": [
[
"script",
"resources/test-helpers.js"
],
[
"script",
"resources/sandboxed-fs-test-helpers.js"
],
[
"script",
"script-tests/FileSystemDirectoryHandle-iteration.js"
]
]
}
],
[
"native-file-system/sandboxed_FileSystemDirectoryHandle-iteration.https.any.worker.html",
{
"script_metadata": [
[
"script",
"resources/test-helpers.js"
],
[
"script",
"resources/sandboxed-fs-test-helpers.js"
],
[
"script",
"script-tests/FileSystemDirectoryHandle-iteration.js"
]
]
}
]
],
"sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.js": [ "sandboxed_FileSystemDirectoryHandle-removeEntry.https.any.js": [
"a4be8bd267e743ee617c29c1cce1188e6b9d377a", "a4be8bd267e743ee617c29c1cce1188e6b9d377a",
[ [
@ -482155,7 +482286,7 @@
] ]
], ],
"rename_async_failure_handling.tentative.https.any.js": [ "rename_async_failure_handling.tentative.https.any.js": [
"5e0f96408bb7ba3c9d6d75bc21f1cc1d6242f98e", "64ea24fa65ebd55e7b9f343334a359356d56207b",
[ [
"native-io/rename_async_failure_handling.tentative.https.any.html", "native-io/rename_async_failure_handling.tentative.https.any.html",
{ {
@ -486412,6 +486543,13 @@
} }
] ]
], ],
"pointerevent_tiltX_tiltY_to_azimuth_altitude.html": [
"4521c247d157ce7365a6ef27801bdfd9151db6e4",
[
null,
{}
]
],
"pointerevent_touch-action-auto-css_touch.html": [ "pointerevent_touch-action-auto-css_touch.html": [
"c486d77c1119128d7ad87c5c83aea43ebfe379e7", "c486d77c1119128d7ad87c5c83aea43ebfe379e7",
[ [
@ -511692,7 +511830,28 @@
] ]
], ],
"SVGGeometryElement.getPointAtLength-02.svg": [ "SVGGeometryElement.getPointAtLength-02.svg": [
"4cf93da6a18dfb57db426ae9da8a44beb5e7efbb", "9420503d404522fbc4d90ca5f60f70eb304687e2",
[
null,
{}
]
],
"SVGGeometryElement.getPointAtLength-03.svg": [
"61737efb7da187cb8bcb18c3eff49e5e204cf1c0",
[
null,
{}
]
],
"SVGGeometryElement.getPointAtLength-04.svg": [
"f0a13631ba5cd6e0cca4533263b023c70aad1067",
[
null,
{}
]
],
"SVGGeometryElement.getPointAtLength-05.svg": [
"50a713743d684e70f0aba780df4e858cb89dad9b",
[ [
null, null,
{} {}
@ -520054,14 +520213,14 @@
] ]
], ],
"NDEFReader_scan.https.html": [ "NDEFReader_scan.https.html": [
"db50b66f058c90511da15aa52ba435d6da2e483d", "46f2871f3dc9a4c4bd74923d05b6b90477ddb0a8",
[ [
null, null,
{} {}
] ]
], ],
"NDEFReader_scan_filter.https.html": [ "NDEFReader_scan_filter.https.html": [
"ddb25b87e14b010014549e5f5b9a8c0fc165624c", "1fea2437b9366d26b7065cf59412cc204d2735ea",
[ [
null, null,
{} {}
@ -534148,7 +534307,7 @@
] ]
], ],
"access-control-basic-cors-safelisted-response-headers.htm": [ "access-control-basic-cors-safelisted-response-headers.htm": [
"a5c470b74f51d6c577d335159427d3c804bce5ba", "be9a10ef0163a928a5ad6144d9d979b270e2cf24",
[ [
null, null,
{} {}

View file

@ -1,4 +0,0 @@
[hit-test-floats-004.html]
[Miss float below something else]
expected: FAIL

View file

@ -0,0 +1,4 @@
[hit-test-floats-005.html]
[Miss clipped float]
expected: FAIL

View file

@ -0,0 +1,2 @@
[percentage-max-height-003.html]
expected: FAIL

View file

@ -1,4 +0,0 @@
[CaretPosition-001.html]
[Element at (400, 100)]
expected: FAIL

View file

@ -18,6 +18,6 @@
[test some point of the element: bottom right corner] [test some point of the element: bottom right corner]
expected: FAIL expected: FAIL
[test some point of the element: top left corner] [test the top of layer]
expected: FAIL expected: FAIL

View file

@ -0,0 +1,2 @@
[HTMLMediaElement.html]
expected: TIMEOUT

View file

@ -315,15 +315,24 @@
[<iframe>: separate response Content-Type: text/html;" text/plain] [<iframe>: separate response Content-Type: text/html;" text/plain]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain] [<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL expected: FAIL
[<iframe>: combined response Content-Type: text/html;x=" text/plain] [<iframe>: combined response Content-Type: text/html;x=" text/plain]
expected: FAIL expected: FAIL
[<iframe>: separate response Content-Type: text/plain ] [<iframe>: combined response Content-Type: */* text/html]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;charset=gbk text/plain text/html]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL expected: FAIL

View file

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

View file

@ -11,6 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!] [X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
expected: FAIL expected: FAIL
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff] [X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL expected: FAIL

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,6 +1,5 @@
[iframe_sandbox_popups_nonescaping-3.html] [iframe_sandbox_popups_nonescaping-3.html]
type: testharness type: testharness
expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox] [Check that popups from a sandboxed iframe do not escape the sandbox]
expected: NOTRUN expected: FAIL

View file

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

View file

@ -1,5 +1,4 @@
[realtimeanalyser-fft-scaling.html] [realtimeanalyser-fft-scaling.html]
expected: TIMEOUT
[X 2048-point FFT peak position is not equal to 64. Got 0.] [X 2048-point FFT peak position is not equal to 64. Got 0.]
expected: FAIL expected: FAIL

View file

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

View file

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

View file

@ -1,7 +1,8 @@
[shared-worker-in-data-url-context.window.html] [shared-worker-in-data-url-context.window.html]
expected: TIMEOUT
[Create a shared worker in a data url frame] [Create a shared worker in a data url frame]
expected: FAIL expected: FAIL
[Create a data url shared worker in a data url frame] [Create a data url shared worker in a data url frame]
expected: FAIL expected: TIMEOUT

View file

@ -20,7 +20,7 @@
height: 250px; height: 250px;
} }
.clear { .clear {
border-bottom: solid orange; border-bottom: 5px solid orange;
background: red; background: red;
} }
</style> </style>

View file

@ -32,7 +32,7 @@
} }
.clear { .clear {
border-bottom: solid orange; border-bottom: 5px solid orange;
} }
</style> </style>

View file

@ -31,7 +31,7 @@
} }
.clear { .clear {
border-bottom: solid orange; border-bottom: 5px solid orange;
background: red; background: red;
} }
</style> </style>

View file

@ -33,7 +33,7 @@
.clear { .clear {
clear: left; clear: left;
border-bottom: solid orange; border-bottom: 5px solid orange;
background: red; background: red;
} }
</style> </style>

View file

@ -42,7 +42,7 @@
background: red; background: red;
} }
.bar { .bar {
border-bottom: orange solid; border-bottom: 5px orange solid;
} }
</style> </style>

View file

@ -0,0 +1,57 @@
<!doctype html>
<link rel="author" title="David Grogan" href="mailto:dgrogan@chromium.org">
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#definite-sizes">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<link rel="bookmark" href="https://crbug.com/1107604">
<meta name="assert" content="Replaced children with % max-height are sized correctly when they are deeply nested flex items with imposed definite heights." />
<style>
#reference-overlapped-red {
position: absolute;
background-color: red;
width: 100px;
height: 100px;
z-index: -1;
}
#outer-flexbox {
display: flex;
width: 200px;
height: 200px;
flex-direction: column;
align-items: flex-start;
}
#middle-flexbox {
display: flex;
height: 50%;
/* This needs to be stretched for repro */
align-items: stretch;
min-height: 0px;
}
#inner-flexbox {
display: flex;
align-items: flex-start;
min-width: 0px;
}
img {
max-height: 100%;
min-width: 0px;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<div id="reference-overlapped-red"></div>
<div id=outer-flexbox>
<div id=middle-flexbox>
<div id=inner-flexbox>
<!-- This is a 400x400 green square. It's inline so that there is no
raciness when an image resource loads, which affects chrome's behavior
on this test. -->
<img src="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400' width='400' height='400'><rect width='400' height='400' fill='green'/></svg>">
</div>
</div>
</div>

View file

@ -15,6 +15,14 @@
test_invalid_value("grid-template-areas", "auto"); test_invalid_value("grid-template-areas", "auto");
test_invalid_value("grid-template-areas", 'none "first"'); test_invalid_value("grid-template-areas", 'none "first"');
test_invalid_value("grid-template-areas", '"first" none'); test_invalid_value("grid-template-areas", '"first" none');
test_invalid_value("grid-template-areas", '""');
test_invalid_value("grid-template-areas", '" "');
test_invalid_value("grid-template-areas", '"." ""');
test_invalid_value("grid-template-areas", '"." " "');
test_invalid_value("grid-template-areas", '"first" ""');
test_invalid_value("grid-template-areas", '"first" "" "second"');
test_invalid_value("grid-template-areas", '"first" " "');
test_invalid_value("grid-template-areas", '"" none');
</script> </script>
</body> </body>
</html> </html>

View file

@ -14,7 +14,7 @@
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css"> <style type="text/css">
.multicol-wrapper>*{ .multicol-wrapper>*{
font-family: Ahem; font: 20px/1 Ahem;
} }
div.multicol-wrapper{ div.multicol-wrapper{

View file

@ -14,7 +14,7 @@
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css"> <style type="text/css">
.multicol-wrapper>*{ .multicol-wrapper>*{
font-family: Ahem; font: 20px/1 Ahem;
} }
div.multicol-wrapper{ div.multicol-wrapper{

View file

@ -14,7 +14,7 @@
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css"> <style type="text/css">
.multicol-wrapper>*{ .multicol-wrapper>*{
font-family: Ahem; font: 20px/1 Ahem;
} }
div.multicol-wrapper{ div.multicol-wrapper{

View file

@ -14,7 +14,7 @@
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css"> <style type="text/css">
.multicol-wrapper>*{ .multicol-wrapper>*{
font-family: Ahem; font: 20px/1 Ahem;
} }
div.multicol-wrapper{ div.multicol-wrapper{

View file

@ -4,9 +4,11 @@
<title>CSS Reftest Reference</title> <title>CSS Reftest Reference</title>
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" /> <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-07-29 --> <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-07-29 -->
<meta name="flags" content="image" /> <meta name="flags" content="image ahem" />
<link rel="stylesheet" href="/fonts/ahem.css" />
<style type="text/css"><![CDATA[ <style type="text/css"><![CDATA[
body {font: 1.25em/1 Ahem;}
img {vertical-align: top;} img {vertical-align: top;}
]]></style> ]]></style>
</head> </head>

View file

@ -4,9 +4,11 @@
<title>CSS Reftest Reference</title> <title>CSS Reftest Reference</title>
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" /> <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-07-29 --> <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-07-29 -->
<meta name="flags" content="image" /> <meta name="flags" content="image ahem" />
<link rel="stylesheet" href="/fonts/ahem.css" />
<style type="text/css"><![CDATA[ <style type="text/css"><![CDATA[
body {font: 1.25em/1 Ahem;}
img {vertical-align: top;} img {vertical-align: top;}
]]></style> ]]></style>
</head> </head>

View file

@ -4,8 +4,10 @@
<title>CSS Reftest Reference</title> <title>CSS Reftest Reference</title>
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" /> <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-06 --> <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-06 -->
<meta name="flags" content="image" /> <meta name="flags" content="image ahem" />
<link rel="stylesheet" href="/fonts/ahem.css" />
<style type="text/css"><![CDATA[ <style type="text/css"><![CDATA[
body {font: 1.25em/1 Ahem;}
img {vertical-align: top;} img {vertical-align: top;}
]]></style> ]]></style>
</head> </head>

View file

@ -4,11 +4,13 @@
<title>CSS Reftest Reference</title> <title>CSS Reftest Reference</title>
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" /> <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-18 --> <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-18 -->
<meta name="flags" content="image" /> <meta name="flags" content="image ahem" />
<link rel="stylesheet" href="/fonts/ahem.css" />
<style type="text/css"><![CDATA[ <style type="text/css"><![CDATA[
div div
{ {
border: gray solid 1.25em; font: 1.25em/1 Ahem;
border: gray solid 1em;
width: 160px; width: 160px;
} }

View file

@ -4,8 +4,11 @@
<title>CSS Reftest Reference</title> <title>CSS Reftest Reference</title>
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" /> <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-19 --> <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-19 -->
<meta name="flags" content="image" /> <meta name="flags" content="image ahem" />
<link rel="stylesheet" href="/fonts/ahem.css" />
<style type="text/css"><![CDATA[ <style type="text/css"><![CDATA[
body {font: 1.25em/1 Ahem;}
div {width: 240px;} div {width: 240px;}
img {vertical-align: top;} img {vertical-align: top;}

View file

@ -4,11 +4,13 @@
<title>CSS Reftest Reference</title> <title>CSS Reftest Reference</title>
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" /> <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-19 --> <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-19 -->
<meta name="flags" content="image" /> <meta name="flags" content="image ahem" />
<link rel="stylesheet" href="/fonts/ahem.css" />
<style type="text/css"><![CDATA[ <style type="text/css"><![CDATA[
div div
{ {
border: gray solid 1.25em; font: 1.25em/1 Ahem;
border: gray solid 1em;
width: 160px; width: 160px;
} }

View file

@ -4,11 +4,13 @@
<title>CSS Reftest Reference</title> <title>CSS Reftest Reference</title>
<link rel="author" title="Opera Software ASA" href="http://www.opera.com/" /> <link rel="author" title="Opera Software ASA" href="http://www.opera.com/" />
<link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-19 --> <link rel="reviewer" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/" /> <!-- 2013-08-19 -->
<meta name="flags" content="image" /> <meta name="flags" content="image ahem" />
<link rel="stylesheet" href="/fonts/ahem.css" />
<style type="text/css"><![CDATA[ <style type="text/css"><![CDATA[
div div
{ {
border: gray solid 1.25em; font: 1.25em/1 Ahem;
border: gray solid 1em;
width: 160px; width: 160px;
} }

View file

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" /> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<style type="text/css"> <style type="text/css">
.multicol-wrapper>*{ .multicol-wrapper>*{
font-family: Ahem; font: 20px/1 Ahem;
} }
div.multicol-wrapper{ div.multicol-wrapper{

View file

@ -0,0 +1,10 @@
<!doctype html>
<meta charset=utf-8>
<style>
li::marker {
color: green;
}
</style>
<ul>
<li>Item</li>
</ul>

View file

@ -0,0 +1,17 @@
<!doctype html>
<meta charset=utf-8>
<title>CSS Test: A Web Animations only apply to restricted properties on ::marker pseudo-elements</title>
<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#marker-pseudo">
<link rel="match" href="marker-animate-002-ref.html">
<ul>
<li>Item</li>
</ul>
<script>
document.querySelector('li').animate({
opacity: [0.1, 0.1],
color: ['green', 'green']
}, {
pseudoElement: '::marker',
duration: Infinity
});
</script>

View file

@ -0,0 +1,22 @@
<!DOCTYPE html>
<title>Reference: max-content sizes of INPUT and TEXTAREA</title>
<style>
input, textarea { font: 20px monospace; white-space: pre; }
</style>
<p><input value="sample text">
<p><textarea class="h" rows=7 cols=12>sample text 1 sample text 1
sample text 2 sample text 2
sample text 3 sample text 3
sample text 4 sample text 4
sample text 5 sample text 5
sample text 6 sample text 6
sample text 7 sample text 7</textarea>
<p><input value="sample text" style="width: 11ch">
<p><textarea class="h" rows=3 cols=27>sample text 1 sample text 1
sample text 2 sample text 2
sample text 3 sample text 3</textarea>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<title>Test: max-content sizes of INPUT and TEXTAREA</title>
<link rel="help" href="https://www.w3.org/TR/css-sizing-3/#intrinsic-sizes">
<link rel="match" href="max-content-input-001-ref.html">
<style>
input, textarea { font: 20px monospace; white-space: pre; }
</style>
<p><input style="height: max-content" value="sample text">
<p><textarea style="height: max-content" rows=3 cols=12>sample text 1 sample text 1
sample text 2 sample text 2
sample text 3 sample text 3
sample text 4 sample text 4
sample text 5 sample text 5
sample text 6 sample text 6
sample text 7 sample text 7</textarea>
<p><input value="sample text" style="width: max-content">
<p><textarea class="h" rows=3 cols=12 style="width: max-content">sample text 1 sample text 1
sample text 2 sample text 2
sample text 3 sample text 3</textarea>

View file

@ -0,0 +1,16 @@
<!doctype html>
<title>Empty tables still account for paddings / borders</title>
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1651530">
<link rel="help" href="https://drafts.csswg.org/css-tables/#computing-the-table-height">
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<link rel="match" href="min-height-table-ref.html">
<style>
div {
display: table;
background-color: green;
border: 1px solid black;
padding: 155px;
}
</style>
<div></div>

View file

@ -0,0 +1,23 @@
<!doctype html>
<title>CSS test reference</title>
<style>
td {
padding: 0;
}
table {
border-spacing: 0;
border: 1px solid black;
background: green;
padding: 5px;
}
div {
width: 5px;
height: 5px;
}
</style>
<table>
<tr>
<td><div></div></td>
</tr>
</table>

View file

@ -0,0 +1,31 @@
<!doctype html>
<title>max-height cannot shrink a table under its intrinsic size</title>
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1651530">
<link rel="help" href="https://drafts.csswg.org/css-tables/#computing-the-table-height">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5336">
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<link rel="match" href="max-height-table-ref.html">
<style>
td {
padding: 0;
}
table {
border-spacing: 0;
max-height: 0;
border: 1px solid black;
background: green;
padding: 5px;
}
div {
width: 5px;
height: 5px;
}
</style>
<table>
<tr>
<td><div></div></td>
</tr>
</table>

View file

@ -0,0 +1,41 @@
<!doctype html>
<title>min-height can grow a table over its intrinsic size</title>
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1651530">
<link rel="help" href="https://drafts.csswg.org/css-tables/#computing-the-table-height">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5336">
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<link rel="match" href="min-height-table-ref.html">
<style>
:root { overflow: hidden; }
td {
padding: 0;
}
table {
border-spacing: 0;
max-height: 40px; /* Just to make sure that min trumps max, like everywhere else */
min-height: 50%;
border: 1px solid black;
background: green;
padding: 5px;
}
.outer {
/* 300px from the ref, plus 12px for border + padding, which applies to the table wrapper box, not the grid box */
height: calc((300px + 12px) * 2);
}
.inner {
width: 300px;
height: 5px;
}
</style>
<div class="outer">
<table>
<tr>
<td><div class="inner"></div></td>
</tr>
</table>
</div>

View file

@ -0,0 +1,23 @@
<!doctype html>
<title>CSS test reference</title>
<style>
td {
padding: 0;
}
table {
border-spacing: 0;
border: 1px solid black;
background: green;
padding: 5px;
}
div {
width: 300px;
height: 300px;
}
</style>
<table>
<tr>
<td><div></div></td>
</tr>
</table>

View file

@ -0,0 +1,30 @@
<!doctype html>
<title>min-height can grow a table over its intrinsic size</title>
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1651530">
<link rel="help" href="https://drafts.csswg.org/css-tables/#computing-the-table-height">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5336">
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<link rel="match" href="min-height-table-ref.html">
<style>
td {
padding: 0;
}
table {
border-spacing: 0;
min-height: 312px; /* To account for the padding + border, which apply to the wrapper box, not the grid box */
border: 1px solid black;
background: green;
padding: 5px;
}
div {
width: 300px;
height: 5px;
}
</style>
<table>
<tr>
<td><div></div></td>
</tr>
</table>

View file

@ -0,0 +1,43 @@
<!doctype html>
<title>CSS Test Reference</title>
<meta charset="utf-8">
<style>
html,
body {
color: black;
background-color: white;
font: 16px/0 monospace;
padding: 0;
margin: 0;
}
.table {
box-sizing: content-box;
border: 3px solid black;
padding: 5px;
background: blue content-box;
display: inline-block;
}
.big {
width: 75px;
height: 75px;
}
.td {
padding: 1px;
}
.grid {
display: grid;
width: 75px;
height: 75px;
}
</style>
<div class="table"><div class="td"></div></div><br>
<div class="table" style="min-height: 50px"><div class="td"></div></div><br>
<div class="table" style="min-width: 50px"><div class="td"></div></div><br>
<div class="table"><div class="td"><div class="big"></div></div></div><br>
<div class="table"><div class="td"><div class="big"></div></div></div><br>
<div class="grid"><div class="table" style="max-height: 50px"><div class="td"></div></div></div>
<div class="grid"><div class="table" style="max-width: 50px"><div class="td"></div></div></div>

View file

@ -0,0 +1,47 @@
<!doctype html>
<title>min/max-{width,height} on tables with box-sizing: content-box</title>
<meta charset="utf-8">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1651530">
<link rel="help" href="https://drafts.csswg.org/css-tables/#computing-the-table-height">
<link rel="help" href="https://github.com/w3c/csswg-drafts/issues/5336">
<link rel="author" href="mailto:mats@mozilla.com" title="Mats Palmgren">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<link rel="match" href="min-max-size-table-content-box-ref.html">
<style>
html,
body {
color: black;
background-color: white;
font: 16px/1 monospace;
padding: 0;
margin: 0;
}
table {
box-sizing: content-box;
border: 3px solid black;
padding: 5px;
background: blue content-box;
border-spacing: 0;
}
td {
padding: 1px;
}
div {
width: 75px;
height: 75px;
}
.grid {
display: grid;
}
</style>
<table><td></td></table>
<table style="min-height:50px"><td></td></table>
<table style="min-width:50px"><td></td></table>
<table style="max-height:50px"><td><div></div></td></table>
<table style="max-width:50px"><td><div></div></td></table>
<div class="grid"><table style="max-height:50px"><td></td></table></div>
<div class="grid"><table style="max-width:50px"><td></td></table></div>

View file

@ -0,0 +1,19 @@
<!doctype html>
<link rel="help" href="https://drafts.csswg.org/cssom-view/#dom-window-devicepixelratio">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1602347">
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<title>window.devicePixelRatio in an undisplayed iframe matches the dpi of the parent document</title>
<div style="display: none">
<iframe src="about:blank"></iframe>
</div>
<script>
onload = function() {
test(function() {
let win = document.querySelector("iframe").contentWindow;
assert_equals(win.devicePixelRatio, window.devicePixelRatio, "window.devicePixelRatio in an undisplayed iframe matches the dpi of the parent document");
});
};
</script>

View file

@ -1,13 +1,13 @@
import time import time
def main(request, response): def main(request, response):
delay = float(request.GET.first("ms", 1000)) / 1E3 delay = float(request.GET.first(b"ms", 1000)) / 1E3
count = int(request.GET.first("count", 50)) count = int(request.GET.first(b"count", 50))
time.sleep(delay) time.sleep(delay)
response.headers.set("Transfer-Encoding", "chunked") response.headers.set(b"Transfer-Encoding", b"chunked")
response.write_status_headers() response.write_status_headers()
time.sleep(delay) time.sleep(delay)
for i in xrange(count): for i in range(count):
response.writer.write_content("a\r\nTEST_CHUNK\r\n") response.writer.write_content(b"a\r\nTEST_CHUNK\r\n")
time.sleep(delay) time.sleep(delay)
response.writer.write_content("garbage") response.writer.write_content(b"garbage")

View file

@ -1,10 +1,12 @@
from wptserve.utils import isomorphic_encode
def main(request, response): def main(request, response):
headers = [("X-Request-Method", request.method), headers = [(b"X-Request-Method", isomorphic_encode(request.method)),
("X-Request-Content-Length", request.headers.get("Content-Length", "NO")), (b"X-Request-Content-Length", request.headers.get(b"Content-Length", b"NO")),
("X-Request-Content-Type", request.headers.get("Content-Type", "NO")), (b"X-Request-Content-Type", request.headers.get(b"Content-Type", b"NO")),
# Avoid any kind of content sniffing on the response. # Avoid any kind of content sniffing on the response.
("Content-Type", "text/plain")] (b"Content-Type", b"text/plain")]
content = request.body content = request.body
return headers, content return headers, content

View file

@ -1,3 +1,3 @@
def main(request, response): def main(request, response):
headers = [("Location", "")] headers = [(b"Location", b"")]
return 302, headers, "" return 302, headers, b""

View file

@ -1,7 +1,7 @@
def main(request, response): def main(request, response):
headers = [("Content-type", request.GET.first("mime"))] headers = [(b"Content-type", request.GET.first(b"mime"))]
if "content" in request.GET and request.GET.first("content") == "empty": if b"content" in request.GET and request.GET.first(b"content") == b"empty":
content = '' content = b''
else: else:
content = "console.log('Script loaded')" content = b"console.log('Script loaded')"
return 200, headers, content return 200, headers, content

View file

@ -1,9 +1,11 @@
from wptserve.utils import isomorphic_encode
def main(request, response): def main(request, response):
code = int(request.GET.first("code", 200)) code = int(request.GET.first(b"code", 200))
text = request.GET.first("text", "OMG") text = request.GET.first(b"text", b"OMG")
content = request.GET.first("content", "") content = request.GET.first(b"content", b"")
type = request.GET.first("type", "") type = request.GET.first(b"type", b"")
status = (code, text) status = (code, text)
headers = [("Content-Type", type), headers = [(b"Content-Type", type),
("X-Request-Method", request.method)] (b"X-Request-Method", isomorphic_encode(request.method))]
return status, headers, content return status, headers, content

View file

@ -1,4 +1,4 @@
def main(request, response): def main(request, response):
response.headers.set("Content-Type", "text/html") response.headers.set(b"Content-Type", b"text/html")
response.headers.set("Custom", "\0") response.headers.set(b"Custom", b"\0")
return "<!doctype html><b>This is a document.</b>" return b"<!doctype html><b>This is a document.</b>"

View file

@ -1,4 +1,4 @@
def main(request, response): def main(request, response):
response.headers.set("Content-Type", "text/javascript") response.headers.set(b"Content-Type", b"text/javascript")
response.headers.set("Custom", "\0") response.headers.set(b"Custom", b"\0")
return "var thisIsJavaScript = 0" return b"var thisIsJavaScript = 0"

View file

@ -7,4 +7,4 @@
<script src="/resources/testdriver-vendor.js"></script> <script src="/resources/testdriver-vendor.js"></script>
<script src="resources/test-helpers.js"></script> <script src="resources/test-helpers.js"></script>
<script src="resources/native-fs-test-helpers.js"></script> <script src="resources/native-fs-test-helpers.js"></script>
<script src="script-tests/FileSystemDirectoryHandle-getEntries.js"></script> <script src="script-tests/FileSystemDirectoryHandle-iteration.js"></script>

View file

@ -77,7 +77,7 @@ async function serialize_file_system_directory_handle(directory_handle) {
// Serialize the contents of the directory. // Serialize the contents of the directory.
const serialized_files = []; const serialized_files = [];
const serialized_directories = []; const serialized_directories = [];
for await (const child_handle of directory_handle.getEntries()) { for await (const child_handle of directory_handle.values()) {
const serialized_child_handle = await serialize_handle(child_handle); const serialized_child_handle = await serialize_handle(child_handle);
if (child_handle.kind === "directory") { if (child_handle.kind === "directory") {
serialized_directories.push(serialized_child_handle); serialized_directories.push(serialized_child_handle);

View file

@ -21,7 +21,7 @@ const directory_promise = (async () => {
const entries = await self.showDirectoryPicker(); const entries = await self.showDirectoryPicker();
assert_true(entries instanceof FileSystemHandle); assert_true(entries instanceof FileSystemHandle);
assert_true(entries instanceof FileSystemDirectoryHandle); assert_true(entries instanceof FileSystemDirectoryHandle);
for await (const entry of entries.getEntries()) { for await (const entry of entries) {
assert_unreached('Selected directory is not empty'); assert_unreached('Selected directory is not empty');
} }
return entries; return entries;
@ -32,7 +32,7 @@ function directory_test(func, description) {
const directory = await directory_promise; const directory = await directory_promise;
// To be resilient against tests not cleaning up properly, cleanup before // To be resilient against tests not cleaning up properly, cleanup before
// every test. // every test.
for await (let entry of directory.getEntries()) { for await (let entry of directory.values()) {
await directory.removeEntry( await directory.removeEntry(
entry.name, {recursive: entry.kind === 'directory'}); entry.name, {recursive: entry.kind === 'directory'});
} }

View file

@ -9,7 +9,7 @@
async function cleanupSandboxedFileSystem() { async function cleanupSandboxedFileSystem() {
const dir = const dir =
await self.getOriginPrivateDirectory(); await self.getOriginPrivateDirectory();
for await (let entry of dir.getEntries()) for await (let entry of dir.values())
await dir.removeEntry(entry.name, {recursive: entry.kind === 'directory'}); await dir.removeEntry(entry.name, {recursive: entry.kind === 'directory'});
} }

View file

@ -25,7 +25,7 @@ async function getFileContents(handle) {
async function getDirectoryEntryCount(handle) { async function getDirectoryEntryCount(handle) {
let result = 0; let result = 0;
for await (let entry of handle.getEntries()) { for await (let entry of handle) {
result++; result++;
} }
return result; return result;
@ -33,7 +33,7 @@ async function getDirectoryEntryCount(handle) {
async function getSortedDirectoryEntries(handle) { async function getSortedDirectoryEntries(handle) {
let result = []; let result = [];
for await (let entry of handle.getEntries()) { for await (let entry of handle.values()) {
if (entry.kind === 'directory') if (entry.kind === 'directory')
result.push(entry.name + '/'); result.push(entry.name + '/');
else else

View file

@ -1,3 +1,3 @@
// META: script=resources/test-helpers.js // META: script=resources/test-helpers.js
// META: script=resources/sandboxed-fs-test-helpers.js // META: script=resources/sandboxed-fs-test-helpers.js
// META: script=script-tests/FileSystemDirectoryHandle-getEntries.js // META: script=script-tests/FileSystemDirectoryHandle-iteration.js

View file

@ -1,41 +0,0 @@
directory_test(async (t, root) => {
const file_name1 = 'foo1.txt';
const file_name2 = 'foo2.txt';
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
let abortIter = async (dir) => {
for await (let entry of dir.getEntries()) {
return entry.name;
}
};
try {
await abortIter(root);
} catch(e) {
assert_unreached('Error thrown on iteration abort.');
}
}, 'getEntries(): returning early from an iteration works');
directory_test(async (t, root) => {
const file_name1 = 'foo1.txt';
const file_name2 = 'foo2.txt';
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
let fullIter = async (dir) => {
let name;
for await (let entry of dir.getEntries()) {
name = entry.name;
}
return name;
};
try {
await fullIter(root);
} catch(e) {
assert_unreached('Error thrown on iteration.');
}
}, 'getEntries(): full iteration works');

View file

@ -0,0 +1,80 @@
directory_test(async (t, root) => {
const file_name1 = 'foo1.txt';
const file_name2 = 'foo2.txt';
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
for await (let entry of root) {
break;
}
}, 'returning early from an iteration doesn\'t crash');
directory_test(async (t, root) => {
const file_name1 = 'foo1.txt';
const file_name2 = 'foo2.txt';
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
let names = [];
for await (let entry of root) {
assert_true(Array.isArray(entry));
assert_equals(entry.length, 2);
assert_equals(typeof entry[0], 'string');
assert_true(entry[1] instanceof FileSystemFileHandle);
assert_equals(entry[0], entry[1].name);
names.push(entry[0]);
}
names.sort();
assert_array_equals(names, [file_name1, file_name2]);
}, '@@asyncIterator: full iteration works');
directory_test(async (t, root) => {
const file_name1 = 'foo1.txt';
const file_name2 = 'foo2.txt';
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
let names = [];
for await (let entry of root.entries()) {
assert_true(Array.isArray(entry));
assert_equals(entry.length, 2);
assert_equals(typeof entry[0], 'string');
assert_true(entry[1] instanceof FileSystemFileHandle);
assert_equals(entry[0], entry[1].name);
names.push(entry[0]);
}
names.sort();
assert_array_equals(names, [file_name1, file_name2]);
}, 'entries: full iteration works');
directory_test(async (t, root) => {
const file_name1 = 'foo1.txt';
const file_name2 = 'foo2.txt';
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
let names = [];
for await (let entry of root.values()) {
assert_true(entry instanceof FileSystemFileHandle);
names.push(entry.name);
}
names.sort();
assert_array_equals(names, [file_name1, file_name2]);
}, 'values: full iteration works');
directory_test(async (t, root) => {
const file_name1 = 'foo1.txt';
const file_name2 = 'foo2.txt';
await createFileWithContents(t, file_name1, 'contents', /*parent=*/ root);
await createFileWithContents(t, file_name2, 'contents', /*parent=*/ root);
let names = [];
for await (let entry of root.keys()) {
assert_equals(typeof entry, 'string');
names.push(entry);
}
names.sort();
assert_array_equals(names, [file_name1, file_name2]);
}, 'keys: full iteration works');

View file

@ -93,8 +93,8 @@ promise_test(async testCase => {
closed_file.close(); closed_file.close();
const opened_file = await nativeIO.open('opened_file'); const opened_file = await nativeIO.open('opened_file');
testCase.add_cleanup(async () => { testCase.add_cleanup(async () => {
closed_file.close(); await closed_file.close();
opened_file.close(); await opened_file.close();
await nativeIO.delete('closed_file'); await nativeIO.delete('closed_file');
await nativeIO.delete('opened_file'); await nativeIO.delete('opened_file');
}); });

View file

@ -0,0 +1,109 @@
<!doctype html>
<html>
<head>
<title>TiltX/TiltY to Azimuth/Altitude</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
if(window.test){
[{tiltX:0,tiltY:0, azimuth:0, altitude:Math.PI/2},
{tiltX:0, tiltY:90, azimuth:Math.PI/2, altitude:0},
{tiltX:0, tiltY:-90, azimuth:3*Math.PI/2, altitude:0},
{tiltX:90,tiltY:0, azimuth:0, altitude:0},
{tiltX:90, tiltY:90, azimuth:0, altitude:0},
{tiltX:90, tiltY:-90, azimuth:0, altitude:0},
{tiltX:-90,tiltY:0, azimuth:Math.PI, altitude:0},
{tiltX:-90, tiltY:90, azimuth:0, altitude:0},
{tiltX:-90, tiltY:-90, azimuth:0, altitude:0},
{tiltX:0, tiltY:45, azimuth:Math.PI/2, altitude:Math.PI/4},
{tiltX:0, tiltY:-45, azimuth:3*Math.PI/2, altitude:Math.PI/4},
{tiltX:45, tiltY:0, azimuth:0, altitude:Math.PI/4},
{tiltX:-45, tiltY:0, azimuth:Math.PI, altitude:Math.PI/4},].forEach(
(el)=>{
test(function(){
var event = new PointerEvent("pointerdown",{pointerId:"pointer1", tiltX:el.tiltX, tiltY:el.tiltY});
assert_equals(event.azimuthAngle, el.azimuth, "azimuth angle should be " + el.azimuth);
assert_equals(event.altitudeAngle, el.altitude, "altitude angle should be " + el.altitude);
}, `tiltX,tiltY to azimuth/altitude when tiltX=${el.tiltX} and tiltY=${el.tiltY}`);
});
test(function(){
var event = new PointerEvent("pointerdown",{});
assert_equals(event.azimuthAngle, 0, "azimuth angle should be 0");
assert_equals(event.altitudeAngle, Math.PI/2, "altitude angle should be " + Math.PI/2);
}, "tiltX/tiltY to azimuth/altitude when tiltX/tiltY are not populated");
[{azimuth:0, altitude:0, tiltX:90,tiltY:0},
{azimuth:0, altitude:Math.PI/4, tiltX:45, tiltY:0},
{azimuth:0, altitude:Math.PI/2, tiltX:0,tiltY:0},
{azimuth:Math.PI/2, altitude:0, tiltX:0, tiltY:90},
{azimuth:Math.PI/2, altitude:Math.PI/4, tiltX:0, tiltY:45},
{azimuth:Math.PI, altitude:0, tiltX:-90,tiltY:0},
{azimuth:Math.PI, altitude:Math.PI/4, tiltX:-45, tiltY:0},
{azimuth:3*Math.PI/2, altitude:0, tiltX:0, tiltY:-90},
{azimuth:3*Math.PI/2, altitude:Math.PI/4, tiltX:0, tiltY:-45},].forEach(
(el)=>{
test(function(){
var event = new PointerEvent("pointerdown",{pointerId:"pointer1", azimuthAngle:el.azimuth, altitudeAngle:el.altitude});
assert_equals(event.tiltX, el.tiltX, "tiltX angle should be " + el.tiltX);
assert_equals(event.tiltY, el.tiltY, "tiltY angle should be " + el.tiltY);
}, `azimuth/altitude to tiltX/tiltY when azimuth=${el.azimuth} and altitude=${el.altitude}`);
});
test(function(){
var event = new PointerEvent("pointerdown", {pointerId:"pointer1", tiltX:45});
assert_equals(event.tiltX, 45, "tiltX value should stay as initialized");
assert_equals(event.tiltY, 0, "tiltY value should be initialized with default value 0");
assert_equals(event.azimuthAngle, 0, `for (tiltX, tiltY) = (${event.tiltX}, ${event.tiltY}) azimuthAngle should be 0`);
assert_equals(event.altitudeAngle, Math.PI/4, `for (tiltX, tiltY) = (${event.tiltX}, ${event.tiltY}) altitudeAngle should be PI/4`);
event = new PointerEvent("pointerdown", {pointerId:"pointer1", tiltY:45});
assert_equals(event.tiltX, 0, "tiltX value should be initialized with default value 0");
assert_equals(event.tiltY, 45, "tiltY value should stay as initialized");
assert_equals(event.azimuthAngle, Math.PI/2, `for (tiltX, tiltY) = (${event.tiltX}, ${event.tiltY}) azimuthAngle should be PI/2`);
assert_equals(event.altitudeAngle, Math.PI/4, `for (tiltX, tiltY) = (${event.tiltX}, ${event.tiltY}) altitudeAngle should be PI/4`);
event = new PointerEvent("pointerdown", {pointerId:"pointer1", azimuthAngle:Math.PI/4});
assert_equals(event.azimuthAngle, Math.PI/4, "azimuthAngle value should stay as initialized");
assert_equals(event.altitudeAngle, Math.PI/2, "altitudeAngle should be initialized with default value of PI/2");
assert_equals(event.tiltX, 0, `for (azimuthAngle, altitudeAngle)=(${event.azimuthAngle},${event.altitudeAngle}) tiltX angle should be 0`);
assert_equals(event.tiltY, 0, `for (azimuthAngle, altitudeAngle)=(${event.azimuthAngle},${event.altitudeAngle}) tiltY angle should be 0`);
event = new PointerEvent("pointerdown", {pointerId:"pointer1", altitudeAngle:Math.PI/4});
assert_equals(event.azimuthAngle, 0, "azimuthAngle value should be initialized with default value of 0");
assert_equals(event.altitudeAngle, Math.PI/4, "altitudeAngle should stay as initialized");
assert_equals(event.tiltX, 45, `for (azimuthAngle, altitudeAngle)=(${event.azimuthAngle},${event.altitudeAngle}) tiltX angle should be 45 degrees`);
assert_equals(event.tiltY, 0, `for (azimuthAngle, altitudeAngle)=(${event.azimuthAngle},${event.altitudeAngle}) tiltY angle should be 0`);
}, "If only one of the values (tiltX, tiltY) or (azimuthAngle, altitudeAngle) is available the other one is set to the default value");
test(function(){
var event = new PointerEvent("pointerdown", {pointerId:"pointer1", tiltX:45, azimuthAngle:Math.PI/4});
assert_equals(event.tiltX, 45, "tiltX value should stay as initialized");
assert_equals(event.tiltY, 0, "tiltY value should be initialized with default value 0");
assert_equals(event.azimuthAngle, Math.PI/4, "azimuthAngle should stay as initialized");
assert_equals(event.altitudeAngle, Math.PI/2, `altitudeAngle value should be initialized with default value ${Math.PI/2}`);
event = new PointerEvent("pointerdown", {pointerId:"pointer1", tiltY:45, azimuthAngle:Math.PI/4});
assert_equals(event.tiltX, 0, "tiltX value should be initialized with default value 0");
assert_equals(event.tiltY, 45, "tiltY value should stay as initialized");
assert_equals(event.azimuthAngle, Math.PI/4, "azimuthAngle value should stay as initialized");
assert_equals(event.altitudeAngle, Math.PI/2, `altitudeAngle value should be initialized with default value ${Math.PI/2}`);
event = new PointerEvent("pointerdown", {pointerId:"pointer1", tiltX:45, altitudeAngle:Math.PI/4});
assert_equals(event.tiltX, 45, "tiltX value should stay as initialized");
assert_equals(event.tiltY, 0, "tiltY value should be initialized with default value 0");
assert_equals(event.azimuthAngle, 0, "azimuthAngle value should be initialized with default value of 0");
assert_equals(event.altitudeAngle, Math.PI/4, "altitudeAngle should stay as initialized");
event = new PointerEvent("pointerdown", {pointerId:"pointer1", tiltY:45, altitudeAngle:Math.PI/4});
assert_equals(event.tiltX, 0, "tiltX value should be initialized with default value 0");
assert_equals(event.tiltY, 45, "tiltY value should stay as initialized");
assert_equals(event.azimuthAngle, 0, "azimuthAngle value should be initialized with default value of 0");
assert_equals(event.altitudeAngle, Math.PI/4, "altitudeAngle should stay as initialized");
}, "If one of the values in both sets is provided, the other value in the set is initialized with the default value")
}
</script>
</body>
</html>

View file

@ -1,13 +1,12 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml">
<title>SVGGeometryElement.prototype.getPointAtLength() query with 'pathLength'</title> <title>SVGGeometryElement.prototype.getPointAtLength() query with 'pathLength'</title>
<h:link rel="help" href="https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength"/> <h:link rel="help" href="https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength"/>
<path id='pathElement' d='M0,0L100,0L100,100' pathLength="1000"/>
<h:script src="/resources/testharness.js"/> <h:script src="/resources/testharness.js"/>
<h:script src="/resources/testharnessreport.js"/> <h:script src="/resources/testharnessreport.js"/>
<script> <script>
test(function() { test(function() {
let path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); let path = document.getElementById('pathElement');
path.setAttribute('d', 'M0,0L100,0L100,100');
path.setAttribute('pathLength', '1000');
var point = path.getPointAtLength(50); var point = path.getPointAtLength(50);
assert_approx_equals(point.x, 50, 1e-5); assert_approx_equals(point.x, 50, 1e-5);

Before

Width:  |  Height:  |  Size: 875 B

After

Width:  |  Height:  |  Size: 824 B

Before After
Before After

View file

@ -0,0 +1,30 @@
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:html="http://www.w3.org/1999/xhtml">
<title>When SVGGeometryElement.getPointAtLength is called with an element that is not in the document, throw exception</title>
<html:link rel="help" href="https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength"/>
<html:script src="/resources/testharness.js"/>
<html:script src="/resources/testharnessreport.js"/>
<script><![CDATA[
test(function() {
var pathElement = document.createElementNS("http://www.w3.org/2000/svg", "path");
pathElement.setAttribute("d", 'M0,20 L400,20 L640,20');
assert_throws_dom("InvalidStateError", function() { pathElement.getPointAtLength(700) });
}, document.title + " with SVGPathElement");
test(function() {
var rectElement = document.createElementNS("http://www.w3.org/2000/svg", "rect");
rectElement.setAttribute("rx", 0);
rectElement.setAttribute("ry", 0);
rectElement.setAttribute("width", 200);
rectElement.setAttribute("height", 300);
assert_throws_dom("InvalidStateError", function() { rectElement.getPointAtLength(300); });
}, document.title + " with SVGRectElement");
test(function() {
var circleElement = document.createElementNS("http://www.w3.org/2000/svg", "circle");
circleElement.setAttribute("r", 10);
assert_throws_dom("InvalidStateError", function() { circleElement.getPointAtLength(100); });
}, document.title + " with SVGCircleElement");
]]></script>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -0,0 +1,79 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml">
<title>SVGGeometryElement.getPointAtLength: 'display' and a valid path</title>
<h:link rel="help" href="https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength"/>
<h:script src="/resources/testharness.js"/>
<h:script src="/resources/testharnessreport.js"/>
<path id='pathElement1' d='M0,0L100,0L100,100' description='path with display: defualt'/>
<path id='pathElement2' style='display:none' d='M0,0L100,0L100,100' description='path with display: none'/>
<rect id='rectElement1' x='0' y='0' width='50' height='50' description='rect with display: default'/>
<rect id='rectElement2' style='display:none' x='0' y='0' width='50' height='50' description='rect with display: none'/>
<circle id='circleElement1' cx='0' cy='0' r='50' description='circle with display: defualt'/>
<circle id='circleElement2' style='display:none' cx='0' cy='0' r='50' description='circle with display: none'/>
<polygon id='polygonElement1' points="0,0 50,0 50,50 0,50" description='polygon with display: default'/>
<polygon id='polygonElement2' style='display:none' points="0,0 50,0 50,50 0,50" description='polygon with display: none'/>
<polyline id='polylineElement1' points="0,0 50,0 50,50 0,50" description='polyline with display: default'/>
<polyline id='polylineElement2' style='display:none' points="0,0 50,0 50,50 0,50" description='polyline with display: none'/>
<ellipse id='ellipseElement1' cx='0' cy='0' rx='50' ry='50' description='ellipse with display: default'/>
<ellipse id='ellipseElement2' style='display:none' cx='0' cy='0' rx='50' ry='50' description='ellipse with display: none'/>
<script>
['pathElement1', 'pathElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
var point = element.getPointAtLength(50);
assert_approx_equals(point.x, 50, 1e-5);
assert_approx_equals(point.y, 0, 1e-5);
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['rectElement1', 'rectElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
var point = element.getPointAtLength(50);
assert_approx_equals(point.x, 50, 1e-5);
assert_approx_equals(point.y, 0, 1e-5);
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['circleElement1', 'circleElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
var point = element.getPointAtLength(0);
assert_approx_equals(point.x, 50, 1e-5);
assert_approx_equals(point.y, 0, 1e-5);
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['polygonElement1', 'polygonElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
var point = element.getPointAtLength(50);
assert_approx_equals(point.x, 50, 1e-5);
assert_approx_equals(point.y, 0, 1e-5);
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['polylineElement1', 'polylineElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
var point = element.getPointAtLength(50);
assert_approx_equals(point.x, 50, 1e-5);
assert_approx_equals(point.y, 0, 1e-5);
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['ellipseElement1', 'ellipseElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
var point = element.getPointAtLength(0);
assert_approx_equals(point.x, 50, 1e-5);
assert_approx_equals(point.y, 0, 1e-5);
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
</script>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -0,0 +1,67 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml">
<title>SVGGeometryElement.getPointAtLength: 'display' and empty path</title>
<h:link rel="help" href="https://svgwg.org/svg2-draft/types.html#__svg__SVGGeometryElement__getPointAtLength"/>
<h:script src="/resources/testharness.js"/>
<h:script src="/resources/testharnessreport.js"/>
<path id='pathElement1' description='path with display: defualt and an empty path'/>
<path id='pathElement2' style='display:none' description='path with display: none and an empty path'/>
<rect id='rectElement1' description='rect with display: defualt and an empty path'/>
<rect id='rectElement2' style='display:none' description='rect with display: none and an empty path'/>
<circle id='circleElement1' description='circle with display: default and an empty path'/>
<circle id='circleElement2' style='display:none' description='circle with display: none and an empty path'/>
<polygon id='polygonElement1' description='polygon with display: defualt and an empty path'/>
<polygon id='polygonElement2' style='display:none' description='polygon with display: none and an empty path'/>
<polyline id='polylineElement1' description='polyline with display: default and an empty path'/>
<polyline id='polylineElement2' style='display:none' description='polyline with display: none and an empty path'/>
<ellipse id='ellipseElement1' description='ellipse with display: default and an empty path'/>
<ellipse id='ellipseElement2' style='display:none' description='ellipse with display: none and an empty path'/>
<script>
['pathElement1', 'pathElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
assert_throws_dom("InvalidStateError", function() { element.getPointAtLength(300); });
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['rectElement1', 'rectElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
assert_throws_dom("InvalidStateError", function() { element.getPointAtLength(300); });
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['circleElement1', 'circleElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
assert_throws_dom("InvalidStateError", function() { element.getPointAtLength(300); });
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['polygonElement1', 'polygonElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
assert_throws_dom("InvalidStateError", function() { element.getPointAtLength(300); });
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['polylineElement1', 'polylineElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
assert_throws_dom("InvalidStateError", function() { element.getPointAtLength(300); });
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
['ellipseElement1', 'ellipseElement2'].forEach(elementId => {
test(function() {
let element = document.getElementById(elementId);
assert_throws_dom("InvalidStateError", function() { element.getPointAtLength(300); });
}, document.title + ', ' +
document.getElementById(elementId).getAttribute('description'));
});
</script>
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View file

@ -1261,12 +1261,6 @@ const gCSSProperties2 = {
{ type: 'discrete', options: [ [ 'middle', 'end' ] ] } { type: 'discrete', options: [ [ 'middle', 'end' ] ] }
] ]
}, },
'text-combine-upright': {
// https://drafts.csswg.org/css-writing-modes-3/#propdef-text-combine-upright
types: [
{ type: 'discrete', options: [ [ 'all', 'none' ] ] }
]
},
'text-decoration-color': { 'text-decoration-color': {
// https://drafts.csswg.org/css-text-decor-3/#propdef-text-decoration-color // https://drafts.csswg.org/css-text-decor-3/#propdef-text-decoration-color
types: [ 'color' ] types: [ 'color' ]

View file

@ -284,4 +284,19 @@ nfc_test(async (t, mockNFC) => {
await promise; await promise;
}, "Test that reading message with multiple records should succeed."); }, "Test that reading message with multiple records should succeed.");
nfc_test(async (t, mockNFC) => {
const reader = new NDEFReader();
const promise1 = reader.scan();
const promise2 = promise_rejects_dom(t, 'InvalidStateError', reader.scan());
await promise1;
await promise2;
}, "Test that NDEFReader.scan rejects if there is already an ongoing scan.");
nfc_test(async (t, mockNFC) => {
const reader = new NDEFReader();
const controller = new AbortController();
await reader.scan({signal : controller.signal});
controller.abort();
await reader.scan();
}, "Test that NDEFReader.scan can be started after the previous scan is aborted.");
</script> </script>

View file

@ -162,79 +162,4 @@ for (let multiMessagesTest of multiMessagesTests) {
); );
} }
nfc_test(async (t, mockNFC) => {
const reader = new NDEFReader();
const controller = new AbortController();
const signal = controller.signal;
const textMsg = createMessage([createTextRecord(test_text_data)]);
const urlMsg = createMessage([createUrlRecord(test_url_data)]);
const mimeMsg = createMessage([createMimeRecord(test_buffer_data)]);
const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]);
const promise = readerWatcher.wait_for("reading").then(event => {
controller.abort();
assertWebNDEFMessagesEqual(event.message, new NDEFMessage(mimeMsg));
});
const scanOptions1 = {recordType: "text", signal: signal};
const scanOptions2 = {recordType: "url", signal: signal};
const scanOptions3 = {recordType: "mime", signal: signal};
await reader.scan(scanOptions1);
await reader.scan(scanOptions2);
// There is maximum one filter for an NDEFReader object,
// last filter will replace all previous ones.
await reader.scan(scanOptions3);
mockNFC.setReadingMessage(textMsg);
mockNFC.setReadingMessage(urlMsg);
mockNFC.setReadingMessage(mimeMsg);
await promise;
}, "Multiple scan() from the same NDEFReader object with new options should \
replace existing filters.");
nfc_test(async (t, mockNFC) => {
const reader = new NDEFReader();
const controller1 = new AbortController();
const controller2 = new AbortController();
const urlMsg = createMessage([createUrlRecord(test_url_data)]);
const mimeMsg = createMessage([createMimeRecord(test_buffer_data)]);
const readerWatcher = new EventWatcher(t, reader, ["reading", "error"]);
const promise = readerWatcher.wait_for("reading").then(event => {
assertWebNDEFMessagesEqual(event.message, new NDEFMessage(mimeMsg));
controller2.abort();
});
const scanOptions1 = {recordType: "url", signal: controller1.signal};
const scanOptions2 = {recordType: "mime", signal: controller2.signal};
// There is maximum one filter for an NDEFReader object,
// last filter will replace all previous ones.
await reader.scan(scanOptions1);
await reader.scan(scanOptions2);
mockNFC.setReadingMessage(urlMsg);
controller1.abort();
mockNFC.setReadingMessage(mimeMsg);
await promise;
}, "Aborting on previous signal should not stop current reading for multiple \
scan() with different signals.");
nfc_test(async (t, mockNFC) => {
const reader = new NDEFReader();
const controller = new AbortController();
const scanOptions1 = {recordType: "url", signal: controller.signal };
const scanOptions2 = {recordType: "mime"};
await reader.scan(scanOptions1);
const promise = reader.scan(scanOptions2);
controller.abort();
await promise_rejects_dom(t, 'AbortError', promise);
}, "Aborting on previous signal can stop current reading if no new signals \
passed to successive scan().");
</script> </script>

View file

@ -12,7 +12,7 @@
const xhr = new XMLHttpRequest; const xhr = new XMLHttpRequest;
xhr.open("GET", get_host_info().HTTP_REMOTE_ORIGIN + xhr.open("GET", get_host_info().HTTP_REMOTE_ORIGIN +
"/xhr/resources/access-control-basic-whitelist-response-headers.py", false); "/xhr/resources/access-control-basic-cors-safelisted-response-headers.py", false);
xhr.send(); xhr.send();
assert_not_equals(xhr.getResponseHeader("cache-control"), null); assert_not_equals(xhr.getResponseHeader("cache-control"), null);

View file

@ -1,5 +1,7 @@
from six import int2byte
def main(request, response): def main(request, response):
headers = [(b"Content-type", b"text/html;charset=utf-8")] headers = [(b"Content-type", b"text/html;charset=utf-8")]
content = chr(0xff) content = int2byte(0xff)
return headers, content return headers, content

Some files were not shown because too many files have changed in this diff Show more