Update web-platform-tests to revision 9b5bdedc2ad7797a6b99895157aeaa2b3a2d61e6

This commit is contained in:
WPT Sync Bot 2020-04-20 08:19:06 +00:00
parent 99cd30eaad
commit 10112eddce
92 changed files with 1518 additions and 445 deletions

View file

@ -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

View file

@ -0,0 +1,4 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

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

View file

@ -0,0 +1,4 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -2,6 +2,3 @@
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,4 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

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

View file

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

View file

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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

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

View file

@ -0,0 +1,4 @@
[WorkerGlobalScope-close.html]
[Test sending a message after closing.]
expected: FAIL

View file

@ -1,5 +1,4 @@
[005.html]
expected: ERROR
[dedicated worker in shared worker in dedicated worker]
expected: FAIL

View file

@ -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

View file

@ -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",

View file

@ -0,0 +1,4 @@
[hit-test-floats-002.html]
[Hit test float]
expected: FAIL

View file

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

View file

@ -0,0 +1,4 @@
[elementFromPoint-001.html]
[CSSOM View - 5 - extensions to the Document interface]
expected: FAIL

View file

@ -2,6 +2,3 @@
[elementsFromPoint on the root document for points in iframe elements]
expected: FAIL
[elementsFromPoint on inner documents]
expected: FAIL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -0,0 +1,4 @@
[traverse_the_history_1.html]
[Multiple history traversals from the same task]
expected: FAIL

View file

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

View file

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

View file

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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

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

View file

@ -0,0 +1,4 @@
[WorkerGlobalScope-close.html]
[Test sending a message after closing.]
expected: FAIL

View file

@ -1,5 +1,4 @@
[005.html]
expected: ERROR
[dedicated worker in shared worker in dedicated worker]
expected: FAIL

View file

@ -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;

View file

@ -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;

View file

@ -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>

View file

@ -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>

View file

@ -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>&nbsp;</a><rt>b</rt></ruby>c</div>

View file

@ -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>&nbsp;</a><rt>b</rt></ruby>c</div>

View file

@ -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>&nbsp;</a></rtc><rt>c</rt></ruby>d</div>

View file

@ -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>&nbsp;</a></rtc><rt>c</rt></ruby>d</div>

View file

@ -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>

View file

@ -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>

View file

@ -0,0 +1,7 @@
div.body {
min-width: auto;
}
#video-introduction-transcript iframe {
max-width: 100%;
}

View file

@ -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>

View file

@ -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>$

View file

@ -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 {

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>&lt;mo&gt; 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>

View file

@ -0,0 +1,66 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>&lt;mo&gt; 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>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>&lt;mo&gt; 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>

View file

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html class="reftest-wait">
<head>
<meta charset="utf-8">
<title>&lt;mo&gt; 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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View 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;
}

View 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;
}

View 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;
}

View file

@ -1,4 +1,4 @@
spec: https://w3c.github.io/wake-lock/
spec: https://w3c.github.io/screen-wake-lock/
suggested_reviewers:
- Honry
- marcoscaceres

View file

@ -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'] });

View file

@ -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

View file

@ -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>

View file

@ -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>

View file

@ -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.');

View file

@ -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();