mirror of
https://github.com/servo/servo.git
synced 2025-06-26 18:14:34 +01:00
Update web-platform-tests to revision f1e1bd6bfa544af8059ff8ef79d622281f9ec0a8
This commit is contained in:
parent
1b6715158d
commit
38ab56be1a
64 changed files with 5155 additions and 165 deletions
|
@ -7,7 +7,7 @@
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Opening a blob URL in a new window immediately before revoking it works.]
|
[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.]
|
[Opening a blob URL in a noopener about:blank window immediately before revoking it works.]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
|
@ -14,9 +14,6 @@
|
||||||
[Revoke blob URL after creating Request, will fetch]
|
[Revoke blob URL after creating Request, will fetch]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[Revoke blob URL after calling fetch, fetch should succeed]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
|
|
||||||
[url-with-fetch.any.html]
|
[url-with-fetch.any.html]
|
||||||
[Untitled]
|
[Untitled]
|
||||||
|
|
|
@ -14251,6 +14251,18 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"payment-handler/change-shipping-address-manual.https.html": [
|
||||||
|
[
|
||||||
|
"payment-handler/change-shipping-address-manual.https.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"payment-handler/change-shipping-option-manual.https.html": [
|
||||||
|
[
|
||||||
|
"payment-handler/change-shipping-option-manual.https.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"payment-handler/payment-request-event-manual.https.html": [
|
"payment-handler/payment-request-event-manual.https.html": [
|
||||||
[
|
[
|
||||||
"payment-handler/payment-request-event-manual.https.html",
|
"payment-handler/payment-request-event-manual.https.html",
|
||||||
|
@ -127921,6 +127933,90 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-001.html": [
|
||||||
|
[
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-001.html",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-grid/subgrid/repeat-auto-fill-001-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-002.html": [
|
||||||
|
[
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-002.html",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-grid/subgrid/repeat-auto-fill-001-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-003.html": [
|
||||||
|
[
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-003.html",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-grid/subgrid/repeat-auto-fill-001-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-004.html": [
|
||||||
|
[
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-004.html",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-grid/subgrid/repeat-auto-fill-004-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-005.html": [
|
||||||
|
[
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-005.html",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-grid/subgrid/repeat-auto-fill-005-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-006.html": [
|
||||||
|
[
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-006.html",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-grid/subgrid/repeat-auto-fill-005-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-007.html": [
|
||||||
|
[
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-007.html",
|
||||||
|
[
|
||||||
|
[
|
||||||
|
"/css/css-grid/subgrid/repeat-auto-fill-007-ref.html",
|
||||||
|
"=="
|
||||||
|
]
|
||||||
|
],
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-grid/subgrid/subgrid-item-block-size-001.html": [
|
"css/css-grid/subgrid/subgrid-item-block-size-001.html": [
|
||||||
[
|
[
|
||||||
"css/css-grid/subgrid/subgrid-item-block-size-001.html",
|
"css/css-grid/subgrid/subgrid-item-block-size-001.html",
|
||||||
|
@ -250290,6 +250386,18 @@
|
||||||
"css/css-grid/subgrid/orthogonal-writing-mode-004-ref.html": [
|
"css/css-grid/subgrid/orthogonal-writing-mode-004-ref.html": [
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-001-ref.html": [
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-004-ref.html": [
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-005-ref.html": [
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-007-ref.html": [
|
||||||
|
[]
|
||||||
|
],
|
||||||
"css/css-grid/subgrid/subgrid-item-block-size-001-ref.html": [
|
"css/css-grid/subgrid/subgrid-item-block-size-001-ref.html": [
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
@ -273882,6 +273990,9 @@
|
||||||
"interfaces/webrtc-dscp.idl": [
|
"interfaces/webrtc-dscp.idl": [
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"interfaces/webrtc-identity.idl": [
|
||||||
|
[]
|
||||||
|
],
|
||||||
"interfaces/webrtc-stats.idl": [
|
"interfaces/webrtc-stats.idl": [
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
@ -275679,6 +275790,12 @@
|
||||||
"payment-handler/app-change-payment-method.js": [
|
"payment-handler/app-change-payment-method.js": [
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
"payment-handler/app-change-shipping-address.js": [
|
||||||
|
[]
|
||||||
|
],
|
||||||
|
"payment-handler/app-change-shipping-option.js": [
|
||||||
|
[]
|
||||||
|
],
|
||||||
"payment-handler/app-supports-shipping-contact-delegation.js": [
|
"payment-handler/app-supports-shipping-contact-delegation.js": [
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
@ -308474,6 +308591,144 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"compression/decompression-empty-input.any.js": [
|
||||||
|
[
|
||||||
|
"compression/decompression-empty-input.any.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"compression/decompression-empty-input.any.serviceworker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"compression/decompression-empty-input.any.sharedworker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"compression/decompression-empty-input.any.worker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"compression/decompression-split-chunk.any.js": [
|
||||||
|
[
|
||||||
|
"compression/decompression-split-chunk.any.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"compression/decompression-split-chunk.any.serviceworker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"compression/decompression-split-chunk.any.sharedworker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"compression/decompression-split-chunk.any.worker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"compression/decompression-uint8array-output.any.js": [
|
||||||
|
[
|
||||||
|
"compression/decompression-uint8array-output.any.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"compression/decompression-uint8array-output.any.serviceworker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"compression/decompression-uint8array-output.any.sharedworker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"compression/decompression-uint8array-output.any.worker.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"global",
|
||||||
|
"worker"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"console/console-is-a-namespace.any.js": [
|
"console/console-is-a-namespace.any.js": [
|
||||||
[
|
[
|
||||||
"console/console-is-a-namespace.any.html",
|
"console/console-is-a-namespace.any.html",
|
||||||
|
@ -311807,6 +312062,18 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"cookies/samesite/about-blank-subresource.https.html": [
|
||||||
|
[
|
||||||
|
"cookies/samesite/about-blank-subresource.https.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"cookies/samesite/about-blank-toplevel.https.html": [
|
||||||
|
[
|
||||||
|
"cookies/samesite/about-blank-toplevel.https.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"cookies/samesite/fetch.https.html": [
|
"cookies/samesite/fetch.https.html": [
|
||||||
[
|
[
|
||||||
"cookies/samesite/fetch.https.html",
|
"cookies/samesite/fetch.https.html",
|
||||||
|
@ -314110,6 +314377,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-box/animation/margin-interpolation.html": [
|
||||||
|
[
|
||||||
|
"css/css-box/animation/margin-interpolation.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-box/animation/padding-interpolation.html": [
|
"css/css-box/animation/padding-interpolation.html": [
|
||||||
[
|
[
|
||||||
"css/css-box/animation/padding-interpolation.html",
|
"css/css-box/animation/padding-interpolation.html",
|
||||||
|
@ -314524,6 +314797,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-color/animation/opacity-interpolation.html": [
|
||||||
|
[
|
||||||
|
"css/css-color/animation/opacity-interpolation.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-color/color-function-parsing.html": [
|
"css/css-color/color-function-parsing.html": [
|
||||||
[
|
[
|
||||||
"css/css-color/color-function-parsing.html",
|
"css/css-color/color-function-parsing.html",
|
||||||
|
@ -314886,6 +315165,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-flexbox/animation/order-interpolation.html": [
|
||||||
|
[
|
||||||
|
"css/css-flexbox/animation/order-interpolation.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-flexbox/display_flex_exist.html": [
|
"css/css-flexbox/display_flex_exist.html": [
|
||||||
[
|
[
|
||||||
"css/css-flexbox/display_flex_exist.html",
|
"css/css-flexbox/display_flex_exist.html",
|
||||||
|
@ -319144,6 +319429,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-masking/animations/clip-path-interpolation.html": [
|
||||||
|
[
|
||||||
|
"css/css-masking/animations/clip-path-interpolation.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-masking/clip-path/interpolation.html": [
|
"css/css-masking/clip-path/interpolation.html": [
|
||||||
[
|
[
|
||||||
"css/css-masking/clip-path/interpolation.html",
|
"css/css-masking/clip-path/interpolation.html",
|
||||||
|
@ -319552,6 +319843,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-overflow/overflow-codependent-scrollbars.html": [
|
||||||
|
[
|
||||||
|
"css/css-overflow/overflow-codependent-scrollbars.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-overflow/overflow-inline-transform-relative.html": [
|
"css/css-overflow/overflow-inline-transform-relative.html": [
|
||||||
[
|
[
|
||||||
"css/css-overflow/overflow-inline-transform-relative.html",
|
"css/css-overflow/overflow-inline-transform-relative.html",
|
||||||
|
@ -322300,6 +322597,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"css/css-tables/animations/border-spacing-interpolation.html": [
|
||||||
|
[
|
||||||
|
"css/css-tables/animations/border-spacing-interpolation.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"css/css-tables/border-spacing-included-in-sizes-001.html": [
|
"css/css-tables/border-spacing-included-in-sizes-001.html": [
|
||||||
[
|
[
|
||||||
"css/css-tables/border-spacing-included-in-sizes-001.html",
|
"css/css-tables/border-spacing-included-in-sizes-001.html",
|
||||||
|
@ -414413,6 +414716,23 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"webrtc-identity/idlharness.https.window.js": [
|
||||||
|
[
|
||||||
|
"webrtc-identity/idlharness.https.window.html",
|
||||||
|
{
|
||||||
|
"script_metadata": [
|
||||||
|
[
|
||||||
|
"script",
|
||||||
|
"/resources/WebIDLParser.js"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"script",
|
||||||
|
"/resources/idlharness.js"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
],
|
||||||
"webrtc-quic/RTCQuicStream.https.html": [
|
"webrtc-quic/RTCQuicStream.https.html": [
|
||||||
[
|
[
|
||||||
"webrtc-quic/RTCQuicStream.https.html",
|
"webrtc-quic/RTCQuicStream.https.html",
|
||||||
|
@ -420374,6 +420694,12 @@
|
||||||
{}
|
{}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
|
"webxr/xrReferenceSpace_originOffset_viewer.https.html": [
|
||||||
|
[
|
||||||
|
"webxr/xrReferenceSpace_originOffset_viewer.https.html",
|
||||||
|
{}
|
||||||
|
]
|
||||||
|
],
|
||||||
"webxr/xrRigidTransform_constructor.https.html": [
|
"webxr/xrRigidTransform_constructor.https.html": [
|
||||||
[
|
[
|
||||||
"webxr/xrRigidTransform_constructor.https.html",
|
"webxr/xrRigidTransform_constructor.https.html",
|
||||||
|
@ -446181,7 +446507,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
".taskcluster.yml": [
|
".taskcluster.yml": [
|
||||||
"dffccbb7971382d599ff622fb31a949fa570fa49",
|
"b23cc93e633021686192b5cc1acbb7d8b6b3fe96",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
".well-known/README.md": [
|
".well-known/README.md": [
|
||||||
|
@ -458201,7 +458527,7 @@
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
"compression/decompression-bad-chunks.any.js": [
|
"compression/decompression-bad-chunks.any.js": [
|
||||||
"8f44ffd902f0838cecf72be50245ab4c683fc09c",
|
"b8954905cbfce79893152e32200cc16e6c3f815b",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"compression/decompression-constructor-error.any.js": [
|
"compression/decompression-constructor-error.any.js": [
|
||||||
|
@ -458212,6 +458538,18 @@
|
||||||
"11d8736cb225d6ce575677dcdb70b0a19dd4f65f",
|
"11d8736cb225d6ce575677dcdb70b0a19dd4f65f",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"compression/decompression-empty-input.any.js": [
|
||||||
|
"ff4cff522a4a7ba0ba3eedb79c4d39b0752c9caf",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"compression/decompression-split-chunk.any.js": [
|
||||||
|
"a54541657af089e884fe995383796c5a637545d3",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"compression/decompression-uint8array-output.any.js": [
|
||||||
|
"06c421a82071651429e831daaa20e945e8011efb",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"conformance-checkers/META.yml": [
|
"conformance-checkers/META.yml": [
|
||||||
"978b5c85721c28f267ec21ceb620017514441385",
|
"978b5c85721c28f267ec21ceb620017514441385",
|
||||||
"support"
|
"support"
|
||||||
|
@ -480868,6 +481206,14 @@
|
||||||
"d5c9b8ada3f1bce6ebfe35efd0d6f288aa5ca5e3",
|
"d5c9b8ada3f1bce6ebfe35efd0d6f288aa5ca5e3",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"cookies/samesite/about-blank-subresource.https.html": [
|
||||||
|
"0a19f30d34758e0b9865b2300e5658ec6efbfe0c",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
|
"cookies/samesite/about-blank-toplevel.https.html": [
|
||||||
|
"3a4dde7673d13dec2daf7f83b3082a5589e2e688",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"cookies/samesite/fetch.https.html": [
|
"cookies/samesite/fetch.https.html": [
|
||||||
"4daf357004a71cea5b0e58a44bf8919d96ad7ce8",
|
"4daf357004a71cea5b0e58a44bf8919d96ad7ce8",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -480909,7 +481255,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"cookies/samesite/resources/iframe-subresource-report.html": [
|
"cookies/samesite/resources/iframe-subresource-report.html": [
|
||||||
"fad80534f22bdc63e7a4827cef07b17335134b71",
|
"1dceb4e43681c81b6c1b8877fd2d9f2b34391a02",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"cookies/samesite/resources/navigate.html": [
|
"cookies/samesite/resources/navigate.html": [
|
||||||
|
@ -546112,6 +546458,10 @@
|
||||||
"dde409360faf79a301c3ae3ea34a995d154d7bb4",
|
"dde409360faf79a301c3ae3ea34a995d154d7bb4",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"css/css-box/animation/margin-interpolation.html": [
|
||||||
|
"088836cbbd18d0daf203de7dbacfb65733e35813",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-box/animation/padding-interpolation.html": [
|
"css/css-box/animation/padding-interpolation.html": [
|
||||||
"3bf284117960fe78300e95140244d309f8f439a4",
|
"3bf284117960fe78300e95140244d309f8f439a4",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -546520,6 +546870,10 @@
|
||||||
"4b39fdcf796083ace917f0a021a697c6e4eb7214",
|
"4b39fdcf796083ace917f0a021a697c6e4eb7214",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"css/css-color/animation/opacity-interpolation.html": [
|
||||||
|
"ce26a8c79939e1d35f5ea35686fc272aad765914",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-color/blacktext-ref.html": [
|
"css/css-color/blacktext-ref.html": [
|
||||||
"ddfa9100cbef6094375df8b40eeb9673e690d4f7",
|
"ddfa9100cbef6094375df8b40eeb9673e690d4f7",
|
||||||
"support"
|
"support"
|
||||||
|
@ -551276,6 +551630,10 @@
|
||||||
"da69a06891ee2d16f91db5d839e14aa2d876b604",
|
"da69a06891ee2d16f91db5d839e14aa2d876b604",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"css/css-flexbox/animation/order-interpolation.html": [
|
||||||
|
"8096fc3db661078029f991a45f789f439108849c",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-flexbox/anonymous-flex-item-001.html": [
|
"css/css-flexbox/anonymous-flex-item-001.html": [
|
||||||
"3e749d43f76981a5cc0b372c7ba0c364c350b6b2",
|
"3e749d43f76981a5cc0b372c7ba0c364c350b6b2",
|
||||||
"reftest"
|
"reftest"
|
||||||
|
@ -565808,6 +566166,50 @@
|
||||||
"4a0edd7e6d5aefe06fc0d9989c84d3871ea61a14",
|
"4a0edd7e6d5aefe06fc0d9989c84d3871ea61a14",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-001-ref.html": [
|
||||||
|
"bbf5d374589b29c9c0dcb04b941160a94130b3a1",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-001.html": [
|
||||||
|
"643cde377e66416dbc4047124d1157b0679eb8f5",
|
||||||
|
"reftest"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-002.html": [
|
||||||
|
"38d0bea0d08e6e1b1691a595ac9a1c2dfea59adb",
|
||||||
|
"reftest"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-003.html": [
|
||||||
|
"b58799bd86bd1ad1f7875a6c9da7e8247136e6f8",
|
||||||
|
"reftest"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-004-ref.html": [
|
||||||
|
"07ba960200b1fe9ba69448da8e5e9ff1ebf547fd",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-004.html": [
|
||||||
|
"beacff588a2c6209ee89b8715eccd374b1847ba8",
|
||||||
|
"reftest"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-005-ref.html": [
|
||||||
|
"95976e8216d8be0cb14e57fa4d9d06600c82c98f",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-005.html": [
|
||||||
|
"0cf16d47a27e1105d12ef595e8864d46793e2790",
|
||||||
|
"reftest"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-006.html": [
|
||||||
|
"4a16d8e4a9b9c476fce6b8e2bb653dcb59431029",
|
||||||
|
"reftest"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-007-ref.html": [
|
||||||
|
"9bc2eeff1c7dd57873058439c9072eaa16f9d441",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
|
"css/css-grid/subgrid/repeat-auto-fill-007.html": [
|
||||||
|
"949d8296fef40637101cb8bdb24f18710e4e3854",
|
||||||
|
"reftest"
|
||||||
|
],
|
||||||
"css/css-grid/subgrid/subgrid-item-block-size-001-ref.html": [
|
"css/css-grid/subgrid/subgrid-item-block-size-001-ref.html": [
|
||||||
"d264a3455a6c580976d2519ab4e0eb206b1164bf",
|
"d264a3455a6c580976d2519ab4e0eb206b1164bf",
|
||||||
"support"
|
"support"
|
||||||
|
@ -567640,6 +568042,10 @@
|
||||||
"7f92755b092845d3d550568e0572453801451f3d",
|
"7f92755b092845d3d550568e0572453801451f3d",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"css/css-masking/animations/clip-path-interpolation.html": [
|
||||||
|
"21c34f1f2b75ec7345a97b00db62a49b038cf026",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-masking/clip-path-svg-content/clip-path-clip-nested-twice.svg": [
|
"css/css-masking/clip-path-svg-content/clip-path-clip-nested-twice.svg": [
|
||||||
"269e8feed2d3c21774a7c94729c3551899ce4d92",
|
"269e8feed2d3c21774a7c94729c3551899ce4d92",
|
||||||
"reftest"
|
"reftest"
|
||||||
|
@ -570712,6 +571118,10 @@
|
||||||
"2ed8d2687a33608e0e70884ad2ea59330d2b09e3",
|
"2ed8d2687a33608e0e70884ad2ea59330d2b09e3",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
|
"css/css-overflow/overflow-codependent-scrollbars.html": [
|
||||||
|
"eb0e4f5ea2ed9a97c0931c2c53de5e62e72ba1dd",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-overflow/overflow-inline-transform-relative.html": [
|
"css/css-overflow/overflow-inline-transform-relative.html": [
|
||||||
"4df7b6389432cc6c65bae3fe3b5b9c2f00ba7bde",
|
"4df7b6389432cc6c65bae3fe3b5b9c2f00ba7bde",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -578424,6 +578834,10 @@
|
||||||
"91439a69c9b1765cdbaf7e9614180d080ab32907",
|
"91439a69c9b1765cdbaf7e9614180d080ab32907",
|
||||||
"reftest"
|
"reftest"
|
||||||
],
|
],
|
||||||
|
"css/css-tables/animations/border-spacing-interpolation.html": [
|
||||||
|
"02e1cc62296501417b7ce8d02136b57e5342f332",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"css/css-tables/anonymous-table-cell-margin-collapsing.html": [
|
"css/css-tables/anonymous-table-cell-margin-collapsing.html": [
|
||||||
"23b467ebacc983122a632f4d5971c8daca569420",
|
"23b467ebacc983122a632f4d5971c8daca569420",
|
||||||
"reftest"
|
"reftest"
|
||||||
|
@ -649657,11 +650071,11 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/css-animation-worklet.idl": [
|
"interfaces/css-animation-worklet.idl": [
|
||||||
"4aca84e5a024efdc2d3e674540bf2091758551c9",
|
"2c46cc7c94c65d6928db9f4e90a57c6188815d8e",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/css-animations.idl": [
|
"interfaces/css-animations.idl": [
|
||||||
"f87015f6a87fccc0accab30920cd8371eee99e63",
|
"9b34bde2330497afe6628da8e01946c27cf89821",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/css-conditional.idl": [
|
"interfaces/css-conditional.idl": [
|
||||||
|
@ -649713,7 +650127,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/css-transitions.idl": [
|
"interfaces/css-transitions.idl": [
|
||||||
"be5a635112b83cb4315006ac5a86ae7edc7fa43c",
|
"15ce4b30f211012b5fd9e6a713d92c0ea1045a54",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/css-typed-om.idl": [
|
"interfaces/css-typed-om.idl": [
|
||||||
|
@ -649745,7 +650159,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/entries-api.idl": [
|
"interfaces/entries-api.idl": [
|
||||||
"548aec13ab70eeedb9ba01ff96e0b3cb1d783510",
|
"52693138a4cd9d86f9a48a8e5300a8006298defb",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/event-timing.idl": [
|
"interfaces/event-timing.idl": [
|
||||||
|
@ -649945,7 +650359,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/presentation-api.idl": [
|
"interfaces/presentation-api.idl": [
|
||||||
"c1e566538aa0211ecebbd8d177765fc1dd02c2ce",
|
"dfaa022b95249eb020e6fb8e0495156a8c0744ee",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/proximity.idl": [
|
"interfaces/proximity.idl": [
|
||||||
|
@ -650009,7 +650423,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/shape-detection-api.idl": [
|
"interfaces/shape-detection-api.idl": [
|
||||||
"0144f04e046720d20f91a98af9d5c651e95b06fd",
|
"51c996959bea2acc1b2d0a3c3be438b0c6182e23",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/speech-api.idl": [
|
"interfaces/speech-api.idl": [
|
||||||
|
@ -650061,11 +650475,11 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/web-animations.idl": [
|
"interfaces/web-animations.idl": [
|
||||||
"89993896508fa04e87ec965211b3152e24975934",
|
"6fd172ce425d570d097fcb573115091c83cc5484",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/web-bluetooth.idl": [
|
"interfaces/web-bluetooth.idl": [
|
||||||
"f515dda1a814ee1121623033684b3020c355f9ec",
|
"ec7a8e71ca09c7648801e6f2bb91c711c857fe34",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/web-nfc.idl": [
|
"interfaces/web-nfc.idl": [
|
||||||
|
@ -650077,7 +650491,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/webaudio.idl": [
|
"interfaces/webaudio.idl": [
|
||||||
"1b6af25b3b363411bfb365b1b3b21639584cfa76",
|
"3869d5d14a66c39e0281bb94a2e41ee5f2e395ba",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/webauthn.idl": [
|
"interfaces/webauthn.idl": [
|
||||||
|
@ -650104,6 +650518,10 @@
|
||||||
"732230b4a339d2484fa5242fdfc77224400796b2",
|
"732230b4a339d2484fa5242fdfc77224400796b2",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"interfaces/webrtc-identity.idl": [
|
||||||
|
"5a59a4887ac7eb0ad39cfd82fee052828d7af316",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
"interfaces/webrtc-stats.idl": [
|
"interfaces/webrtc-stats.idl": [
|
||||||
"c2dc1f7a0b0a482d226b881995414b558fbe2baf",
|
"c2dc1f7a0b0a482d226b881995414b558fbe2baf",
|
||||||
"support"
|
"support"
|
||||||
|
@ -650113,7 +650531,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/webusb.idl": [
|
"interfaces/webusb.idl": [
|
||||||
"fcca851b8b535f4886bd56f30714971cf22c8c40",
|
"ad5c480454d7cd6feb178fa450663b9977eb51cd",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"interfaces/webvtt.idl": [
|
"interfaces/webvtt.idl": [
|
||||||
|
@ -663272,6 +663690,14 @@
|
||||||
"0e5a4768e7626f666077e794e0731c9a1e3e9d35",
|
"0e5a4768e7626f666077e794e0731c9a1e3e9d35",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"payment-handler/app-change-shipping-address.js": [
|
||||||
|
"df39258dc92642b130c6765f6c75d7efb523712f",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
|
"payment-handler/app-change-shipping-option.js": [
|
||||||
|
"ac3307b619ccfb464a5fa44820cea39befdd8f2e",
|
||||||
|
"support"
|
||||||
|
],
|
||||||
"payment-handler/app-supports-shipping-contact-delegation.js": [
|
"payment-handler/app-supports-shipping-contact-delegation.js": [
|
||||||
"770e2de64f13eeef8a1ee21783c2997facc8ff0b",
|
"770e2de64f13eeef8a1ee21783c2997facc8ff0b",
|
||||||
"support"
|
"support"
|
||||||
|
@ -663308,6 +663734,14 @@
|
||||||
"56690d2b26ed671f773a16853463126e57735f77",
|
"56690d2b26ed671f773a16853463126e57735f77",
|
||||||
"manual"
|
"manual"
|
||||||
],
|
],
|
||||||
|
"payment-handler/change-shipping-address-manual.https.html": [
|
||||||
|
"3b98d56a2516ed96c20c4c04533a129c2054c718",
|
||||||
|
"manual"
|
||||||
|
],
|
||||||
|
"payment-handler/change-shipping-option-manual.https.html": [
|
||||||
|
"00d1aee70b991924fde8562dffc5691567d676fb",
|
||||||
|
"manual"
|
||||||
|
],
|
||||||
"payment-handler/idlharness.https.any.js": [
|
"payment-handler/idlharness.https.any.js": [
|
||||||
"878114ec7ed878d3e754341cbffa138092fee129",
|
"878114ec7ed878d3e754341cbffa138092fee129",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
@ -676353,7 +676787,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"resources/chromium/mock-barcodedetection.js": [
|
"resources/chromium/mock-barcodedetection.js": [
|
||||||
"2558bbda58913ec51c36bdce28e0f84a1aea32e7",
|
"703db425590d8a8450f285878abb025a42a15122",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"resources/chromium/mock-barcodedetection.js.headers": [
|
"resources/chromium/mock-barcodedetection.js.headers": [
|
||||||
|
@ -676361,7 +676795,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"resources/chromium/mock-facedetection.js": [
|
"resources/chromium/mock-facedetection.js": [
|
||||||
"1275e4dd2f5e24988e723a728dbf5bb4acc4c6cb",
|
"01306a2a0c7f470f56d746aa68dff3fe3636c575",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"resources/chromium/mock-facedetection.js.headers": [
|
"resources/chromium/mock-facedetection.js.headers": [
|
||||||
|
@ -692097,7 +692531,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wpt/tests/test_wpt.py": [
|
"tools/wpt/tests/test_wpt.py": [
|
||||||
"a2498333c2b51e7c985e28124d0c75a0fd5352c3",
|
"6569580e9ff471784e307b7e84555935dec99586",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wpt/tox.ini": [
|
"tools/wpt/tox.ini": [
|
||||||
|
@ -692365,7 +692799,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/browsers/chrome.py": [
|
"tools/wptrunner/wptrunner/browsers/chrome.py": [
|
||||||
"71f246f4b6d8452f321517ac62dc42e0db978e42",
|
"c9de22038ddcd69daf4b8181dc938444d9266a10",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/browsers/chrome_android.py": [
|
"tools/wptrunner/wptrunner/browsers/chrome_android.py": [
|
||||||
|
@ -692589,7 +693023,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/metadata.py": [
|
"tools/wptrunner/wptrunner/metadata.py": [
|
||||||
"42f3b00dab5b926f918c23a352bef935f07bbf4c",
|
"15bbf94c33cea80ab4d0fdd958618f264fa57ab1",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"tools/wptrunner/wptrunner/products.py": [
|
"tools/wptrunner/wptrunner/products.py": [
|
||||||
|
@ -693457,7 +693891,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"trusted-types/trusted-types-reporting.tentative.https.html": [
|
"trusted-types/trusted-types-reporting.tentative.https.html": [
|
||||||
"11ef305064d2af10ffc07ca09e51dcb1a3661e76",
|
"0104ba358058199a77f1af5afb27e3255da8da64",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
"trusted-types/trusted-types-reporting.tentative.https.html.headers": [
|
"trusted-types/trusted-types-reporting.tentative.https.html.headers": [
|
||||||
|
@ -699164,6 +699598,10 @@
|
||||||
"90363662f742fbf1d31634030d2b470e08fe1421",
|
"90363662f742fbf1d31634030d2b470e08fe1421",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
|
"webrtc-identity/idlharness.https.window.js": [
|
||||||
|
"da1cb85a8e7ef147729d4a4f1a77493862dea48c",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"webrtc-quic/META.yml": [
|
"webrtc-quic/META.yml": [
|
||||||
"740c8d2fe84beafbcb7f98cef29aff2378721132",
|
"740c8d2fe84beafbcb7f98cef29aff2378721132",
|
||||||
"support"
|
"support"
|
||||||
|
@ -704305,7 +704743,7 @@
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"webxr/resources/webxr_test_asserts.js": [
|
"webxr/resources/webxr_test_asserts.js": [
|
||||||
"24b5274bc23d4e601e94eebd93968d9c30942b08",
|
"863b994572441d0efdbe92dbd8aec29f9152069f",
|
||||||
"support"
|
"support"
|
||||||
],
|
],
|
||||||
"webxr/resources/webxr_test_constants.js": [
|
"webxr/resources/webxr_test_constants.js": [
|
||||||
|
@ -704444,6 +704882,10 @@
|
||||||
"cfa3cc7ca2fe7cfbd656d9164b0d1ab3dd60ca41",
|
"cfa3cc7ca2fe7cfbd656d9164b0d1ab3dd60ca41",
|
||||||
"testharness"
|
"testharness"
|
||||||
],
|
],
|
||||||
|
"webxr/xrReferenceSpace_originOffset_viewer.https.html": [
|
||||||
|
"2f93914e851ed55d5f9e60cc131316132e7ca226",
|
||||||
|
"testharness"
|
||||||
|
],
|
||||||
"webxr/xrRigidTransform_constructor.https.html": [
|
"webxr/xrRigidTransform_constructor.https.html": [
|
||||||
"15a7f2b5771a78dba2036ec46933e826c9a54355",
|
"15a7f2b5771a78dba2036ec46933e826c9a54355",
|
||||||
"testharness"
|
"testharness"
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[opacity-interpolation.html]
|
||||||
|
[opacity interpolation]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[order-interpolation.html]
|
||||||
|
[order interpolation]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[matchMedia-display-none-iframe.html]
|
|
||||||
expected: ERROR
|
|
|
@ -315,15 +315,18 @@
|
||||||
[<iframe>: combined response Content-Type: text/html */*]
|
[<iframe>: combined response Content-Type: text/html */*]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: combined response Content-Type: text/html;" text/plain]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
[<iframe>: separate response Content-Type: text/html;" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
|
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
|
[<iframe>: separate response Content-Type: text/html */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/plain */*]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -53,9 +53,9 @@
|
||||||
[combined text/javascript ]
|
[combined text/javascript ]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
[separate text/javascript;charset=windows-1252 error text/javascript]
|
|
||||||
expected: FAIL
|
|
||||||
|
|
||||||
[separate text/javascript x/x]
|
[separate text/javascript x/x]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[separate text/javascript error]
|
||||||
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_1.html]
|
||||||
|
[Multiple history traversals from the same task]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
[traverse_the_history_4.html]
|
||||||
|
[Multiple history traversals, last would be aborted]
|
||||||
|
expected: FAIL
|
||||||
|
|
|
@ -1,5 +1,24 @@
|
||||||
[open-features-negative-top-left.html]
|
[open-features-negative-top-left.html]
|
||||||
type: testharness
|
type: testharness
|
||||||
|
expected: TIMEOUT
|
||||||
[HTML: window.open `features`: negative values for `top`, `left`]
|
[HTML: window.open `features`: negative values for `top`, `left`]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
[features "top=-204" should NOT set "top=204"]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[features "top=-204.5" should NOT set "top=204"]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[features "left=-204" should NOT set "left=204"]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[features "top=-0" should NOT set "top=204"]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[features "left=-204.5" should NOT set "left=204"]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
[features "left=-0" should NOT set "left=204"]
|
||||||
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
[embedded-opener-remove-frame.html]
|
[embedded-opener-remove-frame.html]
|
||||||
|
expected: CRASH
|
||||||
[opener and "removed" embedded documents]
|
[opener and "removed" embedded documents]
|
||||||
expected: FAIL
|
expected: FAIL
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
[script-onerror-insertion-point-2.html]
|
||||||
|
expected: TIMEOUT
|
|
@ -1,5 +1,5 @@
|
||||||
[xrBoundedReferenceSpace_updates.https.html]
|
[xrBoundedReferenceSpace_updates.https.html]
|
||||||
expected: ERROR
|
expected: TIMEOUT
|
||||||
['XRBoundedReferenceSpace updates properly when the changes are applied]
|
['XRBoundedReferenceSpace updates properly when the changes are applied]
|
||||||
expected: TIMEOUT
|
expected: TIMEOUT
|
||||||
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
[transition_calc_implicit.html]
|
|
||||||
expected: TIMEOUT
|
|
|
@ -282,7 +282,6 @@ tasks:
|
||||||
export TOXENV=py27;
|
export TOXENV=py27;
|
||||||
./tools/ci/run_tc.py \
|
./tools/ci/run_tc.py \
|
||||||
--browser=firefox \
|
--browser=firefox \
|
||||||
--channel=experimental \
|
|
||||||
--xvfb \
|
--xvfb \
|
||||||
resources_unittest \
|
resources_unittest \
|
||||||
tools/ci/ci_resources_unittest.sh
|
tools/ci/ci_resources_unittest.sh
|
||||||
|
|
|
@ -34,20 +34,16 @@ const badChunks = [
|
||||||
{
|
{
|
||||||
name: 'shared Uint8Array',
|
name: 'shared Uint8Array',
|
||||||
get value() {
|
get value() {
|
||||||
new Uint8Array(new SharedArrayBuffer())
|
return new Uint8Array(new SharedArrayBuffer())
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'invalid deflate bytes',
|
name: 'invalid deflate bytes',
|
||||||
get value() {
|
value: new Uint8Array([0, 156, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 48, 173, 6, 36])
|
||||||
new Uint8Array([0, 156, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 48, 173, 6, 36])
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'invalid gzip bytes',
|
name: 'invalid gzip bytes',
|
||||||
get value() {
|
value: new Uint8Array([0, 139, 8, 0, 0, 0, 0, 0, 0, 3, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 176, 1, 57, 179, 15, 0, 0, 0])
|
||||||
new Uint8Array([0, 139, 8, 0, 0, 0, 0, 0, 0, 3, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 176, 1, 57, 179, 15, 0, 0, 0])
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
// META: global=worker
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const gzipEmptyValue = new Uint8Array([31, 139, 8, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
|
||||||
|
const deflateEmptyValue = new Uint8Array([120, 156, 3, 0, 0, 0, 0, 1]);
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
const ds = new DecompressionStream('gzip');
|
||||||
|
const reader = ds.readable.getReader();
|
||||||
|
const writer = ds.writable.getWriter();
|
||||||
|
const writePromise = writer.write(gzipEmptyValue);
|
||||||
|
writer.close();
|
||||||
|
const { value, done } = await reader.read();
|
||||||
|
assert_true(done, "read() should set done");
|
||||||
|
assert_equals(value, undefined, "value should be undefined");
|
||||||
|
await writePromise;
|
||||||
|
}, 'decompressing gzip empty input should work');
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
const ds = new DecompressionStream('deflate');
|
||||||
|
const reader = ds.readable.getReader();
|
||||||
|
const writer = ds.writable.getWriter();
|
||||||
|
const writePromise = writer.write(deflateEmptyValue);
|
||||||
|
writer.close();
|
||||||
|
const { value, done } = await reader.read();
|
||||||
|
assert_true(done, "read() should set done");
|
||||||
|
assert_equals(value, undefined, "value should be undefined");
|
||||||
|
await writePromise;
|
||||||
|
}, 'decompressing deflate empty input should work');
|
|
@ -0,0 +1,44 @@
|
||||||
|
// META: global=worker
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const compressedBytesWithDeflate = new Uint8Array([120, 156, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 48, 173, 6, 36]);
|
||||||
|
const compressedBytesWithGzip = new Uint8Array([31, 139, 8, 0, 0, 0, 0, 0, 0, 3, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 176, 1, 57, 179, 15, 0, 0, 0]);
|
||||||
|
const expectedChunkValue = new TextEncoder().encode('expected output');
|
||||||
|
|
||||||
|
async function decompressArrayBuffer(input, format, chunkSize) {
|
||||||
|
const ds = new DecompressionStream(format);
|
||||||
|
const reader = ds.readable.getReader();
|
||||||
|
const writer = ds.writable.getWriter();
|
||||||
|
for (let beginning = 0; beginning < input.length; beginning += chunkSize) {
|
||||||
|
writer.write(input.slice(beginning, beginning + chunkSize));
|
||||||
|
}
|
||||||
|
writer.close();
|
||||||
|
const out = [];
|
||||||
|
let totalSize = 0;
|
||||||
|
while (true) {
|
||||||
|
const { value, done } = await reader.read();
|
||||||
|
if (done) break;
|
||||||
|
out.push(value);
|
||||||
|
totalSize += value.byteLength;
|
||||||
|
}
|
||||||
|
const concatenated = new Uint8Array(totalSize);
|
||||||
|
let offset = 0;
|
||||||
|
for (const array of out) {
|
||||||
|
concatenated.set(array, offset);
|
||||||
|
offset += array.byteLength;
|
||||||
|
}
|
||||||
|
return concatenated;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (let chunkSize = 1; chunkSize < 16; ++chunkSize) {
|
||||||
|
promise_test(async t => {
|
||||||
|
const decompressedData = await decompressArrayBuffer(compressedBytesWithDeflate, 'deflate', chunkSize);
|
||||||
|
assert_array_equals(decompressedData, expectedChunkValue, "value should match");
|
||||||
|
}, `decompressing splitted chunk into pieces of size ${chunkSize} should work in deflate`);
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
const decompressedData = await decompressArrayBuffer(compressedBytesWithGzip, 'gzip', chunkSize);
|
||||||
|
assert_array_equals(decompressedData, expectedChunkValue, "value should match");
|
||||||
|
}, `decompressing splitted chunk into pieces of size ${chunkSize} should work in gzip`);
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
// META: global=worker
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const deflateChunkValue = new Uint8Array([120, 156, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 48, 173, 6, 36]);
|
||||||
|
const gzipChunkValue = new Uint8Array([31, 139, 8, 0, 0, 0, 0, 0, 0, 3, 75, 173, 40, 72, 77, 46, 73, 77, 81, 200, 47, 45, 41, 40, 45, 1, 0, 176, 1, 57, 179, 15, 0, 0, 0]);
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
const ds = new DecompressionStream('deflate');
|
||||||
|
const reader = ds.readable.getReader();
|
||||||
|
const writer = ds.writable.getWriter();
|
||||||
|
const writePromise = writer.write(deflateChunkValue);
|
||||||
|
const { value } = await reader.read();
|
||||||
|
assert_equals(value.constructor, Uint8Array, "type should match");
|
||||||
|
await writePromise;
|
||||||
|
}, 'decompressing deflated output should give Uint8Array chunks');
|
||||||
|
|
||||||
|
promise_test(async t => {
|
||||||
|
const ds = new DecompressionStream('gzip');
|
||||||
|
const reader = ds.readable.getReader();
|
||||||
|
const writer = ds.writable.getWriter();
|
||||||
|
const writePromise = writer.write(gzipChunkValue);
|
||||||
|
const { value } = await reader.read();
|
||||||
|
assert_equals(value.constructor, Uint8Array, "type should match");
|
||||||
|
await writePromise;
|
||||||
|
}, 'decompressing gzip output should give Uint8Array chunks');
|
|
@ -0,0 +1,31 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<head>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/cookies/resources/cookie-helper.sub.js"></script>
|
||||||
|
</head>
|
||||||
|
<body onload="doTests()">
|
||||||
|
<script>
|
||||||
|
function doTests() {
|
||||||
|
promise_test(async function(t) {
|
||||||
|
var child = window.open("");
|
||||||
|
child.onmessage = (ev) => {
|
||||||
|
child.opener.postMessage(ev.data, '*');
|
||||||
|
};
|
||||||
|
var grandKid = child.document.createElement("iframe");
|
||||||
|
child.document.body.appendChild(grandKid);
|
||||||
|
var value = "" + Math.random();
|
||||||
|
await resetSameSiteCookies(SECURE_ORIGIN, value);
|
||||||
|
|
||||||
|
// Load at what cookies a subresource below an about:blank iframe
|
||||||
|
// inheritting this origin gets.
|
||||||
|
grandKid.src = SECURE_ORIGIN + "/cookies/samesite/resources/iframe-subresource-report.html"
|
||||||
|
var e = await wait_for_message("COOKIES", SECURE_ORIGIN);
|
||||||
|
assert_cookie(SECURE_ORIGIN, e.data, "samesite_unspecified", value, true);
|
||||||
|
assert_cookie(SECURE_ORIGIN, e.data, "samesite_lax", value, true);
|
||||||
|
assert_cookie(SECURE_ORIGIN, e.data, "samesite_strict", value, true);
|
||||||
|
assert_cookie(SECURE_ORIGIN, e.data, "samesite_none", value, true);
|
||||||
|
}, "SameSite cookies on subresource of top-level about:blank window");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -0,0 +1,30 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<head>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/cookies/resources/cookie-helper.sub.js"></script>
|
||||||
|
</head>
|
||||||
|
<body onload="doTests()">
|
||||||
|
<script>
|
||||||
|
function doTests() {
|
||||||
|
promise_test(async function(t) {
|
||||||
|
var child = window.open("");
|
||||||
|
child.onmessage = (ev) => {
|
||||||
|
child.opener.postMessage(ev.data, '*');
|
||||||
|
};
|
||||||
|
var grandKid = child.document.createElement("iframe");
|
||||||
|
child.document.body.appendChild(grandKid);
|
||||||
|
var value = "" + Math.random();
|
||||||
|
await resetSameSiteCookies(SECURE_ORIGIN, value);
|
||||||
|
|
||||||
|
// Using postToParent.py here to see cookies used when navigating the page.
|
||||||
|
grandKid.src = SECURE_ORIGIN + "/cookies/resources/postToParent.py"
|
||||||
|
var e = await wait_for_message("COOKIES", SECURE_ORIGIN);
|
||||||
|
assert_cookie(SECURE_ORIGIN, e.data, "samesite_unspecified", value, true);
|
||||||
|
assert_cookie(SECURE_ORIGIN, e.data, "samesite_lax", value, true);
|
||||||
|
assert_cookie(SECURE_ORIGIN, e.data, "samesite_strict", value, true);
|
||||||
|
assert_cookie(SECURE_ORIGIN, e.data, "samesite_none", value, true);
|
||||||
|
}, "SameSite cookies with top-level about:blank window");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -6,7 +6,8 @@ function reportSubresourceCookies() {
|
||||||
credFetch(SECURE_ORIGIN + "/cookies/resources/list.py")
|
credFetch(SECURE_ORIGIN + "/cookies/resources/list.py")
|
||||||
.then(r => r.json())
|
.then(r => r.json())
|
||||||
.then(cookies => { cookies.type = "COOKIES";
|
.then(cookies => { cookies.type = "COOKIES";
|
||||||
window.parent.postMessage(cookies, "*");});
|
target = window.opener ? window.opener : window.parent;
|
||||||
|
target.postMessage(cookies, "*");});
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -0,0 +1,118 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>margin interpolation</title>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/CSS2/box.html#margin-properties">
|
||||||
|
<meta name="assert" content="margin supports animation">
|
||||||
|
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.parent {
|
||||||
|
margin: 10px;
|
||||||
|
border: solid;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.target {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
background-color: black;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 30px;
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.expected {
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<template id="target-template">
|
||||||
|
<div>
|
||||||
|
<div class="target"></div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
test_interpolation({
|
||||||
|
property: 'margin',
|
||||||
|
from: neutralKeyframe,
|
||||||
|
to: '20px',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '33px'},
|
||||||
|
{at: 0, expect: '30px'},
|
||||||
|
{at: 0.3, expect: '27px'},
|
||||||
|
{at: 0.6, expect: '24px'},
|
||||||
|
{at: 1, expect: '20px'},
|
||||||
|
{at: 1.5, expect: '15px'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'margin',
|
||||||
|
from: 'initial',
|
||||||
|
to: '20px',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '-6px'},
|
||||||
|
{at: 0, expect: '0px'},
|
||||||
|
{at: 0.3, expect: '6px'},
|
||||||
|
{at: 0.6, expect: '12px'},
|
||||||
|
{at: 1, expect: '20px'},
|
||||||
|
{at: 1.5, expect: '30px'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'margin',
|
||||||
|
from: 'inherit',
|
||||||
|
to: '20px',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '7px'},
|
||||||
|
{at: 0, expect: '10px'},
|
||||||
|
{at: 0.3, expect: '13px'},
|
||||||
|
{at: 0.6, expect: '16px'},
|
||||||
|
{at: 1, expect: '20px'},
|
||||||
|
{at: 1.5, expect: '25px'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'margin',
|
||||||
|
from: 'unset',
|
||||||
|
to: '20px',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '-6px'},
|
||||||
|
{at: 0, expect: '0px'},
|
||||||
|
{at: 0.3, expect: '6px'},
|
||||||
|
{at: 0.6, expect: '12px'},
|
||||||
|
{at: 1, expect: '20px'},
|
||||||
|
{at: 1.5, expect: '30px'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'margin',
|
||||||
|
from: '0px',
|
||||||
|
to: '10px'
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '-3px'},
|
||||||
|
{at: 0, expect: '0px'},
|
||||||
|
{at: 0.3, expect: '3px'},
|
||||||
|
{at: 0.6, expect: '6px'},
|
||||||
|
{at: 1, expect: '10px'},
|
||||||
|
{at: 1.5, expect: '15px'}
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'margin',
|
||||||
|
from: '20px 40px 60px 80px',
|
||||||
|
to: '30px 50px 70px 90px'
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '17px 37px 57px 77px'},
|
||||||
|
{at: 0, expect: '20px 40px 60px 80px'},
|
||||||
|
{at: 0.3, expect: '23px 43px 63px 83px'},
|
||||||
|
{at: 0.6, expect: '26px 46px 66px 86px'},
|
||||||
|
{at: 1, expect: '30px 50px 70px 90px'},
|
||||||
|
{at: 1.5, expect: '35px 55px 75px 95px'}
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -0,0 +1,96 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>opacity interpolation</title>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-color-3/#opacity">
|
||||||
|
<meta name="assert" content="opacity supports animation">
|
||||||
|
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.parent {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.target {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
background-color: black;
|
||||||
|
display: inline-block;
|
||||||
|
opacity: 0.1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.expected {
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
test_interpolation({
|
||||||
|
property: 'opacity',
|
||||||
|
from: neutralKeyframe,
|
||||||
|
to: '0.2',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '0.07'},
|
||||||
|
{at: 0, expect: '0.1'},
|
||||||
|
{at: 0.3, expect: '0.13'},
|
||||||
|
{at: 0.6, expect: '0.16'},
|
||||||
|
{at: 1, expect: '0.2'},
|
||||||
|
{at: 1.5, expect: '0.25'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'opacity',
|
||||||
|
from: 'initial',
|
||||||
|
to: '0.2',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '1'},
|
||||||
|
{at: 0, expect: '1'},
|
||||||
|
{at: 0.3, expect: '0.76'},
|
||||||
|
{at: 0.6, expect: '0.52'},
|
||||||
|
{at: 1, expect: '0.2'},
|
||||||
|
{at: 1.5, expect: '0'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'opacity',
|
||||||
|
from: 'inherit',
|
||||||
|
to: '0.2',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '0.98'},
|
||||||
|
{at: 0, expect: '0.8'},
|
||||||
|
{at: 0.3, expect: '0.62'},
|
||||||
|
{at: 0.6, expect: '0.44'},
|
||||||
|
{at: 1, expect: '0.2'},
|
||||||
|
{at: 1.5, expect: '0'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'opacity',
|
||||||
|
from: 'unset',
|
||||||
|
to: '0.2',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '1'},
|
||||||
|
{at: 0, expect: '1'},
|
||||||
|
{at: 0.3, expect: '0.76'},
|
||||||
|
{at: 0.6, expect: '0.52'},
|
||||||
|
{at: 1, expect: '0.2'},
|
||||||
|
{at: 1.5, expect: '0'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'opacity',
|
||||||
|
from: '0',
|
||||||
|
to: '1'
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '0'}, // CSS opacity is [0-1].
|
||||||
|
{at: 0, expect: '0'},
|
||||||
|
{at: 0.3, expect: '0.3'},
|
||||||
|
{at: 0.6, expect: '0.6'},
|
||||||
|
{at: 1, expect: '1'},
|
||||||
|
{at: 1.5, expect: '1'}
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -0,0 +1,105 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>order interpolation</title>
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-flexbox-1/#order-property">
|
||||||
|
<meta name="assert" content="order supports animation">
|
||||||
|
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.parent {
|
||||||
|
order: 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
.target {
|
||||||
|
order: 10;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
test_interpolation({
|
||||||
|
property: 'order',
|
||||||
|
from: neutralKeyframe,
|
||||||
|
to: '20',
|
||||||
|
}, [
|
||||||
|
{at: -3, expect: '-20'},
|
||||||
|
{at: -0.5, expect: '5'},
|
||||||
|
{at: 0, expect: '10'},
|
||||||
|
{at: 0.3, expect: '13'},
|
||||||
|
{at: 0.6, expect: '16'},
|
||||||
|
{at: 1, expect: '20'},
|
||||||
|
{at: 1.5, expect: '25'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'order',
|
||||||
|
from: 'initial',
|
||||||
|
to: '20',
|
||||||
|
}, [
|
||||||
|
{at: -3, expect: '-60'},
|
||||||
|
{at: -0.5, expect: '-10'},
|
||||||
|
{at: 0, expect: '0'},
|
||||||
|
{at: 0.3, expect: '6'},
|
||||||
|
{at: 0.6, expect: '12'},
|
||||||
|
{at: 1, expect: '20'},
|
||||||
|
{at: 1.5, expect: '30'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'order',
|
||||||
|
from: 'inherit',
|
||||||
|
to: '20',
|
||||||
|
}, [
|
||||||
|
{at: -3, expect: '60'},
|
||||||
|
{at: -0.5, expect: '35'},
|
||||||
|
{at: 0, expect: '30'},
|
||||||
|
{at: 0.3, expect: '27'},
|
||||||
|
{at: 0.6, expect: '24'},
|
||||||
|
{at: 1, expect: '20'},
|
||||||
|
{at: 1.5, expect: '15'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'order',
|
||||||
|
from: 'unset',
|
||||||
|
to: '20',
|
||||||
|
}, [
|
||||||
|
{at: -3, expect: '-60'},
|
||||||
|
{at: -0.5, expect: '-10'},
|
||||||
|
{at: 0, expect: '0'},
|
||||||
|
{at: 0.3, expect: '6'},
|
||||||
|
{at: 0.6, expect: '12'},
|
||||||
|
{at: 1, expect: '20'},
|
||||||
|
{at: 1.5, expect: '30'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'order',
|
||||||
|
from: '10',
|
||||||
|
to: '20'
|
||||||
|
}, [
|
||||||
|
{at: -3.0, expect: '-20'},
|
||||||
|
{at: -0.5, expect: '5'},
|
||||||
|
{at: 0, expect: '10'},
|
||||||
|
{at: 0.3, expect: '13'},
|
||||||
|
{at: 0.6, expect: '16'},
|
||||||
|
{at: 1, expect: '20'},
|
||||||
|
{at: 1.5, expect: '25'}
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'order',
|
||||||
|
from: '2',
|
||||||
|
to: '4'
|
||||||
|
}, [
|
||||||
|
{at: -3.0, expect: '-4'},
|
||||||
|
{at: -0.5, expect: '1'},
|
||||||
|
{at: 0, expect: '2'},
|
||||||
|
{at: 0.3, expect: '3'},
|
||||||
|
{at: 0.6, expect: '3'},
|
||||||
|
{at: 1, expect: '4'},
|
||||||
|
{at: 1.5, expect: '5'}
|
||||||
|
]);
|
||||||
|
</script>
|
|
@ -0,0 +1,362 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Reference: repeat(auto-fill, line-names)</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 15px;
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: subgrid;
|
||||||
|
grid-column: 3 / span 4;
|
||||||
|
grid-auto-rows: 8px;
|
||||||
|
background: grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid > :nth-child(2n) { background: black; }
|
||||||
|
.subgrid > :nth-child(2n+1) { background: pink; }
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0c">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0d">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0e">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0f">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0g">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0h">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0i">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0j">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1c">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1d">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1e">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2c">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2d">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3c">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-5">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,394 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Test: repeat(auto-fill, line-names)</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid-2/#subgrid-listing">
|
||||||
|
<link rel="match" href="repeat-auto-fill-001-ref.html">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 15px;
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid-column: 3 / span 4;
|
||||||
|
grid-auto-rows: 8px;
|
||||||
|
background: grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fill-0a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] [z] } /* [z] [z] [z] [z] [z] */
|
||||||
|
.fill-0b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [x] [z] [z] [z] [z] */
|
||||||
|
.fill-0c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [x] [z] [z] [z] */
|
||||||
|
.fill-0d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [z] [z] */
|
||||||
|
.fill-0e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [z] */
|
||||||
|
.fill-0f { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0g { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0h { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0i { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0j { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
|
||||||
|
|
||||||
|
.fill-1a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [y] [z] [z] [z] [z] */
|
||||||
|
.fill-1b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [y] [z] [z] [z] */
|
||||||
|
.fill-1c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [y] [z] [z] */
|
||||||
|
.fill-1d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [y] [z] */
|
||||||
|
.fill-1e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [y] */
|
||||||
|
|
||||||
|
.fill-2a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] } /* [y] [y] [z] [z] [z] */
|
||||||
|
.fill-2b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [y] [y] [z] [z] */
|
||||||
|
.fill-2c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [y] [y] [z] */
|
||||||
|
.fill-2d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [y] [y] */
|
||||||
|
|
||||||
|
.fill-3a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] } /* [y] [y] [y] [z] [z] */
|
||||||
|
.fill-3b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] } /* [x] [y] [y] [y] [z] */
|
||||||
|
.fill-3c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [y] [y] [y] */
|
||||||
|
|
||||||
|
.fill-4a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] } /* [y] [y] [y] [y] [z] */
|
||||||
|
.fill-4b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) } /* [x] [y] [y] [y] [y] */
|
||||||
|
|
||||||
|
.fill-5 { grid-template-columns: subgrid repeat(auto-fill, [y]) } /* [y] [y] [y] [y] [y] */
|
||||||
|
|
||||||
|
.subgrid > :nth-child(2n) { background: black; }
|
||||||
|
.subgrid > :nth-child(2n+1) { background: pink; }
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0a">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0b">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0c">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0d">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0e">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0f">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0g">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0h">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0i">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0j">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1a">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1b">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1c">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1d">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1e">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2a">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2b">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2c">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2d">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3a">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3b">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3c">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4a">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4b">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-5">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,397 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Test: repeat(auto-fill, line-names) in parent subgrid</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid-2/#subgrid-listing">
|
||||||
|
<link rel="match" href="repeat-auto-fill-001-ref.html">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 15px;
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: subgrid;
|
||||||
|
grid-column: 3 / span 4;
|
||||||
|
grid-auto-rows: 8px;
|
||||||
|
background: grey;
|
||||||
|
}
|
||||||
|
.grid > .subgrid { grid-template-rows: auto; }
|
||||||
|
.grid > .subgrid > .subgrid { grid-column: 1 / span 4; }
|
||||||
|
|
||||||
|
.fill-0a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] [z] } /* [z] [z] [z] [z] [z] */
|
||||||
|
.fill-0b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [x] [z] [z] [z] [z] */
|
||||||
|
.fill-0c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [x] [z] [z] [z] */
|
||||||
|
.fill-0d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [z] [z] */
|
||||||
|
.fill-0e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [z] */
|
||||||
|
.fill-0f { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0g { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0h { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0i { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0j { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
|
||||||
|
|
||||||
|
.fill-1a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [y] [z] [z] [z] [z] */
|
||||||
|
.fill-1b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [y] [z] [z] [z] */
|
||||||
|
.fill-1c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [y] [z] [z] */
|
||||||
|
.fill-1d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [y] [z] */
|
||||||
|
.fill-1e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [y] */
|
||||||
|
|
||||||
|
.fill-2a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] } /* [y] [y] [z] [z] [z] */
|
||||||
|
.fill-2b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [y] [y] [z] [z] */
|
||||||
|
.fill-2c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [y] [y] [z] */
|
||||||
|
.fill-2d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [y] [y] */
|
||||||
|
|
||||||
|
.fill-3a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] } /* [y] [y] [y] [z] [z] */
|
||||||
|
.fill-3b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] } /* [x] [y] [y] [y] [z] */
|
||||||
|
.fill-3c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [y] [y] [y] */
|
||||||
|
|
||||||
|
.fill-4a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] } /* [y] [y] [y] [y] [z] */
|
||||||
|
.fill-4b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) } /* [x] [y] [y] [y] [y] */
|
||||||
|
|
||||||
|
.fill-5 { grid-template-columns: subgrid repeat(auto-fill, [y]) } /* [y] [y] [y] [y] [y] */
|
||||||
|
|
||||||
|
.subgrid > .subgrid > :nth-child(2n) { background: black; }
|
||||||
|
.subgrid > .subgrid > :nth-child(2n+1) { background: pink; }
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0c"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0d"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0e"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0f"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0g"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0h"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0i"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0j"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1c"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1d"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1e"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2c"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2d"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3c"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-5"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,403 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Test: repeat(auto-fill, line-names) in orthogonal parent subgrid</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid-2/#subgrid-listing">
|
||||||
|
<link rel="match" href="repeat-auto-fill-001-ref.html">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 15px;
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: subgrid;
|
||||||
|
grid-column: 3 / span 4;
|
||||||
|
background: grey;
|
||||||
|
}
|
||||||
|
.grid > .subgrid > .subgrid {
|
||||||
|
writing-mode: vertical-lr;
|
||||||
|
grid-template-rows: subgrid;
|
||||||
|
grid-template-columns: initial;
|
||||||
|
grid-column: 1 / span 4;
|
||||||
|
grid-auto-columns: 8px;
|
||||||
|
grid-auto-flow: column;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fill-0a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] [z] } /* [z] [z] [z] [z] [z] */
|
||||||
|
.fill-0b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [x] [z] [z] [z] [z] */
|
||||||
|
.fill-0c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [x] [z] [z] [z] */
|
||||||
|
.fill-0d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [z] [z] */
|
||||||
|
.fill-0e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [z] */
|
||||||
|
.fill-0f { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0g { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0h { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0i { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0j { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
|
||||||
|
|
||||||
|
.fill-1a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [y] [z] [z] [z] [z] */
|
||||||
|
.fill-1b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [y] [z] [z] [z] */
|
||||||
|
.fill-1c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [y] [z] [z] */
|
||||||
|
.fill-1d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [y] [z] */
|
||||||
|
.fill-1e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [y] */
|
||||||
|
|
||||||
|
.fill-2a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] } /* [y] [y] [z] [z] [z] */
|
||||||
|
.fill-2b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [y] [y] [z] [z] */
|
||||||
|
.fill-2c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [y] [y] [z] */
|
||||||
|
.fill-2d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [y] [y] */
|
||||||
|
|
||||||
|
.fill-3a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] } /* [y] [y] [y] [z] [z] */
|
||||||
|
.fill-3b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] } /* [x] [y] [y] [y] [z] */
|
||||||
|
.fill-3c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [y] [y] [y] */
|
||||||
|
|
||||||
|
.fill-4a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] } /* [y] [y] [y] [y] [z] */
|
||||||
|
.fill-4b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) } /* [x] [y] [y] [y] [y] */
|
||||||
|
|
||||||
|
.fill-5 { grid-template-columns: subgrid repeat(auto-fill, [y]) } /* [y] [y] [y] [y] [y] */
|
||||||
|
|
||||||
|
.subgrid > .subgrid > :nth-child(2n) { background: black; }
|
||||||
|
.subgrid > .subgrid > :nth-child(2n+1) { background: pink; }
|
||||||
|
.subgrid > .subgrid > * { writing-mode: horizontal-tb; }
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0a"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0b"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0c"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0d"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0e"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0f"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0g"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0h"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0i"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0j"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1a"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1b"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1c"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1d"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1e"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2a"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2b"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2c"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2d"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3a"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3b"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3c"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4a"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4b"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-5"><div class="subgrid">
|
||||||
|
<div style="grid-row:y 5"></div>
|
||||||
|
<div style="grid-row:y 4"></div>
|
||||||
|
<div style="grid-row:y 3"></div>
|
||||||
|
<div style="grid-row:y 2"></div>
|
||||||
|
<div style="grid-row:y 1"></div>
|
||||||
|
<div style="grid-row:y -1"></div>
|
||||||
|
<div style="grid-row:y -2"></div>
|
||||||
|
<div style="grid-row:y -3"></div>
|
||||||
|
<div style="grid-row:y -4"></div>
|
||||||
|
<div style="grid-row:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,362 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Reference: repeat(auto-fill, line-names) in RTL/LTR subgrids</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 15px;
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: subgrid;
|
||||||
|
grid-column: 3 / span 4;
|
||||||
|
grid-auto-rows: 8px;
|
||||||
|
background: grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid > :nth-child(2n) { background: black; }
|
||||||
|
.subgrid > :nth-child(2n+1) { background: pink; }
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0c">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0d">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0e">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0f">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0g">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0h">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0i">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0j">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1c">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1d">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1e">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2c">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2d">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3c">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4a">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4b">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-5">
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:4"></div>
|
||||||
|
<div style="grid-column:3"></div>
|
||||||
|
<div style="grid-column:2"></div>
|
||||||
|
<div style="grid-column:1"></div>
|
||||||
|
</div></div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,397 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Test: repeat(auto-fill, line-names) in RTL/LTR subgrids</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid-2/#subgrid-listing">
|
||||||
|
<link rel="match" href="repeat-auto-fill-004-ref.html">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 15px;
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: subgrid;
|
||||||
|
grid-column: 3 / span 4;
|
||||||
|
grid-auto-rows: 8px;
|
||||||
|
background: grey;
|
||||||
|
}
|
||||||
|
.grid > .subgrid { grid-template-rows: auto; direction:rtl; }
|
||||||
|
.grid > .subgrid > .subgrid { grid-column: 1 / span 4; direction:ltr; }
|
||||||
|
|
||||||
|
.fill-0a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] [z] } /* [z] [z] [z] [z] [z] */
|
||||||
|
.fill-0b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [x] [z] [z] [z] [z] */
|
||||||
|
.fill-0c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [x] [z] [z] [z] */
|
||||||
|
.fill-0d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [z] [z] */
|
||||||
|
.fill-0e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [z] */
|
||||||
|
.fill-0f { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0g { grid-template-columns: subgrid [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0h { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0i { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [x] [x] */
|
||||||
|
.fill-0j { grid-template-columns: subgrid [x] [x] [x] [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [x] */
|
||||||
|
|
||||||
|
.fill-1a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] [z] } /* [y] [z] [z] [z] [z] */
|
||||||
|
.fill-1b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] [z] } /* [x] [y] [z] [z] [z] */
|
||||||
|
.fill-1c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [x] [y] [z] [z] */
|
||||||
|
.fill-1d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [x] [y] [z] */
|
||||||
|
.fill-1e { grid-template-columns: subgrid [x] [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [x] [y] */
|
||||||
|
|
||||||
|
.fill-2a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] [z] } /* [y] [y] [z] [z] [z] */
|
||||||
|
.fill-2b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] [z] } /* [x] [y] [y] [z] [z] */
|
||||||
|
.fill-2c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) [z] } /* [x] [x] [y] [y] [z] */
|
||||||
|
.fill-2d { grid-template-columns: subgrid [x] [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [x] [y] [y] */
|
||||||
|
|
||||||
|
.fill-3a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] [z] } /* [y] [y] [y] [z] [z] */
|
||||||
|
.fill-3b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) [z] } /* [x] [y] [y] [y] [z] */
|
||||||
|
.fill-3c { grid-template-columns: subgrid [x] [x] repeat(auto-fill, [y]) } /* [x] [x] [y] [y] [y] */
|
||||||
|
|
||||||
|
.fill-4a { grid-template-columns: subgrid repeat(auto-fill, [y]) [z] } /* [y] [y] [y] [y] [z] */
|
||||||
|
.fill-4b { grid-template-columns: subgrid [x] repeat(auto-fill, [y]) } /* [x] [y] [y] [y] [y] */
|
||||||
|
|
||||||
|
.fill-5 { grid-template-columns: subgrid repeat(auto-fill, [y]) } /* [y] [y] [y] [y] [y] */
|
||||||
|
|
||||||
|
.subgrid > .subgrid > :nth-child(2n) { background: black; }
|
||||||
|
.subgrid > .subgrid > :nth-child(2n+1) { background: pink; }
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0c"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0d"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0e"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0f"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0g"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0h"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0i"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-0j"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1c"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1d"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-1e"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2c"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-2d"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-3c"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4a"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-4b"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
<div class="grid"><div class="subgrid fill-5"><div class="subgrid">
|
||||||
|
<div style="grid-column:y 5"></div>
|
||||||
|
<div style="grid-column:y 4"></div>
|
||||||
|
<div style="grid-column:y 3"></div>
|
||||||
|
<div style="grid-column:y 2"></div>
|
||||||
|
<div style="grid-column:y 1"></div>
|
||||||
|
<div style="grid-column:y -1"></div>
|
||||||
|
<div style="grid-column:y -2"></div>
|
||||||
|
<div style="grid-column:y -3"></div>
|
||||||
|
<div style="grid-column:y -4"></div>
|
||||||
|
<div style="grid-column:y -5"></div>
|
||||||
|
</div></div></div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,165 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Reference: repeat(auto-fill / INTEGER, line-names)</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 20px;
|
||||||
|
background: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid: auto / subgrid;
|
||||||
|
grid-column: 2 / span 4;
|
||||||
|
background: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
item {
|
||||||
|
min-width: 0;
|
||||||
|
min-height: 10px;
|
||||||
|
background: grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:2 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:2 / 4"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:3 / 4"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 4"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:2 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:2 / 3"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-column:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,167 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Test: repeat(auto-fill / INTEGER, line-names)</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid-2/#subgrid-listing">
|
||||||
|
<link rel="match" href="repeat-auto-fill-005-ref.html">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 20px;
|
||||||
|
background: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid-column: 2 / span 4;
|
||||||
|
background: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
item {
|
||||||
|
min-width: 0;
|
||||||
|
min-height: 10px;
|
||||||
|
grid-column:x -2 / x -1;
|
||||||
|
background: grey;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] [] repeat(auto-fill,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] [] repeat(auto-fill,[x]) [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] [] repeat(auto-fill,[x]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [x] [x] repeat(auto-fill,[x]) [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [x] [x] repeat(auto-fill,[x]) [] [x] []">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [x] [x] repeat(auto-fill,[x]) [x] [x] []">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] [] repeat(auto-fill,[x]) [] [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] [] repeat(1,[]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] [] repeat(1,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] [] repeat(1,[]) [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] [] repeat(1,[]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid repeat(2,[]) repeat(auto-fill,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid repeat(2,[x]) repeat(auto-fill,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid repeat(2,[x]) repeat(auto-fill,[x]) [] []">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid repeat(3,[]) repeat(auto-fill,[]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid repeat(4,[]) repeat(auto-fill,[x]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] [] [] [] repeat(auto-fill,[x]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid repeat(auto-fill,[]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid repeat(auto-fill,[x]) [] [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid [] repeat(auto-fill,[x]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-columns:subgrid repeat(5,[]) repeat(auto-fill,[]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,169 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Test: repeat(auto-fill / INTEGER, line-names)</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid-2/#subgrid-listing">
|
||||||
|
<link rel="match" href="repeat-auto-fill-005-ref.html">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 20px;
|
||||||
|
background: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid-column: 2 / span 4;
|
||||||
|
background: black;
|
||||||
|
writing-mode: vertical-lr;
|
||||||
|
}
|
||||||
|
|
||||||
|
item {
|
||||||
|
min-width: 0;
|
||||||
|
min-height: 10px;
|
||||||
|
grid-row:x -2 / x -1;
|
||||||
|
background: grey;
|
||||||
|
writing-mode: horizontal-tb;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(auto-fill,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(auto-fill,[x]) [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(auto-fill,[x]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [x] [x] repeat(auto-fill,[x]) [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [x] [x] repeat(auto-fill,[x]) [] [x] []">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [x] [x] repeat(auto-fill,[x]) [x] [x] []">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(auto-fill,[x]) [] [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(1,[]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(1,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(1,[]) [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(1,[]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(2,[]) repeat(auto-fill,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(2,[x]) repeat(auto-fill,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(2,[x]) repeat(auto-fill,[x]) [] []">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(3,[]) repeat(auto-fill,[]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(4,[]) repeat(auto-fill,[x]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] [] [] repeat(auto-fill,[x]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(auto-fill,[]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(auto-fill,[x]) [] [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] repeat(auto-fill,[x]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(5,[]) repeat(auto-fill,[]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,167 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Reference: repeat(auto-fill / INTEGER, line-names)</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 20px;
|
||||||
|
background: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid: subgrid / auto;
|
||||||
|
grid-column: 2 / span 4;
|
||||||
|
background: black;
|
||||||
|
writing-mode: vertical-rl;
|
||||||
|
}
|
||||||
|
|
||||||
|
item {
|
||||||
|
min-width: 0;
|
||||||
|
min-height: 10px;
|
||||||
|
background: grey;
|
||||||
|
writing-mode: horizontal-tb;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:2 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:2 / 4"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:3 / 4"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 4"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:2 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:2 / 3"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 5"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid">
|
||||||
|
<item style="grid-row:1 / 2"></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,169 @@
|
||||||
|
<!DOCTYPE HTML>
|
||||||
|
<!--
|
||||||
|
Any copyright is dedicated to the Public Domain.
|
||||||
|
http://creativecommons.org/publicdomain/zero/1.0/
|
||||||
|
-->
|
||||||
|
<html><head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>CSS Grid Test: repeat(auto-fill / INTEGER, line-names)</title>
|
||||||
|
<link rel="author" title="Mats Palmgren" href="mailto:mats@mozilla.com">
|
||||||
|
<link rel="help" href="https://drafts.csswg.org/css-grid-2/#subgrid-listing">
|
||||||
|
<link rel="match" href="repeat-auto-fill-007-ref.html">
|
||||||
|
<style>
|
||||||
|
html,body {
|
||||||
|
color:black; background-color:white; font:10px/1 monospace; padding:0; margin:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.grid {
|
||||||
|
display: inline-grid;
|
||||||
|
grid-auto-columns: 20px;
|
||||||
|
background: lightgrey;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subgrid {
|
||||||
|
display: grid;
|
||||||
|
grid-column: 2 / span 4;
|
||||||
|
background: black;
|
||||||
|
writing-mode: vertical-rl;
|
||||||
|
}
|
||||||
|
|
||||||
|
item {
|
||||||
|
min-width: 0;
|
||||||
|
min-height: 10px;
|
||||||
|
grid-row:x -2 / x -1;
|
||||||
|
background: grey;
|
||||||
|
writing-mode: horizontal-tb;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(auto-fill,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(auto-fill,[x]) [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(auto-fill,[x]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [x] [x] repeat(auto-fill,[x]) [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [x] [x] repeat(auto-fill,[x]) [] [x] []">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [x] [x] repeat(auto-fill,[x]) [x] [x] []">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(auto-fill,[x]) [] [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(1,[]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(1,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(1,[]) [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] repeat(1,[]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(2,[]) repeat(auto-fill,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(2,[x]) repeat(auto-fill,[]) [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(2,[x]) repeat(auto-fill,[x]) [] []">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(3,[]) repeat(auto-fill,[]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(4,[]) repeat(auto-fill,[x]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] [] [] [] repeat(auto-fill,[x]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(auto-fill,[]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(auto-fill,[x]) [] [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid [] repeat(auto-fill,[x]) [] [] [] [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="grid">
|
||||||
|
<div class="subgrid" style="grid-template-rows:subgrid repeat(5,[]) repeat(auto-fill,[]) [x]">
|
||||||
|
<item></item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,141 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>clip-path interpolation</title>
|
||||||
|
<link rel="help" href="https://drafts.fxtf.org/css-masking-1/#the-clip-path">
|
||||||
|
<meta name="assert" content="clip-path supports animation">
|
||||||
|
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.parent {
|
||||||
|
clip-path: circle(80% at 30% 10%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.target {
|
||||||
|
clip-path: circle(60% at 10% 30%);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<script>
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: neutralKeyframe,
|
||||||
|
to: 'circle(40% at 20% 20%)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'circle(66% at 7% 33%)'},
|
||||||
|
{at: 0, expect: 'circle(60% at 10% 30%)'},
|
||||||
|
{at: 0.3, expect: 'circle(54% at 13% 27%)'},
|
||||||
|
{at: 0.6, expect: 'circle(48% at 16% 24%)'},
|
||||||
|
{at: 1, expect: 'circle(40% at 20% 20%)'},
|
||||||
|
{at: 1.5, expect: 'circle(30% at 25% 15%)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'initial',
|
||||||
|
to: 'circle(40% at 20% 20%)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'inherit',
|
||||||
|
to: 'circle(40% at 20% 20%)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'circle(92% at 33% 7%)'},
|
||||||
|
{at: 0, expect: 'circle(80% at 30% 10%)'},
|
||||||
|
{at: 0.3, expect: 'circle(68% at 27% 13%)'},
|
||||||
|
{at: 0.6, expect: 'circle(56% at 24% 16%)'},
|
||||||
|
{at: 1, expect: 'circle(40% at 20% 20%)'},
|
||||||
|
{at: 1.5, expect: 'circle(20% at 15% 25%)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'unset',
|
||||||
|
to: 'circle(40% at 20% 20%)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'circle(100% at 0% 0%)',
|
||||||
|
to: 'circle(50% at 25% 25%)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'circle(115% at -7.5% -7.5%)'},
|
||||||
|
{at: 0, expect: 'circle(100% at 0% 0%)'},
|
||||||
|
{at: 0.3, expect: 'circle(85% at 7.5% 7.5%)'},
|
||||||
|
{at: 0.6, expect: 'circle(70% at 15% 15%)'},
|
||||||
|
{at: 1, expect: 'circle(50% at 25% 25%)'},
|
||||||
|
{at: 1.5, expect: 'circle(25% at 37.5% 37.5%)'}
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'ellipse(100% 100% at 0% 0%)',
|
||||||
|
to: 'ellipse(50% 50% at 25% 25%)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'ellipse(115% 115% at -7.5% -7.5%)'},
|
||||||
|
{at: 0, expect: 'ellipse(100% 100% at 0% 0%)'},
|
||||||
|
{at: 0.3, expect: 'ellipse(85% 85% at 7.5% 7.5%)'},
|
||||||
|
{at: 0.6, expect: 'ellipse(70% 70% at 15% 15%)'},
|
||||||
|
{at: 1, expect: 'ellipse(50% 50% at 25% 25%)'},
|
||||||
|
{at: 1.5, expect: 'ellipse(25% 25% at 37.5% 37.5%)'}
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)',
|
||||||
|
to: 'polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'polygon(nonzero, -7.5px -7.5px, 17.5px 17.5px, 42.5px 42.5px)'},
|
||||||
|
{at: 0, expect: 'polygon(nonzero, 0px 0px, 25px 25px, 50px 50px)'},
|
||||||
|
{at: 0.3, expect: 'polygon(nonzero, 7.5px 7.5px, 32.5px 32.5px, 57.5px 57.5px)'},
|
||||||
|
{at: 0.6, expect: 'polygon(nonzero, 15px 15px, 40px 40px, 65px 65px)'},
|
||||||
|
{at: 1, expect: 'polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)'},
|
||||||
|
{at: 1.5, expect: 'polygon(nonzero, 37.5px 37.5px, 62.5px 62.5px, 87.5px 87.5px)'}
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'polygon(evenodd, 0px 0px, 25px 25px, 50px 50px)',
|
||||||
|
to: 'polygon(nonzero, 25px 25px, 50px 50px, 75px 75px)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'inset(100%)',
|
||||||
|
to: 'inset(120%)',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: 'inset(94%)'},
|
||||||
|
{at: 0, expect: 'inset(100%)'},
|
||||||
|
{at: 0.3, expect: 'inset(106%)'},
|
||||||
|
{at: 0.6, expect: 'inset(112%)'},
|
||||||
|
{at: 1, expect: 'inset(120%)'},
|
||||||
|
{at: 1.5, expect: 'inset(130%)'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'none',
|
||||||
|
to: 'ellipse(100% 100% at 0% 0%)',
|
||||||
|
});
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'circle(25% at right 5% bottom 15px)',
|
||||||
|
to: 'circle(45% at right 25% bottom 35px)',
|
||||||
|
}, [
|
||||||
|
{at: 0.25, expect: 'circle(30% at 90% calc(-20px + 100%))'},
|
||||||
|
{at: 0.5, expect: 'circle(35% at 85% calc(-25px + 100%))'},
|
||||||
|
{at: 0.75, expect: 'circle(40% at 80% calc(-30px + 100%))'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_no_interpolation({
|
||||||
|
property: 'clip-path',
|
||||||
|
from: 'url("/clip-source")',
|
||||||
|
to: 'ellipse(100% 100% at 0% 0%)',
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -0,0 +1,38 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<link rel="author" href="mailto:atotic@google.com">
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/css-overflow-3/#scrollable">
|
||||||
|
<meta name="assert" content="What happens when appearance of one scrollbar triggers the other one?">
|
||||||
|
<style>
|
||||||
|
.container {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
overflow: auto;
|
||||||
|
background: #DDD;
|
||||||
|
--too-big: 120px;
|
||||||
|
--slightly-smaller: 95px;
|
||||||
|
}
|
||||||
|
.target {
|
||||||
|
width: 120px;
|
||||||
|
height: 95px;
|
||||||
|
background: rgba(0,255,0,0.3);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<!-- -->
|
||||||
|
<div class="container">
|
||||||
|
<div class="target" style="width:var(--too-big);height:var(--slightly-smaller)" ></div>
|
||||||
|
</div>
|
||||||
|
<div class="container">
|
||||||
|
<div class="target" style="height:var(--too-big);width:var(--slightly-smaller)" ></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
test(() => {
|
||||||
|
Array.from(document.querySelectorAll(".container")).forEach( el => {
|
||||||
|
let verticalScrollbar = el.offsetWidth - el.clientWidth;
|
||||||
|
let horizontalScrollbar = el.offsetHeight - el.clientHeight;
|
||||||
|
assert_equals(verticalScrollbar, horizontalScrollbar, "both scrollbars are visible.");
|
||||||
|
});
|
||||||
|
}, 'appearance of one scrollbar caused the other scrollbar to appear.');
|
||||||
|
</script>
|
|
@ -0,0 +1,116 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>boder-spacing interpolation</title>
|
||||||
|
<link rel="help" href="https://www.w3.org/TR/CSS2/tables.html#separated-borders">
|
||||||
|
<meta name="assert" content="border-spacing supports animation">
|
||||||
|
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/css/support/interpolation-testcommon.js"></script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.parent {
|
||||||
|
border-spacing: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.target {
|
||||||
|
width: 50px;
|
||||||
|
height: 50px;
|
||||||
|
background-color: black;
|
||||||
|
display: inline-block;
|
||||||
|
margin: 18px;
|
||||||
|
border-collapse: separate;
|
||||||
|
border-spacing: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.target td {
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid orange;
|
||||||
|
width: 10px;
|
||||||
|
height: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.expected {
|
||||||
|
background-color: green;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<template id="target-template">
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
test_interpolation({
|
||||||
|
property: 'border-spacing',
|
||||||
|
from: neutralKeyframe,
|
||||||
|
to: '20px',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '7px 7px'},
|
||||||
|
{at: 0, expect: '10px 10px'},
|
||||||
|
{at: 0.3, expect: '13px 13px'},
|
||||||
|
{at: 0.6, expect: '16px 16px'},
|
||||||
|
{at: 1, expect: '20px 20px'},
|
||||||
|
{at: 1.5, expect: '25px 25px'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'border-spacing',
|
||||||
|
from: 'initial',
|
||||||
|
to: '20px',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '0px 0px'},
|
||||||
|
{at: 0, expect: '0px 0px'},
|
||||||
|
{at: 0.3, expect: '6px 6px'},
|
||||||
|
{at: 0.6, expect: '12px 12px'},
|
||||||
|
{at: 1, expect: '20px 20px'},
|
||||||
|
{at: 1.5, expect: '30px 30px'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'border-spacing',
|
||||||
|
from: 'inherit',
|
||||||
|
to: '20px',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '33px 33px'},
|
||||||
|
{at: 0, expect: '30px 30px'},
|
||||||
|
{at: 0.3, expect: '27px 27px'},
|
||||||
|
{at: 0.6, expect: '24px 24px'},
|
||||||
|
{at: 1, expect: '20px 20px'},
|
||||||
|
{at: 1.5, expect: '15px 15px'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'border-spacing',
|
||||||
|
from: 'unset',
|
||||||
|
to: '20px',
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '33px 33px'},
|
||||||
|
{at: 0, expect: '30px 30px'},
|
||||||
|
{at: 0.3, expect: '27px 27px'},
|
||||||
|
{at: 0.6, expect: '24px 24px'},
|
||||||
|
{at: 1, expect: '20px 20px'},
|
||||||
|
{at: 1.5, expect: '15px 15px'},
|
||||||
|
]);
|
||||||
|
|
||||||
|
test_interpolation({
|
||||||
|
property: 'border-spacing',
|
||||||
|
from: '0px',
|
||||||
|
to: '10px'
|
||||||
|
}, [
|
||||||
|
{at: -0.3, expect: '0px 0px'}, // Can't be negative.
|
||||||
|
{at: 0, expect: '0px 0px'},
|
||||||
|
{at: 0.3, expect: '3px 3px'},
|
||||||
|
{at: 0.6, expect: '6px 6px'},
|
||||||
|
{at: 1, expect: '10px 10px'},
|
||||||
|
{at: 1.5, expect: '15px 15px'}
|
||||||
|
]);
|
||||||
|
</script>
|
||||||
|
</body>
|
|
@ -22,12 +22,12 @@ interface WorkletAnimationEffect {
|
||||||
attribute double? localTime;
|
attribute double? localTime;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (DOMString animatorName,
|
interface WorkletAnimation : Animation {
|
||||||
|
constructor(DOMString animatorName,
|
||||||
optional (AnimationEffect or sequence<AnimationEffect>)? effects = null,
|
optional (AnimationEffect or sequence<AnimationEffect>)? effects = null,
|
||||||
optional AnimationTimeline? timeline,
|
optional AnimationTimeline? timeline,
|
||||||
optional any options)]
|
optional any options);
|
||||||
interface WorkletAnimation : Animation {
|
|
||||||
readonly attribute DOMString animatorName;
|
readonly attribute DOMString animatorName;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
// (https://github.com/tidoust/reffy-reports)
|
// (https://github.com/tidoust/reffy-reports)
|
||||||
// Source: CSS Animations Level 1 (https://drafts.csswg.org/css-animations/)
|
// Source: CSS Animations Level 1 (https://drafts.csswg.org/css-animations/)
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor(CSSOMString type, optional AnimationEventInit animationEventInitDict = {})]
|
|
||||||
interface AnimationEvent : Event {
|
interface AnimationEvent : Event {
|
||||||
|
constructor(CSSOMString type, optional AnimationEventInit animationEventInitDict = {});
|
||||||
readonly attribute CSSOMString animationName;
|
readonly attribute CSSOMString animationName;
|
||||||
readonly attribute double elapsedTime;
|
readonly attribute double elapsedTime;
|
||||||
readonly attribute CSSOMString pseudoElement;
|
readonly attribute CSSOMString pseudoElement;
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
// (https://github.com/tidoust/reffy-reports)
|
// (https://github.com/tidoust/reffy-reports)
|
||||||
// Source: CSS Transitions (https://drafts.csswg.org/css-transitions/)
|
// Source: CSS Transitions (https://drafts.csswg.org/css-transitions/)
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor(CSSOMString type, optional TransitionEventInit transitionEventInitDict = {})]
|
|
||||||
interface TransitionEvent : Event {
|
interface TransitionEvent : Event {
|
||||||
|
constructor(CSSOMString type, optional TransitionEventInit transitionEventInitDict = {});
|
||||||
readonly attribute CSSOMString propertyName;
|
readonly attribute CSSOMString propertyName;
|
||||||
readonly attribute double elapsedTime;
|
readonly attribute double elapsedTime;
|
||||||
readonly attribute CSSOMString pseudoElement;
|
readonly attribute CSSOMString pseudoElement;
|
||||||
|
|
|
@ -18,6 +18,7 @@ partial interface DataTransferItem {
|
||||||
|
|
||||||
callback ErrorCallback = void (DOMException err);
|
callback ErrorCallback = void (DOMException err);
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface FileSystemEntry {
|
interface FileSystemEntry {
|
||||||
readonly attribute boolean isFile;
|
readonly attribute boolean isFile;
|
||||||
readonly attribute boolean isDirectory;
|
readonly attribute boolean isDirectory;
|
||||||
|
@ -29,6 +30,7 @@ interface FileSystemEntry {
|
||||||
optional ErrorCallback errorCallback);
|
optional ErrorCallback errorCallback);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface FileSystemDirectoryEntry : FileSystemEntry {
|
interface FileSystemDirectoryEntry : FileSystemEntry {
|
||||||
FileSystemDirectoryReader createReader();
|
FileSystemDirectoryReader createReader();
|
||||||
void getFile(optional USVString? path,
|
void getFile(optional USVString? path,
|
||||||
|
@ -48,18 +50,21 @@ dictionary FileSystemFlags {
|
||||||
|
|
||||||
callback FileSystemEntryCallback = void (FileSystemEntry entry);
|
callback FileSystemEntryCallback = void (FileSystemEntry entry);
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface FileSystemDirectoryReader {
|
interface FileSystemDirectoryReader {
|
||||||
void readEntries(FileSystemEntriesCallback successCallback,
|
void readEntries(FileSystemEntriesCallback successCallback,
|
||||||
optional ErrorCallback errorCallback);
|
optional ErrorCallback errorCallback);
|
||||||
};
|
};
|
||||||
callback FileSystemEntriesCallback = void (sequence<FileSystemEntry> entries);
|
callback FileSystemEntriesCallback = void (sequence<FileSystemEntry> entries);
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface FileSystemFileEntry : FileSystemEntry {
|
interface FileSystemFileEntry : FileSystemEntry {
|
||||||
void file(FileCallback successCallback,
|
void file(FileCallback successCallback,
|
||||||
optional ErrorCallback errorCallback);
|
optional ErrorCallback errorCallback);
|
||||||
};
|
};
|
||||||
callback FileCallback = void (File file);
|
callback FileCallback = void (File file);
|
||||||
|
|
||||||
|
[Exposed=Window]
|
||||||
interface FileSystem {
|
interface FileSystem {
|
||||||
readonly attribute USVString name;
|
readonly attribute USVString name;
|
||||||
readonly attribute FileSystemDirectoryEntry root;
|
readonly attribute FileSystemDirectoryEntry root;
|
||||||
|
|
|
@ -48,7 +48,6 @@ dictionary PresentationConnectionAvailableEventInit : EventInit {
|
||||||
};
|
};
|
||||||
|
|
||||||
enum PresentationConnectionState { "connecting", "connected", "closed", "terminated" };
|
enum PresentationConnectionState { "connecting", "connected", "closed", "terminated" };
|
||||||
enum BinaryType { "blob", "arraybuffer" };
|
|
||||||
|
|
||||||
[SecureContext, Exposed=Window]
|
[SecureContext, Exposed=Window]
|
||||||
interface PresentationConnection : EventTarget {
|
interface PresentationConnection : EventTarget {
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
// Source: Accelerated Shape Detection in Images (https://wicg.github.io/shape-detection-api/)
|
// Source: Accelerated Shape Detection in Images (https://wicg.github.io/shape-detection-api/)
|
||||||
|
|
||||||
[Exposed=(Window,Worker),
|
[Exposed=(Window,Worker),
|
||||||
SecureContext,
|
SecureContext]
|
||||||
Constructor(optional FaceDetectorOptions faceDetectorOptions = {})]
|
|
||||||
interface FaceDetector {
|
interface FaceDetector {
|
||||||
|
constructor(optional FaceDetectorOptions faceDetectorOptions = {});
|
||||||
Promise<sequence<DetectedFace>> detect(ImageBitmapSource image);
|
Promise<sequence<DetectedFace>> detect(ImageBitmapSource image);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,9 +35,9 @@ enum LandmarkType {
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=(Window,Worker),
|
[Exposed=(Window,Worker),
|
||||||
SecureContext,
|
SecureContext]
|
||||||
Constructor(optional BarcodeDetectorOptions barcodeDetectorOptions = {})]
|
|
||||||
interface BarcodeDetector {
|
interface BarcodeDetector {
|
||||||
|
constructor(optional BarcodeDetectorOptions barcodeDetectorOptions = {});
|
||||||
static Promise<sequence<BarcodeFormat>> getSupportedFormats();
|
static Promise<sequence<BarcodeFormat>> getSupportedFormats();
|
||||||
|
|
||||||
Promise<sequence<DetectedBarcode>> detect(ImageBitmapSource image);
|
Promise<sequence<DetectedBarcode>> detect(ImageBitmapSource image);
|
||||||
|
|
|
@ -12,15 +12,15 @@ dictionary DocumentTimelineOptions {
|
||||||
DOMHighResTimeStamp originTime = 0;
|
DOMHighResTimeStamp originTime = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor(optional DocumentTimelineOptions options = {})]
|
|
||||||
interface DocumentTimeline : AnimationTimeline {
|
interface DocumentTimeline : AnimationTimeline {
|
||||||
|
constructor(optional DocumentTimelineOptions options = {});
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor(optional AnimationEffect? effect = null,
|
|
||||||
optional AnimationTimeline? timeline)]
|
|
||||||
interface Animation : EventTarget {
|
interface Animation : EventTarget {
|
||||||
|
constructor(optional AnimationEffect? effect = null,
|
||||||
|
optional AnimationTimeline? timeline);
|
||||||
attribute DOMString id;
|
attribute DOMString id;
|
||||||
attribute AnimationEffect? effect;
|
attribute AnimationEffect? effect;
|
||||||
readonly attribute AnimationTimeline? timeline;
|
readonly attribute AnimationTimeline? timeline;
|
||||||
|
@ -90,12 +90,12 @@ dictionary ComputedEffectTiming : EffectTiming {
|
||||||
unrestricted double? currentIteration;
|
unrestricted double? currentIteration;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor((Element or CSSPseudoElement)? target,
|
|
||||||
object? keyframes,
|
|
||||||
optional (unrestricted double or KeyframeEffectOptions) options = {}),
|
|
||||||
Constructor(KeyframeEffect source)]
|
|
||||||
interface KeyframeEffect : AnimationEffect {
|
interface KeyframeEffect : AnimationEffect {
|
||||||
|
constructor((Element or CSSPseudoElement)? target,
|
||||||
|
object? keyframes,
|
||||||
|
optional (unrestricted double or KeyframeEffectOptions) options = {});
|
||||||
|
constructor(KeyframeEffect source);
|
||||||
attribute (Element or CSSPseudoElement)? target;
|
attribute (Element or CSSPseudoElement)? target;
|
||||||
attribute CompositeOperation composite;
|
attribute CompositeOperation composite;
|
||||||
sequence<object> getKeyframes();
|
sequence<object> getKeyframes();
|
||||||
|
@ -155,9 +155,9 @@ Element includes Animatable;
|
||||||
|
|
||||||
CSSPseudoElement includes Animatable;
|
CSSPseudoElement includes Animatable;
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor(DOMString type, optional AnimationPlaybackEventInit eventInitDict = {})]
|
|
||||||
interface AnimationPlaybackEvent : Event {
|
interface AnimationPlaybackEvent : Event {
|
||||||
|
constructor(DOMString type, optional AnimationPlaybackEventInit eventInitDict = {});
|
||||||
readonly attribute double? currentTime;
|
readonly attribute double? currentTime;
|
||||||
readonly attribute double? timelineTime;
|
readonly attribute double? timelineTime;
|
||||||
};
|
};
|
||||||
|
|
|
@ -60,10 +60,10 @@ interface BluetoothPermissionResult : PermissionStatus {
|
||||||
|
|
||||||
[
|
[
|
||||||
Exposed=Window,
|
Exposed=Window,
|
||||||
Constructor(DOMString type, optional ValueEventInit initDict = {}),
|
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface ValueEvent : Event {
|
interface ValueEvent : Event {
|
||||||
|
constructor(DOMString type, optional ValueEventInit initDict = {});
|
||||||
readonly attribute any value;
|
readonly attribute any value;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -95,10 +95,10 @@ interface BluetoothServiceDataMap {
|
||||||
};
|
};
|
||||||
[
|
[
|
||||||
Exposed=Window,
|
Exposed=Window,
|
||||||
Constructor(DOMString type, BluetoothAdvertisingEventInit init),
|
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface BluetoothAdvertisingEvent : Event {
|
interface BluetoothAdvertisingEvent : Event {
|
||||||
|
constructor(DOMString type, BluetoothAdvertisingEventInit init);
|
||||||
[SameObject]
|
[SameObject]
|
||||||
readonly attribute BluetoothDevice device;
|
readonly attribute BluetoothDevice device;
|
||||||
readonly attribute FrozenArray<UUID> uuids;
|
readonly attribute FrozenArray<UUID> uuids;
|
||||||
|
|
|
@ -38,7 +38,7 @@ interface BaseAudioContext : EventTarget {
|
||||||
IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback);
|
IIRFilterNode createIIRFilter (sequence<double> feedforward, sequence<double> feedback);
|
||||||
OscillatorNode createOscillator ();
|
OscillatorNode createOscillator ();
|
||||||
PannerNode createPanner ();
|
PannerNode createPanner ();
|
||||||
PeriodicWave createPeriodicWave (sequence<float> real, sequence<float> imag, optional PeriodicWaveConstraints constraints);
|
PeriodicWave createPeriodicWave (sequence<float> real, sequence<float> imag, optional PeriodicWaveConstraints constraints = {});
|
||||||
ScriptProcessorNode createScriptProcessor(optional unsigned long bufferSize = 0,
|
ScriptProcessorNode createScriptProcessor(optional unsigned long bufferSize = 0,
|
||||||
optional unsigned long numberOfInputChannels = 2,
|
optional unsigned long numberOfInputChannels = 2,
|
||||||
optional unsigned long numberOfOutputChannels = 2);
|
optional unsigned long numberOfOutputChannels = 2);
|
||||||
|
@ -56,9 +56,9 @@ enum AudioContextLatencyCategory {
|
||||||
"playback"
|
"playback"
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (optional AudioContextOptions contextOptions)]
|
|
||||||
interface AudioContext : BaseAudioContext {
|
interface AudioContext : BaseAudioContext {
|
||||||
|
constructor (optional AudioContextOptions contextOptions = {});
|
||||||
readonly attribute double baseLatency;
|
readonly attribute double baseLatency;
|
||||||
readonly attribute double outputLatency;
|
readonly attribute double outputLatency;
|
||||||
AudioTimestamp getOutputTimestamp ();
|
AudioTimestamp getOutputTimestamp ();
|
||||||
|
@ -81,10 +81,10 @@ dictionary AudioTimestamp {
|
||||||
DOMHighResTimeStamp performanceTime;
|
DOMHighResTimeStamp performanceTime;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (OfflineAudioContextOptions contextOptions),
|
|
||||||
Constructor (unsigned long numberOfChannels, unsigned long length, float sampleRate)]
|
|
||||||
interface OfflineAudioContext : BaseAudioContext {
|
interface OfflineAudioContext : BaseAudioContext {
|
||||||
|
constructor(OfflineAudioContextOptions contextOptions);
|
||||||
|
constructor(unsigned long numberOfChannels, unsigned long length, float sampleRate);
|
||||||
Promise<AudioBuffer> startRendering();
|
Promise<AudioBuffer> startRendering();
|
||||||
Promise<void> resume();
|
Promise<void> resume();
|
||||||
Promise<void> suspend(double suspendTime);
|
Promise<void> suspend(double suspendTime);
|
||||||
|
@ -98,9 +98,9 @@ dictionary OfflineAudioContextOptions {
|
||||||
required float sampleRate;
|
required float sampleRate;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (DOMString type, OfflineAudioCompletionEventInit eventInitDict)]
|
|
||||||
interface OfflineAudioCompletionEvent : Event {
|
interface OfflineAudioCompletionEvent : Event {
|
||||||
|
constructor (DOMString type, OfflineAudioCompletionEventInit eventInitDict);
|
||||||
readonly attribute AudioBuffer renderedBuffer;
|
readonly attribute AudioBuffer renderedBuffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -108,9 +108,9 @@ dictionary OfflineAudioCompletionEventInit : EventInit {
|
||||||
required AudioBuffer renderedBuffer;
|
required AudioBuffer renderedBuffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (AudioBufferOptions options)]
|
|
||||||
interface AudioBuffer {
|
interface AudioBuffer {
|
||||||
|
constructor (AudioBufferOptions options);
|
||||||
readonly attribute float sampleRate;
|
readonly attribute float sampleRate;
|
||||||
readonly attribute unsigned long length;
|
readonly attribute unsigned long length;
|
||||||
readonly attribute double duration;
|
readonly attribute double duration;
|
||||||
|
@ -192,9 +192,9 @@ interface AudioScheduledSourceNode : AudioNode {
|
||||||
void stop(optional double when = 0);
|
void stop(optional double when = 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional AnalyserOptions options = {})]
|
|
||||||
interface AnalyserNode : AudioNode {
|
interface AnalyserNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional AnalyserOptions options = {});
|
||||||
void getFloatFrequencyData (Float32Array array);
|
void getFloatFrequencyData (Float32Array array);
|
||||||
void getByteFrequencyData (Uint8Array array);
|
void getByteFrequencyData (Uint8Array array);
|
||||||
void getFloatTimeDomainData (Float32Array array);
|
void getFloatTimeDomainData (Float32Array array);
|
||||||
|
@ -213,9 +213,9 @@ dictionary AnalyserOptions : AudioNodeOptions {
|
||||||
double smoothingTimeConstant = 0.8;
|
double smoothingTimeConstant = 0.8;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional AudioBufferSourceOptions options = {})]
|
|
||||||
interface AudioBufferSourceNode : AudioScheduledSourceNode {
|
interface AudioBufferSourceNode : AudioScheduledSourceNode {
|
||||||
|
constructor (BaseAudioContext context, optional AudioBufferSourceOptions options = {});
|
||||||
attribute AudioBuffer? buffer;
|
attribute AudioBuffer? buffer;
|
||||||
readonly attribute AudioParam playbackRate;
|
readonly attribute AudioParam playbackRate;
|
||||||
readonly attribute AudioParam detune;
|
readonly attribute AudioParam detune;
|
||||||
|
@ -256,9 +256,9 @@ interface AudioListener {
|
||||||
void setOrientation (float x, float y, float z, float xUp, float yUp, float zUp);
|
void setOrientation (float x, float y, float z, float xUp, float yUp, float zUp);
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (DOMString type, AudioProcessingEventInit eventInitDict)]
|
|
||||||
interface AudioProcessingEvent : Event {
|
interface AudioProcessingEvent : Event {
|
||||||
|
constructor (DOMString type, AudioProcessingEventInit eventInitDict);
|
||||||
readonly attribute double playbackTime;
|
readonly attribute double playbackTime;
|
||||||
readonly attribute AudioBuffer inputBuffer;
|
readonly attribute AudioBuffer inputBuffer;
|
||||||
readonly attribute AudioBuffer outputBuffer;
|
readonly attribute AudioBuffer outputBuffer;
|
||||||
|
@ -281,9 +281,9 @@ enum BiquadFilterType {
|
||||||
"allpass"
|
"allpass"
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional BiquadFilterOptions options = {})]
|
|
||||||
interface BiquadFilterNode : AudioNode {
|
interface BiquadFilterNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional BiquadFilterOptions options = {});
|
||||||
attribute BiquadFilterType type;
|
attribute BiquadFilterType type;
|
||||||
readonly attribute AudioParam frequency;
|
readonly attribute AudioParam frequency;
|
||||||
readonly attribute AudioParam detune;
|
readonly attribute AudioParam detune;
|
||||||
|
@ -300,27 +300,27 @@ dictionary BiquadFilterOptions : AudioNodeOptions {
|
||||||
float gain = 0;
|
float gain = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional ChannelMergerOptions options = {})]
|
|
||||||
interface ChannelMergerNode : AudioNode {
|
interface ChannelMergerNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional ChannelMergerOptions options = {});
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary ChannelMergerOptions : AudioNodeOptions {
|
dictionary ChannelMergerOptions : AudioNodeOptions {
|
||||||
unsigned long numberOfInputs = 6;
|
unsigned long numberOfInputs = 6;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional ChannelSplitterOptions options = {})]
|
|
||||||
interface ChannelSplitterNode : AudioNode {
|
interface ChannelSplitterNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional ChannelSplitterOptions options = {});
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary ChannelSplitterOptions : AudioNodeOptions {
|
dictionary ChannelSplitterOptions : AudioNodeOptions {
|
||||||
unsigned long numberOfOutputs = 6;
|
unsigned long numberOfOutputs = 6;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional ConstantSourceOptions options = {})]
|
|
||||||
interface ConstantSourceNode : AudioScheduledSourceNode {
|
interface ConstantSourceNode : AudioScheduledSourceNode {
|
||||||
|
constructor (BaseAudioContext context, optional ConstantSourceOptions options = {});
|
||||||
readonly attribute AudioParam offset;
|
readonly attribute AudioParam offset;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -328,9 +328,9 @@ dictionary ConstantSourceOptions {
|
||||||
float offset = 1;
|
float offset = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional ConvolverOptions options = {})]
|
|
||||||
interface ConvolverNode : AudioNode {
|
interface ConvolverNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional ConvolverOptions options = {});
|
||||||
attribute AudioBuffer? buffer;
|
attribute AudioBuffer? buffer;
|
||||||
attribute boolean normalize;
|
attribute boolean normalize;
|
||||||
};
|
};
|
||||||
|
@ -340,9 +340,9 @@ dictionary ConvolverOptions : AudioNodeOptions {
|
||||||
boolean disableNormalization = false;
|
boolean disableNormalization = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional DelayOptions options = {})]
|
|
||||||
interface DelayNode : AudioNode {
|
interface DelayNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional DelayOptions options = {});
|
||||||
readonly attribute AudioParam delayTime;
|
readonly attribute AudioParam delayTime;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -351,9 +351,9 @@ dictionary DelayOptions : AudioNodeOptions {
|
||||||
double delayTime = 0;
|
double delayTime = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional DynamicsCompressorOptions options = {})]
|
|
||||||
interface DynamicsCompressorNode : AudioNode {
|
interface DynamicsCompressorNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional DynamicsCompressorOptions options = {});
|
||||||
readonly attribute AudioParam threshold;
|
readonly attribute AudioParam threshold;
|
||||||
readonly attribute AudioParam knee;
|
readonly attribute AudioParam knee;
|
||||||
readonly attribute AudioParam ratio;
|
readonly attribute AudioParam ratio;
|
||||||
|
@ -370,9 +370,9 @@ dictionary DynamicsCompressorOptions : AudioNodeOptions {
|
||||||
float threshold = -24;
|
float threshold = -24;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional GainOptions options = {})]
|
|
||||||
interface GainNode : AudioNode {
|
interface GainNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional GainOptions options = {});
|
||||||
readonly attribute AudioParam gain;
|
readonly attribute AudioParam gain;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -380,9 +380,9 @@ dictionary GainOptions : AudioNodeOptions {
|
||||||
float gain = 1.0;
|
float gain = 1.0;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, IIRFilterOptions options)]
|
|
||||||
interface IIRFilterNode : AudioNode {
|
interface IIRFilterNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, IIRFilterOptions options);
|
||||||
void getFrequencyResponse (Float32Array frequencyHz, Float32Array magResponse, Float32Array phaseResponse);
|
void getFrequencyResponse (Float32Array frequencyHz, Float32Array magResponse, Float32Array phaseResponse);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -391,9 +391,9 @@ dictionary IIRFilterOptions : AudioNodeOptions {
|
||||||
required sequence<double> feedback;
|
required sequence<double> feedback;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (AudioContext context, MediaElementAudioSourceOptions options)]
|
|
||||||
interface MediaElementAudioSourceNode : AudioNode {
|
interface MediaElementAudioSourceNode : AudioNode {
|
||||||
|
constructor (AudioContext context, MediaElementAudioSourceOptions options);
|
||||||
[SameObject] readonly attribute HTMLMediaElement mediaElement;
|
[SameObject] readonly attribute HTMLMediaElement mediaElement;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -401,15 +401,15 @@ dictionary MediaElementAudioSourceOptions {
|
||||||
required HTMLMediaElement mediaElement;
|
required HTMLMediaElement mediaElement;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (AudioContext context, optional AudioNodeOptions options = {})]
|
|
||||||
interface MediaStreamAudioDestinationNode : AudioNode {
|
interface MediaStreamAudioDestinationNode : AudioNode {
|
||||||
|
constructor (AudioContext context, optional AudioNodeOptions options = {});
|
||||||
readonly attribute MediaStream stream;
|
readonly attribute MediaStream stream;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (AudioContext context, MediaStreamAudioSourceOptions options)]
|
|
||||||
interface MediaStreamAudioSourceNode : AudioNode {
|
interface MediaStreamAudioSourceNode : AudioNode {
|
||||||
|
constructor (AudioContext context, MediaStreamAudioSourceOptions options);
|
||||||
[SameObject] readonly attribute MediaStream mediaStream;
|
[SameObject] readonly attribute MediaStream mediaStream;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -417,9 +417,9 @@ dictionary MediaStreamAudioSourceOptions {
|
||||||
required MediaStream mediaStream;
|
required MediaStream mediaStream;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (AudioContext context, MediaStreamTrackAudioSourceOptions options)]
|
|
||||||
interface MediaStreamTrackAudioSourceNode : AudioNode {
|
interface MediaStreamTrackAudioSourceNode : AudioNode {
|
||||||
|
constructor (AudioContext context, MediaStreamTrackAudioSourceOptions options);
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary MediaStreamTrackAudioSourceOptions {
|
dictionary MediaStreamTrackAudioSourceOptions {
|
||||||
|
@ -434,9 +434,9 @@ enum OscillatorType {
|
||||||
"custom"
|
"custom"
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional OscillatorOptions options = {})]
|
|
||||||
interface OscillatorNode : AudioScheduledSourceNode {
|
interface OscillatorNode : AudioScheduledSourceNode {
|
||||||
|
constructor (BaseAudioContext context, optional OscillatorOptions options = {});
|
||||||
attribute OscillatorType type;
|
attribute OscillatorType type;
|
||||||
readonly attribute AudioParam frequency;
|
readonly attribute AudioParam frequency;
|
||||||
readonly attribute AudioParam detune;
|
readonly attribute AudioParam detune;
|
||||||
|
@ -461,9 +461,9 @@ enum DistanceModelType {
|
||||||
"exponential"
|
"exponential"
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional PannerOptions options = {})]
|
|
||||||
interface PannerNode : AudioNode {
|
interface PannerNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional PannerOptions options = {});
|
||||||
attribute PanningModelType panningModel;
|
attribute PanningModelType panningModel;
|
||||||
readonly attribute AudioParam positionX;
|
readonly attribute AudioParam positionX;
|
||||||
readonly attribute AudioParam positionY;
|
readonly attribute AudioParam positionY;
|
||||||
|
@ -499,9 +499,9 @@ dictionary PannerOptions : AudioNodeOptions {
|
||||||
double coneOuterGain = 0;
|
double coneOuterGain = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional PeriodicWaveOptions options = {})]
|
|
||||||
interface PeriodicWave {
|
interface PeriodicWave {
|
||||||
|
constructor (BaseAudioContext context, optional PeriodicWaveOptions options = {});
|
||||||
};
|
};
|
||||||
|
|
||||||
dictionary PeriodicWaveConstraints {
|
dictionary PeriodicWaveConstraints {
|
||||||
|
@ -519,9 +519,9 @@ interface ScriptProcessorNode : AudioNode {
|
||||||
readonly attribute long bufferSize;
|
readonly attribute long bufferSize;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional StereoPannerOptions options = {})]
|
|
||||||
interface StereoPannerNode : AudioNode {
|
interface StereoPannerNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional StereoPannerOptions options = {});
|
||||||
readonly attribute AudioParam pan;
|
readonly attribute AudioParam pan;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -535,9 +535,9 @@ enum OverSampleType {
|
||||||
"4x"
|
"4x"
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window]
|
||||||
Constructor (BaseAudioContext context, optional WaveShaperOptions options = {})]
|
|
||||||
interface WaveShaperNode : AudioNode {
|
interface WaveShaperNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, optional WaveShaperOptions options = {});
|
||||||
attribute Float32Array? curve;
|
attribute Float32Array? curve;
|
||||||
attribute OverSampleType oversample;
|
attribute OverSampleType oversample;
|
||||||
};
|
};
|
||||||
|
@ -566,11 +566,10 @@ interface AudioParamMap {
|
||||||
readonly maplike<DOMString, AudioParam>;
|
readonly maplike<DOMString, AudioParam>;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=Window,
|
[Exposed=Window, SecureContext]
|
||||||
SecureContext,
|
|
||||||
Constructor (BaseAudioContext context, DOMString name,
|
|
||||||
optional AudioWorkletNodeOptions options = {})]
|
|
||||||
interface AudioWorkletNode : AudioNode {
|
interface AudioWorkletNode : AudioNode {
|
||||||
|
constructor (BaseAudioContext context, DOMString name,
|
||||||
|
optional AudioWorkletNodeOptions options = {});
|
||||||
readonly attribute AudioParamMap parameters;
|
readonly attribute AudioParamMap parameters;
|
||||||
readonly attribute MessagePort port;
|
readonly attribute MessagePort port;
|
||||||
attribute EventHandler onprocessorerror;
|
attribute EventHandler onprocessorerror;
|
||||||
|
@ -584,9 +583,9 @@ dictionary AudioWorkletNodeOptions : AudioNodeOptions {
|
||||||
object processorOptions;
|
object processorOptions;
|
||||||
};
|
};
|
||||||
|
|
||||||
[Exposed=AudioWorklet,
|
[Exposed=AudioWorklet]
|
||||||
Constructor (optional AudioWorkletNodeOptions options = {})]
|
|
||||||
interface AudioWorkletProcessor {
|
interface AudioWorkletProcessor {
|
||||||
|
constructor (optional AudioWorkletNodeOptions options = {});
|
||||||
readonly attribute MessagePort port;
|
readonly attribute MessagePort port;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
67
tests/wpt/web-platform-tests/interfaces/webrtc-identity.idl
Normal file
67
tests/wpt/web-platform-tests/interfaces/webrtc-identity.idl
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
// GENERATED CONTENT - DO NOT EDIT
|
||||||
|
// Content was automatically extracted by Reffy into reffy-reports
|
||||||
|
// (https://github.com/tidoust/reffy-reports)
|
||||||
|
// Source: Identity for WebRTC 1.0 (https://w3c.github.io/webrtc-identity/identity.html)
|
||||||
|
|
||||||
|
[Global, Exposed=RTCIdentityProviderGlobalScope]
|
||||||
|
interface RTCIdentityProviderGlobalScope : WorkerGlobalScope {
|
||||||
|
readonly attribute RTCIdentityProviderRegistrar rtcIdentityProvider;
|
||||||
|
};
|
||||||
|
|
||||||
|
[Exposed=RTCIdentityProviderGlobalScope]
|
||||||
|
interface RTCIdentityProviderRegistrar {
|
||||||
|
void register(RTCIdentityProvider idp);
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary RTCIdentityProvider {
|
||||||
|
required GenerateAssertionCallback generateAssertion;
|
||||||
|
required ValidateAssertionCallback validateAssertion;
|
||||||
|
};
|
||||||
|
|
||||||
|
callback GenerateAssertionCallback = Promise<RTCIdentityAssertionResult> (DOMString contents, DOMString origin, RTCIdentityProviderOptions options);
|
||||||
|
|
||||||
|
callback ValidateAssertionCallback = Promise<RTCIdentityValidationResult> (DOMString assertion, DOMString origin);
|
||||||
|
|
||||||
|
dictionary RTCIdentityAssertionResult {
|
||||||
|
required RTCIdentityProviderDetails idp;
|
||||||
|
required DOMString assertion;
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary RTCIdentityProviderDetails {
|
||||||
|
required DOMString domain;
|
||||||
|
DOMString protocol = "default";
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary RTCIdentityValidationResult {
|
||||||
|
required DOMString identity;
|
||||||
|
required DOMString contents;
|
||||||
|
};
|
||||||
|
|
||||||
|
partial interface RTCPeerConnection {
|
||||||
|
void setIdentityProvider(DOMString provider, optional RTCIdentityProviderOptions options);
|
||||||
|
Promise<DOMString> getIdentityAssertion();
|
||||||
|
readonly attribute Promise<RTCIdentityAssertion> peerIdentity;
|
||||||
|
readonly attribute DOMString? idpLoginUrl;
|
||||||
|
readonly attribute DOMString? idpErrorInfo;
|
||||||
|
};
|
||||||
|
|
||||||
|
dictionary RTCIdentityProviderOptions {
|
||||||
|
DOMString protocol = "default";
|
||||||
|
DOMString usernameHint;
|
||||||
|
DOMString peerIdentity;
|
||||||
|
};
|
||||||
|
|
||||||
|
[Constructor(DOMString idp, DOMString name), Exposed=Window]
|
||||||
|
interface RTCIdentityAssertion {
|
||||||
|
attribute DOMString idp;
|
||||||
|
attribute DOMString name;
|
||||||
|
};
|
||||||
|
|
||||||
|
partial dictionary MediaStreamConstraints {
|
||||||
|
DOMString peerIdentity;
|
||||||
|
};
|
||||||
|
|
||||||
|
partial interface MediaStreamTrack {
|
||||||
|
readonly attribute boolean isolated;
|
||||||
|
attribute EventHandler onisolationchange;
|
||||||
|
};
|
|
@ -39,11 +39,11 @@ dictionary USBConnectionEventInit : EventInit {
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(DOMString type, USBConnectionEventInit eventInitDict),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBConnectionEvent : Event {
|
interface USBConnectionEvent : Event {
|
||||||
|
constructor(DOMString type, USBConnectionEventInit eventInitDict);
|
||||||
[SameObject] readonly attribute USBDevice device;
|
[SameObject] readonly attribute USBDevice device;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -110,81 +110,81 @@ dictionary USBControlTransferParameters {
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(USBTransferStatus status, optional DataView? data),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBInTransferResult {
|
interface USBInTransferResult {
|
||||||
|
constructor(USBTransferStatus status, optional DataView? data);
|
||||||
readonly attribute DataView? data;
|
readonly attribute DataView? data;
|
||||||
readonly attribute USBTransferStatus status;
|
readonly attribute USBTransferStatus status;
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBOutTransferResult {
|
interface USBOutTransferResult {
|
||||||
|
constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0);
|
||||||
readonly attribute unsigned long bytesWritten;
|
readonly attribute unsigned long bytesWritten;
|
||||||
readonly attribute USBTransferStatus status;
|
readonly attribute USBTransferStatus status;
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(USBTransferStatus status, optional DataView? data),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBIsochronousInTransferPacket {
|
interface USBIsochronousInTransferPacket {
|
||||||
|
constructor(USBTransferStatus status, optional DataView? data);
|
||||||
readonly attribute DataView? data;
|
readonly attribute DataView? data;
|
||||||
readonly attribute USBTransferStatus status;
|
readonly attribute USBTransferStatus status;
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(sequence<USBIsochronousInTransferPacket> packets, optional DataView? data),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBIsochronousInTransferResult {
|
interface USBIsochronousInTransferResult {
|
||||||
|
constructor(sequence<USBIsochronousInTransferPacket> packets, optional DataView? data);
|
||||||
readonly attribute DataView? data;
|
readonly attribute DataView? data;
|
||||||
readonly attribute FrozenArray<USBIsochronousInTransferPacket> packets;
|
readonly attribute FrozenArray<USBIsochronousInTransferPacket> packets;
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBIsochronousOutTransferPacket {
|
interface USBIsochronousOutTransferPacket {
|
||||||
|
constructor(USBTransferStatus status, optional unsigned long bytesWritten = 0);
|
||||||
readonly attribute unsigned long bytesWritten;
|
readonly attribute unsigned long bytesWritten;
|
||||||
readonly attribute USBTransferStatus status;
|
readonly attribute USBTransferStatus status;
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(sequence<USBIsochronousOutTransferPacket> packets),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBIsochronousOutTransferResult {
|
interface USBIsochronousOutTransferResult {
|
||||||
|
constructor(sequence<USBIsochronousOutTransferPacket> packets);
|
||||||
readonly attribute FrozenArray<USBIsochronousOutTransferPacket> packets;
|
readonly attribute FrozenArray<USBIsochronousOutTransferPacket> packets;
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(USBDevice device, octet configurationValue),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBConfiguration {
|
interface USBConfiguration {
|
||||||
|
constructor(USBDevice device, octet configurationValue);
|
||||||
readonly attribute octet configurationValue;
|
readonly attribute octet configurationValue;
|
||||||
readonly attribute DOMString? configurationName;
|
readonly attribute DOMString? configurationName;
|
||||||
readonly attribute FrozenArray<USBInterface> interfaces;
|
readonly attribute FrozenArray<USBInterface> interfaces;
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(USBConfiguration configuration, octet interfaceNumber),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBInterface {
|
interface USBInterface {
|
||||||
|
constructor(USBConfiguration configuration, octet interfaceNumber);
|
||||||
readonly attribute octet interfaceNumber;
|
readonly attribute octet interfaceNumber;
|
||||||
readonly attribute USBAlternateInterface alternate;
|
readonly attribute USBAlternateInterface alternate;
|
||||||
readonly attribute FrozenArray<USBAlternateInterface> alternates;
|
readonly attribute FrozenArray<USBAlternateInterface> alternates;
|
||||||
|
@ -192,11 +192,11 @@ interface USBInterface {
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(USBInterface deviceInterface, octet alternateSetting),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBAlternateInterface {
|
interface USBAlternateInterface {
|
||||||
|
constructor(USBInterface deviceInterface, octet alternateSetting);
|
||||||
readonly attribute octet alternateSetting;
|
readonly attribute octet alternateSetting;
|
||||||
readonly attribute octet interfaceClass;
|
readonly attribute octet interfaceClass;
|
||||||
readonly attribute octet interfaceSubclass;
|
readonly attribute octet interfaceSubclass;
|
||||||
|
@ -217,11 +217,11 @@ enum USBEndpointType {
|
||||||
};
|
};
|
||||||
|
|
||||||
[
|
[
|
||||||
Constructor(USBAlternateInterface alternate, octet endpointNumber, USBDirection direction),
|
|
||||||
Exposed=(DedicatedWorker,SharedWorker,Window),
|
Exposed=(DedicatedWorker,SharedWorker,Window),
|
||||||
SecureContext
|
SecureContext
|
||||||
]
|
]
|
||||||
interface USBEndpoint {
|
interface USBEndpoint {
|
||||||
|
constructor(USBAlternateInterface alternate, octet endpointNumber, USBDirection direction);
|
||||||
readonly attribute octet endpointNumber;
|
readonly attribute octet endpointNumber;
|
||||||
readonly attribute USBDirection direction;
|
readonly attribute USBDirection direction;
|
||||||
readonly attribute USBEndpointType type;
|
readonly attribute USBEndpointType type;
|
||||||
|
@ -242,6 +242,7 @@ dictionary USBPermissionStorage {
|
||||||
sequence<AllowedUSBDevice> allowedDevices = [];
|
sequence<AllowedUSBDevice> allowedDevices = [];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[Exposed=(DedicatedWorker,SharedWorker,Window)]
|
||||||
interface USBPermissionResult : PermissionStatus {
|
interface USBPermissionResult : PermissionStatus {
|
||||||
attribute FrozenArray<USBDevice> devices;
|
attribute FrozenArray<USBDevice> devices;
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
self.addEventListener('canmakepayment', (event) => {
|
||||||
|
event.respondWith(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
async function responder(event) {
|
||||||
|
const methodName = event.methodData[0].supportedMethods;
|
||||||
|
const shippingOption = event.shippingOptions[0].id;
|
||||||
|
const shippingAddress = {
|
||||||
|
addressLine: [
|
||||||
|
'1875 Explorer St #1000',
|
||||||
|
],
|
||||||
|
city: 'Reston',
|
||||||
|
country: 'US',
|
||||||
|
dependentLocality: '',
|
||||||
|
organization: 'Google',
|
||||||
|
phone: '+15555555555',
|
||||||
|
postalCode: '20190',
|
||||||
|
recipient: 'John Smith',
|
||||||
|
region: 'VA',
|
||||||
|
sortingCode: '',
|
||||||
|
};
|
||||||
|
if (!event.changeShippingAddress) {
|
||||||
|
return {
|
||||||
|
methodName,
|
||||||
|
details: {
|
||||||
|
changeShippingAddressReturned:
|
||||||
|
'The changeShippingAddress() method is not implemented.',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
let changeShippingAddressReturned;
|
||||||
|
try {
|
||||||
|
const response = await event.changeShippingAddress(shippingAddress);
|
||||||
|
changeShippingAddressReturned = response;
|
||||||
|
} catch (err) {
|
||||||
|
changeShippingAddressReturned = err.message;
|
||||||
|
}
|
||||||
|
return {methodName, details: {changeShippingAddressReturned}, shippingAddress,
|
||||||
|
shippingOption};
|
||||||
|
}
|
||||||
|
|
||||||
|
self.addEventListener('paymentrequest', (event) => {
|
||||||
|
event.respondWith(responder(event));
|
||||||
|
});
|
|
@ -0,0 +1,44 @@
|
||||||
|
self.addEventListener('canmakepayment', (event) => {
|
||||||
|
event.respondWith(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
async function responder(event) {
|
||||||
|
const methodName = event.methodData[0].supportedMethods;
|
||||||
|
const shippingOption = event.shippingOptions[0].id;
|
||||||
|
const shippingAddress = {
|
||||||
|
addressLine: [
|
||||||
|
'1875 Explorer St #1000',
|
||||||
|
],
|
||||||
|
city: 'Reston',
|
||||||
|
country: 'US',
|
||||||
|
dependentLocality: '',
|
||||||
|
organization: 'Google',
|
||||||
|
phone: '+15555555555',
|
||||||
|
postalCode: '20190',
|
||||||
|
recipient: 'John Smith',
|
||||||
|
region: 'VA',
|
||||||
|
sortingCode: '',
|
||||||
|
};
|
||||||
|
if (!event.changeShippingOption) {
|
||||||
|
return {
|
||||||
|
methodName,
|
||||||
|
details: {
|
||||||
|
changeShippingOptionReturned:
|
||||||
|
'The changeShippingOption() method is not implemented.',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
let changeShippingOptionReturned;
|
||||||
|
try {
|
||||||
|
const response = await event.changeShippingOption(shippingOption);
|
||||||
|
changeShippingOptionReturned = response;
|
||||||
|
} catch (err) {
|
||||||
|
changeShippingOptionReturned = err.message;
|
||||||
|
}
|
||||||
|
return {methodName, details: {changeShippingOptionReturned}, shippingAddress,
|
||||||
|
shippingOption};
|
||||||
|
}
|
||||||
|
|
||||||
|
self.addEventListener('paymentrequest', (event) => {
|
||||||
|
event.respondWith(responder(event));
|
||||||
|
});
|
|
@ -0,0 +1,161 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>Tests for PaymentRequestEvent.changeShippingAddress()</title>
|
||||||
|
|
||||||
|
<link rel="manifest" href="/payment-handler/basic-card.json" />
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/testdriver.js"></script>
|
||||||
|
<script src="/resources/testdriver-vendor.js"></script>
|
||||||
|
<script src="register-and-activate-service-worker.js"></script>
|
||||||
|
<p>If the payment sheet is shown, please authorize the mock payment.</p>
|
||||||
|
<script>
|
||||||
|
const methodName = window.location.origin + '/payment-handler/payment-app/';
|
||||||
|
function createRequest() {
|
||||||
|
return new PaymentRequest([{supportedMethods: methodName}], {
|
||||||
|
total: {label: 'Total', amount: {currency: 'USD', value: '0.01'}},
|
||||||
|
shippingOptions: [{
|
||||||
|
id: 'freeShippingOption',
|
||||||
|
label: 'Free global shipping',
|
||||||
|
amount: {
|
||||||
|
currency: 'USD',
|
||||||
|
value: '0',
|
||||||
|
},
|
||||||
|
selected: false,
|
||||||
|
}],
|
||||||
|
}, {requestShipping: true});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function completeAppSetUp(registration) {
|
||||||
|
await registration.paymentManager.instruments.clear();
|
||||||
|
await registration.paymentManager.instruments.set('instrument-key', {
|
||||||
|
name: 'Instrument Name',
|
||||||
|
method: methodName,
|
||||||
|
});
|
||||||
|
await navigator.serviceWorker.ready;
|
||||||
|
await registration.paymentManager.enableDelegations(['shippingAddress']);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function runTests(registration) {
|
||||||
|
await completeAppSetUp(registration);
|
||||||
|
promise_test(async (t) => {
|
||||||
|
const request = createRequest();
|
||||||
|
// Intentionally do not respond to the 'shippingaddresschange' event.
|
||||||
|
const response = await test_driver.bless('showing a payment sheet', () =>
|
||||||
|
request.show()
|
||||||
|
);
|
||||||
|
const complete_promise = response.complete('success');
|
||||||
|
|
||||||
|
assert_equals(response.details.changeShippingAddressReturned, null);
|
||||||
|
|
||||||
|
return complete_promise;
|
||||||
|
}, 'If updateWith(details) is not run, changeShippingAddress() returns null.');
|
||||||
|
|
||||||
|
promise_test(async (t) => {
|
||||||
|
const request = createRequest();
|
||||||
|
request.addEventListener('shippingaddresschange', (event) => {
|
||||||
|
assert_equals(request.shippingAddress.organization, '', 'organization should be redacted');
|
||||||
|
assert_equals(request.shippingAddress.phone, '', 'phone should be redacted');
|
||||||
|
assert_equals(request.shippingAddress.recipient, '', 'recipient should be redacted');
|
||||||
|
assert_equals(request.shippingAddress.addressLine.length, 0, 'addressLine should be redacted');
|
||||||
|
assert_equals(request.shippingAddress.city, 'Reston');
|
||||||
|
assert_equals(request.shippingAddress.country, 'US');
|
||||||
|
assert_equals(request.shippingAddress.postalCode, '20190');
|
||||||
|
assert_equals(request.shippingAddress.region, 'VA');
|
||||||
|
event.updateWith({
|
||||||
|
total: {label: 'Total', amount: {currency: 'GBP', value: '0.02'}},
|
||||||
|
error: 'Error for test',
|
||||||
|
modifiers: [
|
||||||
|
{
|
||||||
|
supportedMethods: methodName,
|
||||||
|
data: {soup: 'potato'},
|
||||||
|
total: {
|
||||||
|
label: 'Modified total',
|
||||||
|
amount: {currency: 'EUR', value: '0.03'},
|
||||||
|
},
|
||||||
|
additionalDisplayItems: [
|
||||||
|
{
|
||||||
|
label: 'Modified display item',
|
||||||
|
amount: {currency: 'INR', value: '0.06'},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
supportedMethods: methodName + '2',
|
||||||
|
data: {soup: 'tomato'},
|
||||||
|
total: {
|
||||||
|
label: 'Modified total #2',
|
||||||
|
amount: {currency: 'CHF', value: '0.07'},
|
||||||
|
},
|
||||||
|
additionalDisplayItems: [
|
||||||
|
{
|
||||||
|
label: 'Modified display item #2',
|
||||||
|
amount: {currency: 'CAD', value: '0.08'},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
displayItems: [
|
||||||
|
{
|
||||||
|
label: 'Display item',
|
||||||
|
amount: {currency: 'CNY', value: '0.04'},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
shippingOptions: [
|
||||||
|
{
|
||||||
|
id: 'freeShippingOption',
|
||||||
|
label: 'express global shipping',
|
||||||
|
amount: {
|
||||||
|
currency: 'USD',
|
||||||
|
value: '0',
|
||||||
|
},
|
||||||
|
selected: true,
|
||||||
|
}
|
||||||
|
],
|
||||||
|
shippingAddressErrors: {
|
||||||
|
country: 'US only shipping',
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
const response = await test_driver.bless('showing a payment sheet', () =>
|
||||||
|
request.show()
|
||||||
|
);
|
||||||
|
const complete_promise = response.complete('success');
|
||||||
|
const changeShippingAddressReturned =
|
||||||
|
response.details.changeShippingAddressReturned;
|
||||||
|
|
||||||
|
assert_equals(changeShippingAddressReturned.total.currency, 'GBP');
|
||||||
|
assert_equals(changeShippingAddressReturned.total.value, '0.02');
|
||||||
|
assert_equals(changeShippingAddressReturned.total.label, undefined);
|
||||||
|
assert_equals(changeShippingAddressReturned.error, 'Error for test');
|
||||||
|
assert_equals(changeShippingAddressReturned.modifiers.length, 1);
|
||||||
|
assert_equals(changeShippingAddressReturned.displayItems, undefined);
|
||||||
|
assert_equals(changeShippingAddressReturned.shippingOptions.length, 1);
|
||||||
|
assert_equals(changeShippingAddressReturned.paymentMethodErrors, undefined);
|
||||||
|
assert_equals(changeShippingAddressReturned.shippingAddressErrors.country, 'US only shipping');
|
||||||
|
|
||||||
|
const shipping_option = changeShippingAddressReturned.shippingOptions[0];
|
||||||
|
assert_equals(shipping_option.id, 'freeShippingOption' );
|
||||||
|
assert_equals(shipping_option.label, 'express global shipping');
|
||||||
|
assert_equals(shipping_option.amount.currency, 'USD');
|
||||||
|
assert_equals(shipping_option.amount.value, '0');
|
||||||
|
assert_true(shipping_option.selected);
|
||||||
|
|
||||||
|
const modifier = changeShippingAddressReturned.modifiers[0];
|
||||||
|
assert_equals(modifier.supportedMethods, methodName);
|
||||||
|
assert_equals(modifier.data.soup, 'potato');
|
||||||
|
assert_equals(modifier.total.label, '');
|
||||||
|
assert_equals(modifier.total.amount.currency, 'EUR');
|
||||||
|
assert_equals(modifier.total.amount.value, '0.03');
|
||||||
|
assert_equals(modifier.additionalDisplayItems, undefined);
|
||||||
|
|
||||||
|
return complete_promise;
|
||||||
|
}, 'The changeShippingAddress() returns some details from the "shippingaddresschange" event\'s updateWith(details) call.');
|
||||||
|
}
|
||||||
|
|
||||||
|
registerAndActiveServiceWorker(
|
||||||
|
'app-change-shipping-address.js',
|
||||||
|
'payment-app/',
|
||||||
|
runTests
|
||||||
|
);
|
||||||
|
</script>
|
|
@ -0,0 +1,160 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>Tests for PaymentRequestEvent.changeShippingOption()</title>
|
||||||
|
|
||||||
|
<link rel="manifest" href="/payment-handler/basic-card.json" />
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="/resources/testdriver.js"></script>
|
||||||
|
<script src="/resources/testdriver-vendor.js"></script>
|
||||||
|
<script src="register-and-activate-service-worker.js"></script>
|
||||||
|
<p>If the payment sheet is shown, please authorize the mock payment.</p>
|
||||||
|
<script>
|
||||||
|
const methodName = window.location.origin + '/payment-handler/payment-app/';
|
||||||
|
function createRequest() {
|
||||||
|
return new PaymentRequest([{supportedMethods: methodName}], {
|
||||||
|
total: {label: 'Total', amount: {currency: 'USD', value: '0.01'}},
|
||||||
|
shippingOptions: [{
|
||||||
|
id: 'freeShippingOption',
|
||||||
|
label: 'Free global shipping',
|
||||||
|
amount: {
|
||||||
|
currency: 'USD',
|
||||||
|
value: '0',
|
||||||
|
},
|
||||||
|
selected: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'expressShippingOption',
|
||||||
|
label: 'express global shipping',
|
||||||
|
amount: {
|
||||||
|
currency: 'USD',
|
||||||
|
value: '0',
|
||||||
|
},
|
||||||
|
selected: true,
|
||||||
|
}],
|
||||||
|
}, {requestShipping: true});
|
||||||
|
}
|
||||||
|
|
||||||
|
async function completeAppSetUp(registration) {
|
||||||
|
await registration.paymentManager.instruments.clear();
|
||||||
|
await registration.paymentManager.instruments.set('instrument-key', {
|
||||||
|
name: 'Instrument Name',
|
||||||
|
method: methodName,
|
||||||
|
});
|
||||||
|
await navigator.serviceWorker.ready;
|
||||||
|
await registration.paymentManager.enableDelegations(['shippingAddress']);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function runTests(registration) {
|
||||||
|
await completeAppSetUp(registration);
|
||||||
|
promise_test(async (t) => {
|
||||||
|
const request = createRequest();
|
||||||
|
// Intentionally do not respond to the 'shippingoptionchange' event.
|
||||||
|
const response = await test_driver.bless('showing a payment sheet', () =>
|
||||||
|
request.show()
|
||||||
|
);
|
||||||
|
const complete_promise = response.complete('success');
|
||||||
|
|
||||||
|
assert_equals(response.details.changeShippingOptionReturned, null);
|
||||||
|
|
||||||
|
return complete_promise;
|
||||||
|
}, 'If updateWith(details) is not run, changeShippingOption() returns null.');
|
||||||
|
|
||||||
|
promise_test(async (t) => {
|
||||||
|
const request = createRequest();
|
||||||
|
request.addEventListener('shippingoptionchange', (event) => {
|
||||||
|
assert_equals(request.shippingOption, 'freeShippingOption');
|
||||||
|
event.updateWith({
|
||||||
|
total: {label: 'Total', amount: {currency: 'GBP', value: '0.02'}},
|
||||||
|
error: 'Error for test',
|
||||||
|
modifiers: [
|
||||||
|
{
|
||||||
|
supportedMethods: methodName,
|
||||||
|
data: {soup: 'potato'},
|
||||||
|
total: {
|
||||||
|
label: 'Modified total',
|
||||||
|
amount: {currency: 'EUR', value: '0.03'},
|
||||||
|
},
|
||||||
|
additionalDisplayItems: [
|
||||||
|
{
|
||||||
|
label: 'Modified display item',
|
||||||
|
amount: {currency: 'INR', value: '0.06'},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
supportedMethods: methodName + '2',
|
||||||
|
data: {soup: 'tomato'},
|
||||||
|
total: {
|
||||||
|
label: 'Modified total #2',
|
||||||
|
amount: {currency: 'CHF', value: '0.07'},
|
||||||
|
},
|
||||||
|
additionalDisplayItems: [
|
||||||
|
{
|
||||||
|
label: 'Modified display item #2',
|
||||||
|
amount: {currency: 'CAD', value: '0.08'},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
displayItems: [
|
||||||
|
{
|
||||||
|
label: 'Display item',
|
||||||
|
amount: {currency: 'CNY', value: '0.04'},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
shippingOptions: [
|
||||||
|
{
|
||||||
|
id: 'freeShippingOption',
|
||||||
|
label: 'express global shipping',
|
||||||
|
amount: {
|
||||||
|
currency: 'USD',
|
||||||
|
value: '0',
|
||||||
|
},
|
||||||
|
selected: true,
|
||||||
|
}
|
||||||
|
],
|
||||||
|
});
|
||||||
|
});
|
||||||
|
const response = await test_driver.bless('showing a payment sheet', () =>
|
||||||
|
request.show()
|
||||||
|
);
|
||||||
|
const complete_promise = response.complete('success');
|
||||||
|
const changeShippingOptionReturned =
|
||||||
|
response.details.changeShippingOptionReturned;
|
||||||
|
|
||||||
|
assert_equals(changeShippingOptionReturned.total.currency, 'GBP');
|
||||||
|
assert_equals(changeShippingOptionReturned.total.value, '0.02');
|
||||||
|
assert_equals(changeShippingOptionReturned.total.label, undefined);
|
||||||
|
assert_equals(changeShippingOptionReturned.error, 'Error for test');
|
||||||
|
assert_equals(changeShippingOptionReturned.modifiers.length, 1);
|
||||||
|
assert_equals(changeShippingOptionReturned.displayItems, undefined);
|
||||||
|
assert_equals(changeShippingOptionReturned.shippingOptions.length, 1);
|
||||||
|
assert_equals(changeShippingOptionReturned.paymentMethodErrors, undefined);
|
||||||
|
assert_equals(changeShippingOptionReturned.shippingAddressErrors, undefined);
|
||||||
|
|
||||||
|
const shipping_option = changeShippingOptionReturned.shippingOptions[0];
|
||||||
|
assert_equals(shipping_option.id, 'freeShippingOption' );
|
||||||
|
assert_equals(shipping_option.label, 'express global shipping');
|
||||||
|
assert_equals(shipping_option.amount.currency, 'USD');
|
||||||
|
assert_equals(shipping_option.amount.value, '0');
|
||||||
|
assert_true(shipping_option.selected);
|
||||||
|
|
||||||
|
const modifier = changeShippingOptionReturned.modifiers[0];
|
||||||
|
assert_equals(modifier.supportedMethods, methodName);
|
||||||
|
assert_equals(modifier.data.soup, 'potato');
|
||||||
|
assert_equals(modifier.total.label, '');
|
||||||
|
assert_equals(modifier.total.amount.currency, 'EUR');
|
||||||
|
assert_equals(modifier.total.amount.value, '0.03');
|
||||||
|
assert_equals(modifier.additionalDisplayItems, undefined);
|
||||||
|
|
||||||
|
return complete_promise;
|
||||||
|
}, 'The changeShippingOption() returns some details from the "shippingoptionchange" event\'s updateWith(details) call.');
|
||||||
|
}
|
||||||
|
|
||||||
|
registerAndActiveServiceWorker(
|
||||||
|
'app-change-shipping-option.js',
|
||||||
|
'payment-app/',
|
||||||
|
runTests
|
||||||
|
);
|
||||||
|
</script>
|
|
@ -9,7 +9,7 @@ var BarcodeDetectionTest = (() => {
|
||||||
shapeDetection.mojom.BarcodeDetectionProvider);
|
shapeDetection.mojom.BarcodeDetectionProvider);
|
||||||
|
|
||||||
this.interceptor_ = new MojoInterfaceInterceptor(
|
this.interceptor_ = new MojoInterfaceInterceptor(
|
||||||
shapeDetection.mojom.BarcodeDetectionProvider.name);
|
shapeDetection.mojom.BarcodeDetectionProvider.name, "context", true);
|
||||||
this.interceptor_.oninterfacerequest =
|
this.interceptor_.oninterfacerequest =
|
||||||
e => this.bindingSet_.addBinding(this, e.handle);
|
e => this.bindingSet_.addBinding(this, e.handle);
|
||||||
this.interceptor_.start();
|
this.interceptor_.start();
|
||||||
|
|
|
@ -9,7 +9,7 @@ var FaceDetectionTest = (() => {
|
||||||
shapeDetection.mojom.FaceDetectionProvider);
|
shapeDetection.mojom.FaceDetectionProvider);
|
||||||
|
|
||||||
this.interceptor_ = new MojoInterfaceInterceptor(
|
this.interceptor_ = new MojoInterfaceInterceptor(
|
||||||
shapeDetection.mojom.FaceDetectionProvider.name);
|
shapeDetection.mojom.FaceDetectionProvider.name, "context", true);
|
||||||
this.interceptor_.oninterfacerequest =
|
this.interceptor_.oninterfacerequest =
|
||||||
e => this.bindingSet_.addBinding(this, e.handle);
|
e => this.bindingSet_.addBinding(this, e.handle);
|
||||||
this.interceptor_.start();
|
this.interceptor_.start();
|
||||||
|
|
|
@ -346,7 +346,7 @@ def test_tests_affected_idlharness(capsys, manifest_dir):
|
||||||
wpt.main(argv=["tests-affected", "--metadata", manifest_dir, "%s~..%s" % (commit, commit)])
|
wpt.main(argv=["tests-affected", "--metadata", manifest_dir, "%s~..%s" % (commit, commit)])
|
||||||
assert excinfo.value.code == 0
|
assert excinfo.value.code == 0
|
||||||
out, err = capsys.readouterr()
|
out, err = capsys.readouterr()
|
||||||
assert "webrtc-stats/idlharness.window.js\nwebrtc/idlharness.https.window.js\n" == out
|
assert "webrtc-identity/idlharness.https.window.js\nwebrtc-stats/idlharness.window.js\nwebrtc/idlharness.https.window.js\n" == out
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.slow # this updates the manifest
|
@pytest.mark.slow # this updates the manifest
|
||||||
|
|
|
@ -39,6 +39,7 @@ def executor_kwargs(test_type, server_config, cache_manager, run_info_data,
|
||||||
executor_kwargs["supports_eager_pageload"] = False
|
executor_kwargs["supports_eager_pageload"] = False
|
||||||
|
|
||||||
capabilities = {
|
capabilities = {
|
||||||
|
"acceptInsecureCerts": True,
|
||||||
"goog:chromeOptions": {
|
"goog:chromeOptions": {
|
||||||
"prefs": {
|
"prefs": {
|
||||||
"profile": {
|
"profile": {
|
||||||
|
|
|
@ -221,8 +221,10 @@ def pack_result(data):
|
||||||
if not data.get("known_intermittent"):
|
if not data.get("known_intermittent"):
|
||||||
return status_intern.store(data.get("status"))
|
return status_intern.store(data.get("status"))
|
||||||
result = array.array("B")
|
result = array.array("B")
|
||||||
result_parts = ([data["status"], data.get("expected", data["status"])] +
|
expected = data.get("expected")
|
||||||
data["known_intermittent"])
|
if expected is None:
|
||||||
|
expected = data["status"]
|
||||||
|
result_parts = [data["status"], expected] + data["known_intermittent"]
|
||||||
for i, part in enumerate(result_parts):
|
for i, part in enumerate(result_parts):
|
||||||
value = status_intern.store(part)
|
value = status_intern.store(part)
|
||||||
if i % 2 == 0:
|
if i % 2 == 0:
|
||||||
|
@ -688,13 +690,6 @@ class TestFileData(object):
|
||||||
expected.set_leak_threshold(run_info, value)
|
expected.set_leak_threshold(run_info, value)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if prop == "status":
|
|
||||||
status, known_intermittent = unpack_result(value)
|
|
||||||
value = Result(status,
|
|
||||||
known_intermittent,
|
|
||||||
default_expected_by_type[self.item_type,
|
|
||||||
subtest_id is not None])
|
|
||||||
|
|
||||||
test_expected = expected_by_test[test_id]
|
test_expected = expected_by_test[test_id]
|
||||||
if subtest_id is None:
|
if subtest_id is None:
|
||||||
item_expected = test_expected
|
item_expected = test_expected
|
||||||
|
@ -702,7 +697,13 @@ class TestFileData(object):
|
||||||
if isinstance(subtest_id, str):
|
if isinstance(subtest_id, str):
|
||||||
subtest_id = subtest_id.decode("utf8")
|
subtest_id = subtest_id.decode("utf8")
|
||||||
item_expected = test_expected.get_subtest(subtest_id)
|
item_expected = test_expected.get_subtest(subtest_id)
|
||||||
|
|
||||||
if prop == "status":
|
if prop == "status":
|
||||||
|
status, known_intermittent = unpack_result(value)
|
||||||
|
value = Result(status,
|
||||||
|
known_intermittent,
|
||||||
|
default_expected_by_type[self.item_type,
|
||||||
|
subtest_id is not None])
|
||||||
item_expected.set_result(run_info, value)
|
item_expected.set_result(run_info, value)
|
||||||
elif prop == "asserts":
|
elif prop == "asserts":
|
||||||
item_expected.set_asserts(run_info, value)
|
item_expected.set_asserts(run_info, value)
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
|
|
||||||
function expect_blocked_uri(s) { return e => {
|
function expect_blocked_uri(s) { return e => {
|
||||||
assert_true(e.blockedURI === s,
|
assert_true(e.blockedURI === s,
|
||||||
`expected "${e.blockedUri}" to be "${s}".`);
|
`expected "${e.blockedURI}" to be "${s}".`);
|
||||||
return e;
|
return e;
|
||||||
} }
|
} }
|
||||||
|
|
||||||
|
@ -154,6 +154,7 @@
|
||||||
promise_test(t => {
|
promise_test(t => {
|
||||||
let p = Promise.resolve()
|
let p = Promise.resolve()
|
||||||
.then(promise_violation("trusted-types two"))
|
.then(promise_violation("trusted-types two"))
|
||||||
|
.then(expect_blocked_uri("trusted-types-sink"))
|
||||||
.then(expect_sample("Element.innerHTML"))
|
.then(expect_sample("Element.innerHTML"))
|
||||||
.then(expect_sample("abc"));
|
.then(expect_sample("abc"));
|
||||||
expect_throws(_ => { document.getElementById("div").innerHTML = "abc" });
|
expect_throws(_ => { document.getElementById("div").innerHTML = "abc" });
|
||||||
|
@ -163,6 +164,7 @@
|
||||||
promise_test(t => {
|
promise_test(t => {
|
||||||
let p = Promise.resolve()
|
let p = Promise.resolve()
|
||||||
.then(promise_violation("trusted-types two"))
|
.then(promise_violation("trusted-types two"))
|
||||||
|
.then(expect_blocked_uri("trusted-types-sink"))
|
||||||
.then(expect_sample("HTMLAnchorElement.href"));
|
.then(expect_sample("HTMLAnchorElement.href"));
|
||||||
expect_throws(_ => { document.getElementById("anchor").href = "" });
|
expect_throws(_ => { document.getElementById("anchor").href = "" });
|
||||||
return p;
|
return p;
|
||||||
|
@ -171,6 +173,7 @@
|
||||||
promise_test(t => {
|
promise_test(t => {
|
||||||
let p = Promise.resolve()
|
let p = Promise.resolve()
|
||||||
.then(promise_violation("trusted-types two"))
|
.then(promise_violation("trusted-types two"))
|
||||||
|
.then(expect_blocked_uri("trusted-types-sink"))
|
||||||
.then(expect_sample("HTMLElement.innerText"))
|
.then(expect_sample("HTMLElement.innerText"))
|
||||||
.then(expect_sample("2+2;"));
|
.then(expect_sample("2+2;"));
|
||||||
expect_throws(_ => document.getElementById("script").innerText = "2+2;");
|
expect_throws(_ => document.getElementById("script").innerText = "2+2;");
|
||||||
|
@ -180,6 +183,7 @@
|
||||||
promise_test(t => {
|
promise_test(t => {
|
||||||
let p = Promise.resolve()
|
let p = Promise.resolve()
|
||||||
.then(promise_violation("trusted-types one"))
|
.then(promise_violation("trusted-types one"))
|
||||||
|
.then(expect_blocked_uri("trusted-types-sink"))
|
||||||
.then(expect_sample("eval"))
|
.then(expect_sample("eval"))
|
||||||
.then(expect_sample("2+2"))
|
.then(expect_sample("2+2"))
|
||||||
.then(promise_flush());
|
.then(promise_flush());
|
||||||
|
@ -193,6 +197,7 @@
|
||||||
// start of the value, but it should not be excessively long.
|
// start of the value, but it should not be excessively long.
|
||||||
let p = Promise.resolve()
|
let p = Promise.resolve()
|
||||||
.then(promise_violation("trusted-types two"))
|
.then(promise_violation("trusted-types two"))
|
||||||
|
.then(expect_blocked_uri("trusted-types-sink"))
|
||||||
.then(expect_sample("HTMLElement.innerText"))
|
.then(expect_sample("HTMLElement.innerText"))
|
||||||
.then(expect_sample("abbb"))
|
.then(expect_sample("abbb"))
|
||||||
.then(e => assert_less_than(e.sample.length, 150));
|
.then(e => assert_less_than(e.sample.length, 150));
|
||||||
|
@ -211,6 +216,7 @@
|
||||||
promise_test(t => {
|
promise_test(t => {
|
||||||
let p = Promise.resolve()
|
let p = Promise.resolve()
|
||||||
.then(promise_violation("trusted-types one"))
|
.then(promise_violation("trusted-types one"))
|
||||||
|
.then(expect_blocked_uri("trusted-types-sink"))
|
||||||
.then(expect_sample("HTMLAnchorElement.href"))
|
.then(expect_sample("HTMLAnchorElement.href"))
|
||||||
.then(expect_sample("abc"));
|
.then(expect_sample("abc"));
|
||||||
expect_throws(_ => document.getElementById("customlink").href = "abc");
|
expect_throws(_ => document.getElementById("customlink").href = "abc");
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
// META: script=/resources/WebIDLParser.js
|
||||||
|
// META: script=/resources/idlharness.js
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
idl_test(
|
||||||
|
['webrtc-identity'],
|
||||||
|
['webrtc', 'mediacapture-streams', 'html', 'dom'],
|
||||||
|
async idlArray => {
|
||||||
|
idlArray.add_objects({
|
||||||
|
RTCPeerConnection: [`new RTCPeerConnection()`],
|
||||||
|
RTCIdentityAssertion: [`new RTCIdentityAssertion('idp', 'name')`],
|
||||||
|
MediaStreamTrack: ['track'],
|
||||||
|
// TODO: RTCIdentityProviderGlobalScope
|
||||||
|
// TODO: RTCIdentityProviderRegistrar
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
self.track = await navigator.mediaDevices
|
||||||
|
.getUserMedia({audio: true})
|
||||||
|
.then(m => m.getTracks()[0]);
|
||||||
|
} catch (e) {}
|
||||||
|
}
|
||||||
|
);
|
|
@ -30,6 +30,31 @@ let assert_point_approx_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefi
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// |p1|, |p2| - objects with x, y, z, w components that are floating point numbers
|
||||||
|
// |epsilon| - float specifying precision
|
||||||
|
// |prefix| - string used as a prefix for logging
|
||||||
|
let assert_point_significantly_not_equals = function(p1, p2, epsilon = FLOAT_EPSILON, prefix = "") {
|
||||||
|
|
||||||
|
assert_not_equals(p1, null, prefix + "p1 must be non-null");
|
||||||
|
assert_not_equals(p2, null, prefix + "p2 must be non-null");
|
||||||
|
|
||||||
|
let mismatched_component = null;
|
||||||
|
for (const v of ['x', 'y', 'z', 'w']) {
|
||||||
|
if (Math.abs(p1[v] - p2[v]) > epsilon) {
|
||||||
|
mismatched_component = v;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mismatched_component === null) {
|
||||||
|
let error_message = prefix + ' Point comparison failed.\n';
|
||||||
|
error_message += ` p1: {x: ${p1.x}, y: ${p1.y}, z: ${p1.z}, w: ${p1.w}}\n`;
|
||||||
|
error_message += ` p2: {x: ${p2.x}, y: ${p2.y}, z: ${p2.z}, w: ${p2.w}}\n`;
|
||||||
|
error_message += ` Difference in components did not exceeded the given epsilon.\n`;
|
||||||
|
assert_unreached(error_message);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// |m1|, |m2| - arrays of floating point numbers
|
// |m1|, |m2| - arrays of floating point numbers
|
||||||
// |epsilon| - float specifying precision
|
// |epsilon| - float specifying precision
|
||||||
// |prefix| - string used as a prefix for logging
|
// |prefix| - string used as a prefix for logging
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="/resources/testharness.js"></script>
|
||||||
|
<script src="/resources/testharnessreport.js"></script>
|
||||||
|
<script src="resources/webxr_util.js"></script>
|
||||||
|
<script src="resources/webxr_test_constants.js"></script>
|
||||||
|
<script src="resources/webxr_test_asserts.js"></script>
|
||||||
|
<canvas id="webgl-canvas"></canvas>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
let testName = "Creating XRReferenceSpace origin offset off of `viewer` space works.";
|
||||||
|
|
||||||
|
let fakeDeviceInitParams = {
|
||||||
|
supportsImmersive: true,
|
||||||
|
viewerOrigin: VALID_POSE_TRANSFORM,
|
||||||
|
views: VALID_VIEWS,
|
||||||
|
supportedFeatures: ALL_FEATURES
|
||||||
|
};
|
||||||
|
|
||||||
|
let originOffsetPosition = new DOMPointReadOnly(0, 0, 1);
|
||||||
|
|
||||||
|
let testFunction =
|
||||||
|
(session, fakeDeviceController, t) => new Promise((resolve) => {
|
||||||
|
|
||||||
|
session.requestReferenceSpace('local').then( (localSpace) => {
|
||||||
|
session.requestReferenceSpace('viewer').then( (viewerSpace) => {
|
||||||
|
|
||||||
|
let offsetSpace = viewerSpace.getOffsetReferenceSpace(
|
||||||
|
new XRRigidTransform(originOffsetPosition));
|
||||||
|
|
||||||
|
function OnFrame(time, frame) {
|
||||||
|
let viewerPose = frame.getPose(viewerSpace, localSpace);
|
||||||
|
let offsetPose = frame.getPose(offsetSpace, localSpace);
|
||||||
|
|
||||||
|
let viewerPose2 = frame.getPose(localSpace ,viewerSpace);
|
||||||
|
let offsetPose2 = frame.getPose(localSpace, offsetSpace);
|
||||||
|
|
||||||
|
t.step(() => {
|
||||||
|
assert_point_significantly_not_equals(viewerPose.transform.position, offsetPose.transform.position);
|
||||||
|
assert_point_significantly_not_equals(viewerPose2.transform.position, offsetPose2.transform.position);
|
||||||
|
});
|
||||||
|
|
||||||
|
resolve();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Can only request input poses in an xr frame.
|
||||||
|
session.requestAnimationFrame(OnFrame);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
xr_session_promise_test(
|
||||||
|
testName, testFunction, fakeDeviceInitParams, 'immersive-vr');
|
||||||
|
|
||||||
|
</script>
|
Loading…
Add table
Add a link
Reference in a new issue