mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Update web-platform-tests to revision aa86bfbb569fee92a3176bae68e3b7ec54140a6d
This commit is contained in:
parent
a242913629
commit
4c80634acb
102 changed files with 1207 additions and 360 deletions
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[percentage-max-height-003.html]
|
||||
expected: FAIL
|
|
@ -1,4 +0,0 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -14,6 +14,6 @@
|
|||
[test some point of the element: bottom right corner]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[HTMLMediaElement.html]
|
||||
expected: TIMEOUT
|
|
@ -315,15 +315,24 @@
|
|||
[<iframe>: separate response Content-Type: text/html;" 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>: combined response Content-Type: text/html;x=" text/plain]
|
||||
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
|
||||
|
||||
|
|
|
@ -56,3 +56,6 @@
|
|||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
[X-Content-Type-Options%3A%20'NosniFF']
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_3.html]
|
||||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
[traverse_the_history_3.html]
|
||||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[opener of discarded nested browsing context]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -171,6 +171,3 @@
|
|||
[XHTML img usemap="#hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (standards) IMG usemap="no-hash-name"]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[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]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit.html]
|
||||
[default submit action should supersede onclick submit()]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
[shared-worker-in-data-url-context.window.html]
|
||||
expected: TIMEOUT
|
||||
[Create a shared worker in a data url frame]
|
||||
expected: FAIL
|
||||
|
||||
[Create a data url shared worker in a data url frame]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -17445,15 +17445,15 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"native_FileSystemDirectoryHandle-getEntries-manual.https.html": [
|
||||
"858bf02f1fa2f5fd2dd01acc96bac149a02896fe",
|
||||
"native_FileSystemDirectoryHandle-getFileHandle-manual.https.html": [
|
||||
"94b31226f8d600ef60c2412203b9b941d60d0930",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"native_FileSystemDirectoryHandle-getFileHandle-manual.https.html": [
|
||||
"94b31226f8d600ef60c2412203b9b941d60d0930",
|
||||
"native_FileSystemDirectoryHandle-iteration-manual.https.html": [
|
||||
"10d891098dee36fffe58cbc472200add4fb58490",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -56620,7 +56620,7 @@
|
|||
]
|
||||
],
|
||||
"floats-clear-multicol-balancing-000.html": [
|
||||
"a4f3379eca002adbe13b960198967425f7c13787",
|
||||
"b034ceab493971d0bd37d4fc185c80677165019a",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -56633,7 +56633,7 @@
|
|||
]
|
||||
],
|
||||
"floats-clear-multicol-balancing-001.html": [
|
||||
"9c8f8148d06727ebf1c166811ef4e2c373339a32",
|
||||
"5944343c603363864d3509489903db530b1f3f9c",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -56646,7 +56646,7 @@
|
|||
]
|
||||
],
|
||||
"floats-clear-multicol-balancing-002.html": [
|
||||
"e0343b0ce7a0f7030e2c3b1d9ae3d1056a9bebb3",
|
||||
"99f86d1d455bb4527b390d7dbb2960198d27d098",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -56659,7 +56659,7 @@
|
|||
]
|
||||
],
|
||||
"floats-clear-multicol-balancing-003.html": [
|
||||
"8b68f3ad4ebbf98a67875f4823e8c7a348a80421",
|
||||
"4bc32d833da7c6e1c73e728490a2b4993b4dac95",
|
||||
[
|
||||
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": [
|
||||
"70f3953052a3a770c6cd15ee169607a00fc452b0",
|
||||
[
|
||||
|
@ -155276,7 +155289,7 @@
|
|||
]
|
||||
],
|
||||
"multicol-basic-001.html": [
|
||||
"e3da1a9fd7c1d46e23984cb6d704c79d899d3a7e",
|
||||
"702cf549b1e572f4b6e17ba637603f5667d64b1c",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -155289,7 +155302,7 @@
|
|||
]
|
||||
],
|
||||
"multicol-basic-002.html": [
|
||||
"f325b85ee1b33d86b7b1a1d2dac99c26b2b3cb05",
|
||||
"50334e96d604092f43fa2583fac0cec7062cfda6",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -155302,7 +155315,7 @@
|
|||
]
|
||||
],
|
||||
"multicol-basic-003.html": [
|
||||
"814d1e7cd82c54cbae47dbfcb13e105f40050f05",
|
||||
"05cc1e0fe1f3259978c0eff8b55a349bab58e5ba",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -155315,7 +155328,7 @@
|
|||
]
|
||||
],
|
||||
"multicol-basic-004.html": [
|
||||
"4d8082611936d5ebd70ce2692aff8cc1a9fafd10",
|
||||
"a6699692612985852375d0201330f31b6c64e3b3",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -162634,6 +162647,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"marker-animate-002.html": [
|
||||
"0ed8dbf05e4a9a26ae584b7ccb020cdcd78427fa",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-pseudo/marker-animate-002-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"marker-color.html": [
|
||||
"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": [
|
||||
"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": [
|
||||
"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": [
|
||||
"ffbb796b6afe0fe9fa93e15de3586bef96174d8b",
|
||||
[
|
||||
|
@ -278137,7 +278241,7 @@
|
|||
[]
|
||||
],
|
||||
"floats-clear-multicol-balancing-000-ref.html": [
|
||||
"78b7ffaf2d1a6db9064d1968a47c65b1540e57b0",
|
||||
"e3b700c5d783c1b7e3c0a21c84d681779058132b",
|
||||
[]
|
||||
],
|
||||
"margin-collapse-024-ref.xht": [
|
||||
|
@ -303972,11 +304076,11 @@
|
|||
[]
|
||||
],
|
||||
"multicol-count-computed-003-ref.xht": [
|
||||
"60074ee46c61fc59247345639866f76185243fb0",
|
||||
"a2182c59e9bed14940f6f6802400be9be311b892",
|
||||
[]
|
||||
],
|
||||
"multicol-count-computed-004-ref.xht": [
|
||||
"def8e5083ab45f7223a287af52953789dad1413c",
|
||||
"f9eaa671722aedd2898799db8a72358293967898",
|
||||
[]
|
||||
],
|
||||
"multicol-dynamic-add-001-ref.html": [
|
||||
|
@ -304036,7 +304140,7 @@
|
|||
[]
|
||||
],
|
||||
"multicol-gap-large-001-ref.xht": [
|
||||
"162d875e76c5c17eaf60924b85ed9011246a6ca3",
|
||||
"3802c3653b2dcfb9bc0d15f644d5eac0a0b247e6",
|
||||
[]
|
||||
],
|
||||
"multicol-gap-large-002-ref.xht": [
|
||||
|
@ -304396,19 +304500,19 @@
|
|||
[]
|
||||
],
|
||||
"multicol-span-all-margin-001-ref.xht": [
|
||||
"6605ad8efb3ea3b3e5e6396dbbf31eb572613fef",
|
||||
"30319f3554f7aae0b567f4676a47592eb65fc707",
|
||||
[]
|
||||
],
|
||||
"multicol-span-all-margin-002-ref.xht": [
|
||||
"1538f14025a06e2434808d424e59e8004c0da443",
|
||||
"48b80d12fbfd54208ccbf3f55402509b16982a0a",
|
||||
[]
|
||||
],
|
||||
"multicol-span-all-margin-bottom-001-ref.xht": [
|
||||
"2152b5663724bd65393277d21f8f1caad3128c63",
|
||||
"b3ec5201c139a26ab5d4db65d1e00313e202d12f",
|
||||
[]
|
||||
],
|
||||
"multicol-span-all-margin-nested-001-ref.xht": [
|
||||
"dee66329f997bdf882bbb5ee40b5a76efd11877f",
|
||||
"44f1198df8cdd467172975ba5cf6302313fe303c",
|
||||
[]
|
||||
],
|
||||
"multicol-span-all-margin-nested-firstchild-ref.xht": [
|
||||
|
@ -304501,7 +304605,7 @@
|
|||
[]
|
||||
],
|
||||
"multicol-basic-ref.html": [
|
||||
"7d88977b059defbe00f1b7dbbb37b58f607cf28b",
|
||||
"33b4469428a20d7e49bc3cfce803ad186af7097f",
|
||||
[]
|
||||
],
|
||||
"multicol-clip-scrolled-content-001-ref.html": [
|
||||
|
@ -305617,6 +305721,10 @@
|
|||
"796acbf75980cd62d30ade419359bda8c666b12e",
|
||||
[]
|
||||
],
|
||||
"marker-animate-002-ref.html": [
|
||||
"e31774ae370c27d9a655bf15623035291b3d72b6",
|
||||
[]
|
||||
],
|
||||
"marker-color-ref.html": [
|
||||
"f2269f7f78b3bf08703fdca1117c660de10ce8ca",
|
||||
[]
|
||||
|
@ -306771,6 +306879,10 @@
|
|||
"38f480c0acdbf4ca9605831e9e48a9998b1bcdd3",
|
||||
[]
|
||||
],
|
||||
"max-content-input-001-ref.html": [
|
||||
"c01e46550a7f0b5b92321d5893a8fe2a1ea0c9ac",
|
||||
[]
|
||||
],
|
||||
"range-percent-intrinsic-size-1-ref.html": [
|
||||
"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": [
|
||||
"aa3e68e6ab2830a817f8612e240888c2cc6e7a6a",
|
||||
[]
|
||||
|
@ -324889,7 +325013,7 @@
|
|||
[]
|
||||
],
|
||||
"bad-chunk-encoding.py": [
|
||||
"23c7b3f47c4d11f51c5174b86541efc5988ba155",
|
||||
"94a77adead858b48137e3988d0c674cd945a4270",
|
||||
[]
|
||||
],
|
||||
"basic.html": [
|
||||
|
@ -324917,7 +325041,7 @@
|
|||
[]
|
||||
],
|
||||
"echo-content.py": [
|
||||
"9a038f329c87e4e9dab96caa8d6fda973880d732",
|
||||
"5e137e15d7d3b0f684b7a1a2aa0b27a719730eb4",
|
||||
[]
|
||||
],
|
||||
"empty.txt": [
|
||||
|
@ -324945,7 +325069,7 @@
|
|||
[]
|
||||
],
|
||||
"redirect-empty-location.py": [
|
||||
"2baabae03b0bf368bbcd9b26a01d22ecd8e86470",
|
||||
"1a5f7feb2a4b329473d29d45c1b245c66258d8df",
|
||||
[]
|
||||
],
|
||||
"redirect.py": [
|
||||
|
@ -324957,7 +325081,7 @@
|
|||
[]
|
||||
],
|
||||
"script-with-header.py": [
|
||||
"5337cc97bdd7737e40398cb066a98a5246ba4392",
|
||||
"9a9c70ef5cf00d7f16963004e77ff135ed92afb4",
|
||||
[]
|
||||
],
|
||||
"stash-put.py": [
|
||||
|
@ -324969,7 +325093,7 @@
|
|||
[]
|
||||
],
|
||||
"status.py": [
|
||||
"5d72e10b24bfd5a36d719940388bb55d44433546",
|
||||
"05a59d5a637edde8fb049627fdce8a3a0e836716",
|
||||
[]
|
||||
],
|
||||
"sw-intercept.js": [
|
||||
|
@ -325225,11 +325349,11 @@
|
|||
[]
|
||||
],
|
||||
"document-with-0x00-in-header.py": [
|
||||
"6e8db6195910ef4c85dced8b24541ecde83c5405",
|
||||
"223b3c4027826f2bba1394db465c93ec7cbbe001",
|
||||
[]
|
||||
],
|
||||
"script-with-0x00-in-header.py": [
|
||||
"f4a016a369831ee5dcdb3563468ccf8dd0b0982b",
|
||||
"39f58d8270e7671bf74e40ac84e05a7558df4f68",
|
||||
[]
|
||||
]
|
||||
}
|
||||
|
@ -341412,11 +341536,11 @@
|
|||
[]
|
||||
],
|
||||
"messaging-serialize-helpers.js": [
|
||||
"b4d41aa91c018f867240969297ba4a5c5ae8930d",
|
||||
"3ef347f98fef90322b60eef7f9b35baef2751205",
|
||||
[]
|
||||
],
|
||||
"native-fs-test-helpers.js": [
|
||||
"231bc0675320e5862107c603fc48076a841492cf",
|
||||
"cd1613eae5d9041048c8f5df049377d8176c5c24",
|
||||
[]
|
||||
],
|
||||
"opaque-origin-sandbox.html": [
|
||||
|
@ -341424,11 +341548,11 @@
|
|||
[]
|
||||
],
|
||||
"sandboxed-fs-test-helpers.js": [
|
||||
"1b27445e95117a7b15030a3762fb8cc817208409",
|
||||
"e3c18dbecec93f701531f57434b13cb395681828",
|
||||
[]
|
||||
],
|
||||
"test-helpers.js": [
|
||||
"0d8bdfde8d747faab170e99abb5ed7ddfa43e1a3",
|
||||
"27469349cdeaa8eb02fd3b8e19ed9a4cff2a6081",
|
||||
[]
|
||||
]
|
||||
},
|
||||
|
@ -341477,14 +341601,14 @@
|
|||
"48a4ce4ce69e8f6823db6fdd0c83a2a0c3378f32",
|
||||
[]
|
||||
],
|
||||
"FileSystemDirectoryHandle-getEntries.js": [
|
||||
"571683ccfd1182631a0398017a9f67fa04bb255c",
|
||||
[]
|
||||
],
|
||||
"FileSystemDirectoryHandle-getFileHandle.js": [
|
||||
"dddd67a705808c65f759741956c3b2e16114f43d",
|
||||
[]
|
||||
],
|
||||
"FileSystemDirectoryHandle-iteration.js": [
|
||||
"200f5af65f56fdc9280c8b957b187cc4ded93d20",
|
||||
[]
|
||||
],
|
||||
"FileSystemDirectoryHandle-removeEntry.js": [
|
||||
"5b25ed6874fe95d4b076af974d5d2d27e471378d",
|
||||
[]
|
||||
|
@ -358077,7 +358201,7 @@
|
|||
"animation-model": {
|
||||
"animation-types": {
|
||||
"property-list.js": [
|
||||
"3c3bf5de56d921fdc583e0a4216b4946e2c8a0c0",
|
||||
"e9b7c524a749f2a8372868a1245224cf0f7d01d5",
|
||||
[]
|
||||
],
|
||||
"property-types.js": [
|
||||
|
@ -363491,6 +363615,10 @@
|
|||
"46523a905a9f70183d0a5e96cff2d76ad9e6d549",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-cors-safelisted-response-headers.py": [
|
||||
"346b6b919656b23fb911587d447756711a59231e",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-denied.py": [
|
||||
"0d3964cb1157f75bbc59d2fa75c16aa98951a591",
|
||||
[]
|
||||
|
@ -363515,10 +363643,6 @@
|
|||
"9b347bca4234e5dccbf5f71c3657b1a02d5c7ac6",
|
||||
[]
|
||||
],
|
||||
"access-control-basic-whitelist-response-headers.py": [
|
||||
"346b6b919656b23fb911587d447756711a59231e",
|
||||
[]
|
||||
],
|
||||
"access-control-cookie.py": [
|
||||
"8c26475c387a7de7458060f18adeab3b6429361a",
|
||||
[]
|
||||
|
@ -363738,7 +363862,7 @@
|
|||
[]
|
||||
],
|
||||
"invalid-utf8-html.py": [
|
||||
"c15d17151a136974fa0838cc3b3311fde2a78fa4",
|
||||
"1c0cd84f42ffb2261d70dbad034cd99eb9ba1b90",
|
||||
[]
|
||||
],
|
||||
"last-modified.py": [
|
||||
|
@ -363800,7 +363924,7 @@
|
|||
[]
|
||||
],
|
||||
"shift-jis-html.py": [
|
||||
"47c67d8ae39e96bacd97d7cb14c59151060e2683",
|
||||
"b3326c1ba7b3b2398fc1933ae4a49ad05a005b84",
|
||||
[]
|
||||
],
|
||||
"status.py": [
|
||||
|
@ -363836,7 +363960,7 @@
|
|||
[]
|
||||
],
|
||||
"win-1252-xml.py": [
|
||||
"d88086e936ea17f75f30c18f4e9bd424ba609fff",
|
||||
"50e9f04fb8dde0f20b07c5b0777caa005480be3a",
|
||||
[]
|
||||
],
|
||||
"workerxhr-origin-referrer.js": [
|
||||
|
@ -396415,7 +396539,7 @@
|
|||
]
|
||||
],
|
||||
"grid-template-areas-invalid.html": [
|
||||
"5bc70c5697a2a642ce80b902851f3687eba901d7",
|
||||
"b0e60962cfcea643996ff11100687fab96237828",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -411209,6 +411333,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"devicePixelRatio-undisplayed-iframe.tentative.html": [
|
||||
"c3ee5c51338a5565c27421902489134ef016f329",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"dom-element-scroll.html": [
|
||||
"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": [
|
||||
"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": [
|
||||
"a4be8bd267e743ee617c29c1cce1188e6b9d377a",
|
||||
[
|
||||
|
@ -482155,7 +482286,7 @@
|
|||
]
|
||||
],
|
||||
"rename_async_failure_handling.tentative.https.any.js": [
|
||||
"5e0f96408bb7ba3c9d6d75bc21f1cc1d6242f98e",
|
||||
"64ea24fa65ebd55e7b9f343334a359356d56207b",
|
||||
[
|
||||
"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": [
|
||||
"c486d77c1119128d7ad87c5c83aea43ebfe379e7",
|
||||
[
|
||||
|
@ -511692,7 +511830,28 @@
|
|||
]
|
||||
],
|
||||
"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,
|
||||
{}
|
||||
|
@ -520054,14 +520213,14 @@
|
|||
]
|
||||
],
|
||||
"NDEFReader_scan.https.html": [
|
||||
"db50b66f058c90511da15aa52ba435d6da2e483d",
|
||||
"46f2871f3dc9a4c4bd74923d05b6b90477ddb0a8",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"NDEFReader_scan_filter.https.html": [
|
||||
"ddb25b87e14b010014549e5f5b9a8c0fc165624c",
|
||||
"1fea2437b9366d26b7065cf59412cc204d2735ea",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -534148,7 +534307,7 @@
|
|||
]
|
||||
],
|
||||
"access-control-basic-cors-safelisted-response-headers.htm": [
|
||||
"a5c470b74f51d6c577d335159427d3c804bce5ba",
|
||||
"be9a10ef0163a928a5ad6144d9d979b270e2cf24",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[hit-test-floats-004.html]
|
||||
[Miss float below something else]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[percentage-max-height-003.html]
|
||||
expected: FAIL
|
|
@ -1,4 +0,0 @@
|
|||
[CaretPosition-001.html]
|
||||
[Element at (400, 100)]
|
||||
expected: FAIL
|
||||
|
|
@ -18,6 +18,6 @@
|
|||
[test some point of the element: bottom right corner]
|
||||
expected: FAIL
|
||||
|
||||
[test some point of the element: top left corner]
|
||||
[test the top of layer]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
[HTMLMediaElement.html]
|
||||
expected: TIMEOUT
|
|
@ -315,15 +315,24 @@
|
|||
[<iframe>: separate response Content-Type: text/html;" 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>: combined response Content-Type: text/html;x=" text/plain]
|
||||
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
|
||||
|
||||
|
|
|
@ -56,3 +56,6 @@
|
|||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%2C%2C%40%23%24%23%25%25%26%5E%26%5E*()()11!]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
[X-Content-Type-Options%3A%20'NosniFF']
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
[embedded-opener-remove-frame.html]
|
||||
expected: CRASH
|
||||
expected: TIMEOUT
|
||||
[opener and "removed" embedded documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -172,6 +172,3 @@
|
|||
[XHTML img usemap="http://example.org/#garbage-before-hash-id"]
|
||||
expected: FAIL
|
||||
|
||||
[HTML (standards) IMG usemap="no-hash-name"]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_escaping-3.html]
|
||||
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]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,4 +0,0 @@
|
|||
[form-double-submit.html]
|
||||
[default submit action should supersede onclick submit()]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[realtimeanalyser-fft-scaling.html]
|
||||
expected: TIMEOUT
|
||||
[X 2048-point FFT peak position is not equal to 64. Got 0.]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[017.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, about:blank]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
[shared-worker-in-data-url-context.window.html]
|
||||
expected: TIMEOUT
|
||||
[Create a shared worker in a data url frame]
|
||||
expected: FAIL
|
||||
|
||||
[Create a data url shared worker in a data url frame]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
height: 250px;
|
||||
}
|
||||
.clear {
|
||||
border-bottom: solid orange;
|
||||
border-bottom: 5px solid orange;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
}
|
||||
|
||||
.clear {
|
||||
border-bottom: solid orange;
|
||||
border-bottom: 5px solid orange;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
}
|
||||
|
||||
.clear {
|
||||
border-bottom: solid orange;
|
||||
border-bottom: 5px solid orange;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
.clear {
|
||||
clear: left;
|
||||
border-bottom: solid orange;
|
||||
border-bottom: 5px solid orange;
|
||||
background: red;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
background: red;
|
||||
}
|
||||
.bar {
|
||||
border-bottom: orange solid;
|
||||
border-bottom: 5px orange solid;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
|
|
@ -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>
|
|
@ -15,6 +15,14 @@
|
|||
test_invalid_value("grid-template-areas", "auto");
|
||||
test_invalid_value("grid-template-areas", 'none "first"');
|
||||
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>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style type="text/css">
|
||||
.multicol-wrapper>*{
|
||||
font-family: Ahem;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
|
||||
div.multicol-wrapper{
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style type="text/css">
|
||||
.multicol-wrapper>*{
|
||||
font-family: Ahem;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
|
||||
div.multicol-wrapper{
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style type="text/css">
|
||||
.multicol-wrapper>*{
|
||||
font-family: Ahem;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
|
||||
div.multicol-wrapper{
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style type="text/css">
|
||||
.multicol-wrapper>*{
|
||||
font-family: Ahem;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
|
||||
div.multicol-wrapper{
|
||||
|
|
|
@ -4,9 +4,11 @@
|
|||
<title>CSS Reftest Reference</title>
|
||||
<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 -->
|
||||
<meta name="flags" content="image" />
|
||||
<meta name="flags" content="image ahem" />
|
||||
<link rel="stylesheet" href="/fonts/ahem.css" />
|
||||
|
||||
<style type="text/css"><![CDATA[
|
||||
body {font: 1.25em/1 Ahem;}
|
||||
img {vertical-align: top;}
|
||||
]]></style>
|
||||
</head>
|
||||
|
|
|
@ -4,9 +4,11 @@
|
|||
<title>CSS Reftest Reference</title>
|
||||
<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 -->
|
||||
<meta name="flags" content="image" />
|
||||
<meta name="flags" content="image ahem" />
|
||||
<link rel="stylesheet" href="/fonts/ahem.css" />
|
||||
|
||||
<style type="text/css"><![CDATA[
|
||||
body {font: 1.25em/1 Ahem;}
|
||||
img {vertical-align: top;}
|
||||
]]></style>
|
||||
</head>
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
<title>CSS Reftest Reference</title>
|
||||
<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 -->
|
||||
<meta name="flags" content="image" />
|
||||
<meta name="flags" content="image ahem" />
|
||||
<link rel="stylesheet" href="/fonts/ahem.css" />
|
||||
<style type="text/css"><![CDATA[
|
||||
body {font: 1.25em/1 Ahem;}
|
||||
img {vertical-align: top;}
|
||||
]]></style>
|
||||
</head>
|
||||
|
|
|
@ -4,11 +4,13 @@
|
|||
<title>CSS Reftest Reference</title>
|
||||
<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 -->
|
||||
<meta name="flags" content="image" />
|
||||
<meta name="flags" content="image ahem" />
|
||||
<link rel="stylesheet" href="/fonts/ahem.css" />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
border: gray solid 1.25em;
|
||||
font: 1.25em/1 Ahem;
|
||||
border: gray solid 1em;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,8 +4,11 @@
|
|||
<title>CSS Reftest Reference</title>
|
||||
<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 -->
|
||||
<meta name="flags" content="image" />
|
||||
<meta name="flags" content="image ahem" />
|
||||
<link rel="stylesheet" href="/fonts/ahem.css" />
|
||||
<style type="text/css"><![CDATA[
|
||||
body {font: 1.25em/1 Ahem;}
|
||||
|
||||
div {width: 240px;}
|
||||
|
||||
img {vertical-align: top;}
|
||||
|
|
|
@ -4,11 +4,13 @@
|
|||
<title>CSS Reftest Reference</title>
|
||||
<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 -->
|
||||
<meta name="flags" content="image" />
|
||||
<meta name="flags" content="image ahem" />
|
||||
<link rel="stylesheet" href="/fonts/ahem.css" />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
border: gray solid 1.25em;
|
||||
font: 1.25em/1 Ahem;
|
||||
border: gray solid 1em;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
|
|
|
@ -4,11 +4,13 @@
|
|||
<title>CSS Reftest Reference</title>
|
||||
<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 -->
|
||||
<meta name="flags" content="image" />
|
||||
<meta name="flags" content="image ahem" />
|
||||
<link rel="stylesheet" href="/fonts/ahem.css" />
|
||||
<style type="text/css"><![CDATA[
|
||||
div
|
||||
{
|
||||
border: gray solid 1.25em;
|
||||
font: 1.25em/1 Ahem;
|
||||
border: gray solid 1em;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style type="text/css">
|
||||
.multicol-wrapper>*{
|
||||
font-family: Ahem;
|
||||
font: 20px/1 Ahem;
|
||||
}
|
||||
|
||||
div.multicol-wrapper{
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<style>
|
||||
li::marker {
|
||||
color: green;
|
||||
}
|
||||
</style>
|
||||
<ul>
|
||||
<li>Item</li>
|
||||
</ul>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -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>
|
|
@ -1,13 +1,13 @@
|
|||
import time
|
||||
|
||||
def main(request, response):
|
||||
delay = float(request.GET.first("ms", 1000)) / 1E3
|
||||
count = int(request.GET.first("count", 50))
|
||||
delay = float(request.GET.first(b"ms", 1000)) / 1E3
|
||||
count = int(request.GET.first(b"count", 50))
|
||||
time.sleep(delay)
|
||||
response.headers.set("Transfer-Encoding", "chunked")
|
||||
response.headers.set(b"Transfer-Encoding", b"chunked")
|
||||
response.write_status_headers()
|
||||
time.sleep(delay)
|
||||
for i in xrange(count):
|
||||
response.writer.write_content("a\r\nTEST_CHUNK\r\n")
|
||||
for i in range(count):
|
||||
response.writer.write_content(b"a\r\nTEST_CHUNK\r\n")
|
||||
time.sleep(delay)
|
||||
response.writer.write_content("garbage")
|
||||
response.writer.write_content(b"garbage")
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
from wptserve.utils import isomorphic_encode
|
||||
|
||||
def main(request, response):
|
||||
|
||||
headers = [("X-Request-Method", request.method),
|
||||
("X-Request-Content-Length", request.headers.get("Content-Length", "NO")),
|
||||
("X-Request-Content-Type", request.headers.get("Content-Type", "NO")),
|
||||
headers = [(b"X-Request-Method", isomorphic_encode(request.method)),
|
||||
(b"X-Request-Content-Length", request.headers.get(b"Content-Length", b"NO")),
|
||||
(b"X-Request-Content-Type", request.headers.get(b"Content-Type", b"NO")),
|
||||
# Avoid any kind of content sniffing on the response.
|
||||
("Content-Type", "text/plain")]
|
||||
(b"Content-Type", b"text/plain")]
|
||||
content = request.body
|
||||
|
||||
return headers, content
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
def main(request, response):
|
||||
headers = [("Location", "")]
|
||||
return 302, headers, ""
|
||||
headers = [(b"Location", b"")]
|
||||
return 302, headers, b""
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
def main(request, response):
|
||||
headers = [("Content-type", request.GET.first("mime"))]
|
||||
if "content" in request.GET and request.GET.first("content") == "empty":
|
||||
content = ''
|
||||
headers = [(b"Content-type", request.GET.first(b"mime"))]
|
||||
if b"content" in request.GET and request.GET.first(b"content") == b"empty":
|
||||
content = b''
|
||||
else:
|
||||
content = "console.log('Script loaded')"
|
||||
content = b"console.log('Script loaded')"
|
||||
return 200, headers, content
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
from wptserve.utils import isomorphic_encode
|
||||
|
||||
def main(request, response):
|
||||
code = int(request.GET.first("code", 200))
|
||||
text = request.GET.first("text", "OMG")
|
||||
content = request.GET.first("content", "")
|
||||
type = request.GET.first("type", "")
|
||||
code = int(request.GET.first(b"code", 200))
|
||||
text = request.GET.first(b"text", b"OMG")
|
||||
content = request.GET.first(b"content", b"")
|
||||
type = request.GET.first(b"type", b"")
|
||||
status = (code, text)
|
||||
headers = [("Content-Type", type),
|
||||
("X-Request-Method", request.method)]
|
||||
headers = [(b"Content-Type", type),
|
||||
(b"X-Request-Method", isomorphic_encode(request.method))]
|
||||
return status, headers, content
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
def main(request, response):
|
||||
response.headers.set("Content-Type", "text/html")
|
||||
response.headers.set("Custom", "\0")
|
||||
return "<!doctype html><b>This is a document.</b>"
|
||||
response.headers.set(b"Content-Type", b"text/html")
|
||||
response.headers.set(b"Custom", b"\0")
|
||||
return b"<!doctype html><b>This is a document.</b>"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
def main(request, response):
|
||||
response.headers.set("Content-Type", "text/javascript")
|
||||
response.headers.set("Custom", "\0")
|
||||
return "var thisIsJavaScript = 0"
|
||||
response.headers.set(b"Content-Type", b"text/javascript")
|
||||
response.headers.set(b"Custom", b"\0")
|
||||
return b"var thisIsJavaScript = 0"
|
||||
|
|
|
@ -7,4 +7,4 @@
|
|||
<script src="/resources/testdriver-vendor.js"></script>
|
||||
<script src="resources/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>
|
|
@ -77,7 +77,7 @@ async function serialize_file_system_directory_handle(directory_handle) {
|
|||
// Serialize the contents of the directory.
|
||||
const serialized_files = [];
|
||||
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);
|
||||
if (child_handle.kind === "directory") {
|
||||
serialized_directories.push(serialized_child_handle);
|
||||
|
|
|
@ -21,7 +21,7 @@ const directory_promise = (async () => {
|
|||
const entries = await self.showDirectoryPicker();
|
||||
assert_true(entries instanceof FileSystemHandle);
|
||||
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');
|
||||
}
|
||||
return entries;
|
||||
|
@ -32,7 +32,7 @@ function directory_test(func, description) {
|
|||
const directory = await directory_promise;
|
||||
// To be resilient against tests not cleaning up properly, cleanup before
|
||||
// every test.
|
||||
for await (let entry of directory.getEntries()) {
|
||||
for await (let entry of directory.values()) {
|
||||
await directory.removeEntry(
|
||||
entry.name, {recursive: entry.kind === 'directory'});
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
async function cleanupSandboxedFileSystem() {
|
||||
const dir =
|
||||
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'});
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ async function getFileContents(handle) {
|
|||
|
||||
async function getDirectoryEntryCount(handle) {
|
||||
let result = 0;
|
||||
for await (let entry of handle.getEntries()) {
|
||||
for await (let entry of handle) {
|
||||
result++;
|
||||
}
|
||||
return result;
|
||||
|
@ -33,7 +33,7 @@ async function getDirectoryEntryCount(handle) {
|
|||
|
||||
async function getSortedDirectoryEntries(handle) {
|
||||
let result = [];
|
||||
for await (let entry of handle.getEntries()) {
|
||||
for await (let entry of handle.values()) {
|
||||
if (entry.kind === 'directory')
|
||||
result.push(entry.name + '/');
|
||||
else
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
// META: script=resources/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
|
|
@ -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');
|
|
@ -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');
|
|
@ -93,8 +93,8 @@ promise_test(async testCase => {
|
|||
closed_file.close();
|
||||
const opened_file = await nativeIO.open('opened_file');
|
||||
testCase.add_cleanup(async () => {
|
||||
closed_file.close();
|
||||
opened_file.close();
|
||||
await closed_file.close();
|
||||
await opened_file.close();
|
||||
await nativeIO.delete('closed_file');
|
||||
await nativeIO.delete('opened_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>
|
|
@ -1,13 +1,12 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:h="http://www.w3.org/1999/xhtml">
|
||||
<title>SVGGeometryElement.prototype.getPointAtLength() query with 'pathLength'</title>
|
||||
<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/testharnessreport.js"/>
|
||||
<script>
|
||||
test(function() {
|
||||
let path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
||||
path.setAttribute('d', 'M0,0L100,0L100,100');
|
||||
path.setAttribute('pathLength', '1000');
|
||||
let path = document.getElementById('pathElement');
|
||||
|
||||
var point = path.getPointAtLength(50);
|
||||
assert_approx_equals(point.x, 50, 1e-5);
|
||||
|
|
Before Width: | Height: | Size: 875 B After Width: | Height: | Size: 824 B |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -1261,12 +1261,6 @@ const gCSSProperties2 = {
|
|||
{ 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': {
|
||||
// https://drafts.csswg.org/css-text-decor-3/#propdef-text-decoration-color
|
||||
types: [ 'color' ]
|
||||
|
|
|
@ -284,4 +284,19 @@ nfc_test(async (t, mockNFC) => {
|
|||
await promise;
|
||||
}, "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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
const xhr = new XMLHttpRequest;
|
||||
|
||||
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();
|
||||
|
||||
assert_not_equals(xhr.getResponseHeader("cache-control"), null);
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
from six import int2byte
|
||||
|
||||
def main(request, response):
|
||||
headers = [(b"Content-type", b"text/html;charset=utf-8")]
|
||||
content = chr(0xff)
|
||||
content = int2byte(0xff)
|
||||
|
||||
return headers, content
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue