mirror of
https://github.com/servo/servo.git
synced 2025-06-28 19:13:41 +01:00
Update web-platform-tests to revision 9b5bdedc2ad7797a6b99895157aeaa2b3a2d61e6
This commit is contained in:
parent
99cd30eaad
commit
10112eddce
92 changed files with 1518 additions and 445 deletions
|
@ -4,7 +4,7 @@
|
|||
expected: TIMEOUT
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Fetching a blob URL immediately before revoking it works in an iframe.]
|
||||
expected: FAIL
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -2,6 +2,3 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -312,24 +312,21 @@
|
|||
[Response: combined response Content-Type: text/html;" \\" text/plain ";charset=GBK]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<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 */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,6 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +11,6 @@
|
|||
[X-Content-Type-Options%3A%20nosniff%0C]
|
||||
expected: FAIL
|
||||
|
||||
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,15 +1,16 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Element with tabindex should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -3,3 +3,6 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -89,3 +89,6 @@
|
|||
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 40518 more errors.\n\tMax AbsError of 1.9880115985870361e+0 at index of 23190.\n\t[23190\]\t9.9948620796203613e-1\t-9.8852539062500000e-1\t1.9880115985870361e+0\t2.0110880483607065e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||
expected: FAIL
|
||||
|
||||
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44050 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 42250.\n\t[42250\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[WorkerGlobalScope-close.html]
|
||||
[Test sending a message after closing.]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[005.html]
|
||||
expected: ERROR
|
||||
[dedicated worker in shared worker in dedicated worker]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
expected: FAIL
|
||||
|
||||
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||
expected: TIMEOUT
|
||||
|
|
|
@ -17867,6 +17867,15 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"screen-wake-lock": {
|
||||
"wakelock-document-hidden-manual.https.html": [
|
||||
"550dc831cbcd4909746893a5675c5a0308425805",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"selection": {
|
||||
"dir-manual.html": [
|
||||
"39cf6555234b7b2e189412e97aed5a93b19ccea2",
|
||||
|
@ -23514,15 +23523,6 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"wake-lock": {
|
||||
"wakelock-document-hidden-manual.https.html": [
|
||||
"2ac6bce20d8b04ad3f2958f7326102dd9c5e0dcc",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
"web-nfc": {
|
||||
"NDEFReader-document-hidden-manual.https.html": [
|
||||
"f2027dc99d1dad8004c72f0af5e7eea48836c3b2",
|
||||
|
@ -158753,6 +158753,32 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"empty-ruby-base-container-abs.html": [
|
||||
"7968af0b256684c4b03dd06fa3748c1380150a6f",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-ruby/empty-ruby-base-container-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"empty-ruby-base-container-float.html": [
|
||||
"b7c5d12963a4dd089efebdd4772a5bb5aa0c1862",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-ruby/empty-ruby-base-container-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"empty-ruby-base-container.html": [
|
||||
"4d86e07985d0e99e586848f7ca3195e63371c4d4",
|
||||
[
|
||||
|
@ -158766,6 +158792,32 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"empty-ruby-text-container-abs.html": [
|
||||
"025859ea744139b8673e37ea0bd0daeb92477bd8",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-ruby/empty-ruby-text-container-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"empty-ruby-text-container-float.html": [
|
||||
"88bcf42736e5c3a43d6e25d35477017fb2df8996",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-ruby/empty-ruby-text-container-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"empty-ruby-text-container.html": [
|
||||
"972013c6621b553f647c97040a2a76afd45de75a",
|
||||
[
|
||||
|
@ -158974,6 +159026,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"ruby-box-model-001.html": [
|
||||
"1fa2befaf8a84f76b7acb59f399649ce021893f7",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/css/css-ruby/ruby-box-model-001-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"ruby-dynamic-insertion-001.html": [
|
||||
"be1c5ce50056ecd0ffb3699bd4e47f63c7c6c7bf",
|
||||
[
|
||||
|
@ -232921,6 +232986,19 @@
|
|||
]
|
||||
},
|
||||
"operators": {
|
||||
"mo-form-dynamic-002.html": [
|
||||
"7cf986f31695f7c316bb2d076957014683941c7f",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/mathml/presentation-markup/operators/mo-form-dynamic-002-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"mo-form-dynamic.html": [
|
||||
"72d6c67f7544c75587cf8a3133481c1c9d68b499",
|
||||
[
|
||||
|
@ -232973,6 +233051,19 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"mo-lspace-rspace-dynamic.html": [
|
||||
"0898e48b5c42fe31232cda95787e380e8f338960",
|
||||
[
|
||||
null,
|
||||
[
|
||||
[
|
||||
"/mathml/presentation-markup/operators/mo-lspace-rspace-dynamic-ref.html",
|
||||
"=="
|
||||
]
|
||||
],
|
||||
{}
|
||||
]
|
||||
],
|
||||
"mo-movablelimits-default.html": [
|
||||
"503a57f25c7241d94a3bbae2e93d0c70684159f4",
|
||||
[
|
||||
|
@ -233703,7 +233794,7 @@
|
|||
]
|
||||
},
|
||||
"visibility-001.html": [
|
||||
"f47bfad1fee107ab294a84279ccbf98d2ea9a729",
|
||||
"ece84ee693a524f24a33024c80e034035cac64bb",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -233716,7 +233807,7 @@
|
|||
]
|
||||
],
|
||||
"visibility-002.html": [
|
||||
"f3afb79c157d8d6f60a6a681fac2c2129cdba99b",
|
||||
"5e41b9c7831ebbd71d44526340f4f9389695798c",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -233729,7 +233820,7 @@
|
|||
]
|
||||
],
|
||||
"visibility-003.html": [
|
||||
"cfeed644cbea10a031a37c2fef01cabacb6a68a0",
|
||||
"afa4c4184ce2ba6dcce0f0ec722391a2fcffd39e",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -233742,7 +233833,7 @@
|
|||
]
|
||||
],
|
||||
"visibility-004.html": [
|
||||
"8173b9cd2ef9162d6596c412d559abdb409d7267",
|
||||
"ed4a4aeb09d53c2c9264886dd97ad0574ef0656a",
|
||||
[
|
||||
null,
|
||||
[
|
||||
|
@ -298600,6 +298691,10 @@
|
|||
"55ba7b2c73faa017ec07203df3284c84667ffece",
|
||||
[]
|
||||
],
|
||||
"ruby-box-model-001-ref.html": [
|
||||
"8ddca2fc5bf93dd11ff525d10c0a675fab8f5a7a",
|
||||
[]
|
||||
],
|
||||
"ruby-dynamic-insertion-001-ref.html": [
|
||||
"0a09924c653d80bfb69124ead3d65d6f2f8e411f",
|
||||
[]
|
||||
|
@ -314166,6 +314261,10 @@
|
|||
"4403a95c146c1aaba697a5198852548d948a5461",
|
||||
[]
|
||||
],
|
||||
"custom.css": [
|
||||
"a5f59ce7721cce73cc79dd69bff68ef8afe14e9a",
|
||||
[]
|
||||
],
|
||||
"files-changed.png": [
|
||||
"7472edcb965c98e414e1be6412f0ed58afbe0f6b",
|
||||
[]
|
||||
|
@ -330129,6 +330228,10 @@
|
|||
"b5481216729526387722a6c733ea529f5d1f831a",
|
||||
[]
|
||||
],
|
||||
"screen-wake-lock.idl": [
|
||||
"1eb30a06024713e5aab435610a8fc62841db8a50",
|
||||
[]
|
||||
],
|
||||
"scroll-animations.idl": [
|
||||
"00d0bae68126aa67d6714694422a098100eb7e71",
|
||||
[]
|
||||
|
@ -330205,10 +330308,6 @@
|
|||
"845e2ef6cf84aa6fafbfdcadf167e440eaadd668",
|
||||
[]
|
||||
],
|
||||
"wake-lock.idl": [
|
||||
"429b80e0668aa2607ef59e32b2c3c674974bd0c5",
|
||||
[]
|
||||
],
|
||||
"wasm-js-api.idl": [
|
||||
"cc943610145dec2346e7ec9d6891cf32859f9d59",
|
||||
[]
|
||||
|
@ -330683,6 +330782,10 @@
|
|||
]
|
||||
},
|
||||
"operators": {
|
||||
"mo-form-dynamic-002-ref.html": [
|
||||
"be7f5aa173d233fb5a2477586c78df1f0e027c54",
|
||||
[]
|
||||
],
|
||||
"mo-form-dynamic-ref.html": [
|
||||
"8f8d3da2c37cb5710d3758b0c6dfb7d2641a07bf",
|
||||
[]
|
||||
|
@ -330699,6 +330802,10 @@
|
|||
"d48bd48a6e4a492e7fc31ae83d016cd12b9c8d56",
|
||||
[]
|
||||
],
|
||||
"mo-lspace-rspace-dynamic-ref.html": [
|
||||
"85cabd287d9dd4f5cd5ec68e6083c6f88d617369",
|
||||
[]
|
||||
],
|
||||
"mo-movablelimits-default-ref.html": [
|
||||
"8328637397962e973130c6d8544bda90690cc471",
|
||||
[]
|
||||
|
@ -335830,6 +335937,34 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"screen-wake-lock": {
|
||||
"META.yml": [
|
||||
"b311993d82e15880bb991e993ffe6716be28ef23",
|
||||
[]
|
||||
],
|
||||
"resources": {
|
||||
"page1.html": [
|
||||
"7fc080d380c4bd46dfb011910e570ee412561b92",
|
||||
[]
|
||||
],
|
||||
"page2.html": [
|
||||
"7fc080d380c4bd46dfb011910e570ee412561b92",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"wakelock-disabled-by-feature-policy.https.sub.html.headers": [
|
||||
"5d910ce6df801980a26fb191589201f614ed02af",
|
||||
[]
|
||||
],
|
||||
"wakelock-enabled-by-feature-policy.https.sub.html.headers": [
|
||||
"7810751f8051c14818b290aa9ea7edab04bca3e9",
|
||||
[]
|
||||
],
|
||||
"wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html.headers": [
|
||||
"6bc94277cf9a4610c33274bd5b984e41d389622a",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"scroll-animations": {
|
||||
"META.yml": [
|
||||
"c53f1f432fe1ec2887e30af396a1f1574b76b95d",
|
||||
|
@ -346902,38 +347037,6 @@
|
|||
]
|
||||
}
|
||||
},
|
||||
"wake-lock": {
|
||||
"META.yml": [
|
||||
"0123ccef85511aaa86770c53716ef9264377b1c1",
|
||||
[]
|
||||
],
|
||||
"resources": {
|
||||
"idlharness-worker.js": [
|
||||
"b84ed44a8c89713be559e9cec8a1e3f48c990179",
|
||||
[]
|
||||
],
|
||||
"page1.html": [
|
||||
"7fc080d380c4bd46dfb011910e570ee412561b92",
|
||||
[]
|
||||
],
|
||||
"page2.html": [
|
||||
"7fc080d380c4bd46dfb011910e570ee412561b92",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"wakelock-disabled-by-feature-policy.https.sub.html.headers": [
|
||||
"5d910ce6df801980a26fb191589201f614ed02af",
|
||||
[]
|
||||
],
|
||||
"wakelock-enabled-by-feature-policy.https.sub.html.headers": [
|
||||
"7810751f8051c14818b290aa9ea7edab04bca3e9",
|
||||
[]
|
||||
],
|
||||
"wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html.headers": [
|
||||
"6bc94277cf9a4610c33274bd5b984e41d389622a",
|
||||
[]
|
||||
]
|
||||
},
|
||||
"wasm": {
|
||||
"META.yml": [
|
||||
"3ea02ee7c9e41831aafbd37436f59b51244b142e",
|
||||
|
@ -380330,7 +380433,7 @@
|
|||
]
|
||||
],
|
||||
"federatedcredential-framed-get.sub.https.html": [
|
||||
"a7c87e2331ffdb518fe33d42aed1f269cfc8b9a3",
|
||||
"7883c8ebf23ea3c4214db585aba32d391d824a52",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -380369,7 +380472,7 @@
|
|||
]
|
||||
],
|
||||
"passwordcredential-framed-get.sub.https.html": [
|
||||
"d86c6e09c70874f06714c9cde0b63a2cef959f69",
|
||||
"b4afc1eb91e563ef59dd540dd1f6d90b2a59c854",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
|
@ -388298,6 +388401,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"grid-template-columns-rows-changes-001.html": [
|
||||
"b32d24859eabade51b1757d0d62e3787db3f3bc0",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"grid-template-columns-rows-resolved-values-001.html": [
|
||||
"df91cebf63ee0a251e1c8da56567f7684bf4b1f9",
|
||||
[
|
||||
|
@ -388603,6 +388713,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"grid-gutters-as-percentage-001.html": [
|
||||
"651f4278f0687db698da1f7753762318184ed2af",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"grid-item-accepts-first-letter-001.html": [
|
||||
"32206794c345d864de2508e73a5336d91dff3837",
|
||||
[
|
||||
|
@ -430497,6 +430614,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"coep-on-response-from-service-worker.https.html": [
|
||||
"939c618227be7c34f279f446b6c0ea892807ca19",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"data.https.html": [
|
||||
"c34f1336c8bd22aadd0e867b8fcced598a1c4786",
|
||||
[
|
||||
|
@ -430586,7 +430710,7 @@
|
|||
]
|
||||
],
|
||||
"reporting.https.html": [
|
||||
"f8d8af7a4690d450f3aa098b12bfccde1e928dc6",
|
||||
"42d5e6cc33537e988daf77d740fdcdeab64508c5",
|
||||
[
|
||||
null,
|
||||
{
|
||||
|
@ -449972,6 +450096,13 @@
|
|||
{}
|
||||
]
|
||||
],
|
||||
"mo-stretch-properties-dynamic-001.html": [
|
||||
"daefd1f2b8ace97d0a8be92a44fa7408d787c980",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"operator-dictionary-001.html": [
|
||||
"e4e5c68b26344195844699e531dceacc835a8597",
|
||||
[
|
||||
|
@ -454261,7 +454392,7 @@
|
|||
},
|
||||
"native-io": {
|
||||
"close_async.tentative.https.any.js": [
|
||||
"a2337e50dbcac793678981ebd47c504f0d4b0d18",
|
||||
"a992f93eb5307fd435cb46e593f1a04e47e970c6",
|
||||
[
|
||||
"native-io/close_async.tentative.https.any.html",
|
||||
{
|
||||
|
@ -454324,7 +454455,7 @@
|
|||
]
|
||||
],
|
||||
"close_sync.tentative.https.any.js": [
|
||||
"001fa57a2c0299e3dabeaa938d7474198acb6e3d",
|
||||
"0cfc9de2ec65835a7fef368148a5677a523dce92",
|
||||
[
|
||||
"native-io/close_sync.tentative.https.any.worker.html",
|
||||
{
|
||||
|
@ -454342,7 +454473,7 @@
|
|||
]
|
||||
],
|
||||
"concurrent_io_async.tentative.https.any.js": [
|
||||
"22eea20c3121dce3a7a730d262d94d7a1ddf7848",
|
||||
"abc2031d5f9aec4f885f39d9db18331444af811d",
|
||||
[
|
||||
"native-io/concurrent_io_async.tentative.https.any.html",
|
||||
{
|
||||
|
@ -481595,6 +481726,178 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"screen-wake-lock": {
|
||||
"idlharness.https.window.js": [
|
||||
"370696e90b3579e9b0960942c1cc9269850f3f6b",
|
||||
[
|
||||
"screen-wake-lock/idlharness.https.window.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"script",
|
||||
"/resources/WebIDLParser.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"/resources/idlharness.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"/resources/testdriver.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"/resources/testdriver-vendor.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-active-document.https.window.js": [
|
||||
"724ce091969922f937c36b427d8b3aa3d449c1e2",
|
||||
[
|
||||
"screen-wake-lock/wakelock-active-document.https.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-disabled-by-feature-policy.https.sub.html": [
|
||||
"821ec62885d61b214f766b4c8e173f8b67855f38",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-enabled-by-feature-policy-attribute-redirect-on-load.https.sub.html": [
|
||||
"2b2e0c94cc744ff6c19f70397e4383fa2d809cff",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-enabled-by-feature-policy-attribute.https.sub.html": [
|
||||
"b8ab3b0301798bc7ceaed025e89b0a36dfa5b58c",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-enabled-by-feature-policy.https.sub.html": [
|
||||
"f908717ff410d736ccb42e89c3e95c4852e82696",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html": [
|
||||
"b15289beff4853765fdc30dfd0a3b35d48fd8619",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-insecure-context.any.js": [
|
||||
"f32cc3c354354f99852bb198760cdbd9229355a4",
|
||||
[
|
||||
"screen-wake-lock/wakelock-insecure-context.any.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Wake Lock API is not exposed in an insecure context"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"screen-wake-lock/wakelock-insecure-context.any.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Wake Lock API is not exposed in an insecure context"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-onrelease.https.html": [
|
||||
"88c0cdb654c8e700195c430aa74fb2238ce9db10",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-request-denied.https.html": [
|
||||
"b222ef342a6566a9d424044713b1acf2666679eb",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-screen-type-on-worker.https.worker.js": [
|
||||
"0201294e2365abae3e13fcfe21debfd26628236a",
|
||||
[
|
||||
"screen-wake-lock/wakelock-screen-type-on-worker.https.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Screen wake lock should not be allowed in dedicated worker"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-supported-by-feature-policy.html": [
|
||||
"a55eb54ba1c48ae7d5330ed1281029d71f0a23e9",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-type.https.any.js": [
|
||||
"3a1d8c465c7020594affe0cb81c67ea36839b640",
|
||||
[
|
||||
"screen-wake-lock/wakelock-type.https.any.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"navigator.wakeLock.request() with invalid type"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"screen-wake-lock/wakelock-type.https.any.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"navigator.wakeLock.request() with invalid type"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelockpermissiondescriptor.https.html": [
|
||||
"e6d0d0b07edda3a98381e00fc51d39469f0bf318",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"screen_enumeration": {
|
||||
"getScreens.tentative.https.window.js": [
|
||||
"3b893bbbb772a773dfa9c18cf4bd844cfe4db99f",
|
||||
|
@ -498095,196 +498398,6 @@
|
|||
]
|
||||
]
|
||||
},
|
||||
"wake-lock": {
|
||||
"idlharness-worker.https.window.js": [
|
||||
"76f5352721dfdadca5093b6f08bb648d8b17f93e",
|
||||
[
|
||||
"wake-lock/idlharness-worker.https.window.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"script",
|
||||
"/resources/testdriver.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"/resources/testdriver-vendor.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"idlharness.https.window.js": [
|
||||
"60c25f3386ea8bd2ce8a5955745f9d1ede580f46",
|
||||
[
|
||||
"wake-lock/idlharness.https.window.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"script",
|
||||
"/resources/WebIDLParser.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"/resources/idlharness.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"/resources/testdriver.js"
|
||||
],
|
||||
[
|
||||
"script",
|
||||
"/resources/testdriver-vendor.js"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-active-document.https.window.js": [
|
||||
"53745ea3c60e7322720d9082919950c798259f0f",
|
||||
[
|
||||
"wake-lock/wakelock-active-document.https.window.html",
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-disabled-by-feature-policy.https.sub.html": [
|
||||
"821ec62885d61b214f766b4c8e173f8b67855f38",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-enabled-by-feature-policy-attribute-redirect-on-load.https.sub.html": [
|
||||
"2b2e0c94cc744ff6c19f70397e4383fa2d809cff",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-enabled-by-feature-policy-attribute.https.sub.html": [
|
||||
"b8ab3b0301798bc7ceaed025e89b0a36dfa5b58c",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-enabled-by-feature-policy.https.sub.html": [
|
||||
"f908717ff410d736ccb42e89c3e95c4852e82696",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-enabled-on-self-origin-by-feature-policy.https.sub.html": [
|
||||
"b15289beff4853765fdc30dfd0a3b35d48fd8619",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-insecure-context.any.js": [
|
||||
"f32cc3c354354f99852bb198760cdbd9229355a4",
|
||||
[
|
||||
"wake-lock/wakelock-insecure-context.any.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Wake Lock API is not exposed in an insecure context"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"wake-lock/wakelock-insecure-context.any.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Wake Lock API is not exposed in an insecure context"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-onrelease.https.html": [
|
||||
"88c0cdb654c8e700195c430aa74fb2238ce9db10",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-request-denied.https.html": [
|
||||
"b222ef342a6566a9d424044713b1acf2666679eb",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-screen-type-on-worker.https.worker.js": [
|
||||
"0201294e2365abae3e13fcfe21debfd26628236a",
|
||||
[
|
||||
"wake-lock/wakelock-screen-type-on-worker.https.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"Screen wake lock should not be allowed in dedicated worker"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelock-supported-by-feature-policy.html": [
|
||||
"a55eb54ba1c48ae7d5330ed1281029d71f0a23e9",
|
||||
[
|
||||
null,
|
||||
{}
|
||||
]
|
||||
],
|
||||
"wakelock-type.https.any.js": [
|
||||
"3a1d8c465c7020594affe0cb81c67ea36839b640",
|
||||
[
|
||||
"wake-lock/wakelock-type.https.any.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"navigator.wakeLock.request() with invalid type"
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
[
|
||||
"wake-lock/wakelock-type.https.any.worker.html",
|
||||
{
|
||||
"script_metadata": [
|
||||
[
|
||||
"title",
|
||||
"navigator.wakeLock.request() with invalid type"
|
||||
]
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"wakelockpermissiondescriptor.https.html": [
|
||||
"88c95987f1ead6d0e194e3d1dcff6d4b5e852778",
|
||||
[
|
||||
null,
|
||||
{
|
||||
"testdriver": true
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"wasm": {
|
||||
"create_multiple_memory.worker.js": [
|
||||
"f5733b7c8da79f81dbda7e2d22673a730e27a68d",
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-002.html]
|
||||
[Hit test float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[hit-test-floats-005.html]
|
||||
[Miss clipped float]
|
||||
expected: FAIL
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[elementFromPoint-001.html]
|
||||
[CSSOM View - 5 - extensions to the Document interface]
|
||||
expected: FAIL
|
||||
|
|
@ -2,6 +2,3 @@
|
|||
[elementsFromPoint on the root document for points in iframe elements]
|
||||
expected: FAIL
|
||||
|
||||
[elementsFromPoint on inner documents]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -312,24 +312,21 @@
|
|||
[fetch(): separate response Content-Type: text/plain ]
|
||||
expected: NOTRUN
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<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 */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
||||
[<iframe>: separate response Content-Type: text/plain */*]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: combined response Content-Type: text/html */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||
expected: FAIL
|
||||
|
||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -53,9 +53,6 @@
|
|||
[combined text/javascript ]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript x/x]
|
||||
expected: FAIL
|
||||
|
||||
[separate text/javascript error]
|
||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -11,3 +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]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
[traverse_the_history_1.html]
|
||||
[Multiple history traversals from the same task]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_2.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_4.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
[traverse_the_history_5.html]
|
||||
[Multiple history traversals, last would be aborted]
|
||||
expected: FAIL
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
[supported-elements.html]
|
||||
expected: TIMEOUT
|
||||
[Contenteditable element should support autofocus]
|
||||
expected: FAIL
|
||||
|
||||
|
@ -6,10 +7,10 @@
|
|||
expected: FAIL
|
||||
|
||||
[Host element with delegatesFocus including no focusable descendants should be skipped]
|
||||
expected: FAIL
|
||||
expected: TIMEOUT
|
||||
|
||||
[Area element should support autofocus]
|
||||
expected: FAIL
|
||||
expected: NOTRUN
|
||||
|
||||
[Host element with delegatesFocus should support autofocus]
|
||||
expected: FAIL
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-1.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-2.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
[iframe_sandbox_popups_nonescaping-3.html]
|
||||
type: testharness
|
||||
expected: TIMEOUT
|
||||
expected: CRASH
|
||||
[Check that popups from a sandboxed iframe do not escape the sandbox]
|
||||
expected: NOTRUN
|
||||
|
||||
|
|
|
@ -4,3 +4,6 @@
|
|||
[The incumbent settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
[The entry settings object while executing the compiled callback via Web IDL's invoke must be that of the node document]
|
||||
expected: TIMEOUT
|
||||
|
||||
|
|
|
@ -158,3 +158,6 @@
|
|||
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 40518 more errors.\n\tMax AbsError of 1.9880115985870361e+0 at index of 23190.\n\t[23190\]\t9.9948620796203613e-1\t-9.8852539062500000e-1\t1.9880115985870361e+0\t2.0110880483607065e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 12348.\n\t[12348\]\t9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||
expected: FAIL
|
||||
|
||||
[X Rendered audio for channel 5 does not equal [0,0.0626220703125,0.125030517578125,0.18695068359375,0.24810791015625,0.308319091796875,0.3673095703125,0.42486572265625,0.480743408203125,0.53472900390625,0.58660888671875,0.636199951171875,0.68328857421875,0.727691650390625,0.76922607421875,0.8077392578125...\] with an element-wise tolerance of {"absoluteThreshold":0.000030517578125,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[1\]\t3.6732959747314453e-1\t6.2622070312500000e-2\t3.0470752716064453e-1\t4.8658168859649127e+0\t3.0517578125000000e-5\n\t[2\]\t6.8329977989196777e-1\t1.2503051757812500e-1\t5.5826926231384277e-1\t4.4650639949963384e+0\t3.0517578125000000e-5\n\t[3\]\t9.0373212099075317e-1\t1.8695068359375000e-1\t7.1678143739700317e-1\t3.8340669508039502e+0\t3.0517578125000000e-5\n\t[4\]\t9.9780619144439697e-1\t2.4810791015625000e-1\t7.4969828128814697e-1\t3.0216621502152523e+0\t3.0517578125000000e-5\n\t[5\]\t9.5236867666244507e-1\t3.0831909179687500e-1\t6.4404958486557007e-1\t2.0889059484187866e+0\t3.0517578125000000e-5\n\t...and 44050 more errors.\n\tMax AbsError of 1.9986916780471802e+0 at index of 42250.\n\t[42250\]\t9.9994289875030518e-1\t-9.9874877929687500e-1\t1.9986916780471802e+0\t2.0011956154322119e+0\t3.0517578125000000e-5\n\tMax RelError of Infinity at index of 14112.\n\t[14112\]\t-9.5105654001235962e-1\t0.0000000000000000e+0\t9.5105654001235962e-1\tInfinity\t3.0517578125000000e-5\n]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
[018.html]
|
||||
expected: TIMEOUT
|
||||
[origin of the script that invoked the method, javascript:]
|
||||
expected: TIMEOUT
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
[WorkerGlobalScope-close.html]
|
||||
[Test sending a message after closing.]
|
||||
expected: FAIL
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
[005.html]
|
||||
expected: ERROR
|
||||
[dedicated worker in shared worker in dedicated worker]
|
||||
expected: FAIL
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
assert_precondition('FederatedCredential' in window, "`FederatedCredential` is supported.");
|
||||
assert_implements('FederatedCredential' in window, "`FederatedCredential` is supported.");
|
||||
|
||||
// Ensure that the check is "same origin", not "same origin-domain".
|
||||
document.domain = window.location.hostname;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
||||
assert_precondition('PasswordCredential' in window, "`PasswordCredential` is supported.");
|
||||
assert_implements('PasswordCredential' in window, "`PasswordCredential` is supported.");
|
||||
|
||||
// Ensure that the check is "same origin", not "same origin-domain".
|
||||
document.domain = window.location.hostname;
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<title>CSS Grid: grid-tempalte-{rows|colums} dynamic updates</title>
|
||||
<link rel="author" title="Julien Chaffraix" href="mailto:jchaffraix@chromium.org">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#track-sizing">
|
||||
<link rel="help" href="https://bugs.webkit.org/show_bug.cgi?id=112501">
|
||||
<link rel="stylesheet" href="/css/support/grid.css">
|
||||
<link rel="stylesheet" href="/css/support/alignment.css">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"/>
|
||||
<meta name="assert" content="This test checks that grid-tempalte-{rows|colums} dynamic updates properly relayout the grid items.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script>
|
||||
setup({ explicit_done: true });
|
||||
|
||||
function testLayout(gridElementID, gridTracks, size, last = false)
|
||||
{
|
||||
var gridElement = document.getElementById(gridElementID);
|
||||
gridElement.style.gridTemplateColumns = gridTracks.columns;
|
||||
gridElement.style.gridTemplateRows = gridTracks.rows;
|
||||
var gridItem = gridElement.firstChild.nextSibling;
|
||||
gridItem.setAttribute("data-expected-width", size.width);
|
||||
gridItem.setAttribute("data-expected-height", size.height);
|
||||
checkLayout("#" + gridElementID, last);
|
||||
}
|
||||
|
||||
function updateRowsColumns()
|
||||
{
|
||||
// In the constrained grid case, we will always end up sizing after the min width. This means we don't test max width changes as they would not be detectable.
|
||||
testLayout("constrainedGrid", { 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(30px, 50px)' }, { 'width': '30', 'height': '20' });
|
||||
testLayout("constrainedGrid", { 'rows': 'minmax(40px, 50px)', 'columns': 'minmax(30px, 50px)' }, { 'width': '30', 'height': '40' });
|
||||
testLayout("constrainedGrid", { 'rows': 'minmax(40px, 50px)', 'columns': 'minmax(50px, 50px)' }, { 'width': '50', 'height': '40' });
|
||||
testLayout("constrainedGrid", { 'rows': 'auto', 'columns': 'minmax(50px, 50px)' }, { 'width': '50', 'height': '20' });
|
||||
testLayout("constrainedGrid", { 'rows': 'auto', 'columns': 'minmax(max-content, 50px)' }, { 'width': '120', 'height': '10' });
|
||||
testLayout("constrainedGrid", { 'rows': '70px', 'columns': 'minmax(max-content, 50px)' }, { 'width': '120', 'height': '70' });
|
||||
|
||||
testLayout("constrainedGridUndefinedHeight", { 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(30px, 50px)' }, { 'width': '30', 'height': '50' });
|
||||
testLayout("constrainedGridUndefinedHeight", { 'rows': 'minmax(40px, 50px)', 'columns': 'minmax(30px, 50px)' }, { 'width': '30', 'height': '50' });
|
||||
testLayout("constrainedGridUndefinedHeight", { 'rows': 'minmax(40px, 50px)', 'columns': 'minmax(50px, 50px)' }, { 'width': '50', 'height': '50' });
|
||||
testLayout("constrainedGridUndefinedHeight", { 'rows': 'auto', 'columns': 'minmax(50px, 50px)' }, { 'width': '50', 'height': '20' });
|
||||
testLayout("constrainedGridUndefinedHeight", { 'rows': 'auto', 'columns': 'minmax(max-content, 50px)' }, { 'width': '120', 'height': '10' });
|
||||
testLayout("constrainedGridUndefinedHeight", { 'rows': '70px', 'columns': 'minmax(max-content, 50px)' }, { 'width': '120', 'height': '70' });
|
||||
|
||||
testLayout("unconstrainedGrid", { 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(20px, 60px)' }, { 'width': '60', 'height': '50' });
|
||||
testLayout("unconstrainedGrid", { 'rows': 'minmax(20px, 50px)', 'columns': 'minmax(20px, 40px)' }, { 'width': '40', 'height': '50' });
|
||||
testLayout("unconstrainedGrid", { 'rows': 'minmax(20px, 30px)', 'columns': 'minmax(20px, 40px)' }, { 'width': '40', 'height': '30' });
|
||||
testLayout("unconstrainedGrid", { 'rows': 'auto', 'columns': 'minmax(20px, 40px)' }, { 'width': '40', 'height': '20' });
|
||||
testLayout("unconstrainedGrid", { 'rows': 'auto', 'columns': 'minmax(20px, max-content)' }, { 'width': '120', 'height': '10' });
|
||||
testLayout("unconstrainedGrid", { 'rows': 'auto', 'columns': 'minmax(150px, max-content)' }, { 'width': '150', 'height': '10' });
|
||||
testLayout("unconstrainedGrid", { 'rows': 'auto', 'columns': 'auto' }, { 'width': '120', 'height': '10' });
|
||||
testLayout("unconstrainedGrid", { 'rows': 'auto', 'columns': 'minmax(min-content, 1fr) 3fr' }, { 'width': '250', 'height': '10' });
|
||||
testLayout("unconstrainedGrid", { 'rows': 'auto', 'columns': 'minmax(min-content, 3fr) 3fr' }, { 'width': '500', 'height': '10' }, true);
|
||||
}
|
||||
</script>
|
||||
<body onload="document.fonts.ready.then(() => { updateRowsColumns(); })">
|
||||
<div class="constrainedContainer">
|
||||
<div class="grid" id="constrainedGrid" style="height: 100%">
|
||||
<div class="sizedToGridArea">XXXXX XXXXXX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="constrainedContainer">
|
||||
<div class="grid" id="constrainedGridUndefinedHeight">
|
||||
<div class="sizedToGridArea">XXXXX XXXXXX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="unconstrainedContainer">
|
||||
<div class="grid justifyContentStart" id="unconstrainedGrid">
|
||||
<div class="sizedToGridArea">XXXXX XXXXXX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,199 @@
|
|||
<!DOCTYPE html>
|
||||
<title>CSS Grid: grid gutters as percentage.</title>
|
||||
<link rel="author" title="Sergio Villar" href="mailto:svillar@igalia.com"/>
|
||||
<link rel="help" href="https://drafts.csswg.org/css-grid-1/#gutters"/>
|
||||
<meta name="assert" content="Check that when 'height' is indefinite, row gaps should be based on grid's 'auto' height."/>
|
||||
<link rel="stylesheet" href="/css/support/grid.css"/>
|
||||
<link rel="stylesheet" href="/css/support/width-keyword-classes.css"/>
|
||||
<link rel="stylesheet" href="/css/support/height-keyword-classes.css"/>
|
||||
<link rel="stylesheet" href="/fonts/ahem.css" type="text/css"/>
|
||||
<style>
|
||||
body { margin: 0; }
|
||||
.grid { font: 10px/1 Ahem; position: relative; }
|
||||
.widthAuto { width: auto; }
|
||||
.heightAuto { height: auto; }
|
||||
.width400 { width: 400px; }
|
||||
.width200 { width: 200px; }
|
||||
.height200 { height: 200px; }
|
||||
.height100 { height: 100px; }
|
||||
.columns100-100 { grid-template-columns: 100px 100px; }
|
||||
.rows50-50 { grid-template-rows: 50px 50px; }
|
||||
.autoRepeat { grid-template: repeat(auto-fill, 50px) / repeat(auto-fill, 100px); }
|
||||
.columnGap10Percent { grid-column-gap: 10% }
|
||||
.rowGap20Percent { grid-row-gap: 20% }
|
||||
.positioned { position: absolute; width: 100%; height: 100%; }
|
||||
</style>
|
||||
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/check-layout-th.js"></script>
|
||||
<script type="text/javascript">
|
||||
setup({ explicit_done: true });
|
||||
</script>
|
||||
|
||||
<body onload="document.fonts.ready.then(() => { checkLayout('.grid'); })">
|
||||
<div id="log"></div>
|
||||
|
||||
<p>Height is indefinite, so row gaps should be based on grid's 'auto' height. Column gaps based on a grid's 'auto' width, which will reduce the available space for tracks; however, they can grow exceeding their content's max-width.</p>
|
||||
<div class="width400">
|
||||
<div class="grid columnGap10Percent rowGap20Percent" data-expected-width="400" data-expected-height="20">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="180" data-expected-height="10">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="220" data-offset-y="0" data-expected-width="180" data-expected-height="10">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="14" data-expected-width="180" data-expected-height="10">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="220" data-offset-y="14" data-expected-width="180" data-expected-height="10">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Height is indefinite, so row gaps should be based on grid's 'auto' height. Column gaps based on a grid's 'instrinsic' width, which reduce the available space for tracks; however, since we use 'fit-content' intrinsic size, first column's width is reduced and height increased to let its content to fit.</p>
|
||||
<div class="width400">
|
||||
<div class="grid fit-content heightAuto columnGap10Percent rowGap20Percent" data-expected-width="200" data-expected-height="40">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="20">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="20">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="28" data-expected-width="80" data-expected-height="20">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="100" data-offset-y="28" data-expected-width="100" data-expected-height="20">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Height is indefinite, so row gaps should be based on grid's 'auto' height. Column gaps based on a grid's 'auto' width, which will reduce the available space for tracks; however, they can grow exceeding their content's max-width.</p>
|
||||
<div class="width400">
|
||||
<div class="grid fit-content widthAuto columnGap10Percent rowGap20Percent" data-expected-width="400" data-expected-height="20">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="180" data-expected-height="10">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="220" data-offset-y="0" data-expected-width="180" data-expected-height="10">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="14" data-expected-width="180" data-expected-height="10">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="220" data-offset-y="14" data-expected-width="180" data-expected-height="10">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Height is indefinite, so row gaps should be based on grid's 'auto' height. Column gaps based on a grid's 'instrinsic' width, which reduce the available space for tracks; however, since we use 'fit-content' intrinsic size, first column's width is reduced and height increased to let its content to fit.</p>
|
||||
<div class="width400">
|
||||
<div class="grid fit-content columnGap10Percent rowGap20Percent" data-expected-width="200" data-expected-height="40">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="20">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="20">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="28" data-expected-width="80" data-expected-height="20">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="100" data-offset-y="28" data-expected-width="100" data-expected-height="20">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Height is indefinite, so row gaps should be based on grid's 'auto' height. Column gaps based on a grid's 'auto' width, which reduce the available space for tracks; however, they are fixed sized and fit.</p>
|
||||
<div class="width400">
|
||||
<div class="grid columns100-100 rows50-50 columnGap10Percent rowGap20Percent" data-expected-width="400" data-expected-height="100">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="140" data-offset-y="0" data-expected-width="100" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="70" data-expected-width="100" data-expected-height="50">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="140" data-offset-y="70" data-expected-width="100" data-expected-height="50">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Height is indefinite, so row gaps should be based on grid's 'auto' height. Column gaps based on a grid's 'intrinsic' width, which reduce the available space for tracks; however, they are fixed sized and don't fit so they overflow the grid container.</p>
|
||||
<div class="width400">
|
||||
<div class="grid fit-content heightAuto columns100-100 rows50-50 columnGap10Percent rowGap20Percent" data-expected-width="200" data-expected-height="100">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="120" data-offset-y="0" data-expected-width="100" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="70" data-expected-width="100" data-expected-height="50">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="120" data-offset-y="70" data-expected-width="100" data-expected-height="50">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Height is indefinite, so row gaps should be based on grid's 'auto' height. Column gaps based on a grid's 'auto' width, which reduce the available space for tracks; however, they are fixed sized and fit.</p>
|
||||
<div class="width400">
|
||||
<div class="grid fit-content widthAuto columns100-100 rows50-50 columnGap10Percent rowGap20Percent" data-expected-width="400" data-expected-height="100">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="140" data-offset-y="0" data-expected-width="100" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="70" data-expected-width="100" data-expected-height="50">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="140" data-offset-y="70" data-expected-width="100" data-expected-height="50">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Both row and column gaps are based on definite sizes, but they will reduce the available space for tracks; however, since the container's specified inline size is not enough, first column's width is reduced and height increased to let its content to fit.</p>
|
||||
<div class="width400">
|
||||
<div class="grid width200 height100 columnGap10Percent rowGap20Percent" data-expected-width="200" data-expected-height="100">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="80" data-expected-height="40">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="100" data-offset-y="0" data-expected-width="100" data-expected-height="40">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="60" data-expected-width="80" data-expected-height="40">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="100" data-offset-y="60" data-expected-width="100" data-expected-height="40">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Both row and column gaps are based on definite sizes, but they will reduce the available space for tracks; however, they can grow exceeding their content's max-width.</p>
|
||||
<div class="width400">
|
||||
<div class="grid width400 height200 columnGap10Percent rowGap20Percent" data-expected-width="400" data-expected-height="200">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="180" data-expected-height="80">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="220" data-offset-y="0" data-expected-width="180" data-expected-height="80">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="120" data-expected-width="180" data-expected-height="80">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="220" data-offset-y="120" data-expected-width="180" data-expected-height="80">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Both row and column gaps are based on definite sizes, they will reduce the available space for tracks; however, they are fixed sized and don't fit so they overflow the grid container.</p>
|
||||
<div class="width400">
|
||||
<div class="grid width200 height100 columns100-100 rows50-50 columnGap10Percent rowGap20Percent" data-expected-width="200" data-expected-height="100">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="120" data-offset-y="0" data-expected-width="100" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="70" data-expected-width="100" data-expected-height="50">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="120" data-offset-y="70" data-expected-width="100" data-expected-height="50">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Both row and column gaps are based on definite sizes, they will reduce the available space for tracks; however, they are fixed sized and fit.</p>
|
||||
<div class="width400">
|
||||
<div class="grid width400 height200 columns100-100 rows50-50 columnGap10Percent rowGap20Percent" data-expected-width="400" data-expected-height="200">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="140" data-offset-y="0" data-expected-width="100" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="90" data-expected-width="100" data-expected-height="50">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="140" data-offset-y="90" data-expected-width="100" data-expected-height="50">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Height is indefinite, so row gaps should be based on grid's 'auto' height. Column gaps based on a grid's 'instrinsic' width, which reduce the available space for tracks; however, since we use 'fit-content' intrinsic size, only 1 repeteation is allowed, so tracks are adjusted to fit in the intrinsic size reduced by the gaps.</p>
|
||||
<div class="width400">
|
||||
<div class="grid fit-content autoRepeat columnGap10Percent rowGap20Percent" data-expected-width="200" data-expected-height="70">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="120" data-offset-y="0" data-expected-width="80" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="64" data-expected-width="100" data-expected-height="20">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="120" data-offset-y="64" data-expected-width="80" data-expected-height="20">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Both row and column gaps are based on definite sizes, they will reduce the available space for tracks; however, repeat auto-fill allows all of them to fit.</p>
|
||||
<div class="">
|
||||
<div class="grid width400 height200 autoRepeat columnGap10Percent rowGap20Percent" data-expected-width="400" data-expected-height="200">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="140" data-offset-y="0" data-expected-width="100" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="firstRowThirdColumn" data-offset-x="280" data-offset-y="0" data-expected-width="100" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="90" data-expected-width="100" data-expected-height="50">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="140" data-offset-y="90" data-expected-width="100" data-expected-height="50">XXXXX X XX</div>
|
||||
<div class="secondRowThirdColumn" data-offset-x="280" data-offset-y="90" data-expected-width="100" data-expected-height="50">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Both row and column gaps are based on definite sizes, they will reduce the available space for tracks; however, repeat auto-fill allows only 1 repetition.</p>
|
||||
<div class="">
|
||||
<div class="grid width200 height100 autoRepeat columnGap10Percent rowGap20Percent" data-expected-width="200" data-expected-height="100">
|
||||
<div class="firstRowFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="firstRowSecondColumn" data-offset-x="120" data-offset-y="0" data-expected-width="80" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="secondRowFirstColumn" data-offset-x="0" data-offset-y="70" data-expected-width="100" data-expected-height="30">X XX XXX X</div>
|
||||
<div class="secondRowSecondColumn" data-offset-x="120" data-offset-y="70" data-expected-width="80" data-expected-height="30">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Grid with positioned items. Height is indefinite, so row gaps should be based on grid's 'auto' height. Column gaps based on a grid's 'auto' width, which reduce the available space for tracks; however, they are fixed sized and fit.</p>
|
||||
<div class="width400">
|
||||
<div class="grid columns100-100 rows50-50 columnGap10Percent rowGap20Percent" data-expected-width="400" data-expected-height="100">
|
||||
<div class="positioned onlyFirstRowOnlyFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="positioned onlyFirstRowOnlySecondColumn" data-offset-x="140" data-offset-y="0" data-expected-width="100" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="positioned onlySecondRowOnlyFirstColumn" data-offset-x="0" data-offset-y="70" data-expected-width="100" data-expected-height="50">X XX XXX X</div>
|
||||
<div class="positioned onlySecondRowOnlySecondColumn" data-offset-x="140" data-offset-y="70" data-expected-width="100" data-expected-height="50">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>Grid with positioned items. Both row and column gaps are based on definite sizes, they will reduce the available space for tracks; however, they are fixed sized and don't fit so they overflow the grid container.</p>
|
||||
<div class="">
|
||||
<div class="grid width200 height100 columns100-100 rows50-50 columnGap10Percent rowGap20Percent" data-expected-width="200" data-expected-height="100">
|
||||
<div class="positioned onlyFirstRowOnlyFirstColumn" data-offset-x="0" data-offset-y="0" data-expected-width="100" data-expected-height="50">XXX X XX X</div>
|
||||
<div class="positioned onlyFirstRowOnlySecondColumn" data-offset-x="120" data-offset-y="0" data-expected-width="100" data-expected-height="50">XX XXX X X</div>
|
||||
<div class="positioned onlySecondRowOnlyFirstColumn" data-offset-x="0" data-offset-y="70" data-expected-width="100" data-expected-height="50">X XX XXX X</div>
|
||||
<div class="positioned onlySecondRowOnlySecondColumn" data-offset-x="120" data-offset-y="70" data-expected-width="100" data-expected-height="50">XXXXX X XX</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>Empty ruby base container</title>
|
||||
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org">
|
||||
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-ruby-1/#ruby-layout">
|
||||
<link rel="match" href="empty-ruby-base-container-ref.html">
|
||||
<style>
|
||||
a { position: absolute; }
|
||||
</style>
|
||||
<div style="font-size: 64px; line-height: 3">a<ruby><a> </a><rt>b</rt></ruby>c</div>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>Empty ruby base container</title>
|
||||
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org">
|
||||
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-ruby-1/#ruby-layout">
|
||||
<link rel="match" href="empty-ruby-base-container-ref.html">
|
||||
<style>
|
||||
a { float: right; }
|
||||
</style>
|
||||
<div style="font-size: 64px; line-height: 3">a<ruby><a> </a><rt>b</rt></ruby>c</div>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>Empty ruby text container</title>
|
||||
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org">
|
||||
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-ruby-1/#ruby-layout">
|
||||
<link rel="match" href="empty-ruby-text-container-ref.html">
|
||||
<style>
|
||||
a { position: absolute; }
|
||||
</style>
|
||||
<div style="font-size: 64px; line-height: 5">a<ruby><rb>b</rb><rtc><a> </a></rtc><rt>c</rt></ruby>d</div>
|
|
@ -0,0 +1,11 @@
|
|||
<!DOCTYPE html>
|
||||
<meta charset="UTF-8">
|
||||
<title>Empty ruby text container</title>
|
||||
<link rel="author" title="Xidorn Quan" href="https://www.upsuper.org">
|
||||
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-ruby-1/#ruby-layout">
|
||||
<link rel="match" href="empty-ruby-text-container-ref.html">
|
||||
<style>
|
||||
a { float: right; }
|
||||
</style>
|
||||
<div style="font-size: 64px; line-height: 5">a<ruby><rb>b</rb><rtc><a> </a></rtc><rt>c</rt></ruby>d</div>
|
|
@ -0,0 +1,81 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>CSS test reference</title>
|
||||
|
||||
<style>
|
||||
.r { display: ruby; }
|
||||
.rbc { display: ruby-base-container; }
|
||||
.rb { display: ruby-base; }
|
||||
.rtc { display: ruby-text-container; }
|
||||
.rt { display: ruby-text; }
|
||||
|
||||
.r { font: 50px/1 monospace; }
|
||||
|
||||
.rb { background: pink; }
|
||||
.rt { background: orange; }
|
||||
</style>
|
||||
|
||||
<p>Test passes if, in each of the base/annotations pairs below, there is no gap between the pink box of the base and the orange box of the annotation.</p>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc pv">
|
||||
<span class=rb>b1</span>
|
||||
</span>
|
||||
<span class="rtc pv">
|
||||
<span class=rt>a1</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc ph">
|
||||
<span class=rb>b2</span>
|
||||
</span>
|
||||
<span class="rtc ph">
|
||||
<span class=rt>a2</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc bv">
|
||||
<span class=rb>b3</span>
|
||||
</span>
|
||||
<span class="rtc bv">
|
||||
<span class=rt>a3</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc bh">
|
||||
<span class=rb>b4</span>
|
||||
</span>
|
||||
<span class="rtc bh">
|
||||
<span class=rt>a4</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc mv">
|
||||
<span class=rb>b5</span>
|
||||
</span>
|
||||
<span class="rtc mv">
|
||||
<span class=rt>a5</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc mh">
|
||||
<span class=rb>b6</span>
|
||||
</span>
|
||||
<span class="rtc mh">
|
||||
<span class=rt>a6</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc ph pv mh mv bh bv">
|
||||
<span class=rb>b7</span>
|
||||
</span>
|
||||
<span class="rtc ph pv mh mv bh bv">
|
||||
<span class=rt>a7</span>
|
||||
</span>
|
||||
</span>
|
|
@ -0,0 +1,94 @@
|
|||
<!doctype html>
|
||||
<meta charset=utf-8>
|
||||
<title>CSS Ruby test: no m/b/p/ effect on base/annotation containers</title>
|
||||
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-ruby-1/#ruby-layout">
|
||||
<link rel="help" href="https://drafts.csswg.org/css-ruby-1/#box-style">
|
||||
<link rel="match" href="ruby-box-model-001-ref.html">
|
||||
<meta name=assert content="the content box of base (resp annotation) container boxes should be tightly rapping around their content, and stacked up without gap. Margins/Borders/Padding on the base (resp annotation) container boxes do not apply.">
|
||||
|
||||
<style>
|
||||
.r { display: ruby; }
|
||||
.rbc { display: ruby-base-container; }
|
||||
.rb { display: ruby-base; }
|
||||
.rtc { display: ruby-text-container; }
|
||||
.rt { display: ruby-text; }
|
||||
|
||||
.pv { padding-top: 100px; padding-bottom: 100px; }
|
||||
.ph { padding-left: 100px; padding-right: 100px; }
|
||||
.bv, .bh { border-style: solid; border-color: transparent; }
|
||||
.bv { border-top-width: 100px; border-bottom-width: 100px; }
|
||||
.bh { border-left-width: 100px; border-right-width: 100px; }
|
||||
.mv { margin-top: 100px; margin-bottom: 100px; }
|
||||
.mh { margin-left: 100px; margin-right: 100px; }
|
||||
|
||||
.r { font: 50px/1 monospace; }
|
||||
|
||||
.rb { background: pink; }
|
||||
.rt { background: orange; }
|
||||
</style>
|
||||
|
||||
<p>Test passes if, in each of the base/annotations pairs below, there is no gap between the pink box of the base and the orange box of the annotation.</p>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc pv">
|
||||
<span class=rb>b1</span>
|
||||
</span>
|
||||
<span class="rtc pv">
|
||||
<span class=rt>a1</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc ph">
|
||||
<span class=rb>b2</span>
|
||||
</span>
|
||||
<span class="rtc ph">
|
||||
<span class=rt>a2</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc bv">
|
||||
<span class=rb>b3</span>
|
||||
</span>
|
||||
<span class="rtc bv">
|
||||
<span class=rt>a3</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc bh">
|
||||
<span class=rb>b4</span>
|
||||
</span>
|
||||
<span class="rtc bh">
|
||||
<span class=rt>a4</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc mv">
|
||||
<span class=rb>b5</span>
|
||||
</span>
|
||||
<span class="rtc mv">
|
||||
<span class=rt>a5</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc mh">
|
||||
<span class=rb>b6</span>
|
||||
</span>
|
||||
<span class="rtc mh">
|
||||
<span class=rt>a6</span>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class=r>
|
||||
<span class="rbc ph pv mh mv bh bv">
|
||||
<span class=rb>b7</span>
|
||||
</span>
|
||||
<span class="rtc ph pv mh mv bh bv">
|
||||
<span class=rt>a7</span>
|
||||
</span>
|
||||
</span>
|
7
tests/wpt/web-platform-tests/docs/assets/custom.css
Normal file
7
tests/wpt/web-platform-tests/docs/assets/custom.css
Normal file
|
@ -0,0 +1,7 @@
|
|||
div.body {
|
||||
min-width: auto;
|
||||
}
|
||||
|
||||
#video-introduction-transcript iframe {
|
||||
max-width: 100%;
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
<script src=/resources/testharness.js></script>
|
||||
<script src=/resources/testharnessreport.js></script>
|
||||
<script src="/common/get-host-info.sub.js"></script>
|
||||
<script src="/service-workers/service-worker/resources/test-helpers.sub.js"></script>
|
||||
<script>
|
||||
const FRAME_URL = 'resources/coep-frame.html'
|
||||
const SCOPE = new URL(FRAME_URL, location).pathname;
|
||||
const SCRIPT = 'resources/sw.js?';
|
||||
|
||||
// This is similar to
|
||||
// none-sw-from-require-corp.https.html, but there is one difference:
|
||||
// In this file, the frame controlled by the service worker comes from
|
||||
// the service worker, but on none-sw-from-require-corp.https.html
|
||||
// the main document comes from the network directly. Hence the tests
|
||||
// here test whether COEP is set correctly for documents coming from
|
||||
// service workers.
|
||||
|
||||
function remote(path) {
|
||||
const REMOTE_ORIGIN = get_host_info().HTTPS_REMOTE_ORIGIN;
|
||||
return new URL(path, REMOTE_ORIGIN + '/html/cross-origin-embedder-policy/');
|
||||
}
|
||||
|
||||
let registration;
|
||||
let frame;
|
||||
|
||||
promise_test(async (t) => {
|
||||
registration = await service_worker_unregister_and_register(t, SCRIPT, SCOPE);
|
||||
await wait_for_state(t, registration.installing, 'activated')
|
||||
frame = await with_iframe(FRAME_URL);
|
||||
}, 'setup');
|
||||
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await w.fetch('resources/nothing-same-origin-corp.txt', {mode: 'no-cors'});
|
||||
}, 'making a same-origin request for CORP: same-origin');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await w.fetch('/common/blank.html', {mode: 'no-cors'});
|
||||
}, 'making a same-origin request for no CORP');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await w.fetch('resources/nothing-cross-origin-corp.txt', {mode: 'no-cors'});
|
||||
}, 'making a same-origin request for CORP: cross-origin');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await promise_rejects_js(
|
||||
t, w.TypeError,
|
||||
w.fetch(remote('resources/nothing-same-origin-corp.txt'), {mode: 'no-cors'}));
|
||||
}, 'making a cross-origin request for CORP: same-origin');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await promise_rejects_js(
|
||||
t, w.TypeError, w.fetch(remote('/common/blank.html'), {mode: 'no-cors'}));
|
||||
}, 'making a cross-origin request for no CORP');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await w.fetch(
|
||||
remote('resources/nothing-cross-origin-corp.txt'),
|
||||
{mode: 'no-cors'});
|
||||
}, 'making a cross-origin request for CORP: cross-origin');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await promise_rejects_js(
|
||||
t, w.TypeError,
|
||||
w.fetch(remote('resources/nothing-same-origin-corp.txt?passthrough'),
|
||||
{mode: 'no-cors'}));
|
||||
}, 'making a cross-origin request for CORP: same-origin [PASS THROUGH]');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await promise_rejects_js(
|
||||
t, w.TypeError,
|
||||
w.fetch(remote('/common/blank.html?passthrough'), {mode: 'no-cors'}));
|
||||
}, 'making a cross-origin request for no CORP [PASS THROUGH]');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await w.fetch(
|
||||
remote('resources/nothing-cross-origin-corp.txt?passthrough'),
|
||||
{mode: 'no-cors'});
|
||||
}, 'making a cross-origin request for CORP: cross-origin [PASS THROUGH]');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
await promise_rejects_js(
|
||||
t, w.TypeError, w.fetch(remote('/common/blank.html'), {mode: 'cors'}));
|
||||
}, 'making a cross-origin request with CORS without ACAO');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const w = frame.contentWindow;
|
||||
const URL = remote(
|
||||
'/common/blank.html?pipe=header(access-control-allow-origin,*');
|
||||
await w.fetch(URL, {mode: 'cors'});
|
||||
}, 'making a cross-origin request with CORS');
|
||||
|
||||
promise_test(async () => {
|
||||
frame.remove();
|
||||
await registration.unregister();
|
||||
}, 'teardown');
|
||||
|
||||
</script>
|
||||
</html>
|
|
@ -458,50 +458,5 @@ promise_test(async (t) => {
|
|||
checkCorpReportExistence(reports, blockedDueToCoep, iframe.src);
|
||||
checkCorpReportExistence(reports, redirect, iframe.src);
|
||||
checkReportNonExistence(reports, dest, iframe.src);
|
||||
}, 'subresource CORP in a passthrough iframe hosted by a service worker without COEP');
|
||||
|
||||
promise_test(async (t) => {
|
||||
const iframe_src = `resources/reporting-empty-frame.html`;
|
||||
// Register a service worker that controls an iframe.
|
||||
const registration = await service_worker_unregister_and_register(
|
||||
t, 'resources/sw.js', iframe_src);
|
||||
t.add_cleanup(() => registration.unregister());
|
||||
await wait_for_state(t, registration.installing, 'activated');
|
||||
|
||||
const iframe = document.createElement('iframe');
|
||||
t.add_cleanup(() => iframe.remove());
|
||||
|
||||
iframe.src = iframe_src;
|
||||
document.body.appendChild(iframe);
|
||||
await new Promise(resolve => {
|
||||
iframe.addEventListener('load', resolve, {once: true});
|
||||
});
|
||||
|
||||
async function fetchInIframe(url) {
|
||||
const init = { mode: 'no-cors', cache: 'no-store' };
|
||||
// Ignore errors.
|
||||
return iframe.contentWindow.fetch(url, init).catch(() => {});
|
||||
}
|
||||
|
||||
const suffix = 'subresource-corp-respondwith-fetch-sw';
|
||||
const sameOriginUrl = `/common/text-plain.txt?${suffix}`;
|
||||
const blockedByPureCorp = `${REMOTE_ORIGIN}${BASE}/nothing-same-origin-corp.txt?${suffix}`;
|
||||
const blockedDueToCoep = `${REMOTE_ORIGIN}/common/text-plain.txt?abc&${suffix}`;
|
||||
const dest = `${REMOTE_ORIGIN}/common/text-plain.txt?xyz&${suffix}`;
|
||||
const redirect = `/common/redirect.py?location=${encodeURIComponent(dest)}&${suffix}`;
|
||||
|
||||
fetchInIframe(sameOriginUrl);
|
||||
fetchInIframe(blockedByPureCorp);
|
||||
fetchInIframe(blockedDueToCoep)
|
||||
fetchInIframe(redirect);
|
||||
|
||||
// Wait until |reports| is ready.
|
||||
await wait(1000);
|
||||
|
||||
checkReportNonExistence(reports, sameOriginUrl, iframe.src);
|
||||
checkReportNonExistence(reports, blockedByPureCorp, iframe.src);
|
||||
checkCorpReportExistence(reports, blockedDueToCoep, iframe.src);
|
||||
checkCorpReportExistence(reports, redirect, iframe.src);
|
||||
checkReportNonExistence(reports, dest, iframe.src);
|
||||
}, 'subresource CORP in a respondWith(fetch) iframe hosted by a service worker without COEP');
|
||||
}, 'subresource CORP in an iframe hosted by a service worker without COEP');
|
||||
</script>$
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// GENERATED CONTENT - DO NOT EDIT
|
||||
// Content was automatically extracted by Reffy into reffy-reports
|
||||
// (https://github.com/tidoust/reffy-reports)
|
||||
// Source: Screen Wake Lock API (https://w3c.github.io/wake-lock/)
|
||||
// Source: Screen Wake Lock API (https://w3c.github.io/screen-wake-lock/)
|
||||
|
||||
[SecureContext]
|
||||
partial interface Navigator {
|
|
@ -0,0 +1,48 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><mo> dynamic form</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
math, math * {
|
||||
font: 60px/1 Ahem;
|
||||
}
|
||||
mo {
|
||||
color: blue;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="infix_attach_prefix" form="prefix">+</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mo id="prefix_attach_infix" form="infix">+</mo><mn>3</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="infix_remove">+</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mo id="prefix_remove">+</mo><mn>3</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="infix_set_to_prefix" form="prefix">+</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mo id="prefix_set_to_infix" form="infix">+</mo><mn>3</mn>
|
||||
</math>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,66 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><mo> dynamic form</title>
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#operator-fence-separator-or-accent-mo">
|
||||
<meta name="assert" content="Verifies that the form (and thus spacing) can be changed dynamically">
|
||||
<link rel="match" href="mo-form-dynamic-002-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
math, math * {
|
||||
font: 60px/1 Ahem;
|
||||
}
|
||||
mo {
|
||||
color: blue;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
window.addEventListener("load", () => {
|
||||
document.getElementById("infix_attach_prefix").setAttribute("form", "prefix");
|
||||
document.getElementById("prefix_attach_infix").setAttribute("form", "infix");
|
||||
document.getElementById("infix_remove").removeAttribute("form");
|
||||
document.getElementById("prefix_remove").removeAttribute("form");
|
||||
document.getElementById("infix_set_to_prefix").setAttribute("form", "prefix");
|
||||
document.getElementById("prefix_set_to_infix").setAttribute("form", "infix");
|
||||
document.documentElement.classList.remove("reftest-wait");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Prefix and infix forms of "+" have different default spacing in
|
||||
the operator dictionary. -->
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="infix_attach_prefix">+</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mo id="prefix_attach_infix">+</mo><mn>3</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="infix_remove" form="prefix">+</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mo id="prefix_remove" form="infix">+</mo><mn>3</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="infix_set_to_prefix" form="postfix">+</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mo id="prefix_set_to_infix" form="postfix">+</mo><mn>3</mn>
|
||||
</math>
|
||||
</p>
|
||||
<script src="/mathml/support/feature-detection.js"></script>
|
||||
<script>MathMLFeatureDetection.ensure_for_match_reftest("has_operator_spacing");</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,48 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><mo> dynamic lspace rspace (reference)</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
math, math * {
|
||||
font: 60px/1 Ahem;
|
||||
}
|
||||
mo {
|
||||
color: blue;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_attach_lspace" lspace="2em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_attach_rspace" rspace="3em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_modify_lspace" lspace="4em" rspace="1em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_modify_rspace" lspace="1em" rspace="5em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_remove_lspace" rspace="1em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_remove_rspace" lspace="1em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,64 @@
|
|||
<!DOCTYPE html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><mo> dynamic lspace rspace</title>
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#operator-fence-separator-or-accent-mo">
|
||||
<meta name="assert" content="Verifies dynamic setting of lspace and rspace">
|
||||
<link rel="match" href="mo-lspace-rspace-dynamic-ref.html">
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<style>
|
||||
math, math * {
|
||||
font: 60px/1 Ahem;
|
||||
}
|
||||
mo {
|
||||
color: blue;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
window.addEventListener("load", () => {
|
||||
document.getElementById("mo_attach_lspace").setAttribute("lspace", "2em");
|
||||
document.getElementById("mo_attach_rspace").setAttribute("rspace", "3em");
|
||||
document.getElementById("mo_modify_lspace").setAttribute("lspace", "4em");
|
||||
document.getElementById("mo_modify_rspace").setAttribute("rspace", "5em");
|
||||
document.getElementById("mo_remove_lspace").removeAttribute("lspace");
|
||||
document.getElementById("mo_remove_rspace").removeAttribute("rspace");
|
||||
document.documentElement.classList.remove("reftest-wait");
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_attach_lspace">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_attach_rspace">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_modify_lspace" lspace="1em" rspace="1em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_modify_rspace" lspace="1em" rspace="1em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_remove_lspace" lspace="1em" rspace="1em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mn>1</mn><mo id="mo_remove_rspace" lspace="1em" rspace="1em">X</mo><mn>2</mn>
|
||||
</math>
|
||||
</p>
|
||||
<script src="/mathml/support/feature-detection.js"></script>
|
||||
<script>MathMLFeatureDetection.ensure_for_match_reftest("has_operator_spacing");</script>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,153 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Dynamic stretch properties</title>
|
||||
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
|
||||
<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dictionary-based-attributes">
|
||||
<meta name="assert" content="Verify stretchy, symmetric, largeop, minsize and maxsize are updated dynamically.">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<style>
|
||||
math {
|
||||
font: 25px/1 Ahem;
|
||||
}
|
||||
@font-face {
|
||||
font-family: operators;
|
||||
src: url("/fonts/math/operators.woff");
|
||||
}
|
||||
mo {
|
||||
font-family: operators;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
setup({ explicit_done: true });
|
||||
window.addEventListener("load", () => { document.fonts.ready.then(runTests); });
|
||||
|
||||
function runTests() {
|
||||
|
||||
var epsilon = 1;
|
||||
var emToPx = 25;
|
||||
var element;
|
||||
|
||||
test(function() {
|
||||
element = document.getElementById("minsize_attach");
|
||||
element.setAttribute("minsize", "4em");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 4 * emToPx, epsilon, "attach");
|
||||
|
||||
element = document.getElementById("minsize_modify");
|
||||
element.setAttribute("minsize", "5em");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 5 * emToPx, epsilon, "modify");
|
||||
|
||||
element = document.getElementById("minsize_remove");
|
||||
element.removeAttribute("minsize");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 1 * emToPx, epsilon, "remove");
|
||||
}, `minsize`);
|
||||
|
||||
test(function() {
|
||||
element = document.getElementById("maxsize_attach");
|
||||
element.setAttribute("maxsize", "4em");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 4 * emToPx, epsilon, "attach");
|
||||
|
||||
element = document.getElementById("maxsize_modify");
|
||||
element.setAttribute("maxsize", "5em");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 5 * emToPx, epsilon, "modify");
|
||||
|
||||
element = document.getElementById("maxsize_remove");
|
||||
element.removeAttribute("maxsize");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 6 * emToPx, epsilon, "remove");
|
||||
}, `maxsize`);
|
||||
|
||||
test(function() {
|
||||
element = document.getElementById("largeop_set_true");
|
||||
element.setAttribute("largeop", "true");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 2 * emToPx, epsilon, "set true");
|
||||
|
||||
element = document.getElementById("largeop_set_false");
|
||||
element.setAttribute("largeop", "false");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 1 * emToPx, epsilon, "set false");
|
||||
}, `largeop`);
|
||||
|
||||
test(function() {
|
||||
element = document.getElementById("symmetric_set_true");
|
||||
element.setAttribute("symmetric", "true");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 6 * emToPx, epsilon, "set true");
|
||||
|
||||
element = document.getElementById("symmetric_set_false");
|
||||
element.setAttribute("symmetric", "false");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 3 * emToPx, epsilon, "set false");
|
||||
}, `symmetric`);
|
||||
|
||||
test(function() {
|
||||
element = document.getElementById("stretchy_set_true");
|
||||
element.setAttribute("stretchy", "true");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 3 * emToPx, epsilon, "set true");
|
||||
|
||||
element = document.getElementById("stretchy_set_false");
|
||||
element.setAttribute("stretchy", "false");
|
||||
assert_approx_equals(element.getBoundingClientRect().height, 1 * emToPx, epsilon, "set false");
|
||||
}, `stretchy`);
|
||||
|
||||
done();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<p>
|
||||
<math>
|
||||
<mrow>
|
||||
<mspace width="1em" height="1em" style="background: blue"/>
|
||||
<mo id="minsize_attach" stretchy="true" symmetric="false">⥯</mo>
|
||||
<mo id="minsize_modify" minsize="3em" stretchy="true" symmetric="false">⥯</mo>
|
||||
<mo id="minsize_remove" minsize="2em" stretchy="true" symmetric="false">⥯</mo>
|
||||
<mn><!-- not space like --></mn>
|
||||
</mrow>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mrow>
|
||||
<mspace width="1em" height="6em" style="background: blue"/>
|
||||
<mo id="maxsize_attach" stretchy="true" symmetric="false">⥯</mo>
|
||||
<mo id="maxsize_modify" maxsize="3em" stretchy="true" symmetric="false">⥯</mo>
|
||||
<mo id="maxsize_remove" maxsize="2em" stretchy="true" symmetric="false">⥯</mo>
|
||||
<mn><!-- not space like --></mn>
|
||||
</mrow>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math displaystyle="true">
|
||||
<mspace width="1em" height="1em" style="background: blue"/>
|
||||
<mrow>
|
||||
<mo id="largeop_set_true" largeop="false" stretchy="false">⥯</mo>
|
||||
<mn><!-- not space like --></mn>
|
||||
</mrow>
|
||||
<mrow>
|
||||
<mo id="largeop_set_false" largeop="true" stretchy="false">⥯</mo>
|
||||
<mn><!-- not space like --></mn>
|
||||
</mrow>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mrow>
|
||||
<mspace width="1em" height="3em" style="background: blue"/>
|
||||
<mo id="symmetric_set_true" symmetric="false" stretchy="true">⥯</mo>
|
||||
<mo id="symmetric_set_false" symmetric="true" stretchy="true">⥯</mo>
|
||||
<mn><!-- not space like --></mn>
|
||||
</mrow>
|
||||
</math>
|
||||
</p>
|
||||
<p>
|
||||
<math>
|
||||
<mrow>
|
||||
<mspace width="1em" height="3em" style="background: blue"/>
|
||||
<mo id="stretchy_set_true" symmetric="false" stretchy="false">⥯</mo>
|
||||
<mo id="stretchy_set_false" symmetric="false" stretchy="true">⥯</mo>
|
||||
<mn><!-- not space like --></mn>
|
||||
</mrow>
|
||||
</math>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>visibility</title>
|
||||
|
@ -16,6 +16,19 @@
|
|||
<math><mo style="visibility: hidden">3</mo></math>
|
||||
<math><mtext style="visibility: hidden">4</mtext></math>
|
||||
<math><ms style="visibility: hidden">5</ms></math>
|
||||
<div id="dynamic">
|
||||
<math><mi>1</mi></math>
|
||||
<math><mn>2</mn></math>
|
||||
<math><mo>3</mo></math>
|
||||
<math><mtext>4</mtext></math>
|
||||
<math><ms>5</ms></math>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.addEventListener("load", () => {
|
||||
document.getElementById("dynamic").style.visibility = "hidden";
|
||||
document.documentElement.classList.remove("reftest-wait");
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>visibility</title>
|
||||
|
@ -13,8 +13,17 @@
|
|||
<p>Test passes if you see a green square.</p>
|
||||
<div style="background: green; color: red; width: 200px; height: 200px;">
|
||||
<math><mfrac style="visibility: hidden"><mn>1</mn><mn>2</mn></mfrac></math>
|
||||
<div id="dynamic">
|
||||
<math><mfrac><mn>1</mn><mn>2</mn></mfrac></math>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/mathml/support/feature-detection.js"></script>
|
||||
<script>
|
||||
window.addEventListener("load", () => {
|
||||
document.getElementById("dynamic").style.visibility = "hidden";
|
||||
document.documentElement.classList.remove("reftest-wait");
|
||||
});
|
||||
</script>
|
||||
<script>MathMLFeatureDetection.ensure_for_match_reftest("has_mfrac");</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>visibility</title>
|
||||
|
@ -14,8 +14,18 @@
|
|||
<div style="background: green; color: red; width: 200px; height: 200px;">
|
||||
<math><msqrt style="visibility: hidden"><mn>1</mn></msqrt></math>
|
||||
<math><mroot style="visibility: hidden"><mn>2</mn><mn>3</mn></mroot></math>
|
||||
<div id="dynamic">
|
||||
<math><msqrt><mn>1</mn></msqrt></math>
|
||||
<math><mroot><mn>2</mn><mn>3</mn></mroot></math>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/mathml/support/feature-detection.js"></script>
|
||||
<script>
|
||||
window.addEventListener("load", () => {
|
||||
document.getElementById("dynamic").style.visibility = "hidden";
|
||||
document.documentElement.classList.remove("reftest-wait");
|
||||
});
|
||||
</script>
|
||||
<script>MathMLFeatureDetection.ensure_for_match_reftest("has_msqrt");</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html class="reftest-wait">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>visibility</title>
|
||||
|
@ -26,7 +26,29 @@
|
|||
<math><menclose notation="downdiagonalstrike" style="visibility: hidden"><mn>12</mn></menclose></math>
|
||||
<math><menclose notation="longdiv" style="visibility: hidden"><mn>13</mn></menclose></math>
|
||||
<math><menclose notation="circle" style="visibility: hidden"><mn>14</mn></menclose></math>
|
||||
<div id="dynamic">
|
||||
<math><menclose notation="left"><mn>1</mn></menclose></math>
|
||||
<math><menclose notation="right"><mn>2</mn></menclose></math>
|
||||
<math><menclose notation="top"><mn>3</mn></menclose></math>
|
||||
<math><menclose notation="bottom"><mn>4</mn></menclose></math>
|
||||
<math><menclose notation="box"><mn>5</mn></menclose></math>
|
||||
<math><menclose notation="roundedbox"><mn>6</mn></menclose></math>
|
||||
<math><menclose notation="actuarial"><mn>7</mn></menclose></math>
|
||||
<math><menclose notation="madruwb"><mn>8</mn></menclose></math>
|
||||
<math><menclose notation="horizontalstrike"><mn>9</mn></menclose></math>
|
||||
<math><menclose notation="verticalstrike"><mn>10</mn></menclose></math>
|
||||
<math><menclose notation="updiagonalstrike"><mn>11</mn></menclose></math>
|
||||
<math><menclose notation="downdiagonalstrike"><mn>12</mn></menclose></math>
|
||||
<math><menclose notation="longdiv"><mn>13</mn></menclose></math>
|
||||
<math><menclose notation="circle"><mn>14</mn></menclose></math>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
window.addEventListener("load", () => {
|
||||
document.getElementById("dynamic").style.visibility = "hidden";
|
||||
document.documentElement.classList.remove("reftest-wait");
|
||||
});
|
||||
</script>
|
||||
<script src="/mathml/support/feature-detection.js"></script>
|
||||
<script>MathMLFeatureDetection.ensure_for_match_reftest("has_menclose");</script>
|
||||
</body>
|
||||
|
|
|
@ -17,7 +17,7 @@ async function createFile(testCase, fileName) {
|
|||
const writtenBytes = new Uint8Array(writeSharedArrayBuffer);
|
||||
writtenBytes.set([64, 65, 66, 67]);
|
||||
const writeCount = await file.write(writtenBytes, 0);
|
||||
assert_precondition(writeCount == 4);
|
||||
assert_equals(writeCount, 4);
|
||||
|
||||
return file;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ function createFileSync(testCase, fileName) {
|
|||
|
||||
const writtenBytes = Uint8Array.from([64, 65, 66, 67]);
|
||||
const writeCount = file.write(writtenBytes, 0);
|
||||
assert_precondition(writeCount == 4);
|
||||
assert_equals(writeCount, 4);
|
||||
|
||||
return file;
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ async function createFile(testCase, fileName) {
|
|||
const writtenBytes = new Uint8Array(writeSharedArrayBuffer);
|
||||
writtenBytes.set([64, 65, 66, 67]);
|
||||
const writeCount = await file.write(writtenBytes, 0);
|
||||
assert_precondition(writeCount == 4);
|
||||
assert_equals(writeCount, 4);
|
||||
|
||||
return file;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
spec: https://w3c.github.io/wake-lock/
|
||||
spec: https://w3c.github.io/screen-wake-lock/
|
||||
suggested_reviewers:
|
||||
- Honry
|
||||
- marcoscaceres
|
|
@ -8,8 +8,8 @@
|
|||
'use strict';
|
||||
|
||||
idl_test(
|
||||
['wake-lock'],
|
||||
['dom', 'html', 'permissions'],
|
||||
['screen-wake-lock'],
|
||||
['dom', 'html'],
|
||||
async idl_array => {
|
||||
idl_array.add_objects({ Navigator: ['navigator'] });
|
||||
|
|
@ -18,14 +18,14 @@ promise_test(async t => {
|
|||
// We first got to page1.html, grab a WakeLock object.
|
||||
const wakeLock1 = await getWakeLockObject(
|
||||
iframe,
|
||||
"/wake-lock/resources/page1.html"
|
||||
"/screen-wake-lock/resources/page1.html"
|
||||
);
|
||||
// Save the DOMException of page1.html before navigating away.
|
||||
const frameDOMException1 = iframe.contentWindow.DOMException;
|
||||
// We navigate the iframe again, putting wakeLock1's document into an inactive state.
|
||||
const wakeLock2 = await getWakeLockObject(
|
||||
iframe,
|
||||
"/wake-lock/resources/page2.html"
|
||||
"/screen-wake-lock/resources/page2.html"
|
||||
);
|
||||
// Now, wakeLock1's relevant global object's document is no longer active.
|
||||
// So, call .request(), and make sure it rejects appropriately.
|
||||
|
@ -47,7 +47,7 @@ promise_test(async t => {
|
|||
// Load the outer iframe (we don't care about the awaited request)
|
||||
await getWakeLockObject(
|
||||
outerIframe,
|
||||
"/wake-lock/resources/page1.html"
|
||||
"/screen-wake-lock/resources/page1.html"
|
||||
);
|
||||
|
||||
// Now we create the inner iframe
|
||||
|
@ -59,7 +59,7 @@ promise_test(async t => {
|
|||
// load innerIframe, and get the WakeLock instance
|
||||
const wakeLock = await getWakeLockObject(
|
||||
innerIframe,
|
||||
"/wake-lock/resources/page2.html"
|
||||
"/screen-wake-lock/resources/page2.html"
|
||||
);
|
||||
// Save DOMException from innerIframe before navigating away.
|
||||
const innerIframeDOMException = innerIframe.contentWindow.DOMException;
|
||||
|
@ -68,7 +68,7 @@ promise_test(async t => {
|
|||
// Wait for the load event to fire.
|
||||
await new Promise(resolve => {
|
||||
outerIframe.addEventListener("load", resolve);
|
||||
outerIframe.src = "/wake-lock/resources/page2.html";
|
||||
outerIframe.src = "/screen-wake-lock/resources/page2.html";
|
||||
});
|
||||
|
||||
// Now, request's relevant global object's document is still active
|
|
@ -2,7 +2,7 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="timeout" content="long">
|
||||
<title>Screen wake locks respect page visibility changes</title>
|
||||
<link rel="help" href="https://w3c.github.io/wake-lock/#dfn-requesting-the-wake-lock">
|
||||
<link rel="help" href="https://w3c.github.io/screen-wake-lock/#handling-document-loss-of-visibility">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script>
|
|
@ -1,5 +1,5 @@
|
|||
<!DOCTYPE html>
|
||||
<link rel="help" href="https://w3c.github.io/wake-lock/#the-wakelockpermissiondescriptor-dictionary">
|
||||
<link rel="help" href="https://w3c.github.io/screen-wake-lock/#the-screen-wake-lock-powerful-feature">
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="/resources/testdriver.js"></script>
|
||||
|
@ -13,13 +13,4 @@ promise_test(async t => {
|
|||
assert_equals(status.state, "denied");
|
||||
});
|
||||
}, "PermissionDescriptor with name='screen-wake-lock' works");
|
||||
|
||||
promise_test(async t => {
|
||||
await test_driver.set_permission({name: 'system-wake-lock'}, 'denied', false);
|
||||
|
||||
return navigator.permissions.query({ name: 'system-wake-lock' }).then(status => {
|
||||
assert_class_string(status, "PermissionStatus");
|
||||
assert_equals(status.state, "denied");
|
||||
});
|
||||
}, "PermissionDescriptor with name='system-wake-lock' works");
|
||||
</script>
|
|
@ -1,13 +0,0 @@
|
|||
// META: script=/resources/testdriver.js
|
||||
// META: script=/resources/testdriver-vendor.js
|
||||
|
||||
// https://w3c.github.io/wake-lock/
|
||||
|
||||
'use strict';
|
||||
|
||||
promise_test(async t => {
|
||||
await test_driver.set_permission(
|
||||
{ name: 'system-wake-lock' }, 'granted', false);
|
||||
|
||||
await fetch_tests_from_worker(new Worker('resources/idlharness-worker.js'));
|
||||
}, 'Run idlharness tests in a worker.');
|
|
@ -1,24 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
// https://w3c.github.io/wake-lock/
|
||||
|
||||
importScripts("/resources/testharness.js");
|
||||
importScripts("/resources/WebIDLParser.js", "/resources/idlharness.js");
|
||||
|
||||
idl_test(
|
||||
['wake-lock'],
|
||||
['dom', 'html', 'permissions'],
|
||||
async idl_array => {
|
||||
idl_array.add_objects({ WorkerNavigator: ['navigator'] });
|
||||
|
||||
idl_array.add_objects({
|
||||
WakeLock: ['navigator.wakeLock'],
|
||||
WakeLockSentinel: ['sentinel'],
|
||||
});
|
||||
|
||||
self.sentinel = await navigator.wakeLock.request('system');
|
||||
self.sentinel.release();
|
||||
}
|
||||
);
|
||||
|
||||
done();
|
Loading…
Add table
Add a link
Reference in a new issue