aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt
diff options
context:
space:
mode:
authorServo WPT Sync <32481905+servo-wpt-sync@users.noreply.github.com>2024-07-07 03:23:54 -0400
committerGitHub <noreply@github.com>2024-07-07 07:23:54 +0000
commit816359583c55ced698ed450d644d82a6d25213c9 (patch)
tree1c684eb7e1dcc11bd33d7a5c26251b38b3455a37 /tests/wpt
parent141a594e236201acb44ca7cc42e2e653f4d55e7b (diff)
downloadservo-816359583c55ced698ed450d644d82a6d25213c9.tar.gz
servo-816359583c55ced698ed450d644d82a6d25213c9.zip
Update web-platform-tests to revision b'4e3b5de2eb8218cf18a1674618994efeb96e2cc0' (#32717)
Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org>
Diffstat (limited to 'tests/wpt')
-rw-r--r--tests/wpt/meta-legacy-layout/FileAPI/url/url-reload.window.js.ini1
-rw-r--r--tests/wpt/meta-legacy-layout/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini122
-rw-r--r--tests/wpt/meta-legacy-layout/WebCryptoAPI/idlharness.https.any.js.ini18
-rw-r--r--tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini8
-rw-r--r--tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-2-crash.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-3-crash.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini6
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-tables/tentative/paint/overflow-hidden-table.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-interpolation-007.html.ini126
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini6
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini159
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-values/attr-invalidation.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini9
-rw-r--r--tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini9
-rw-r--r--tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryListEvent.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/cssom/idlharness.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/css/cssom/page-descriptors.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-basic-blur.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-boundary.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-clipping-2.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-pixels-2.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-svg-blur.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-003.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-004.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-005.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini9
-rw-r--r--tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/html/canvas/element/compositing/colr-glyph-composition.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini1
-rw-r--r--tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini33
-rw-r--r--tests/wpt/meta-legacy-layout/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini18
-rw-r--r--tests/wpt/meta-legacy-layout/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini1
-rw-r--r--tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-location-assign.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini2
-rw-r--r--tests/wpt/meta-legacy-layout/html/semantics/forms/historical.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/html/syntax/parsing/DOMContentLoaded-defer.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/url/toascii.window.js.ini36
-rw-r--r--tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini (renamed from tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini)2
-rw-r--r--tests/wpt/meta-legacy-layout/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini4
-rw-r--r--tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini2
-rw-r--r--tests/wpt/meta/MANIFEST.json2496
-rw-r--r--tests/wpt/meta/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini122
-rw-r--r--tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini18
-rw-r--r--tests/wpt/meta/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini8
-rw-r--r--tests/wpt/meta/css/CSS2/floats/floats-in-table-caption-001.html.ini2
-rw-r--r--tests/wpt/meta/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini2
-rw-r--r--tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini2
-rw-r--r--tests/wpt/meta/css/css-transforms/animation/transform-interpolation-007.html.ini126
-rw-r--r--tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini2
-rw-r--r--tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini3
-rw-r--r--tests/wpt/meta/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini6
-rw-r--r--tests/wpt/meta/css/css-ui/transparent-accent-color-001.html.ini2
-rw-r--r--tests/wpt/meta/css/css-ui/transparent-accent-color-002.html.ini2
-rw-r--r--tests/wpt/meta/css/css-values/attr-all-types.html.ini159
-rw-r--r--tests/wpt/meta/css/css-values/attr-invalidation.html.ini3
-rw-r--r--tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini3
-rw-r--r--tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini13
-rw-r--r--tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini19
-rw-r--r--tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini3
-rw-r--r--tests/wpt/meta/css/cssom/idlharness.html.ini3
-rw-r--r--tests/wpt/meta/css/cssom/page-descriptors.html.ini3
-rw-r--r--tests/wpt/meta/css/filter-effects/backdrop-filter-basic-blur.html.ini2
-rw-r--r--tests/wpt/meta/css/filter-effects/backdrop-filter-edge-mirror.html.ini2
-rw-r--r--tests/wpt/meta/css/filter-effects/backdrop-filter-svg-blur.html.ini2
-rw-r--r--tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-003.html.ini2
-rw-r--r--tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-004.html.ini2
-rw-r--r--tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-005.html.ini2
-rw-r--r--tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.https.sub.html.ini2
-rw-r--r--tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.sub.html.ini3
-rw-r--r--tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini3
-rw-r--r--tests/wpt/meta/html/canvas/element/compositing/colr-glyph-composition.html.ini2
-rw-r--r--tests/wpt/meta/html/canvas/offscreen/compositing/2d.composite.image.xor.html.ini1
-rw-r--r--tests/wpt/meta/html/dom/idlharness.https.html.ini33
-rw-r--r--tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini18
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html.ini3
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini4
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini4
-rw-r--r--tests/wpt/meta/html/semantics/forms/historical.html.ini3
-rw-r--r--tests/wpt/meta/resource-timing/nested-context-navigations-iframe.html.ini19
-rw-r--r--tests/wpt/meta/url/toascii.window.js.ini36
-rw-r--r--tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini (renamed from tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini)2
-rw-r--r--tests/wpt/tests/.github/workflows/docker.yml2
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.any.js215
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.htm46
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore2.htm40
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore3.htm40
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore4.htm57
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore5.htm42
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore6.htm37
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_delete_index.any.js182
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_delete_index.htm69
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_delete_index2.htm42
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_delete_index3.htm40
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_delete_index4.htm38
-rw-r--r--tests/wpt/tests/IndexedDB/idbcursor_delete_index5.htm39
-rw-r--r--tests/wpt/tests/IndexedDB/idbdatabase_transaction.any.js82
-rw-r--r--tests/wpt/tests/IndexedDB/idbdatabase_transaction.htm24
-rw-r--r--tests/wpt/tests/IndexedDB/idbdatabase_transaction2.htm27
-rw-r--r--tests/wpt/tests/IndexedDB/idbdatabase_transaction3.htm28
-rw-r--r--tests/wpt/tests/IndexedDB/idbdatabase_transaction4.htm26
-rw-r--r--tests/wpt/tests/IndexedDB/idbdatabase_transaction5.htm22
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open.any.js395
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open.htm18
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open10.htm93
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open11.htm62
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open12.htm50
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open2.htm21
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open3.htm28
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open4.htm20
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open5.htm18
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open6.htm36
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open7.htm41
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open8.htm27
-rw-r--r--tests/wpt/tests/IndexedDB/idbfactory_open9.htm71
-rw-r--r--tests/wpt/tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits.js19
-rw-r--r--tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js11
-rw-r--r--tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.js36
-rw-r--r--tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_testcases.js30
-rw-r--r--tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_vectors.js33
-rw-r--r--tests/wpt/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js19
-rw-r--r--tests/wpt/tests/WebCryptoAPI/derive_bits_keys/hkdf.js19
-rw-r--r--tests/wpt/tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js20
-rw-r--r--tests/wpt/tests/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js17
-rw-r--r--tests/wpt/tests/credential-management/fedcm-authz/resolve-after-preventsilentaccess.https.html53
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-default.html50
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-name.html49
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-animation-iacvt.html33
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-animation.html47
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-getComputedStyle-003.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-invalid-fallback.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-chained-fallback.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-001.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-002.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-003.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-004.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-005.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-007.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-008.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-009.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-010.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-011.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-012.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-013.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-014.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-size-animation.html48
-rw-r--r--tests/wpt/tests/css/css-anchor-position/at-position-try-cssom.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/base-style-invalidation.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/chrome-1512373-2-crash.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/chrome-40286059-crash.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/inline-grid-try-fallbacks-crash.html (renamed from tests/wpt/tests/css/css-anchor-position/inline-grid-try-options-crash.html)4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/inset-area-in-position-try.html16
-rw-r--r--tests/wpt/tests/css/css-anchor-position/inset-area-value.html (renamed from tests/wpt/tests/css/css-anchor-position/inset-area-function.html)28
-rw-r--r--tests/wpt/tests/css/css-anchor-position/last-successful-basic.html8
-rw-r--r--tests/wpt/tests/css/css-anchor-position/last-successful-change-fallbacks.html (renamed from tests/wpt/tests/css/css-anchor-position/last-successful-change-options.html)10
-rw-r--r--tests/wpt/tests/css/css-anchor-position/last-successful-change-try-rule.html6
-rw-r--r--tests/wpt/tests/css/css-anchor-position/last-successful-intermediate-ignored.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/parsing/position-try-computed.html17
-rw-r--r--tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-computed.html33
-rw-r--r--tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing.html54
-rw-r--r--tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-computed.html33
-rw-r--r--tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-parsing.html54
-rw-r--r--tests/wpt/tests/css/css-anchor-position/parsing/position-try-parsing.html10
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-anchor-001.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-anchor-002.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-001.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-002.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-003.html6
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-004.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-backdrop.html6
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-cascade-layer-reorder.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-cascade.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-container-query.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-custom-property.html6
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-dynamic.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-fallbacks-limit.html (renamed from tests/wpt/tests/css/css-anchor-position/position-try-options-limit.html)18
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-grid-001.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-initial-transition.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-invalid-anchor-crash.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-order-inset-area.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-position-anchor.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-pseudo-element.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-switch-from-fixed-anchor.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-switch-to-fixed-anchor.html2
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-transition-basic.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-transition-flip.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-tree-scoped.html40
-rw-r--r--tests/wpt/tests/css/css-anchor-position/position-try-typed-om.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/property-interpolations.html10
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-alignment.html8
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-anchor.html12
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-back-to-base.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-base.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-basic.html6
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-inset-area.html4
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-margin.html6
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-percentage.html6
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-sizing.html8
-rw-r--r--tests/wpt/tests/css/css-anchor-position/try-tactic-wm.html4
-rw-r--r--tests/wpt/tests/css/css-cascade/scope-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/animation-container-size.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/animation-container-type-dynamic.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/animation-nested-animation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/animation-nested-transition.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/aspect-ratio-feature-evaluation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/at-container-style-serialization.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/auto-scrollbars.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/backdrop-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/calc-evaluation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-001.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-002.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-003.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-004.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-005.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-006.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/change-display-in-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/chrome-legacy-skip-recalc.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/column-spanner-in-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/conditional-container-status.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-computed.html6
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-for-cue.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-for-shadow-dom.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-inheritance.html6
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-inner-at-rules.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-inside-multicol-with-table.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-longhand-animation-type.html4
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-name-computed.html4
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-name-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-name-parsing.html4
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-name-tree-scoped.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-nested.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-parsing.html6
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-selection-unknown-features.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-selection.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation-after-load.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-size-nested-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-size-shadow-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-type-computed.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-type-containment.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-type-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-type-layout-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-type-parsing.html4
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-animation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-basic.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-computational-independence.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-content-box.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-dynamic.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-fallback.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-ineligible-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-media-queries.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-rule-cache.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-selection.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-shadow.html4
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-sharing-via-rule-node.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-small-viewport-fallback.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-svglength.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/container-units-typed-om.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/counters-flex-circular.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/counters-in-container-dynamic.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/counters-in-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/br-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/canvas-as-container-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-001-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-002-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-in-canvas-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-type-change-chrome-legacy-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/focus-inside-content-visibility-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/force-sibling-style-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/inline-multicol-inside-container-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-column-group-container-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-placeholder-inline-size-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/marker-gcs-after-disconnect-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/math-block-container-child-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/crashtests/pseudo-container-crash.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/custom-layout-container-001.https.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-queries.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-query-change.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/deep-nested-inline-size-containers.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-create.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-remove.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/display-contents-dynamic-style-queries.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/display-contents.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/display-in-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/display-none.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/fieldset-legend-change.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/font-relative-calc-dynamic.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/font-relative-units-dynamic.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/fragmented-container-001.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/get-animations.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/grid-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/grid-item-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/idlharness.html4
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/iframe-in-container-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/iframe-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/ineligible-containment.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/inheritance-from-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/inline-size-and-min-width.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/inline-size-bfc-floats.html4
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment-vertical-rl.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/inner-first-line-non-matching.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/layout-dependent-focus.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/multicol-container-001.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/multicol-inside-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/nested-query-containers.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/nested-size-style-container-invalidation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/never-match-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/orthogonal-wm-container-query.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/percentage-padding-orthogonal.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-001.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002b.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-003.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-004.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-005.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-006.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-007.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-008.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-009.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-010.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-011.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-012.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-013.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/query-content-box.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/query-evaluation-style.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/query-evaluation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/reattach-container-with-dirty-child.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/registered-color-style-queries.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/resize-while-content-visibility-hidden.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/sibling-layout-dependency.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/size-container-no-principal-box.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/size-container-with-quotes.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/size-feature-evaluation.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/style-change-in-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/style-container-invalidation-inheritance.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/style-not-sharing-float.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/style-query-with-unknown-width.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-child-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-no-size-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/svg-g-no-size-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/svg-root-size-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/table-inside-container-changing-display.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-backdrop.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-container.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/top-layer-nested-dialog.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/transition-scrollbars.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event-002.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/unsupported-axis.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/viewport-units-dynamic.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/viewport-units.html2
-rw-r--r--tests/wpt/tests/css/css-conditional/container-queries/whitespace-update-after-removal.html2
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-001.html4
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-002.html2
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-003.html2
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-004.html2
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-005.html2
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-006.html2
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-001.html4
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-002.html2
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-003.html2
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-004.html2
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html7
-rw-r--r--tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html4
-rw-r--r--tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-ruby-start-002.html27
-rw-r--r--tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001-ref.html17
-rw-r--r--tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001.html21
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001-ref.html19
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001.html30
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a-ref.html19
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a.html34
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002-ref.html19
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002.html30
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a-ref.html19
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a.html34
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b-ref.html19
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b.html30
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003-ref.html20
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003.html31
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a-ref.html20
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a.html35
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b-ref.html20
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b.html31
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004-ref.html20
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004.html31
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a-ref.html20
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a.html35
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b-ref.html20
-rw-r--r--tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b.html31
-rw-r--r--tests/wpt/tests/css/css-pseudo/support/selections.js11
-rw-r--r--tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-003.html39
-rw-r--r--tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-004.html41
-rw-r--r--tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002-ref.html30
-rw-r--r--tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002.html36
-rw-r--r--tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-043.html25
-rw-r--r--tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-044.html25
-rw-r--r--tests/wpt/tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-042.html25
-rw-r--r--tests/wpt/tests/css/css-text-decor/crashtests/text-decoration-first-line-multi-crash.html18
-rw-r--r--tests/wpt/tests/css/css-transforms/animation/transform-interpolation-007.html23
-rw-r--r--tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html5
-rw-r--r--tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html34
-rw-r--r--tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-no-transition.html27
-rw-r--r--tests/wpt/tests/css/css-transitions/CSSTransition-not-canceling.tentative.html40
-rw-r--r--tests/wpt/tests/css/css-transitions/starting-style-size-container.html2
-rw-r--r--tests/wpt/tests/css/css-ui/reference/transparent-accent-color-001-ref.html50
-rw-r--r--tests/wpt/tests/css/css-ui/reference/transparent-accent-color-002-ref.html50
-rw-r--r--tests/wpt/tests/css/css-ui/transparent-accent-color-001.html56
-rw-r--r--tests/wpt/tests/css/css-ui/transparent-accent-color-002.html56
-rw-r--r--tests/wpt/tests/css/css-values/attr-all-types.html153
-rw-r--r--tests/wpt/tests/css/css-values/attr-invalidation.html27
-rw-r--r--tests/wpt/tests/css/css-view-transitions/content-escapes-clip-with-abspos-child-ref.html (renamed from tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child-ref.html)0
-rw-r--r--tests/wpt/tests/css/css-view-transitions/new-content-escapes-clip-with-abspos-child.html63
-rw-r--r--tests/wpt/tests/css/css-view-transitions/old-content-escapes-clip-with-abspos-child.html (renamed from tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child.html)2
-rw-r--r--tests/wpt/tests/css/css-view-transitions/root-scrollbar-with-fixed-background-ref.html5
-rw-r--r--tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-nested.html53
-rw-r--r--tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-overridden-by-important.html59
-rw-r--r--tests/wpt/tests/css/css-view-transitions/shadow-part-with-name.html51
-rw-r--r--tests/wpt/tests/css/css-viewport/zoom/svg-path-simple-ref.html5
-rw-r--r--tests/wpt/tests/css/css-viewport/zoom/svg-path-simple.html8
-rw-r--r--tests/wpt/tests/css/css-viewport/zoom/svg-viewBox-ref.html7
-rw-r--r--tests/wpt/tests/css/css-viewport/zoom/svg-viewBox.html10
-rw-r--r--tests/wpt/tests/css/cssom/CSSContainerRule.tentative.html2
-rw-r--r--tests/wpt/tests/css/cssom/page-descriptors.html80
-rw-r--r--tests/wpt/tests/css/filter-effects/backdrop-filter-basic-blur.html46
-rw-r--r--tests/wpt/tests/css/filter-effects/backdrop-filter-boundary.html36
-rw-r--r--tests/wpt/tests/css/filter-effects/backdrop-filter-edge-clipping-2.html58
-rw-r--r--tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror-ref.html42
-rw-r--r--tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror.html2
-rw-r--r--tests/wpt/tests/css/filter-effects/backdrop-filter-edge-pixels-2.html29
-rw-r--r--tests/wpt/tests/css/filter-effects/backdrop-filter-svg-blur.html13
-rw-r--r--tests/wpt/tests/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html49
-rw-r--r--tests/wpt/tests/css/filter-effects/reference/backdrop-filter-boundary-ref.html41
-rw-r--r--tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html60
-rw-r--r--tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html29
-rw-r--r--tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html29
-rw-r--r--tests/wpt/tests/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html36
-rw-r--r--tests/wpt/tests/css/filter-effects/support/simulate-backdrop-blur.js101
-rw-r--r--tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-001.html22
-rw-r--r--tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-002.html21
-rw-r--r--tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-003.html21
-rw-r--r--tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-004.html21
-rw-r--r--tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-005.html21
-rw-r--r--tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-006.html21
-rw-r--r--tests/wpt/tests/css/selectors/media/WEB_FEATURES.yml3
-rw-r--r--tests/wpt/tests/digital-credentials/META.yml1
-rw-r--r--tests/wpt/tests/digital-credentials/identity-get.tentative.https.html21
-rw-r--r--tests/wpt/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers1
-rw-r--r--tests/wpt/tests/direct-sockets/tcp_socket.https.html.headers1
-rw-r--r--tests/wpt/tests/direct-sockets/udp_socket.https.html.headers1
-rw-r--r--tests/wpt/tests/fedcm/support/continue_on.py2
-rw-r--r--tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition-ref.html69
-rw-r--r--tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition.html67
-rw-r--r--tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations-with-promises.html2
-rw-r--r--tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations.html2
-rw-r--r--tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations-with-promises.html2
-rw-r--r--tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations.html2
-rw-r--r--tests/wpt/tests/html/canvas/tools/gentestutilsunion.py2
-rw-r--r--tests/wpt/tests/html/canvas/tools/templates/testharness_element_grid.html2
-rw-r--r--tests/wpt/tests/html/canvas/tools/templates/testharness_offscreen_grid.html2
-rw-r--r--tests/wpt/tests/html/rendering/widgets/input-number-text-size-ref.html1
-rw-r--r--tests/wpt/tests/html/rendering/widgets/input-number-text-size.tentative.html1
-rw-r--r--tests/wpt/tests/input-events/input-events-typing.html47
-rw-r--r--tests/wpt/tests/interfaces/WebCryptoAPI.idl2
-rw-r--r--tests/wpt/tests/interfaces/css-conditional-5.idl (renamed from tests/wpt/tests/interfaces/css-contain-3.idl)2
-rw-r--r--tests/wpt/tests/interfaces/css-nesting.idl2
-rw-r--r--tests/wpt/tests/interfaces/cssom.idl1
-rw-r--r--tests/wpt/tests/interfaces/fenced-frame.idl2
-rw-r--r--tests/wpt/tests/interfaces/geolocation.idl2
-rw-r--r--tests/wpt/tests/interfaces/handwriting-recognition.idl100
-rw-r--r--tests/wpt/tests/interfaces/html.idl26
-rw-r--r--tests/wpt/tests/interfaces/intersection-observer.idl6
-rw-r--r--tests/wpt/tests/interfaces/mediacapture-streams.idl5
-rw-r--r--tests/wpt/tests/interfaces/permissions-policy.idl1
-rw-r--r--tests/wpt/tests/interfaces/pointerlock.idl8
-rw-r--r--tests/wpt/tests/interfaces/shared-storage.idl4
-rw-r--r--tests/wpt/tests/interfaces/trusted-types.idl3
-rw-r--r--tests/wpt/tests/interfaces/turtledove.idl6
-rw-r--r--tests/wpt/tests/interfaces/webauthn.idl11
-rw-r--r--tests/wpt/tests/interfaces/webgpu.idl15
-rw-r--r--tests/wpt/tests/interfaces/webnn.idl5
-rw-r--r--tests/wpt/tests/interfaces/webrtc.idl5
-rw-r--r--tests/wpt/tests/interfaces/webxr-hit-test.idl8
-rw-r--r--tests/wpt/tests/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html2
-rw-r--r--tests/wpt/tests/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html1
-rw-r--r--tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.html2
-rw-r--r--tests/wpt/tests/resources/chromium/mock-pressure-service.js11
-rw-r--r--tests/wpt/tests/resources/testdriver.js8
-rw-r--r--tests/wpt/tests/scroll-animations/css/scroll-timeline-in-container-query.html2
-rw-r--r--tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html21
-rw-r--r--tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html.headers1
-rw-r--r--tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html21
-rw-r--r--tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html.headers1
-rw-r--r--tests/wpt/tests/scroll-to-text-fragment/same-document-tests.html42
-rw-r--r--tests/wpt/tests/scroll-to-text-fragment/same-document-tests.js48
-rw-r--r--tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-across-scopes.html10
-rw-r--r--tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-on-shadow-host.html8
-rw-r--r--tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-with-slots.html24
-rw-r--r--tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order.html14
-rw-r--r--tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe-iframe.html16
-rw-r--r--tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html20
-rw-r--r--tests/wpt/tests/storage-access-api/storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.js40
-rw-r--r--tests/wpt/tests/svg/painting/reftests/non-scaling-stroke-003.html33
-rw-r--r--tests/wpt/tests/svg/styling/vector-effect-invalid.html23
-rw-r--r--tests/wpt/tests/svg/styling/vector-effect-valid.html19
-rw-r--r--tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py11
-rw-r--r--tests/wpt/tests/tools/wptrunner/requirements.txt2
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py2
-rw-r--r--tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py13
-rw-r--r--tests/wpt/tests/touch-events/single-touch-vertical-rl.html46
-rw-r--r--tests/wpt/tests/trusted-types/trusted-types-reporting.html3
-rw-r--r--tests/wpt/tests/url/resources/toascii.json26
-rw-r--r--tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html (renamed from tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html)4
-rw-r--r--tests/wpt/tests/webcodecs/video-encoder-h264.https.any.js35
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py22
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py2
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py3
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/navigate.py21
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/handler.py63
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/continue_request/cookies.py2
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/continue_request/headers.py2
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/continue_with_auth/action.py64
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/__init__.py0
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/conftest.py17
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/contexts_tentative.py99
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/invalid_tentative.py32
-rw-r--r--tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/set_cache_bypass_tentative.py68
-rw-r--r--tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py2
-rw-r--r--tests/wpt/tests/webnn/resources/test_data/gelu.json67
-rw-r--r--tests/wpt/tests/webnn/resources/utils_validation.js97
-rw-r--r--tests/wpt/tests/webnn/validation_tests/clamp.https.any.js21
-rw-r--r--tests/wpt/tests/webnn/validation_tests/elementwise-binary.https.any.js18
-rw-r--r--tests/wpt/tests/webrtc/RTCDataChannel-close.html34
575 files changed, 8631 insertions, 2610 deletions
diff --git a/tests/wpt/meta-legacy-layout/FileAPI/url/url-reload.window.js.ini b/tests/wpt/meta-legacy-layout/FileAPI/url/url-reload.window.js.ini
index bdfa9b2b8e9..d76dcc5cd16 100644
--- a/tests/wpt/meta-legacy-layout/FileAPI/url/url-reload.window.js.ini
+++ b/tests/wpt/meta-legacy-layout/FileAPI/url/url-reload.window.js.ini
@@ -1,4 +1,3 @@
[url-reload.window.html]
[Reloading a blob URL succeeds even if the URL was revoked.]
expected: FAIL
-
diff --git a/tests/wpt/meta-legacy-layout/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini b/tests/wpt/meta-legacy-layout/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini
new file mode 100644
index 00000000000..31a54462d23
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini
@@ -0,0 +1,122 @@
+[derived_bits_length.https.any.html]
+ [HKDF derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+
+[derived_bits_length.https.any.worker.html]
+ [HKDF derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with omitted as 'length' parameter]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/WebCryptoAPI/idlharness.https.any.js.ini b/tests/wpt/meta-legacy-layout/WebCryptoAPI/idlharness.https.any.js.ini
index 517ded4fee9..3808a6431c0 100644
--- a/tests/wpt/meta-legacy-layout/WebCryptoAPI/idlharness.https.any.js.ini
+++ b/tests/wpt/meta-legacy-layout/WebCryptoAPI/idlharness.https.any.js.ini
@@ -212,6 +212,15 @@
[Crypto interface: crypto must inherit property "randomUUID()" with the proper type]
expected: FAIL
+ [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)]
+ expected: FAIL
+
+ [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)" with the proper type]
+ expected: FAIL
+
+ [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?) on crypto.subtle with too few arguments must throw TypeError]
+ expected: FAIL
+
[idlharness.https.any.worker.html]
[idlharness]
@@ -426,3 +435,12 @@
[Crypto interface: crypto must inherit property "randomUUID()" with the proper type]
expected: FAIL
+
+ [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)]
+ expected: FAIL
+
+ [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)" with the proper type]
+ expected: FAIL
+
+ [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?) on crypto.subtle with too few arguments must throw TypeError]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini b/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini
new file mode 100644
index 00000000000..73d23b4318e
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini
@@ -0,0 +1,8 @@
+[importKey-unsettled-promise.https.any.worker.html]
+ [WebCryptoAPI: Assure promise returned by importKey is settled.]
+ expected: FAIL
+
+
+[importKey-unsettled-promise.https.any.html]
+ [WebCryptoAPI: Assure promise returned by importKey is settled.]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-2-crash.html.ini b/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-2-crash.html.ini
new file mode 100644
index 00000000000..6a085989a3b
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-2-crash.html.ini
@@ -0,0 +1,2 @@
+[float-rewind-parallel-flow-2-crash.html]
+ expected: CRASH
diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-3-crash.html.ini b/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-3-crash.html.ini
new file mode 100644
index 00000000000..8b0a300ab31
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/CSS2/floats/crashtests/float-rewind-parallel-flow-3-crash.html.ini
@@ -0,0 +1,2 @@
+[float-rewind-parallel-flow-3-crash.html]
+ expected: CRASH
diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini
index 6474581d56b..07b3a85a5a5 100644
--- a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini
+++ b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini
@@ -31,3 +31,9 @@
[@font-face matching for quoted and unquoted ui-monospace]
expected: FAIL
+
+ [@font-face matching for quoted and unquoted cursive]
+ expected: FAIL
+
+ [@font-face matching for quoted and unquoted ui-serif]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001.html.ini
new file mode 100644
index 00000000000..59e756fab44
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-001.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini
new file mode 100644
index 00000000000..9ed0016e7cc
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-001a.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002.html.ini
new file mode 100644
index 00000000000..25c86e4340a
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-002.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini
new file mode 100644
index 00000000000..89ef37501d1
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-002a.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini
new file mode 100644
index 00000000000..62a53fd3d6b
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-002b.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003.html.ini
new file mode 100644
index 00000000000..ab8404e1cbe
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-003.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini
new file mode 100644
index 00000000000..9b47c17a55c
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-003a.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini
new file mode 100644
index 00000000000..5118c0ae109
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-003b.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004.html.ini
new file mode 100644
index 00000000000..c28f3859026
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-004.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini
new file mode 100644
index 00000000000..a3bcc0f45a0
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-004a.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini
new file mode 100644
index 00000000000..b6e5121eb77
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-004b.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-tables/tentative/paint/overflow-hidden-table.html.ini b/tests/wpt/meta-legacy-layout/css/css-tables/tentative/paint/overflow-hidden-table.html.ini
deleted file mode 100644
index 85975fc74ce..00000000000
--- a/tests/wpt/meta-legacy-layout/css/css-tables/tentative/paint/overflow-hidden-table.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[overflow-hidden-table.html]
- expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-interpolation-007.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-interpolation-007.html.ini
new file mode 100644
index 00000000000..e2b0ecfa8c4
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-interpolation-007.html.ini
@@ -0,0 +1,126 @@
+[transform-interpolation-007.html]
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini
new file mode 100644
index 00000000000..4c11bb94283
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini
@@ -0,0 +1,2 @@
+[transform-non-invertible-discrete-interpolation.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini
new file mode 100644
index 00000000000..5828fcf067e
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini
@@ -0,0 +1,3 @@
+[transform-non-invertible-no-transition.html]
+ [Setting 'transform' to a non-invertible matrix does not yield a CSS Transition]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini
new file mode 100644
index 00000000000..8766213d3ca
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini
@@ -0,0 +1,6 @@
+[CSSTransition-not-canceling.tentative.html]
+ [Setting "display: none" with "display" set to transition using "display 100s allow-discrete" does not cancel running transitions]
+ expected: FAIL
+
+ [Setting "display: none" with "display" set to transition using "display 100s, all allow-discrete 100s" does not cancel running transitions]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini
new file mode 100644
index 00000000000..b4ee5fc070d
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini
@@ -0,0 +1,159 @@
+[attr-all-types.html]
+ [CSS Values and Units Test: attr]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 1]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 2]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 3]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 4]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 5]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 6]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 7]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 8]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 9]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 10]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 11]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 13]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 14]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 15]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 18]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 19]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 20]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 21]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 25]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 26]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 28]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 29]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 30]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 31]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 32]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 33]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 34]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 35]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 36]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 37]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 38]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 39]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 40]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 41]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 42]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 43]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 44]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 45]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 46]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 47]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 48]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 49]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 50]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 51]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 52]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 53]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 54]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 55]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 64]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 65]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 66]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 67]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/css-values/attr-invalidation.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/attr-invalidation.html.ini
new file mode 100644
index 00000000000..111ec1b3975
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/css-values/attr-invalidation.html.ini
@@ -0,0 +1,3 @@
+[attr-invalidation.html]
+ [CSS Values and Units Test: attr() invalidation]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
index 7fe2fa192e4..9c9f28ce8d7 100644
--- a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
+++ b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -14,3 +14,6 @@
[MediaQueryList::removeListener removes added listener]
expected: NOTRUN
+
+ [listeners are called in order they were added]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
index d42c17f0e92..21f2d64bbba 100644
--- a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
+++ b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
@@ -8,3 +8,12 @@
[capturing event listener fires before non-capturing listener at target]
expected: NOTRUN
+
+ [removeEventListener removes listener added with addListener]
+ expected: TIMEOUT
+
+ [removeEventListener (capture) doesn't remove listener added with addListener]
+ expected: NOTRUN
+
+ [removeListener removes listener added with addEventListener]
+ expected: NOTRUN
diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini
index 80b5e466055..7eb24e29718 100644
--- a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini
+++ b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini
@@ -2,3 +2,12 @@
expected: TIMEOUT
[removeEventListener removes listener]
expected: NOTRUN
+
+ [listeners for "change" type are called]
+ expected: NOTRUN
+
+ [listeners with different type are not called]
+ expected: NOTRUN
+
+ [addEventListener "once" option is respected]
+ expected: NOTRUN
diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryListEvent.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryListEvent.html.ini
new file mode 100644
index 00000000000..5276a0fea9f
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/cssom-view/MediaQueryListEvent.html.ini
@@ -0,0 +1,2 @@
+[MediaQueryListEvent.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta-legacy-layout/css/cssom/idlharness.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/idlharness.html.ini
index 3ff4b62ff70..ad066b83193 100644
--- a/tests/wpt/meta-legacy-layout/css/cssom/idlharness.html.ini
+++ b/tests/wpt/meta-legacy-layout/css/cssom/idlharness.html.ini
@@ -640,3 +640,6 @@
[CSSStyleProperties interface: attribute cssFloat]
expected: FAIL
+
+ [CSSPageDescriptors interface: attribute orientation]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/cssom/page-descriptors.html.ini b/tests/wpt/meta-legacy-layout/css/cssom/page-descriptors.html.ini
new file mode 100644
index 00000000000..ca4d3f1de85
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/cssom/page-descriptors.html.ini
@@ -0,0 +1,3 @@
+[page-descriptors.html]
+ [CSSPageDescriptors properties tests]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-basic-blur.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-basic-blur.html.ini
new file mode 100644
index 00000000000..b95bcf073f3
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-basic-blur.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filter-basic-blur.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-boundary.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-boundary.html.ini
new file mode 100644
index 00000000000..bfc25a2b184
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-boundary.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filter-boundary.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-clipping-2.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-clipping-2.html.ini
new file mode 100644
index 00000000000..4a08b41acc2
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-clipping-2.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filter-edge-clipping-2.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-pixels-2.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-pixels-2.html.ini
new file mode 100644
index 00000000000..19d53f587ad
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-edge-pixels-2.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filter-edge-pixels-2.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-svg-blur.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-svg-blur.html.ini
new file mode 100644
index 00000000000..3294c0b7080
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/filter-effects/backdrop-filter-svg-blur.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filter-svg-blur.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-003.html.ini b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-003.html.ini
new file mode 100644
index 00000000000..a62fd6f90d5
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-003.html.ini
@@ -0,0 +1,2 @@
+[mq-calc-sign-function-003.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-004.html.ini b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-004.html.ini
new file mode 100644
index 00000000000..3c5bd16380e
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-004.html.ini
@@ -0,0 +1,2 @@
+[mq-calc-sign-function-004.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-005.html.ini b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-005.html.ini
new file mode 100644
index 00000000000..7c40a3027c2
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/css/mediaqueries/mq-calc-sign-function-005.html.ini
@@ -0,0 +1,2 @@
+[mq-calc-sign-function-005.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini
index fc799433890..6eebff7271d 100644
--- a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini
+++ b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini
@@ -28,3 +28,12 @@
[sec-fetch-user - Not sent to non-trustworthy same-origin destination]
expected: FAIL
+
+ [sec-fetch-dest - Not sent to non-trustworthy same-site destination]
+ expected: FAIL
+
+ [sec-fetch-user - Not sent to non-trustworthy same-site destination]
+ expected: FAIL
+
+ [sec-fetch-user - Not sent to non-trustworthy cross-site destination]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
index dc1144214ef..530635e744f 100644
--- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
+++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini
@@ -2,8 +2,5 @@
[Navigating to a different document with window.open]
expected: FAIL
- [Navigating to a different document with form submission]
- expected: FAIL
-
[Navigating to a different document with link click]
expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini
index 5aef7ce66ce..324db3d9b35 100644
--- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini
+++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini
@@ -10,6 +10,3 @@
[load event does not fire on window.open('about:blank?foo')]
expected: FAIL
-
- [load event does not fire on window.open('about:blank')]
- expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini
new file mode 100644
index 00000000000..7dc346632a4
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini
@@ -0,0 +1,3 @@
+[navigation-unload-same-origin.window.html]
+ [Same-origin navigation started from unload handler must be ignored]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini
deleted file mode 100644
index 60a4fa51f8a..00000000000
--- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[a-click.html]
- [aElement.click() before the load event must NOT replace]
- expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/compositing/colr-glyph-composition.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/compositing/colr-glyph-composition.html.ini
new file mode 100644
index 00000000000..0392ac2ff3b
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/html/canvas/element/compositing/colr-glyph-composition.html.ini
@@ -0,0 +1,2 @@
+[colr-glyph-composition.html]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini
index abcdc2821c8..a1700667887 100644
--- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini
+++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html.ini
@@ -1,4 +1,3 @@
[2d.canvas.host.size.attributes.parse.minus.html]
- expected: CRASH
[Parsing of non-negative integers]
expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini b/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini
index dfba023cc2b..42842a8ddc9 100644
--- a/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini
+++ b/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini
@@ -2105,6 +2105,24 @@
[Element interface: operation getHTML(optional GetHTMLOptions)]
expected: FAIL
+ [Element interface: document.createElement("noscript") must inherit property "setHTMLUnsafe((TrustedHTML or DOMString))" with the proper type]
+ expected: FAIL
+
+ [Element interface: calling setHTMLUnsafe((TrustedHTML or DOMString)) on document.createElement("noscript") with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [Element interface: document.createElement("noscript") must inherit property "innerHTML" with the proper type]
+ expected: FAIL
+
+ [Element interface: document.createElement("noscript") must inherit property "outerHTML" with the proper type]
+ expected: FAIL
+
+ [ShadowRoot interface: operation setHTMLUnsafe((TrustedHTML or DOMString))]
+ expected: FAIL
+
+ [Element interface: operation setHTMLUnsafe((TrustedHTML or DOMString))]
+ expected: FAIL
+
[idlharness.https.html?include=(Document|Window)]
[Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type]
@@ -2785,6 +2803,18 @@
[Document interface: calling parseHTMLUnsafe(HTMLString) on documentWithHandlers with too few arguments must throw TypeError]
expected: FAIL
+ [Document interface: operation parseHTMLUnsafe((TrustedHTML or DOMString))]
+ expected: FAIL
+
+ [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on iframe.contentDocument with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on new Document() with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on documentWithHandlers with too few arguments must throw TypeError]
+ expected: FAIL
+
[idlharness.https.html?include=HTML.*]
[HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "align" with the proper type]
@@ -5075,3 +5105,6 @@
[HTMLTemplateElement interface: document.createElement("template") must inherit property "shadowRootSerializable" with the proper type]
expected: FAIL
+
+ [HTMLIFrameElement interface: document.createElement("iframe") must inherit property "srcdoc" with the proper type]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini b/tests/wpt/meta-legacy-layout/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini
index a32dea7e4f4..766a7fed1ed 100644
--- a/tests/wpt/meta-legacy-layout/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini
+++ b/tests/wpt/meta-legacy-layout/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini
@@ -1,34 +1,16 @@
[structured-cloning-error-stack-optional.sub.window.html]
- [page-created Error (worker)]
- expected: FAIL
-
- [JS-engine-created TypeError (worker)]
- expected: FAIL
-
- [JS-engine-created TypeError (cross-site iframe)]
- expected: FAIL
-
[web API-created TypeError (worker)]
expected: FAIL
[web API-created TypeError (cross-site iframe)]
expected: FAIL
- [page-created Error (cross-site iframe)]
- expected: FAIL
-
[page-created Error (structuredClone())]
expected: FAIL
- [page-created Error (same-origin iframe)]
- expected: FAIL
-
[JS-engine-created TypeError (structuredClone())]
expected: FAIL
- [JS-engine-created TypeError (same-origin iframe)]
- expected: FAIL
-
[web API-created TypeError (structuredClone())]
expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini b/tests/wpt/meta-legacy-layout/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini
index 2ef0896e3b3..8b8af2b9c2e 100644
--- a/tests/wpt/meta-legacy-layout/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini
+++ b/tests/wpt/meta-legacy-layout/html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.js.ini
@@ -1,4 +1,3 @@
[document-base-url-window-initiator-is-not-opener.https.window.html]
- expected: TIMEOUT
[window.open() gets base url from initiator not opener.]
expected: [FAIL, PASS, TIMEOUT]
diff --git a/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini b/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini
index 830aeb8ae48..fdc27d37788 100644
--- a/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini
+++ b/tests/wpt/meta-legacy-layout/html/interaction/focus/the-autofocus-attribute/autofocus-dialog.html.ini
@@ -1,7 +1,6 @@
[autofocus-dialog.html]
- expected: TIMEOUT
[<dialog> can contain autofocus, without stopping page autofocus content from working]
expected: FAIL
[<dialog>-contained autofocus element gets focused when the dialog is shown]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-location-assign.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-location-assign.html.ini
new file mode 100644
index 00000000000..68a30137729
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-nav-location-assign.html.ini
@@ -0,0 +1,3 @@
+[iframe-loading-lazy-nav-location-assign.html]
+ [Navigating iframe loading='lazy' before it is loaded: location.assign]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
index 7df8f9458e9..68203d2a082 100644
--- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
+++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
@@ -1,4 +1,4 @@
[iframe_sandbox_popups_escaping-2.html]
expected: CRASH
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
- expected: FAIL
+ expected: TIMEOUT
diff --git a/tests/wpt/meta-legacy-layout/html/semantics/forms/historical.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/historical.html.ini
new file mode 100644
index 00000000000..5d8289307cc
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/html/semantics/forms/historical.html.ini
@@ -0,0 +1,3 @@
+[historical.html]
+ [<input name=isindex> should not be supported]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/html/syntax/parsing/DOMContentLoaded-defer.html.ini b/tests/wpt/meta-legacy-layout/html/syntax/parsing/DOMContentLoaded-defer.html.ini
new file mode 100644
index 00000000000..b8bdf33cb65
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/html/syntax/parsing/DOMContentLoaded-defer.html.ini
@@ -0,0 +1,3 @@
+[DOMContentLoaded-defer.html]
+ [The end: DOMContentLoaded and defer scripts]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/url/toascii.window.js.ini b/tests/wpt/meta-legacy-layout/url/toascii.window.js.ini
index 875f6931f54..30a64ad4fc6 100644
--- a/tests/wpt/meta-legacy-layout/url/toascii.window.js.ini
+++ b/tests/wpt/meta-legacy-layout/url/toascii.window.js.ini
@@ -287,3 +287,39 @@
[≯ (using <area>.hostname)]
expected: FAIL
+
+ [≠ (using <area>.host)]
+ expected: FAIL
+
+ [≠ (using <area>.hostname)]
+ expected: FAIL
+
+ [≮ (using <area>.host)]
+ expected: FAIL
+
+ [≮ (using <area>.hostname)]
+ expected: FAIL
+
+ [≯ (using <area>.host)]
+ expected: FAIL
+
+ [≯ (using <area>.hostname)]
+ expected: FAIL
+
+ [=­̸ (using <area>.host)]
+ expected: FAIL
+
+ [=­̸ (using <area>.hostname)]
+ expected: FAIL
+
+ [<­̸ (using <area>.host)]
+ expected: FAIL
+
+ [<­̸ (using <area>.hostname)]
+ expected: FAIL
+
+ [>­̸ (using <area>.host)]
+ expected: FAIL
+
+ [>­̸ (using <area>.hostname)]
+ expected: FAIL
diff --git a/tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini b/tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini
index 42bd0c47410..c804530024c 100644
--- a/tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini
+++ b/tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini
@@ -1,3 +1,3 @@
-[script-src-blocks-wasm.tentative.html]
+[script-src-blocks-wasm.tentative.sub.html]
[Importing a WebAssembly module should be guarded by script-src CSP.]
expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini b/tests/wpt/meta-legacy-layout/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini
new file mode 100644
index 00000000000..aa6c9e5b826
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/webstorage/localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html.ini
@@ -0,0 +1,4 @@
+[localstorage-about-blank-3P-iframe-opens-3P-window.partitioned.tentative.html]
+ expected: TIMEOUT
+ [StorageKey: test 3P about:blank window opened from a 3P iframe]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini
new file mode 100644
index 00000000000..80f9a4f15b8
--- /dev/null
+++ b/tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini
@@ -0,0 +1,2 @@
+[Worker-constructor.html]
+ expected: ERROR
diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json
index 901fa326298..9cc453d7319 100644
--- a/tests/wpt/meta/MANIFEST.json
+++ b/tests/wpt/meta/MANIFEST.json
@@ -654,7 +654,7 @@
]
],
"chrome-1512373-2-crash.html": [
- "433609766c9195344c5bb45a4c20d0843ae0d697",
+ "50d0aff5e92fea43360b7423d522db2e9e79e89b",
[
null,
{}
@@ -682,7 +682,7 @@
]
],
"chrome-40286059-crash.html": [
- "dbbeb5ac4df9bb2a17a757ece48a48cbbf3f677e",
+ "cee9d2d97775dacbd7583edf143fd5b06de31bff",
[
null,
{}
@@ -695,15 +695,15 @@
{}
]
],
- "inline-grid-try-options-crash.html": [
- "712f7f1d4817a727362e7b882956bafb59c746bc",
+ "inline-grid-try-fallbacks-crash.html": [
+ "544ccf1baac30cb80eb7506e86bf8c7910c2869d",
[
null,
{}
]
],
"position-try-invalid-anchor-crash.html": [
- "dc09bb4b3f8d61652f411fb3cc72e4acd81ef8c8",
+ "27ea1942a346603afc64955cdcf11deeee13bb36",
[
null,
{}
@@ -1504,14 +1504,14 @@
"container-queries": {
"crashtests": {
"br-crash.html": [
- "6631ba2fd560d1454f992414a2ccf47bdcb26821",
+ "35d029706a8e393f390dc5eff00a9024c1783422",
[
null,
{}
]
],
"canvas-as-container-crash.html": [
- "ae7fe8dc168774f8fdb3ca9b6720cc3821503dca",
+ "45bb49f18004bb9088b4a4aea2217319471d8498",
[
null,
{}
@@ -1595,28 +1595,28 @@
]
],
"columns-in-table-001-crash.html": [
- "fe421500dade86b6fedbbf6289a668dcc5174f45",
+ "b66ca8d30bd4d05dff443c5977f3545318224992",
[
null,
{}
]
],
"columns-in-table-002-crash.html": [
- "24b9f1aab20b5cfb5fcffa59e50359e80f85cfa6",
+ "1c6f2cfbb0ad8e94fa597f8c89ff7779ed3d813c",
[
null,
{}
]
],
"container-in-canvas-crash.html": [
- "215c6a04db7ce591fc7df9be6bfdf7da4edc8302",
+ "af21a9541f76193f93dbbb074a7ada591328c006",
[
null,
{}
]
],
"container-type-change-chrome-legacy-crash.html": [
- "609142a2c5f7fa16f241b6ac06842a62ed68be8c",
+ "d49b2ae8e6546d3bee94c9cd5a84eca9e19bde0b",
[
null,
{}
@@ -1665,14 +1665,14 @@
]
],
"focus-inside-content-visibility-crash.html": [
- "1bf68d6686c2c902205faa912573e2b3c97f0ad8",
+ "eb2788d03f33d6f3b5a49c73a73f55217ac01e7f",
[
null,
{}
]
],
"force-sibling-style-crash.html": [
- "093a01b809d97b00f797c3be14706cbb4d742ede",
+ "751a646931af06e3a61aada3c342c4df5036dc3c",
[
null,
{}
@@ -1714,7 +1714,7 @@
]
],
"inline-multicol-inside-container-crash.html": [
- "7e209f7ffd389744f843fe97b8483404f8ace7e5",
+ "853f1744b3b490885bf98da2e3c316863e6e40f4",
[
null,
{}
@@ -1735,28 +1735,28 @@
]
],
"input-column-group-container-crash.html": [
- "5e520a45cffb9c203085118efde823b6b40cdf60",
+ "bd1d77cd60dcc6d57ddb3c7395889bb74ced00b3",
[
null,
{}
]
],
"input-placeholder-inline-size-crash.html": [
- "4b1284e5cb3d90a76a756a8d89a439c43d7e65e1",
+ "a5c7cf62b33af8f3cafbc26132b737987513c66e",
[
null,
{}
]
],
"marker-gcs-after-disconnect-crash.html": [
- "3680c795122603312d8a5a63ea48bd69c402b204",
+ "b92213d98c81eca4bdd10d5fff2329e7351635d5",
[
null,
{}
]
],
"math-block-container-child-crash.html": [
- "00b6836655e904f1f0d64f7e3f42afaf02fc351b",
+ "db6c8df7f310bd97e5be3cf59291e7c18222e3aa",
[
null,
{}
@@ -1777,7 +1777,7 @@
]
],
"pseudo-container-crash.html": [
- "f998c3a4464ca3eb3ce07687cf24d9dcdc9a16af",
+ "203e48e85f2e381e38a4b8388435b08de3348cc7",
[
null,
{}
@@ -4700,6 +4700,13 @@
},
"css-text-decor": {
"crashtests": {
+ "text-decoration-first-line-multi-crash.html": [
+ "f6176334ad6e6ef2662a8f89785f601f48a762cf",
+ [
+ null,
+ {}
+ ]
+ ],
"text-decoration-on-empty-first-line-crash.html": [
"058cf9f8371d6e95965edcdf12f62a15e2c7f4b9",
[
@@ -122505,7 +122512,7 @@
]
],
"anchor-scroll-chained-fallback.html": [
- "ab2090e0048fe8af38e76f34ed7277d945bb18ad",
+ "490d43e12d92293339a779b0080497f2900e77a0",
[
null,
[
@@ -122583,7 +122590,7 @@
]
],
"anchor-scroll-position-try-012.html": [
- "5e3bf50a6e714ea9acfad17761a23053d10a0fe9",
+ "8eff5e4a8fa9595f57a84b8b5331600a0dd136fd",
[
null,
[
@@ -122833,7 +122840,7 @@
]
],
"position-anchor-001.html": [
- "d927b6b902c97a565725d33874db9ce8055ea703",
+ "b0a964485c65ed1c8eeff89a1406bda9f4ea9b48",
[
null,
[
@@ -122846,7 +122853,7 @@
]
],
"position-anchor-002.html": [
- "d55338e1e9725db3cc1edf98c04c9388cc7dc6f5",
+ "a9248ef694f810cc7d06e4ce20f22807e91e6607",
[
null,
[
@@ -122859,7 +122866,7 @@
]
],
"position-try-switch-from-fixed-anchor.html": [
- "904aa55180dafd92ed7526854d13edb1f7ae0406",
+ "df398e0090dd67a3a8d9d645b4c6d1dcb0228c2c",
[
null,
[
@@ -122872,7 +122879,7 @@
]
],
"position-try-switch-to-fixed-anchor.html": [
- "54fcb2e4df3d6155ca672ea067ca4180b2893173",
+ "469064e7e28730076d5c4cf55e5804ec1cc4e818",
[
null,
[
@@ -150593,7 +150600,7 @@
],
"container-queries": {
"canvas-as-container-001.html": [
- "f904d1fe249bb3ad773f054b7f930deba36eccce",
+ "bd9fd3ddc491443114d0a37e961b2ac05c66ab86",
[
null,
[
@@ -150606,7 +150613,7 @@
]
],
"canvas-as-container-002.html": [
- "689feeb5fffdc25ccd03e41c29a317ad1018ced2",
+ "7c2d44f6824d56e1730b5baf98455f46267287a8",
[
null,
[
@@ -150619,7 +150626,7 @@
]
],
"canvas-as-container-003.html": [
- "74199cc72b7e68b8d51eb783439e58e12f4ee867",
+ "0115052b76d0c62b58c3c3ac7ea91f10928ddeab",
[
null,
[
@@ -150632,7 +150639,7 @@
]
],
"canvas-as-container-004.html": [
- "b23846382b743d260ea87a291dec31af843c16e9",
+ "7e1ec8d733ae3e0acdd79a8ae5c5aa722434e024",
[
null,
[
@@ -150645,7 +150652,7 @@
]
],
"change-display-in-container.html": [
- "8c58d22b7de99f0234ed2b3e45065a2bba2161c8",
+ "978c3e81bce34b67bcb4e8a1fa4249c66a996768",
[
null,
[
@@ -150658,7 +150665,7 @@
]
],
"chrome-legacy-skip-recalc.html": [
- "b86a4091a2ca4909515746b2904508908e278816",
+ "675f649bf82a259c6cbb10845fd914417e315127",
[
null,
[
@@ -150671,7 +150678,7 @@
]
],
"container-for-cue.html": [
- "a460f79af061de93f269ad56455f878408437b85",
+ "802f6143428764b404e3fc41c1bfdab9047ac50b",
[
null,
[
@@ -150684,7 +150691,7 @@
]
],
"container-units-gradient-invalidation.html": [
- "665a14dcaa1264e456c9a2ae7e7e47ea11a722b6",
+ "a0fa974fc298b09ba7e77ae07cb583235009680a",
[
null,
[
@@ -150697,7 +150704,7 @@
]
],
"container-units-gradient.html": [
- "3d6f5378c22fd33554309420fee047c68eaa51e2",
+ "6965bf8c0d0b7055fc8728316178fffd07ba72d9",
[
null,
[
@@ -150710,7 +150717,7 @@
]
],
"container-units-rule-cache.html": [
- "cc93f7793ae6bd57a8ee30e5d6322a6ff43e93cb",
+ "3ff8e29e64f63022b44df29a4d661758edff99ca",
[
null,
[
@@ -150723,7 +150730,7 @@
]
],
"container-units-sharing-via-rule-node.html": [
- "e1a5c714516bfea5e482acc4f5b9811bbc975a21",
+ "dcb22f20ccf4f121d08b817cbfec5898e8953289",
[
null,
[
@@ -150736,7 +150743,7 @@
]
],
"counters-in-container-dynamic.html": [
- "d85ab6cb425ba792914b39901cd3f3ba3943b606",
+ "9542b34095bac6995fa2c94e1328e0fc78fa2133",
[
null,
[
@@ -150749,7 +150756,7 @@
]
],
"counters-in-container.html": [
- "376f52ea7c2ccccda15e2f99af9ce08bee42f424",
+ "e94aba632649971f65ce9661d375ad38998d949d",
[
null,
[
@@ -150762,7 +150769,7 @@
]
],
"custom-layout-container-001.https.html": [
- "8f301e8ebf626035f967d01e585e0832eefe72de",
+ "40594a431e4465fd56bbbf069476a9af0b541880",
[
null,
[
@@ -150775,7 +150782,7 @@
]
],
"dialog-backdrop-create.html": [
- "ef74973addc2ffa660ee38b84686982cbb889a92",
+ "a962a9635578c8021c89c4bf57e0afc980dd244c",
[
null,
[
@@ -150788,7 +150795,7 @@
]
],
"dialog-backdrop-remove.html": [
- "47b40304924aa00613fd520083d12ae65fa82596",
+ "1cb1cc92d47cc310d503b09e5620a713ee3eaaaf",
[
null,
[
@@ -150801,7 +150808,7 @@
]
],
"display-in-container.html": [
- "a2a4cd731c8b90b4dcfda30a015b293deef56968",
+ "4666ab64b2b3063a8dfb4d7be7c4c30d9dc76129",
[
null,
[
@@ -150814,7 +150821,7 @@
]
],
"fieldset-legend-change.html": [
- "15b44a0e5231e501929642cc8b088e7204c9d8b4",
+ "51cd8c1953387e455b10d256a4d61a8c16195961",
[
null,
[
@@ -150827,7 +150834,7 @@
]
],
"inline-size-bfc-floats.html": [
- "88b81c67599576677aec1d0b6ac89d4414d15582",
+ "f4d5af65f56a5c8f8e182e7167177c9ef48b7568",
[
null,
[
@@ -150840,7 +150847,7 @@
]
],
"inner-first-line-non-matching.html": [
- "5f39124e514bcfc2b7293b6e36c7e3c3f4bbd5df",
+ "01d46a037f542d0b1f75af8b5dedb5224327af81",
[
null,
[
@@ -150853,7 +150860,7 @@
]
],
"multicol-inside-container.html": [
- "9fc8393a513f236996d60fdc39e2401a3dba0376",
+ "73febc303a9184a248897b0a0a8c215df22ac778",
[
null,
[
@@ -150866,7 +150873,7 @@
]
],
"pseudo-elements-002.html": [
- "a44c64c70071109bca11ba0f910cb14213522c9f",
+ "1198fb959d00e6befd2de62e76c10a547b589a4a",
[
null,
[
@@ -150879,7 +150886,7 @@
]
],
"pseudo-elements-002b.html": [
- "e1874e035b0784abeccfce306eaa3203b41daf37",
+ "e1159c33bfea4ce57391913e417faffb47201b60",
[
null,
[
@@ -150892,7 +150899,7 @@
]
],
"pseudo-elements-009.html": [
- "769a5962ff706db4ba2d5a29afaa348c94061c42",
+ "913b8ca5b130961e1b90fd233429dab16d67c20f",
[
null,
[
@@ -150905,7 +150912,7 @@
]
],
"pseudo-elements-010.html": [
- "e2e8f8659c500e1d91798cbd03437621d7ae01af",
+ "c090488d193755d7f8825e9d6275fa82465ed9d5",
[
null,
[
@@ -150918,7 +150925,7 @@
]
],
"pseudo-elements-011.html": [
- "26dabbe1dfe58a3350ec4fbf9a9671943a174a8d",
+ "364d7ec38514d17b37bc08a8e342ad840eac1d70",
[
null,
[
@@ -150931,7 +150938,7 @@
]
],
"pseudo-elements-012.html": [
- "7c36d9270d92be6b017253dd4080b8a1e8c61546",
+ "31617f838b66f5020eed36474072c27238fc0e56",
[
null,
[
@@ -150944,7 +150951,7 @@
]
],
"resize-while-content-visibility-hidden.html": [
- "a3658f7f34fdda98b2d1198fecce3b6e1a5fef38",
+ "da4218b88bdba20c10ffc104f4e7b4f9a992a978",
[
null,
[
@@ -150957,7 +150964,7 @@
]
],
"size-container-with-quotes.html": [
- "b88f882cd043195bb4f1b323c369515fe6107e36",
+ "30a4191d3371af6912610b2e9a878c8024d87f8c",
[
null,
[
@@ -150970,7 +150977,7 @@
]
],
"svg-foreignobject-no-size-container.html": [
- "38fc493a16259bec9091850aed09fbeeae313187",
+ "38f7230e18783a35f02248bbcc3b4b23ca2b714e",
[
null,
[
@@ -150983,7 +150990,7 @@
]
],
"svg-g-no-size-container.html": [
- "ed9e85367676d988ebff81d60a9ab9201b6ef8d6",
+ "a4a089a5bebec7f98ad6c071081196fa5abbed4b",
[
null,
[
@@ -150996,7 +151003,7 @@
]
],
"table-inside-container-changing-display.html": [
- "33a4f4fe721b11e6ea10b0c15b8e42465fd1f1f1",
+ "5ae71aad2d0488a2e0d2e69d775c900877a23496",
[
null,
[
@@ -151009,7 +151016,7 @@
]
],
"top-layer-dialog-backdrop.html": [
- "25635167a54ce461a221e2c649c48fc897245581",
+ "207d0ab43ce74663ffbc778e1dfe007facaa4af4",
[
null,
[
@@ -151022,7 +151029,7 @@
]
],
"whitespace-update-after-removal.html": [
- "a7df55efc6eb9ce9b25646ce614cc922dcecf7ee",
+ "066f4254d24c4d9ff5a3284720b930d054490818",
[
null,
[
@@ -189510,7 +189517,7 @@
]
],
"custom-highlight-container-metrics-001.html": [
- "1e22dcc9924f89356ccc9f42533029485aa4d70c",
+ "397718c79c3410602d599174621b5d876066e547",
[
null,
[
@@ -189523,7 +189530,7 @@
]
],
"custom-highlight-container-metrics-002.html": [
- "0a805cf7ea4714694286396c8e5a4b52c73266a1",
+ "bc5199220488b9c242f30fb56c0bb30ae57dff01",
[
null,
[
@@ -189552,7 +189559,7 @@
]
],
"custom-highlight-container-metrics-003.html": [
- "189db49bd3e7c73f2a1affa3a18cb5d3e811afdb",
+ "7a7cede8fca6751cb36d14a6162f85fc991adf18",
[
null,
[
@@ -189565,7 +189572,7 @@
]
],
"custom-highlight-container-metrics-004.html": [
- "158f4ee12c91436cda7946d5574cd37ddf308876",
+ "e1112fe7bdcd9ae59b0a211ed150ebff8567234d",
[
null,
[
@@ -189594,7 +189601,7 @@
]
],
"custom-highlight-container-metrics-005.html": [
- "d7be78d1fdb8f3e6748c14171bb0d2ad143bf028",
+ "b6a5e4af4f8a045c2b94175317470400124f45b0",
[
null,
[
@@ -189607,7 +189614,7 @@
]
],
"custom-highlight-container-metrics-006.html": [
- "4bcae073b5dffba017ad5a52a6021a96c18a0efa",
+ "14b24676016cdbfe06ab4e93d5b90f3ad71ace65",
[
null,
[
@@ -189636,7 +189643,7 @@
]
],
"custom-highlight-dynamic-container-metrics-001.html": [
- "2c28f7d132a68e3c76b255220ade6bc8312c5bd8",
+ "29efae8f9d9a54344ade854e513f1901785dadef",
[
null,
[
@@ -189649,7 +189656,7 @@
]
],
"custom-highlight-dynamic-container-metrics-002.html": [
- "1a0cbe87a557517125c18dba3cacf41705ff5071",
+ "32f78c6d2a5db661502474bd3c615bf64aa9fc44",
[
null,
[
@@ -189678,7 +189685,7 @@
]
],
"custom-highlight-dynamic-container-metrics-003.html": [
- "38246a15affcaed2b1317a43b9c363fbd2cc6717",
+ "463daf529693761e77d4ea2271e58d89b560557e",
[
null,
[
@@ -189691,7 +189698,7 @@
]
],
"custom-highlight-dynamic-container-metrics-004.html": [
- "fbdbea32efcbb742083298e05794a0afa931736d",
+ "54f7a7c178d94450b9daed425df8b37722194d57",
[
null,
[
@@ -190244,7 +190251,7 @@
]
],
"custom-highlight-painting-019.html": [
- "8c5ccbf020c8670c54334570341450cf627c50c9",
+ "69c0fb817b418621d4677d411ba90a40a20eadbb",
[
null,
[
@@ -190260,11 +190267,11 @@
[
[
0,
- 130
+ 250
],
[
0,
- 4
+ 6
]
]
]
@@ -197554,6 +197561,19 @@
{}
]
],
+ "text-box-trim-ruby-start-002.html": [
+ "9fd8be7dfc584e911d63a0bc791a291ddb2d8b9d",
+ [
+ null,
+ [
+ [
+ "/css/css-inline/text-box-trim/text-box-trim-ruby-start-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"text-box-trim-start-001.html": [
"35ac848aa6291db0508fd4df3f0bf2e7f2f43e07",
[
@@ -197679,6 +197699,19 @@
],
{}
]
+ ],
+ "text-box-trim-text-emphasis-start-001.html": [
+ "2c38611ee32eea85a2fa2f7d27ded1d491dfc9cb",
+ [
+ null,
+ [
+ [
+ "/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
]
}
},
@@ -222418,6 +222451,325 @@
}
]
],
+ "highlight-painting-currentcolor-001.html": [
+ "92f9d1c96d875e3cdb532831890dd90d03334fb2",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-001-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-001a.html": [
+ "125a76760a3d187832fc36268a13cd49f479f599",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-001a-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-002.html": [
+ "dcbec06439c70a87a63a8b6511020ea7fc3bc787",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-002-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-002a.html": [
+ "be31b013c3c3748da276b79b1de06aec9729adfb",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-002a-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-002b.html": [
+ "014ddb085f563ea5a28de310523090136ef0351c",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-002b-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-003.html": [
+ "bfab5694c86918f572b6afc359c6c1daac7e3643",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-003-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-003a.html": [
+ "dd471c96007326d4597ed76f0e8fd3e9f6609e31",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-003a-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-003b.html": [
+ "51e643ec68bb133cd7c03bb63c4aef67870f5c37",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-003b-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-004.html": [
+ "d9cce5b08045125c698da421250d772b6d290d44",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-004-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-004a.html": [
+ "0ac021c156bd279750266c50ff0476b77c48083d",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-004a-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
+ "highlight-painting-currentcolor-004b.html": [
+ "856c2232b71b7b48512d7b12c137e579a0f5ef36",
+ [
+ null,
+ [
+ [
+ "/css/css-pseudo/highlight-painting-currentcolor-004b-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 120
+ ],
+ [
+ 0,
+ 10
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
"highlight-painting-currentcolor-005.html": [
"f5c15aafa99ac5b068bbf267bb8ea3583d7ba79a",
[
@@ -231268,6 +231620,19 @@
{}
]
],
+ "fieldset-element-002.html": [
+ "5483330fe70c8305c0ec36bab2b266e6d1d85e1d",
+ [
+ null,
+ [
+ [
+ "/css/css-sizing/aspect-ratio/fieldset-element-002-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"flex-aspect-ratio-001.html": [
"3b477e299ad763a1c0108e16f05981c76c25bb77",
[
@@ -231814,6 +232179,32 @@
{}
]
],
+ "flex-aspect-ratio-043.html": [
+ "a1cd972d4dae64111987db345035f11652132817",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "flex-aspect-ratio-044.html": [
+ "76f6ac115bd5536e3e2d4c0be903a86771af6cf3",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"floats-aspect-ratio-001.html": [
"53627d2134aacff311142d5513a5a662264143de",
[
@@ -232347,6 +232738,19 @@
{}
]
],
+ "grid-aspect-ratio-042.html": [
+ "7f836164adac71bad59bd01c4925036943c18133",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"intrinsic-size-001.html": [
"5b2c6049bd935c928f29c50bf4ad7afae41c4576",
[
@@ -260251,6 +260655,19 @@
{}
]
],
+ "transform-non-invertible-discrete-interpolation.html": [
+ "fae924d9849e9c904f5bf562b233e22bc38d1f44",
+ [
+ null,
+ [
+ [
+ "/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"transform-percent-with-width-and-height-separate.html": [
"d03ba24f9366d71424c50a5db0fbda8c67612457",
[
@@ -283686,7 +284103,7 @@
]
],
"transparent-accent-color-001.html": [
- "219e24c1689b11dca0f22670118439d10e6b8813",
+ "5a5ad4f0a41dcd7f4690b684269a2746cf58d65a",
[
null,
[
@@ -283695,11 +284112,27 @@
"=="
]
],
- {}
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 450
+ ]
+ ]
+ ]
+ ]
+ }
]
],
"transparent-accent-color-002.html": [
- "46b9835d0c18313885e08e2d469111cb82fa841f",
+ "9bc5022c562d98d95423b994fc0f67a7fb6e546f",
[
null,
[
@@ -283708,7 +284141,23 @@
"=="
]
],
- {}
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 1
+ ],
+ [
+ 0,
+ 450
+ ]
+ ]
+ ]
+ ]
+ }
]
],
"webkit-appearance-auto-001.html": [
@@ -288642,19 +289091,6 @@
{}
]
],
- "element-escapes-clip-with-abspos-child.html": [
- "b16b02bd63214db23fa60e00aac8b3f1773909dd",
- [
- null,
- [
- [
- "/css/css-view-transitions/element-escapes-clip-with-abspos-child-ref.html",
- "=="
- ]
- ],
- {}
- ]
- ],
"element-is-grouping-during-animation.html": [
"b1ef745e0dba3e60022921cdf60deea4116791be",
[
@@ -290422,6 +290858,19 @@
{}
]
],
+ "new-content-escapes-clip-with-abspos-child.html": [
+ "4c90a78b505e26c87d0a8f6a2df29a85886d6fd0",
+ [
+ null,
+ [
+ [
+ "/css/css-view-transitions/content-escapes-clip-with-abspos-child-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"new-content-flat-transform-ancestor.html": [
"112a0af2c45d8df8b6e2a8580dece11e86f816e8",
[
@@ -291058,6 +291507,19 @@
{}
]
],
+ "old-content-escapes-clip-with-abspos-child.html": [
+ "652bc9f952a797a812eb80e4678a0ffc4cf836d6",
+ [
+ null,
+ [
+ [
+ "/css/css-view-transitions/content-escapes-clip-with-abspos-child-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"old-content-has-scrollbars.html": [
"b9638ebb10082ee73b47a5a98244f327731b0d6c",
[
@@ -291893,6 +292355,45 @@
{}
]
],
+ "shadow-part-with-name-nested.html": [
+ "e34903a4a2218a92fb782f34d0f5c20de4a0f37f",
+ [
+ null,
+ [
+ [
+ "/css/css-view-transitions/names-are-tree-scoped-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "shadow-part-with-name-overridden-by-important.html": [
+ "139fbd01b76cf4f832eae5d0b04f3dc2be088c26",
+ [
+ null,
+ [
+ [
+ "/css/css-view-transitions/names-are-tree-scoped-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "shadow-part-with-name.html": [
+ "192fbca20c99248c81b7b184080c1e8896608ba3",
+ [
+ null,
+ [
+ [
+ "/css/css-view-transitions/names-are-tree-scoped-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"sibling-frames-transition.html": [
"b4814c5ca81b768e73971ba7c1c858ac8b65c41f",
[
@@ -292674,6 +293175,19 @@
{}
]
],
+ "svg-path-simple.html": [
+ "aebea6ea1fb5000b3c3ab4b5ca6a0908a299853a",
+ [
+ null,
+ [
+ [
+ "/css/css-viewport/zoom/svg-path-simple-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"svg-path.html": [
"9a7bc3ffee97a062409fc6c3e628dcd7a57ed7f4",
[
@@ -292687,6 +293201,19 @@
{}
]
],
+ "svg-viewBox.html": [
+ "d5c2336bdd0402259ce94e9f83c69ce794fb2d1e",
+ [
+ null,
+ [
+ [
+ "/css/css-viewport/zoom/svg-viewBox-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"svg.html": [
"826ce5a80a3b9c06b3c14678704daffd3e2faf7b",
[
@@ -308554,6 +309081,35 @@
}
]
],
+ "backdrop-filter-basic-blur.html": [
+ "03b6c25fee003b242363cf40d71228e6e0b28270",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 40
+ ],
+ [
+ 0,
+ 30000
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
"backdrop-filter-basic-opacity-2.html": [
"c40e8bc09832ec6d30daa6803e98baa3141c9efe",
[
@@ -308593,6 +309149,35 @@
{}
]
],
+ "backdrop-filter-boundary.html": [
+ "9f371387abf4e1171c3b9ed7c10cd33928d993aa",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/backdrop-filter-boundary-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 20
+ ],
+ [
+ 0,
+ 100000
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
"backdrop-filter-clip-rect-2.html": [
"8116bd0dcf292eb8dd6dfd3710bdbc4dedcf509e",
[
@@ -308719,6 +309304,35 @@
{}
]
],
+ "backdrop-filter-edge-clipping-2.html": [
+ "0c9bed73c891df76624856e57790ab46d5a70321",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 20
+ ],
+ [
+ 0,
+ 10000
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
"backdrop-filter-edge-clipping.html": [
"f6f7d89e5bf0faa1a3e29efe8f1bca3f69d9f935",
[
@@ -308733,12 +309347,12 @@
]
],
"backdrop-filter-edge-mirror.html": [
- "c11d2f2733e3cf452299dc0f088f4459c9f53910",
+ "b56bddf7ad2b51bced27e5fa4ddbf8306871282a",
[
null,
[
[
- "/css/filter-effects/backdrop-filter-edge-mirror-ref.html",
+ "/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html",
"=="
]
],
@@ -308761,6 +309375,35 @@
}
]
],
+ "backdrop-filter-edge-pixels-2.html": [
+ "8b87ef95c02ceed0946de9b9a3e194743e73fdcd",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 20
+ ],
+ [
+ 0,
+ 30000
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
"backdrop-filter-edge-pixels.html": [
"5a70020890b619fd08f6546a4f3549568ce3856b",
[
@@ -308930,6 +309573,35 @@
{}
]
],
+ "backdrop-filter-svg-blur.html": [
+ "eff40c9e0fa334dbd21f475a3b3dd046b2a3eacf",
+ [
+ null,
+ [
+ [
+ "/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html",
+ "=="
+ ]
+ ],
+ {
+ "fuzzy": [
+ [
+ null,
+ [
+ [
+ 0,
+ 20
+ ],
+ [
+ 0,
+ 10000
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ ],
"backdrop-filter-svg-foreignObject.html": [
"4ccaa0cf81ff6c9787ad02c53cf6a1d19857dace",
[
@@ -311929,6 +312601,84 @@
{}
]
],
+ "mq-calc-sign-function-001.html": [
+ "96c3853136253f8ca1da380660e6ba55cb3673c3",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mq-calc-sign-function-002.html": [
+ "31ff421ea2a2216d008e30a7295358f1866f9a1b",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mq-calc-sign-function-003.html": [
+ "423948f722d85a819a4ff63639a27f6ae3482b90",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mq-calc-sign-function-004.html": [
+ "219f0c152721bc76197b9f31d1961e6dcf11a5ae",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mq-calc-sign-function-005.html": [
+ "ca5fecb338bb5e31ab46790067f1441fd9dd2b31",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
+ "mq-calc-sign-function-006.html": [
+ "239748d205f2706b22574eadaf7c7e7389f70403",
+ [
+ null,
+ [
+ [
+ "/css/reference/ref-filled-green-100px-square.xht",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"mq-case-insensitive-001.html": [
"c851662343dcfcff5a0d39d37d849f9e0ff8c667",
[
@@ -319272,6 +320022,21 @@
{}
]
],
+ "compositing": {
+ "colr-glyph-composition.html": [
+ "ed372a2613c488d0e4fff6f959ab7ffe6557aa0c",
+ [
+ null,
+ [
+ [
+ "/html/canvas/element/compositing/colr-glyph-composition-ref.html",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ]
+ },
"filters": {
"2d.filter.canvasFilterObject.componentTransfer.discrete.tentative.html": [
"0a4830568b409ea329a99eed9b06aa6f41000572",
@@ -328680,7 +329445,7 @@
]
],
"input-number-text-size.tentative.html": [
- "e7b1a1990dcd4f6af2efad70705b7523460c15db",
+ "0850f0558e3fb97e31b25f4b9aa498e59f08f7cd",
[
null,
[
@@ -340337,6 +341102,19 @@
{}
]
],
+ "non-scaling-stroke-003.html": [
+ "147bf814d30f10094b77aeb4eb0fc25396cda00e",
+ [
+ null,
+ [
+ [
+ "/svg/painting/reftests/green-100x100.svg",
+ "=="
+ ]
+ ],
+ {}
+ ]
+ ],
"paint-context-001.svg": [
"7be33cb20fb257496cb1357a5481edecf364bc59",
[
@@ -346287,7 +347065,7 @@
],
"workflows": {
"docker.yml": [
- "a55d0f626d26ab824a10eedaafb52af614eced2c",
+ "32fb814e6d94c4d71bca85e06512a9b3ce6c7783",
[]
],
"documentation.yml": [
@@ -346623,7 +347401,7 @@
],
"derive_bits_keys": {
"cfrg_curves_bits.js": [
- "422a230bd16675419b774a9301adb36fceab71dc",
+ "da809278a87aa51d8ba726c43d5c0e209dfbae59",
[]
],
"cfrg_curves_bits_fixtures.js": [
@@ -346634,8 +347412,20 @@
"81244ba05a876614cf2777528fdaf5deac7298aa",
[]
],
+ "derived_bits_length.js": [
+ "5a7ed7eb50a0a0b683c1631b639be89b2e428a1c",
+ []
+ ],
+ "derived_bits_length_testcases.js": [
+ "1bd7fbc2c8598964ec122e14392761240c1a26fa",
+ []
+ ],
+ "derived_bits_length_vectors.js": [
+ "fa51f7d3f2b195d068f8d7722bb7dfb40294ecfc",
+ []
+ ],
"ecdh_bits.js": [
- "cb9747a529fd53530df926ddc99759e5a9126ee9",
+ "36b29c20a282abb13aaf5ab3308db81fe7a48c89",
[]
],
"ecdh_keys.js": [
@@ -346643,7 +347433,7 @@
[]
],
"hkdf.js": [
- "3903da5cddff941c9ff82b19b0967ba41f0737f5",
+ "b2dfda0257bc81b00131026e1983a267342d9e9a",
[]
],
"hkdf_vectors.js": [
@@ -346651,7 +347441,7 @@
[]
],
"pbkdf2.js": [
- "4e4ae79d800a402b7a0933b752da9a5fb151bc2f",
+ "090806ceb6b3eaa5a7d48f44143bbe95fe63876b",
[]
],
"pbkdf2_vectors.js": [
@@ -407368,7 +408158,7 @@
[]
],
"custom-highlight-painting-019-ref.html": [
- "22662336845f03aefa743b3f1721c127f2789b18",
+ "a8ec613fbca7b735245fb8b49e2830301eff4c7c",
[]
],
"custom-highlight-painting-020-ref.html": [
@@ -408864,6 +409654,10 @@
"text-box-trim-tall-line-001-ref.html": [
"dc0d31e2f60533e6880ef8ee3e21ec4425ed2926",
[]
+ ],
+ "text-box-trim-text-emphasis-start-001-ref.html": [
+ "96e0c5a32083082422335f53d67d2fefec3c156a",
+ []
]
}
},
@@ -413890,6 +414684,50 @@
"732f6bfe0dbfe2be32bfa225e53c1da84fa8a98b",
[]
],
+ "highlight-painting-currentcolor-001-ref.html": [
+ "699f559c6aa3072bf3853801897305a4b89bcb26",
+ []
+ ],
+ "highlight-painting-currentcolor-001a-ref.html": [
+ "114487e478f1409ec2d27fb4202740d0b3cb0248",
+ []
+ ],
+ "highlight-painting-currentcolor-002-ref.html": [
+ "35891efedd4e46109ffef48de52e0cc1f3d28ca0",
+ []
+ ],
+ "highlight-painting-currentcolor-002a-ref.html": [
+ "c58b5f48e6f8bf83877317ce58f862f80261165e",
+ []
+ ],
+ "highlight-painting-currentcolor-002b-ref.html": [
+ "6330c7b9717314691bc33bdefb15a3a0b59e11d0",
+ []
+ ],
+ "highlight-painting-currentcolor-003-ref.html": [
+ "f2d14a4cd635d4404f8a657f51a21c892289bdc5",
+ []
+ ],
+ "highlight-painting-currentcolor-003a-ref.html": [
+ "be16f519c0ff7fa085478499fcef956ed9658edb",
+ []
+ ],
+ "highlight-painting-currentcolor-003b-ref.html": [
+ "cfdb46597272c3c73166f99e875ddf00d3d95879",
+ []
+ ],
+ "highlight-painting-currentcolor-004-ref.html": [
+ "0963a7d831c6463cd4788024d97e95e23afb3258",
+ []
+ ],
+ "highlight-painting-currentcolor-004a-ref.html": [
+ "a29a035dc64b79fa7ece0bab9f85faa9204047f5",
+ []
+ ],
+ "highlight-painting-currentcolor-004b-ref.html": [
+ "0e0dee02c4cdfc2b40b7fbadde4034d063c8efdb",
+ []
+ ],
"highlight-painting-currentcolor-005-ref.html": [
"39d26e8387204840d89318ef917d5df0c4021df4",
[]
@@ -414336,7 +415174,7 @@
[]
],
"selections.js": [
- "d0cd3409a7333ba6f22616767564f0327ab9db07",
+ "4396bfa326b1d55b0b0e1786ad345d9754de1a35",
[]
]
},
@@ -416025,6 +416863,10 @@
"cc964da974077b062212a7cd4e388f1daa017ec9",
[]
],
+ "fieldset-element-002-ref.html": [
+ "2c7e7abd0f69738c49c57f42ffc5e073b87ee8b9",
+ []
+ ],
"floats-aspect-ratio-001-ref.html": [
"734522a16417a8efaaa0df5c92ff3d8ca9102f9d",
[]
@@ -421859,6 +422701,10 @@
"2fee6f7c1fc46593f450fac606a651a12403ff72",
[]
],
+ "transform-non-invertible-discrete-interpolation-ref.html": [
+ "8267b01d01fab8b92069aebb816f2b2847e776ac",
+ []
+ ],
"transform-percent-with-width-and-height-ref.html": [
"8025539309f04590fe103ddd6f35346febbd7a1c",
[]
@@ -423920,11 +424766,11 @@
[]
],
"transparent-accent-color-001-ref.html": [
- "c9d6eb720f1f8f17285014b0b7fa99f86ec6e4e7",
+ "91a9600e180cd9636b2ec3aa0ad63f79bbc334b5",
[]
],
"transparent-accent-color-002-ref.html": [
- "819a5852460eeb295a65ac9acf8ce8683c93170f",
+ "db70dede9453312e8864d64ea5d8c29be1f63899",
[]
]
},
@@ -425628,6 +426474,10 @@
"67d55eedf4872f828e2838c6f7c77d6d4d053b11",
[]
],
+ "content-escapes-clip-with-abspos-child-ref.html": [
+ "1e22d6f66d742b7a8c99b3ecb075356d2811b18b",
+ []
+ ],
"content-object-fit-fill-ref.html": [
"10ef0d59319b3c32eaa304bd66879294a4ce2d45",
[]
@@ -425700,10 +426550,6 @@
"029b0e9f86f7043ff92d17071ceca7544649b985",
[]
],
- "element-escapes-clip-with-abspos-child-ref.html": [
- "1e22d6f66d742b7a8c99b3ecb075356d2811b18b",
- []
- ],
"element-is-grouping-during-animation-ref.html": [
"38fca3c5288a444b959f1d5279056f8608798fa3",
[]
@@ -426229,7 +427075,7 @@
[]
],
"root-scrollbar-with-fixed-background-ref.html": [
- "ae1ff38f2f63dae173043e9ae07a7e494e236134",
+ "bc2c5862bf534687e108600e70a8bc3d44dfed63",
[]
],
"root-style-change-during-animation-ref.html": [
@@ -426485,9 +427331,17 @@
"29f4d3bbff481991354be360948e92334f6043dd",
[]
],
+ "svg-path-simple-ref.html": [
+ "8443768cc74edb18bd75812a2b6383df2fb83594",
+ []
+ ],
"svg-ref.html": [
"10bf2decaa74ae0108c86d5b97ad0480f85bf307",
[]
+ ],
+ "svg-viewBox-ref.html": [
+ "b58eb47a23c4a0531e6ec6f690cebbd2dfb46afc",
+ []
]
}
},
@@ -429602,10 +430456,6 @@
"b605e3251c5b91f50a8b001655884b28937e9bef",
[]
],
- "backdrop-filter-edge-mirror-ref.html": [
- "c80dcb04e5cd81b03535de87b0f305efe865fb0e",
- []
- ],
"backdrop-filter-edge-pixels-ref.html": [
"36c509ff95d9b667018d070f4c1c7d334437ce37",
[]
@@ -429933,14 +430783,38 @@
]
},
"reference": {
+ "backdrop-filter-basic-blur-ref.html": [
+ "20775bc22f3da482e0f14985d65ebffcbbd2ca12",
+ []
+ ],
+ "backdrop-filter-boundary-ref.html": [
+ "6cf03dde8c56c5c8e5b27623ea211ba8e6d2ad80",
+ []
+ ],
"backdrop-filter-clip-rect-2-ref.html": [
"f12e88515fe9d3d845599273054803b7f782dd5a",
[]
],
+ "backdrop-filter-edge-clipping-2-ref.html": [
+ "5d035cb195af99d415dcfdd42448875fc07f4dba",
+ []
+ ],
+ "backdrop-filter-edge-mirror-ref.html": [
+ "4c1dc985082d3fd18667da09f6ceb1f7e9bb5107",
+ []
+ ],
+ "backdrop-filter-edge-pixels-2-ref.html": [
+ "bb482e67ffae21bd339b9955c522f168c7830aeb",
+ []
+ ],
"backdrop-filter-plus-will-change-opacity-ref.html": [
"56c6243809bef53423ff18d4b70a8597795cacec",
[]
],
+ "backdrop-filter-svg-blur-ref.html": [
+ "f9bcb1c22d9006af5605d031fd545738d7f5f1bf",
+ []
+ ],
"backdrop-filter-svg-ref.html": [
"3d5853ac6698ee9dafba37a825f3dc4e2d07b64e",
[]
@@ -430277,6 +431151,10 @@
"84141028020b7e8cdf2412acbca3c799ba50a534",
[]
],
+ "simulate-backdrop-blur.js": [
+ "20f2cd55986f2ba7a57a8793a3fd2b18f6a301e0",
+ []
+ ],
"square-purple.png": [
"0f522d78728417b0f74b694e2e47cd41c00359d1",
[]
@@ -431166,6 +432044,12 @@
"c8243ac73199435f3a7dc0da0bd839fed9a77a14",
[]
],
+ "media": {
+ "WEB_FEATURES.yml": [
+ "4cd0fc2726292091a0f7f98f47934afc1578b60b",
+ []
+ ]
+ },
"not-links-ref.html": [
"1b2515a5cd1ec257fa8ebda2041699f5d4d09230",
[]
@@ -431912,7 +432796,7 @@
},
"digital-credentials": {
"META.yml": [
- "8a7db924976bf95537afe45854962916207e5b61",
+ "fc8f6a62cda5062676e1fb27324739c17ac0f91e",
[]
],
"support": {
@@ -431936,15 +432820,15 @@
[]
],
"disabled-by-permissions-policy.https.sub.html.headers": [
- "661a357effcfdf7f25a4974e151818ac3a9ec464",
+ "8ed57bbc951b7053545bcca83edc6b22c7f80f73",
[]
],
"tcp_socket.https.html.headers": [
- "177feb102dbffb11e5ff7bee147f1834cb771e74",
+ "b20aae031ea97f6302d5d3150a6c31d8aa289bcb",
[]
],
"udp_socket.https.html.headers": [
- "177feb102dbffb11e5ff7bee147f1834cb771e74",
+ "b20aae031ea97f6302d5d3150a6c31d8aa289bcb",
[]
]
},
@@ -435059,7 +435943,7 @@
[]
],
"continue_on.py": [
- "0195e478e2975d37cbe8aaa58141caf15aa797bc",
+ "5447ab96e4f23b905dad685c2233e3ba8b9a954b",
[]
],
"disconnect.py": [
@@ -441911,6 +442795,10 @@
"2d.composite.uncovered.pattern.source-out.png": [
"eeedd0ff05889ffd4468bf19a2e8e9e0a094201c",
[]
+ ],
+ "colr-glyph-composition-ref.html": [
+ "b47795f2054ac62bf4969094b6ed44e368048ff9",
+ []
]
},
"fill-and-stroke-styles": {
@@ -443764,7 +444652,7 @@
[]
],
"gentestutilsunion.py": [
- "ab6f4e1cd08145470f7bb8c6d0a477e06b63713a",
+ "a453c6ff9243be3bbc229bc7c0e2beed75fb2225",
[]
],
"name2dir-canvas.yaml": [
@@ -443817,7 +444705,7 @@
[]
],
"testharness_element_grid.html": [
- "ee2360f72c22dec8b152994c1ad9580cd1bfac57",
+ "50d75238923ca3cebd3b27e8d6e9f0b8fc7daff9",
[]
],
"testharness_offscreen.html": [
@@ -443825,7 +444713,7 @@
[]
],
"testharness_offscreen_grid.html": [
- "6e5628036ba5873c2427a0a71a28e0e597eac0d2",
+ "31d86e705a09fcd0fbbdd78a92cd1ccebb943afb",
[]
],
"testharness_worker.js": [
@@ -450134,7 +451022,7 @@
[]
],
"input-number-text-size-ref.html": [
- "4c9b244990d611686614d409d315d74a0f4bd119",
+ "6c831941f08516313cf542cd4665b0dc305afd50",
[]
],
"input-password-background-suppresses-appearance-ref.html": [
@@ -457412,7 +458300,7 @@
[]
],
"WebCryptoAPI.idl": [
- "0e68ea82f594430fdccff7db045a978905367419",
+ "ae85c1cfe4684fe778038f579223ee7a5606150c",
[]
],
"accelerometer.idl": [
@@ -457555,12 +458443,12 @@
"6f5c6dfc096cbe04e30bb2fb38e7119fc45dc870",
[]
],
- "css-conditional.idl": [
- "d87f305fddf9e7c3f0151d51a595ae7140dce908",
+ "css-conditional-5.idl": [
+ "b1919213ebcf4b4b65483ef878370de7ce817c65",
[]
],
- "css-contain-3.idl": [
- "0ecf3804954813ccae0065c91af93712ed31b5d4",
+ "css-conditional.idl": [
+ "d87f305fddf9e7c3f0151d51a595ae7140dce908",
[]
],
"css-contain.idl": [
@@ -457600,7 +458488,7 @@
[]
],
"css-nesting.idl": [
- "58d3247f9048b6a2ba1dedb2954ef30943f89de2",
+ "1ad0404ecf97d5e026db0ef294dd62a98cd500ad",
[]
],
"css-paint-api.idl": [
@@ -457656,7 +458544,7 @@
[]
],
"cssom.idl": [
- "005496e7ede2e67aa3fe2ed208afb6afe849daae",
+ "1e70e1f8bcadf64ca12b237bbe8b81af15150e7b",
[]
],
"datacue.idl": [
@@ -457728,7 +458616,7 @@
[]
],
"fenced-frame.idl": [
- "a3ec8d731bbcd65491ff533322994f45c5641fab",
+ "e15cbf11da271b8593d04e421a621560c25cc53e",
[]
],
"fetch.idl": [
@@ -457776,7 +458664,7 @@
[]
],
"geolocation.idl": [
- "8c0acfc6cc1c37220d282f42edd84bab4e02505c",
+ "062a38bebc571ae6783123d87d44d15bf6790316",
[]
],
"geometry.idl": [
@@ -457791,6 +458679,10 @@
"fd80669bfc27bf32607dd02d37732cda6a359638",
[]
],
+ "handwriting-recognition.idl": [
+ "2bac6b5d9cade408085b7bde4e6c31457546e2ae",
+ []
+ ],
"hr-time.idl": [
"835ee8a65c84c0b45ba3beb9b0367cd12dd98f35",
[]
@@ -457800,7 +458692,7 @@
[]
],
"html.idl": [
- "b5bf357357946ba8255dc3b309409602997147f4",
+ "4d6c0229bc13925a91aa9a4aa6342943aecdf9c8",
[]
],
"idle-detection.idl": [
@@ -457832,7 +458724,7 @@
[]
],
"intersection-observer.idl": [
- "8502a11357faabd327d5659089198f0133a9db4c",
+ "eb7f18f5213364525f8ecd32e94c9a566df36a7c",
[]
],
"intervention-reporting.idl": [
@@ -457924,7 +458816,7 @@
[]
],
"mediacapture-streams.idl": [
- "62b846db0b4042d40cb42a68482d6c0be6ee26c0",
+ "f6c8e2b82da6b617a44ed5d5aec31720d7c54740",
[]
],
"mediacapture-transform.idl": [
@@ -458008,7 +458900,7 @@
[]
],
"permissions-policy.idl": [
- "16945e3a9b7cded5610d9d2e2cb53acbb8d6b831",
+ "5878d8d150a6db19f9f060fe5c60c420eb8ed12b",
[]
],
"permissions-request.idl": [
@@ -458032,7 +458924,7 @@
[]
],
"pointerlock.idl": [
- "0204bf53424826b04be7bce2c34e429332a527a9",
+ "afe19cc9ee69c518bc59bf56b17f245f800bf1d0",
[]
],
"portals.idl": [
@@ -458168,7 +459060,7 @@
[]
],
"shared-storage.idl": [
- "c40344e74d2c7f9aac8a573fc267fa548ffffb5d",
+ "9582f872f9433eb7a5991aa233f0954083a4bfdf",
[]
],
"speech-api.idl": [
@@ -458212,11 +459104,11 @@
[]
],
"trusted-types.idl": [
- "a0f88e4e6c38cab683a236f3e8fa211b7e4e2107",
+ "b6008e187250fbce3ec0c0481b9de5b63a9c0cd1",
[]
],
"turtledove.idl": [
- "d4cc8c6bc5d5b106dc3f495058a2108ed6792c6f",
+ "b7a1775a2ce974eb5d90e6588a44078c98effea2",
[]
],
"ua-client-hints.idl": [
@@ -458308,7 +459200,7 @@
[]
],
"webauthn.idl": [
- "3d5a453addcb4e4bcfc10e9c7333e621876ff9d3",
+ "e52b62b055eff450c0ae8264d54f45404412545a",
[]
],
"webcodecs-aac-codec-registration.idl": [
@@ -458360,7 +459252,7 @@
[]
],
"webgpu.idl": [
- "4a1b339a002661035a8b5f366d6ce166b8bfe37c",
+ "00584589d5bd30fe51cb5fcaef855180048c5d52",
[]
],
"webhid.idl": [
@@ -458376,7 +459268,7 @@
[]
],
"webnn.idl": [
- "29c88122adc760aa49d431057f7c26d5b426440f",
+ "ac8710049ab0c56cc6b67a9972ad7bfb854950dd",
[]
],
"webrtc-encoded-transform.idl": [
@@ -458404,7 +459296,7 @@
[]
],
"webrtc.idl": [
- "de6ba1420cec4bb53b1651cea69ac030db6f4a78",
+ "6bfbdb898c5e87b4a095a14a117e6f0d831d7ee8",
[]
],
"websockets.idl": [
@@ -458448,7 +459340,7 @@
[]
],
"webxr-hit-test.idl": [
- "fa4fb71c9decd64054669249353a16b3476aae56",
+ "d01bffe27037fe82157f05bec9689e5ca417bbee",
[]
],
"webxr-lighting-estimation.idl": [
@@ -465725,7 +466617,7 @@
[]
],
"mock-pressure-service.js": [
- "016c6d97e73ddfa33eb9398f15fdde0b62c37496",
+ "8e205d31cb71c11711afc3b5ac379738880c9efa",
[]
],
"mock-pressure-service.js.headers": [
@@ -466270,7 +467162,7 @@
[]
],
"testdriver.js": [
- "2d1a89690cc25f87e7d2762c3f5081081a902f7a",
+ "af7b3e06cd93b614b957bfbd3e7358862f38e137",
[]
],
"testdriver.js.headers": [
@@ -466623,6 +467515,18 @@
[]
]
},
+ "same-document-tests-force-load-at-top.html.headers": [
+ "33dcdbb01ff6564e542ed621c667523a0ada4879",
+ []
+ ],
+ "same-document-tests-no-force-load-at-top.html.headers": [
+ "e500009f91c0201a2a397a4267a6764cdb1eae8a",
+ []
+ ],
+ "same-document-tests.js": [
+ "6531c8aec194dad6505bf7cc988be3299a1f1807",
+ []
+ ],
"scroll-to-text-fragment-after-DOMContentLoaded-target.html": [
"b7d517a7f6b2781f882d0f4804225354d8dd0ac8",
[]
@@ -471049,11 +471953,11 @@
[]
],
"storage-access-beyond-cookies-iframe-iframe.html": [
- "77f1163f36331018ab66366ebe28df462bdbeda6",
+ "cfc7d599a1b5c7394233a6527c65b8ea9879a986",
[]
],
"storage-access-beyond-cookies-iframe.sub.html": [
- "a9247a00020b16cb9c18c10778cfe48446022aca",
+ "3d9f5bb1ef2499e8fbf84a83037f10335973930e",
[]
]
}
@@ -483534,7 +484438,7 @@
[]
],
"network.py": [
- "4523f67e9c97a7c981d36e23462cc47871bdd016",
+ "46c5885271afd28cb3297209d1b281b0b34e4e00",
[]
],
"permissions.py": [
@@ -483827,7 +484731,7 @@
]
},
"requirements.txt": [
- "ae71bbbad6d9ca1d82e65046c18d2e06559460b4",
+ "565055c6e3d5635f7b6b1556cab40556082442d2",
[]
],
"requirements_chromium.txt": [
@@ -483877,7 +484781,7 @@
[]
],
"chrome.py": [
- "3b1bd6411e235af721c6ce6901f1f60e10be97b7",
+ "d0d9f1d3421c233c10d6c7daea6eed84551690ab",
[]
],
"chrome_android.py": [
@@ -484168,7 +485072,7 @@
[]
],
"testrunner.py": [
- "0a5dfb1fd1864f9456769e4a99c95c61747a89c3",
+ "003a6acbd990f08ba5ff573941aad30247d03137",
[]
],
"tests": {
@@ -485575,7 +486479,7 @@
[]
],
"toascii.json": [
- "bca28b4a1e454a8c9ac74a94f6498fda1f6d75ba",
+ "d02c4c7e86654c5056abb6969d9c916a96eb1620",
[]
],
"urltestdata.json": [
@@ -487772,6 +488676,16 @@
[]
]
},
+ "set_cache_bypass": {
+ "__init__.py": [
+ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
+ []
+ ],
+ "conftest.py": [
+ "969641b8fd202df97753e0c6221d0db20af42827",
+ []
+ ]
+ },
"support": {
"empty.html": [
"69e9da4114557b774cd78c3da64f24b49ccb03b6",
@@ -488428,7 +489342,7 @@
[]
],
"fixtures_bidi.py": [
- "3e97cfe3ce4c9c321dfe45b1244aa5ea02bdfb20",
+ "7c88abcd2e029ffe2f938d6d187602e05a71ca67",
[]
],
"fixtures_http.py": [
@@ -488852,7 +489766,7 @@
[]
],
"gelu.json": [
- "414227975913f31b95f9c4446f5acd94be6d76fb",
+ "3adf4b6a2b6a89e574e407ae771b6531a8b5dc1f",
[]
],
"gemm.json": [
@@ -489069,7 +489983,7 @@
[]
],
"utils_validation.js": [
- "2ac308242a133772b3735b408937730b8b0bbb92",
+ "119450be4c1c3005132da0f5d96123e64ac054a4",
[]
]
}
@@ -495982,81 +496896,162 @@
{}
]
],
- "idbcursor_continue_objectstore.htm": [
- "f82aa99949d9e9ed47b50c05bfea994dbca2bbb0",
- [
- null,
- {}
- ]
- ],
- "idbcursor_continue_objectstore2.htm": [
- "8b79c64615bc4dd8d0e0d2b30056e86a171ca5c1",
- [
- null,
- {}
- ]
- ],
- "idbcursor_continue_objectstore3.htm": [
- "7d96d7fec9e4eeedbc7273ff9ac87370894da325",
- [
- null,
- {}
- ]
- ],
- "idbcursor_continue_objectstore4.htm": [
- "5056a7364fdb568196ee0b7e488b3248397bc9cd",
+ "idbcursor_continue_objectstore.any.js": [
+ "76e1c7afe79c966cec9cbbf8632dcda807f32ff6",
[
- null,
- {}
- ]
- ],
- "idbcursor_continue_objectstore5.htm": [
- "a0c3663ab401913b00ea2dc14199af2b210df372",
+ "IndexedDB/idbcursor_continue_objectstore.any.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "title",
+ "IDBCursor.continue() - object store"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
- ]
- ],
- "idbcursor_continue_objectstore6.htm": [
- "7a2b50752ce1e8862c72b8d6246616a0f6e3c20f",
+ "IndexedDB/idbcursor_continue_objectstore.any.serviceworker.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "title",
+ "IDBCursor.continue() - object store"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
- ]
- ],
- "idbcursor_delete_index.htm": [
- "6d1b4e35c97e655dad3ff51f7100f315ecc5f894",
+ "IndexedDB/idbcursor_continue_objectstore.any.sharedworker.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "title",
+ "IDBCursor.continue() - object store"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
+ "IndexedDB/idbcursor_continue_objectstore.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "title",
+ "IDBCursor.continue() - object store"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
]
],
- "idbcursor_delete_index2.htm": [
- "054432d65dcfd555fecc64c2c2339d39d876fb1c",
+ "idbcursor_delete_index.any.js": [
+ "a4d0614820a188ec50b7490d2d2b2a35f4c358ec",
[
- null,
- {}
- ]
- ],
- "idbcursor_delete_index3.htm": [
- "afe945e646277bc39f96b8a99be171bb5a6a361b",
+ "IndexedDB/idbcursor_delete_index.any.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "title",
+ "IDBCursor.delete() - index"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
- ]
- ],
- "idbcursor_delete_index4.htm": [
- "8eb6915b885879be61c935b5cdda64ab9d55ea15",
+ "IndexedDB/idbcursor_delete_index.any.serviceworker.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "title",
+ "IDBCursor.delete() - index"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
- ]
- ],
- "idbcursor_delete_index5.htm": [
- "76ce6d0e50e10dfe86bcabbb45c05cb9158ebfa5",
+ "IndexedDB/idbcursor_delete_index.any.sharedworker.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "title",
+ "IDBCursor.delete() - index"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
+ "IndexedDB/idbcursor_delete_index.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "title",
+ "IDBCursor.delete() - index"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
]
],
"idbcursor_delete_objectstore.htm": [
@@ -496482,39 +497477,83 @@
}
]
],
- "idbdatabase_transaction.htm": [
- "8e8264f8eab9ab2f890e38cfe9c18b7a3f1b7428",
- [
- null,
- {}
- ]
- ],
- "idbdatabase_transaction2.htm": [
- "37b11229194debd6f13cc645e8d0df64a51c14d8",
+ "idbdatabase_transaction.any.js": [
+ "17859ec99e68f5191f56597014a74943bc28c86f",
[
- null,
- {}
- ]
- ],
- "idbdatabase_transaction3.htm": [
- "1eea31f764a7736b9de8152e500e52545d85a1f2",
+ "IndexedDB/idbdatabase_transaction.any.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "IDBDatabase.transaction()"
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
- ]
- ],
- "idbdatabase_transaction4.htm": [
- "3a164c25f59ced647599d3cc33bdcd063b9edff9",
+ "IndexedDB/idbdatabase_transaction.any.serviceworker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "IDBDatabase.transaction()"
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
- ]
- ],
- "idbdatabase_transaction5.htm": [
- "451939731faa24afe7a7a1d703b5d5eadbd54062",
+ "IndexedDB/idbdatabase_transaction.any.sharedworker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "IDBDatabase.transaction()"
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
+ "IndexedDB/idbdatabase_transaction.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "IDBDatabase.transaction()"
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
]
],
"idbfactory-databases-opaque-origin.html": [
@@ -496629,88 +497668,83 @@
{}
]
],
- "idbfactory_open.htm": [
- "8e0b2412c9199c9d5542e2184774af04317b431b",
- [
- null,
- {}
- ]
- ],
- "idbfactory_open10.htm": [
- "6340bd3cdf7a8df0d7c3643381719d38ae55711c",
- [
- null,
- {}
- ]
- ],
- "idbfactory_open11.htm": [
- "d4012bea55bcf4ecc9e852f4cdd3cbbf2453d9eb",
- [
- null,
- {}
- ]
- ],
- "idbfactory_open12.htm": [
- "ee713ef352073b6dc19346a931593c3e5e547233",
- [
- null,
- {}
- ]
- ],
- "idbfactory_open2.htm": [
- "00ebbd3d0f0d2614a1281d3de03586a122ef327d",
- [
- null,
- {}
- ]
- ],
- "idbfactory_open3.htm": [
- "19cd5c5254dd1b40d023c5f45f4a02c184f5dc3d",
- [
- null,
- {}
- ]
- ],
- "idbfactory_open4.htm": [
- "6983ca0737f029f34dd19c0e0afbcdbf5ef5c0b8",
- [
- null,
- {}
- ]
- ],
- "idbfactory_open5.htm": [
- "f6ddb17001a4bdeb99faf01bbbf6afcbdc6ab5e0",
- [
- null,
- {}
- ]
- ],
- "idbfactory_open6.htm": [
- "2b2cb334e46875e9d7b2b56eeeab12fab0678011",
+ "idbfactory_open.any.js": [
+ "edc5d3c8c6c0e9dabeaa814bc10acef0be9282d9",
[
- null,
- {}
- ]
- ],
- "idbfactory_open7.htm": [
- "ccb3d0674893ce4b4066405c6761c160a47ade28",
+ "IndexedDB/idbfactory_open.any.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "IDBFactory.open()"
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
- ]
- ],
- "idbfactory_open8.htm": [
- "04c57df2ed43aa70d9cf54b6522630ed8cea3a36",
+ "IndexedDB/idbfactory_open.any.serviceworker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "IDBFactory.open()"
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
- ]
- ],
- "idbfactory_open9.htm": [
- "36a9ef814cb121dd70da5bb265b3b6a6e15001c8",
+ "IndexedDB/idbfactory_open.any.sharedworker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "IDBFactory.open()"
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
+ ],
[
- null,
- {}
+ "IndexedDB/idbfactory_open.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "IDBFactory.open()"
+ ],
+ [
+ "global",
+ "window,worker"
+ ],
+ [
+ "script",
+ "resources/support.js"
+ ]
+ ]
+ }
]
],
"idbindex-cross-realm-methods.html": [
@@ -500346,6 +501380,55 @@
}
]
],
+ "derived_bits_length.https.any.js": [
+ "0aee2e3c172d30ab177fe89a8d75f964a2c9b703",
+ [
+ "WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "WebCryptoAPI: deriveBits() tests for the 'length' parameter"
+ ],
+ [
+ "script",
+ "derived_bits_length.js"
+ ],
+ [
+ "script",
+ "derived_bits_length_vectors.js"
+ ],
+ [
+ "script",
+ "derived_bits_length_testcases.js"
+ ]
+ ]
+ }
+ ],
+ [
+ "WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "WebCryptoAPI: deriveBits() tests for the 'length' parameter"
+ ],
+ [
+ "script",
+ "derived_bits_length.js"
+ ],
+ [
+ "script",
+ "derived_bits_length_vectors.js"
+ ],
+ [
+ "script",
+ "derived_bits_length_testcases.js"
+ ]
+ ]
+ }
+ ]
+ ],
"ecdh_bits.https.any.js": [
"37e3eb4324200c85cb65ee9f077ea7433bff7783",
[
@@ -507306,6 +508389,51 @@
]
],
"import_export": {
+ "crashtests": {
+ "importKey-unsettled-promise.https.any.js": [
+ "0ceeea390ebf97d65f22fa20a41e22b0eac68d68",
+ [
+ "WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "WebCryptoAPI: Assure promise returned by importKey is settled."
+ ],
+ [
+ "timeout",
+ "long"
+ ],
+ [
+ "script",
+ "/common/gc.js"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ],
+ [
+ "WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.worker.html",
+ {
+ "script_metadata": [
+ [
+ "title",
+ "WebCryptoAPI: Assure promise returned by importKey is settled."
+ ],
+ [
+ "timeout",
+ "long"
+ ],
+ [
+ "script",
+ "/common/gc.js"
+ ]
+ ],
+ "timeout": "long"
+ }
+ ]
+ ]
+ },
"ec_importKey.https.any.js": [
"a01bfbb0ef2e1881e83aaefe76f1ca39805c9304",
[
@@ -529538,6 +530666,15 @@
"testdriver": true
}
]
+ ],
+ "resolve-after-preventsilentaccess.https.html": [
+ "7223a722fe2fb4e533acb3e4777a53669fdb1d5c",
+ [
+ null,
+ {
+ "testdriver": true
+ }
+ ]
]
},
"fedcm-auto-reauthn-without-approved-clients.https.html": [
@@ -531954,6 +533091,34 @@
}
},
"css-anchor-position": {
+ "anchor-animation-dynamic-default.html": [
+ "d1837a6c336725ddd675c43c8da6a19376e68d74",
+ [
+ null,
+ {}
+ ]
+ ],
+ "anchor-animation-dynamic-name.html": [
+ "60d8dd59aeb0254489f18400aae907c1d5f4ecf8",
+ [
+ null,
+ {}
+ ]
+ ],
+ "anchor-animation-iacvt.html": [
+ "7341d2fbe24b3d8e13fe58fe2de3b11c3c847052",
+ [
+ null,
+ {}
+ ]
+ ],
+ "anchor-animation.html": [
+ "f3a4eba7ba3802fe8cbbcd5bf5675906f35bed10",
+ [
+ null,
+ {}
+ ]
+ ],
"anchor-center-001.html": [
"f8583e68c00183023b88690c79cfc1d3524ab00d",
[
@@ -532018,7 +533183,7 @@
]
],
"anchor-getComputedStyle-003.html": [
- "fc384ab4cdf749e5dcbc16fbe0f3403360234ef9",
+ "d23558aef5bdc742af1b2a61f9a94dd36b86d640",
[
null,
{}
@@ -532039,7 +533204,7 @@
]
],
"anchor-invalid-fallback.html": [
- "4768beac62383771ff2e815221d48626ced70c3f",
+ "15ccada17949518aede5eef33e51cf988c643218",
[
null,
{}
@@ -532431,35 +533596,35 @@
]
],
"anchor-scroll-position-try-001.html": [
- "e314e9634d900f6605d4e3ceec31abc7ff099750",
+ "6341d34f29d531e9901f1fcade31d21ccab04e25",
[
null,
{}
]
],
"anchor-scroll-position-try-002.html": [
- "4e281177eb78246c438c860ea22056a75a7c24eb",
+ "777a6a76cd5109e8389fd2d480850b3d0df54f0f",
[
null,
{}
]
],
"anchor-scroll-position-try-003.html": [
- "d35d2ac2699bab1133e6e656259b68d14728923e",
+ "55b09e879971959e42cf6f05563041c71ff28653",
[
null,
{}
]
],
"anchor-scroll-position-try-004.html": [
- "cc61a0443c86231b209698a9df48bcb15ee71a08",
+ "9fd3803800b1613d33b34b8daa17463a9f340db4",
[
null,
{}
]
],
"anchor-scroll-position-try-005.html": [
- "995010afd4bfb34c16b32d9737090706e8e1cca7",
+ "2d37c0b622d6df4fa1fae0e253ca60a8fcf1d7a6",
[
null,
{}
@@ -532473,49 +533638,49 @@
]
],
"anchor-scroll-position-try-007.html": [
- "8ac54db0633c0cb014c511fdc18723ee92ea5889",
+ "7b3941be76a2335f2aa10a38fb73d51be1c65ed9",
[
null,
{}
]
],
"anchor-scroll-position-try-008.html": [
- "d95d531a0c3663ade0d1d7f5143b731ba5705ecc",
+ "4447714a122383a3ad1dcbbf136602f6014154b7",
[
null,
{}
]
],
"anchor-scroll-position-try-009.html": [
- "94b2c64ecc41205b7897a8f46584a5da8bc9fe3c",
+ "3da8ad9c63356139792444dd3fc6abaf8c1647dd",
[
null,
{}
]
],
"anchor-scroll-position-try-010.html": [
- "eab81f0340b10b73881747357d62a2be273d5652",
+ "3ea49d913be83d46beb1cbadced0e376857aff9e",
[
null,
{}
]
],
"anchor-scroll-position-try-011.html": [
- "d13b5485d0f299474218764a442a43da89171ed7",
+ "4cf7fcdd60b8b0ac72075e69e0a9c5a6560d5d91",
[
null,
{}
]
],
"anchor-scroll-position-try-013.html": [
- "3f1330d744b7c4e9783d95e41623b1ce2b9855bd",
+ "0d115c26fc436b73007c87cf3614131a21968441",
[
null,
{}
]
],
"anchor-scroll-position-try-014.html": [
- "f19f41c08845af0e935e918dc1bbf7aae8ec1c3a",
+ "3e964e4dbd60774ef797474db0a21599ca363a6a",
[
null,
{}
@@ -532528,6 +533693,13 @@
{}
]
],
+ "anchor-size-animation.html": [
+ "52e53021c27ffbbef52f538ac4d8915199543433",
+ [
+ null,
+ {}
+ ]
+ ],
"anchor-size-minmax-001.html": [
"364b3eb24f19dea2666d986c95fc1f4f77128d7a",
[
@@ -532634,21 +533806,21 @@
]
],
"at-position-try-cssom.html": [
- "42f82d9d4bd05aa66a9f243fd3772bc7cd9092d0",
+ "46ca8f73e92e132f47f2cdd8a0495da31fa4cd0c",
[
null,
{}
]
],
"at-position-try-invalidation-shadow-dom.html": [
- "50e67de1aef6d9a5ae647d30b36cd9fad880476e",
+ "18b6d4731ece42b6c3d942ea5366477c61d61ce1",
[
null,
{}
]
],
"at-position-try-invalidation.html": [
- "3f7c5062f21ddc67464c51c9ab8df113a882ba82",
+ "62cd7e1c6096e1bb3053abc597a1c2aed728ff09",
[
null,
{}
@@ -532662,7 +533834,7 @@
]
],
"base-style-invalidation.html": [
- "8e8e69f9b7ce6f07b9b689bd5c57fed8c5550812",
+ "e4e12785790391e595b300b670939b9f0547665b",
[
null,
{}
@@ -532724,13 +533896,6 @@
{}
]
],
- "inset-area-function.html": [
- "9d68bf9ddf4ec5adc30186fee497294e1d024054",
- [
- null,
- {}
- ]
- ],
"inset-area-in-grid.html": [
"bbf92e8d1c66a30abf6b5b645966f289cad633a6",
[
@@ -532739,7 +533904,7 @@
]
],
"inset-area-in-position-try.html": [
- "7339c4f41d21de6e8e526a2f787a57da93229eb7",
+ "3affc1b30b710ee43fec882cb61659e0f3ff9cdf",
[
null,
{}
@@ -532759,6 +533924,13 @@
{}
]
],
+ "inset-area-value.html": [
+ "27c5882fc6e1814ada86a988e1ad6f146c9ffbdb",
+ [
+ null,
+ {}
+ ]
+ ],
"inset-area-with-insets.html": [
"f6a4cd3665224e1d71d78773256f655b0e9309e8",
[
@@ -532774,28 +533946,28 @@
]
],
"last-successful-basic.html": [
- "b88b9ec77dc02fe5092fd0c4b5caac03e9fa9764",
+ "cda0eed6fbad429d43c04b61ee16f6abf25e5162",
[
null,
{}
]
],
- "last-successful-change-options.html": [
- "86df1afa67ad50573b2a4539961a4f3e6f20512a",
+ "last-successful-change-fallbacks.html": [
+ "ed4f8a43626e3d0c4ef7f27c96450be3bf1708d1",
[
null,
{}
]
],
"last-successful-change-try-rule.html": [
- "c0560ea11327d4fba1e46bf7db072d42cca8bf50",
+ "205aba014c3cd5f1cea5bed48128c29928265bcc",
[
null,
{}
]
],
"last-successful-intermediate-ignored.html": [
- "a2876191559fa454b0f271f351c9a1dfa2f7b0b6",
+ "82bf1e8aca9ae6151062fd52f2ef814b2e74b526",
[
null,
{}
@@ -532816,15 +533988,22 @@
{}
]
],
- "position-try-options-computed.html": [
- "91b27d4f3172746f5dd567e22b4b9e84d4b35f39",
+ "position-try-computed.html": [
+ "2a5cf605c0abbf341c5c411d6e9a0cea3eed3ed1",
[
null,
{}
]
],
- "position-try-options-parsing.html": [
- "375bef170c191f960bc2e0cfa0f18bca39ae9e87",
+ "position-try-fallbacks-computed.html": [
+ "ed189016c1d567e371932f3cddae43731f580593",
+ [
+ null,
+ {}
+ ]
+ ],
+ "position-try-fallbacks-parsing.html": [
+ "4c64b77ca2718a7fc3ecffdcfc8ba8e5979303ef",
[
null,
{}
@@ -532845,7 +534024,7 @@
]
],
"position-try-parsing.html": [
- "7f50459710629cefd0282a8d78a60e8d760e719f",
+ "ef0ede045a47cc6c2d6403e25dc8c28a015ba247",
[
null,
{}
@@ -532881,154 +534060,154 @@
]
],
"position-try-001.html": [
- "47fcbb8393962aff84d21c85db140ee7c7dd95cf",
+ "739e09f6a7b8b5ba5a2de8c17fc30618ba36bd13",
[
null,
{}
]
],
"position-try-002.html": [
- "c3d550adb1ee4f2e111f37baa643fbbe0724ca4a",
+ "a97f9ecbab00df8bc423271dc8f1aa6d845f3ce4",
[
null,
{}
]
],
"position-try-003.html": [
- "196b7b0304b8e8c48e54fc0180e879a5f35ed45f",
+ "a0d4c1393838985fc05b3449c8227cf5046aab72",
[
null,
{}
]
],
"position-try-004.html": [
- "b172f2e8bf392deb95c42475b11f54cfc5845760",
+ "ded0efb4e6520303b0dfbbb0eb708a8d25ec3b26",
[
null,
{}
]
],
"position-try-backdrop.html": [
- "6bf2262c69af6ec2f883435177c49db93c135b67",
+ "93b1b81ecc4bc41d921fb7927a2ec4b32a46e8f5",
[
null,
{}
]
],
"position-try-cascade-layer-reorder.html": [
- "4f38806f604f612065783c9b3253fb1f6bda0184",
+ "dc707e11ca86b4e6ddefd2ae9fc73cc07fe2ca13",
[
null,
{}
]
],
"position-try-cascade.html": [
- "d73ddd586a5fddf585878a5e983d352a1c947ae3",
+ "bec0aa1bf4102951968492d5ea34fbb34f854f48",
[
null,
{}
]
],
"position-try-container-query.html": [
- "528217c917c5f1e2b948a54bf114addf45d2e795",
+ "e5acc8b98543c320c47f7a3987b9838520c7fd2f",
[
null,
{}
]
],
"position-try-custom-property.html": [
- "69ca0d12f430f77dce96fbe0ceb3f713013448f0",
+ "aee288bce41d793477e9e3cf1c157c72869fda3f",
[
null,
{}
]
],
"position-try-dynamic.html": [
- "fad3db62a31e535aa943b9709ebc4bb4f02f6e4d",
+ "016b8023e6fba8d52fa0112ddf8f19f18b570cd2",
[
null,
{}
]
],
- "position-try-grid-001.html": [
- "74888f25486879e2034f931b724bb2880a51aade",
+ "position-try-fallbacks-limit.html": [
+ "1b1e76e12c8621e30bedb7737f6104c8316864fe",
[
null,
{}
]
],
- "position-try-initial-transition.html": [
- "0e81607ae65bdf1a2848e3de3f1cf5d746c30ee9",
+ "position-try-grid-001.html": [
+ "08b88fd59f2b5bbf61106b4b5c88e285c691e0c6",
[
null,
{}
]
],
- "position-try-options-limit.html": [
- "32a4f592fa05fcc4b4f058a60c92d2b37d0afb75",
+ "position-try-initial-transition.html": [
+ "163e2dc3b6d509ed757da87bb4728be7e7f645e0",
[
null,
{}
]
],
"position-try-order-basic.html": [
- "d1c74e7b9fd76d0180379ac751a23f7405b885be",
+ "c7705a71bbb5fe0a8833604a2edc8bcf43639636",
[
null,
{}
]
],
"position-try-order-inset-area.html": [
- "98e606a7d8fd8169efdba772883ea65d1ad22ecf",
+ "71ae5d78debe9ecc9059906ec125931ff09769df",
[
null,
{}
]
],
"position-try-position-anchor.html": [
- "7355c23f53b6373d3ab1f0f4bee4821eca5d91f7",
+ "d26dfd9f2b57e144d0e0bc9e0d903b1e12a15e8e",
[
null,
{}
]
],
"position-try-pseudo-element.html": [
- "5895f2a4077b697b4d59dec4e0cb2dbace4aefd6",
+ "23c572a4104169daa4574835ec76cf284a3e8c55",
[
null,
{}
]
],
"position-try-transition-basic.html": [
- "3bb982f073a6c4559f5778207b96ae4fd5a095d0",
+ "eb4222090bd1584d31cc15f59f4a6bff9808c0e7",
[
null,
{}
]
],
"position-try-transition-flip.html": [
- "6adacadfd42e4405297e76d7819201c58dd36184",
+ "e8e692a7295b9c9c3900764952058c8745da673e",
[
null,
{}
]
],
"position-try-tree-scoped.html": [
- "d0c94fd6797dc7a87d129769f06a55cfca3d88a5",
+ "b1cec4e4ef2d7b19b5696b315d7da753b099a90c",
[
null,
{}
]
],
"position-try-typed-om.html": [
- "76ec9411b8d2ec34660132ab4d40f90a87cc6c25",
+ "56e0aaf4e7765fa0404d4074d6f864f320b785fd",
[
null,
{}
]
],
"property-interpolations.html": [
- "ddfad852f8917a662ed1b3936f577f4f3e91acf2",
+ "5687e34cfd6dbbaf4b46bb21d612c7c5aa072edd",
[
null,
{}
@@ -533049,70 +534228,70 @@
]
],
"try-tactic-alignment.html": [
- "39595276d5ca34b1db597bec33765c718ff8ccd0",
+ "b39a92983717e40a37d6092583cbc95ce7b967f5",
[
null,
{}
]
],
"try-tactic-anchor.html": [
- "8dc45dc6e8a81fe899442c514afff49d646a5afb",
+ "a40ed9fc36dc8b8bece51d8395c2cc41f54c3226",
[
null,
{}
]
],
"try-tactic-back-to-base.html": [
- "9a11fc7fffc90c1852846dc2cf8352599d1d4c38",
+ "96c2ee86950326a4ac250f680fae670dab2a2832",
[
null,
{}
]
],
"try-tactic-base.html": [
- "b52c3d15e0f231dc384f538e785d24935544a082",
+ "c0a7ed739c87be9fb33c24e81d31b5f37647f38e",
[
null,
{}
]
],
"try-tactic-basic.html": [
- "472e204096ddfec2e0ecc54eda86b3d248623001",
+ "36077b33f493807cfc2470795ac4f9c8e376e182",
[
null,
{}
]
],
"try-tactic-inset-area.html": [
- "32af18a1494e10de65231e28eac5d8efa694fbe1",
+ "9e53fab91fc9f0c33c7ee9da5342d69ca0831183",
[
null,
{}
]
],
"try-tactic-margin.html": [
- "ab627315b8bed968a74fb637e2d99352a9c9ebb5",
+ "7e0b25652c743fe2f6607202a7cab985ecf8d681",
[
null,
{}
]
],
"try-tactic-percentage.html": [
- "20cf0f87e059312c8c6fcb765f7597c132fbce86",
+ "41b5926e2cdb3c0014bd3dfa11e2fdcc1c121c08",
[
null,
{}
]
],
"try-tactic-sizing.html": [
- "432992491dd8828f08f2db2d6b4a1df6abcc96f3",
+ "1a55ccf8011fffbfa0a83922c651313e6c3261fa",
[
null,
{}
]
],
"try-tactic-wm.html": [
- "bc1c82c35d1932769aba16cb86bfacebde097481",
+ "8dcf98f893979c0511d3bbf6675df16b331a62c9",
[
null,
{}
@@ -536276,7 +537455,7 @@
]
],
"scope-container.html": [
- "3e976088e2c3b38d17ad57f33e9f219719144839",
+ "ce7207b42eb076e592c61f046332a6dfdfecfe7c",
[
null,
{}
@@ -536838,805 +538017,805 @@
],
"container-queries": {
"animation-container-size.html": [
- "fefb721cbc9a49296e76fb6194a6702b5211816d",
+ "e620335c358544c57ba58fd87e8cdd5d242c616e",
[
null,
{}
]
],
"animation-container-type-dynamic.html": [
- "835e8e1be1db29cf31895f0eac2ac3ba0a500026",
+ "473c914d8a534ae3ddd76d956075bc5bdf0ef5f8",
[
null,
{}
]
],
"animation-nested-animation.html": [
- "7f1ae854ae8e0ccaf68efb4a87397b0fe05af7ce",
+ "b956fed2b4c2895a74f8d68de99632a7edecbd81",
[
null,
{}
]
],
"animation-nested-transition.html": [
- "934f995a9791366e59bbd1e1a510e7058d84d1a5",
+ "ca8808664efcf8d00ac0d9af3a2ec90cf0f7a779",
[
null,
{}
]
],
"aspect-ratio-feature-evaluation.html": [
- "843f34732b6c81696487c33ff497d8d48066ef13",
+ "9b68e8679d08eb440b3c1adc1fa11cf1cf8db6c4",
[
null,
{}
]
],
"at-container-parsing.html": [
- "b0196b5e5a124cbc41f13e754f0963108b407d4a",
+ "b8872e89a45d28ce5313fea06b594ca9ac4df4c0",
[
null,
{}
]
],
"at-container-serialization.html": [
- "141062a8d4711c69e49b368a9ba88ecee2edaf4b",
+ "7e6e3e9945245013c2a7d795b3ead5d2ab13e4fc",
[
null,
{}
]
],
"at-container-style-parsing.html": [
- "36fda2e36630d2330e84da0edc571983f9d07790",
+ "3ee22be9f5bca2acce53a68a217c7a958c3a48d8",
[
null,
{}
]
],
"at-container-style-serialization.html": [
- "a4fb25378cbe36812dbb744b0d7c6aaf9c1a33c2",
+ "a30acef9ac21acadf3bddd7099709ffa032a43dc",
[
null,
{}
]
],
"auto-scrollbars.html": [
- "44074ed2133eda9e5296b375ef5f688cb4d9122f",
+ "96f082f38aa5595d63e72f4d1954c4e9140156bf",
[
null,
{}
]
],
"backdrop-invalidation.html": [
- "6a59a2f8941e15980df8f2fa5b5f9d7bb32bd2fb",
+ "6f7d52cc386f0a0b963f2b92b4fdc182433d9909",
[
null,
{}
]
],
"calc-evaluation.html": [
- "71a5e23764ed33acbdb3ab4dd21c575b9c39c694",
+ "60fd59e9cd436000d83127efa1469d60dcd0a6a5",
[
null,
{}
]
],
"canvas-as-container-005.html": [
- "9132592434c53ae28894cbd00dd02c7e5d402d39",
+ "3068ce708e68e8392cd2f2a7d9e35eaf7f5242db",
[
null,
{}
]
],
"canvas-as-container-006.html": [
- "02dbce62753961e6bb3d9a1472c2cb80626c548c",
+ "0fbb6f6d8332bfde3a0aec8f12198c9c650c4179",
[
null,
{}
]
],
"column-spanner-in-container.html": [
- "d494e28504fb6be56fb79b53f68507071f39ce72",
+ "0f0b5f7850fd0664441e4a75e6e5d75a91514e0f",
[
null,
{}
]
],
"conditional-container-status.html": [
- "e9762f93239ac674897827aff1bd6eb5727abdab",
+ "d0dfb97e9cb0bd32324c9ea180afa7938124de0c",
[
null,
{}
]
],
"container-computed.html": [
- "2be304481bac32928a602fadb083222d993a02fe",
+ "fa56ab77402869eb44c8bb393ba2f11310498861",
[
null,
{}
]
],
"container-for-shadow-dom.html": [
- "63d58f76982e872896c1819f9c9f090918705664",
+ "d79b3a9d554426754ceb6af98f6ca9e774b2e92d",
[
null,
{}
]
],
"container-inheritance.html": [
- "b333b691fd78789af20d15b235cf1a88c0e91f5c",
+ "9fc8cadc3e4a06ce1cc7360ad7bac5fbcce5c01a",
[
null,
{}
]
],
"container-inner-at-rules.html": [
- "ac1800292984023262d5af86d96993139f671736",
+ "4f0d6e02589bf1a31fd4f1b5c0a7ba9c2ae373c7",
[
null,
{}
]
],
"container-inside-multicol-with-table.html": [
- "8688159da3c3c332167c5fb1578ee12dc8dee0c3",
+ "1046d57ef250fe74166c1ca6a7c4d56bcb07975c",
[
null,
{}
]
],
"container-longhand-animation-type.html": [
- "aded2a3ec8bae1203e458667bf6ff1f616aca91a",
+ "efc9a817d94756242486a974afc50c8e4c75538b",
[
null,
{}
]
],
"container-name-computed.html": [
- "f58d54744e46d329b308c50b8232ef09bdc7ba80",
+ "abd2ebe086067772ab861eab37795a10bfbdce6a",
[
null,
{}
]
],
"container-name-invalidation.html": [
- "aad225def9d0436de8be61e7c0dcbcfc681c0973",
+ "e918f182e2cfcea9792bded8fe5b5e6bb9b0f2fa",
[
null,
{}
]
],
"container-name-parsing.html": [
- "4f385cca5245cd63e531d1ddf26c84cf31b7b2a6",
+ "895b73ee66e598ed3e226890d7fd64ca5c67a86e",
[
null,
{}
]
],
"container-name-tree-scoped.html": [
- "e0890aab32d8d6149d712ae4f794532c58c14c65",
+ "de633282e88b627b42f93f3fa90c020cf83f0bea",
[
null,
{}
]
],
"container-nested.html": [
- "3ad35bd2be802f10417bfd4fbcb5ab7a983d20bf",
+ "dfe30ac0ae17d91f3a5e71f168acb19404918090",
[
null,
{}
]
],
"container-parsing.html": [
- "87b3bdd48cd30cd591cfaccc5cfda34302a05145",
+ "ab04102b569cf44fb307f68fb12d2ee61b2c7e9c",
[
null,
{}
]
],
"container-selection-unknown-features.html": [
- "8e0e34db9a52c5d5c7901e2f22b8fbd2a3aa6c6c",
+ "5c2c67caaf1569fd4d9e739ff3a25cfc2bb9e65a",
[
null,
{}
]
],
"container-selection.html": [
- "cef20f85a2fdf60a08b2ad9ff4cc8e3ea30be6aa",
+ "d262da9ddfd7d9cc10e2378527c9f44f9a33169e",
[
null,
{}
]
],
"container-size-invalidation-after-load.html": [
- "cf5687aa39dfa7794422059ae72d5cf9e61d2cad",
+ "2d66b0990fd48a7ad95755307a061a798627bb60",
[
null,
{}
]
],
"container-size-invalidation.html": [
- "ab26971749877a46ede83ca9411eadc2b35edcfa",
+ "14433c9c3cf012474551ff53f6fcabe2a14ec4a0",
[
null,
{}
]
],
"container-size-nested-invalidation.html": [
- "a549f6d84820f89c0df151d20dde385d41bf1ce6",
+ "c13c80ed3852e478a0d9db66d1f9892a45cbacb5",
[
null,
{}
]
],
"container-size-shadow-invalidation.html": [
- "b2e02a10916e7edbfa2af9f5e818506a0b24ead2",
+ "4d2300701ae01fb857fead2e083478bbc29bee78",
[
null,
{}
]
],
"container-type-computed.html": [
- "0b5e033a0f302e904414447e2a7eb9be8eadfb39",
+ "60d5ab5a05a468c1c72eee3139681cd9de923fe2",
[
null,
{}
]
],
"container-type-containment.html": [
- "66500a6a71c12087fc02cc292cabdf50314962a7",
+ "ba97b385d6c5672fb6193d49438acb77065d6d9c",
[
null,
{}
]
],
"container-type-invalidation.html": [
- "90e0b4acd1d38ed9cd01d4dcd024eba77fc5e482",
+ "e4f02028a74c8d71ab36d4b78cf0cf8a0ad843fd",
[
null,
{}
]
],
"container-type-layout-invalidation.html": [
- "3103de81f7989de283be355b47b3a137c12dd3b4",
+ "27c7b8a012debb1969d47e0d0c2c253b00298684",
[
null,
{}
]
],
"container-type-parsing.html": [
- "5805a927b327eefc1a687db3cdbb8c27c306fb04",
+ "1e106852c5bd85e4f5887cef42befcb1925700c9",
[
null,
{}
]
],
"container-units-animation.html": [
- "cf1b9a8f345ebfeb1217237f078e5e4e55f96250",
+ "79e59dc2a186fb3dc207547df9add7d327a357d5",
[
null,
{}
]
],
"container-units-basic.html": [
- "166a003a29b2eb1bc0c017815a36cdcb1361c2aa",
+ "84f55d550eac0b5810d103d4b59c37a9080c0fb3",
[
null,
{}
]
],
"container-units-computational-independence.html": [
- "694b665c793c820f5f80aa2c19ff4be146f72a08",
+ "94d786dfe51b18f5405a821f3dcb4378010b61ed",
[
null,
{}
]
],
"container-units-content-box.html": [
- "89a76e868ce5750f9739c4713da65701c9498277",
+ "0fc18b3175f9c2a83900df80c16b821843919599",
[
null,
{}
]
],
"container-units-in-at-container-dynamic.html": [
- "c1f929241ca7018f636bfabf7072c1bfa549db6a",
+ "978d5a60051fdb8fd5c749fb25b8a212c648c6f0",
[
null,
{}
]
],
"container-units-in-at-container-fallback.html": [
- "3784499c387cc3f56356918064470461f039eada",
+ "fe7af8e38ea2366f31bbf044e2f73912b030cf65",
[
null,
{}
]
],
"container-units-in-at-container.html": [
- "9ddca55ec15226dadba851a1b780cc258be7806d",
+ "9faf62ffc0c2efa07f26b2617e8d18514e7504b0",
[
null,
{}
]
],
"container-units-ineligible-container.html": [
- "8882d4a38ba030e694e22d96d32ce2ecb2301b40",
+ "61565de6e2899940017797db87df3118c806e15e",
[
null,
{}
]
],
"container-units-invalidation.html": [
- "abb766cd0c77b033e4aace48cf499897c3fd2347",
+ "602f6b69dc20401e831998a8a08c831658d0a24b",
[
null,
{}
]
],
"container-units-media-queries.html": [
- "7b76f654e5cec341d9ee364878d9692b8a04e34d",
+ "b46e0cb715a9c269fd69b1668e26afd7296b3447",
[
null,
{}
]
],
"container-units-selection.html": [
- "16a44cd176618d0ed21e6cb8921fd286234441fb",
+ "66ab3e245803db542ae51cd1ba968b8b51f83605",
[
null,
{}
]
],
"container-units-shadow.html": [
- "66ae1c976ccd318664a24b7c8981d7d699bdff76",
+ "3c672ad54265c0ddfe01e55b4af6062e7a761f86",
[
null,
{}
]
],
"container-units-small-viewport-fallback.html": [
- "6c8851681fb62fc133a2635796e38c367e866dcb",
+ "d1c95d33b8f124739f5da29e8c51ff305690a0d8",
[
null,
{}
]
],
"container-units-svglength.html": [
- "8bb227c0498941222275c024b2707fd089639624",
+ "e39c21e34616fd2abcdf903f3c9aa6465a5dac43",
[
null,
{}
]
],
"container-units-typed-om.html": [
- "6da3306fdfa3e88dde176d43c81813c3959a0306",
+ "4ebb3518ac21373f28c1d1fc9a66644fec2ac565",
[
null,
{}
]
],
"counters-flex-circular.html": [
- "d60049e26c7b9d5dd45748a79a2e1c90afc8ed72",
+ "04af2e2dc06ce2dd44f1fa78204ef7f5f66a5bb8",
[
null,
{}
]
],
"custom-property-style-queries.html": [
- "d9152432ed1162c2f015148bd197663740fc1f83",
+ "96a80904521ae3e92c43c87c4f05098d7e2376fd",
[
null,
{}
]
],
"custom-property-style-query-change.html": [
- "6669ede31dae0f95f2f03a29023516e7aaee303a",
+ "ac15092b4cd11443b521e9857eaff01235a7dab3",
[
null,
{}
]
],
"deep-nested-inline-size-containers.html": [
- "00bc8b0a6b2deae05e980a6c8cd7ddbab286906f",
+ "40012b41f2188cd18ffeb9fe8b09cbbe5a87d0dc",
[
null,
{}
]
],
"display-contents-dynamic-style-queries.html": [
- "782cf566552423193669f9f0da034f802d265067",
+ "466992f628fd29a98a6cf65a04872bb9408d9b13",
[
null,
{}
]
],
"display-contents.html": [
- "d96a46d06a85f024f0fce9d43e34dec6e271ea76",
+ "3dd50caff3899c1c6f92b3a05eba6669db7adcef",
[
null,
{}
]
],
"display-none.html": [
- "8d07ec09ddea2387d2350c6908780cd1c51696a4",
+ "4949cbbb7152cda5e278924ebe86ff73a52a3439",
[
null,
{}
]
],
"font-relative-calc-dynamic.html": [
- "54f01d45a396ca1320905e84abf70fac238b03ea",
+ "927dda9ffa111156ba7de53a1ea27c7ca2210c3d",
[
null,
{}
]
],
"font-relative-units-dynamic.html": [
- "9dfaceeed6b41c7f0366ac6288809efb9a3e1e52",
+ "60c668a71c7d8768a8bf0baa1b0694d46a247d4f",
[
null,
{}
]
],
"font-relative-units.html": [
- "ba4a60dda21962a8956180b601984942c3dc94ff",
+ "38d1902825506e32d11ad16e805ce6304005336a",
[
null,
{}
]
],
"fragmented-container-001.html": [
- "886f179054cd0511d261da1d03cf59b704110e50",
+ "f5f4d7de7bdb922cca0c48a30334859caa23bdf0",
[
null,
{}
]
],
"get-animations.html": [
- "dca41c6adad8355411999e56982806168d671ad0",
+ "228f52ecf58361e93b486fb1295cfaffc00fe127",
[
null,
{}
]
],
"grid-container.html": [
- "60278e09c69f3fb5718e75ebaebcf04da1e146de",
+ "c7002f696f6e630c81271c6b4bf04f4dc33580ec",
[
null,
{}
]
],
"grid-item-container.html": [
- "f1c66efc26d9f96db833c17900852b1ffeb69991",
+ "f097c18b2ae6d2be3cee9b76b04b74eb4a6fae38",
[
null,
{}
]
],
"idlharness.html": [
- "ac1a677bb94d045d9aa6ce8b49bb85cbff51cc92",
+ "177531d0d06600b6afd1bc1e38743c1d4737fb83",
[
null,
{}
]
],
"iframe-in-container-invalidation.html": [
- "f43d1ce7899cd78362b73bd048373b18e3f7229c",
+ "4c904d2d4b40d6bef3640e034cef4d1cf985376a",
[
null,
{}
]
],
"iframe-invalidation.html": [
- "51f2be9cfa3375af7ace46c9490612bf9daa5382",
+ "c68fd4b16a9ffe95831524842f6f0005f75f4af9",
[
null,
{}
]
],
"ineligible-containment.html": [
- "36ce68d864336337771a926c2a9eaebed5399eb9",
+ "1e1cace51e7b80ccc2511ff92243ccc0fefa51dc",
[
null,
{}
]
],
"inheritance-from-container.html": [
- "97dfff2fd02fe6e825f3d547caeb88fefef2d0ca",
+ "4b815d68aa39c15b9eeb0bc50131701153caac8e",
[
null,
{}
]
],
"inline-size-and-min-width.html": [
- "8ddcbc614cae184b65295ab722ce392df4491f5d",
+ "91e8c48a93aae0066878be545696cfc4ae0e924e",
[
null,
{}
]
],
"inline-size-containment-vertical-rl.html": [
- "38c88f2df79748747e11a41f35808bae3d55e82e",
+ "44fa62c79352c9afe756e2686580fe73bcc9379e",
[
null,
{}
]
],
"inline-size-containment.html": [
- "d519322bd2719c72b17a1b81e0649103b2b60078",
+ "154a0a47ce13287298f8e784818a79f450a8a132",
[
null,
{}
]
],
"layout-dependent-focus.html": [
- "a16370ac566d7044efb03f0466889a89dda49c4c",
+ "3e28f4a1da16299a8e05cbc3700b3041d925a9e1",
[
null,
{}
]
],
"multicol-container-001.html": [
- "3032170ac61bee9d4322d1992ab8a27af668c48e",
+ "9785b6b0c624d6c94a9fe557e6395a1610c75f99",
[
null,
{}
]
],
"nested-query-containers.html": [
- "83cc3c2fecdae002a54988a31f098b592928e4ab",
+ "348e3d1529e294c06ad91126af628711ff2edbb7",
[
null,
{}
]
],
"nested-size-style-container-invalidation.html": [
- "8d04bf589a2e03e2f89b69c69f0d5d3a38a2872f",
+ "87256703884c388f882a6c5a0098339af525c5c5",
[
null,
{}
]
],
"never-match-container.html": [
- "9d5ff6d2272c809cd2b95aeedb3b86896c469e37",
+ "5acded7cc5a085f4aa822e64109872dc91711afa",
[
null,
{}
]
],
"orthogonal-wm-container-query.html": [
- "1ad52bf499c46f1826614a93038f96920b345bd8",
+ "630226500effd84819a696939c2133ccbbea763b",
[
null,
{}
]
],
"percentage-padding-orthogonal.html": [
- "0c419d18a9da2c2765667c1d2b81d7f4dc514112",
+ "dac71be0bca6e2e86be48a28b1c8863763e57a23",
[
null,
{}
]
],
"pseudo-elements-001.html": [
- "0baef0bfc2b55a3e8fda67084796355d41712929",
+ "e147da5d9e85858a9b4ecc69f65a028d8e0b042b",
[
null,
{}
]
],
"pseudo-elements-003.html": [
- "2d7647f7104f4f6d5317342d3d5c6f453ff89462",
+ "d7bec8a6e185b1f602600bbf10c4a1c20cf271a7",
[
null,
{}
]
],
"pseudo-elements-004.html": [
- "db199f220505dc4e55c5a3bbcce1903e4d22ece9",
+ "6c0babfae23160f3901c51e4a1b4b4e6a41583df",
[
null,
{}
]
],
"pseudo-elements-005.html": [
- "575b66d6f838dd45733de842e3828eb1773f6c86",
+ "163349adc862bd7bf2c6a5064541eb7e19c66e4c",
[
null,
{}
]
],
"pseudo-elements-006.html": [
- "65aee97f75893635b64ee33c4b78c5e31cfb3027",
+ "39c00d70dc235b7baddd25e5587e844400cc231a",
[
null,
{}
]
],
"pseudo-elements-007.html": [
- "951f4226f4968b93cb498160a11e984819e4d7bb",
+ "575cb73af6515b01c39498e91a5db10a6f802551",
[
null,
{}
]
],
"pseudo-elements-008.html": [
- "859deb2206e02d835e90c5e93e3a4c16fa5877bd",
+ "dfa07922368d5caa89b7b2568c5bc26e0147b508",
[
null,
{}
]
],
"pseudo-elements-013.html": [
- "870b589115324769d6e3bcc2988f507c8ff28c88",
+ "e41fc7611a4e30351910ebfd7908c0b9e0648552",
[
null,
{}
]
],
"query-content-box.html": [
- "5f6cc9fdbe0719fe673d6d24cf6601823e63883d",
+ "b689acdb095ca307344329c9fb6ca63e4c817e6a",
[
null,
{}
]
],
"query-evaluation-style.html": [
- "bf059f795a3536802e6f8f84a27a06773ca8bfdf",
+ "75876dd1ac354986fe7cba18ceebb99f510cafd5",
[
null,
{}
]
],
"query-evaluation.html": [
- "469b7b0d7a25cbf8d3fb9b8eb48f17c9209440a9",
+ "d5c77c3a7e4a7c403dc058c36763d941069ef049",
[
null,
{}
]
],
"reattach-container-with-dirty-child.html": [
- "680d9caa84aed511f2e3a961e687a8b28a7c9e92",
+ "914155a660239a10f47fc6f11011c559903f2725",
[
null,
{}
]
],
"registered-color-style-queries.html": [
- "6e2bfb896bbaa67bcb6933bebf13829c0f0a74e8",
+ "fd663d2c2d839aa84a175c0c077aa20f85a00766",
[
null,
{}
]
],
"sibling-layout-dependency.html": [
- "5e30a998d23b03dd73f1ff290876243bd2eb9417",
+ "eb3df2ba410d34b62686351fc6834287fbd73baa",
[
null,
{}
]
],
"size-container-no-principal-box.html": [
- "4bff0681ab603e07f8bf1f2cad10a51c2bcb2832",
+ "730bb1d7361ae449d7c129a318d89cd6f9c6adb4",
[
null,
{}
]
],
"size-feature-evaluation.html": [
- "600a266fce25efe508c8902847bdad6fe7c69ce1",
+ "282233dec9d00786295324bbea99e33db8c77eb8",
[
null,
{}
]
],
"style-change-in-container.html": [
- "ed4baa7e8b619f77782466e3c0db1fbe4274091c",
+ "abbb1266e6994fafe20cb8183e2cddbeefa82b84",
[
null,
{}
]
],
"style-container-for-shadow-dom.html": [
- "e8297be941f2be6ab488f20ad4dad62772a492c4",
+ "22ab9b9c3e802c346eebb92b65b76dcce307d064",
[
null,
{}
]
],
"style-container-invalidation-inheritance.html": [
- "b7aef69d3e1b2a32cc64bf754a0c3fb8fe2cd08a",
+ "9d2ab5611017f8519327d244d8287a3a61b8206b",
[
null,
{}
]
],
"style-not-sharing-float.html": [
- "7c76bb32bf2a5db0352ea6fcdaaae4c6247a06db",
+ "c36339491134b487d30dca332fe3aba1e794e3db",
[
null,
{}
]
],
"style-query-with-unknown-width.html": [
- "8b05d6c11200c94670a304cf4b490e6f590f6244",
+ "52f250c2d0d942db2d1e2e7eeae0b89f593cc744",
[
null,
{}
]
],
"svg-foreignobject-child-container.html": [
- "898fc22c2ba038a07b0907517d3e5e1cb421500a",
+ "8dc98a6321c1a3a8fe71936a09d092acc2666f52",
[
null,
{}
]
],
"svg-root-size-container.html": [
- "70ce40c0bcefc595a7afedadf945ac6c8b19b2fc",
+ "ccdcf557d513e7c3f7ebc4b4200fc03626c0c755",
[
null,
{}
]
],
"top-layer-dialog-container.html": [
- "5627a6cea0d3c57bfa31ccd778147c5738a88b21",
+ "40a611bc918f687d3cb45947fec6491393664e35",
[
null,
{}
]
],
"top-layer-dialog.html": [
- "9d18b1862d1256af52b4f354a4750f8c92ede42b",
+ "255b42acff67bf1459c874718a886cef761d76b1",
[
null,
{}
]
],
"top-layer-nested-dialog.html": [
- "1a6d573f24fff779b63d4eff4781141b57f6f52b",
+ "a988efe02f68f624918f138fe264b7b83cd321c1",
[
null,
{}
]
],
"transition-scrollbars.html": [
- "60d82d26b4a850a41fc5c8eee39dfad60bbbe1a4",
+ "9d3f3a1c6c69ccab09c33492af49eb68fc7d2304",
[
null,
{}
]
],
"transition-style-change-event-002.html": [
- "dc9297004d7c04ee86d2013272dc5c53b09c4b43",
+ "f5b32c6fa0e282c4de823f1173d49779ca8d2744",
[
null,
{}
]
],
"transition-style-change-event.html": [
- "4cc1772979d2ff3c0a0628426ac7a109a5306497",
+ "8940284f99091612c50ecf20cac6324f0faaac85",
[
null,
{}
]
],
"unsupported-axis.html": [
- "308de2f4245937e8bc014e703395e08f37abd64b",
+ "80bbf9776dfe486045275de068b0a4281ea5ffeb",
[
null,
{}
]
],
"viewport-units-dynamic.html": [
- "2339533deeeb76f81d444e3ef178e4cd0c3a47c4",
+ "10f65efc0aeefa9a56c88b6820c85142987a70e2",
[
null,
{}
]
],
"viewport-units.html": [
- "9b8bb42c434a5752485a267c8ae2136efc9367cd",
+ "498a9c7eb2d31e3f15a49b3c16b0decdd246f144",
[
null,
{}
@@ -552517,6 +553696,20 @@
null,
{}
]
+ ],
+ "unreachable-snap-positions-003.html": [
+ "d23b45c3bce482e2bd78b21b0b6d5278aa79c493",
+ [
+ null,
+ {}
+ ]
+ ],
+ "unreachable-snap-positions-004.html": [
+ "408f09777f4dfdf342db453af56c2a8668cf2996",
+ [
+ null,
+ {}
+ ]
]
},
"css-scroll-snap-2": {
@@ -558979,6 +560172,13 @@
{}
]
],
+ "transform-interpolation-007.html": [
+ "61ee76185706f0360e66f310c5f052bf47e1166c",
+ [
+ null,
+ {}
+ ]
+ ],
"transform-interpolation-computed-value.html": [
"4a836f3ca1cf4ba584c3e583dea962691f0c3a5b",
[
@@ -559007,6 +560207,13 @@
{}
]
],
+ "transform-non-invertible-no-transition.html": [
+ "bbb5181a1bd45034a7ab6a9531bc0e21d3a6a604",
+ [
+ null,
+ {}
+ ]
+ ],
"transform-origin-interpolation.html": [
"02b8b59b0b92cb37c4cce43a06ff1e9eff2b41e4",
[
@@ -559457,6 +560664,13 @@
{}
]
],
+ "CSSTransition-not-canceling.tentative.html": [
+ "4198e665a30df5281b96e8314d988d7df27dcdba",
+ [
+ null,
+ {}
+ ]
+ ],
"CSSTransition-ready.tentative.html": [
"92aaa490591b9eb3e2db55438d955a9811cd7904",
[
@@ -560046,7 +561260,7 @@
]
],
"starting-style-size-container.html": [
- "1ad609dd909306ff8a892dffb48c48ba1e56b1a3",
+ "946ab92e1477c98d57848a7f7e69f53add8f2285",
[
null,
{}
@@ -563350,6 +564564,20 @@
]
]
},
+ "attr-all-types.html": [
+ "129e1fd6c73b253750f643fe5c40e87254351913",
+ [
+ null,
+ {}
+ ]
+ ],
+ "attr-invalidation.html": [
+ "a48556e5ff7273772e1b037114f0112a8773b6a0",
+ [
+ null,
+ {}
+ ]
+ ],
"calc-angle-values.html": [
"699af7a5cdcb3b4cfa106f53eb416a15427f0a91",
[
@@ -565794,7 +567022,7 @@
]
],
"CSSContainerRule.tentative.html": [
- "4e01c0b47003a413c0853ba96011d10962ad00a5",
+ "4258aeb8ff81d326c403d600c2d99c5a9236be74",
[
null,
{}
@@ -566748,7 +567976,7 @@
]
],
"page-descriptors.html": [
- "5cf0a6a703d7e63af280d45f2847e2d6042264bb",
+ "e77b0df8de7ede435c82febad108407fb52b2540",
[
null,
{}
@@ -572135,7 +573363,7 @@
},
"digital-credentials": {
"identity-get.tentative.https.html": [
- "850533cd262fe9eb9ffa4a129f60a9986662cec1",
+ "15597ed594a2409dbdcf6a10fee21d145833fa76",
[
null,
{
@@ -637976,14 +639204,14 @@
]
],
"2d.layer.malformed-operations-with-promises.html": [
- "8e81bffdfb6c19b87d85d387806788c512fffe8c",
+ "e3af9a32a364146267c73114ab3b7c5c260fabe4",
[
null,
{}
]
],
"2d.layer.malformed-operations.html": [
- "cf6e7a80db0a68f1ce8d6f7599fd47bd18977a29",
+ "d27e1bf6ebaf02dc596786bdd05bbe7dff0d23c6",
[
null,
{}
@@ -648685,7 +649913,7 @@
]
],
"2d.layer.malformed-operations-with-promises.html": [
- "7b8f9b094347ffc33b4fa61137807c2a2dadacea",
+ "6641d9d4170c2d0bbfa7a8956b9103b329f3a692",
[
null,
{}
@@ -648699,7 +649927,7 @@
]
],
"2d.layer.malformed-operations.html": [
- "a810665faf5809e63a3766330a0bd4be0bdcf9a1",
+ "c3a92553646b77ad81e5bc20edb13a023b7e4c2b",
[
null,
{}
@@ -687975,7 +689203,7 @@
]
],
"input-events-typing.html": [
- "cff32a44d153145a02c0914ef22d2fefea0edd97",
+ "8a083dc9669dfc30fd7caa300515b5a04bc42073",
[
null,
{
@@ -704788,7 +706016,7 @@
]
],
"payment-allowed-by-permissions-policy.https.sub.html": [
- "27583d3c9c5ab1860afca771d40d9cdef4607d4b",
+ "38f681593d1ef6062dbca403dbcedc08b5522db6",
[
null,
{}
@@ -704802,7 +706030,7 @@
]
],
"payment-disabled-by-permissions-policy.https.sub.html": [
- "b53eff996a4e386b97fdbb85609c4abf4e3eb6ee",
+ "ca86e4450ec91fe9ee2641f3e2c1ca97a3301710",
[
null,
{}
@@ -706628,7 +707856,7 @@
]
],
"pointerevent_pointerrawupdate.html": [
- "bd24daf6171ad765a37a92ffcb3acce0ded25e0f",
+ "eb405d26c330cd150dce3100f7a38af43c80b44d",
[
null,
{
@@ -724399,7 +725627,7 @@
]
],
"scroll-timeline-in-container-query.html": [
- "742c35b258004930833ae6ea504082e7c615d6b1",
+ "b22e8c906798df7213443e52f1d6d4fd146c3545",
[
null,
{}
@@ -725236,8 +726464,22 @@
{}
]
],
+ "same-document-tests-force-load-at-top.html": [
+ "fac5882b05683bf0823a555d3af15f51310e1249",
+ [
+ null,
+ {}
+ ]
+ ],
+ "same-document-tests-no-force-load-at-top.html": [
+ "85b9237755cf476452847b4c7b2e3c515a8d7435",
+ [
+ null,
+ {}
+ ]
+ ],
"same-document-tests.html": [
- "85db2de0a227c694d2168e49dfb7f9cffb5d9eff",
+ "ab96fb56e04f6673235d15bb906b16d4d78b6afa",
[
null,
{}
@@ -730496,7 +731738,7 @@
]
],
"grid-order-across-scopes.html": [
- "9f7772b91185351da72f56ad300fd6c4e3d5d7ff",
+ "76e5af8c74b24201bd73911c3f3720d6f5861292",
[
null,
{
@@ -730505,7 +731747,7 @@
]
],
"grid-order-on-shadow-host.html": [
- "f5a8b3c313e5d20963233cc868b4a8ce27eaab07",
+ "c83e2283f50ea282128de717f80e7a185ecebc17",
[
null,
{
@@ -730543,7 +731785,7 @@
]
],
"grid-order-with-slots.html": [
- "4cfdc79fa4057eee49498bf6d57b912c4e714355",
+ "f52c9ebdc817a4813d3f521c63caa447ddc87db6",
[
null,
{
@@ -730553,7 +731795,7 @@
]
],
"grid-order.html": [
- "358f5c2988c2a5fce8f3702eeb6e1de57a20753f",
+ "b2dd197413ebd2769b39fde4506da295727d843d",
[
null,
{
@@ -736925,6 +738167,24 @@
}
]
],
+ "storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.js": [
+ "ddc5b49f4819fc127a99d30ebc2792244cae3570",
+ [
+ "storage-access-api/storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.html",
+ {
+ "script_metadata": [
+ [
+ "script",
+ "/resources/testdriver.js"
+ ],
+ [
+ "script",
+ "/resources/testdriver-vendor.js"
+ ]
+ ]
+ }
+ ]
+ ],
"storage-access-permission.sub.https.window.js": [
"f0aadf4828dcb549c0d66ef4745b1e190d56f8d6",
[
@@ -745587,6 +746847,20 @@
null,
{}
]
+ ],
+ "vector-effect-invalid.html": [
+ "ec49b88c59959ce33b6b3914026b25003cf74ee8",
+ [
+ null,
+ {}
+ ]
+ ],
+ "vector-effect-valid.html": [
+ "9563db0523ba741a94887c9e98d1db37b6da327b",
+ [
+ null,
+ {}
+ ]
]
},
"text": {
@@ -746405,7 +747679,7 @@
]
],
"single-touch-vertical-rl.html": [
- "3c34a6d9c96a052759d822397124affe3b36319c",
+ "623e57e8a118a228453a3ecd099d19dbd17fded3",
[
null,
{
@@ -747135,7 +748409,7 @@
]
],
"trusted-types-reporting.html": [
- "42759093604dedd525d6b1069b959b0394d4605d",
+ "5a7a64b52bd267360dc8a3d1a7b8a53baa2235b8",
[
null,
{
@@ -756027,8 +757301,8 @@
{}
]
],
- "script-src-blocks-wasm.tentative.html": [
- "c1232730eab0715b8061689f04b7d2b64c242a51",
+ "script-src-blocks-wasm.tentative.sub.html": [
+ "0d5c7ca6ed57fd8067eca705eec3526f381f5185",
[
null,
{}
@@ -765462,7 +766736,7 @@
]
],
"video-encoder-h264.https.any.js": [
- "82370a8338c2c46a42449d0111cd5f97cd85ddbd",
+ "e63024a64b40a0e6aa87de869922be7025963f71",
[
"webcodecs/video-encoder-h264.https.any.html?baseline",
{
@@ -765494,6 +766768,10 @@
[
"variant",
"?high"
+ ],
+ [
+ "variant",
+ "?high-6.2"
]
]
}
@@ -765529,6 +766807,49 @@
[
"variant",
"?high"
+ ],
+ [
+ "variant",
+ "?high-6.2"
+ ]
+ ]
+ }
+ ],
+ [
+ "webcodecs/video-encoder-h264.https.any.html?high-6.2",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,dedicatedworker"
+ ],
+ [
+ "script",
+ "/common/media.js"
+ ],
+ [
+ "script",
+ "/webcodecs/utils.js"
+ ],
+ [
+ "script",
+ "/webcodecs/video-encoder-utils.js"
+ ],
+ [
+ "variant",
+ "?baseline"
+ ],
+ [
+ "variant",
+ "?main"
+ ],
+ [
+ "variant",
+ "?high"
+ ],
+ [
+ "variant",
+ "?high-6.2"
]
]
}
@@ -765564,6 +766885,10 @@
[
"variant",
"?high"
+ ],
+ [
+ "variant",
+ "?high-6.2"
]
]
}
@@ -765599,6 +766924,10 @@
[
"variant",
"?high"
+ ],
+ [
+ "variant",
+ "?high-6.2"
]
]
}
@@ -765634,6 +766963,49 @@
[
"variant",
"?high"
+ ],
+ [
+ "variant",
+ "?high-6.2"
+ ]
+ ]
+ }
+ ],
+ [
+ "webcodecs/video-encoder-h264.https.any.worker.html?high-6.2",
+ {
+ "script_metadata": [
+ [
+ "global",
+ "window,dedicatedworker"
+ ],
+ [
+ "script",
+ "/common/media.js"
+ ],
+ [
+ "script",
+ "/webcodecs/utils.js"
+ ],
+ [
+ "script",
+ "/webcodecs/video-encoder-utils.js"
+ ],
+ [
+ "variant",
+ "?baseline"
+ ],
+ [
+ "variant",
+ "?main"
+ ],
+ [
+ "variant",
+ "?high"
+ ],
+ [
+ "variant",
+ "?high-6.2"
]
]
}
@@ -765669,6 +767041,10 @@
[
"variant",
"?high"
+ ],
+ [
+ "variant",
+ "?high-6.2"
]
]
}
@@ -779810,7 +781186,7 @@
]
],
"clamp.https.any.js": [
- "ce1394802ed24def6ddfec262752533adbb728f9",
+ "96600c22f8b83f68195f8434a1289b21708a1749",
[
"webnn/validation_tests/clamp.https.any.html",
{
@@ -780097,7 +781473,7 @@
]
],
"elementwise-binary.https.any.js": [
- "7b3fec938bb4bc41663f1967e70404073f36d76d",
+ "8e86731a0fd977ac5deb08b8b585fcfed400fb43",
[
"webnn/validation_tests/elementwise-binary.https.any.html",
{
@@ -781786,7 +783162,7 @@
]
],
"RTCDataChannel-close.html": [
- "64534fc50707747f2835671c638cb6ba16e317b0",
+ "e215d95ed9a932692d066a06c05dc84d36db8215",
[
null,
{
@@ -828850,14 +830226,14 @@
},
"fragment_navigated": {
"fragment_navigated.py": [
- "fb690807f214632add89f1de98b90789fdb1117b",
+ "14fa226056188d33e65e2492a83de1824ee2413c",
[
null,
{}
]
],
"history_api.py": [
- "0af0a71c2b8eb3c398761581767bac18b6beea4e",
+ "8ae06d28904e06196abf60b9336cb26b598d58a7",
[
null,
{}
@@ -828903,7 +830279,7 @@
},
"handle_user_prompt": {
"handle_user_prompt.py": [
- "c562ddbd9a259b3bb9f5c2863a3b384624f8e043",
+ "5bbc616960fa0461e9cf14ceca918217f633b381",
[
null,
{}
@@ -829021,7 +830397,7 @@
]
],
"navigate.py": [
- "934fd3554f7dc607e6ad663b34e6a30fb921906d",
+ "1f003f4aa6909f5cff7aa00a0dd4e43624f9216f",
[
null,
{}
@@ -829215,6 +830591,13 @@
{}
]
],
+ "handler.py": [
+ "2aa67056f80f313b8a36bddd414ec20ecca5b427",
+ [
+ null,
+ {}
+ ]
+ ],
"user_prompt_opened.py": [
"3a995b150388909587ee8ed834030574de1e4003",
[
@@ -829590,14 +830973,14 @@
]
],
"cookies.py": [
- "5f594c4b029f0bd4abf58f574d70dee2f03b7632",
+ "d403f279d51f9746c7b6091c601edbc5664dbeaf",
[
null,
{}
]
],
"headers.py": [
- "d6af7094a6480273243ec46dffc45953476a6234",
+ "ed4839ee8062950466d61b0ab8da718c9efebc5c",
[
null,
{}
@@ -829654,7 +831037,7 @@
},
"continue_with_auth": {
"action.py": [
- "e4cf6da08f4117f6b7dbac529cf229c94bba1ff6",
+ "dccdd6a9308004c826a028cd9e5e41ffe128c2b5",
[
null,
{}
@@ -829795,6 +831178,29 @@
{}
]
]
+ },
+ "set_cache_bypass": {
+ "contexts_tentative.py": [
+ "946d6d9a7eb4f2129de13bf3954b2939775943c9",
+ [
+ null,
+ {}
+ ]
+ ],
+ "invalid_tentative.py": [
+ "678d5d313f899718af2b52f24479b57b839ec216",
+ [
+ null,
+ {}
+ ]
+ ],
+ "set_cache_bypass_tentative.py": [
+ "42166ef253bb954a7df3099287caed259f33a0ec",
+ [
+ null,
+ {}
+ ]
+ ]
}
},
"script": {
diff --git a/tests/wpt/meta/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini b/tests/wpt/meta/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini
new file mode 100644
index 00000000000..31a54462d23
--- /dev/null
+++ b/tests/wpt/meta/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js.ini
@@ -0,0 +1,122 @@
+[derived_bits_length.https.any.html]
+ [HKDF derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+
+[derived_bits_length.https.any.worker.html]
+ [HKDF derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [HKDF derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [PBKDF2 derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [ECDH derivation with omitted as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with 256 as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with 0 as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with null as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with undefined as 'length' parameter]
+ expected: FAIL
+
+ [X25519 derivation with omitted as 'length' parameter]
+ expected: FAIL
diff --git a/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini b/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini
index 5c493662c66..60a8a4fe5b4 100644
--- a/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini
+++ b/tests/wpt/meta/WebCryptoAPI/idlharness.https.any.js.ini
@@ -173,6 +173,15 @@
[SubtleCrypto interface: calling unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, sequence<KeyUsage>) on crypto.subtle with too few arguments must throw TypeError]
expected: FAIL
+ [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)]
+ expected: FAIL
+
+ [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)" with the proper type]
+ expected: FAIL
+
+ [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?) on crypto.subtle with too few arguments must throw TypeError]
+ expected: FAIL
+
[idlharness.https.any.html]
[Crypto interface: attribute subtle]
@@ -348,3 +357,12 @@
[SubtleCrypto interface: calling unwrapKey(KeyFormat, BufferSource, CryptoKey, AlgorithmIdentifier, AlgorithmIdentifier, boolean, sequence<KeyUsage>) on crypto.subtle with too few arguments must throw TypeError]
expected: FAIL
+
+ [SubtleCrypto interface: operation deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)]
+ expected: FAIL
+
+ [SubtleCrypto interface: crypto.subtle must inherit property "deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?)" with the proper type]
+ expected: FAIL
+
+ [SubtleCrypto interface: calling deriveBits(AlgorithmIdentifier, CryptoKey, optional unsigned long?) on crypto.subtle with too few arguments must throw TypeError]
+ expected: FAIL
diff --git a/tests/wpt/meta/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini b/tests/wpt/meta/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini
new file mode 100644
index 00000000000..3b84a9f479b
--- /dev/null
+++ b/tests/wpt/meta/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js.ini
@@ -0,0 +1,8 @@
+[importKey-unsettled-promise.https.any.html]
+ [WebCryptoAPI: Assure promise returned by importKey is settled.]
+ expected: FAIL
+
+
+[importKey-unsettled-promise.https.any.worker.html]
+ [WebCryptoAPI: Assure promise returned by importKey is settled.]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/CSS2/floats/floats-in-table-caption-001.html.ini b/tests/wpt/meta/css/CSS2/floats/floats-in-table-caption-001.html.ini
deleted file mode 100644
index 86715ffc9c2..00000000000
--- a/tests/wpt/meta/css/CSS2/floats/floats-in-table-caption-001.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[floats-in-table-caption-001.html]
- expected: FAIL
diff --git a/tests/wpt/meta/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini b/tests/wpt/meta/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini
new file mode 100644
index 00000000000..eb3cf41a070
--- /dev/null
+++ b/tests/wpt/meta/css/css-color/animation/opacity-animation-ending-correctly-002.html.ini
@@ -0,0 +1,2 @@
+[opacity-animation-ending-correctly-002.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001.html.ini
new file mode 100644
index 00000000000..59e756fab44
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-001.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini
new file mode 100644
index 00000000000..9ed0016e7cc
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-001a.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-001a.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002.html.ini
new file mode 100644
index 00000000000..25c86e4340a
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-002.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini
new file mode 100644
index 00000000000..89ef37501d1
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002a.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-002a.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini
new file mode 100644
index 00000000000..62a53fd3d6b
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-002b.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-002b.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003.html.ini
new file mode 100644
index 00000000000..ab8404e1cbe
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-003.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini
new file mode 100644
index 00000000000..9b47c17a55c
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003a.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-003a.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini
new file mode 100644
index 00000000000..5118c0ae109
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-003b.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-003b.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004.html.ini
new file mode 100644
index 00000000000..c28f3859026
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-004.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini
new file mode 100644
index 00000000000..a3bcc0f45a0
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004a.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-004a.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini
new file mode 100644
index 00000000000..b6e5121eb77
--- /dev/null
+++ b/tests/wpt/meta/css/css-pseudo/highlight-painting-currentcolor-004b.html.ini
@@ -0,0 +1,2 @@
+[highlight-painting-currentcolor-004b.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-transforms/animation/transform-interpolation-007.html.ini b/tests/wpt/meta/css/css-transforms/animation/transform-interpolation-007.html.ini
new file mode 100644
index 00000000000..e2b0ecfa8c4
--- /dev/null
+++ b/tests/wpt/meta/css/css-transforms/animation/transform-interpolation-007.html.ini
@@ -0,0 +1,126 @@
+[transform-interpolation-007.html]
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-behavior:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition-property:all and transition-behavor:allow-discrete: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Transitions with transition: all: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [CSS Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (-0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.3) should be [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (0.6) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
+
+ [Web Animations: property <transform> from [matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)\] to [matrix(3, 0, 0, 3, 0, 0)\] at (1.5) should be [matrix(3, 0, 0, 3, 0, 0)\]]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini b/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini
new file mode 100644
index 00000000000..4c11bb94283
--- /dev/null
+++ b/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html.ini
@@ -0,0 +1,2 @@
+[transform-non-invertible-discrete-interpolation.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini b/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini
new file mode 100644
index 00000000000..5828fcf067e
--- /dev/null
+++ b/tests/wpt/meta/css/css-transforms/animation/transform-non-invertible-no-transition.html.ini
@@ -0,0 +1,3 @@
+[transform-non-invertible-no-transition.html]
+ [Setting 'transform' to a non-invertible matrix does not yield a CSS Transition]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini b/tests/wpt/meta/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini
new file mode 100644
index 00000000000..8766213d3ca
--- /dev/null
+++ b/tests/wpt/meta/css/css-transitions/CSSTransition-not-canceling.tentative.html.ini
@@ -0,0 +1,6 @@
+[CSSTransition-not-canceling.tentative.html]
+ [Setting "display: none" with "display" set to transition using "display 100s allow-discrete" does not cancel running transitions]
+ expected: FAIL
+
+ [Setting "display: none" with "display" set to transition using "display 100s, all allow-discrete 100s" does not cancel running transitions]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-ui/transparent-accent-color-001.html.ini b/tests/wpt/meta/css/css-ui/transparent-accent-color-001.html.ini
new file mode 100644
index 00000000000..86d0d1e6e2c
--- /dev/null
+++ b/tests/wpt/meta/css/css-ui/transparent-accent-color-001.html.ini
@@ -0,0 +1,2 @@
+[transparent-accent-color-001.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/css/css-ui/transparent-accent-color-002.html.ini b/tests/wpt/meta/css/css-ui/transparent-accent-color-002.html.ini
new file mode 100644
index 00000000000..5942e38a2db
--- /dev/null
+++ b/tests/wpt/meta/css/css-ui/transparent-accent-color-002.html.ini
@@ -0,0 +1,2 @@
+[transparent-accent-color-002.html]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/css/css-values/attr-all-types.html.ini b/tests/wpt/meta/css/css-values/attr-all-types.html.ini
new file mode 100644
index 00000000000..b4ee5fc070d
--- /dev/null
+++ b/tests/wpt/meta/css/css-values/attr-all-types.html.ini
@@ -0,0 +1,159 @@
+[attr-all-types.html]
+ [CSS Values and Units Test: attr]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 1]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 2]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 3]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 4]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 5]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 6]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 7]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 8]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 9]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 10]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 11]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 13]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 14]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 15]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 18]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 19]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 20]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 21]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 25]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 26]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 28]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 29]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 30]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 31]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 32]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 33]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 34]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 35]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 36]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 37]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 38]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 39]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 40]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 41]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 42]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 43]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 44]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 45]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 46]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 47]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 48]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 49]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 50]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 51]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 52]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 53]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 54]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 55]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 64]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 65]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 66]
+ expected: FAIL
+
+ [CSS Values and Units Test: attr 67]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/css-values/attr-invalidation.html.ini b/tests/wpt/meta/css/css-values/attr-invalidation.html.ini
new file mode 100644
index 00000000000..111ec1b3975
--- /dev/null
+++ b/tests/wpt/meta/css/css-values/attr-invalidation.html.ini
@@ -0,0 +1,3 @@
+[attr-invalidation.html]
+ [CSS Values and Units Test: attr() invalidation]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini
index 70cbb50e1a5..0fb52f523b6 100644
--- a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini
+++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-handleEvent.html.ini
@@ -11,3 +11,6 @@
[rethrows errors when getting handleEvent]
expected: NOTRUN
+
+ [looks up handleEvent method on every event dispatch]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
index 314dca9c1f5..7fe2fa192e4 100644
--- a/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
+++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-addListener-removeListener.html.ini
@@ -1,3 +1,16 @@
[MediaQueryList-addListener-removeListener.html]
+ expected: TIMEOUT
[listeners are called when <iframe> is resized]
expected: FAIL
+
+ [listener that was added twice is called only once]
+ expected: NOTRUN
+
+ [listeners are called in order their MQLs were created]
+ expected: NOTRUN
+
+ [removing listener from one MQL doesn't remove it from all MQLs]
+ expected: NOTRUN
+
+ [MediaQueryList::removeListener removes added listener]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
new file mode 100644
index 00000000000..e6af0bd1e0a
--- /dev/null
+++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini
@@ -0,0 +1,19 @@
+[MediaQueryList-extends-EventTarget-interop.html]
+ expected: TIMEOUT
+ [listener added with addListener and addEventListener (capture) is called twice]
+ expected: TIMEOUT
+
+ [removeEventListener removes listener added with addListener]
+ expected: NOTRUN
+
+ [removeEventListener (capture) doesn't remove listener added with addListener]
+ expected: NOTRUN
+
+ [removeListener removes listener added with addEventListener]
+ expected: NOTRUN
+
+ [removeListener doesn't remove listener added with addEventListener (capture)]
+ expected: NOTRUN
+
+ [capturing event listener fires before non-capturing listener at target]
+ expected: NOTRUN
diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini
index 79d93e2f301..c72c94a203f 100644
--- a/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini
+++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget.html.ini
@@ -8,3 +8,6 @@
[listeners with different type are not called]
expected: NOTRUN
+
+ [listeners for "change" type are called]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/css/cssom/idlharness.html.ini b/tests/wpt/meta/css/cssom/idlharness.html.ini
index ffb6ed38587..07066ab2ab6 100644
--- a/tests/wpt/meta/css/cssom/idlharness.html.ini
+++ b/tests/wpt/meta/css/cssom/idlharness.html.ini
@@ -595,3 +595,6 @@
[CSSStyleProperties interface: attribute cssFloat]
expected: FAIL
+
+ [CSSPageDescriptors interface: attribute orientation]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/cssom/page-descriptors.html.ini b/tests/wpt/meta/css/cssom/page-descriptors.html.ini
new file mode 100644
index 00000000000..ca4d3f1de85
--- /dev/null
+++ b/tests/wpt/meta/css/cssom/page-descriptors.html.ini
@@ -0,0 +1,3 @@
+[page-descriptors.html]
+ [CSSPageDescriptors properties tests]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/filter-effects/backdrop-filter-basic-blur.html.ini b/tests/wpt/meta/css/filter-effects/backdrop-filter-basic-blur.html.ini
new file mode 100644
index 00000000000..b95bcf073f3
--- /dev/null
+++ b/tests/wpt/meta/css/filter-effects/backdrop-filter-basic-blur.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filter-basic-blur.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/filter-effects/backdrop-filter-edge-mirror.html.ini b/tests/wpt/meta/css/filter-effects/backdrop-filter-edge-mirror.html.ini
deleted file mode 100644
index 51318cbb1d2..00000000000
--- a/tests/wpt/meta/css/filter-effects/backdrop-filter-edge-mirror.html.ini
+++ /dev/null
@@ -1,2 +0,0 @@
-[backdrop-filter-edge-mirror.html]
- expected: FAIL
diff --git a/tests/wpt/meta/css/filter-effects/backdrop-filter-svg-blur.html.ini b/tests/wpt/meta/css/filter-effects/backdrop-filter-svg-blur.html.ini
new file mode 100644
index 00000000000..3294c0b7080
--- /dev/null
+++ b/tests/wpt/meta/css/filter-effects/backdrop-filter-svg-blur.html.ini
@@ -0,0 +1,2 @@
+[backdrop-filter-svg-blur.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-003.html.ini b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-003.html.ini
new file mode 100644
index 00000000000..a62fd6f90d5
--- /dev/null
+++ b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-003.html.ini
@@ -0,0 +1,2 @@
+[mq-calc-sign-function-003.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-004.html.ini b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-004.html.ini
new file mode 100644
index 00000000000..3c5bd16380e
--- /dev/null
+++ b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-004.html.ini
@@ -0,0 +1,2 @@
+[mq-calc-sign-function-004.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-005.html.ini b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-005.html.ini
new file mode 100644
index 00000000000..7c40a3027c2
--- /dev/null
+++ b/tests/wpt/meta/css/mediaqueries/mq-calc-sign-function-005.html.ini
@@ -0,0 +1,2 @@
+[mq-calc-sign-function-005.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.https.sub.html.ini b/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.https.sub.html.ini
index 578ce049089..3d6068202c8 100644
--- a/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.https.sub.html.ini
+++ b/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.https.sub.html.ini
@@ -4,7 +4,7 @@
expected: FAIL
[sec-fetch-site - Cross-site, no attributes]
- expected: FAIL
+ expected: TIMEOUT
[sec-fetch-site - Same site, no attributes]
expected: NOTRUN
diff --git a/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.sub.html.ini b/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.sub.html.ini
index 4648085f98d..410ec4c1d39 100644
--- a/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.sub.html.ini
+++ b/tests/wpt/meta/fetch/metadata/generated/element-img-environment-change.sub.html.ini
@@ -41,6 +41,3 @@
[sec-fetch-site - HTTPS downgrade-upgrade, no attributes]
expected: NOTRUN
-
- [sec-fetch-site - Not sent to non-trustworthy same-origin destination, no attributes]
- expected: FAIL
diff --git a/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
new file mode 100644
index 00000000000..7a5fcb79165
--- /dev/null
+++ b/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini
@@ -0,0 +1,3 @@
+[traverse_the_history_5.html]
+ [Multiple history traversals, last would be aborted]
+ expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/element/compositing/colr-glyph-composition.html.ini b/tests/wpt/meta/html/canvas/element/compositing/colr-glyph-composition.html.ini
new file mode 100644
index 00000000000..0392ac2ff3b
--- /dev/null
+++ b/tests/wpt/meta/html/canvas/element/compositing/colr-glyph-composition.html.ini
@@ -0,0 +1,2 @@
+[colr-glyph-composition.html]
+ expected: FAIL
diff --git a/tests/wpt/meta/html/canvas/offscreen/compositing/2d.composite.image.xor.html.ini b/tests/wpt/meta/html/canvas/offscreen/compositing/2d.composite.image.xor.html.ini
index d41764c974f..76403653b87 100644
--- a/tests/wpt/meta/html/canvas/offscreen/compositing/2d.composite.image.xor.html.ini
+++ b/tests/wpt/meta/html/canvas/offscreen/compositing/2d.composite.image.xor.html.ini
@@ -1,4 +1,3 @@
[2d.composite.image.xor.html]
[OffscreenCanvas test: 2d.composite.image.xor]
expected: FAIL
-
diff --git a/tests/wpt/meta/html/dom/idlharness.https.html.ini b/tests/wpt/meta/html/dom/idlharness.https.html.ini
index e44555f85b9..ddfd998c546 100644
--- a/tests/wpt/meta/html/dom/idlharness.https.html.ini
+++ b/tests/wpt/meta/html/dom/idlharness.https.html.ini
@@ -1988,6 +1988,24 @@
[Element interface: operation getHTML(optional GetHTMLOptions)]
expected: FAIL
+ [Element interface: document.createElement("noscript") must inherit property "setHTMLUnsafe((TrustedHTML or DOMString))" with the proper type]
+ expected: FAIL
+
+ [Element interface: calling setHTMLUnsafe((TrustedHTML or DOMString)) on document.createElement("noscript") with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [Element interface: document.createElement("noscript") must inherit property "innerHTML" with the proper type]
+ expected: FAIL
+
+ [Element interface: document.createElement("noscript") must inherit property "outerHTML" with the proper type]
+ expected: FAIL
+
+ [ShadowRoot interface: operation setHTMLUnsafe((TrustedHTML or DOMString))]
+ expected: FAIL
+
+ [Element interface: operation setHTMLUnsafe((TrustedHTML or DOMString))]
+ expected: FAIL
+
[idlharness.https.html?include=(Document|Window)]
[Document interface: documentWithHandlers must inherit property "queryCommandEnabled(DOMString)" with the proper type]
@@ -2635,6 +2653,18 @@
[Document interface: calling parseHTMLUnsafe(HTMLString) on documentWithHandlers with too few arguments must throw TypeError]
expected: FAIL
+ [Document interface: operation parseHTMLUnsafe((TrustedHTML or DOMString))]
+ expected: FAIL
+
+ [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on iframe.contentDocument with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on new Document() with too few arguments must throw TypeError]
+ expected: FAIL
+
+ [Document interface: calling parseHTMLUnsafe((TrustedHTML or DOMString)) on documentWithHandlers with too few arguments must throw TypeError]
+ expected: FAIL
+
[idlharness.https.html?include=HTML.*]
[HTMLTableSectionElement interface: document.createElement("tfoot") must inherit property "align" with the proper type]
@@ -4790,3 +4820,6 @@
[HTMLTemplateElement interface: document.createElement("template") must inherit property "shadowRootSerializable" with the proper type]
expected: FAIL
+
+ [HTMLIFrameElement interface: document.createElement("iframe") must inherit property "srcdoc" with the proper type]
+ expected: FAIL
diff --git a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini
index d7a63bb7cfb..9494d845f2c 100644
--- a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini
+++ b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js.ini
@@ -2,27 +2,9 @@
[page-created Error (structuredClone())]
expected: FAIL
- [page-created Error (worker)]
- expected: FAIL
-
- [page-created Error (cross-site iframe)]
- expected: FAIL
-
- [page-created Error (same-origin iframe)]
- expected: FAIL
-
[JS-engine-created TypeError (structuredClone())]
expected: FAIL
- [JS-engine-created TypeError (worker)]
- expected: FAIL
-
- [JS-engine-created TypeError (cross-site iframe)]
- expected: FAIL
-
- [JS-engine-created TypeError (same-origin iframe)]
- expected: FAIL
-
[web API-created TypeError (structuredClone())]
expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html.ini b/tests/wpt/meta/html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html.ini
index 246e55deb7e..4caf5931a11 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/media-elements/track/track-element/no-cuechange-before-play.html.ini
@@ -1,4 +1,3 @@
[no-cuechange-before-play.html]
- expected: TIMEOUT
[Ensure that the 'cuechange' event is not fired before video playback has begun.]
- expected: TIMEOUT
+ expected: FAIL
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
index 68203d2a082..26704422bbe 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-2.html.ini
@@ -1,4 +1,4 @@
[iframe_sandbox_popups_escaping-2.html]
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used]
expected: TIMEOUT
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
index 1ae1c2cc134..c6f1e5d7d84 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini
@@ -1,4 +1,4 @@
[iframe_sandbox_popups_nonescaping-2.html]
- expected: CRASH
+ expected: TIMEOUT
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
index ff6467094b8..ccdaf8d61b2 100644
--- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
+++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini
@@ -1,3 +1,3 @@
[iframe_sandbox_popups_nonescaping-3.html]
[Check that popups from a sandboxed iframe do not escape the sandbox]
- expected: FAIL
+ expected: NOTRUN
diff --git a/tests/wpt/meta/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini b/tests/wpt/meta/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini
new file mode 100644
index 00000000000..7682a4830bf
--- /dev/null
+++ b/tests/wpt/meta/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini
@@ -0,0 +1,4 @@
+[reparent-form-during-planned-navigation-task.html]
+ expected: TIMEOUT
+ [reparent-form-during-planned-navigation-task]
+ expected: TIMEOUT
diff --git a/tests/wpt/meta/html/semantics/forms/historical.html.ini b/tests/wpt/meta/html/semantics/forms/historical.html.ini
new file mode 100644
index 00000000000..5d8289307cc
--- /dev/null
+++ b/tests/wpt/meta/html/semantics/forms/historical.html.ini
@@ -0,0 +1,3 @@
+[historical.html]
+ [<input name=isindex> should not be supported]
+ expected: FAIL
diff --git a/tests/wpt/meta/resource-timing/nested-context-navigations-iframe.html.ini b/tests/wpt/meta/resource-timing/nested-context-navigations-iframe.html.ini
deleted file mode 100644
index 256cf4b2cca..00000000000
--- a/tests/wpt/meta/resource-timing/nested-context-navigations-iframe.html.ini
+++ /dev/null
@@ -1,19 +0,0 @@
-[nested-context-navigations-iframe.html]
- expected: TIMEOUT
- [Test that iframe navigations are not observable by the parent]
- expected: NOTRUN
-
- [Test that crossorigin iframe navigations are not observable by the parent]
- expected: NOTRUN
-
- [Test that cross-site iframe navigations are not observable by the parent]
- expected: NOTRUN
-
- [Test that iframe refreshes are not observable by the parent]
- expected: NOTRUN
-
- [Test that crossorigin iframe refreshes are not observable by the parent]
- expected: NOTRUN
-
- [Test that cross-site iframe refreshes are not observable by the parent]
- expected: NOTRUN
diff --git a/tests/wpt/meta/url/toascii.window.js.ini b/tests/wpt/meta/url/toascii.window.js.ini
index baa933a2312..97671b3120b 100644
--- a/tests/wpt/meta/url/toascii.window.js.ini
+++ b/tests/wpt/meta/url/toascii.window.js.ini
@@ -286,3 +286,39 @@
[≯ (using <area>.hostname)]
expected: FAIL
+
+ [≠ (using <area>.host)]
+ expected: FAIL
+
+ [≠ (using <area>.hostname)]
+ expected: FAIL
+
+ [≮ (using <area>.host)]
+ expected: FAIL
+
+ [≮ (using <area>.hostname)]
+ expected: FAIL
+
+ [≯ (using <area>.host)]
+ expected: FAIL
+
+ [≯ (using <area>.hostname)]
+ expected: FAIL
+
+ [=­̸ (using <area>.host)]
+ expected: FAIL
+
+ [=­̸ (using <area>.hostname)]
+ expected: FAIL
+
+ [<­̸ (using <area>.host)]
+ expected: FAIL
+
+ [<­̸ (using <area>.hostname)]
+ expected: FAIL
+
+ [>­̸ (using <area>.host)]
+ expected: FAIL
+
+ [>­̸ (using <area>.hostname)]
+ expected: FAIL
diff --git a/tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini b/tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini
index 42bd0c47410..c804530024c 100644
--- a/tests/wpt/meta-legacy-layout/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html.ini
+++ b/tests/wpt/meta/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html.ini
@@ -1,3 +1,3 @@
-[script-src-blocks-wasm.tentative.html]
+[script-src-blocks-wasm.tentative.sub.html]
[Importing a WebAssembly module should be guarded by script-src CSP.]
expected: FAIL
diff --git a/tests/wpt/tests/.github/workflows/docker.yml b/tests/wpt/tests/.github/workflows/docker.yml
index a55d0f626d2..32fb814e6d9 100644
--- a/tests/wpt/tests/.github/workflows/docker.yml
+++ b/tests/wpt/tests/.github/workflows/docker.yml
@@ -40,7 +40,7 @@ jobs:
latest
type=raw,value=${{ inputs.tag }}
- name: Build and push the Docker image
- uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25 # v5.4.0
+ uses: docker/build-push-action@31159d49c0d4756269a0940a750801a1ea5d7003 # v6.1.0
with:
context: ./tools/docker
push: true
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.any.js b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.any.js
new file mode 100644
index 00000000000..76e1c7afe79
--- /dev/null
+++ b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.any.js
@@ -0,0 +1,215 @@
+// META: global=window,worker
+// META: title=IDBCursor.continue() - object store
+// META: script=resources/support.js
+// @author Microsoft <https://www.microsoft.com>
+// @author Intel <http://www.intel.com>
+
+'use strict';
+
+function createObjectStoreAndPopulate(db, records) {
+ let objStore = db.createObjectStore("test", { keyPath: "pKey" });
+
+ for (let i = 0; i < records.length; i++) {
+ objStore.add(records[i]);
+ }
+ return objStore;
+}
+
+function setOnUpgradeNeeded(dbObj, records) {
+ return function (event) {
+ dbObj.db = event.target.result;
+ createObjectStoreAndPopulate(dbObj.db, records);
+ };
+}
+
+async_test(t => {
+ let dbObj = {};
+ let count = 0;
+
+ const records = [
+ { pKey: "primaryKey_0" },
+ { pKey: "primaryKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records);
+
+ open_rq.onsuccess = function (e) {
+ let store = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' })
+ .objectStore("test");
+
+ let cursor_rq = store.openCursor();
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+ if (!cursor) {
+ assert_equals(count, records.length, "cursor run count");
+ t.done();
+ }
+
+ let record = cursor.value;
+ assert_equals(record.pKey, records[count].pKey, "primary key");
+ assert_equals(record.iKey, records[count].iKey, "index key");
+
+ cursor.continue();
+ count++;
+ });
+ }
+}, "IDBCursor.continue() - object store - iterate to the next record");
+
+async_test(t => {
+ let dbObj = {};
+
+ const records = [
+ { pKey: "primaryKey_0" },
+ { pKey: "primaryKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records);
+
+ open_rq.onsuccess = function (e) {
+ let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' })
+ .objectStore("test").openCursor();
+
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+
+ assert_true(cursor instanceof IDBCursor, "cursor exists");
+ assert_throws_dom("DataError",
+ function () { cursor.continue(-1); });
+
+ t.done();
+ });
+ }
+
+}, "IDBCursor.continue() - object store - attempt to pass a key parameter is not a valid key");
+
+async_test(t => {
+ let dbObj = {};
+
+ const records = [
+ { pKey: "primaryKey_0" },
+ { pKey: "primaryKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records);
+
+ open_rq.onsuccess = function (e) {
+ let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' })
+ .objectStore("test")
+ .openCursor(undefined, "next");
+
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+
+ assert_true(cursor instanceof IDBCursor, "cursor exist");
+ assert_throws_dom("DataError",
+ function () { cursor.continue(records[0].pKey); });
+
+ t.done();
+ });
+ }
+}, "IDBCursor.continue() - object store - attempt to iterate to the previous record when the direction is set for the next record");
+
+async_test(t => {
+ let dbObj = {};
+
+ const records = [
+ { pKey: "primaryKey_0" },
+ { pKey: "primaryKey_1" },
+ { pKey: "primaryKey_2" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records);
+
+ open_rq.onsuccess = function (e) {
+ let count = 0,
+ cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' })
+ .objectStore("test")
+ .openCursor(null, "prev");
+
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+
+ assert_true(cursor != null, "cursor exist");
+
+ switch (count) {
+ case 0:
+ assert_equals(cursor.value.pKey, records[2].pKey, "first cursor pkey");
+ cursor.continue(records[1].pKey);
+ break;
+
+ case 1:
+ assert_equals(cursor.value.pKey, records[1].pKey, "second cursor pkey");
+ assert_throws_dom("DataError",
+ function () { cursor.continue(records[2].pKey); });
+ t.done();
+ break;
+
+ default:
+ assert_unreached("Unexpected count value: " + count);
+ }
+
+ count++;
+ });
+ }
+}, "IDBCursor.continue() - object store - attempt to iterate to the next record when the direction is set for the next record");
+
+async_test(t => {
+ let dbObj = {};
+
+ const records = [
+ { pKey: "primaryKey_0" },
+ { pKey: "primaryKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records);
+
+ open_rq.onsuccess = function (e) {
+ let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' })
+ .objectStore("test")
+ .openCursor();
+
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+ assert_true(cursor instanceof IDBCursor, "cursor exists");
+
+ e.target.transaction.abort();
+ assert_throws_dom("TransactionInactiveError",
+ function () { cursor.continue(); });
+
+ t.done();
+ });
+ }
+
+}, "Calling continue() should throws an exception TransactionInactiveError when the transaction is not active.");
+
+async_test(t => {
+ let db;
+ const records = [
+ { pKey: "primaryKey_0" },
+ { pKey: "primaryKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = function (e) {
+ db = e.target.result;
+ let objStore = createObjectStoreAndPopulate(db, records);
+
+ let cursor_rq = objStore.openCursor();
+
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+ assert_true(cursor instanceof IDBCursor, "cursor exists");
+
+ db.deleteObjectStore("test");
+ assert_throws_dom("InvalidStateError",
+ function () { cursor.continue(); });
+
+ t.done();
+ });
+ }
+}, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError");
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.htm
deleted file mode 100644
index f82aa99949d..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore.htm
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE html>
-<title>IDBCursor.continue() - object store - iterate to the next record</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var db,
- count = 0,
- t = async_test(),
- records = [ { pKey: "primaryKey_0" },
- { pKey: "primaryKey_1" } ];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- var objStore = db.createObjectStore("test", {autoIncrement:true, keyPath:"pKey"});
-
- for (var i = 0; i < records.length; i++)
- objStore.add(records[i]);
- };
-
- open_rq.onsuccess = function(e) {
- var store = db.transaction("test", "readonly", {durability: 'relaxed'})
- .objectStore("test");
-
- var cursor_rq = store.openCursor();
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
- if (!cursor) {
- assert_equals(count, records.length, "cursor run count");
- t.done();
- }
-
- var record = cursor.value;
- assert_equals(record.pKey, records[count].pKey, "primary key");
- assert_equals(record.iKey, records[count].iKey, "index key");
-
- cursor.continue();
- count++;
- });
- };
-</script>
-
-<div id=log> </div>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore2.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore2.htm
deleted file mode 100644
index 8b79c64615b..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore2.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<title>IDBCursor.continue() - object store - attempt to pass a key parameter is not a valid key </title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
- var db,
- t = async_test(),
- records = [ { pKey: "primaryKey_0" },
- { pKey: "primaryKey_1" } ];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- var objStore = db.createObjectStore("test", {keyPath:"pKey"});
-
- for (var i = 0; i < records.length; i++)
- objStore.add(records[i]);
- };
-
- open_rq.onsuccess = function(e) {
- var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'})
- .objectStore("test")
- .openCursor();
-
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
-
- assert_true(cursor instanceof IDBCursor, "cursor exists");
- assert_throws_dom("DataError",
- function() { cursor.continue(document); });
-
- t.done();
- });
- };
-</script>
-
-<div id="log"> </div>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore3.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore3.htm
deleted file mode 100644
index 7d96d7fec9e..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore3.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<title>IDBCursor.continue() - object store - attempt to iterate to the previous record when the direction is set for the next record</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
- var db,
- t = async_test(),
- records = [ { pKey: "primaryKey_0" },
- { pKey: "primaryKey_1" } ];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- var objStore = db.createObjectStore("test", {keyPath:"pKey"});
-
- for (var i = 0; i < records.length; i++)
- objStore.add(records[i]);
- };
-
- open_rq.onsuccess = function(e) {
- var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'})
- .objectStore("test")
- .openCursor(undefined, "next");
-
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
-
- assert_true(cursor instanceof IDBCursor, "cursor exist");
- assert_throws_dom("DataError",
- function() { cursor.continue(records[0].pKey); });
-
- t.done();
- });
- };
-</script>
-
-<div id="log"> </div>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore4.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore4.htm
deleted file mode 100644
index 5056a7364fd..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore4.htm
+++ /dev/null
@@ -1,57 +0,0 @@
-<!DOCTYPE html>
-<title>IDBCursor.continue() - object store - attempt to iterate to the next record when the direction is set for the previous record </title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
- var db,
- t = async_test(),
- records = [ { pKey: "primaryKey_0" },
- { pKey: "primaryKey_1" },
- { pKey: "primaryKey_2" } ];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- var objStore = db.createObjectStore("test", { keyPath: "pKey" });
-
- for (var i = 0; i < records.length; i++)
- objStore.add(records[i]);
- };
-
- open_rq.onsuccess = function(e) {
- var count = 0,
- cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'})
- .objectStore("test")
- .openCursor(null, "prev");
-
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
-
- assert_true(cursor != null, "cursor exist");
-
- switch(count) {
- case 0:
- assert_equals(cursor.value.pKey, records[2].pKey, "first cursor pkey");
- cursor.continue(records[1].pKey);
- break;
-
- case 1:
- assert_equals(cursor.value.pKey, records[1].pKey, "second cursor pkey");
- assert_throws_dom("DataError",
- function() { cursor.continue(records[2].pKey); });
- t.done();
- break;
-
- default:
- assert_unreached("Unexpected count value: " + count);
- }
-
- count++;
- });
- };
-</script>
-
-<div id="log"></div>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore5.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore5.htm
deleted file mode 100644
index a0c3663ab40..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore5.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>IDBCursor.continue() - object store - throw TransactionInactiveError</title>
-<link rel="author" title="Intel" href="http://www.intel.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-<div id="log"> </div>
-<script>
- var db,
- t = async_test(),
- records = [ { pKey: "primaryKey_0" },
- { pKey: "primaryKey_1" } ];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- var objStore = db.createObjectStore("test", {keyPath:"pKey"});
-
- for (var i = 0; i < records.length; i++)
- objStore.add(records[i]);
- };
-
- open_rq.onsuccess = function(e) {
- var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'})
- .objectStore("test")
- .openCursor();
-
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
- assert_true(cursor instanceof IDBCursor, "cursor exists");
-
- e.target.transaction.abort();
- assert_throws_dom("TransactionInactiveError", function() {
- cursor.continue();
- }, "Calling continue() should throws an exception TransactionInactiveError when the transaction is not active.");
-
-
- t.done();
- });
- };
-</script>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore6.htm b/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore6.htm
deleted file mode 100644
index 7a2b50752ce..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_continue_objectstore6.htm
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>IDBCursor.continue() - object store - throw InvalidStateError caused by object store been deleted</title>
-<link rel="author" title="Intel" href="http://www.intel.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-<div id="log"> </div>
-<script>
- var db,
- t = async_test(),
- records = [ { pKey: "primaryKey_0" },
- { pKey: "primaryKey_1" } ];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- var objStore = db.createObjectStore("test", {keyPath:"pKey"});
-
- for (var i = 0; i < records.length; i++)
- objStore.add(records[i]);
-
- var cursor_rq = objStore.openCursor();
-
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
- assert_true(cursor instanceof IDBCursor, "cursor exists");
-
- db.deleteObjectStore("test");
- assert_throws_dom("InvalidStateError", function() {
- cursor.continue();
- }, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError");
-
- t.done();
- });
- }
-</script>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index.any.js b/tests/wpt/tests/IndexedDB/idbcursor_delete_index.any.js
new file mode 100644
index 00000000000..a4d0614820a
--- /dev/null
+++ b/tests/wpt/tests/IndexedDB/idbcursor_delete_index.any.js
@@ -0,0 +1,182 @@
+// META: global=window,worker
+// META: title=IDBCursor.delete() - index
+// META: script=resources/support.js
+// @author Microsoft <https://www.microsoft.com>
+// @author Intel <http://www.intel.com>
+
+'use strict';
+
+function createObjectStoreWithIndexAndPopulate(db, records) {
+ let objStore = db.createObjectStore("test", { keyPath: "pKey" });
+ objStore.createIndex("index", "iKey");
+ for (let i = 0; i < records.length; i++) {
+ objStore.add(records[i]);
+ }
+ return objStore;
+}
+
+function setOnUpgradeNeeded(dbObj, records) {
+ return function (event) {
+ dbObj.db = event.target.result;
+ createObjectStoreWithIndexAndPopulate(dbObj.db, records);
+ };
+}
+
+async_test(t => {
+ let dbObj = {};
+ let count = 0;
+
+ const records = [
+ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+ { pKey: "primaryKey_1", iKey: "indexKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records);
+
+ open_rq.onsuccess = t.step_func(CursorDeleteRecord);
+
+ function CursorDeleteRecord(e) {
+ let txn = dbObj.db.transaction("test", "readwrite", { durability: 'relaxed' }),
+ cursor_rq = txn.objectStore("test")
+ .index("index")
+ .openCursor();
+
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+
+ assert_true(cursor instanceof IDBCursor, "cursor exist");
+ cursor.delete();
+ });
+
+ txn.oncomplete = t.step_func(VerifyRecordWasDeleted);
+ }
+
+
+ function VerifyRecordWasDeleted(e) {
+ let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' })
+ .objectStore("test")
+ .openCursor();
+
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+
+ if (!cursor) {
+ assert_equals(count, 1, 'count');
+ t.done();
+ }
+
+ assert_equals(cursor.value.pKey, records[1].pKey);
+ assert_equals(cursor.value.iKey, records[1].iKey);
+ cursor.continue();
+ count++;
+ });
+ }
+}, "Remove a record from the object store");
+
+async_test(t => {
+ let dbObj = {};
+ const records = [
+ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+ { pKey: "primaryKey_1", iKey: "indexKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = setOnUpgradeNeeded(dbObj, records);
+
+ open_rq.onsuccess = function (e) {
+ let cursor_rq = dbObj.db.transaction("test", "readonly", { durability: 'relaxed' })
+ .objectStore("test")
+ .index("index")
+ .openCursor();
+
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+
+ assert_true(cursor instanceof IDBCursor, "cursor exist");
+ assert_throws_dom('ReadOnlyError', function () { cursor.delete(); });
+ t.done();
+ });
+ }
+}, "Attempt to remove a record in a read-only transaction");
+
+async_test(t => {
+ let db;
+ const records = [
+ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+ { pKey: "primaryKey_1", iKey: "indexKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = function (e) {
+ db = e.target.result;
+ let objStore = createObjectStoreWithIndexAndPopulate(db, records);
+
+ let cursor_rq = objStore.index("index").openCursor();
+
+ cursor_rq.onsuccess = t.step_func(function (e) {
+ let cursor = e.target.result;
+ assert_true(cursor instanceof IDBCursor, "cursor exist");
+ self.cursor = cursor;
+ });
+
+ e.target.transaction.oncomplete = t.step_func(function (e) {
+ assert_throws_dom('TransactionInactiveError',
+ function () { self.cursor.delete(); })
+ t.done();
+ });
+ }
+}, "Attempt to remove a record in an inactive transaction");
+
+async_test(t => {
+ let db;
+ const records = [
+ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+ { pKey: "primaryKey_1", iKey: "indexKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = function (event) {
+ db = event.target.result;
+ let objStore = createObjectStoreWithIndexAndPopulate(db, records);
+
+ let rq = objStore.index("index").openCursor();
+
+ rq.onsuccess = t.step_func(function (event) {
+ let cursor = event.target.result;
+ assert_true(cursor instanceof IDBCursor, "cursor exist");
+
+ db.deleteObjectStore("test");
+ assert_throws_dom("InvalidStateError",
+ function () { cursor.delete(); });
+
+ t.done();
+ });
+ }
+}, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError");
+
+async_test(t => {
+ let db;
+ const records = [
+ { pKey: "primaryKey_0", iKey: "indexKey_0" },
+ { pKey: "primaryKey_1", iKey: "indexKey_1" }
+ ];
+
+ let open_rq = createdb(t);
+ open_rq.onupgradeneeded = function (event) {
+ db = event.target.result;
+ let objStore = createObjectStoreWithIndexAndPopulate(db, records);
+ let rq = objStore.index("index").openCursor();
+ rq.onsuccess = t.step_func(function (event) {
+ let cursor = event.target.result;
+ assert_true(cursor instanceof IDBCursor, "cursor exist");
+
+ cursor.continue();
+ assert_throws_dom("InvalidStateError", function () {
+ cursor.delete();
+ });
+
+ t.done();
+ });
+ }
+}, "Throw InvalidStateError when the cursor is being iterated");
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index.htm
deleted file mode 100644
index 6d1b4e35c97..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index.htm
+++ /dev/null
@@ -1,69 +0,0 @@
-<!DOCTYPE html>
-<title>IDBCursor.delete() - index - remove a record from the object store</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
-
- var db,
- count = 0,
- t = async_test(),
- records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
- { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
-
- var objStore = db.createObjectStore("test", { keyPath: "pKey" });
- objStore.createIndex("index", "iKey");
-
- for (var i = 0; i < records.length; i++)
- objStore.add(records[i]);
- };
-
- open_rq.onsuccess = t.step_func(CursorDeleteRecord);
-
-
- function CursorDeleteRecord(e) {
- var txn = db.transaction("test", "readwrite", {durability: 'relaxed'}),
- cursor_rq = txn.objectStore("test")
- .index("index")
- .openCursor();
-
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
-
- assert_true(cursor instanceof IDBCursor, "cursor exist");
- cursor.delete();
- });
-
- txn.oncomplete = t.step_func(VerifyRecordWasDeleted);
- }
-
-
- function VerifyRecordWasDeleted(e) {
- var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'})
- .objectStore("test")
- .openCursor();
-
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
-
- if (!cursor) {
- assert_equals(count, 1, 'count');
- t.done();
- }
-
- assert_equals(cursor.value.pKey, records[1].pKey);
- assert_equals(cursor.value.iKey, records[1].iKey);
- cursor.continue();
- count++;
- });
- }
-
-</script>
-
-<div id="log"></div>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index2.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index2.htm
deleted file mode 100644
index 054432d65dc..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index2.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<title>IDBCursor.delete() - index - attempt to remove a record in a read-only transaction</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
- var db,
- t = async_test(),
- records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
- { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
-
- var objStore = db.createObjectStore("test", { keyPath: "pKey" });
- objStore.createIndex("index", "iKey");
-
- for (var i = 0; i < records.length; i++)
- objStore.add(records[i]);
- };
-
- open_rq.onsuccess = function(e) {
- var cursor_rq = db.transaction("test", "readonly", {durability: 'relaxed'})
- .objectStore("test")
- .index("index")
- .openCursor();
-
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
-
- assert_true(cursor instanceof IDBCursor, "cursor exist");
- assert_throws_dom('ReadOnlyError', function() { cursor.delete(); });
- t.done();
- });
- }
-
-</script>
-
-<div id="log"></div>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index3.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index3.htm
deleted file mode 100644
index afe945e6462..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index3.htm
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<title>IDBCursor.delete() - index - attempt to remove a record in an inactive transaction</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
-
- var db,
- t = async_test(),
- records = [ { pKey: "primaryKey_0", iKey: "indexKey_0" },
- { pKey: "primaryKey_1", iKey: "indexKey_1" } ];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- var objStore = db.createObjectStore("test", { keyPath: "pKey" });
- var index = objStore.createIndex("index", "iKey");
-
- for (var i = 0; i < records.length; i++)
- objStore.add(records[i]);
-
- var cursor_rq = index.openCursor();
-
- cursor_rq.onsuccess = t.step_func(function(e) {
- var cursor = e.target.result;
- assert_true(cursor instanceof IDBCursor, "cursor exist");
- window.cursor = cursor;
- });
-
- e.target.transaction.oncomplete = t.step_func(function(e) {
- assert_throws_dom('TransactionInactiveError', function() { window.cursor.delete(); })
- t.done();
- });
- }
-
-</script>
-
-<div id="log"></div>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index4.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index4.htm
deleted file mode 100644
index 8eb6915b885..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index4.htm
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>IDBCursor.delete() - index - throw InvalidStateError caused by object store been deleted</title>
-<link rel="author" title="Intel" href="http://www.intel.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-<div id="log"></div>
-<script>
-
- var db,
- t = async_test(),
- records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" },
- { pKey: "primaryKey_1", iKey: "indexKey_1" }];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function (event) {
- db = event.target.result;
- var objStore = db.createObjectStore("store", {keyPath : "pKey"});
- objStore.createIndex("index", "iKey");
- for (var i = 0; i < records.length; i++) {
- objStore.add(records[i]);
- }
- var rq = objStore.index("index").openCursor();
- rq.onsuccess = t.step_func(function(event) {
- var cursor = event.target.result;
- assert_true(cursor instanceof IDBCursor, "cursor exist");
-
- db.deleteObjectStore("store");
- assert_throws_dom("InvalidStateError", function() {
- cursor.delete();
- }, "If the cursor's source or effective object store has been deleted, the implementation MUST throw a DOMException of type InvalidStateError");
-
- t.done();
- });
- }
-
-</script>
diff --git a/tests/wpt/tests/IndexedDB/idbcursor_delete_index5.htm b/tests/wpt/tests/IndexedDB/idbcursor_delete_index5.htm
deleted file mode 100644
index 76ce6d0e50e..00000000000
--- a/tests/wpt/tests/IndexedDB/idbcursor_delete_index5.htm
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>IDBCursor.delete() - index - throw InvalidStateError when the cursor is being iterated</title>
-<link rel="author" title="Intel" href="http://www.intel.com">
-<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBCursor-delete-IDBRequest">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-<div id="log"></div>
-<script>
- var db,
- t = async_test(),
- records = [{ pKey: "primaryKey_0", iKey: "indexKey_0" },
- { pKey: "primaryKey_1", iKey: "indexKey_1" }];
-
- var open_rq = createdb(t);
- open_rq.onupgradeneeded = function (event) {
- db = event.target.result;
- var objStore = db.createObjectStore("store", {keyPath : "pKey"});
- objStore.createIndex("index", "iKey");
- for (var i = 0; i < records.length; i++) {
- objStore.add(records[i]);
- }
-
- var rq = objStore.index("index").openCursor();
- rq.onsuccess = t.step_func(function(event) {
- var cursor = event.target.result;
- assert_true(cursor instanceof IDBCursor, "cursor exist");
-
- cursor.continue();
- assert_throws_dom("InvalidStateError", function() {
- cursor.delete();
- });
-
- t.done();
- });
- }
-</script>
-
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction.any.js b/tests/wpt/tests/IndexedDB/idbdatabase_transaction.any.js
new file mode 100644
index 00000000000..17859ec99e6
--- /dev/null
+++ b/tests/wpt/tests/IndexedDB/idbdatabase_transaction.any.js
@@ -0,0 +1,82 @@
+// META: title=IDBDatabase.transaction()
+// META: global=window,worker
+// META: script=resources/support.js
+
+'use strict';
+
+async_test(t => {
+ let db;
+ const open_rq = createdb(t);
+
+ open_rq.onupgradeneeded = function () { };
+ open_rq.onsuccess = function (e) {
+ db = e.target.result;
+
+ assert_throws_dom('NotFoundError', function () { db.transaction('non-existing'); });
+ t.done();
+ };
+}, "Attempt to open a transaction with invalid scope");
+
+async_test(t => {
+ let db;
+ const open_rq = createdb(t);
+
+ open_rq.onupgradeneeded = function (e) {
+ db = e.target.result;
+ db.createObjectStore('readonly');
+ };
+ open_rq.onsuccess = function (e) {
+ var txn = db.transaction('readonly', 'readonly', { durability: 'relaxed' });
+ assert_equals(txn.mode, "readonly", 'txn.mode');
+
+ t.done();
+ };
+}, "Opening a transaction defaults to a read-only mode");
+
+async_test(t => {
+ let db;
+ const open_rq = createdb(t);
+
+ open_rq.onupgradeneeded = function (e) {
+ db = e.target.result;
+ db.createObjectStore('test');
+ };
+
+ open_rq.onsuccess = function (e) {
+ db.close();
+
+ assert_throws_dom('InvalidStateError',
+ function () { db.transaction('test', 'readonly', { durability: 'relaxed' }); });
+
+ t.done();
+ };
+}, "Attempt to open a transaction from closed database connection");
+
+async_test(t => {
+ let db;
+ const open_rq = createdb(t);
+
+ open_rq.onupgradeneeded = function (e) {
+ db = e.target.result;
+ db.createObjectStore('test');
+ };
+
+ open_rq.onsuccess = function (e) {
+ assert_throws_js(TypeError,
+ function () { db.transaction('test', 'whatever'); });
+
+ t.done();
+ };
+}, "Attempt to open a transaction with invalid mode");
+
+async_test(t => {
+ let db;
+ const open_rq = createdb(t);
+
+ open_rq.onupgradeneeded = function () { };
+ open_rq.onsuccess = function (e) {
+ db = e.target.result;
+ assert_throws_dom('InvalidAccessError', function () { db.transaction([]); });
+ t.done();
+ };
+}, "If storeNames is an empty list, the implementation must throw a DOMException of type InvalidAccessError"); \ No newline at end of file
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction.htm
deleted file mode 100644
index 8e8264f8eab..00000000000
--- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction.htm
+++ /dev/null
@@ -1,24 +0,0 @@
-<!DOCTYPE html>
-<title>IDBDatabase.transaction() - attempt to open a transaction with invalid scope</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
-
-var db,
- t = async_test(),
- open_rq = createdb(t);
-
-open_rq.onupgradeneeded = function() {};
-open_rq.onsuccess = function(e) {
- db = e.target.result;
-
- assert_throws_dom('NotFoundError', function() { db.transaction('non-existing'); });
- t.done();
-};
-
-</script>
-
-<div id="log"></div>
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction2.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction2.htm
deleted file mode 100644
index 37b11229194..00000000000
--- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction2.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<title>IDBDatabase.transaction() - opening a transaction defaults to a read-only mode </title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
-
-var db,
- t = async_test(),
- open_rq = createdb(t);
-
-open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- db.createObjectStore('readonly');
-};
-open_rq.onsuccess = function(e) {
- var txn = db.transaction('readonly', 'readonly', {durability: 'relaxed'});
- assert_equals(txn.mode, "readonly", 'txn.mode');
-
- t.done();
-};
-
-</script>
-
-<div id="log"></div>
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction3.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction3.htm
deleted file mode 100644
index 1eea31f764a..00000000000
--- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction3.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<title>IDBDatabase.transaction() - attempt to open a transaction from closed database connection </title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
- var db,
- t = async_test(),
- open_rq = createdb(t);
-
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- db.createObjectStore('test');
- };
-
- open_rq.onsuccess = function(e) {
- db.close();
-
- assert_throws_dom('InvalidStateError',
- function() { db.transaction('test', 'readonly', {durability: 'relaxed'}); });
-
- t.done();
- };
-</script>
-
-<div id="log"></div>
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction4.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction4.htm
deleted file mode 100644
index 3a164c25f59..00000000000
--- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction4.htm
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<title>IDBDatabase.transaction() - attempt to open a transaction with invalid mode </title>
-<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-
-<script>
- var db,
- t = async_test(),
- open_rq = createdb(t);
-
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
- db.createObjectStore('test');
- };
-
- open_rq.onsuccess = function(e) {
- assert_throws_js(TypeError,
- function() { db.transaction('test', 'whatever'); });
-
- t.done();
- };
-</script>
-
-<div id="log"></div>
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_transaction5.htm b/tests/wpt/tests/IndexedDB/idbdatabase_transaction5.htm
deleted file mode 100644
index 451939731fa..00000000000
--- a/tests/wpt/tests/IndexedDB/idbdatabase_transaction5.htm
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>IDBDatabase.transaction() - If storeNames is an empty list, the implementation must throw a DOMException of type InvalidAccessError</title>
-<link rel="author" title="Intel" href="http://www.intel.com">
-<link rel="help" href="https://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBDatabase-transaction-IDBTransaction-DOMString-sequence-DOMString--storeNames-IDBTransactionMode-mode">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="resources/support.js"></script>
-<div id="log"></div>
-<script>
-var db,
- t = async_test(),
- open_rq = createdb(t);
-
-open_rq.onupgradeneeded = function() {};
-open_rq.onsuccess = function(e) {
- db = e.target.result;
- assert_throws_dom('InvalidAccessError', function() { db.transaction([]); });
- t.done();
-};
-</script>
-
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open.any.js b/tests/wpt/tests/IndexedDB/idbfactory_open.any.js
new file mode 100644
index 00000000000..edc5d3c8c6c
--- /dev/null
+++ b/tests/wpt/tests/IndexedDB/idbfactory_open.any.js
@@ -0,0 +1,395 @@
+// META: title=IDBFactory.open()
+// META: global=window,worker
+// META: script=resources/support.js
+// @author Microsoft <https://www.microsoft.com>
+// @author Odin H�rthe Omdal <mailto:odinho@opera.com>
+
+'use strict';
+
+async_test(t => {
+ const open_rq = createdb(t, undefined, 9);
+
+ open_rq.onupgradeneeded = function (e) { };
+ open_rq.onsuccess = function (e) {
+ assert_equals(e.target.source, null, "source")
+ t.done();
+ }
+}, "IDBFactory.open() - request has no source");
+
+async_test(t => {
+ let database_name = location + '-database_name';
+ const open_rq = createdb(t, database_name, 13);
+
+ open_rq.onupgradeneeded = function (e) { };
+ open_rq.onsuccess = function (e) {
+ let db = e.target.result;
+ assert_equals(db.name, database_name, 'db.name');
+ assert_equals(db.version, 13, 'db.version');
+ t.done();
+ }
+}, "IDBFactory.open() - database 'name' and 'version' are correctly set");
+
+async_test(t => {
+ const open_rq = createdb(t, undefined, 13);
+ let did_upgrade = false;
+
+ open_rq.onupgradeneeded = function () { };
+ open_rq.onsuccess = function (e) {
+ let db = e.target.result;
+ db.close();
+
+ let open_rq2 = indexedDB.open(db.name);
+ open_rq2.onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result.version, 13, "db.version")
+ e.target.result.close();
+ t.done();
+ });
+ open_rq2.onupgradeneeded = fail(t, 'Unexpected upgradeneeded')
+ open_rq2.onerror = fail(t, 'Unexpected error')
+ }
+}, "IDBFactory.open() - no version opens current database");
+
+async_test(t => {
+ const open_rq = createdb(t, self.location + '-database_name_new');
+ open_rq.onupgradeneeded = function (e) {
+ assert_equals(e.target.result.version, 1, "db.version");
+ };
+ open_rq.onsuccess = function (e) {
+ assert_equals(e.target.result.version, 1, "db.version");
+ t.done();
+ };
+}, "IDBFactory.open() - new database has default version");
+
+async_test(t => {
+ const open_rq = createdb(t, self.location + '-database_name');
+
+ open_rq.onupgradeneeded = function () { };
+ open_rq.onsuccess = function (e) {
+ assert_equals(e.target.result.objectStoreNames.length, 0, "objectStoreNames.length");
+ t.done();
+ };
+}, "IDBFactory.open() - new database is empty");
+
+async_test(t => {
+ const open_rq = createdb(t, undefined, 13);
+ let did_upgrade = false;
+ let open_rq2;
+
+ open_rq.onupgradeneeded = function () { };
+ open_rq.onsuccess = function (e) {
+ let db = e.target.result;
+ db.close();
+
+ open_rq2 = indexedDB.open(db.name, 14);
+ open_rq2.onupgradeneeded = function () { };
+ open_rq2.onsuccess = t.step_func(open_previous_db);
+ open_rq2.onerror = fail(t, 'Unexpected error')
+ }
+
+ function open_previous_db(e) {
+ let open_rq3 = indexedDB.open(e.target.result.name, 13);
+ open_rq3.onerror = t.step_func(function (e) {
+ assert_equals(e.target.error.name, 'VersionError', 'e.target.error.name')
+ open_rq2.result.close();
+ t.done();
+ });
+ open_rq3.onupgradeneeded = fail(t, 'Unexpected upgradeneeded')
+ open_rq3.onsuccess = fail(t, 'Unexpected success')
+ }
+}, "IDBFactory.open() - open database with a lower version than current");
+
+async_test(t => {
+ const open_rq = createdb(t, undefined, 13);
+ let did_upgrade = false;
+ let open_rq2;
+
+ open_rq.onupgradeneeded = function () { };
+ open_rq.onsuccess = function (e) {
+ let db = e.target.result;
+ db.close();
+
+ open_rq2 = indexedDB.open(db.name, 14);
+ open_rq2.onupgradeneeded = function () {
+ did_upgrade = true;
+ };
+ open_rq2.onsuccess = t.step_func(open_current_db);
+ open_rq2.onerror = fail(t, 'Unexpected error')
+ }
+
+ function open_current_db(e) {
+ let open_rq3 = indexedDB.open(e.target.result.name);
+ open_rq3.onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result.version, 14, "db.version")
+ open_rq2.result.close();
+ open_rq3.result.close();
+ t.done();
+ });
+ open_rq3.onupgradeneeded = fail(t, 'Unexpected upgradeneeded')
+ open_rq3.onerror = fail(t, 'Unexpected error')
+
+ assert_true(did_upgrade, 'did upgrade');
+ }
+}, "IDBFactory.open() - open database with a higher version than current");
+
+async_test(t => {
+ const open_rq = createdb(t, undefined, 13);
+ let did_upgrade = false;
+ let did_db_abort = false;
+
+ open_rq.onupgradeneeded = function (e) {
+ did_upgrade = true;
+ e.target.result.onabort = function () {
+ did_db_abort = true;
+ }
+ e.target.transaction.abort();
+ };
+ open_rq.onerror = function (e) {
+ assert_true(did_upgrade);
+ assert_equals(e.target.error.name, 'AbortError', 'target.error');
+ t.done()
+ };
+}, "IDBFactory.open() - error in version change transaction aborts open");
+
+function should_throw(val, name) {
+ if (!name) {
+ name = ((typeof val == "object" && val) ? "object" : format_value(val))
+ }
+ test(function () {
+ assert_throws_js(TypeError, function () {
+ indexedDB.open('test', val);
+ });
+ }, "Calling open() with version argument " + name + " should throw TypeError.")
+}
+
+should_throw(-1)
+should_throw(-0.5)
+should_throw(0)
+should_throw(0.5)
+should_throw(0.8)
+should_throw(0x20000000000000) // Number.MAX_SAFE_INTEGER + 1
+should_throw(NaN)
+should_throw(Infinity)
+should_throw(-Infinity)
+should_throw("foo")
+should_throw(null)
+should_throw(false)
+
+should_throw({
+ toString: function () { assert_unreached("toString should not be called for ToPrimitive [Number]"); },
+ valueOf: function () { return 0; }
+})
+should_throw({
+ toString: function () { return 0; },
+ valueOf: function () { return {}; }
+}, 'object (second)')
+should_throw({
+ toString: function () { return {}; },
+ valueOf: function () { return {}; },
+}, 'object (third)')
+
+
+/* Valid */
+
+function should_work(val, expected_version) {
+ let name = format_value(val);
+ let dbname = 'test-db-does-not-exist';
+ async_test(function (t) {
+ indexedDB.deleteDatabase(dbname);
+ let rq = indexedDB.open(dbname, val);
+ rq.onupgradeneeded = t.step_func(function () {
+ let db = rq.result;
+ assert_equals(db.version, expected_version, 'version');
+ rq.transaction.abort();
+ });
+ rq.onsuccess = t.unreached_func("open should fail");
+ rq.onerror = t.step_func(function () {
+ t.done()
+ });
+ }, "Calling open() with version argument " + name + " should not throw.");
+}
+
+should_work(1.5, 1)
+should_work(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER) // 0x20000000000000 - 1
+should_work(undefined, 1);
+
+async_test(t => {
+ let db, db2;
+ const open_rq = createdb(t, undefined, 9);
+
+ open_rq.onupgradeneeded = function (e) {
+ db = e.target.result;
+
+ let st = db.createObjectStore("store");
+ st.createIndex("index", "i");
+
+ assert_equals(db.version, 9, "first db.version");
+ assert_true(db.objectStoreNames.contains("store"), "objectStoreNames contains store");
+ assert_true(st.indexNames.contains("index"), "indexNames contains index");
+
+ st.add({ i: "Joshua" }, 1);
+ st.add({ i: "Jonas" }, 2);
+ };
+ open_rq.onsuccess = function (e) {
+ db.close();
+ let open_rq2 = indexedDB.open(db.name, 10);
+ open_rq2.onupgradeneeded = t.step_func(function (e) {
+ db2 = e.target.result;
+
+ db2.createObjectStore("store2");
+
+ let store = open_rq2.transaction.objectStore("store")
+ store.createIndex("index2", "i");
+
+ assert_equals(db2.version, 10, "db2.version");
+
+ assert_true(db2.objectStoreNames.contains("store"), "second objectStoreNames contains store");
+ assert_true(db2.objectStoreNames.contains("store2"), "second objectStoreNames contains store2");
+ assert_true(store.indexNames.contains("index"), "second indexNames contains index");
+ assert_true(store.indexNames.contains("index2"), "second indexNames contains index2");
+
+ store.add({ i: "Odin" }, 3);
+ store.put({ i: "Sicking" }, 2);
+
+ open_rq2.transaction.abort();
+ });
+ open_rq2.onerror = t.step_func(function (e) {
+ assert_equals(db2.version, 9, "db2.version after error");
+ assert_true(db2.objectStoreNames.contains("store"), "objectStoreNames contains store after error");
+ assert_false(db2.objectStoreNames.contains("store2"), "objectStoreNames not contains store2 after error");
+
+ let open_rq3 = indexedDB.open(db.name);
+ open_rq3.onsuccess = t
+ .step_func(function (e) {
+ let db3 = e.target.result;
+
+ assert_true(db3.objectStoreNames.contains("store"), "third objectStoreNames contains store");
+ assert_false(db3.objectStoreNames.contains("store2"), "third objectStoreNames contains store2");
+
+ let st = db3.transaction("store", "readonly", { durability: 'relaxed' }).objectStore("store");
+
+ assert_equals(db3.version, 9, "db3.version");
+
+ assert_true(st.indexNames.contains("index"), "third indexNames contains index");
+ assert_false(st.indexNames.contains("index2"), "third indexNames contains index2");
+
+ st.openCursor(null, "prev").onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result.key, 2, "opencursor(prev) key");
+ assert_equals(e.target.result.value.i, "Jonas", "opencursor(prev) value");
+ });
+ st.get(3).onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result, undefined, "get(3)");
+ });
+
+ let idx = st.index("index");
+ idx.getKey("Jonas").onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result, 2, "getKey(Jonas)");
+ });
+ idx.getKey("Odin").onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result, undefined, "getKey(Odin)");
+ });
+ idx.getKey("Sicking").onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result, undefined, "getKey(Sicking)");
+
+ db3.close();
+ t.done();
+ });
+ });
+ });
+ };
+}, "IDBFactory.open() - error in upgradeneeded resets db");
+
+async_test(t => {
+ let db;
+ let count_done = 0;
+ const open_rq = createdb(t);
+
+ open_rq.onupgradeneeded = function (e) {
+ db = e.target.result;
+
+ db.createObjectStore("store");
+ assert_true(db.objectStoreNames.contains("store"), "objectStoreNames contains store");
+
+ let store = e.target.transaction.objectStore("store");
+ assert_equals(store.name, "store", "store.name");
+
+ store.add("data", 1);
+
+ store.count().onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result, 1, "count()");
+ count_done++;
+ });
+
+ store.add("data2", 2);
+ };
+ open_rq.onsuccess = function (e) {
+ let store = db.transaction("store", "readonly", { durability: 'relaxed' }).objectStore("store");
+ assert_equals(store.name, "store", "store.name");
+ store.count().onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result, 2, "count()");
+ count_done++;
+ });
+ db.close();
+
+ let open_rq2 = indexedDB.open(db.name, 10);
+ open_rq2.onupgradeneeded = t.step_func(function (e) {
+ let db2 = e.target.result;
+ assert_true(db2.objectStoreNames.contains("store"), "objectStoreNames contains store");
+ let store = open_rq2.transaction.objectStore("store");
+ assert_equals(store.name, "store", "store.name");
+
+ store.add("data3", 3);
+
+ store.count().onsuccess = t.step_func(function (e) {
+ assert_equals(e.target.result, 3, "count()");
+ count_done++;
+
+ assert_equals(count_done, 3, "count_done");
+
+ db2.close();
+ t.done();
+ });
+ });
+ };
+}, "IDBFactory.open() - second open's transaction is available to get objectStores");
+
+async_test(t => {
+ let db;
+ let open_rq = createdb(t, undefined, 9);
+ let open2_t = t;
+
+ open_rq.onupgradeneeded = function (e) {
+ db = e.target.result;
+
+ assert_true(e instanceof IDBVersionChangeEvent, "e instanceof IDBVersionChangeEvent");
+ assert_equals(e.oldVersion, 0, "oldVersion");
+ assert_equals(e.newVersion, 9, "newVersion");
+ assert_equals(e.type, "upgradeneeded", "event type");
+
+ assert_equals(db.version, 9, "db.version");
+ };
+ open_rq.onsuccess = function (e) {
+ assert_true(e instanceof Event, "e instanceof Event");
+ assert_false(e instanceof IDBVersionChangeEvent, "e not instanceof IDBVersionChangeEvent");
+ assert_equals(e.type, "success", "event type");
+ t.done();
+
+
+ /**
+ * Second test
+ */
+ db.onversionchange = function () { db.close(); };
+
+ let open_rq2 = createdb(open2_t, db.name, 10);
+ open_rq2.onupgradeneeded = function (e) {
+ let db2 = e.target.result;
+ assert_true(e instanceof IDBVersionChangeEvent, "e instanceof IDBVersionChangeEvent");
+ assert_equals(e.oldVersion, 9, "oldVersion");
+ assert_equals(e.newVersion, 10, "newVersion");
+ assert_equals(e.type, "upgradeneeded", "event type");
+
+ assert_equals(db2.version, 10, "new db.version");
+
+ t.done();
+ };
+ };
+}, "IDBFactory.open() - upgradeneeded gets VersionChangeEvent"); \ No newline at end of file
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open.htm b/tests/wpt/tests/IndexedDB/idbfactory_open.htm
deleted file mode 100644
index 8e0b2412c91..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open.htm
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - request has no source</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var open_rq = createdb(async_test(), undefined, 9);
-
- open_rq.onupgradeneeded = function(e) {};
- open_rq.onsuccess = function(e) {
- assert_equals(e.target.source, null, "source")
- this.done();
- }
-</script>
-
-<div id="log"> </div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open10.htm b/tests/wpt/tests/IndexedDB/idbfactory_open10.htm
deleted file mode 100644
index 6340bd3cdf7..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open10.htm
+++ /dev/null
@@ -1,93 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - error in upgradeneeded resets db</title>
-<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var db, db2;
- var open_rq = createdb(async_test(), undefined, 9);
-
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
-
- var st = db.createObjectStore("store");
- st.createIndex("index", "i");
-
- assert_equals(db.version, 9, "first db.version");
- assert_true(db.objectStoreNames.contains("store"), "objectStoreNames contains store");
- assert_true(st.indexNames.contains("index"), "indexNames contains index");
-
- st.add({i: "Joshua"}, 1);
- st.add({i: "Jonas"}, 2);
- };
- open_rq.onsuccess = function(e) {
- db.close();
- var open_rq2 = window.indexedDB.open(db.name, 10);
- open_rq2.onupgradeneeded = this.step_func(function(e) {
- db2 = e.target.result;
-
- db2.createObjectStore("store2");
-
- var store = open_rq2.transaction.objectStore("store")
- store.createIndex("index2", "i");
-
- assert_equals(db2.version, 10, "db2.version");
-
- assert_true(db2.objectStoreNames.contains("store"), "second objectStoreNames contains store");
- assert_true(db2.objectStoreNames.contains("store2"), "second objectStoreNames contains store2");
- assert_true(store.indexNames.contains("index"), "second indexNames contains index");
- assert_true(store.indexNames.contains("index2"), "second indexNames contains index2");
-
- store.add({i: "Odin"}, 3);
- store.put({i: "Sicking"}, 2);
-
- open_rq2.transaction.abort();
- });
- open_rq2.onerror = this.step_func(function(e) {
- assert_equals(db2.version, 9, "db2.version after error");
- assert_true(db2.objectStoreNames.contains("store"), "objectStoreNames contains store after error");
- assert_false(db2.objectStoreNames.contains("store2"), "objectStoreNames not contains store2 after error");
-
- var open_rq3 = window.indexedDB.open(db.name);
- open_rq3.onsuccess = this.step_func(function(e) {
- var db3 = e.target.result;
-
- assert_true(db3.objectStoreNames.contains("store"), "third objectStoreNames contains store");
- assert_false(db3.objectStoreNames.contains("store2"), "third objectStoreNames contains store2");
-
- var st = db3.transaction("store", "readonly", {durability: 'relaxed'}).objectStore("store");
-
- assert_equals(db3.version, 9, "db3.version");
-
- assert_true(st.indexNames.contains("index"), "third indexNames contains index");
- assert_false(st.indexNames.contains("index2"), "third indexNames contains index2");
-
- st.openCursor(null, "prev").onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result.key, 2, "opencursor(prev) key");
- assert_equals(e.target.result.value.i, "Jonas", "opencursor(prev) value");
- });
- st.get(3).onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result, undefined, "get(3)");
- });
-
- var idx = st.index("index");
- idx.getKey("Jonas").onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result, 2, "getKey(Jonas)");
- });
- idx.getKey("Odin").onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result, undefined, "getKey(Odin)");
- });
- idx.getKey("Sicking").onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result, undefined, "getKey(Sicking)");
-
- db3.close();
- this.done();
- });
- });
- });
- };
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open11.htm b/tests/wpt/tests/IndexedDB/idbfactory_open11.htm
deleted file mode 100644
index d4012bea55b..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open11.htm
+++ /dev/null
@@ -1,62 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - second open's transaction is available to get objectStores</title>
-<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var db;
- var count_done = 0;
- var open_rq = createdb(async_test());
-
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
-
- db.createObjectStore("store");
- assert_true(db.objectStoreNames.contains("store"), "objectStoreNames contains store");
-
- var store = e.target.transaction.objectStore("store");
- assert_equals(store.name, "store", "store.name");
-
- store.add("data", 1);
-
- store.count().onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result, 1, "count()");
- count_done++;
- });
-
- store.add("data2", 2);
- };
- open_rq.onsuccess = function(e) {
- var store = db.transaction("store", "readonly", {durability: 'relaxed'}).objectStore("store");
- assert_equals(store.name, "store", "store.name");
- store.count().onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result, 2, "count()");
- count_done++;
- });
- db.close();
-
- var open_rq2 = window.indexedDB.open(db.name, 10);
- open_rq2.onupgradeneeded = this.step_func(function(e) {
- var db2 = e.target.result;
- assert_true(db2.objectStoreNames.contains("store"), "objectStoreNames contains store");
- var store = open_rq2.transaction.objectStore("store");
- assert_equals(store.name, "store", "store.name");
-
- store.add("data3", 3);
-
- store.count().onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result, 3, "count()");
- count_done++;
-
- assert_equals(count_done, 3, "count_done");
-
- db2.close();
- this.done();
- });
- });
- };
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open12.htm b/tests/wpt/tests/IndexedDB/idbfactory_open12.htm
deleted file mode 100644
index ee713ef3520..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open12.htm
+++ /dev/null
@@ -1,50 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - upgradeneeded gets VersionChangeEvent</title>
-<link rel="author" href="mailto:odinho@opera.com" title="Odin Hørthe Omdal">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var db;
- var open_rq = createdb(async_test(document.title), undefined, 9);
- var open2_t = async_test(document.title + " - second upgrade");
-
- open_rq.onupgradeneeded = function(e) {
- db = e.target.result;
-
- assert_true(e instanceof IDBVersionChangeEvent, "e instanceof IDBVersionChangeEvent");
- assert_equals(e.oldVersion, 0, "oldVersion");
- assert_equals(e.newVersion, 9, "newVersion");
- assert_equals(e.type, "upgradeneeded", "event type");
-
- assert_equals(db.version, 9, "db.version");
- };
- open_rq.onsuccess = function(e) {
- assert_true(e instanceof Event, "e instanceof Event");
- assert_false(e instanceof IDBVersionChangeEvent, "e not instanceof IDBVersionChangeEvent");
- assert_equals(e.type, "success", "event type");
- this.done();
-
-
- /**
- * Second test
- */
- db.onversionchange = function() { db.close(); };
-
- var open_rq2 = createdb(open2_t, db.name, 10);
- open_rq2.onupgradeneeded = function(e) {
- var db2 = e.target.result;
- assert_true(e instanceof IDBVersionChangeEvent, "e instanceof IDBVersionChangeEvent");
- assert_equals(e.oldVersion, 9, "oldVersion");
- assert_equals(e.newVersion, 10, "newVersion");
- assert_equals(e.type, "upgradeneeded", "event type");
-
- assert_equals(db2.version, 10, "new db.version");
-
- this.done();
- };
- };
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open2.htm b/tests/wpt/tests/IndexedDB/idbfactory_open2.htm
deleted file mode 100644
index 00ebbd3d0f0..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open2.htm
+++ /dev/null
@@ -1,21 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - database 'name' and 'version' are correctly set</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var database_name = document.location + '-database_name';
- var open_rq = createdb(async_test(), database_name, 13);
-
- open_rq.onupgradeneeded = function(e) {};
- open_rq.onsuccess = function(e) {
- var db = e.target.result;
- assert_equals(db.name, database_name, 'db.name');
- assert_equals(db.version, 13, 'db.version');
- this.done();
- }
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open3.htm b/tests/wpt/tests/IndexedDB/idbfactory_open3.htm
deleted file mode 100644
index 19cd5c5254d..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open3.htm
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - no version opens current database</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var open_rq = createdb(async_test(), undefined, 13);
- var did_upgrade = false;
-
- open_rq.onupgradeneeded = function() {};
- open_rq.onsuccess = function(e) {
- var db = e.target.result;
- db.close();
-
- var open_rq2 = window.indexedDB.open(db.name);
- open_rq2.onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result.version, 13, "db.version")
- e.target.result.close();
- this.done();
- });
- open_rq2.onupgradeneeded = fail(this, 'Unexpected upgradeneeded')
- open_rq2.onerror = fail(this, 'Unexpected error')
- }
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open4.htm b/tests/wpt/tests/IndexedDB/idbfactory_open4.htm
deleted file mode 100644
index 6983ca0737f..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open4.htm
+++ /dev/null
@@ -1,20 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - new database has default version</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var open_rq = createdb(async_test(), document.location + '-database_name');
-
- open_rq.onupgradeneeded = function(e) {
- assert_equals(e.target.result.version, 1, "db.version");
- };
- open_rq.onsuccess = function(e) {
- assert_equals(e.target.result.version, 1, "db.version");
- this.done();
- };
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open5.htm b/tests/wpt/tests/IndexedDB/idbfactory_open5.htm
deleted file mode 100644
index f6ddb17001a..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open5.htm
+++ /dev/null
@@ -1,18 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - new database is empty</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var open_rq = createdb(async_test(), document.location + '-database_name');
-
- open_rq.onupgradeneeded = function() {};
- open_rq.onsuccess = function(e) {
- assert_equals(e.target.result.objectStoreNames.length, 0, "objectStoreNames.length");
- this.done();
- };
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open6.htm b/tests/wpt/tests/IndexedDB/idbfactory_open6.htm
deleted file mode 100644
index 2b2cb334e46..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open6.htm
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - open database with a lower version than current</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var open_rq = createdb(async_test(), undefined, 13);
- var did_upgrade = false;
- var open_rq2;
-
- open_rq.onupgradeneeded = function() {};
- open_rq.onsuccess = function(e) {
- var db = e.target.result;
- db.close();
-
- open_rq2 = window.indexedDB.open(db.name, 14);
- open_rq2.onupgradeneeded = function() {};
- open_rq2.onsuccess = this.step_func(open_previous_db);
- open_rq2.onerror = fail(this, 'Unexpected error')
- }
-
- function open_previous_db(e) {
- var open_rq3 = window.indexedDB.open(e.target.result.name, 13);
- open_rq3.onerror = this.step_func(function(e) {
- assert_equals(e.target.error.name, 'VersionError', 'e.target.error.name')
- open_rq2.result.close();
- this.done();
- });
- open_rq3.onupgradeneeded = fail(this, 'Unexpected upgradeneeded')
- open_rq3.onsuccess = fail(this, 'Unexpected success')
- }
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open7.htm b/tests/wpt/tests/IndexedDB/idbfactory_open7.htm
deleted file mode 100644
index ccb3d067489..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open7.htm
+++ /dev/null
@@ -1,41 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - open database with a higher version than current</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var open_rq = createdb(async_test(), undefined, 13);
- var did_upgrade = false;
- var open_rq2;
-
- open_rq.onupgradeneeded = function() {};
- open_rq.onsuccess = function(e) {
- var db = e.target.result;
- db.close();
-
- open_rq2 = window.indexedDB.open(db.name, 14);
- open_rq2.onupgradeneeded = function() {
- did_upgrade = true;
- };
- open_rq2.onsuccess = this.step_func(open_current_db);
- open_rq2.onerror = fail(this, 'Unexpected error')
- }
-
- function open_current_db(e) {
- var open_rq3 = window.indexedDB.open(e.target.result.name);
- open_rq3.onsuccess = this.step_func(function(e) {
- assert_equals(e.target.result.version, 14, "db.version")
- open_rq2.result.close();
- open_rq3.result.close();
- this.done();
- });
- open_rq3.onupgradeneeded = fail(this, 'Unexpected upgradeneeded')
- open_rq3.onerror = fail(this, 'Unexpected error')
-
- assert_true(did_upgrade, 'did upgrade');
- }
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open8.htm b/tests/wpt/tests/IndexedDB/idbfactory_open8.htm
deleted file mode 100644
index 04c57df2ed4..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open8.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - error in version change transaction aborts open</title>
-<link rel="author" title="Microsoft" href="http://www.microsoft.com">
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-<script src=resources/support.js></script>
-
-<script>
- var open_rq = createdb(async_test(), undefined, 13);
- var did_upgrade = false;
- var did_db_abort = false;
-
- open_rq.onupgradeneeded = function(e) {
- did_upgrade = true;
- e.target.result.onabort = function() {
- did_db_abort = true;
- }
- e.target.transaction.abort();
- };
- open_rq.onerror = function(e) {
- assert_true(did_upgrade);
- assert_equals(e.target.error.name, 'AbortError', 'target.error');
- this.done()
- };
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/IndexedDB/idbfactory_open9.htm b/tests/wpt/tests/IndexedDB/idbfactory_open9.htm
deleted file mode 100644
index 36a9ef814cb..00000000000
--- a/tests/wpt/tests/IndexedDB/idbfactory_open9.htm
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE html>
-<title>IDBFactory.open() - errors in version argument</title>
-<script src=/resources/testharness.js></script>
-<script src=/resources/testharnessreport.js></script>
-
-<script>
-function should_throw(val, name) {
- if (!name) {
- name = ((typeof val == "object" && val) ? "object" : format_value(val))
- }
- test(function() {
- assert_throws_js(TypeError, function() {
- window.indexedDB.open('test', val);
- });
- }, "Calling open() with version argument " + name + " should throw TypeError.")
-}
-
-should_throw(-1)
-should_throw(-0.5)
-should_throw(0)
-should_throw(0.5)
-should_throw(0.8)
-should_throw(0x20000000000000) // Number.MAX_SAFE_INTEGER + 1
-should_throw(NaN)
-should_throw(Infinity)
-should_throw(-Infinity)
-should_throw("foo")
-should_throw(null)
-should_throw(false)
-
-should_throw({
- toString: function() { assert_unreached("toString should not be called for ToPrimitive [Number]"); },
- valueOf: function() { return 0; }
-})
-should_throw({
- toString: function() { return 0; },
- valueOf: function() { return {}; }
-}, 'object (second)')
-should_throw({
- toString: function() { return {}; },
- valueOf: function() { return {}; },
-}, 'object (third)')
-
-
-/* Valid */
-
-function should_work(val, expected_version) {
- var name = format_value(val);
- var dbname = 'test-db-does-not-exist';
- async_test(function(t) {
- window.indexedDB.deleteDatabase(dbname);
- var rq = window.indexedDB.open(dbname, val);
- rq.onupgradeneeded = t.step_func(function() {
- var db = rq.result;
- assert_equals(db.version, expected_version, 'version');
- rq.transaction.abort();
- });
- rq.onsuccess = t.unreached_func("open should fail");
- rq.onerror = t.step_func(function() {
- t.done()
- });
- }, "Calling open() with version argument " + name + " should not throw.")
-}
-
-should_work(1.5, 1)
-should_work(Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER) // 0x20000000000000 - 1
-should_work(undefined, 1)
-
-</script>
-
-<div id=log></div>
diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits.js
index 422a230bd16..da809278a87 100644
--- a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits.js
+++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/cfrg_curves_bits.js
@@ -57,25 +57,6 @@ function define_tests() {
});
}, algorithmName + " mixed case parameters");
- // Null length
- // "Null" is not valid per the current spec
- // - https://github.com/w3c/webcrypto/issues/322
- // - https://github.com/w3c/webcrypto/issues/329
- //
- // Proposal for a spec change:
- // - https://github.com/w3c/webcrypto/pull/345
- //
- // This test case may be replaced by these new tests:
- // - https://github.com/web-platform-tests/wpt/pull/43400
- promise_test(function(test) {
- return subtle.deriveBits({name: algorithmName, public: publicKeys[algorithmName]}, privateKeys[algorithmName], null)
- .then(function(derivation) {
- assert_true(equalBuffers(derivation, derivations[algorithmName]), "Derived correct bits");
- }, function(err) {
- assert_unreached("deriveBits failed with error " + err.name + ": " + err.message);
- });
- }, algorithmName + " with null length");
-
// Shorter than entire derivation per algorithm
promise_test(function(test) {
return subtle.deriveBits({name: algorithmName, public: publicKeys[algorithmName]}, privateKeys[algorithmName], 8 * sizes[algorithmName] - 32)
diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js
new file mode 100644
index 00000000000..0aee2e3c172
--- /dev/null
+++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.https.any.js
@@ -0,0 +1,11 @@
+// META: title=WebCryptoAPI: deriveBits() tests for the 'length' parameter
+// META: script=derived_bits_length.js
+// META: script=derived_bits_length_vectors.js
+// META: script=derived_bits_length_testcases.js
+
+// Define subtests from a `promise_test` to ensure the harness does not
+// complete before the subtests are available. `explicit_done` cannot be used
+// for this purpose because the global `done` function is automatically invoked
+// by the WPT infrastructure in dedicated worker tests defined using the
+// "multi-global" pattern.
+promise_test(define_tests, 'setup - define tests');
diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.js
new file mode 100644
index 00000000000..5a7ed7eb50a
--- /dev/null
+++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length.js
@@ -0,0 +1,36 @@
+function define_tests() {
+ // May want to test prefixed implementations.
+ var subtle = self.crypto.subtle;
+
+ Object.keys(testCases).forEach(algorithm => {
+ let testData = algorithms[algorithm];
+ testCases[algorithm].forEach(testParam => {
+ promise_test(async() => {
+ let derivedBits, privateKey, publicKey;
+ try {
+ privateKey = await subtle.importKey(testData.privateKey.format, testData.privateKey.data, testData.importAlg, false, ["deriveBits"]);
+ if (testData.deriveAlg.public !== undefined) {
+ publicKey = await subtle.importKey(testData.publicKey.format, testData.publicKey.data, testData.importAlg, false, []);
+ testData.deriveAlg.public = publicKey;
+ }
+ if (testParam.length === "omitted")
+ derivedBits = await subtle.deriveBits(testData.deriveAlg, privateKey);
+ else
+ derivedBits = await subtle.deriveBits(testData.deriveAlg, privateKey, testParam.length);
+ if (testParam.expected === undefined) {
+ assert_unreached("deriveBits should have thrown an OperationError exception.");
+ }
+ assert_array_equals(new Uint8Array(derivedBits), testParam.expected, "Derived bits do not match the expected result.");
+ } catch (err) {
+ if (err instanceof AssertionError || testParam.expected !== undefined) {
+ throw err;
+ }
+ assert_true(privateKey !== undefined, "Key should be valid.");
+ assert_equals(err.name, "OperationError", "deriveBits correctly threw OperationError: " + err.message);
+ }
+ }, algorithm + " derivation with " + testParam.length + " as 'length' parameter");
+ });
+ });
+
+ return Promise.resolve("define_tests");
+}
diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_testcases.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_testcases.js
new file mode 100644
index 00000000000..1bd7fbc2c85
--- /dev/null
+++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_testcases.js
@@ -0,0 +1,30 @@
+var testCases = {
+ "HKDF": [
+ {length: 256, expected: algorithms["HKDF"].derivation},
+ {length: 0, expected: undefined}, // explicitly disallowed, so should throw
+ {length: null, expected: undefined }, // should throw an exception
+ {length: undefined, expected: undefined }, // should throw an exception
+ {length: "omitted", expected: undefined }, // default value is null, so should throw
+ ],
+ "PBKDF2": [
+ {length: 256, expected: algorithms["PBKDF2"].derivation},
+ {length: 0, expected: undefined}, // explicitly disallowed, so should throw
+ {length: null, expected: undefined }, // should throw an exception
+ {length: undefined, expected: undefined }, // should throw an exception
+ {length: "omitted", expected: undefined }, // default value is null, so should throw
+ ],
+ "ECDH": [
+ {length: 256, expected: algorithms["ECDH"].derivation},
+ {length: 0, expected: emptyArray},
+ {length: null, expected: algorithms["ECDH"].derivation},
+ {length: undefined, expected: algorithms["ECDH"].derivation},
+ {length: "omitted", expected: algorithms["ECDH"].derivation }, // default value is null
+ ],
+ "X25519": [
+ {length: 256, expected: algorithms["X25519"].derivation},
+ {length: 0, expected: emptyArray},
+ {length: null, expected: algorithms["X25519"].derivation},
+ {length: undefined, expected: algorithms["X25519"].derivation},
+ {length: "omitted", expected: algorithms["X25519"].derivation }, // default value is null
+ ],
+}
diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_vectors.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_vectors.js
new file mode 100644
index 00000000000..fa51f7d3f2b
--- /dev/null
+++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/derived_bits_length_vectors.js
@@ -0,0 +1,33 @@
+const emptyArray = new Uint8Array([]);
+const rawKey = new Uint8Array([85, 115, 101, 114, 115, 32, 115, 104, 111, 117, 108, 100, 32, 112, 105, 99, 107, 32, 108, 111, 110, 103, 32, 112, 97, 115, 115, 112, 104, 114, 97, 115, 101, 115, 32, 40, 110, 111, 116, 32, 117, 115, 101, 32, 115, 104, 111, 114, 116, 32, 112, 97, 115, 115, 119, 111, 114, 100, 115, 41, 33]);
+const salt = new Uint8Array([83, 111, 100, 105, 117, 109, 32, 67, 104, 108, 111, 114, 105, 100, 101, 32, 99, 111, 109, 112, 111, 117, 110, 100]);
+const info = new Uint8Array([72, 75, 68, 70, 32, 101, 120, 116, 114, 97, 32, 105, 110, 102, 111]);
+
+var algorithms = {
+ "HKDF": {
+ importAlg: {name: "HKDF"},
+ privateKey: {format: "raw", data: rawKey},
+ deriveAlg: {name: "HKDF", salt: salt, hash: "SHA-256", info: info},
+ derivation: new Uint8Array([49, 183, 214, 133, 48, 168, 99, 231, 23, 192, 129, 202, 105, 23, 182, 134, 80, 179, 221, 154, 41, 243, 6, 6, 226, 202, 209, 153, 190, 193, 77, 19]),
+ },
+ "PBKDF2": {
+ importAlg: {name: "PBKDF2"},
+ privateKey: {format: "raw", data: rawKey},
+ deriveAlg: {name: "PBKDF2", salt: salt, hash: "SHA-256", iterations: 100000},
+ derivation: new Uint8Array([17, 153, 45, 139, 129, 51, 17, 36, 76, 84, 75, 98, 41, 41, 69, 226, 8, 212, 3, 206, 189, 107, 149, 82, 161, 165, 98, 6, 93, 153, 88, 234]),
+ },
+ "ECDH": {
+ importAlg: {name: "ECDH", namedCurve: "P-256"},
+ privateKey: {format: "pkcs8", data: new Uint8Array([48, 129, 135, 2, 1, 0, 48, 19, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 8, 42, 134, 72, 206, 61, 3, 1, 7, 4, 109, 48, 107, 2, 1, 1, 4, 32, 15, 247, 79, 232, 241, 202, 175, 97, 92, 206, 241, 29, 217, 53, 114, 87, 98, 217, 216, 65, 236, 186, 185, 94, 170, 38, 68, 123, 52, 100, 245, 113, 161, 68, 3, 66, 0, 4, 140, 96, 11, 44, 102, 25, 45, 97, 158, 39, 210, 37, 107, 59, 151, 118, 178, 141, 30, 5, 246, 13, 234, 189, 98, 174, 123, 154, 211, 157, 224, 217, 59, 4, 102, 109, 199, 119, 14, 126, 207, 13, 211, 203, 203, 211, 110, 221, 107, 94, 220, 153, 81, 7, 55, 161, 237, 104, 46, 205, 112, 244, 10, 47])},
+ publicKey: {format: "spki", data: new Uint8Array([48, 89, 48, 19, 6, 7, 42, 134, 72, 206, 61, 2, 1, 6, 8, 42, 134, 72, 206, 61, 3, 1, 7, 3, 66, 0, 4, 154, 116, 32, 120, 126, 95, 77, 105, 211, 232, 34, 114, 115, 1, 109, 56, 224, 71, 129, 133, 223, 127, 238, 156, 142, 103, 60, 202, 211, 79, 126, 128, 254, 49, 141, 182, 221, 107, 119, 218, 99, 32, 165, 246, 151, 89, 9, 68, 23, 177, 52, 239, 138, 139, 116, 193, 101, 4, 57, 198, 115, 0, 90, 61])},
+ deriveAlg: {name: "ECDH", public: new Uint8Array ([])},
+ derivation: new Uint8Array([14, 143, 60, 77, 177, 178, 162, 131, 115, 90, 0, 220, 87, 31, 26, 232, 151, 28, 227, 35, 250, 17, 131, 137, 203, 95, 65, 196, 59, 61, 181, 161]),
+ },
+ "X25519": {
+ importAlg: {name: "X25519"},
+ privateKey: {format: "pkcs8", data: new Uint8Array([48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 110, 4, 34, 4, 32, 200, 131, 142, 118, 208, 87, 223, 183, 216, 201, 90, 105, 225, 56, 22, 10, 221, 99, 115, 253, 113, 164, 210, 118, 187, 86, 227, 168, 27, 100, 255, 97])},
+ publicKey: {format: "spki", data: new Uint8Array([48, 42, 48, 5, 6, 3, 43, 101, 110, 3, 33, 0, 28, 242, 177, 230, 2, 46, 197, 55, 55, 30, 215, 245, 62, 84, 250, 17, 84, 216, 62, 152, 235, 100, 234, 81, 250, 229, 179, 48, 124, 254, 151, 6])},
+ deriveAlg: {name: "X25519", public: new Uint8Array ([])},
+ derivation: new Uint8Array([39, 104, 64, 157, 250, 185, 158, 194, 59, 140, 137, 185, 63, 245, 136, 2, 149, 247, 97, 118, 8, 143, 137, 228, 61, 254, 190, 126, 161, 149, 0, 8]),
+ }
+};
diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js
index cb9747a529f..36b29c20a28 100644
--- a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js
+++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/ecdh_bits.js
@@ -55,25 +55,6 @@ function define_tests() {
});
}, namedCurve + " mixed case parameters");
- // Null length
- // "Null" is not valid per the current spec
- // - https://github.com/w3c/webcrypto/issues/322
- // - https://github.com/w3c/webcrypto/issues/329
- //
- // Proposal for a spec change:
- // - https://github.com/w3c/webcrypto/pull/345
- //
- // This test case may be replaced by these new tests:
- // - https://github.com/web-platform-tests/wpt/pull/43400
- promise_test(function(test) {
- return subtle.deriveBits({name: "ECDH", public: publicKeys[namedCurve]}, privateKeys[namedCurve], null)
- .then(function(derivation) {
- assert_true(equalBuffers(derivation, derivations[namedCurve]), "Derived correct bits");
- }, function(err) {
- assert_unreached("deriveBits failed with error " + err.name + ": " + err.message);
- });
- }, namedCurve + " with null length");
-
// Shorter than entire derivation per algorithm
promise_test(function(test) {
return subtle.deriveBits({name: "ECDH", public: publicKeys[namedCurve]}, privateKeys[namedCurve], 8 * sizes[namedCurve] - 32)
diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/hkdf.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/hkdf.js
index 3903da5cddf..b2dfda0257b 100644
--- a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/hkdf.js
+++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/hkdf.js
@@ -139,25 +139,6 @@ function define_tests() {
});
}, testName + " with missing info");
- // length null (OperationError)
- // "Null" is not valid per the current spec
- // - https://github.com/w3c/webcrypto/issues/322
- // - https://github.com/w3c/webcrypto/issues/329
- //
- // Proposal for a spec change:
- // - https://github.com/w3c/webcrypto/pull/345
- //
- // This test case may be replaced by these new tests:
- // - https://github.com/web-platform-tests/wpt/pull/43400
- subsetTest(promise_test, function(test) {
- return subtle.deriveBits(algorithm, baseKeys[derivedKeySize], null)
- .then(function(derivation) {
- assert_unreached("null length should have thrown an OperationError");
- }, function(err) {
- assert_equals(err.name, "OperationError", "deriveBits with null length correctly threw OperationError: " + err.message);
- });
- }, testName + " with null length");
-
// length not multiple of 8 (OperationError)
subsetTest(promise_test, function(test) {
return subtle.deriveBits(algorithm, baseKeys[derivedKeySize], 44)
diff --git a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js
index 4e4ae79d800..090806ceb6b 100644
--- a/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js
+++ b/tests/wpt/tests/WebCryptoAPI/derive_bits_keys/pbkdf2.js
@@ -103,26 +103,6 @@ function define_tests() {
});
- // Test various error conditions for deriveBits below:
- // length null (OperationError)
- // "Null" is not valid per the current spec
- // - https://github.com/w3c/webcrypto/issues/322
- // - https://github.com/w3c/webcrypto/issues/329
- //
- // Proposal for a spec change:
- // - https://github.com/w3c/webcrypto/pull/345
- //
- // This test case may be replaced by these new tests:
- // - https://github.com/web-platform-tests/wpt/pull/43400
- subsetTest(promise_test, function(test) {
- return subtle.deriveBits({name: "PBKDF2", salt: salts[saltSize], hash: hashName, iterations: parseInt(iterations)}, baseKeys[passwordSize], null)
- .then(function(derivation) {
- assert_unreached("null length should have thrown an OperationError");
- }, function(err) {
- assert_equals(err.name, "OperationError", "deriveBits with null length correctly threw OperationError: " + err.message);
- });
- }, testName + " with null length");
-
// 0 length (OperationError)
subsetTest(promise_test, function(test) {
return subtle.deriveBits({name: "PBKDF2", salt: salts[saltSize], hash: hashName, iterations: parseInt(iterations)}, baseKeys[passwordSize], 0)
diff --git a/tests/wpt/tests/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js b/tests/wpt/tests/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js
new file mode 100644
index 00000000000..0ceeea390eb
--- /dev/null
+++ b/tests/wpt/tests/WebCryptoAPI/import_export/crashtests/importKey-unsettled-promise.https.any.js
@@ -0,0 +1,17 @@
+// META: title=WebCryptoAPI: Assure promise returned by importKey is settled.
+// META: timeout=long
+// META: script=/common/gc.js
+
+'use strict';
+
+promise_test(async () => {
+ const jwkKey = {};
+ const extractable = true;
+ crypto.subtle.importKey("jwk", jwkKey, {name: "UNSUPPORTED", hash: "SHA-224"}, extractable, []).then(
+ () => { assert_unreached("Unsupported algorithm should cause promise rejection")},
+ (err) => {
+ assert_equals(err.name, "NotSupportedError");
+ });
+ await garbageCollect();
+})
+
diff --git a/tests/wpt/tests/credential-management/fedcm-authz/resolve-after-preventsilentaccess.https.html b/tests/wpt/tests/credential-management/fedcm-authz/resolve-after-preventsilentaccess.https.html
new file mode 100644
index 00000000000..7223a722fe2
--- /dev/null
+++ b/tests/wpt/tests/credential-management/fedcm-authz/resolve-after-preventsilentaccess.https.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<title>IdentityProvider.resolve after preventSilentAccess should reset user interaction</title>
+<link rel="help" href="https://fedidcg.github.io/FedCM">
+<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 type="module">
+import {request_options_with_mediation_optional,
+ fedcm_test,
+ select_manifest,
+ fedcm_get_and_select_first_account} from '../support/fedcm-helper.sub.js';
+
+fedcm_test(async t => {
+ let test_options = request_options_with_mediation_optional("manifest_with_continue_on.json");
+ await select_manifest(t, test_options);
+
+ // Signs in account "1234" so that they will be a returning user
+ test_options.identity.providers[0].nonce = "token";
+ let cred = await fedcm_get_and_select_first_account(t, test_options);
+ assert_equals(cred.token, "account=1234");
+
+ try {
+ await navigator.credentials.preventSilentAccess();
+ } catch (ex) {
+ // In Chrome's content_shell, the promise will be rejected
+ // even though the part we care about succeeds.
+ }
+
+ // Ensure that mediation: silent fails as expected.
+ await select_manifest(t, test_options);
+ test_options.mediation = "silent";
+ let cred_promise = navigator.credentials.get(test_options);
+ await promise_rejects_dom(t, 'NetworkError', cred_promise);
+
+ // Now trigger continue_on/IdentityProvider.resolve.
+ await select_manifest(t, test_options);
+ test_options.mediation = "optional";
+ test_options.identity.providers[0].nonce = "2";
+ cred = await fedcm_get_and_select_first_account(t, test_options);
+ assert_equals(cred.token, "account=1234");
+ assert_equals(cred.isAutoSelected, false);
+
+ // Now silent mediation should work.
+ await select_manifest(t, test_options);
+ test_options.mediation = "silent";
+ test_options.identity.providers[0].nonce = "token";
+ cred = await navigator.credentials.get(test_options);
+ assert_equals(cred.token, "account=1234");
+ assert_equals(cred.isAutoSelected, true);
+}, "Test that resolve clears the preventSilentAccess state.");
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-default.html b/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-default.html
new file mode 100644
index 00000000000..d1837a6c336
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-default.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<title>Tests CSS animation of anchor(), dynamic position-anchor changes</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ #cb {
+ border: 1px solid black;
+ width: 400px;
+ height: 400px;
+ position: relative;
+ }
+ #anchor1, #anchor2 {
+ width: 100px;
+ height: 100px;
+ background: tomato;
+ }
+ #anchor1 {
+ background: coral;
+ anchor-name: --a1;
+ }
+ #anchor2 {
+ background: seagreen;
+ anchor-name: --a2;
+ }
+ #anchored {
+ width: 50px;
+ height: 50px;
+ background: skyblue;
+ animation: --anim 9999s steps(2, start);
+ position: absolute;
+ position-anchor: --a1;
+ }
+ @keyframes --anim {
+ from { top: anchor(top); }
+ to { top: anchor(bottom); }
+ }
+</style>
+<div id=cb>
+ <div id=anchor1></div>
+ <div id=anchor2></div>
+ <div id=anchored></div>
+</div>
+<script>
+ test(() => {
+ assert_equals(anchored.offsetTop, 50);
+ anchored.style.positionAnchor = '--a2';
+ assert_equals(anchored.offsetTop, 150);
+ }, 'Animation with anchor() responds to position-anchor change');
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-name.html b/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-name.html
new file mode 100644
index 00000000000..60d8dd59aeb
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-animation-dynamic-name.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<title>Tests CSS animation of anchor(), dynamic anchor-name changes</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ #cb {
+ border: 1px solid black;
+ width: 400px;
+ height: 400px;
+ position: relative;
+ }
+ #a1, #a2 {
+ width: 100px;
+ height: 100px;
+ }
+ #a1 {
+ background: tomato;
+ }
+ #a2 {
+ background: seagreen;
+ }
+ .anchor { anchor-name: --a; }
+ #anchored {
+ width: 50px;
+ height: 50px;
+ background: skyblue;
+ animation: --anim 1s steps(2, start);
+ position: absolute;
+ position-anchor: --a;
+ }
+ @keyframes --anim {
+ from { top: anchor(top); }
+ to { top: anchor(bottom); }
+ }
+</style>
+<div id=cb>
+ <div id=a1 class=anchor></div>
+ <div id=a2></div>
+ <div id=anchored></div>
+</div>
+<script>
+ test(() => {
+ assert_equals(anchored.offsetTop, 50);
+ a1.classList.toggle('anchor');
+ a2.classList.toggle('anchor');
+ assert_equals(anchored.offsetTop, 150);
+ }, 'Animation with anchor() responds to anchor-name change');
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-animation-iacvt.html b/tests/wpt/tests/css/css-anchor-position/anchor-animation-iacvt.html
new file mode 100644
index 00000000000..7341d2fbe24
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-animation-iacvt.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<title>Tests CSS animation of anchor(), IACVT behavior</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ #cb {
+ border: 1px solid black;
+ width: 400px;
+ height: 400px;
+ position: relative;
+ }
+ #anchored {
+ width: 50px;
+ height: 50px;
+ background: skyblue;
+ animation: --anim 9999s linear;
+ position: absolute;
+ top: 42px; /* This should be overwritten by the anim. effect value. */
+ }
+ @keyframes --anim {
+ from { top: anchor(--unknown top); }
+ to { top: anchor(--unknown bottom); }
+ }
+</style>
+<div id=cb>
+ <div id=anchored></div>
+</div>
+<script>
+ test(() => {
+ assert_equals(anchored.offsetTop, 0); // auto
+ }, 'Animation of invalid anchor() with no fallback');
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-animation.html b/tests/wpt/tests/css/css-anchor-position/anchor-animation.html
new file mode 100644
index 00000000000..f3a4eba7ba3
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-animation.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html>
+<title>Tests CSS animation of anchor()</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ #cb {
+ border: 1px solid black;
+ width: 400px;
+ height: 400px;
+ position: relative;
+ }
+ #anchor1, #anchor2 {
+ width: 100px;
+ height: 100px;
+ background: tomato;
+ }
+ #anchor1 {
+ background: coral;
+ anchor-name: --a1;
+ }
+ #anchor2 {
+ background: seagreen;
+ anchor-name: --a2;
+ }
+ #anchored {
+ width: 50px;
+ height: 50px;
+ background: skyblue;
+ animation: --anim 9999s steps(2, start);
+ position: absolute;
+ }
+ @keyframes --anim {
+ from { top: anchor(--a1 top); }
+ to { top: anchor(--a2 bottom); }
+ }
+</style>
+<div id=cb>
+ <div id=anchor1></div>
+ <div id=anchor2></div>
+ <div id=anchored></div>
+</div>
+<script>
+ test(() => {
+ assert_equals(anchored.offsetTop, 100);
+ }, 'Animation with anchor()');
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-getComputedStyle-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-getComputedStyle-003.html
index fc384ab4cdf..d23558aef5b 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-getComputedStyle-003.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-getComputedStyle-003.html
@@ -32,7 +32,7 @@ body {
width: 100px;
height: 100px;
background: lime;
- position-try-options: --pf, --pf2;
+ position-try-fallbacks: --pf, --pf2;
}
@position-try --pf {
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-invalid-fallback.html b/tests/wpt/tests/css/css-anchor-position/anchor-invalid-fallback.html
index 4768beac623..15ccada1794 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-invalid-fallback.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-invalid-fallback.html
@@ -214,7 +214,7 @@ test((t) => {
#target {
left: 9999px; /* Force overflow. */
- position-try-options: --pt flip-block;
+ position-try-fallbacks: --pt flip-block;
}
`;
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-chained-fallback.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-chained-fallback.html
index ab2090e0048..490d43e12d9 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-chained-fallback.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-chained-fallback.html
@@ -29,7 +29,7 @@ div {
position: absolute;
position-anchor: --a1;
background: green;
- position-try-options: --fallback;
+ position-try-fallbacks: --fallback;
anchor-name: --a2;
left: anchor(left);
bottom: anchor(top);
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-001.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-001.html
index e314e9634d9..6341d34f29d 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-001.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-001.html
@@ -36,7 +36,7 @@
position: absolute;
background: green;
position-anchor: --a;
- position-try-options: --f1, --f2;
+ position-try-fallbacks: --f1, --f2;
width: 100px; height: 100px;
/* Above the anchor */
left: anchor(left);
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-002.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-002.html
index 4e281177eb7..777a6a76cd5 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-002.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-002.html
@@ -34,7 +34,7 @@ body {
position-anchor: --a;
top: anchor(top);
left: anchor(right);
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
}
@position-try --pf {
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-003.html
index d35d2ac2699..55b09e87997 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-003.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-003.html
@@ -40,7 +40,7 @@
height: 100px;
background: green;
position-anchor: --a;
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
}
@position-try --pf {
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-004.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-004.html
index cc61a0443c8..9fd3803800b 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-004.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-004.html
@@ -34,7 +34,7 @@ body {
height: 100px;
background: green;
position-anchor: --a;
- position-try-options: --pf1, --pf2;
+ position-try-fallbacks: --pf1, --pf2;
/* Top of the anchor */
bottom: anchor(top);
left: anchor(left);
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-005.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-005.html
index 995010afd4b..2d37c0b622d 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-005.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-005.html
@@ -35,7 +35,7 @@ body {
position-anchor: --a;
top: anchor(top);
left: anchor(right);
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
}
@position-try --pf {
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-007.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-007.html
index 8ac54db0633..7b3941be76a 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-007.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-007.html
@@ -33,7 +33,7 @@ html {
height: 100px;
background: green;
position-anchor: --a;
- position-try-options: --pf1, --pf2, --pf3;
+ position-try-fallbacks: --pf1, --pf2, --pf3;
inset-block-start: anchor(end);
inset-inline-start: anchor(end);
}
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-008.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-008.html
index d95d531a0c3..4447714a122 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-008.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-008.html
@@ -34,7 +34,7 @@ html {
height: 100px;
background: green;
position-anchor: --a;
- position-try-options: --pf1, --pf2, --pf3;
+ position-try-fallbacks: --pf1, --pf2, --pf3;
inset-block-start: anchor(end);
inset-inline-start: anchor(end);
}
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-009.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-009.html
index 94b2c64ecc4..3da8ad9c633 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-009.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-009.html
@@ -33,7 +33,7 @@ html {
height: 100px;
background: green;
position-anchor: --a;
- position-try-options: --pf1, --pf2, --pf3;
+ position-try-fallbacks: --pf1, --pf2, --pf3;
inset-block-start: anchor(end);
inset-inline-start: anchor(end);
}
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-010.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-010.html
index eab81f0340b..3ea49d913be 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-010.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-010.html
@@ -34,7 +34,7 @@ html {
height: 100px;
background: green;
position-anchor: --a;
- position-try-options: --pf1, --pf2, --pf3;
+ position-try-fallbacks: --pf1, --pf2, --pf3;
inset-block-start: anchor(end);
inset-inline-start: anchor(end);
}
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-011.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-011.html
index d13b5485d0f..4cf7fcdd60b 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-011.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-011.html
@@ -46,7 +46,7 @@
height: 100px;
background: green;
position-anchor: --a;
- position-try-options: --pf1, --pf2, --pf3;
+ position-try-fallbacks: --pf1, --pf2, --pf3;
bottom: anchor(top);
left: anchor(right);
}
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-012.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-012.html
index 5e3bf50a6e7..8eff5e4a8fa 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-012.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-012.html
@@ -29,7 +29,7 @@
height: 100px;
background: green;
position-anchor: --a;
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
}
@position-try --pf {
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-013.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-013.html
index 3f1330d744b..0d115c26fc4 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-013.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-013.html
@@ -25,7 +25,7 @@
height: 50px;
inset-area: bottom;
- position-try-options: flip-block;
+ position-try-fallbacks: flip-block;
position-anchor: --a;
}
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-014.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-014.html
index f19f41c0884..3e964e4dbd6 100644
--- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-014.html
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-position-try-014.html
@@ -27,7 +27,7 @@
height: 50px;
inset-area: top;
- position-try-options: flip-block;
+ position-try-fallbacks: flip-block;
position-anchor: --a;
}
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-size-animation.html b/tests/wpt/tests/css/css-anchor-position/anchor-size-animation.html
new file mode 100644
index 00000000000..52e53021c27
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/anchor-size-animation.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<title>Tests CSS animation of anchor-size()</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ #cb {
+ border: 1px solid black;
+ width: 400px;
+ height: 400px;
+ position: relative;
+ }
+ #anchor1, #anchor2 {
+ width: 100px;
+ height: 100px;
+ background: tomato;
+ }
+ #anchor1 {
+ background: coral;
+ anchor-name: --a1;
+ }
+ #anchor2 {
+ background: seagreen;
+ anchor-name: --a2;
+ width: 200px;
+ }
+ #anchored {
+ width: 50px;
+ height: 50px;
+ background: skyblue;
+ animation: --anim 9999s steps(2, start);
+ position: absolute;
+ }
+ @keyframes --anim {
+ from { width: anchor-size(--a1 width); }
+ to { width: anchor-size(--a2 width); }
+ }
+</style>
+<div id=cb>
+ <div id=anchor1></div>
+ <div id=anchor2></div>
+ <div id=anchored></div>
+</div>
+<script>
+ test(() => {
+ assert_equals(anchored.offsetWidth, 150);
+ }, 'Animation with anchor-size()');
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/at-position-try-cssom.html b/tests/wpt/tests/css/css-anchor-position/at-position-try-cssom.html
index 42f82d9d4bd..46ca8f73e92 100644
--- a/tests/wpt/tests/css/css-anchor-position/at-position-try-cssom.html
+++ b/tests/wpt/tests/css/css-anchor-position/at-position-try-cssom.html
@@ -37,7 +37,7 @@ test(t => {
}
#anchor { top: 100px; left: 0; anchor-name: --a; }
#other-anchor { top: 200px; left: 0; anchor-name: --b; }
- #target { position-try-options: --pf; position-anchor: --a; left: 999999px; }
+ #target { position-try-fallbacks: --pf; position-anchor: --a; left: 999999px; }
`);
const positionTryRule = style.sheet.cssRules[0];
diff --git a/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom.html b/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom.html
index 50e67de1aef..18b6d4731ec 100644
--- a/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom.html
+++ b/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation-shadow-dom.html
@@ -12,7 +12,7 @@
<template shadowrootmode="open">
<style>
::slotted(#slotted), :host {
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
position: absolute;
left: 999999px; /* force fallback */
}
diff --git a/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation.html b/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation.html
index 3f7c5062f21..62cd7e1c609 100644
--- a/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation.html
+++ b/tests/wpt/tests/css/css-anchor-position/at-position-try-invalidation.html
@@ -17,7 +17,7 @@
position: absolute;
width: 100px;
height: 100px;
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
left: 999999px; /* force fallback */
}
</style>
@@ -36,7 +36,7 @@
<script>
test(() => {
assert_equals(anchored.offsetLeft, 999999);
- }, "position-try-options initially not matching any rules");
+ }, "position-try-fallbacks initially not matching any rules");
test(() => {
document.getElementById("to-enable").media = "";
diff --git a/tests/wpt/tests/css/css-anchor-position/base-style-invalidation.html b/tests/wpt/tests/css/css-anchor-position/base-style-invalidation.html
index 8e8e69f9b7c..e4e12785790 100644
--- a/tests/wpt/tests/css/css-anchor-position/base-style-invalidation.html
+++ b/tests/wpt/tests/css/css-anchor-position/base-style-invalidation.html
@@ -26,7 +26,7 @@
#anchored {
position: absolute;
position-anchor: --a;
- position-try-options: --pt flip-start;
+ position-try-fallbacks: --pt flip-start;
inset: 0;
top: anchor(top);
bottom: anchor(bottom);
@@ -60,5 +60,5 @@
anchored.classList.toggle('flip');
assert_equals(anchored.offsetLeft, 20);
assert_equals(anchored.offsetTop, 75);
- }, 'The chosen position options changes when the base style differs');
+ }, 'The chosen position fallbacks changes when the base style differs');
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/chrome-1512373-2-crash.html b/tests/wpt/tests/css/css-anchor-position/chrome-1512373-2-crash.html
index 433609766c9..50d0aff5e92 100644
--- a/tests/wpt/tests/css/css-anchor-position/chrome-1512373-2-crash.html
+++ b/tests/wpt/tests/css/css-anchor-position/chrome-1512373-2-crash.html
@@ -6,7 +6,7 @@
#t {
position: absolute;
left: 999999px; /* force fallback */
- position-try-options: --foo;
+ position-try-fallbacks: --foo;
}
</style>
<div id="t"></div>
diff --git a/tests/wpt/tests/css/css-anchor-position/chrome-40286059-crash.html b/tests/wpt/tests/css/css-anchor-position/chrome-40286059-crash.html
index dbbeb5ac4df..cee9d2d9777 100644
--- a/tests/wpt/tests/css/css-anchor-position/chrome-40286059-crash.html
+++ b/tests/wpt/tests/css/css-anchor-position/chrome-40286059-crash.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<link rel="help" href="https://crbug.com/40286059">
<p>Pass if no crash</p>
-<div id="pop" style="position-try-options: --foo" popover></div>
+<div id="pop" style="position-try-fallbacks: --foo" popover></div>
<script>
getComputedStyle(pop).left;
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/inline-grid-try-options-crash.html b/tests/wpt/tests/css/css-anchor-position/inline-grid-try-fallbacks-crash.html
index 712f7f1d481..544ccf1baac 100644
--- a/tests/wpt/tests/css/css-anchor-position/inline-grid-try-options-crash.html
+++ b/tests/wpt/tests/css/css-anchor-position/inline-grid-try-fallbacks-crash.html
@@ -1,12 +1,12 @@
<!DOCTYPE html>
<html class=test-wait>
- <title>CSS Anchor Positioning: Don't crash when animating position and position-try-options in grid</title>
+ <title>CSS Anchor Positioning: Don't crash when animating position and position-try-fallbacks in grid</title>
<link rel="help" href="https://crbug.com/339686368">
<style>
@keyframes --anim {
from {
position: absolute;
- position-try-options: flip-block;
+ position-try-fallbacks: flip-block;
}
}
#parent {
diff --git a/tests/wpt/tests/css/css-anchor-position/inset-area-in-position-try.html b/tests/wpt/tests/css/css-anchor-position/inset-area-in-position-try.html
index 7339c4f41d2..3affc1b30b7 100644
--- a/tests/wpt/tests/css/css-anchor-position/inset-area-in-position-try.html
+++ b/tests/wpt/tests/css/css-anchor-position/inset-area-in-position-try.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: inset-area in @position-try</title>
-<link rel="help" href='https://drafts.csswg.org/css-anchor-position-1/#position-try-options'>
+<link rel="help" href='https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks'>
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
<style>
@@ -56,14 +56,14 @@ function test_inset_area_ref(inset_area) {
inset-area: ${inset_area};
}
#target {
- position-try-options: --pt;
+ position-try-fallbacks: --pt;
}
#ref {
inset-area: ${inset_area};
}
`;
assert_true(CSS.supports('inset-area', 'top left'));
- assert_true(CSS.supports('position-try-options', '--x'));
+ assert_true(CSS.supports('position-try-fallbacks', '--x'));
assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft');
assert_equals(target.offsetTop, ref.offsetTop, 'offsetTop');
}, `${inset_area}`);
@@ -138,11 +138,11 @@ test_inset_area_ref('span-bottom span-all');
</style>
<script>
-// Test that an element with the specified position-try-options is placed
+// Test that an element with the specified position-try-fallbacks is placed
// at the same position as a reference element with inset-area:`expected`.
// This test uses #target/#ref size of 60x60px, which causes overflow if
// if we attempt the --right and --bottom positions.
-function test_inset_area_placement(position_try_options, expected) {
+function test_inset_area_placement(position_try_fallbacks, expected) {
test((t) => {
style.textContent = `
#target, #ref {
@@ -150,17 +150,17 @@ function test_inset_area_placement(position_try_options, expected) {
height: 60px;
}
#target {
- position-try-options: ${position_try_options};
+ position-try-fallbacks: ${position_try_fallbacks};
}
#ref {
inset-area: ${expected};
}
`;
assert_true(CSS.supports('inset-area', 'top left'));
- assert_true(CSS.supports('position-try-options', '--x'));
+ assert_true(CSS.supports('position-try-fallbacks', '--x'));
assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft');
assert_equals(target.offsetTop, ref.offsetTop, 'offsetTop');
- }, `Placement: ${position_try_options}`);
+ }, `Placement: ${position_try_fallbacks}`);
}
test_inset_area_placement('--top', 'top');
diff --git a/tests/wpt/tests/css/css-anchor-position/inset-area-function.html b/tests/wpt/tests/css/css-anchor-position/inset-area-value.html
index 9d68bf9ddf4..27c5882fc6e 100644
--- a/tests/wpt/tests/css/css-anchor-position/inset-area-function.html
+++ b/tests/wpt/tests/css/css-anchor-position/inset-area-value.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<title>CSS Anchor Positioning: inset-area()</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-options">
+<title>CSS Anchor Positioning: <'inset-area'> value</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -40,32 +40,32 @@
</div>
<script>
-// Test that a given inset-area() produces the same result as a reference
+// Test that a given <'inset-area'> produces the same result as a reference
// element that is styled with an inset-area declaration directly.
-function test_inset_area_fn(inset_area_function, inset_area_expected) {
+function test_inset_area_fn(inset_area) {
test((t) => {
t.add_cleanup(() => {
style.textContent = '';
});
style.textContent = `
#target {
- position-try-options: ${inset_area_function};
+ position-try-fallbacks: ${inset_area};
}
#ref {
- inset-area: ${inset_area_expected};
+ inset-area: ${inset_area};
}
`;
assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft');
assert_equals(target.offsetTop, ref.offsetTop, 'offsetTop');
- }, `${inset_area_function}, ${inset_area_expected}`);
+ }, `${inset_area}`);
}
-test_inset_area_fn('inset-area(top left)', 'top left');
-test_inset_area_fn('inset-area(span-top left)', 'span-top left');
-test_inset_area_fn('inset-area(top span-left)', 'top span-left');
-test_inset_area_fn('inset-area(top center)', 'top center');
-test_inset_area_fn('inset-area(left center)', 'left center');
-test_inset_area_fn('inset-area(start center)', 'start center');
-test_inset_area_fn('inset-area(center start)', 'center start');
+test_inset_area_fn('top left');
+test_inset_area_fn('span-top left');
+test_inset_area_fn('top span-left');
+test_inset_area_fn('top center');
+test_inset_area_fn('left center');
+test_inset_area_fn('start center');
+test_inset_area_fn('center start');
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/last-successful-basic.html b/tests/wpt/tests/css/css-anchor-position/last-successful-basic.html
index b88b9ec77dc..cda0eed6fba 100644
--- a/tests/wpt/tests/css/css-anchor-position/last-successful-basic.html
+++ b/tests/wpt/tests/css/css-anchor-position/last-successful-basic.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<title>CSS Anchor Positioning: basic last successful position option</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-option">
+<title>CSS Anchor Positioning: basic last successful position fallback</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/test-common.js"></script>
@@ -22,7 +22,7 @@
}
#anchored {
position-anchor: --a;
- position-try-options: flip-block;
+ position-try-fallbacks: flip-block;
position: absolute;
width: 100px;
height: 200px;
@@ -53,5 +53,5 @@
await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame();
assert_equals(anchored.offsetTop, 0);
- }, "Base position without option now successful");
+ }, "Base position without fallback now successful");
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/last-successful-change-options.html b/tests/wpt/tests/css/css-anchor-position/last-successful-change-fallbacks.html
index 86df1afa67a..ed4f8a43626 100644
--- a/tests/wpt/tests/css/css-anchor-position/last-successful-change-options.html
+++ b/tests/wpt/tests/css/css-anchor-position/last-successful-change-fallbacks.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<title>CSS Anchor Positioning: changing position-try-options invalidates last successful position option</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-option">
+<title>CSS Anchor Positioning: changing position-try-fallbacks invalidates last successful position fallback</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/test-common.js"></script>
@@ -22,7 +22,7 @@
}
#anchored {
position-anchor: --a;
- position-try-options: flip-block;
+ position-try-fallbacks: flip-block;
position: absolute;
width: 100px;
height: 200px;
@@ -49,9 +49,9 @@
}, "No successful position, keep flip-block");
promise_test(async () => {
- anchored.style.positionTryOptions = "flip-block, --foo";
+ anchored.style.positionTryFallbacks = "flip-block, --foo";
await waitUntilNextAnimationFrame();
await waitUntilNextAnimationFrame();
assert_equals(anchored.offsetTop, -50);
- }, "No successful position, last successful invalidated by position-try-options change");
+ }, "No successful position, last successful invalidated by position-try-fallbacks change");
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/last-successful-change-try-rule.html b/tests/wpt/tests/css/css-anchor-position/last-successful-change-try-rule.html
index c0560ea1132..205aba014c3 100644
--- a/tests/wpt/tests/css/css-anchor-position/last-successful-change-try-rule.html
+++ b/tests/wpt/tests/css/css-anchor-position/last-successful-change-try-rule.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
-<title>CSS Anchor Positioning: changing @position-try rules invalidates last successful position option</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-option">
+<title>CSS Anchor Positioning: changing @position-try rules invalidates last successful position fallback</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/test-common.js"></script>
@@ -22,7 +22,7 @@
}
#anchored {
position-anchor: --a;
- position-try-options: --try;
+ position-try-fallbacks: --try;
position: absolute;
width: 100px;
height: 200px;
diff --git a/tests/wpt/tests/css/css-anchor-position/last-successful-intermediate-ignored.html b/tests/wpt/tests/css/css-anchor-position/last-successful-intermediate-ignored.html
index a2876191559..82bf1e8aca9 100644
--- a/tests/wpt/tests/css/css-anchor-position/last-successful-intermediate-ignored.html
+++ b/tests/wpt/tests/css/css-anchor-position/last-successful-intermediate-ignored.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: last successful updated on resizeObserver timing</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-option">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position/#last-successful-position-fallback">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/test-common.js"></script>
@@ -22,7 +22,7 @@
}
#anchored {
position-anchor: --a;
- position-try-options: flip-block;
+ position-try-fallbacks: flip-block;
position: absolute;
width: 100px;
height: 200px;
diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-computed.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-computed.html
new file mode 100644
index 00000000000..2a5cf605c0a
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-computed.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Anchor Positioning Test: Computed position-try</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-prop">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<div id="target"></div>
+<script>
+ test_computed_value("position-try", "none");
+ test_computed_value("position-try", "normal none", "none");
+ test_computed_value("position-try", "flip-block");
+ test_computed_value("position-try", "most-width none");
+ test_computed_value("position-try", "most-height flip-block, flip-inline");
+ test_computed_value("position-try", "most-width --foo, --bar");
+ test_computed_value("position-try", "normal --foo", "--foo");
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-computed.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-computed.html
new file mode 100644
index 00000000000..ed189016c1d
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-computed.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Anchor Positioning Test: Computed position-try-fallbacks</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/computed-testcommon.js"></script>
+<script src="/css/support/inheritance-testcommon.js"></script>
+<div id="container">
+ <div id="target"></div>
+</div>
+<script>
+ test_computed_value("position-try-fallbacks", "none");
+ test_computed_value("position-try-fallbacks", "flip-block");
+ test_computed_value("position-try-fallbacks", "flip-inline");
+ test_computed_value("position-try-fallbacks", "flip-start");
+ test_computed_value("position-try-fallbacks", "flip-block, flip-inline");
+ test_computed_value("position-try-fallbacks", "--foo, --bar");
+ test_computed_value("position-try-fallbacks", "flip-start flip-inline flip-block");
+ test_computed_value("position-try-fallbacks", "flip-start --flop", "--flop flip-start");
+ test_computed_value("position-try-fallbacks", "--flop flip-start");
+ test_computed_value("position-try-fallbacks", "left top");
+ test_computed_value("position-try-fallbacks", "top left", "left top");
+ test_computed_value("position-try-fallbacks", "start start", "start");
+ test_computed_value("position-try-fallbacks", "left, right");
+ test_computed_value("position-try-fallbacks", "--foo, left");
+ test_computed_value("position-try-fallbacks", "--foo, left, --bar");
+ test_computed_value("position-try-fallbacks", "--foo, flip-start, left");
+ test_computed_value("position-try-fallbacks", "--foo flip-start, left");
+ test_computed_value("position-try-fallbacks", "left, --bar flip-start");
+
+ assert_not_inherited("position-try-fallbacks", "none", "flip-inline");
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing.html
new file mode 100644
index 00000000000..4c64b77ca27
--- /dev/null
+++ b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-fallbacks-parsing.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Anchor Positioning Test: Parsing of position-try-fallbacks</title>
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+<div id="target"></div>
+<script>
+ test_valid_value("position-try-fallbacks", "initial");
+ test_valid_value("position-try-fallbacks", "inherit");
+ test_valid_value("position-try-fallbacks", "unset");
+ test_valid_value("position-try-fallbacks", "revert");
+ test_valid_value("position-try-fallbacks", "none");
+ test_valid_value("position-try-fallbacks", "flip-block");
+ test_valid_value("position-try-fallbacks", "flip-block ", 'flip-block');
+ test_valid_value("position-try-fallbacks", "flip-start, flip-block");
+ test_valid_value("position-try-fallbacks", "flip-start flip-inline, flip-block");
+ test_valid_value("position-try-fallbacks", "flip-start, flip-start");
+ test_valid_value("position-try-fallbacks", "flip-start flip-inline flip-block");
+ test_valid_value("position-try-fallbacks", "flip-block, --foo");
+ test_valid_value("position-try-fallbacks", "--bar, flip-block flip-start");
+ test_valid_value("position-try-fallbacks", "--foo, --bar, --baz");
+ test_valid_value("position-try-fallbacks", "--bar flip-block");
+ test_valid_value("position-try-fallbacks", "--bar flip-inline flip-block");
+ test_valid_value("position-try-fallbacks", "flip-inline --foo", "--foo flip-inline");
+ test_valid_value("position-try-fallbacks", "flip-inline flip-start --foo", "--foo flip-inline flip-start");
+ test_valid_value("position-try-fallbacks", "left top");
+ test_valid_value("position-try-fallbacks", "top left", "left top");
+ test_valid_value("position-try-fallbacks", "start start", "start");
+ test_valid_value("position-try-fallbacks", "left, right");
+ test_valid_value("position-try-fallbacks", "--foo, left");
+ test_valid_value("position-try-fallbacks", "--foo, left, --bar");
+ test_valid_value("position-try-fallbacks", "--foo, flip-start, left");
+ test_valid_value("position-try-fallbacks", "--foo flip-start, left");
+ test_valid_value("position-try-fallbacks", "left, --bar flip-start");
+
+ test_invalid_value("position-try-fallbacks", "none, flip-start");
+ test_invalid_value("position-try-fallbacks", "flip-block flip-block");
+ test_invalid_value("position-try-fallbacks", "flip-block flip-inline flip-inline");
+ test_invalid_value("position-try-fallbacks", "flip-block, flip-inline flip-inline");
+ test_invalid_value("position-try-fallbacks", "--bar flip-block --foo");
+ test_invalid_value("position-try-fallbacks", "--foo --bar");
+ test_invalid_value("position-try-fallbacks", "flip-inline --bar flip-block");
+ test_invalid_value("position-try-fallbacks", "-foo");
+ test_invalid_value("position-try-fallbacks", "foo");
+ test_invalid_value("position-try-fallbacks", "flip-start 123");
+ test_invalid_value("position-try-fallbacks", "--foo 123");
+ test_invalid_value("position-try-fallbacks", "--foo left");
+ test_invalid_value("position-try-fallbacks", "flip-start left");
+ test_invalid_value("position-try-fallbacks", "left --foo ");
+ test_invalid_value("position-try-fallbacks", "left flip-start");
+ test_invalid_value("position-try-fallbacks", "--foo, none");
+</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-computed.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-computed.html
deleted file mode 100644
index 91b27d4f317..00000000000
--- a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-computed.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Anchor Positioning Test: Computed position-try-options</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-options">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/css/support/computed-testcommon.js"></script>
-<script src="/css/support/inheritance-testcommon.js"></script>
-<div id="container">
- <div id="target"></div>
-</div>
-<script>
- test_computed_value("position-try-options", "none");
- test_computed_value("position-try-options", "flip-block");
- test_computed_value("position-try-options", "flip-inline");
- test_computed_value("position-try-options", "flip-start");
- test_computed_value("position-try-options", "flip-block, flip-inline");
- test_computed_value("position-try-options", "--foo, --bar");
- test_computed_value("position-try-options", "flip-start flip-inline flip-block");
- test_computed_value("position-try-options", "flip-start --flop", "--flop flip-start");
- test_computed_value("position-try-options", "--flop flip-start");
- test_computed_value("position-try-options", "inset-area(left top)");
- test_computed_value("position-try-options", "inset-area(top left)", "inset-area(left top)");
- test_computed_value("position-try-options", "inset-area(start start)", "inset-area(start)");
- test_computed_value("position-try-options", "inset-area(left), inset-area(right)");
- test_computed_value("position-try-options", "--foo, inset-area(left)");
- test_computed_value("position-try-options", "--foo, inset-area(left), --bar");
- test_computed_value("position-try-options", "--foo, flip-start, inset-area(left)");
- test_computed_value("position-try-options", "--foo flip-start, inset-area(left)");
- test_computed_value("position-try-options", "inset-area(left), --bar flip-start");
-
- assert_not_inherited("position-try-options", "none", "flip-inline");
-</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-parsing.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-parsing.html
deleted file mode 100644
index 375bef170c1..00000000000
--- a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-options-parsing.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>CSS Anchor Positioning Test: Parsing of position-try-options</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#position-try-options">
-<script src="/resources/testharness.js"></script>
-<script src="/resources/testharnessreport.js"></script>
-<script src="/css/support/parsing-testcommon.js"></script>
-<div id="target"></div>
-<script>
- test_valid_value("position-try-options", "initial");
- test_valid_value("position-try-options", "inherit");
- test_valid_value("position-try-options", "unset");
- test_valid_value("position-try-options", "revert");
- test_valid_value("position-try-options", "none");
- test_valid_value("position-try-options", "flip-block");
- test_valid_value("position-try-options", "flip-block ", 'flip-block');
- test_valid_value("position-try-options", "flip-start, flip-block");
- test_valid_value("position-try-options", "flip-start flip-inline, flip-block");
- test_valid_value("position-try-options", "flip-start, flip-start");
- test_valid_value("position-try-options", "flip-start flip-inline flip-block");
- test_valid_value("position-try-options", "flip-block, --foo");
- test_valid_value("position-try-options", "--bar, flip-block flip-start");
- test_valid_value("position-try-options", "--foo, --bar, --baz");
- test_valid_value("position-try-options", "--bar flip-block");
- test_valid_value("position-try-options", "--bar flip-inline flip-block");
- test_valid_value("position-try-options", "flip-inline --foo", "--foo flip-inline");
- test_valid_value("position-try-options", "flip-inline flip-start --foo", "--foo flip-inline flip-start");
- test_valid_value("position-try-options", "left top");
- test_valid_value("position-try-options", "top left", "left top");
- test_valid_value("position-try-options", "start start", "start");
- test_valid_value("position-try-options", "left, right");
- test_valid_value("position-try-options", "--foo, left");
- test_valid_value("position-try-options", "--foo, left, --bar");
- test_valid_value("position-try-options", "--foo, flip-start, left");
- test_valid_value("position-try-options", "--foo flip-start, left");
- test_valid_value("position-try-options", "left, --bar flip-start");
-
- test_invalid_value("position-try-options", "none, flip-start");
- test_invalid_value("position-try-options", "flip-block flip-block");
- test_invalid_value("position-try-options", "flip-block flip-inline flip-inline");
- test_invalid_value("position-try-options", "flip-block, flip-inline flip-inline");
- test_invalid_value("position-try-options", "--bar flip-block --foo");
- test_invalid_value("position-try-options", "--foo --bar");
- test_invalid_value("position-try-options", "flip-inline --bar flip-block");
- test_invalid_value("position-try-options", "-foo");
- test_invalid_value("position-try-options", "foo");
- test_invalid_value("position-try-options", "flip-start 123");
- test_invalid_value("position-try-options", "--foo 123");
- test_invalid_value("position-try-options", "--foo left");
- test_invalid_value("position-try-options", "flip-start left");
- test_invalid_value("position-try-options", "left --foo ");
- test_invalid_value("position-try-options", "left flip-start");
- test_invalid_value("position-try-options", "--foo, none");
-</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-parsing.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-parsing.html
index 7f504597106..ef0ede045a4 100644
--- a/tests/wpt/tests/css/css-anchor-position/parsing/position-try-parsing.html
+++ b/tests/wpt/tests/css/css-anchor-position/parsing/position-try-parsing.html
@@ -23,22 +23,22 @@
test_shorthand_value("position-try", "flip-inline", {
"position-try-order": "normal",
- "position-try-options": "flip-inline",
+ "position-try-fallbacks": "flip-inline",
});
test_shorthand_value("position-try", "most-width none", {
"position-try-order": "most-width",
- "position-try-options": "none",
+ "position-try-fallbacks": "none",
});
test_shorthand_value("position-try", "--foo, --bar", {
"position-try-order": "normal",
- "position-try-options": "--foo, --bar",
+ "position-try-fallbacks": "--foo, --bar",
});
test_shorthand_value("position-try", "most-inline-size --foo, flip-inline", {
"position-try-order": "most-inline-size",
- "position-try-options": "--foo, flip-inline",
+ "position-try-fallbacks": "--foo, flip-inline",
});
test_shorthand_value("position-try", "most-inline-size flip-inline flip-block, --foo, --bar", {
"position-try-order": "most-inline-size",
- "position-try-options": "flip-inline flip-block, --foo, --bar",
+ "position-try-fallbacks": "flip-inline flip-block, --foo, --bar",
});
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/position-anchor-001.html b/tests/wpt/tests/css/css-anchor-position/position-anchor-001.html
index d927b6b902c..b0a964485c6 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-anchor-001.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-anchor-001.html
@@ -13,7 +13,7 @@
.target {
position: fixed;
background: lime;
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
left: 999999px; /* force fallback */
}
diff --git a/tests/wpt/tests/css/css-anchor-position/position-anchor-002.html b/tests/wpt/tests/css/css-anchor-position/position-anchor-002.html
index d55338e1e97..a9248ef694f 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-anchor-002.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-anchor-002.html
@@ -13,7 +13,7 @@
.target {
position: fixed;
background: lime;
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
left: 999999px; /* force fallback */
}
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-001.html b/tests/wpt/tests/css/css-anchor-position/position-try-001.html
index 47fcbb83939..739e09f6a7b 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-001.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-001.html
@@ -26,7 +26,7 @@
}
.target {
position: absolute;
- position-try-options: --f1, --f2, --f3, --f4;
+ position-try-fallbacks: --f1, --f2, --f3, --f4;
width: 40px;
height: 15px;
margin: 5px;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-002.html b/tests/wpt/tests/css/css-anchor-position/position-try-002.html
index c3d550adb1e..a97f9ecbab0 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-002.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-002.html
@@ -22,7 +22,7 @@
}
.target {
position: absolute;
- position-try-options: --f1, --f2;
+ position-try-fallbacks: --f1, --f2;
width: min-content;
height: 100px;
background: orange;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-003.html b/tests/wpt/tests/css/css-anchor-position/position-try-003.html
index 196b7b0304b..a0d4c139383 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-003.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-003.html
@@ -42,7 +42,7 @@ body { margin: 0; }
containing block, so that the first two positions will exceed the end edges
of the IMCB, and the last position will be used. */
.exceeds-end {
- position-try-options: --exceeds-end-1, --exceeds-end-2;
+ position-try-fallbacks: --exceeds-end-1, --exceeds-end-2;
left: 0;
right: anchor(--a left);
width: 100px;
@@ -68,7 +68,7 @@ body { margin: 0; }
of its containing block, so that the first two positions will exceed the
start edges of the IMCB, and the last position will be used. */
.exceeds-start {
- position-try-options: --exceeds-start-1, --exceeds-start-2;
+ position-try-fallbacks: --exceeds-start-1, --exceeds-start-2;
bottom: 0;
top: anchor(--a bottom);
height: 100px;
@@ -92,7 +92,7 @@ body { margin: 0; }
/* Both inset sides are `auto`, but the size is too big to fit in the containing
block. */
.exceeds-size {
- position-try-options: --exceeds-size-1, --exceeds-size-2;
+ position-try-fallbacks: --exceeds-size-1, --exceeds-size-2;
top: anchor(--a bottom);
left: auto;
right: auto;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-004.html b/tests/wpt/tests/css/css-anchor-position/position-try-004.html
index b172f2e8bf3..ded0efb4e65 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-004.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-004.html
@@ -33,7 +33,7 @@ body {
width: 100px;
height: 100px;
background: lime;
- position-try-options: --fallback;
+ position-try-fallbacks: --fallback;
top: anchor(--a top);
right: anchor(--a left);
margin-top: 10px;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-backdrop.html b/tests/wpt/tests/css/css-anchor-position/position-try-backdrop.html
index 6bf2262c69a..93b1b81ecc4 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-backdrop.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-backdrop.html
@@ -1,5 +1,5 @@
<!DOCTYPE html>
-<title>CSS Anchor Positioning: position-try-options on ::backdrop</title>
+<title>CSS Anchor Positioning: position-try-fallbacks on ::backdrop</title>
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#fallback-apply">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@@ -19,7 +19,7 @@
width:100px;
height:100px;
left: 9999px; /* Force overflow */
- position-try-options: --pt;
+ position-try-fallbacks: --pt;
}
</style>
<div id=anchor>Anchor</div>
@@ -29,5 +29,5 @@
dialog.showModal();
let style = getComputedStyle(dialog, '::backdrop');
assert_equals(style.left, '300px');
- }, '::backdrop can use position-try-options');
+ }, '::backdrop can use position-try-fallbacks');
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-cascade-layer-reorder.html b/tests/wpt/tests/css/css-anchor-position/position-try-cascade-layer-reorder.html
index 4f38806f604..dc707e11ca8 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-cascade-layer-reorder.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-cascade-layer-reorder.html
@@ -21,7 +21,7 @@ body { margin: 0; }
width: 100px;
height: 100px;
color: lime;
- position-try-options: --fallback;
+ position-try-fallbacks: --fallback;
left: 999999px; /* force fallback */
}
</style>
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-cascade.html b/tests/wpt/tests/css/css-anchor-position/position-try-cascade.html
index d73ddd586a5..bec0aa1bf41 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-cascade.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-cascade.html
@@ -18,7 +18,7 @@
top: 0px;
width: 150px; /* force fallback */
height: 25px;
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
}
@position-try --pf {
width: 50px;
@@ -106,7 +106,7 @@
<!-- revert / revert-layer -->
<style>
#abs_revert {
- position-try-options: --pf-revert;
+ position-try-fallbacks: --pf-revert;
}
@layer author-layer {
#abs_revert {
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-container-query.html b/tests/wpt/tests/css/css-anchor-position/position-try-container-query.html
index 528217c917c..e5acc8b9854 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-container-query.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-container-query.html
@@ -13,7 +13,7 @@
#target1 {
container-type: inline-size;
container-name: target1;
- position-try-options: --fallback1;
+ position-try-fallbacks: --fallback1;
background: green;
position: absolute;
top: 0px;
@@ -37,7 +37,7 @@
#target2 {
container-type: inline-size;
container-name: target2;
- position-try-options: --fallback2, --fallback3;
+ position-try-fallbacks: --fallback2, --fallback3;
background: orange;
position: absolute;
top: 0px;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-custom-property.html b/tests/wpt/tests/css/css-anchor-position/position-try-custom-property.html
index 69ca0d12f43..aee288bce41 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-custom-property.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-custom-property.html
@@ -26,7 +26,7 @@
}
.target {
position: absolute;
- position-try-options: --fallback1;
+ position-try-fallbacks: --fallback1;
width: 40px;
height: 15px;
margin: 5px;
@@ -35,10 +35,10 @@
--top: anchor(--a1 top);
}
.fallback1 {
- position-try-options: --fallback1;
+ position-try-fallbacks: --fallback1;
}
.fallback2 {
- position-try-options: --fallback2;
+ position-try-fallbacks: --fallback2;
}
@position-try --fallback1 {
/* Position to the right of the anchor. */
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-dynamic.html b/tests/wpt/tests/css/css-anchor-position/position-try-dynamic.html
index fad3db62a31..016b8023e6f 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-dynamic.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-dynamic.html
@@ -1,5 +1,5 @@
<!DOCTYPE html>
-<title>CSS Anchor Positioning Test: Dynamically change position via position-try-options property</title>
+<title>CSS Anchor Positioning Test: Dynamically change position via position-try-fallbacks property</title>
<link rel="help" href="https://drafts.csswg.org/css-anchor-1/#fallback">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@@ -29,7 +29,7 @@
}, "Initial static left position is 0");
test(() => {
- anchored.style.positionTryOptions = "--fallback1";
+ anchored.style.positionTryFallbacks = "--fallback1";
assert_equals(anchored.offsetLeft, 100);
}, "Left position set to right edge of anchor with @position-try");
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-options-limit.html b/tests/wpt/tests/css/css-anchor-position/position-try-fallbacks-limit.html
index 32a4f592fa0..1b1e76e12c8 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-options-limit.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-fallbacks-limit.html
@@ -1,5 +1,5 @@
<!DOCTYPE html>
-<title>CSS Anchor Positioning Test: position options list limit</title>
+<title>CSS Anchor Positioning Test: position fallbacks list limit</title>
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#fallback-apply">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
@@ -22,9 +22,9 @@
}
#t1 {
/* If --foo is not found, we should still try --bar even if we limit the
- number of applied position options to five because the --foo's are not
- added to the `position options list` per spec. */
- position-try-options: --foo, --foo, --foo, --foo, --foo, --foo, --foo, --bar;
+ number of applied position fallbacks to five because the --foo's are not
+ added to the `position fallbacks list` per spec. */
+ position-try-fallbacks: --foo, --foo, --foo, --foo, --foo, --foo, --foo, --bar;
}
/* --f1 .. --f4 all overflowing #container */
@@ -34,7 +34,7 @@
@position-try --f4 { left: 10px; }
@position-try --f5 { left: 20px; width: 20px; /* not overflowing #container */ }
#t2 {
- position-try-options: --f1, --f2, --f3, --f4, --f5;
+ position-try-fallbacks: --f1, --f2, --f3, --f4, --f5;
}
</style>
@@ -44,10 +44,10 @@
</div>
<script>
test(() => {
- assert_equals(t1.offsetLeft, 0, "The --bar try option should be applied");
- }, "Try options which are not found are not part of the limit");
+ assert_equals(t1.offsetLeft, 0, "The --bar try fallback should be applied");
+ }, "Try fallbacks which are not found are not part of the limit");
test(() => {
- assert_equals(t2.offsetLeft, 20, "The --f5 try option should be applied");
- }, "Must support At least five try options");
+ assert_equals(t2.offsetLeft, 20, "The --f5 try fallback should be applied");
+ }, "Must support At least five try fallbacks");
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-grid-001.html b/tests/wpt/tests/css/css-anchor-position/position-try-grid-001.html
index 74888f25486..08b88fd59f2 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-grid-001.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-grid-001.html
@@ -33,7 +33,7 @@
grid-column: 2 / 4;
grid-row: 2 / 4;
position: absolute;
- position-try-options: --f1, --f2, --f3;
+ position-try-fallbacks: --f1, --f2, --f3;
width: 100px;
height: 100px;
background: lime;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-initial-transition.html b/tests/wpt/tests/css/css-anchor-position/position-try-initial-transition.html
index 0e81607ae65..163e2dc3b6d 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-initial-transition.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-initial-transition.html
@@ -20,7 +20,7 @@
left: 10px;
width: 150px; /* force fallback */
height: 25px;
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
transition-property: top, left;
transition-duration: 10s;
transition-timing-function: steps(2, start);
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-invalid-anchor-crash.html b/tests/wpt/tests/css/css-anchor-position/position-try-invalid-anchor-crash.html
index dc09bb4b3f8..27ea1942a34 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-invalid-anchor-crash.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-invalid-anchor-crash.html
@@ -3,4 +3,4 @@
<style>
@position-try --f1 { top: 50px; }
</style>
-<div style="position: absolute; position-anchor: --x; position-try-options: --f1">INVALID ANCHOR</div>
+<div style="position: absolute; position-anchor: --x; position-try-fallbacks: --f1">INVALID ANCHOR</div>
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html b/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html
index d1c74e7b9fd..c7705a71bbb 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-order-basic.html
@@ -147,7 +147,7 @@ test_order('--left', '--left');
test_order('--top', '--top');
test_order('--bottom', '--bottom');
-// position-try-order:normal just picks the first option.
+// position-try-order:normal just picks the first fallback.
test_order('--right, --left, --bottom, --top', '--right');
test_order('normal --right, --left, --bottom, --top', '--right');
test_order('normal --top, --left, --bottom, --right', '--top');
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-area.html b/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-area.html
index 98e606a7d8f..71ae5d78deb 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-area.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-area.html
@@ -146,7 +146,7 @@ test_inset_area_order('--left', '--left');
test_inset_area_order('--top', '--top');
test_inset_area_order('--bottom', '--bottom');
-// position-try-order:normal just picks the first option.
+// position-try-order:normal just picks the first fallback.
test_inset_area_order('--right, --left, --bottom, --top', '--right');
test_inset_area_order('normal --right, --left, --bottom, --top', '--right');
test_inset_area_order('normal --top, --left, --bottom, --right', '--top');
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-position-anchor.html b/tests/wpt/tests/css/css-anchor-position/position-try-position-anchor.html
index 7355c23f53b..d26dfd9f2b5 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-position-anchor.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-position-anchor.html
@@ -29,7 +29,7 @@
width: 300px;
height: 100px;
position-anchor: --a;
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
}
@position-try --pf {
position-anchor: --b;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-pseudo-element.html b/tests/wpt/tests/css/css-anchor-position/position-try-pseudo-element.html
index 5895f2a4077..23c572a4104 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-pseudo-element.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-pseudo-element.html
@@ -12,7 +12,7 @@
left: 999999px; /* force fallback */
}
#target::before {
- position-try-options: --f1, --f2;
+ position-try-fallbacks: --f1, --f2;
background: lime;
position: absolute;
left: 200px;
@@ -22,7 +22,7 @@
content: "";
}
#target::after {
- position-try-options: --f1, --f2;
+ position-try-fallbacks: --f1, --f2;
background: green;
position: absolute;
left: 100px;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-switch-from-fixed-anchor.html b/tests/wpt/tests/css/css-anchor-position/position-try-switch-from-fixed-anchor.html
index 904aa55180d..df398e0090d 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-switch-from-fixed-anchor.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-switch-from-fixed-anchor.html
@@ -32,7 +32,7 @@ body {
#anchored {
position-anchor: --anchor1;
inset-area: top;
- position-try-options: --fixed;
+ position-try-fallbacks: --fixed;
position: fixed;
width: 50px;
height: 50px;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-switch-to-fixed-anchor.html b/tests/wpt/tests/css/css-anchor-position/position-try-switch-to-fixed-anchor.html
index 54fcb2e4df3..469064e7e28 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-switch-to-fixed-anchor.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-switch-to-fixed-anchor.html
@@ -31,7 +31,7 @@ body {
#anchored {
position-anchor: --anchor1;
inset-area: top;
- position-try-options: --fixed;
+ position-try-fallbacks: --fixed;
position: fixed;
width: 50px;
height: 50px;
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-transition-basic.html b/tests/wpt/tests/css/css-anchor-position/position-try-transition-basic.html
index 3bb982f073a..eb4222090bd 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-transition-basic.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-transition-basic.html
@@ -20,7 +20,7 @@
width: 50px;
height: 50px;
background: skyblue;
- position-try-options: --200;
+ position-try-fallbacks: --200;
}
#target.anim {
transition: left 1000s steps(2, start);
@@ -43,7 +43,7 @@
assert_equals(target.offsetLeft, 300);
cb.classList.add('shrink');
target.classList.add('anim');
- // Now we take the --200 option:
+ // Now we take the --200 fallback:
assert_equals(target.offsetLeft, 250);
}, 'Transition when @position-try is applied');
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-transition-flip.html b/tests/wpt/tests/css/css-anchor-position/position-try-transition-flip.html
index 6adacadfd42..e8e692a7295 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-transition-flip.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-transition-flip.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: Transition to a flipped state</title>
<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#fallback-apply">
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -32,7 +32,7 @@
width: 50px;
height: 50px;
background: skyblue;
- position-try-options: flip-start;
+ position-try-fallbacks: flip-start;
}
#target.anim {
transition: left 1000s steps(2, start);
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-tree-scoped.html b/tests/wpt/tests/css/css-anchor-position/position-try-tree-scoped.html
index d0c94fd6797..b1cec4e4ef2 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-tree-scoped.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-tree-scoped.html
@@ -18,9 +18,9 @@
left: 999999px; /* force fallback */
}
- #doc_pf_doc { position-try-options: --doc; }
- #doc_pf_outer { position-try-options: --outer; }
- #doc_pf_inner { position-options: --inner; }
+ #doc_pf_doc { position-try-fallbacks: --doc; }
+ #doc_pf_outer { position-try-fallbacks: --outer; }
+ #doc_pf_inner { position-try-fallbacks: --inner; }
</style>
<div id="doc_pf_doc" class="abs"></div>
@@ -38,9 +38,9 @@
left: 999999px; /* force fallback */
}
- #outer_pf_doc { position-try-options: --doc; }
- #outer_pf_outer { position-try-options: --outer; }
- #outer_pf_inner { position-try-options: --inner; }
+ #outer_pf_doc { position-try-fallbacks: --doc; }
+ #outer_pf_outer { position-try-fallbacks: --outer; }
+ #outer_pf_inner { position-try-fallbacks: --inner; }
</style>
<div id="outer_pf_doc" class="abs"></div>
<div id="outer_pf_outer" class="abs"></div>
@@ -57,9 +57,9 @@
left: 999999px; /* force fallback */
}
- #inner_pf_doc { position-try-options: --doc; }
- #inner_pf_outer { position-try-options: --outer; }
- #inner_pf_inner { position-try-options: --inner; }
+ #inner_pf_doc { position-try-fallbacks: --doc; }
+ #inner_pf_outer { position-try-fallbacks: --outer; }
+ #inner_pf_inner { position-try-fallbacks: --inner; }
</style>
<div id="inner_pf_doc" class="abs"></div>
<div id="inner_pf_outer" class="abs"></div>
@@ -78,7 +78,7 @@
left: 1px;
}
#host_slotted_part::part(part) {
- position-try-options: --host-slot-part;
+ position-try-fallbacks: --host-slot-part;
}
</style>
<div id="host_slotted_part">
@@ -90,7 +90,7 @@
::slotted(#slotted), :host {
position: absolute;
left: 999999px; /* force fallback */
- position-try-options: --host-slot-part;
+ position-try-fallbacks: --host-slot-part;
}
#part {
position: absolute;
@@ -107,42 +107,42 @@
<script>
test(() => {
assert_equals(doc_pf_doc.offsetLeft, 100);
- }, "Document position-try-options matches @position-try in document scope");
+ }, "Document position-try-fallbacks matches @position-try in document scope");
test(() => {
assert_equals(doc_pf_outer.offsetLeft, 999999);
- }, "Document position-try-options does not match @position-try in #outer_host scope");
+ }, "Document position-try-fallbacks does not match @position-try in #outer_host scope");
test(() => {
assert_equals(doc_pf_inner.offsetLeft, 999999);
- }, "Document position-try-options does not match @position-try in #inner_host scope");
+ }, "Document position-try-fallbacks does not match @position-try in #inner_host scope");
const outer_root = outer_host.shadowRoot;
const inner_root = outer_root.querySelector("#inner_host").shadowRoot;
test(() => {
assert_equals(outer_root.querySelector("#outer_pf_doc").offsetLeft, 100);
- }, "Outer position-try-options matches @position-try in document scope");
+ }, "Outer position-try-fallbacks matches @position-try in document scope");
test(() => {
assert_equals(outer_root.querySelector("#outer_pf_outer").offsetLeft, 200);
- }, "Outer position-try-options matches @position-try in #outer_host scope");
+ }, "Outer position-try-fallbacks matches @position-try in #outer_host scope");
test(() => {
assert_equals(outer_root.querySelector("#outer_pf_inner").offsetLeft, 999999);
- }, "Outer position-try-options does not match @position-try in #inner_host scope");
+ }, "Outer position-try-fallbacks does not match @position-try in #inner_host scope");
test(() => {
assert_equals(inner_root.querySelector("#inner_pf_doc").offsetLeft, 100)
- }, "Inner position-try-options matches @position-try in document scope");
+ }, "Inner position-try-fallbacks matches @position-try in document scope");
test(() => {
assert_equals(inner_root.querySelector("#inner_pf_outer").offsetLeft, 200);
- }, "Inner position-try-options matches @position-try in #outer_host scope");
+ }, "Inner position-try-fallbacks matches @position-try in #outer_host scope");
test(() => {
assert_equals(inner_root.querySelector("#inner_pf_inner").offsetLeft, 300);
- }, "Inner position-try-options matches @position-try in #inner_host scope");
+ }, "Inner position-try-fallbacks matches @position-try in #inner_host scope");
test(() => {
assert_equals(host_slotted_part.offsetLeft, 2);
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-typed-om.html b/tests/wpt/tests/css/css-anchor-position/position-try-typed-om.html
index 76ec9411b8d..56e0aaf4e77 100644
--- a/tests/wpt/tests/css/css-anchor-position/position-try-typed-om.html
+++ b/tests/wpt/tests/css/css-anchor-position/position-try-typed-om.html
@@ -30,7 +30,7 @@
background: skyblue;
position-anchor: --a;
left: 9999px; /* force overflow */
- position-try-options: --pt;
+ position-try-fallbacks: --pt;
}
</style>
@@ -51,5 +51,5 @@
assert_unit_value(target.computedStyleMap().get('top'), CSS.px(50));
assert_unit_value(target.computedStyleMap().get('width'), CSS.px(20));
assert_unit_value(target.computedStyleMap().get('height'), CSS.px(40));
- }, 'Effects of position-try-options are visible in the computed values');
+ }, 'Effects of position-try-fallbacks are visible in the computed values');
</script>
diff --git a/tests/wpt/tests/css/css-anchor-position/property-interpolations.html b/tests/wpt/tests/css/css-anchor-position/property-interpolations.html
index ddfad852f89..5687e34cfd6 100644
--- a/tests/wpt/tests/css/css-anchor-position/property-interpolations.html
+++ b/tests/wpt/tests/css/css-anchor-position/property-interpolations.html
@@ -41,27 +41,27 @@
});
test_no_interpolation({
- property: 'position-try-options',
+ property: 'position-try-fallbacks',
from: 'none',
to: '--foo',
});
test_no_interpolation({
- property: 'position-try-options',
+ property: 'position-try-fallbacks',
from: 'none',
to: 'flip-block',
});
test_no_interpolation({
- property: 'position-try-options',
+ property: 'position-try-fallbacks',
from: 'flip-inline',
to: 'flip-block',
});
test_no_interpolation({
- property: 'position-try-options',
+ property: 'position-try-fallbacks',
from: '--foo',
to: '--bar',
});
test_no_interpolation({
- property: 'position-try-options',
+ property: 'position-try-fallbacks',
from: '--foo',
to: 'flip-block',
});
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-alignment.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-alignment.html
index 39595276d5c..b39a9298371 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-alignment.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-alignment.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic, justify/align-self</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -59,14 +59,14 @@ function test_justify_flip(try_tactic, untransformed, transformed, direction, wr
${untransformed}
}
#target {
- position-try-options: --pf ${try_tactic};
+ position-try-fallbacks: --pf ${try_tactic};
}
@position-try --ref {
inset: 0;
${transformed}
}
#ref {
- position-try-options: --ref;
+ position-try-fallbacks: --ref;
}
`;
assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft');
@@ -146,7 +146,7 @@ function test_computed_value(try_tactic, property, value, expected) {
${property}:${value};
}
#target {
- position-try-options: --pf ${try_tactic};
+ position-try-fallbacks: --pf ${try_tactic};
}
`;
assert_equals(getComputedStyle(target).getPropertyValue(property), expected);
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-anchor.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-anchor.html
index 8dc45dc6e8a..a40ed9fc36d 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-anchor.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-anchor.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic, anchor()</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -53,14 +53,14 @@ function test_anchor_flip(try_tactic, untransformed, transformed) {
${untransformed}
}
#target {
- position-try-options: --pf ${try_tactic};
+ position-try-fallbacks: --pf ${try_tactic};
}
@position-try --ref {
inset: auto;
${transformed}
}
#ref {
- position-try-options: --ref;
+ position-try-fallbacks: --ref;
}
`;
assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft');
@@ -197,7 +197,7 @@ function test_anchor_size_flip(try_tactic, flip_expected) {
height: anchor-size(height);
}
#target {
- position-try-options: --pf ${try_tactic};
+ position-try-fallbacks: --pf ${try_tactic};
}
`;
@@ -242,7 +242,7 @@ test((t) => {
right: var(--anchor-left);
}
#target {
- position-try-options: --pf;
+ position-try-fallbacks: --pf;
}
`;
// Initially positioned to the left of the anchor.
@@ -251,7 +251,7 @@ test((t) => {
// Now positioned to the right of the anchor.
style.textContent += `
#target {
- position-try-options: --pf flip-inline;
+ position-try-fallbacks: --pf flip-inline;
}
`;
assert_equals(target.offsetLeft, 210, 'offsetLeft');
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-back-to-base.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-back-to-base.html
index 9a11fc7fffc..96c2ee86950 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-back-to-base.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-back-to-base.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic, back to base values</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -18,7 +18,7 @@
left: 180px;
top: 190px;
/* ... and neither does this. */
- position-try-options: flip-block;
+ position-try-fallbacks: flip-block;
background-color: coral;
}
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-base.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-base.html
index b52c3d15e0f..c0a7ed739c8 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-base.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-base.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic, base values</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -27,7 +27,7 @@
assert_equals(cs.width, '150px');
assert_equals(cs.height, '300px');
- target.style.positionTryOptions = 'flip-start';
+ target.style.positionTryFallbacks = 'flip-start';
assert_equals(cs.width, '300px');
assert_equals(cs.height, '150px');
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-basic.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-basic.html
index 472e204096d..36077b33f49 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-basic.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-basic.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -27,13 +27,13 @@
</div>
<script>
function test_try_tactic(try_tactic, expected_offsets) {
- target.style.positionTryOptions = `--pf ${try_tactic}`;
+ target.style.positionTryFallbacks = `--pf ${try_tactic}`;
test(() => {
assert_equals(target.offsetLeft, expected_offsets.left, 'offsetLeft');
assert_equals(target.offsetTop, expected_offsets.top, 'offsetTop');
assert_equals(target.offsetWidth, expected_offsets.width, 'offsetWidth');
assert_equals(target.offsetHeight, expected_offsets.height, 'offsetHeight');
- }, target.style.positionTryOptions);
+ }, target.style.positionTryFallbacks);
}
test_try_tactic('', {left:10, top:20, width:30, height:40});
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-inset-area.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-inset-area.html
index 32af18a1494..9e53fab91fc 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-inset-area.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-inset-area.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic, inset-area</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -53,7 +53,7 @@ function test_computed_value(try_tactic, property, value, expected, direction, w
${property}:${value};
}
#target {
- position-try-options: --pf ${try_tactic};
+ position-try-fallbacks: --pf ${try_tactic};
}
`;
assert_equals(getComputedStyle(target).getPropertyValue(property), expected);
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-margin.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-margin.html
index ab627315b8b..7e0b25652c7 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-margin.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-margin.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic (margin)</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -28,13 +28,13 @@
</div>
<script>
function test_try_tactic(try_tactic, expected_offsets) {
- target.style.positionTryOptions = `--pf ${try_tactic}`;
+ target.style.positionTryFallbacks = `--pf ${try_tactic}`;
test(() => {
assert_equals(target.offsetLeft, expected_offsets.left, 'offsetLeft');
assert_equals(target.offsetTop, expected_offsets.top, 'offsetTop');
assert_equals(target.offsetWidth, expected_offsets.width, 'offsetWidth');
assert_equals(target.offsetHeight, expected_offsets.height, 'offsetHeight');
- }, target.style.positionTryOptions);
+ }, target.style.positionTryFallbacks);
}
let w = 30;
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-percentage.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-percentage.html
index 20cf0f87e05..41b5926e2cd 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-percentage.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-percentage.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic, percentage</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -50,14 +50,14 @@ function test_anchor_flip(try_tactic, untransformed, transformed) {
${untransformed}
}
#target {
- position-try-options: --pf ${try_tactic};
+ position-try-fallbacks: --pf ${try_tactic};
}
@position-try --ref {
inset: auto;
${transformed}
}
#ref {
- position-try-options: --ref;
+ position-try-fallbacks: --ref;
}
`;
assert_equals(target.offsetLeft, ref.offsetLeft, 'offsetLeft');
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-sizing.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-sizing.html
index 432992491dd..1a55ccf8011 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-sizing.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-sizing.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic, sizing properties</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -32,7 +32,7 @@
</div>
<script>
test(() => {
- target.style.positionTryOptions = '--pf flip-block';
+ target.style.positionTryFallbacks = '--pf flip-block';
let cs = getComputedStyle(target);
assert_equals(cs.width, '30px');
assert_equals(cs.height, '40px');
@@ -43,7 +43,7 @@
}, 'flip-block does not affect sizing');
test(() => {
- target.style.positionTryOptions = '--pf flip-inline';
+ target.style.positionTryFallbacks = '--pf flip-inline';
let cs = getComputedStyle(target);
assert_equals(cs.width, '30px');
assert_equals(cs.height, '40px');
@@ -54,7 +54,7 @@
}, 'flip-inline does not affect sizing');
test(() => {
- target.style.positionTryOptions = '--pf flip-start';
+ target.style.positionTryFallbacks = '--pf flip-start';
let cs = getComputedStyle(target);
assert_equals(cs.width, '40px');
assert_equals(cs.height, '30px');
diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-wm.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-wm.html
index bc1c82c35d1..8dcf98f8939 100644
--- a/tests/wpt/tests/css/css-anchor-position/try-tactic-wm.html
+++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-wm.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Anchor Positioning: try-tactic under different writing modes</title>
-<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-options-try-tactic">
+<link rel="help" href="https://drafts.csswg.org/css-anchor-position-1/#typedef-position-try-fallbacks-try-tactic">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
@@ -28,7 +28,7 @@
<script>
function test_try_tactic_wm(try_tactic, writing_mode, direction, expected_offsets) {
- target.style.positionTryOptions = `--pf ${try_tactic}`;
+ target.style.positionTryFallbacks = `--pf ${try_tactic}`;
target.style.writingMode = writing_mode;
target.style.direction = direction;
test(() => {
diff --git a/tests/wpt/tests/css/css-cascade/scope-container.html b/tests/wpt/tests/css/css-cascade/scope-container.html
index 3e976088e2c..ce7207b42eb 100644
--- a/tests/wpt/tests/css/css-cascade/scope-container.html
+++ b/tests/wpt/tests/css/css-cascade/scope-container.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<title>@scope - inner @container</title>
<link rel="help" href="https://drafts.csswg.org/css-cascade-6/#scope-atrule">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<link rel="help" href="https://drafts.csswg.org/css-cascade-5/#scope-scope">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/animation-container-size.html b/tests/wpt/tests/css/css-conditional/container-queries/animation-container-size.html
index fefb721cbc9..e620335c358 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/animation-container-size.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/animation-container-size.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Queries - Animating container size</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/animation-container-type-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/animation-container-type-dynamic.html
index 835e8e1be1d..473c914d8a5 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/animation-container-type-dynamic.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/animation-container-type-dynamic.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Queries - Animated container creating new containers</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-animation.html b/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-animation.html
index 7f1ae854ae8..b956fed2b4c 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-animation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-animation.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>Container Queries - Animations within animating container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-transition.html b/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-transition.html
index 934f995a979..ca8808664ef 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-transition.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/animation-nested-transition.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Queries - Animated container with inner transition</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/aspect-ratio-feature-evaluation.html b/tests/wpt/tests/css/css-conditional/container-queries/aspect-ratio-feature-evaluation.html
index 843f34732b6..9b68e8679d0 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/aspect-ratio-feature-evaluation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/aspect-ratio-feature-evaluation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container queries with aspect-ratio</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#aspect-ratio">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#aspect-ratio">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html
index b0196b5e5a1..b8872e89a45 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: parsing</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html
index 141062a8d47..7e6e3e99452 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries: @container serialization</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html
index 36fda2e3663..3ee22be9f5b 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: style queries parsing</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-serialization.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-serialization.html
index a4fb25378cb..a30acef9ac2 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-serialization.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-serialization.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries: style() conditionText serialization</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="help" href="https://drafts.csswg.org/cssom/#serialize-a-css-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/auto-scrollbars.html b/tests/wpt/tests/css/css-conditional/container-queries/auto-scrollbars.html
index 44074ed2133..96f082f38aa 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/auto-scrollbars.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/auto-scrollbars.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: scrollbar stability for @container queries and overflow:auto</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="help" href="https://drafts.csswg.org/css-overflow-3/#scrollbar-layout">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/backdrop-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/backdrop-invalidation.html
index 6a59a2f8941..6f7d52cc386 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/backdrop-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/backdrop-invalidation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Test that ::backdrop responds to container size changes</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/calc-evaluation.html b/tests/wpt/tests/css/css-conditional/container-queries/calc-evaluation.html
index 71a5e23764e..60fd59e9cd4 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/calc-evaluation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/calc-evaluation.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: calc()</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://drafts.csswg.org/mediaqueries-4/#units">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-001.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-001.html
index f904d1fe249..bd9fd3ddc49 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-001.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-001.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Canvas as size container for focusable child</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html">
<style>
@supports (container-type: size) {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-002.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-002.html
index 689feeb5fff..7c2d44f6824 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-002.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-002.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Absolute positioned canvas as size container for focusable child</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html">
<style>
@supports (container-type: size) {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-003.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-003.html
index 74199cc72b7..0115052b76d 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-003.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-003.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Canvas as size container for focusable child with display</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html">
<style>
@supports (container-type: size) {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-004.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-004.html
index b23846382b7..7e1ec8d733a 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-004.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-004.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Absolute positioned canvas as size container for focusable child with display</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html">
<style>
@supports (container-type: size) {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-005.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-005.html
index 9132592434c..3068ce708e6 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-005.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-005.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Canvas as dynamic size container for focusable child with display</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-006.html b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-006.html
index 02dbce62753..0fbb6f6d833 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-006.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/canvas-as-container-006.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Absolute positioned canvas as dynamic size container for focusable child with display</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/change-display-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/change-display-in-container.html
index 8c58d22b7de..978c3e81bce 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/change-display-in-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/change-display-in-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Change display and box inside a container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="change-display-in-container-ref.html">
<style>
.fail { display: inline; }
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/chrome-legacy-skip-recalc.html b/tests/wpt/tests/css/css-conditional/container-queries/chrome-legacy-skip-recalc.html
index b86a4091a2c..675f649bf82 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/chrome-legacy-skip-recalc.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/chrome-legacy-skip-recalc.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Chrome legacy layout skipping style recalc</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://crbug.com/1288879">
<link rel="match" href="/css/reference/pass_if_pass_below.html">
<style>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/column-spanner-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/column-spanner-in-container.html
index d494e28504f..0f0b5f7850f 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/column-spanner-in-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/column-spanner-in-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Column-spanner depending on container in column</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/conditional-container-status.html b/tests/wpt/tests/css/css-conditional/container-queries/conditional-container-status.html
index e9762f93239..d0dfb97e9cb 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/conditional-container-status.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/conditional-container-status.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Conditionally removing container status</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-computed.html b/tests/wpt/tests/css/css-conditional/container-queries/container-computed.html
index 2be304481ba..fa56ab77402 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-computed.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-computed.html
@@ -1,8 +1,8 @@
<!doctype html>
<meta charset="utf-8">
-<title>CSS Containment Test: Computed values of container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<title>CSS Conditional Test: Computed values of container</title>
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-for-cue.html b/tests/wpt/tests/css/css-conditional/container-queries/container-for-cue.html
index a460f79af06..802f6143428 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-for-cue.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-for-cue.html
@@ -2,7 +2,7 @@
<html class="reftest-wait">
<head>
<title>CSS Container Queries Test: Container for pseudo elements</title>
- <link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+ <link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="container-for-cue-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-for-shadow-dom.html b/tests/wpt/tests/css/css-conditional/container-queries/container-for-shadow-dom.html
index 63d58f76982..d79b3a9d554 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-for-shadow-dom.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-for-shadow-dom.html
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Container Queries Test: query container for Shadow DOM</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-inheritance.html b/tests/wpt/tests/css/css-conditional/container-queries/container-inheritance.html
index b333b691fd7..9fc8cadc3e4 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-inheritance.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-inheritance.html
@@ -1,8 +1,8 @@
<!doctype html>
<meta charset="utf-8">
-<title>CSS Containment Test: Inheritance of container-*</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<title>CSS Conditional Test: Inheritance of container-*</title>
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/inheritance-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-inner-at-rules.html b/tests/wpt/tests/css/css-conditional/container-queries/container-inner-at-rules.html
index ac180029298..4f0d6e02589 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-inner-at-rules.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-inner-at-rules.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: inner at-rules</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-inside-multicol-with-table.html b/tests/wpt/tests/css/css-conditional/container-queries/container-inside-multicol-with-table.html
index 8688159da3c..1046d57ef25 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-inside-multicol-with-table.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-inside-multicol-with-table.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: container inside multicol with table</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-longhand-animation-type.html b/tests/wpt/tests/css/css-conditional/container-queries/container-longhand-animation-type.html
index aded2a3ec8b..efc9a817d94 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-longhand-animation-type.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-longhand-animation-type.html
@@ -1,7 +1,7 @@
<!doctype html>
<title>Container Queries - The container longhands are not animatable</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#propdef-container-name">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#propdef-container-type">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#propdef-container-name">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#propdef-container-type">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-name-computed.html b/tests/wpt/tests/css/css-conditional/container-queries/container-name-computed.html
index f58d54744e4..abd2ebe0860 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-name-computed.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-name-computed.html
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
-<title>CSS Containment Test: Computed values of container-name</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
+<title>CSS Conditional Test: Computed values of container-name</title>
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-name-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-name-invalidation.html
index aad225def9d..e918f182e2c 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-name-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-name-invalidation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>container-name invalidation</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-name-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/container-name-parsing.html
index 4f385cca524..895b73ee66e 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-name-parsing.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-name-parsing.html
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
-<title>CSS Containment Test: Parsing of container-name</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
+<title>CSS Conditional Test: Parsing of container-name</title>
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-name-tree-scoped.html b/tests/wpt/tests/css/css-conditional/container-queries/container-name-tree-scoped.html
index e0890aab32d..de633282e88 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-name-tree-scoped.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-name-tree-scoped.html
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Container Queries Test: Tree scoped container-name</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<link rel="help" href="https://drafts.csswg.org/css-scoping-1/#shadow-names">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-nested.html b/tests/wpt/tests/css/css-conditional/container-queries/container-nested.html
index 3ad35bd2be8..dfe30ac0ae1 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-nested.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-nested.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container (nested)</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/container-parsing.html
index 87b3bdd48cd..ab04102b569 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-parsing.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-parsing.html
@@ -1,8 +1,8 @@
<!doctype html>
<meta charset="utf-8">
-<title>CSS Containment Test: Parsing of container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-name">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<title>CSS Conditional Test: Parsing of container</title>
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-name">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-selection-unknown-features.html b/tests/wpt/tests/css/css-conditional/container-queries/container-selection-unknown-features.html
index 8e0e34db9a5..5c2c67caaf1 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-selection-unknown-features.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-selection-unknown-features.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>@container: selection using name and implicit selection</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-selection.html b/tests/wpt/tests/css/css-conditional/container-queries/container-selection.html
index cef20f85a2f..d262da9ddfd 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-selection.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-selection.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: selection using name and implicit selection</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation-after-load.html b/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation-after-load.html
index cf5687aa39d..2d66b0990fd 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation-after-load.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation-after-load.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>@container: invalidation of container size after load event</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation.html
index ab269717498..14433c9c3cf 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-size-invalidation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container-dependent elements respond to container size changes</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-size-nested-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-size-nested-invalidation.html
index a549f6d8482..c13c80ed385 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-size-nested-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-size-nested-invalidation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Nested @container-dependent elements respond to outer container size changes</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-size-shadow-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-size-shadow-invalidation.html
index b2e02a10916..4d2300701ae 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-size-shadow-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-size-shadow-invalidation.html
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Container Queries Test: Invalidate size container query for Shadow DOM</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-computed.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-computed.html
index 0b5e033a0f3..60d5ab5a05a 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-computed.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-computed.html
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
<title>Computed values of container-type</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-containment.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-containment.html
index 66500a6a71c..ba97b385d6c 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-containment.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-containment.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: applied containment for container-type</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-invalidation.html
index 90e0b4acd1d..e4f02028a74 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-invalidation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>container-type invalidation</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-layout-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-layout-invalidation.html
index 3103de81f79..27c7b8a012d 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-layout-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-layout-invalidation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>container-type layout invalidation</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-type-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/container-type-parsing.html
index 5805a927b32..1e106852c5b 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-type-parsing.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-type-parsing.html
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
-<title>CSS Containment Test: Parsing of container-type</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<title>CSS Conditional Test: Parsing of container-type</title>
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-animation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-animation.html
index cf1b9a8f345..79e59dc2a18 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-animation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-animation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: Animation</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-basic.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-basic.html
index 166a003a29b..84f55d550ea 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-basic.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-basic.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: cqi, cqb, etc</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-computational-independence.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-computational-independence.html
index 694b665c793..94d786dfe51 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-computational-independence.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-computational-independence.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: Computationally independent</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="help" href="https://drafts.css-houdini.org/css-properties-values-api-1/#computationally-independent">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-content-box.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-content-box.html
index 89a76e868ce..0fc18b3175f 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-content-box.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-content-box.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: evaluate against the content box</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient-invalidation.html
index 665a14dcaa1..a0fa974fc29 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient-invalidation.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class=reftest-wait>
<title>Container Relative Units in gradients</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="container-units-gradient-ref.html">
<script src="/common/reftest-wait.js"></script>
<script src="/common/rendering-utils.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient.html
index 3d6f5378c22..6965bf8c0d0 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-gradient.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>Container Relative Units in gradients</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="container-units-gradient-ref.html">
<style>
.container {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-dynamic.html
index c1f929241ca..978d5a60051 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-dynamic.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-dynamic.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: in @container prelude (dynamic)</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-fallback.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-fallback.html
index 3784499c387..fe7af8e38ea 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-fallback.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container-fallback.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>Container Relative Units: container relative units fall back to small viewport</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container.html
index 9ddca55ec15..9faf62ffc0c 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-in-at-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: in @container prelude</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-ineligible-container.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-ineligible-container.html
index 8882d4a38ba..61565de6e28 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-ineligible-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-ineligible-container.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<meta charset="utf-8">
<title>Container Relative Units: ineligible container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
<style>
#grandparent, #parent { container-type: size; }
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-invalidation.html
index abb766cd0c7..602f6b69dc2 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-invalidation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: Invalidation</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-media-queries.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-media-queries.html
index 7b76f654e5c..b46e0cb715a 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-media-queries.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-media-queries.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>Container-relative units in @media</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-rule-cache.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-rule-cache.html
index cc93f7793ae..3ff8e29e64f 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-rule-cache.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-rule-cache.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset="utf-8">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1832481">
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-selection.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-selection.html
index 16a44cd1766..66ab3e24580 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-selection.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-selection.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: Advanced Container Selection</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-shadow.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-shadow.html
index 66ae1c976cc..3c672ad5426 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-shadow.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-shadow.html
@@ -1,7 +1,7 @@
<!doctype html>
<title>Container Relative Units: Shadow DOM</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-sharing-via-rule-node.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-sharing-via-rule-node.html
index e1a5c714516..dcb22f20ccf 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-sharing-via-rule-node.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-sharing-via-rule-node.html
@@ -1,6 +1,6 @@
<!doctype html>
<meta charset="utf-8">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1835179">
<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez">
<link rel="author" href="https://mozilla.org" title="Mozilla">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-small-viewport-fallback.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-small-viewport-fallback.html
index 6c8851681fb..d1c95d33b8f 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-small-viewport-fallback.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-small-viewport-fallback.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: fall back to small viewport</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-svglength.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-svglength.html
index 8bb227c0498..e39c21e3461 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-svglength.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-svglength.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: container-relative units in SVGLength</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="help" href="https://svgwg.org/svg2-draft/types.html#InterfaceSVGLength">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/container-units-typed-om.html b/tests/wpt/tests/css/css-conditional/container-queries/container-units-typed-om.html
index 6da3306fdfa..4ebb3518ac2 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/container-units-typed-om.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/container-units-typed-om.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Relative Units: CSS Typed OM</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="help" href="https://drafts.css-houdini.org/css-typed-om-1/#stylepropertymap">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/counters-flex-circular.html b/tests/wpt/tests/css/css-conditional/container-queries/counters-flex-circular.html
index d60049e26c7..04af2e2dc06 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/counters-flex-circular.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/counters-flex-circular.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: counters inside container should not affect container size via flex layout</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<link rel="stylesheet" href="/fonts/ahem.css">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container-dynamic.html
index d85ab6cb425..9542b34095b 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container-dynamic.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container-dynamic.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: counter updates</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<link rel="match" href="counters-ref.html">
<style>
#container {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container.html
index 376f52ea7c2..e94aba63264 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/counters-in-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: counters depending on container queries</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-type">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-type">
<link rel="match" href="counters-ref.html">
<style>
#container {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/br-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/br-crash.html
index 6631ba2fd56..35d029706a8 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/br-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/br-crash.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>Don't crash for blocky &lt;br> (etc) with inline-size containment</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#contain-property">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#contain-property">
<link rel="help" href="https://crbug.com/1313444">
<br style="container-type:inline-size; display:block;">
<wbr style="container-type:inline-size; display:block;">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/canvas-as-container-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/canvas-as-container-crash.html
index ae7fe8dc168..45bb49f1800 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/canvas-as-container-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/canvas-as-container-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Absolute positioned canvas container crash</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://crbug.com/1289850">
<p>Pass if there is no crash.</p>
<canvas id="canv" style="display:block;position:absolute;container-type:inline-size"></canvas>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-001-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-001-crash.html
index fe421500dad..b66ca8d30bd 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-001-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-001-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: TR container with multicol TD crashes Chrome</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://crbug.com/1291471">
<p>Pass if test does not crash.</p>
<table>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-002-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-002-crash.html
index 24b9f1aab20..1c6f2cfbb0a 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-002-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/columns-in-table-002-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: container with multicol table-header-group crashes Chrome</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://crbug.com/1307656">
<p>Pass if test does not crash.</p>
<div id="container" style="container-type:inline-size">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-in-canvas-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-in-canvas-crash.html
index 215c6a04db7..af21a9541f7 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-in-canvas-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-in-canvas-crash.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>Don't crash with a container query container inside canvas</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5">
<link rel="help" href="https://crbug.com/1321471">
<canvas>
<div>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-type-change-chrome-legacy-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-type-change-chrome-legacy-crash.html
index 609142a2c5f..d49b2ae8e65 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-type-change-chrome-legacy-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/container-type-change-chrome-legacy-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Changing container-type in Chrome legacy layout</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://crbug.com/1286773">
<p>Pass if there is no crash.</p>
<span style="column-count: 1"><table></table></span>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/focus-inside-content-visibility-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/focus-inside-content-visibility-crash.html
index 1bf68d6686c..eb2788d03f3 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/focus-inside-content-visibility-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/focus-inside-content-visibility-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Container Queries Test: size change detected while focusing inside content-visibility: auto container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="help" href="https://drafts.csswg.org/css-contain-2/#using-cv-auto">
<link rel="help" href="https://crbug.com/1270848">
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/force-sibling-style-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/force-sibling-style-crash.html
index 093a01b809d..751a646931a 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/force-sibling-style-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/force-sibling-style-crash.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>getComputedStyle on sibling of style-dirty container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://crbug.com/1306385">
<div id=ancestor style="--x:foo">
<div id=container style="container-type:size;width:100px;">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/inline-multicol-inside-container-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/inline-multicol-inside-container-crash.html
index 7e209f7ffd3..853f1744b3b 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/inline-multicol-inside-container-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/inline-multicol-inside-container-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Inline multicol inside size container - crash</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://crbug.com/829028">
<style>
#container {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-column-group-container-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-column-group-container-crash.html
index 5e520a45cff..bd1d77cd60d 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-column-group-container-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-column-group-container-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: </title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="help" href="https://crbug.com/1282782">
<p>Pass if this test does not crash</p>
<span style="column-count: 1">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-placeholder-inline-size-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-placeholder-inline-size-crash.html
index 4b1284e5cb3..a5c7cf62b33 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-placeholder-inline-size-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/input-placeholder-inline-size-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Crash: input inline-size container with placeholder</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://crbug.com/1288692">
<p>Pass if this test does not crash</p>
<input id="input" style="container-type:size">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/marker-gcs-after-disconnect-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/marker-gcs-after-disconnect-crash.html
index 3680c795122..b92213d98c8 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/marker-gcs-after-disconnect-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/marker-gcs-after-disconnect-crash.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>Don't crash during getComputedStyle which removes ::marker</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5">
<link rel="help" href="https://crbug.com/1349732">
<style>
#container {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/math-block-container-child-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/math-block-container-child-crash.html
index 00b6836655e..db6c8df7f31 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/math-block-container-child-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/math-block-container-child-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Math block container child crash</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://crbug.com/1294268">
<p>Pass if there is no crash.</p>
<math id="m" style="display:block math"></math>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/pseudo-container-crash.html b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/pseudo-container-crash.html
index f998c3a4464..203e48e85f2 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/crashtests/pseudo-container-crash.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/crashtests/pseudo-container-crash.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: No crash when ::after is a container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<link rel="help" href="https://crbug.com/1225381">
<style>
div::after {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/custom-layout-container-001.https.html b/tests/wpt/tests/css/css-conditional/container-queries/custom-layout-container-001.https.html
index 8f301e8ebf6..40594a431e4 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/custom-layout-container-001.https.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/custom-layout-container-001.https.html
@@ -1,7 +1,7 @@
<!doctype html>
<html class=reftest-wait>
<title>CSS Container Queries Test: Size queries on CSS Layout API containers</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://drafts.css-houdini.org/css-layout-api/">
<link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html">
<script src="/common/reftest-wait.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-queries.html b/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-queries.html
index d9152432ed1..96a80904521 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-queries.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-queries.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: custom property style queries</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#style-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#style-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-query-change.html b/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-query-change.html
index 6669ede31da..ac15092b4cd 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-query-change.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/custom-property-style-query-change.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: custom property style query changes</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#style-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#style-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/deep-nested-inline-size-containers.html b/tests/wpt/tests/css/css-conditional/container-queries/deep-nested-inline-size-containers.html
index 00bc8b0a6b2..40012b41f21 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/deep-nested-inline-size-containers.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/deep-nested-inline-size-containers.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Deeply nested inline-size container queries</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-create.html b/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-create.html
index ef74973addc..a962a963557 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-create.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-create.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: ::backdrop appearing conditionally on dialog container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="top-layer-dialog-backdrop-ref.html">
<style>
html {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-remove.html b/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-remove.html
index 47b40304924..1cb1cc92d47 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-remove.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/dialog-backdrop-remove.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: ::backdrop disappearing conditionally on dialog container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="top-layer-dialog-backdrop-ref.html">
<style>
html {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/display-contents-dynamic-style-queries.html b/tests/wpt/tests/css/css-conditional/container-queries/display-contents-dynamic-style-queries.html
index 782cf566552..466992f628f 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/display-contents-dynamic-style-queries.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/display-contents-dynamic-style-queries.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Invalidate style queries and display:contents</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#style-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#style-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/display-contents.html b/tests/wpt/tests/css/css-conditional/container-queries/display-contents.html
index d96a46d06a8..3dd50caff38 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/display-contents.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/display-contents.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container and display:contents</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/display-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/display-in-container.html
index a2a4cd731c8..4666ab64b2b 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/display-in-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/display-in-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: @container queries affecting display type</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="display-in-container-ref.html">
<style>
.container, .not_a_container {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/display-none.html b/tests/wpt/tests/css/css-conditional/container-queries/display-none.html
index 8d07ec09dde..4949cbbb715 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/display-none.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/display-none.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container in display:none</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/fieldset-legend-change.html b/tests/wpt/tests/css/css-conditional/container-queries/fieldset-legend-change.html
index 15b44a0e523..51cd8c19533 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/fieldset-legend-change.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/fieldset-legend-change.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: inline-size query changes rendered legend in fieldset</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="match" href="fieldset-legend-change-ref.html">
<p>Pass if the rendered legend below is "PASS"</p>
<style>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-calc-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-calc-dynamic.html
index 54f01d45a39..927dda9ffa1 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-calc-dynamic.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-calc-dynamic.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: font-relative calc - dynamic</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units-dynamic.html
index 9dfaceeed6b..60c668a71c7 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units-dynamic.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units-dynamic.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: font-relative units - dynamic</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html
index ba4a60dda21..38d19028255 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/font-relative-units.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: font-relative units</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/fragmented-container-001.html b/tests/wpt/tests/css/css-conditional/container-queries/fragmented-container-001.html
index 886f179054c..f5f4d7de7bd 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/fragmented-container-001.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/fragmented-container-001.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Query fragmented inline-size container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/get-animations.html b/tests/wpt/tests/css/css-conditional/container-queries/get-animations.html
index dca41c6adad..228f52ecf58 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/get-animations.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/get-animations.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>getAnimations depending on container query</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/grid-container.html b/tests/wpt/tests/css/css-conditional/container-queries/grid-container.html
index 60278e09c69..c7002f696f6 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/grid-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/grid-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Grid container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/grid-item-container.html b/tests/wpt/tests/css/css-conditional/container-queries/grid-item-container.html
index f1c66efc26d..f097c18b2ae 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/grid-item-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/grid-item-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Grid item container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/idlharness.html b/tests/wpt/tests/css/css-conditional/container-queries/idlharness.html
index ac1a677bb94..177531d0d06 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/idlharness.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/idlharness.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries: CSSContainer Rule IDL tests</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/WebIDLParser.js"></script>
@@ -16,7 +16,7 @@
</style>
<script>
idl_test(
- ['css-contain-3'],
+ ['css-conditional-5'],
['css-conditional', 'cssom', 'dom'],
idl_array => {
idl_array.add_objects({
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/iframe-in-container-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/iframe-in-container-invalidation.html
index f43d1ce7899..4c904d2d4b4 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/iframe-in-container-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/iframe-in-container-invalidation.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>@container-dependent elements respond to size changes of an @container-dependent iframe</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/iframe-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/iframe-invalidation.html
index 51f2be9cfa3..c68fd4b16a9 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/iframe-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/iframe-invalidation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container-dependent elements respond to iframe size changes</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/ineligible-containment.html b/tests/wpt/tests/css/css-conditional/container-queries/ineligible-containment.html
index 36ce68d8643..1e1cace51e7 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/ineligible-containment.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/ineligible-containment.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Containers ineligible for containment</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inheritance-from-container.html b/tests/wpt/tests/css/css-conditional/container-queries/inheritance-from-container.html
index 97dfff2fd02..4b815d68aa3 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/inheritance-from-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/inheritance-from-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Containers and inheritance</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-and-min-width.html b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-and-min-width.html
index 8ddcbc614ca..91e8c48a93a 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-and-min-width.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-and-min-width.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: query of inline-size container is affected by min-width property</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-bfc-floats.html b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-bfc-floats.html
index 88b81c67599..f4d5af65f56 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-bfc-floats.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-bfc-floats.html
@@ -1,7 +1,7 @@
<!doctype html>
<title>CSS Container Queries Test: inline-size constrained by floats - layout moving forwards</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#containment-inline-size">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#containment-inline-size">
<link rel="match" href="inline-size-bfc-floats-ref.html">
<style>
.float { float: left; background-color: blue; }
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment-vertical-rl.html b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment-vertical-rl.html
index 38c88f2df79..44fa62c7935 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment-vertical-rl.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment-vertical-rl.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: query of inline-size container in vertical-rl</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
#ancestry { writing-mode: vertical-rl; }
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment.html b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment.html
index d519322bd27..154a0a47ce1 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/inline-size-containment.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: query of inline-size container is affected by min-width property</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org">
<style>
#keg { container-type: inline-size; }
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/inner-first-line-non-matching.html b/tests/wpt/tests/css/css-conditional/container-queries/inner-first-line-non-matching.html
index 5f39124e514..01d46a037f5 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/inner-first-line-non-matching.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/inner-first-line-non-matching.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Non-matching ::first-line in @container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="inner-first-line-non-matching-ref.html">
<style>
#outer::first-line { color: green }
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/layout-dependent-focus.html b/tests/wpt/tests/css/css-conditional/container-queries/layout-dependent-focus.html
index a16370ac566..3e28f4a1da1 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/layout-dependent-focus.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/layout-dependent-focus.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries: Input losing focus as a result of a size query</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/multicol-container-001.html b/tests/wpt/tests/css/css-conditional/container-queries/multicol-container-001.html
index 3032170ac61..9785b6b0c62 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/multicol-container-001.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/multicol-container-001.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Query multicol container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/multicol-inside-container.html b/tests/wpt/tests/css/css-conditional/container-queries/multicol-inside-container.html
index 9fc8393a513..73febc303a9 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/multicol-inside-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/multicol-inside-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Multicol inside size container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="match" href="/css/reference/ref-filled-green-100px-square-only.html">
<style>
#container {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/nested-query-containers.html b/tests/wpt/tests/css/css-conditional/container-queries/nested-query-containers.html
index 83cc3c2fecd..348e3d1529e 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/nested-query-containers.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/nested-query-containers.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>Nested query containers affecting each other</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/nested-size-style-container-invalidation.html b/tests/wpt/tests/css/css-conditional/container-queries/nested-size-style-container-invalidation.html
index 8d04bf589a2..87256703884 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/nested-size-style-container-invalidation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/nested-size-style-container-invalidation.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>Nested size/style @container-dependent elements respond to container size changes</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/never-match-container.html b/tests/wpt/tests/css/css-conditional/container-queries/never-match-container.html
index 9d5ff6d2272..5acded7cc5a 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/never-match-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/never-match-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: @container querying size of elements without layout containment</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/orthogonal-wm-container-query.html b/tests/wpt/tests/css/css-conditional/container-queries/orthogonal-wm-container-query.html
index 1ad52bf499c..630226500ef 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/orthogonal-wm-container-query.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/orthogonal-wm-container-query.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Orthogonal writing-mode change in @container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/percentage-padding-orthogonal.html b/tests/wpt/tests/css/css-conditional/container-queries/percentage-padding-orthogonal.html
index 0c419d18a9d..dac71be0bca 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/percentage-padding-orthogonal.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/percentage-padding-orthogonal.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: @container queries affecting height affecting percentage padding</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-001.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-001.html
index 0baef0bfc2b..e147da5d9e8 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-001.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-001.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: Container for elements with pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002.html
index a44c64c7007..1198fb959d0 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: Container for ::before/::after pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="pseudo-elements-002-ref.html">
<style>
.container { container-type: inline-size; }
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002b.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002b.html
index e1874e035b0..e1159c33bfe 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002b.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-002b.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: Container for ::first-letter/::first-line pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="pseudo-elements-002b-ref.html">
<style>
.container { container-type: inline-size; }
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-003.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-003.html
index 2d7647f7104..d7bec8a6e18 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-003.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-003.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: originating element container for pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-004.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-004.html
index db199f22050..6c0babfae23 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-004.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-004.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: originating element container for pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-005.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-005.html
index 575b66d6f83..163349adc86 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-005.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-005.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Style container for pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-006.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-006.html
index 65aee97f758..39c00d70dc2 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-006.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-006.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: originating element container for pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-007.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-007.html
index 951f4226f49..575cb73af65 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-007.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-007.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: originating element container for pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-008.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-008.html
index 859deb2206e..dfa07922368 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-008.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-008.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: originating element container for pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-009.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-009.html
index 769a5962ff7..913b8ca5b13 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-009.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-009.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: Container for highlight pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<link rel="match" href="pseudo-elements-009-ref.html">
<style>
#container {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-010.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-010.html
index e2e8f8659c5..c090488d193 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-010.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-010.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class="reftest-wait">
<title>CSS Container Queries Test: Container for highlight pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<link rel="match" href="pseudo-elements-010-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-011.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-011.html
index 26dabbe1dfe..364d7ec3851 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-011.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-011.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: ::highlight pseudo element on size container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<link rel="match" href="pseudo-elements-010-ref.html">
<style>
#container {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-012.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-012.html
index 7c36d9270d9..31617f838b6 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-012.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-012.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html class="reftest-wait">
<title>CSS Container Queries Test: ::highlight pseudo size container change</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<link rel="match" href="pseudo-elements-010-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-013.html b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-013.html
index 870b5891153..e41fc7611a4 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-013.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/pseudo-elements-013.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container: originating element container for highlight pseudo elements</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/query-content-box.html b/tests/wpt/tests/css/css-conditional/container-queries/query-content-box.html
index 5f6cc9fdbe0..b689acdb095 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/query-content-box.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/query-content-box.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Size queries match content-box</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation-style.html b/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation-style.html
index bf059f795a3..75876dd1ac3 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation-style.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation-style.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Evaluation of style queries</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation.html b/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation.html
index 469b7b0d7a2..d5c77c3a7e4 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/query-evaluation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Evaluation of queries</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/reattach-container-with-dirty-child.html b/tests/wpt/tests/css/css-conditional/container-queries/reattach-container-with-dirty-child.html
index 680d9caa84a..914155a6602 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/reattach-container-with-dirty-child.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/reattach-container-with-dirty-child.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: @container changing display type while descendant styles change</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/registered-color-style-queries.html b/tests/wpt/tests/css/css-conditional/container-queries/registered-color-style-queries.html
index 6e2bfb896bb..fd663d2c2d8 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/registered-color-style-queries.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/registered-color-style-queries.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: registered color syntax style queries</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#style-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#style-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/resize-while-content-visibility-hidden.html b/tests/wpt/tests/css/css-conditional/container-queries/resize-while-content-visibility-hidden.html
index a3658f7f34f..da4218b88bd 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/resize-while-content-visibility-hidden.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/resize-while-content-visibility-hidden.html
@@ -1,7 +1,7 @@
<!doctype html>
<html class="reftest-wait">
<title>CSS Container Queries Test: condition change while content-visibility: hidden</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="help" href="https://drafts.csswg.org/css-contain-2/#content-visibility">
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
<link rel="match" href="resize-while-content-visibility-hidden-ref.html">
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/sibling-layout-dependency.html b/tests/wpt/tests/css/css-conditional/container-queries/sibling-layout-dependency.html
index 5e30a998d23..eb3df2ba410 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/sibling-layout-dependency.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/sibling-layout-dependency.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>@container-dependent styles respond to layout changes</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="help" href="https://drafts.csswg.org/css-contain-2/#containment-size">
<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
<script src="/resources/testharness.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/size-container-no-principal-box.html b/tests/wpt/tests/css/css-conditional/container-queries/size-container-no-principal-box.html
index 4bff0681ab6..730bb1d7361 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/size-container-no-principal-box.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/size-container-no-principal-box.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: size container types apply to elements without a principal box</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/size-container-with-quotes.html b/tests/wpt/tests/css/css-conditional/container-queries/size-container-with-quotes.html
index b88f882cd04..30a4191d337 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/size-container-with-quotes.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/size-container-with-quotes.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: &lt;q&gt; element as a size container must generate quotes</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="match" href="size-container-with-quotes-ref.html">
<style>
q {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/size-feature-evaluation.html b/tests/wpt/tests/css/css-conditional/container-queries/size-feature-evaluation.html
index 600a266fce2..282233dec9d 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/size-feature-evaluation.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/size-feature-evaluation.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Evaluation of size features</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-change-in-container.html b/tests/wpt/tests/css/css-conditional/container-queries/style-change-in-container.html
index ed4baa7e8b6..abbb1266e69 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/style-change-in-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/style-change-in-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: recompute style inside a @container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html b/tests/wpt/tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html
index e8297be941f..22ab9b9c3e8 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/style-container-for-shadow-dom.html
@@ -1,7 +1,7 @@
<!doctype html>
<meta charset="utf-8">
<title>CSS Container Queries Test: style query container for Shadow DOM</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#query-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#query-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-container-invalidation-inheritance.html b/tests/wpt/tests/css/css-conditional/container-queries/style-container-invalidation-inheritance.html
index b7aef69d3e1..9d2ab561101 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/style-container-invalidation-inheritance.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/style-container-invalidation-inheritance.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Query Test: named style container query change with inherited custom property</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-rule">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-rule">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-not-sharing-float.html b/tests/wpt/tests/css/css-conditional/container-queries/style-not-sharing-float.html
index 7c76bb32bf2..c3633949113 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/style-not-sharing-float.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/style-not-sharing-float.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Check style is not sharing between cousins in the case of Container Queries</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/style-query-with-unknown-width.html b/tests/wpt/tests/css/css-conditional/container-queries/style-query-with-unknown-width.html
index 8b05d6c1120..52f250c2d0d 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/style-query-with-unknown-width.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/style-query-with-unknown-width.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>CSS Container Queries Test: style and size query against container without a principal box</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-child-container.html b/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-child-container.html
index 898fc22c2ba..8dc98a6321c 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-child-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-child-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: size query container inside foreignObject</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-no-size-container.html b/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-no-size-container.html
index 38fc493a162..38f7230e187 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-no-size-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/svg-foreignobject-no-size-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: SVG &lt;foreignObject&gt; element not a size query container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="match" href="svg-foreignobject-no-size-container-ref.html">
<style>
foreignObject {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/svg-g-no-size-container.html b/tests/wpt/tests/css/css-conditional/container-queries/svg-g-no-size-container.html
index ed9e8536767..a4a089a5beb 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/svg-g-no-size-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/svg-g-no-size-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: SVG &lt;g&gt; element not a size query container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<link rel="match" href="svg-g-no-size-container-ref.html">
<style>
g {
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/svg-root-size-container.html b/tests/wpt/tests/css/css-conditional/container-queries/svg-root-size-container.html
index 70ce40c0bce..ccdcf557d51 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/svg-root-size-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/svg-root-size-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: SVG root as a size query container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/table-inside-container-changing-display.html b/tests/wpt/tests/css/css-conditional/container-queries/table-inside-container-changing-display.html
index 33a4f4fe721..5ae71aad2d0 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/table-inside-container-changing-display.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/table-inside-container-changing-display.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: table inside @container changing display type</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="help" href="https://crbug.com/1284918">
<link rel="match" href="table-inside-container-changing-display-ref.html">
<style>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-backdrop.html b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-backdrop.html
index 25635167a54..207d0ab43ce 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-backdrop.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-backdrop.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: ::backdrop depending on @container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="top-layer-dialog-backdrop-ref.html">
<style>
html { background: green; }
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-container.html b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-container.html
index 5627a6cea0d..40a611bc918 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-container.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog-container.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Top layer element as a @container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog.html b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog.html
index 9d18b1862d1..255b42acff6 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-dialog.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: @container with modal dialog child</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-nested-dialog.html b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-nested-dialog.html
index 1a6d573f24f..a988efe02f6 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/top-layer-nested-dialog.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/top-layer-nested-dialog.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: Nested top layer elements and @container</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/transition-scrollbars.html b/tests/wpt/tests/css/css-conditional/container-queries/transition-scrollbars.html
index 60d82d26b4a..9d3f3a1c6c6 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/transition-scrollbars.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/transition-scrollbars.html
@@ -1,7 +1,7 @@
<!doctype html>
<title>Container Queries - Scrollbars do not cause transitions</title>
<link rel="help" href="https://drafts.csswg.org/css-transitions/#starting">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event-002.html b/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event-002.html
index dc9297004d7..f5b32c6fa0e 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event-002.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event-002.html
@@ -2,7 +2,7 @@
<meta charset="utf-8">
<title>Container Queries - Style Change Event for transitions</title>
<link rel="help" href="https://drafts.csswg.org/css-transitions/#starting">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event.html b/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event.html
index 4cc1772979d..8940284f990 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/transition-style-change-event.html
@@ -2,7 +2,7 @@
<meta charset="utf-8">
<title>Container Queries - Style Change Event for transitions</title>
<link rel="help" href="https://drafts.csswg.org/css-transitions/#starting">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/unsupported-axis.html b/tests/wpt/tests/css/css-conditional/container-queries/unsupported-axis.html
index 308de2f4245..80bbf9776df 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/unsupported-axis.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/unsupported-axis.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>Query against unsupported axis</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/viewport-units-dynamic.html b/tests/wpt/tests/css/css-conditional/container-queries/viewport-units-dynamic.html
index 2339533deee..10f65efc0ae 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/viewport-units-dynamic.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/viewport-units-dynamic.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: @container-dependent elements respond to viewport unit changes</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/viewport-units.html b/tests/wpt/tests/css/css-conditional/container-queries/viewport-units.html
index 9b8bb42c434..498a9c7eb2d 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/viewport-units.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/viewport-units.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: viewport units</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#size-container">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#size-container">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="support/cq-testcommon.js"></script>
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/whitespace-update-after-removal.html b/tests/wpt/tests/css/css-conditional/container-queries/whitespace-update-after-removal.html
index a7df55efc6e..066f4254d24 100644
--- a/tests/wpt/tests/css/css-conditional/container-queries/whitespace-update-after-removal.html
+++ b/tests/wpt/tests/css/css-conditional/container-queries/whitespace-update-after-removal.html
@@ -1,6 +1,6 @@
<!doctype html>
<title>CSS Container Queries Test: whitespace changes in container which changes evaluation</title>
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-queries">
<link rel="match" href="change-display-in-container-ref.html">
<style>
#container {
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-001.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-001.html
index 1e22dcc9924..397718c79c3 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-001.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-001.html
@@ -3,7 +3,7 @@
<title>CSS Highlight API Test: Highlights using container sizes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-container-metrics-001-ref.html">
<meta name="assert" value="lengths depending on containers take the correct values in a universal highlight with no container">
<head>
@@ -28,4 +28,4 @@
r1.setEnd(h1, 1);
CSS.highlights.set("highlight1", new Highlight(r1));
</script>
-</body> \ No newline at end of file
+</body>
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-002.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-002.html
index 0a805cf7ea4..bc519922048 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-002.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-002.html
@@ -3,7 +3,7 @@
<title>CSS Highlight API Test: Highlights using container sizes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-container-metrics-002-ref.html">
<meta name="assert" value="lengths depending on containers take the correct values inside and outside a container">
<meta name="fuzzy" content="0-60;0-25">
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-003.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-003.html
index 189db49bd3e..7a7cede8fca 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-003.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-003.html
@@ -3,7 +3,7 @@
<title>CSS Highlight API Test: Highlights using container sizes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-container-metrics-003-ref.html">
<meta name="assert" value="lengths depending on containers take the correct values and a highlight defined inside the container renders only within the container">
<head>
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-004.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-004.html
index 158f4ee12c9..e1112fe7bdc 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-004.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-004.html
@@ -3,7 +3,7 @@
<title>CSS Highlight API Test: Highlights using container sizes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-container-metrics-004-ref.html">
<meta name="assert" value="lengths depending on containers take the correct values inside and outside a container">
<meta name="fuzzy" content="0-60;0-25">
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-005.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-005.html
index d7be78d1fdb..b6a5e4af4f8 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-005.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-005.html
@@ -3,7 +3,7 @@
<title>CSS Highlight API Test: Highlights using container sizes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-container-metrics-003-ref.html">
<meta name="assert" value="a highlight on a container itself renders at the correct size">
<head>
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-006.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-006.html
index 4bcae073b5d..14b24676016 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-006.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-container-metrics-006.html
@@ -3,7 +3,7 @@
<title>CSS Highlight API Test: Highlights using container sizes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-container-metrics-002-ref.html">
<meta name="assert" value="lengths depending on containers take the correct values inside and outside a container">
<meta name="fuzzy" content="0-60;0-25">
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-001.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-001.html
index 2c28f7d132a..29efae8f9d9 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-001.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-001.html
@@ -4,7 +4,7 @@
<title>CSS Highlight API Test: Highlights using container sizes update on container changes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-dynamic-container-metrics-001-ref.html">
<meta name="assert" value="lengths depending on containers take the correct values in a universal highlight with no container when the container size changes">
<script src="/common/reftest-wait.js"></script>
@@ -29,4 +29,4 @@
}
iframe.onload = runtest;
</script>
-</html> \ No newline at end of file
+</html>
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-002.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-002.html
index 1a0cbe87a55..32f78c6d2a5 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-002.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-002.html
@@ -4,7 +4,7 @@
<title>CSS Highlight API Test: Highlights using dynamic container sizes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-container-metrics-002-ref.html">
<meta name="assert" value="lengths depending on containers take the correct values when the container size chnages">
<meta name="fuzzy" content="0-60;0-25">
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-003.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-003.html
index 38246a15aff..463daf52969 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-003.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-003.html
@@ -3,7 +3,7 @@
<title>CSS Highlight API Test: Highlights using dynamic container sizes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-container-metrics-003-ref.html">
<meta name="assert" value="lengths depending on containers update correctly for a highlight defined only inside a container query">
<head>
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-004.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-004.html
index fbdbea32efc..54f7a7c178d 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-004.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-dynamic-container-metrics-004.html
@@ -3,7 +3,7 @@
<title>CSS Highlight API Test: Highlights using container sizes</title>
<link rel="help" href="https://drafts.csswg.org/css-highlight-api-1/">
<link rel="help" href="https://drafts.csswg.org/css-pseudo/#highlight-styling">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#container-lengths">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#container-lengths">
<link rel="match" href="custom-highlight-container-metrics-003-ref.html">
<meta name="assert" value="a highlight on a container itself renders at the correct size when the container changes">
<head>
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html
index 22662336845..a8ec613fbca 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019-ref.html
@@ -5,9 +5,12 @@
body {
text-decoration: 2px green underline;
}
- #highlight {
+ .foo {
color:blue;
text-decoration: 2px blue underline;
}
+ .bar {
+ text-decoration: 2px currentColor underline;
+ }
</style>
-<body><span id="highlight">This part should be blue</span> and this part should be black
+<body><span class="foo">This part should be blue</span> and <span class="bar">this part should be black</span>
diff --git a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html
index 8c5ccbf020c..69c0fb817b4 100644
--- a/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html
+++ b/tests/wpt/tests/css/css-highlight-api/painting/custom-highlight-painting-019.html
@@ -5,7 +5,7 @@
<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-text">
<link rel="match" href="custom-highlight-painting-019-ref.html">
<meta name="assert" value="When painting non-overlapping highlights the current color should be resolved against the next layer beneath the highlight at the current location within the span.">
-<meta name="fuzzy" content="0-130;0-4">
+<meta name="fuzzy" content="0-250;0-6">
<style>
body {
text-decoration: 2px green underline;
@@ -36,4 +36,4 @@
CSS.highlights.set("foo", h1);
CSS.highlights.set("bar", h2);
-</script> \ No newline at end of file
+</script>
diff --git a/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-ruby-start-002.html b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-ruby-start-002.html
new file mode 100644
index 00000000000..9fd8be7dfc5
--- /dev/null
+++ b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-ruby-start-002.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-inline-3/#propdef-text-box-edge">
+<link rel="help" href="https://drafts.csswg.org/css-inline-3/#propdef-text-box-trim">
+<link rel="match" href="text-box-trim-ruby-start-001-ref.html">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+.spacer {
+ height: 40px;
+ background: lightgray;
+}
+.target {
+ font-family: Ahem;
+ font-size: 40px;
+ line-height: 1;
+ text-box-trim: start;
+ text-box-edge: text;
+ text-emphasis: dot transparent;
+}
+rt {
+ /* The Ruby annotation positioning is UA-dependent. In order to ref-test the
+ trimming of parts above the ascent, hide the Ruby annotation. */
+ color: transparent;
+}
+</style>
+<div class="spacer"></div>
+<div class="target">A <ruby>BASE<rt>RUBY</rt></ruby> B</div>
+<div class="spacer"></div>
diff --git a/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001-ref.html b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001-ref.html
new file mode 100644
index 00000000000..96e0c5a3208
--- /dev/null
+++ b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001-ref.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css" />
+<style>
+.spacer {
+ height: 40px;
+ background: lightgray;
+}
+.target {
+ font-family: Ahem;
+ font-size: 40px;
+ line-height: 1;
+ text-box-trim: start;
+ text-box-edge: text;
+}
+</style>
+<div class="spacer"></div>
+<div class="target">It is important!</div>
diff --git a/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001.html b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001.html
new file mode 100644
index 00000000000..2c38611ee32
--- /dev/null
+++ b/tests/wpt/tests/css/css-inline/text-box-trim/text-box-trim-text-emphasis-start-001.html
@@ -0,0 +1,21 @@
+<!DOCTYPE html>
+<link rel="help" href="https://drafts.csswg.org/css-inline-3/#propdef-text-box-edge">
+<link rel="help" href="https://drafts.csswg.org/css-inline-3/#propdef-text-box-trim">
+<link rel="match" href="text-box-trim-text-emphasis-start-001-ref.html">
+<link rel="stylesheet" type="text/css" href="/fonts/ahem.css"/>
+<style>
+.spacer {
+ height: 40px;
+ background: lightgray;
+}
+.target {
+ font-family: Ahem;
+ font-size: 40px;
+ line-height: 1;
+ text-box-trim: start;
+ text-box-edge: text;
+ text-emphasis: dot transparent;
+}
+</style>
+<div class="spacer"></div>
+<div class="target">It is important!</div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001-ref.html
new file mode 100644
index 00000000000..699f559c6aa
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: currentColor;
+ background-color: black;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001.html
new file mode 100644
index 00000000000..92f9d1c96d8
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’.">
+<link rel="match" href="highlight-painting-currentcolor-001-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: currentColor;
+ background-color: black;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectNodeContents(target);
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a-ref.html
new file mode 100644
index 00000000000..114487e478f
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: currentColor;
+ background-color: black;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b">te<span class="selection">st</span></span><span class="selection"> </span><span class="a"><span class="selection">te</span>st</span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a.html
new file mode 100644
index 00000000000..125a76760a3
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-001a.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’.">
+<link rel="match" href="highlight-painting-currentcolor-001a-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: currentColor;
+ background-color: black;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectRangeWith(range => {
+ range.selectNodeContents(target);
+ range.setStart(target.firstChild, 2);
+ range.setEnd(target.firstChild, 7);
+ });
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002-ref.html
new file mode 100644
index 00000000000..35891efedd4
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: currentColor;
+ background-color: currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002.html
new file mode 100644
index 00000000000..dcbec06439c
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘background-color’ of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘background-color’.">
+<link rel="match" href="highlight-painting-currentcolor-002-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: currentColor;
+ background-color: currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectNodeContents(target);
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a-ref.html
new file mode 100644
index 00000000000..c58b5f48e6f
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: currentColor;
+ background-color: currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b">te<span class="selection">st</span></span><span class="selection"> </span><span class="a"><span class="selection">te</span>st</span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a.html
new file mode 100644
index 00000000000..be31b013c3c
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002a.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘background-color’ of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘background-color’.">
+<link rel="match" href="highlight-painting-currentcolor-002a-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: currentColor;
+ background-color: currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectRangeWith(range => {
+ range.selectNodeContents(target);
+ range.setStart(target.firstChild, 2);
+ range.setEnd(target.firstChild, 7);
+ });
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b-ref.html
new file mode 100644
index 00000000000..6330c7b9717
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b-ref.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: green;
+ background-color: currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b.html
new file mode 100644
index 00000000000..014ddb085f5
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-002b.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘background-color’ (but not ‘color’) of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection does not take the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘background-color’ and ‘color’ is not ‘currentColor’.">
+<link rel="match" href="highlight-painting-currentcolor-002b-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: green;
+ background-color: currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectNodeContents(target);
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003-ref.html
new file mode 100644
index 00000000000..f2d14a4cd63
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: currentColor;
+ background-color: black;
+ text-decoration: /* currentColor */ underline;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003.html
new file mode 100644
index 00000000000..bfab5694c86
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘text-decoration-color’ of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘text-decoration-color’.">
+<link rel="match" href="highlight-painting-currentcolor-003-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: currentColor;
+ background-color: black;
+ text-decoration: /* currentColor */ underline;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectNodeContents(target);
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a-ref.html
new file mode 100644
index 00000000000..be16f519c0f
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: currentColor;
+ background-color: black;
+ text-decoration: /* currentColor */ underline;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b">te<span class="selection">st</span></span><span class="selection"> </span><span class="a"><span class="selection">te</span>st</span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a.html
new file mode 100644
index 00000000000..dd471c96007
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003a.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘text-decoration-color’ of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘text-decoration-color’.">
+<link rel="match" href="highlight-painting-currentcolor-003a-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: currentColor;
+ background-color: black;
+ text-decoration: /* currentColor */ underline;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectRangeWith(range => {
+ range.selectNodeContents(target);
+ range.setStart(target.firstChild, 2);
+ range.setEnd(target.firstChild, 7);
+ });
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b-ref.html
new file mode 100644
index 00000000000..cfdb4659727
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: green;
+ background-color: black;
+ text-decoration: /* currentColor */ underline;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b.html
new file mode 100644
index 00000000000..51e643ec68b
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-003b.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘text-decoration-color’ (but not ‘color’) of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection does not take the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘text-decoration-color’ and ‘color’ is not ‘currentColor’.">
+<link rel="match" href="highlight-painting-currentcolor-003b-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: green;
+ background-color: black;
+ text-decoration: /* currentColor */ underline;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectNodeContents(target);
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004-ref.html
new file mode 100644
index 00000000000..0963a7d831c
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: currentColor;
+ background-color: black;
+ text-shadow: 0 2em red, 0 4em currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004.html
new file mode 100644
index 00000000000..d9cce5b0804
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘text-shadow’ of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘text-shadow’.">
+<link rel="match" href="highlight-painting-currentcolor-004-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: currentColor;
+ background-color: black;
+ text-shadow: 0 2em red, 0 4em currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectNodeContents(target);
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a-ref.html
new file mode 100644
index 00000000000..a29a035dc64
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: currentColor;
+ background-color: black;
+ text-shadow: 0 2em red, 0 4em currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b">te<span class="selection">st</span></span><span class="selection"> </span><span class="a"><span class="selection">te</span>st</span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a.html
new file mode 100644
index 00000000000..0ac021c156b
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004a.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘color’ and ‘text-shadow’ of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection takes the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘color’ and ‘text-shadow’.">
+<link rel="match" href="highlight-painting-currentcolor-004a-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: currentColor;
+ background-color: black;
+ text-shadow: 0 2em red, 0 4em currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectRangeWith(range => {
+ range.selectNodeContents(target);
+ range.setStart(target.firstChild, 2);
+ range.setEnd(target.firstChild, 7);
+ });
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b-ref.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b-ref.html
new file mode 100644
index 00000000000..0e0dee02c4c
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b-ref.html
@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="stylesheet" href="support/highlights.css">
+<style>
+ .a {
+ color: yellow;
+ background-color: blue;
+ }
+ .b {
+ color: lime;
+ background-color: blue;
+ }
+ .selection {
+ color: green;
+ background-color: black;
+ text-shadow: 0 2em red, 0 4em currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target"><span class="b"><span class="selection">test</span></span><span class="selection"> </span><span class="a"><span class="selection">test</span></span></div>
diff --git a/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b.html b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b.html
new file mode 100644
index 00000000000..856c2232b71
--- /dev/null
+++ b/tests/wpt/tests/css/css-pseudo/highlight-painting-currentcolor-004b.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Pseudo-Elements Test: ‘currentColor’ in ‘text-shadow’ (but not ‘color’) of overlapping highlights</title>
+<link rel="author" title="Delan Azabani" href="mailto:dazabani@igalia.com">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#highlight-painting">
+<meta name="assert" content="This test checks that ::selection does not take the ‘color’ of the next active highlight below when resolving ‘currentColor’ in ‘text-shadow’ and ‘color’ is not ‘currentColor’.">
+<link rel="match" href="highlight-painting-currentcolor-004b-ref.html">
+<meta name="fuzzy" content="0-120;0-10">
+<link rel="stylesheet" href="support/highlights.css">
+<script src="support/selections.js"></script>
+<style>
+ ::highlight(a) {
+ color: yellow;
+ background-color: blue;
+ }
+ ::highlight(b) {
+ color: lime;
+ background-color: blue;
+ }
+ ::selection {
+ color: green;
+ background-color: black;
+ text-shadow: 0 2em red, 0 4em currentColor;
+ }
+</style>
+<div class="highlight_reftest" id="target">test test</div>
+<script>
+ CSS.highlights.set("b", new Highlight(createRangeForTextOnly(target, 0, 4)));
+ CSS.highlights.set("a", new Highlight(createRangeForTextOnly(target, 5, 9)));
+ selectNodeContents(target);
+</script>
diff --git a/tests/wpt/tests/css/css-pseudo/support/selections.js b/tests/wpt/tests/css/css-pseudo/support/selections.js
index d0cd3409a73..4396bfa326b 100644
--- a/tests/wpt/tests/css/css-pseudo/support/selections.js
+++ b/tests/wpt/tests/css/css-pseudo/support/selections.js
@@ -70,3 +70,14 @@ function trySpellcheck(...nodes) {
}
}, 250);
}
+
+function createRangeForTextOnly(element, start, end) {
+ const textNode = element.firstChild;
+ if (element.childNodes.length != 1 || textNode.nodeName != '#text') {
+ throw new Error('element must contain a single #text node only');
+ }
+ const range = document.createRange();
+ range.setStart(textNode, start);
+ range.setEnd(textNode, end);
+ return range;
+}
diff --git a/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-003.html b/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-003.html
new file mode 100644
index 00000000000..d23b45c3bce
--- /dev/null
+++ b/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-003.html
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<meta name="viewport" content="width=device-width,initial-scale=0.5">
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#unreachable" />
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1905247">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+.content {
+ overflow-x: scroll;
+ scroll-snap-type: x mandatory;
+ white-space: nowrap;
+ max-width: 800px;
+ border: 2px solid black;
+ /* padding-bottom so you can see the scrollbar: */
+ padding-bottom: 10px;
+}
+.item {
+ width: 500px;
+ height: 200px;
+ border: 3px solid orange;
+ box-sizing: border-box;
+ scroll-snap-align: start;
+ display: inline-block;
+}
+</style>
+
+<div id="scroller" class="content">
+ <!-- There's intentionally no whitespace between these tags, so that they're
+ laid out flush with each other with no space character between them. -->
+ <div class="item" style="width: 610px; background:teal"></div
+ ><div class="item" style="width: 200px; background:pink"></div>
+</div>
+
+<script>
+test(() => {
+ scroller.scrollLeft = 6;
+ assert_equals(scroller.scrollLeft, 10);
+}, "Snaps to the positions defined by the element as much as possible");
+</script>
diff --git a/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-004.html b/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-004.html
new file mode 100644
index 00000000000..408f09777f4
--- /dev/null
+++ b/tests/wpt/tests/css/css-scroll-snap/unreachable-snap-positions-004.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<meta name="viewport" content="width=device-width,initial-scale=1">
+<link rel="help" href="https://drafts.csswg.org/css-scroll-snap-1/#unreachable" />
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1905247">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+.content {
+ overflow-y: scroll;
+ scroll-snap-type: y mandatory;
+ white-space: nowrap;
+ max-height: 800px;
+ border: 2px solid black;
+ /* padding-right so you can see the scrollbar: */
+ padding-right: 10px;
+ writing-mode: vertical-lr;
+}
+.item {
+ height: 500px;
+ width: 200px;
+ border: 3px solid orange;
+ box-sizing: border-box;
+ scroll-snap-align: start;
+ display: inline-block;
+ writing-mode: horitontal-tb;
+}
+</style>
+
+<div id="scroller" class="content">
+ <!-- There's intentionally no whitespace between these tags, so that they're
+ laid out flush with each other with no space character between them. -->
+ <div class="item" style="height: 610px; background:teal"></div
+ ><div class="item" style="height: 200px; background:pink"></div>
+</div>
+
+<script>
+test(() => {
+ scroller.scrollTop = 6;
+ assert_equals(scroller.scrollTop, 10);
+}, "Snaps to the positions defined by the element as much as possible");
+</script>
diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002-ref.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002-ref.html
new file mode 100644
index 00000000000..2c7e7abd0f6
--- /dev/null
+++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002-ref.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio reference: Test that fieldset's block size honors automatic content-based minimum, but capped by its maximum block-size</title>
+<style>
+ fieldset {
+ inline-size: 200px;
+ block-size: 20px;
+ background: yellow;
+ }
+
+ legend {
+ background: black;
+ color: white;
+ padding: 3px 6px;
+ }
+</style>
+
+<form>
+ <fieldset>
+ <legend>Choose one item:</legend>
+
+ <input type="radio" id="item1" name="item">
+ <label for="item1">item 1</label><br/>
+
+ <input type="radio" id="item2" name="item">
+ <label for="item2">item 2</label><br/>
+
+ <input type="radio" id="item3" name="item">
+ <label for="item3">item 3</label>
+ </fieldset>
+</form>
diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002.html
new file mode 100644
index 00000000000..5483330fe70
--- /dev/null
+++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/fieldset-element-002.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: Test that fieldset's block size honors automatic content-based minimum, but capped by its maximum block-size</title>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="mozilla" href="https://www.mozilla.org/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum">
+<link rel="match" href="fieldset-element-002-ref.html">
+
+<style>
+ fieldset {
+ inline-size: 200px;
+ aspect-ratio: 20 / 1;
+ max-block-size: 20px;
+ background: yellow;
+ }
+
+ legend {
+ background: black;
+ color: white;
+ padding: 3px 6px;
+ }
+</style>
+
+<form>
+ <fieldset>
+ <legend>Choose one item:</legend>
+
+ <input type="radio" id="item1" name="item">
+ <label for="item1">item 1</label><br/>
+
+ <input type="radio" id="item2" name="item">
+ <label for="item2">item 2</label><br/>
+
+ <input type="radio" id="item3" name="item">
+ <label for="item3">item 3</label>
+ </fieldset>
+</form>
diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-043.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-043.html
new file mode 100644
index 00000000000..a1cd972d4da
--- /dev/null
+++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-043.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: Test the definite max-block-size wins the automatic content-based minimum block-size in flex container's cross axis (block axis)</title>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+
+<style>
+#container {
+ display: flex;
+ inline-size: 100px;
+ aspect-ratio: 2 / 1;
+ background: green;
+ max-block-size: 100px;
+}
+#item {
+ flex: 1;
+ block-size: 200px;
+}
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div id="container">
+ <div id="item"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-044.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-044.html
new file mode 100644
index 00000000000..76f6ac115bd
--- /dev/null
+++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-044.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: Test the definite max-block-size wins the automatic content-based minimum block-size in flex container's main axis (block axis)</title>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+
+<style>
+#container {
+ display: flex;
+ flex-direction: column;
+ inline-size: 100px;
+ aspect-ratio: 2 / 1;
+ background: green;
+ max-block-size: 100px;
+}
+#item {
+ flex: 0 0 200px;
+}
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div id="container">
+ <div id="item"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-042.html b/tests/wpt/tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-042.html
new file mode 100644
index 00000000000..7f836164ada
--- /dev/null
+++ b/tests/wpt/tests/css/css-sizing/aspect-ratio/grid-aspect-ratio-042.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<title>CSS aspect-ratio: Test that grid container's block size honors automatic content-based minimum, but capped by its maximum block-size</title>
+<link rel="author" title="Ting-Yu Lin" href="mailto:tlin@mozilla.com">
+<link rel="author" title="Mozilla" href="https://www.mozilla.org/">
+<link rel="help" href="https://drafts.csswg.org/css-sizing-4/#aspect-ratio-minimum">
+<link rel="match" href="../../reference/ref-filled-green-100px-square.xht">
+
+<style>
+#container {
+ display: grid;
+ inline-size: 100px;
+ aspect-ratio: 2 / 1;
+ background: green;
+ max-block-size: 100px;
+}
+#item {
+ inline-size: 100%;
+ block-size: 200px;
+}
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div id="container">
+ <div id="item"></div>
+</div>
diff --git a/tests/wpt/tests/css/css-text-decor/crashtests/text-decoration-first-line-multi-crash.html b/tests/wpt/tests/css/css-text-decor/crashtests/text-decoration-first-line-multi-crash.html
new file mode 100644
index 00000000000..f6176334ad6
--- /dev/null
+++ b/tests/wpt/tests/css/css-text-decor/crashtests/text-decoration-first-line-multi-crash.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<link rel="help" href="https://crbug.com/345562934">
+<link rel="help" href="https://drafts.csswg.org/css-text-decor-3/#text-decoration-line-property">
+<style>
+.c7 {
+ text-decoration: underline;
+ appearance: button;
+}
+
+.c7::first-line {
+ text-decoration: overline;
+}
+
+.c15 {
+ text-decoration: line-through;
+}
+</style>
+<dfn class="c7"><strong class="c15">test</strong></dfn>
diff --git a/tests/wpt/tests/css/css-transforms/animation/transform-interpolation-007.html b/tests/wpt/tests/css/css-transforms/animation/transform-interpolation-007.html
new file mode 100644
index 00000000000..61ee7618570
--- /dev/null
+++ b/tests/wpt/tests/css/css-transforms/animation/transform-interpolation-007.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>transform interpolation</title>
+<link rel="help" href="https://drafts.csswg.org/css-transforms-1/#matrix-interpolation">
+<meta name="assert" content="transform does not interpolate between non-invertible and invertible matrices">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/interpolation-testcommon.js"></script>
+
+<body>
+ <template id="target-template">
+ <div></div>
+ </template>
+</body>
+
+<script>
+test_no_interpolation({
+ property: 'transform',
+ from: 'matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1)',
+ to: 'matrix(3, 0, 0, 3, 0, 0)',
+});
+</script>
diff --git a/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html
new file mode 100644
index 00000000000..8267b01d01f
--- /dev/null
+++ b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation-ref.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<html>
+<body>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html
new file mode 100644
index 00000000000..fae924d9849
--- /dev/null
+++ b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-discrete-interpolation.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head>
+<title>Animating the "transform" property with a non-invertible matrix should not yield an animation</title>
+<link rel="help" href="https://drafts.csswg.org/css-transforms/">
+<link rel="match" href="transform-non-invertible-discrete-interpolation-ref.html">
+<script src="../../../common/reftest-wait.js"></script>
+<style>
+
+div {
+ width: 100px;
+ height: 100px;
+ background-color: black;
+ animation: anim 100s linear forwards;
+}
+
+@keyframes anim {
+ from { transform: matrix3d(2,0,0,0, 0,2,0,0, 0,0,0,0, 0,0,0,1) }
+}
+
+</style>
+</head>
+<body>
+<div></div>
+<script>
+(async function() {
+ await Promise.all(document.getAnimations().map(animation => animation.ready));
+ await new Promise(requestAnimationFrame);
+ await new Promise(requestAnimationFrame);
+ takeScreenshot();
+})();
+</script>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-no-transition.html b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-no-transition.html
new file mode 100644
index 00000000000..bbb5181a1bd
--- /dev/null
+++ b/tests/wpt/tests/css/css-transforms/animation/transform-non-invertible-no-transition.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>transform interpolation</title>
+<link rel="help" href="https://drafts.csswg.org/css-transforms-1/#matrix-interpolation">
+<meta name="assert" content="transform does not transition between non-invertible and invertible matrices">
+
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/css-transitions/support/helper.js"></script>
+
+<style>
+
+#target {
+ transition: transform 1s;
+}
+
+</style>
+<div id="target"></div>
+<script>
+promise_test(async t => {
+ await waitForAnimationFrames(1);
+ const target = document.getElementById("target");
+ getComputedStyle(target).transform; // ensure there's a before-change style
+ target.style.transform = "matrix3d(2,0,0,0, 0,2,0,0, 0,0,0,0, 0,0,0,1)";
+ assert_equals(document.getAnimations().length, 0, "No transitions");
+}, "Setting 'transform' to a non-invertible matrix does not yield a CSS Transition");
+</script>
diff --git a/tests/wpt/tests/css/css-transitions/CSSTransition-not-canceling.tentative.html b/tests/wpt/tests/css/css-transitions/CSSTransition-not-canceling.tentative.html
new file mode 100644
index 00000000000..4198e665a30
--- /dev/null
+++ b/tests/wpt/tests/css/css-transitions/CSSTransition-not-canceling.tentative.html
@@ -0,0 +1,40 @@
+<!doctype html>
+<meta charset=utf-8>
+<title>Not canceling a CSS transition</title>
+<link rel="help" href="https://drafts.csswg.org/css-transitions/#starting">
+<!-- TODO: Add a more specific link for this once it is specified. -->
+<link rel="help" href="https://drafts.csswg.org/css-transitions-2/#csstransition">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/helper.js"></script>
+<div id="log"></div>
+<script>
+'use strict';
+
+const runDisplayNoneTransitionTest = displayTransitionStyle => {
+ promise_test(async t => {
+ const div = addDiv(t, { style: 'margin-left: 0px' });
+ getComputedStyle(div).marginLeft;
+
+ div.style.transition = 'margin-left 100s';
+ div.style.marginLeft = '1000px';
+
+ const transition = div.getAnimations()[0];
+ await transition.ready;
+ await waitForFrame();
+
+ assert_not_equals(getComputedStyle(div).marginLeft, '1000px',
+ 'transform style is animated before setting "display: none"');
+
+ div.style.transition = `${div.style.transition}, ${displayTransitionStyle}`;
+ div.style.display = 'none';
+
+ assert_not_equals(getComputedStyle(div).marginLeft, '1000px',
+ 'transform style is animated after setting "display: none"');
+ }, `Setting "display: none" with "display" set to transition using "${displayTransitionStyle}" does not cancel running transitions`);
+};
+
+runDisplayNoneTransitionTest('display 100s allow-discrete');
+runDisplayNoneTransitionTest('display 100s, all allow-discrete 100s');
+
+</script>
diff --git a/tests/wpt/tests/css/css-transitions/starting-style-size-container.html b/tests/wpt/tests/css/css-transitions/starting-style-size-container.html
index 1ad609dd909..946ab92e147 100644
--- a/tests/wpt/tests/css/css-transitions/starting-style-size-container.html
+++ b/tests/wpt/tests/css/css-transitions/starting-style-size-container.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<title>CSS Transitions Test: @starting-style inside size @container</title>
<link rel="help" href="https://drafts.csswg.org/css-transitions-2/#defining-before-change-style-the-starting-style-rule">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#animated-containers">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#animated-containers">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/css-transitions/support/helper.js"></script>
diff --git a/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-001-ref.html b/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-001-ref.html
index c9d6eb720f1..91a9600e180 100644
--- a/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-001-ref.html
+++ b/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-001-ref.html
@@ -4,38 +4,60 @@
<link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent">
<style>
-div {
+.container {
border: solid orange;
padding: 1ch;
margin: 1ch;
float: left;
}
-#t1 input { color-scheme: light;}
-#t1 input { accent-color: white; }
-
-#t2 input { color-scheme: light;}
-#t2 input { accent-color: #7f7fff; }
-
-#t3 { background: orange;}
-#t3 input { color-scheme: light;}
-#t3 input { accent-color: #7f7fff; }
+input, #extract-canvas { color-scheme: light; }
+#extract-canvas { background-color: canvas; }
+#t3 { background: orange; }
</style>
-<p>Test passes if in each box bellow, you see a pair of identically colored check-boxes.
+<p>Test passes if in each box below, you see a pair of identically colored check-boxes.
-<div id=t1>
+<div id="extract-canvas"></div>
+<div id=t1 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
-<div id=t2>
+<div id=t2 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
-<div id=t3>
+<div id=t3 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
+
+<script>
+
+ const testColors = [[255,0,0,0], [0,0,255,0.5], [0,0,255,0.5]];
+
+ function getColorComponents(color) {
+ return color.substring(color.indexOf("(") + 1).replace(/\s/g,"").split(",").map(parseFloat);
+ }
+
+ function constructCSSColor(components) {
+ return (components.length == 4 ? "rgba(" : "rgb(") + components.join(", ") + ")";
+ }
+
+ function computeExpectedColor(canvasColor, colorWithAlpha) {
+ const expected = [];
+ for (let i = 0; i < 3; i++)
+ expected.push(canvasColor[i] - canvasColor[i] * colorWithAlpha[3] + colorWithAlpha[i] * colorWithAlpha[3]);
+ return expected;
+ }
+
+ const canvasColorComponents = getColorComponents(getComputedStyle(document.getElementById("extract-canvas")).backgroundColor);
+ for (const [i, container] of document.querySelectorAll(".container").entries()) {
+ container.getElementsByClassName("test")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i]));
+ container.getElementsByClassName("ref")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i]));
+ }
+
+</script> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-002-ref.html b/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-002-ref.html
index 819a5852460..db70dede945 100644
--- a/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-002-ref.html
+++ b/tests/wpt/tests/css/css-ui/reference/transparent-accent-color-002-ref.html
@@ -4,38 +4,60 @@
<link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent">
<style>
-div {
+.container {
border: solid orange;
padding: 1ch;
margin: 1ch;
float: left;
}
-#t1 input { color-scheme: dark;}
-#t1 input { accent-color: black; }
-
-#t2 input { color-scheme: dark;}
-#t2 input { accent-color: #00007f; }
-
-#t3 { background: orange;}
-#t3 input { color-scheme: dark;}
-#t3 input { accent-color: #00007f; }
+input, #extract-canvas { color-scheme: dark; }
+#extract-canvas { background-color: canvas; }
+#t3 { background: orange; }
</style>
-<p>Test passes if in each box bellow, you see a pair of identically colored check-boxes.
+<p>Test passes if in each box below, you see a pair of identically colored check-boxes.
-<div id=t1>
+<div id="extract-canvas"></div>
+<div id=t1 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
-<div id=t2>
+<div id=t2 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
-<div id=t3>
+<div id=t3 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
+
+<script>
+
+ const testColors = [[255,0,0,0], [0,0,255,0.5], [0,0,255,0.5]];
+
+ function getColorComponents(color) {
+ return color.substring(color.indexOf("(") + 1).replace(/\s/g,"").split(",").map(parseFloat);
+ }
+
+ function constructCSSColor(components) {
+ return (components.length == 4 ? "rgba(" : "rgb(") + components.join(", ") + ")";
+ }
+
+ function computeExpectedColor(canvasColor, colorWithAlpha) {
+ const expected = [];
+ for (let i = 0; i < 3; i++)
+ expected.push(canvasColor[i] - canvasColor[i] * colorWithAlpha[3] + colorWithAlpha[i] * colorWithAlpha[3]);
+ return expected;
+ }
+
+ const canvasColorComponents = getColorComponents(getComputedStyle(document.getElementById("extract-canvas")).backgroundColor);
+ for (const [i, container] of document.querySelectorAll(".container").entries()) {
+ container.getElementsByClassName("test")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i]));
+ container.getElementsByClassName("ref")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i]));
+ }
+
+</script> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-ui/transparent-accent-color-001.html b/tests/wpt/tests/css/css-ui/transparent-accent-color-001.html
index 219e24c1689..5a5ad4f0a41 100644
--- a/tests/wpt/tests/css/css-ui/transparent-accent-color-001.html
+++ b/tests/wpt/tests/css/css-ui/transparent-accent-color-001.html
@@ -3,44 +3,64 @@
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
<link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent">
<link rel="match" href="reference/transparent-accent-color-001-ref.html">
-<meta name="assert" content="If the color supplied is partially or fully transparent, it is precomposed over white when in light mode.">
+<meta name="assert" content="If the color supplied is partially or fully transparent, it is precomposed over the color of the light mode canvas.">
+<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-450">
<style>
-div {
+.container {
border: solid orange;
padding: 1ch;
margin: 1ch;
float: left;
}
-#t1 input { color-scheme: light;}
-#t1 .test { accent-color: #ff000000;}
-#t1 .ref { accent-color: white; }
-
-#t2 input { color-scheme: light;}
-#t2 .test { accent-color: #0000ff80;}
-#t2 .ref { accent-color: #7f7fff; }
-
-#t3 { background: orange;}
-#t3 input { color-scheme: light;}
-#t3 .test { accent-color: #0000ff80;}
-#t3 .ref { accent-color: #7f7fff; }
+input, #extract-canvas { color-scheme: light; }
+#extract-canvas { background-color: canvas; }
+#t3 { background: orange; }
</style>
-<p>Test passes if in each box bellow, you see a pair of identically colored check-boxes.
+<p>Test passes if in each box below, you see a pair of identically colored check-boxes.
-<div id=t1>
+<div id="extract-canvas"></div>
+<div id=t1 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
-<div id=t2>
+<div id=t2 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
-<div id=t3>
+<div id=t3 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
+
+<script>
+
+ const testColors = [[255,0,0,0], [0,0,255,0.5], [0,0,255,0.5]];
+
+ function getColorComponents(color) {
+ return color.substring(color.indexOf("(") + 1).replace(/\s/g,"").split(",").map(parseFloat);
+ }
+
+ function constructCSSColor(components) {
+ return (components.length == 4 ? "rgba(" : "rgb(") + components.join(", ") + ")";
+ }
+
+ function computeExpectedColor(canvasColor, colorWithAlpha) {
+ const expected = [];
+ for (let i = 0; i < 3; i++)
+ expected.push(canvasColor[i] - canvasColor[i] * colorWithAlpha[3] + colorWithAlpha[i] * colorWithAlpha[3]);
+ return expected;
+ }
+
+ const canvasColorComponents = getColorComponents(getComputedStyle(document.getElementById("extract-canvas")).backgroundColor);
+ for (const [i, container] of document.querySelectorAll(".container").entries()) {
+ container.getElementsByClassName("test")[0].style.accentColor = constructCSSColor(testColors[i]);
+ container.getElementsByClassName("ref")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i]));
+ }
+
+</script> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-ui/transparent-accent-color-002.html b/tests/wpt/tests/css/css-ui/transparent-accent-color-002.html
index 46b9835d0c1..9bc5022c562 100644
--- a/tests/wpt/tests/css/css-ui/transparent-accent-color-002.html
+++ b/tests/wpt/tests/css/css-ui/transparent-accent-color-002.html
@@ -3,44 +3,64 @@
<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net">
<link rel="help" href="https://drafts.csswg.org/css-ui-4/#widget-accent">
<link rel="match" href="reference/transparent-accent-color-002-ref.html">
-<meta name="assert" content="If the color supplied is partially or fully transparent, it is precomposed over black when in dark mode.">
+<meta name="assert" content="If the color supplied is partially or fully transparent, it is precomposed over the color of the dark mode canvas.">
+<meta name="fuzzy" content="maxDifference=0-1; totalPixels=0-450">
<style>
-div {
+.container {
border: solid orange;
padding: 1ch;
margin: 1ch;
float: left;
}
-#t1 input { color-scheme: dark;}
-#t1 .test { accent-color: #ff000000;}
-#t1 .ref { accent-color: black; }
-
-#t2 input { color-scheme: dark;}
-#t2 .test { accent-color: #0000ff80;}
-#t2 .ref { accent-color: #00007f; }
-
-#t3 { background: orange;}
-#t3 input { color-scheme: dark;}
-#t3 .test { accent-color: #0000ff80;}
-#t3 .ref { accent-color: #00007f; }
+input, #extract-canvas { color-scheme: dark; }
+#extract-canvas { background-color: canvas; }
+#t3 { background: orange; }
</style>
-<p>Test passes if in each box bellow, you see a pair of identically colored check-boxes.
+<p>Test passes if in each box below, you see a pair of identically colored check-boxes.
-<div id=t1>
+<div id="extract-canvas"></div>
+<div id=t1 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
-<div id=t2>
+<div id=t2 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
-<div id=t3>
+<div id=t3 class="container">
<input class=test type=checkbox checked>
<input class=ref type=checkbox checked>
</div>
+
+<script>
+
+ const testColors = [[255,0,0,0], [0,0,255,0.5], [0,0,255,0.5]];
+
+ function getColorComponents(color) {
+ return color.substring(color.indexOf("(") + 1).replace(/\s/g,"").split(",").map(parseFloat);
+ }
+
+ function constructCSSColor(components) {
+ return (components.length == 4 ? "rgba(" : "rgb(") + components.join(", ") + ")";
+ }
+
+ function computeExpectedColor(canvasColor, colorWithAlpha) {
+ const expected = [];
+ for (let i = 0; i < 3; i++)
+ expected.push(canvasColor[i] - canvasColor[i] * colorWithAlpha[3] + colorWithAlpha[i] * colorWithAlpha[3]);
+ return expected;
+ }
+
+ const canvasColorComponents = getColorComponents(getComputedStyle(document.getElementById("extract-canvas")).backgroundColor);
+ for (const [i, container] of document.querySelectorAll(".container").entries()) {
+ container.getElementsByClassName("test")[0].style.accentColor = constructCSSColor(testColors[i]);
+ container.getElementsByClassName("ref")[0].style.accentColor = constructCSSColor(computeExpectedColor(canvasColorComponents, testColors[i]));
+ }
+
+</script> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-values/attr-all-types.html b/tests/wpt/tests/css/css-values/attr-all-types.html
new file mode 100644
index 00000000000..129e1fd6c73
--- /dev/null
+++ b/tests/wpt/tests/css/css-values/attr-all-types.html
@@ -0,0 +1,153 @@
+<!DOCTYPE html>
+<title>CSS Values and Units Test: attr</title>
+<meta name="assert" content="test attr values">
+<link rel="help" href="https://drafts.csswg.org/css-values-5/#attr-notations">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<html>
+ <body>
+ <div id="attr"></div>
+ <div id="expected"></div>
+ </body>
+</html>
+
+<script>
+ const dimensionTypeToUnits = {
+ "length": ["em", "ex", "cap", "ch", "ic", "rem", "lh", "rlh", "vw", "vh ", "vi", "vb", "vmin", "vmax"],
+ "angle": ["deg", "grad", "rad", "turn"],
+ "time": ["ms", "ms"],
+ "frequency": ["Hz", "kHz"],
+ "flex": ["fr"]
+ };
+ const dimensionTypeToProperty = {
+ "length": ["width"],
+ "angle": ["font-style"],
+ "time": ["transition-duration"],
+ "flex": ["grid-template-columns"]
+ }
+
+ function test_valid_attr(property, attrString, attrValue, expectedValue) {
+ var elem = document.getElementById("attr");
+ elem.setAttribute("data-foo", attrValue);
+ elem.style[property]= attrString;
+
+ var expectedElem = document.getElementById("expected");
+ expectedElem.style[property] = expectedValue;
+
+ test(() => {
+ assert_equals(window.getComputedStyle(elem).getPropertyValue(property),
+ window.getComputedStyle(expectedElem).getPropertyValue(property),
+ "Value \'" + attrString + "\', where \'data-foo=" + attrValue +
+ "\' should be valid for the property \'" + property + "\'.");
+ });
+
+ elem.style[property] = null;
+ expectedElem.style[property] = null;
+ }
+
+ function test_invalid_attr(property, attrString, attrValue) {
+ var elem = document.getElementById("attr");
+ var expectedValue = window.getComputedStyle(elem).getPropertyValue(property);
+
+ elem.setAttribute("data-foo", attrValue);
+ elem.style[property]= attrString;
+
+ test(() => {
+ assert_equals(window.getComputedStyle(elem).getPropertyValue(property), expectedValue,
+ "Setting property \'" + property + "\' to the value \'" + attrString +
+ "\', where \'data-foo=" + attrValue + "\' should not change it's value.");
+ });
+ elem.style[property] = null;
+ }
+
+ function test_dimension_types_and_units() {
+ for(const [type, units] of Object.entries(dimensionTypeToUnits)) {
+ const property = dimensionTypeToProperty[type];
+ const val = "3";
+ units.forEach(unit => {
+ const expectedValue = val + unit;
+
+ const dimensionTypeAttrString = 'attr(data-foo ' + type + ')';
+ test_valid_attr(property, dimensionTypeAttrString, expectedValue, expectedValue);
+
+ const dimensionUnitAttrString = 'attr(data-foo ' + unit + ')';
+ test_valid_attr(property, dimensionUnitAttrString, val, expectedValue);
+ });
+ }
+ }
+
+ test_valid_attr('content', 'attr(data-foo string)', 'abc', '"abc"');
+ test_valid_attr('content', 'attr(data-foo string)', 'attr(data-foo)', '"attr(data-foo)"');
+
+ test_valid_attr('background-color', 'attr(data-foo color)', 'red', 'red');
+ test_valid_attr('background-color', 'attr(data-foo color)', '#ff0099aa', '#ff0099aa');
+ test_valid_attr('background-color', 'attr(data-foo color, red)', '10', 'red');
+ test_valid_attr('background-color', 'attr(data-foo color, green)', '1000px', 'green');
+ test_valid_attr('background-color', 'attr(data-foo color, green)', 'rgb(255, 0, 0)', 'green');
+
+ test_valid_attr('font-weight', 'attr(data-foo number)', '10', '10');
+ test_valid_attr('font-weight', 'attr(data-foo number, 30)', '10px', '30');
+ test_valid_attr('font-weight', 'attr(data-foo number, calc(10 + 20))', '10px', '30');
+
+ test_valid_attr('font-size', 'attr(data-foo percentage)', '10%', '10%');
+ test_valid_attr('font-size', 'attr(data-foo percentage, 10px)', 'abc', '10px');
+ test_valid_attr('--x', 'attr(data-foo percentage, abc)', '10', 'abc');
+
+ test_valid_attr('width', 'attr(data-foo length)', '10px', '10px');
+ test_valid_attr('width', 'attr(data-foo length, red)', '10px', '10px');
+ test_valid_attr('width', 'attr(data-foo length, 42px)', 'calc(1px + 3px)', '42px');
+
+ test_valid_attr('font-style', 'attr(data-foo angle)', '10deg', '10deg');
+ test_valid_attr('font-style', 'attr(data-foo angle, 10deg)', '30', '10deg');
+ test_valid_attr('font-style', 'attr(data-foo angle, italic)', '30', 'italic');
+
+ test_valid_attr('transition-duration', 'attr(data-foo time)', '10ms', '10ms');
+ test_valid_attr('transition-duration', 'attr(data-foo time, 30s)', '10m', '30s');
+ test_valid_attr('transition-duration', 'attr(data-foo time, calc(10s + 20s))', '10m', '30s');
+
+ test_valid_attr('grid-template-columns', '30px attr(data-foo flex)', '1fr', '30px 1fr');
+ test_valid_attr('grid-template-columns', 'attr(data-foo flex, 3fr)', '1fr 1fr', '3fr');
+ test_valid_attr('grid-template-columns', 'attr(data-foo flex, calc(1px + 2px))', '10px', '3px');
+
+ test_valid_attr('height', 'attr(data-foo px)', '10', '10px');
+ test_valid_attr('width', 'calc(attr(data-foo px) + 1px)', '10', '11px');
+ test_valid_attr('--x', 'attr(data-foo px) 11px', '10', '10px 11px');
+
+ test_dimension_types_and_units();
+
+ test_invalid_attr('background-color', 'attr(data-foo color)', 'rgb(0 255 0)');
+ test_invalid_attr('background-color', 'attr(data-foo color)', 'color-mix(in lch, red, pink)');
+ test_invalid_attr('background-color', 'attr(data-foo color)', 'light-dark(#333b3c, #efefec)');
+ test_invalid_attr('background-color', 'attr(data-foo red)', 'abc');
+ test_invalid_attr('background-color', 'attr(data-foo, red)', 'abc');
+
+ test_invalid_attr('font-size', 'attr(data-foo number)', '10');
+ test_invalid_attr('font-weight', 'attr(data-foo number,)', '10');
+ test_invalid_attr('font-weight', 'attr(data-foo number)', 'calc(1 + 3)');
+
+ test_invalid_attr('font-size', 'attr(data-foo percentage)', 'abc');
+ test_invalid_attr('font-size', 'attr(data-foo percentage)', '10% a');
+ test_invalid_attr('font-size', 'attr(data-foo percentage, 10rad)', 'abc');
+
+ test_invalid_attr('width', 'attr(data-foo length)', '10');
+ test_invalid_attr('width', 'attr(data-foo length, 30)', 'calc(10 + 20)');
+ test_invalid_attr('width', 'attr(data-foo length, calc(10 + 20))', 'abc');
+
+ test_invalid_attr('font-style', 'attr(data-foo angle)', '10%');
+ test_invalid_attr('font-style', 'attr(data-foo angle)', 'calc(10px + 20px)');
+ test_invalid_attr('font-style', 'attr(data-foo angle, calc(10 + 20))', 'calc(10px + 20px)');
+
+ test_invalid_attr('transition-duration', 'attr(data-foo time)', '10');
+ test_invalid_attr('transition-duration', 'attr(data-foo time)', '10 ms');
+ test_invalid_attr('transition-duration', 'attr(data-foo time)', 'calc(1ms + 2ms)s');
+
+ test_invalid_attr('grid-template-columns', 'attr(data-foo flex)', '10px');
+ test_invalid_attr('grid-template-columns', 'attr(data-foo flex)', '"30fr"');
+ test_invalid_attr('grid-template-columns', 'attr(data-foo flex, calc(1deg + 2deg))', '10px');
+
+ test_invalid_attr('width', 'attr(data-foo px)', '10px');
+ test_invalid_attr('height', 'attr(data-foo fr)', '10');
+ test_invalid_attr('transition-duration', 'attr(data-foo ms)', '10px');
+ test_invalid_attr('transition-duration', 'attr(data-foo ms)', '10px foo');
+</script> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-values/attr-invalidation.html b/tests/wpt/tests/css/css-values/attr-invalidation.html
new file mode 100644
index 00000000000..a48556e5ff7
--- /dev/null
+++ b/tests/wpt/tests/css/css-values/attr-invalidation.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<title>CSS Values and Units Test: attr() invalidation</title>
+<meta name="assert" content="Test attr() invalidation">
+<link rel="help" href="https://drafts.csswg.org/css-values/#attr-notation">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<style>
+ div {
+ width: attr(data-foo length);
+ }
+</style>
+
+<html>
+ <body>
+ <div id="div" data-foo="10px"></div>
+ </body>
+</html>
+
+<script>
+ setup({ single_test: true });
+ let elem = document.getElementById("div");
+ let old_width = window.getComputedStyle(elem).getPropertyValue("width");
+ elem.setAttribute("data-foo", "30px");
+ let new_width = window.getComputedStyle(elem).getPropertyValue("width");
+ assert_not_equals(new_width, old_width);
+ done();
+</script> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child-ref.html b/tests/wpt/tests/css/css-view-transitions/content-escapes-clip-with-abspos-child-ref.html
index 1e22d6f66d7..1e22d6f66d7 100644
--- a/tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child-ref.html
+++ b/tests/wpt/tests/css/css-view-transitions/content-escapes-clip-with-abspos-child-ref.html
diff --git a/tests/wpt/tests/css/css-view-transitions/new-content-escapes-clip-with-abspos-child.html b/tests/wpt/tests/css/css-view-transitions/new-content-escapes-clip-with-abspos-child.html
new file mode 100644
index 00000000000..4c90a78b505
--- /dev/null
+++ b/tests/wpt/tests/css/css-view-transitions/new-content-escapes-clip-with-abspos-child.html
@@ -0,0 +1,63 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<title>View transitions: view-transition-name element, when captured escapes its clips even if it has an abspos child</title>
+<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
+<link rel="author" title="Tim Nguyen" href="https://github.com/nt1m">
+<link rel="match" href="content-escapes-clip-with-abspos-child-ref.html">
+<script src="/common/reftest-wait.js"></script>
+
+<style>
+#clipper {
+ border-radius: 20px;
+ overflow: hidden;
+ width: max-content;
+}
+#target {
+ width: 100px;
+ height: 100px;
+ background: lightblue;
+ view-transition-name: target;
+}
+#abspos {
+ position: absolute;
+ left: 0;
+ width: 50px;
+ height: 50px;
+ background: pink;
+}
+
+:root { view-transition-name: none }
+
+::view-transition {
+ background: rebeccapurple;
+}
+
+::view-transition-old(*) {
+ animation: unset;
+ opacity: 0;
+}
+::view-transition-new(*) {
+ animation: unset;
+ opacity: 1;
+}
+::view-transition-group(*) {
+ animation-play-state: paused;
+}
+</style>
+
+
+<div id=clipper>
+ <div id=target>
+ <div id=abspos></div>
+ </div>
+</div>
+
+<script>
+function runTest() {
+ document.startViewTransition().ready.then(takeScreenshot);
+}
+
+requestAnimationFrame(() => requestAnimationFrame(() => {
+ requestAnimationFrame(runTest);
+}));
+</script>
diff --git a/tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child.html b/tests/wpt/tests/css/css-view-transitions/old-content-escapes-clip-with-abspos-child.html
index b16b02bd632..652bc9f952a 100644
--- a/tests/wpt/tests/css/css-view-transitions/element-escapes-clip-with-abspos-child.html
+++ b/tests/wpt/tests/css/css-view-transitions/old-content-escapes-clip-with-abspos-child.html
@@ -3,7 +3,7 @@
<title>View transitions: view-transition-name element, when captured escapes its clips even if it has an abspos child</title>
<link rel="help" href="https://www.w3.org/TR/css-transitions-1/">
<link rel="author" href="mailto:vmpstr@chromium.org">
-<link rel="match" href="element-escapes-clip-with-abspos-child-ref.html">
+<link rel="match" href="content-escapes-clip-with-abspos-child-ref.html">
<script src="/common/reftest-wait.js"></script>
<style>
diff --git a/tests/wpt/tests/css/css-view-transitions/root-scrollbar-with-fixed-background-ref.html b/tests/wpt/tests/css/css-view-transitions/root-scrollbar-with-fixed-background-ref.html
index ae1ff38f2f6..bc2c5862bf5 100644
--- a/tests/wpt/tests/css/css-view-transitions/root-scrollbar-with-fixed-background-ref.html
+++ b/tests/wpt/tests/css/css-view-transitions/root-scrollbar-with-fixed-background-ref.html
@@ -1,4 +1,5 @@
-<!DOCTYPE html >
+<!DOCTYPE html>
+<html class="reftest-wait">
<title>View transitions: capture root element with scrollbar (ref)</title>
<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
<link rel="author" href="mailto:khushalsagar@chromium.org">
@@ -20,7 +21,7 @@ body {
</style>
<div id=container>
- <div id=first></div>
+ <div id=first></div>
</div>
<script>
diff --git a/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-nested.html b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-nested.html
new file mode 100644
index 00000000000..e34903a4a22
--- /dev/null
+++ b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-nested.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<title>View transitions: nested shadow parts should work with view-transition-name</title>
+<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
+<link rel="match" href="names-are-tree-scoped-ref.html">
+<script src="/common/reftest-wait.js"></script>
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ background: red;
+}
+
+::part(party) {
+ view-transition-name: party;
+}
+
+:root { view-transition-name: none; }
+html::view-transition-group(*) { animation-play-state: paused; }
+html::view-transition-old(*) { animation: unset; opacity: 0 }
+html::view-transition-new(*) { animation: unset; opacity: 0 }
+html::view-transition-group(party) {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+
+<custom-component>
+ <template shadowrootmode="open">
+ <nested-component exportparts="party">
+ <style>
+ div {
+ width: 100px;
+ height: 100px;
+ }
+ </style>
+ <div part="party"></div>
+ </nested-component>
+ </template>
+</custom-component>
+
+<script>
+failIfNot(document.startViewTransition, "Missing document.startViewTransition");
+
+function runTest() {
+ document.startViewTransition().ready.then(takeScreenshot);
+}
+onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest));
+</script>
+
+</body> \ No newline at end of file
diff --git a/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-overridden-by-important.html b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-overridden-by-important.html
new file mode 100644
index 00000000000..139fbd01b76
--- /dev/null
+++ b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name-overridden-by-important.html
@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<title>View transitions: shadow parts should give precedence to !important</title>
+<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
+<link rel="match" href="names-are-tree-scoped-ref.html">
+<script src="/common/reftest-wait.js"></script>
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ background: green;
+ position: absolute;
+}
+
+::part(party) {
+ view-transition-name: animate-me;
+}
+
+html {
+ view-transition-name: none;
+}
+
+html::view-transition-group(*) { animation-play-state: paused; }
+html::view-transition-old(*) { animation: unset; opacity: 0 }
+html::view-transition-new(*) { animation: unset; opacity: 0 }
+html::view-transition-group(animate-me) {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: red;
+}
+</style>
+
+<div></div>
+
+<custom-component>
+ <template shadowrootmode="open">
+ <style>
+ div {
+ width: 100px;
+ height: 100px;
+ position: absolute;
+ view-transition-name: please-dont-animate-me !important;
+ }
+ </style>
+ <div part="party"></div>
+ </template>
+</custom-component>
+
+<script>
+failIfNot(document.startViewTransition, "Missing document.startViewTransition");
+
+function runTest() {
+ document.startViewTransition().ready.then(takeScreenshot);
+}
+onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest));
+</script>
+
+</body>
diff --git a/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name.html b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name.html
new file mode 100644
index 00000000000..192fbca20c9
--- /dev/null
+++ b/tests/wpt/tests/css/css-view-transitions/shadow-part-with-name.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<html class=reftest-wait>
+<title>View transitions: shadow parts </title>
+<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/">
+<link rel="match" href="names-are-tree-scoped-ref.html">
+<script src="/common/reftest-wait.js"></script>
+<style>
+div {
+ width: 100px;
+ height: 100px;
+ background: red;
+}
+
+::part(party) {
+ view-transition-name: party;
+}
+
+:root { view-transition-name: none; }
+html::view-transition-group(*) { animation-play-state: paused; }
+html::view-transition-old(*) { animation: unset; opacity: 0 }
+html::view-transition-new(*) { animation: unset; opacity: 0 }
+html::view-transition-group(party) {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ background: green;
+}
+</style>
+
+<custom-component>
+ <template shadowrootmode="open">
+ <style>
+ div {
+ width: 100px;
+ height: 100px;
+ }
+ </style>
+ <div part="party"></div>
+ </template>
+</custom-component>
+
+<script>
+failIfNot(document.startViewTransition, "Missing document.startViewTransition");
+
+function runTest() {
+ document.startViewTransition().ready.then(takeScreenshot);
+}
+onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest));
+</script>
+
+</body>
diff --git a/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple-ref.html b/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple-ref.html
new file mode 100644
index 00000000000..8443768cc74
--- /dev/null
+++ b/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple-ref.html
@@ -0,0 +1,5 @@
+<!doctype html>
+<meta charset="utf-8">
+<svg width="200" height="200" viewBox="0 0 40 40">
+ <path fill="#333333" d="M32 14h2v14h-2z"></path>
+</svg>
diff --git a/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple.html b/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple.html
new file mode 100644
index 00000000000..aebea6ea1fb
--- /dev/null
+++ b/tests/wpt/tests/css/css-viewport/zoom/svg-path-simple.html
@@ -0,0 +1,8 @@
+<!doctype html>
+<meta charset="utf-8">
+<link rel="help" href="https://drafts.csswg.org/css-viewport/#zoom-property">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1906270">
+<link rel="match" href="svg-path-simple-ref.html">
+<svg style="zoom: 2" width="100" height="100" viewBox="0 0 20 20">
+ <path fill="#333333" d="M16 7h1v7h-1z"></path>
+</svg>
diff --git a/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox-ref.html b/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox-ref.html
new file mode 100644
index 00000000000..b58eb47a23c
--- /dev/null
+++ b/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox-ref.html
@@ -0,0 +1,7 @@
+<!doctype html>
+<div class="container">
+<svg width="46" height="46" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <circle cx="11.5" cy="11.5" r="11.5" fill="yellow"></circle>
+ <path d="M17.351 14.579c-.855-.064-1.645-.28-3.188-.99a.58.58 0 00-.741.23l-.683 1.148a.43.43 0 01-.607.14 16.749 16.749 0 01-2.316-1.923 16.748 16.748 0 01-1.923-2.316.43.43 0 01.14-.607l1.148-.683a.58.58 0 00.23-.741c-.71-1.544-.926-2.334-.99-3.188a.657.657 0 00-.71-.647h-.835c-.46 0-.895.215-1.174.583-.783 1.033-.803 2.196-.577 3.39A11.13 11.13 0 008.21 14.79a11.13 11.13 0 005.813 3.086c1.195.226 2.358.206 3.391-.577.368-.279.583-.713.583-1.174v-.835a.657.657 0 00-.647-.71z" fill="#2F9FBC"></path>
+</svg>
+</div>
diff --git a/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox.html b/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox.html
new file mode 100644
index 00000000000..d5c2336bdd0
--- /dev/null
+++ b/tests/wpt/tests/css/css-viewport/zoom/svg-viewBox.html
@@ -0,0 +1,10 @@
+<!doctype html>
+<meta charset="utf-8">
+<link rel="help" href="https://drafts.csswg.org/css-viewport/#zoom-property">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1905023">
+<link rel="match" href="svg-viewBox-ref.html">
+<svg width="23" height="23" style="zoom: 2" viewBox="0 0 23 23" fill="none" xmlns="http://www.w3.org/2000/svg">
+ <circle cx="11.5" cy="11.5" r="11.5" fill="yellow"></circle>
+ <path d="M17.351 14.579c-.855-.064-1.645-.28-3.188-.99a.58.58 0 00-.741.23l-.683 1.148a.43.43 0 01-.607.14 16.749 16.749 0 01-2.316-1.923 16.748 16.748 0 01-1.923-2.316.43.43 0 01.14-.607l1.148-.683a.58.58 0 00.23-.741c-.71-1.544-.926-2.334-.99-3.188a.657.657 0 00-.71-.647h-.835c-.46 0-.895.215-1.174.583-.783 1.033-.803 2.196-.577 3.39A11.13 11.13 0 008.21 14.79a11.13 11.13 0 005.813 3.086c1.195.226 2.358.206 3.391-.577.368-.279.583-.713.583-1.174v-.835a.657.657 0 00-.647-.71z" fill="#2F9FBC">
+ </path>
+</svg>
diff --git a/tests/wpt/tests/css/cssom/CSSContainerRule.tentative.html b/tests/wpt/tests/css/cssom/CSSContainerRule.tentative.html
index 4e01c0b4700..4258aeb8ff8 100644
--- a/tests/wpt/tests/css/cssom/CSSContainerRule.tentative.html
+++ b/tests/wpt/tests/css/cssom/CSSContainerRule.tentative.html
@@ -3,7 +3,7 @@
<title>CSSContainerRule</title>
<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io">
<link rel="author" title="Mozilla" href="https://mozilla.org">
-<link rel="help" href="https://drafts.csswg.org/css-contain-3/#the-csscontainerrule-interface">
+<link rel="help" href="https://drafts.csswg.org/css-conditional-5/#the-csscontainerrule-interface">
<script src=/resources/testharness.js></script>
<script src=/resources/testharnessreport.js></script>
<style id="sheet"></style>
diff --git a/tests/wpt/tests/css/cssom/page-descriptors.html b/tests/wpt/tests/css/cssom/page-descriptors.html
index 5cf0a6a703d..e77b0df8de7 100644
--- a/tests/wpt/tests/css/cssom/page-descriptors.html
+++ b/tests/wpt/tests/css/cssom/page-descriptors.html
@@ -3,9 +3,22 @@
<head>
<link rel="author" title="Mozilla" href="https://mozilla.org">
<link rel="help" href="https://drafts.csswg.org/cssom/#the-cssstyledeclaration-interface">
- <title>Page descriptors shouldn't be exposed to CSS Style declarations</title>
+ <title>CSSPageDescriptors properties tests</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
+ <style>
+@page {
+ size: a3;
+ page-orientation: rotate-right;
+ margin: 1em 24px 2in 101.5mm;
+}
+@page {
+ size: jis-b5 landscape;
+}
+@page {
+ size: 216mm;
+}
+ </style>
</head>
<body>
<div id="target"></div>
@@ -15,8 +28,16 @@
let element = document.getElementById("target");
let computedStyle = window.getComputedStyle(element);
let style = element.style;
+let styleSheet = document.styleSheets[0];
+let marginNames = ["left", "right", "top", "bottom"];
+let pageDescriptors = ["margin", "page-orientation", "size"];
+marginNames.forEach(function(n){
+ pageDescriptors.push("margin-" + n);
+ pageDescriptors.push("margin" + n[0].toUpperCase() + n.slice(1));
+});
test(t => {
+ // Check that size isn't exposed on all CSS style declarations.
assert_equals(computedStyle.size, undefined,
"computed style should not have size property");
assert_equals(computedStyle.getPropertyValue("size"), "",
@@ -34,6 +55,63 @@ test(t => {
assert_equals(style.getPropertyValue("size"), "",
"style getPropertyValue(\"size\") should be empty after assigning size=" + val);
}
+ pageDescriptors.forEach(function(prop){
+ assert_own_property(styleSheet.cssRules[0].style.__proto__, prop,
+ "CSSPageDescriptors should have property " + prop);
+ });
+ assert_equals(styleSheet.cssRules[0].style.size, "a3");
+ assert_equals(styleSheet.cssRules[0].style.pageOrientation, "rotate-right");
+ assert_equals(styleSheet.cssRules[0].style.getPropertyValue("page-orientation"), "rotate-right",
+ 'Value of page-orientation should match pageOrientation from CSS');
+ assert_equals(styleSheet.cssRules[1].style.size, "jis-b5 landscape");
+ assert_equals(styleSheet.cssRules[2].style.size, "216mm");
+
+ // Ensure we can set the size property to a valid value.
+ styleSheet.cssRules[2].style.size = "portrait";
+ assert_equals(styleSheet.cssRules[2].style.size, "portrait",
+ 'Should have been able to set size property to "portrait" on CSSPageDescriptors');
+ // Ensure we cannot set the size property to an invalid property.
+ styleSheet.cssRules[2].style.size = "notarealsize";
+ assert_equals(styleSheet.cssRules[2].style.size, "portrait",
+ 'Should not have been able to set size property to "notarealsize" on CSSPageDescriptors');
+
+ // Ensure we can set the orientation property to a valid value.
+ styleSheet.cssRules[2].style.pageOrientation = "rotate-left";
+ assert_equals(styleSheet.cssRules[2].style.pageOrientation, "rotate-left",
+ 'Should have been able to set pageOrientation property to "rotate-left" on CSSPageDescriptors');
+ assert_equals(styleSheet.cssRules[2].style.getPropertyValue("page-orientation"), "rotate-left",
+ 'Value of page-orientation should match pageOrientation after setting from script');
+ // Ensure we cannot set the orientation property to an invalid property.
+ styleSheet.cssRules[2].style.pageOrientation = "schmotate-schmeft";
+ assert_equals(styleSheet.cssRules[2].style.pageOrientation, "rotate-left",
+ 'Should not have been able to set pageOrientation property to "schmotate-schmeft" on CSSPageDescriptors');
+
+ // Ensure we cannot set invalid page properties.
+ styleSheet.cssRules[2].style.setProperty("float", "left");
+ assert_equals(styleSheet.cssRules[2].style.cssFloat, undefined);
+
+ assert_equals(styleSheet.cssRules[0].style.marginLeft, "101.5mm");
+ assert_equals(styleSheet.cssRules[0].style.marginRight, "24px");
+ assert_equals(styleSheet.cssRules[0].style.marginTop, "1em");
+ assert_equals(styleSheet.cssRules[0].style.marginBottom, "2in");
+ marginNames.forEach(function(name){
+ let name1 = "margin-" + name;
+ let name2 = "margin" + name[0].toUpperCase() + name.slice(1);
+ assert_equals(styleSheet.cssRules[0].style[name1],
+ styleSheet.cssRules[0].style[name2],
+ "CSSPageDescriptors " + name1 + " and " + name2 + " should be the same.");
+ // Attempt setting through each name and ensure it is represented in the other.
+ styleSheet.cssRules[0].style[name1] = "99px";
+ assert_equals(styleSheet.cssRules[0].style[name1], "99px",
+ "Should have been able to set " + name1 + " property on CSSPageDescriptors");
+ assert_equals(styleSheet.cssRules[0].style[name2], "99px",
+ "Setting " + name1 + " on CSSPageDescriptors should also set " + name2);
+ styleSheet.cssRules[0].style[name2] = "216px";
+ assert_equals(styleSheet.cssRules[0].style[name2], "216px",
+ "Should have been able to set " + name2 + " property on CSSPageDescriptors");
+ assert_equals(styleSheet.cssRules[0].style[name1], "216px",
+ "Setting " + name2 + " on CSSPageDescriptors should also set " + name1);
+ });
});
</script>
</body>
diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-basic-blur.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-basic-blur.html
new file mode 100644
index 00000000000..03b6c25fee0
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-basic-blur.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<title>'backdrop-filter'</title>
+<meta name=fuzzy content="maxDifference=0-40;totalPixels=0-30000">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="match" href="reference/backdrop-filter-basic-blur-ref.html">
+<div>
+ <p>Expected: A red box with three blurred boxes on top of it.</p>
+ <p>All three should have similar levels of blur and opacity applied.</p>
+</div>
+<div class="colorbox">
+ <div class="filterbox box1"></div>
+ <div class="filterbox box2"></div>
+ <div class="filterbox box3"></div>
+</div>
+
+<style>
+.colorbox {
+ width: 200px; height: 200px;
+ background: red;
+ position: absolute;
+ left: 150px;
+ top: 150px;
+}
+.filterbox {
+ display: block;
+ position: absolute;
+ left: 100px;
+ width: 150px;
+ height: 100px;
+ margin: 0px auto;
+ border: 1px solid blue;
+ backdrop-filter: blur(10px);
+}
+.box1 {
+ top: -50px;
+ background: #0000ff7f;
+}
+.box2 {
+ top: 150px;
+}
+.box3 {
+ top: 50px;
+ left: -100px;
+ opacity: 0.6;
+}
+</style>
diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-boundary.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-boundary.html
new file mode 100644
index 00000000000..9f371387abf
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-boundary.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name=fuzzy content="maxDifference=0-20;totalPixels=0-100000">
+<title>backdrop-filter: Correctly apply backdrop-filter with an SVG filter</title>
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="match" href="reference/backdrop-filter-boundary-ref.html">
+<style>
+.bg {
+ position: relative;
+ display: inline-block;
+ width: 160px;
+ height: 90px;
+ background-image: url("resources/reference.png");
+}
+.fg {
+ position: absolute;
+ left: 5px;
+ top: 5px;
+ width: 150px;
+ height: 80px;
+}
+body {
+ background-color: lime;
+}
+</style>
+<div style="width:550px">
+ <div class="bg"><div class="fg" style="backdrop-filter: blur(3px);"></div></div>
+ <div class="bg"><div class="fg" style="backdrop-filter: blur(6px);"></div></div>
+ <div class="bg"><div class="fg" style="backdrop-filter: blur(12px);"></div></div>
+ <div class="bg"><div class="fg" style="backdrop-filter: blur(24px);"></div></div>
+ <div class="bg"><div class="fg" style="backdrop-filter: blur(48px);"></div></div>
+ <div class="bg"><div class="fg" style="backdrop-filter: blur(96px);"></div></div>
+</div>
+
+<!-- This should show an increasing series of blurred blocks. No lime green should
+ be brought in to the blurred regions. -->
diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-clipping-2.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-clipping-2.html
new file mode 100644
index 00000000000..0c9bed73c89
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-clipping-2.html
@@ -0,0 +1,58 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name=fuzzy content="maxDifference=0-20;totalPixels=0-10000">
+<title>backdrop-filter: Filter input is at element bounds</title>
+<link rel="author" href="mailto:masonf@chromium.org">
+<link rel="author" href="mailto:flackr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="match" href="reference/backdrop-filter-edge-clipping-2-ref.html">
+
+<!-- Expected: A white box with a blue border, surrounded by green.
+ A red blurred region should be seen at the bottom of the white box.
+ No green should be observed within the white box.
+ No dark/black should be observed within the white box either. -->
+
+<div class="greenbox top"></div>
+<div class="greenbox right"></div>
+<div class="greenbox bottom"></div>
+<div class="redline"></div>
+<div class="filterbox"></div>
+<style>
+.filterbox {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ top: 150px;
+ left: 0px;
+ backdrop-filter: blur(10px);
+}
+.greenbox {
+ position:absolute;
+ width: 160px;
+ height: 50px;
+ background: green;
+}
+.redline {
+ position:absolute;
+ width: 90px;
+ height: 5px;
+ top:245px;
+ left:5px;
+ background: red;
+}
+.top {
+ top:100px;
+ left: 0;
+}
+.right {
+ top:130px;
+ left: 102px;
+ width: 58px;
+ height: 150px;
+}
+.bottom {
+ top:250px;
+ left: 0;
+ height: 60px;
+}
+</style>
diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror-ref.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror-ref.html
deleted file mode 100644
index c80dcb04e5c..00000000000
--- a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror-ref.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE html>
-<meta charset="utf-8">
-<title>backdrop-filter: Sampled pixels beyond edge should mirror back into the content.</title>
-<link rel="author" href="mailto:flackr@chromium.org">
-
-<div class="clip">
- <div class="filter">
- <div class="border"></div>
- </div>
-</div>
-<div style="position:absolute;top:100px;will-change:transform;">
- <p>Expected above: A pure white box with a very small hint of the 1px blue border blurred inside.</p>
-</div>
-
-<style>
-.clip {
- position: absolute;
- width: 100px;
- height: 100px;
- top: 8px;
- left: 8px;
- overflow: clip;
-}
-.filter {
- position: absolute;
- width: 100px;
- height: 100px;
- top: 0px;
- left: 0px;
- filter: blur(10px);
-}
-.border {
- position: absolute;
- width: 302px;
- height: 302px;
- top: -101px;
- left: -101px;
- background:
- repeating-linear-gradient(0deg, blue 0px, blue 2px, transparent 2px, transparent 100px),
- repeating-linear-gradient(90deg, blue 0px, blue 2px, transparent 2px, transparent 100px);
-}
-</style>
diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror.html
index c11d2f2733e..b56bddf7ad2 100644
--- a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror.html
+++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-mirror.html
@@ -4,7 +4,7 @@
<title>backdrop-filter: Sampled pixels beyond edge should mirror back into the content.</title>
<link rel="author" href="mailto:flackr@chromium.org">
<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#backdrop-filter-operation">
-<link rel="match" href="backdrop-filter-edge-mirror-ref.html">
+<link rel="match" href="reference/backdrop-filter-edge-mirror-ref.html">
<div class="box border"></div>
<div class="box filter"></div>
diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-pixels-2.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-pixels-2.html
new file mode 100644
index 00000000000..8b87ef95c02
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-edge-pixels-2.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta name=fuzzy content="maxDifference=0-20;totalPixels=0-30000">
+<link rel="author" href="mailto:masonf@chromium.org">
+<link rel="author" href="mailto:flackr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="match" href="reference/backdrop-filter-edge-pixels-2-ref.html">
+
+<div class="red_square"></div>
+<div class="filter"></div>
+
+<style>
+div {
+ width: 100px;
+ position: absolute;
+}
+body { overflow: hidden; margin: 0;}
+.red_square {
+ height: 100px;
+ left:30px;
+ top: 20px;
+ background: red;
+ transform: rotate(30deg);
+}
+.filter {
+ height: 200px;
+ background: transparent;
+ backdrop-filter: blur(20px);
+}
+</style>
diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-svg-blur.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-svg-blur.html
new file mode 100644
index 00000000000..eff40c9e0fa
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-svg-blur.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<meta name=fuzzy content="maxDifference=0-20;totalPixels=0-10000">
+<title>backdrop-filter: Correctly apply backdrop-filter with an SVG filter</title>
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<link rel="match" href="reference/backdrop-filter-svg-blur-ref.html">
+
+<p>The green box should filter the blue box.</p>
+
+<svg width="200" height="200">
+ <rect width="50" height="50" fill="blue"></rect>
+ <rect x="20" y="20" width="50" height="50" fill="green" opacity="0.5" style="backdrop-filter: blur(10px);"></rect>
+</svg>
diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html
new file mode 100644
index 00000000000..20775bc22f3
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-basic-blur-ref.html
@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<title>'backdrop-filter'</title>
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<script src="../support/simulate-backdrop-blur.js"></script>
+<div>
+ <p>Expected: A red box with three blurred boxes on top of it.</p>
+ <p>All three should have similar levels of blur and opacity applied.</p>
+</div>
+<div class="colorbox">
+ <div class="filterbox box1"></div>
+ <div class="filterbox box2"></div>
+ <div class="filterbox box3"></div>
+</div>
+
+<style>
+.colorbox {
+ width: 200px; height: 200px;
+ background: red;
+ position: absolute;
+ left: 150px;
+ top: 150px;
+}
+.filterbox {
+ display: block;
+ position: absolute;
+ left: 100px;
+ width: 150px;
+ height: 100px;
+ margin: 0px auto;
+ border: 1px solid blue;
+}
+.box1 {
+ top: -50px;
+ background: #0000ff7f;
+}
+.box2 {
+ top: 150px;
+}
+.box3 {
+ top: 50px;
+ left: -100px;
+ opacity: 0.6;
+}
+</style>
+<script>
+ for (let box of document.querySelectorAll('.filterbox')) {
+ simulateBackdropBlur(box, [document.querySelector('.colorbox')], 10);
+ }
+</script>
diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-boundary-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-boundary-ref.html
new file mode 100644
index 00000000000..6cf03dde8c5
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-boundary-ref.html
@@ -0,0 +1,41 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>backdrop-filter: Correctly apply backdrop-filter with an SVG filter</title>
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<script src="../support/simulate-backdrop-blur.js"></script>
+<style>
+.bg {
+ position: relative;
+ display: inline-block;
+ width: 160px;
+ height: 90px;
+ background-image: url("../resources/reference.png");
+}
+.fg {
+ position: absolute;
+ left: 5px;
+ top: 5px;
+ width: 150px;
+ height: 80px;
+}
+body {
+ background-color: lime;
+}
+</style>
+<div style="width:550px">
+ <div class="bg"><div class="fg" data-blur="3px"></div></div>
+ <div class="bg"><div class="fg" data-blur="6px"></div></div>
+ <div class="bg"><div class="fg" data-blur="12px"></div></div>
+ <div class="bg"><div class="fg" data-blur="24px"></div></div>
+ <div class="bg"><div class="fg" data-blur="48px"></div></div>
+ <div class="bg"><div class="fg" data-blur="96px"></div></div>
+</div>
+
+<script>
+ for (let fg of document.querySelectorAll(".fg")) {
+ simulateBackdropBlur(fg, [fg.parentElement], parseInt(fg.getAttribute('data-blur')));
+ }
+</script>
+
+<!-- This should show an increasing series of blurred blocks. No lime green should
+ be brought in to the blurred regions. -->
diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html
new file mode 100644
index 00000000000..5d035cb195a
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-clipping-2-ref.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>backdrop-filter: Filter input is at element bounds</title>
+<link rel="author" href="mailto:masonf@chromium.org">
+<link rel="author" href="mailto:flackr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<script src="../support/simulate-backdrop-blur.js"></script>
+
+<!-- Expected: A white box with a blue border, surrounded by green.
+ A red blurred region should be seen at the bottom of the white box.
+ No green should be observed within the white box.
+ No dark/black should be observed within the white box either. -->
+
+<div class="greenbox top"></div>
+<div class="greenbox right"></div>
+<div class="greenbox bottom"></div>
+<div class="redline"></div>
+<div class="filterbox"></div>
+<style>
+.filterbox {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ top: 150px;
+ left: 0px;
+}
+.greenbox {
+ position:absolute;
+ width: 160px;
+ height: 50px;
+ background: green;
+}
+.redline {
+ position:absolute;
+ width: 90px;
+ height: 5px;
+ top:245px;
+ left:5px;
+ background: red;
+}
+.top {
+ top:100px;
+ left: 0;
+}
+.right {
+ top:130px;
+ left: 102px;
+ width: 58px;
+ height: 150px;
+}
+.bottom {
+ top:250px;
+ left: 0;
+ height: 60px;
+}
+</style>
+<script>
+ const filterBox = document.querySelector('.filterbox');
+ simulateBackdropBlur(filterBox, Array.prototype.slice.apply(document.body.querySelectorAll('div')).filter(c => c != filterBox), 10);
+</script>
diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html
new file mode 100644
index 00000000000..4c1dc985082
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-mirror-ref.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>backdrop-filter: Sampled pixels beyond edge should mirror back into the content.</title>
+<link rel="author" href="mailto:flackr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#backdrop-filter-operation">
+<script src="../support/simulate-backdrop-blur.js"></script>
+
+<div class="box border"></div>
+<div class="box filter"></div>
+<div style="position:absolute;top:100px;will-change:transform;">
+ <p>Expected above: A pure white box with a very small hint of the 1px blue border blurred inside.</p>
+</div>
+
+<style>
+.box {
+ position: absolute;
+ width: 100px;
+ height: 100px;
+ top: 8px;
+ left: 8px;
+ box-sizing: border-box;
+}
+.border {
+ border: 1px solid blue;
+}
+</style>
+<script>
+simulateBackdropBlur(document.querySelector('.filter'), [document.querySelector('.border')], 10);
+</script>
diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html
new file mode 100644
index 00000000000..bb482e67ffa
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-edge-pixels-2-ref.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<link rel="author" href="mailto:masonf@chromium.org">
+<link rel="author" href="mailto:flackr@chromium.org">
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<script src="../support/simulate-backdrop-blur.js"></script>
+<div class="red_square"></div>
+<div class="filter"></div>
+
+<style>
+div {
+ width: 100px;
+ position: absolute;
+}
+body { overflow: hidden; margin: 0;}
+.red_square {
+ height: 100px;
+ left:30px;
+ top: 20px;
+ background: red;
+ transform: rotate(30deg);
+}
+.filter {
+ height: 200px;
+ background: transparent;
+}
+</style>
+<script>
+simulateBackdropBlur(document.querySelector('.filter'), [document.querySelector('.red_square')], 20);
+</script>
diff --git a/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html
new file mode 100644
index 00000000000..f9bcb1c22d9
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/reference/backdrop-filter-svg-blur-ref.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>backdrop-filter: Correctly apply backdrop-filter with an SVG filter</title>
+<link rel="help" href="https://drafts.fxtf.org/filter-effects-2/#BackdropFilterProperty">
+<script src="../support/simulate-backdrop-blur.js"></script>
+<style>
+ .container {
+ position: relative;
+ width: 200px;
+ height: 200px;
+ contain: paint;
+ }
+ .container .box {
+ width: 50px;
+ height: 50px;
+ position: absolute;
+ }
+ div.blue { background: blue;}
+ .green { background: green;}
+ .green {
+ left: 20px;
+ top: 20px;
+ opacity: 0.5;
+ }
+</style>
+
+<p>The green box should filter the blue box.</p>
+
+<div class="container">
+ <div class="blue box"></div>
+ <div class="green box"></div>
+</div>
+
+<script>
+simulateBackdropBlur(document.querySelector('.green'), [document.querySelector('.blue')], 10);
+</script>
diff --git a/tests/wpt/tests/css/filter-effects/support/simulate-backdrop-blur.js b/tests/wpt/tests/css/filter-effects/support/simulate-backdrop-blur.js
new file mode 100644
index 00000000000..20f2cd55986
--- /dev/null
+++ b/tests/wpt/tests/css/filter-effects/support/simulate-backdrop-blur.js
@@ -0,0 +1,101 @@
+/**
+ * Simulates a backdrop-filter: blur with the given radius by creating copies
+ * of the blurred content mirrored at edges.
+ * @param {Element} div The element to display the blurred content in.
+ * @param {Element[]} blurNodes The elements to include in the blur.
+ * @param {number} blurRadius The radius of the backdrop blur.
+ */
+function simulateBackdropBlur(div, blurNodes, blurRadius) {
+ // The amount to assume blur may oversample by beyond the blur radius.
+ const BLUR_OVERSAMPLE = 2;
+
+ const isAncestor = function(ancestor, div) {
+ while (div && div != ancestor) {
+ div = div.offsetParent;
+ }
+ return !!div;
+ }
+
+ const commonAncestor = function(a, b) {
+ while (!isAncestor(a, b))
+ a = a.offsetParent;
+ return a;
+ }
+
+ const computeOffset = function(from, to) {
+ const ancestor = commonAncestor(from, to);
+ let offset = {left: 0, top: 0};
+ while (from != ancestor) {
+ offset.left += from.offsetLeft;
+ offset.top += from.offsetTop;
+ from = from.offsetParent;
+ }
+ while (to != ancestor) {
+ offset.left -= to.offsetLeft;
+ offset.top -= to.offsetTop;
+ to = to.offsetParent;
+ }
+ return offset;
+ }
+
+ // Compute the number of copies needed in each direction.
+ const w = div.offsetWidth;
+ const h = div.offsetHeight;
+ const copiesY = Math.ceil(BLUR_OVERSAMPLE * blurRadius / h);
+ const copiesX = Math.ceil(BLUR_OVERSAMPLE * blurRadius / w);
+
+ let clipNode = document.createElement('div');
+ clipNode.style.backgroundColor = 'white';
+ clipNode.style.position = 'absolute';
+ clipNode.style.overflow = 'clip';
+ clipNode.style.width = `${w}px`;
+ clipNode.style.height = `${h}px`;
+ clipNode.style.left = `${div.offsetLeft}px`;
+ clipNode.style.top = `${div.offsetTop}px`;
+ clipNode.style.opacity = getComputedStyle(div).opacity;
+ let filterNode = document.createElement('div');
+ clipNode.appendChild(filterNode);
+ filterNode.style.width = `${w * (2*copiesX+1)}px`;
+ filterNode.style.height = `${h * (2*copiesY+1)}px`;
+ filterNode.style.position = 'absolute';
+ filterNode.style.lineHeight = '0';
+ filterNode.style.top = `${-copiesY * h}px`;
+ filterNode.style.left = `${-copiesX * w}px`;
+ filterNode.style.filter = `blur(${blurRadius}px)`;
+
+ // Helper to clone everything except the node blurring the content in case
+ // the "backdrop" content to blur is an ancestor.
+ const cloneExcept = function(div, exclude) {
+ let cloned = div.cloneNode(false);
+ for (let child of div.children) {
+ if (child != exclude) {
+ cloned.appendChild(child.cloneNode(true));
+ }
+ }
+ return cloned;
+ }
+
+ for (let y = -copiesY; y <= copiesY; y++) {
+ for (let x = -copiesX; x <= copiesX; x++) {
+ let copy = document.createElement('div');
+ copy.style.position = 'relative';
+ copy.style.width = `${w}px`;
+ copy.style.height = `${h}px`;
+ copy.style.display = 'inline-block';
+ copy.style.overflow = 'clip';
+ copy.setAttribute('data-x', x);
+ copy.setAttribute('data-y', y);
+ copy.style.transform = `scale(${Math.abs(x)%2 == 0 ? 1 : -1}, ${Math.abs(y)%2 == 0 ? 1 : -1})`
+ for (let child of blurNodes) {
+ const cloned = cloneExcept(child, div);
+ cloned.style.position = 'absolute';
+ const offset = computeOffset(child, div);
+ cloned.style.top = `${offset.top}px`;
+ cloned.style.left = `${offset.left}px`;
+ copy.appendChild(cloned);
+ }
+ filterNode.appendChild(copy);
+ }
+ }
+ div.parentElement.insertBefore(clipNode, div);
+}
diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-001.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-001.html
new file mode 100644
index 00000000000..96c38531362
--- /dev/null
+++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-001.html
@@ -0,0 +1,22 @@
+<!doctype html>
+<title>Test: support for calc with sign() in Media Queries</title>
+<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org">
+<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
+<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+ div {
+ width: 100px;
+ height: 100px;
+ background-color: red;
+ }
+
+ @media (width > calc(1px * (1 + sign(16px - 1rem)))) {
+ div {
+ background-color: green;
+ }
+ }
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div></div> \ No newline at end of file
diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-002.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-002.html
new file mode 100644
index 00000000000..31ff421ea2a
--- /dev/null
+++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-002.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<title>Test: support for calc with sign() in Media Queries</title>
+<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org">
+<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
+<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+ div {
+ width: 100px;
+ height: 100px;
+ background-color: red;
+ }
+
+ @media (width > calc(-1px * sign(15px - 1rem))) {
+ div {
+ background-color: green;
+ }
+ }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div></div> \ No newline at end of file
diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-003.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-003.html
new file mode 100644
index 00000000000..423948f722d
--- /dev/null
+++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-003.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<title>Test: support for calc with sign() in Media Queries</title>
+<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org">
+<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
+<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+ div {
+ width: 100px;
+ height: 100px;
+ background-color: red;
+ }
+
+ @media screen and (aspect-ratio > calc(sign(17px - 1rem) * 59) / calc(79 * sign(17px - 1rem))) {
+ div {
+ background-color: green;
+ }
+ }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div></div> \ No newline at end of file
diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-004.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-004.html
new file mode 100644
index 00000000000..219f0c15272
--- /dev/null
+++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-004.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<title>Test: support for calc with sign() in Media Queries</title>
+<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org">
+<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
+<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+ div {
+ width: 100px;
+ height: 100px;
+ background-color: red;
+ }
+
+ @media (resolution > calc(-1dppx * sign(17px - 1rem))) {
+ div {
+ background-color: green;
+ }
+ }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div></div> \ No newline at end of file
diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-005.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-005.html
new file mode 100644
index 00000000000..ca5fecb338b
--- /dev/null
+++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-005.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<title>Test: support for calc with sign() in Media Queries</title>
+<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org">
+<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
+<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+ div {
+ width: 100px;
+ height: 100px;
+ background-color: red;
+ }
+
+ @media (grid: calc(2 * sign(16px - 1rem))) {
+ div {
+ background-color: green;
+ }
+ }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div></div> \ No newline at end of file
diff --git a/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-006.html b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-006.html
new file mode 100644
index 00000000000..239748d205f
--- /dev/null
+++ b/tests/wpt/tests/css/mediaqueries/mq-calc-sign-function-006.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<title>Test: support for calc with sign() in Media Queries</title>
+<link rel="author" title="Daniil Sakhapov" href="mailto:sakhapov@chromium.org">
+<link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation">
+<link rel="help" href="http://www.w3.org/TR/css3-mediaqueries/#units">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
+<style>
+ div {
+ width: 100px;
+ height: 100px;
+ background-color: green;
+ }
+
+ @media (grid: calc(2 * sign(17px - 1rem))) {
+ div {
+ background-color: red;
+ }
+ }
+</style>
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div></div> \ No newline at end of file
diff --git a/tests/wpt/tests/css/selectors/media/WEB_FEATURES.yml b/tests/wpt/tests/css/selectors/media/WEB_FEATURES.yml
new file mode 100644
index 00000000000..4cd0fc27262
--- /dev/null
+++ b/tests/wpt/tests/css/selectors/media/WEB_FEATURES.yml
@@ -0,0 +1,3 @@
+features:
+- name: media-pseudos
+ files: "**"
diff --git a/tests/wpt/tests/digital-credentials/META.yml b/tests/wpt/tests/digital-credentials/META.yml
index 8a7db924976..fc8f6a62cda 100644
--- a/tests/wpt/tests/digital-credentials/META.yml
+++ b/tests/wpt/tests/digital-credentials/META.yml
@@ -2,3 +2,4 @@ spec: https://github.com/wicg/digital-credentials
suggested_reviewers:
- marcoscaceres
- samuelgoto
+ - tplooker
diff --git a/tests/wpt/tests/digital-credentials/identity-get.tentative.https.html b/tests/wpt/tests/digital-credentials/identity-get.tentative.https.html
index 850533cd262..15597ed594a 100644
--- a/tests/wpt/tests/digital-credentials/identity-get.tentative.https.html
+++ b/tests/wpt/tests/digital-credentials/identity-get.tentative.https.html
@@ -17,22 +17,8 @@ const host = get_host_info();
const basePath = window.location.pathname.replace(/\/[^\/]*$/, '/');
const remoteBaseURL = host.HTTPS_REMOTE_ORIGIN + basePath;
-async function createIframeAndWaitForMessage(test, iframeUrl) {
- const messageWatcher = new EventWatcher(test, window, "message");
- var iframe = document.createElement("iframe");
- iframe.src = iframeUrl;
- document.body.appendChild(iframe);
- const message = await messageWatcher.wait_for("message");
- return message.data;
-}
-
// Requires browser to have mode where OS-presented digital-identity-prompt is
// bypassed in favour of returning "fake_test_token" directly.
-promise_test(async t=>{
- assert_false(navigator.userActivation.isActive);
- let request = buildValidNavigatorIdentityRequest();
- await promise_rejects_dom(t, "NetworkError", navigator.identity.get(request));
-}, "navigator.identity.get() fails if the page doesn't have user activation");
promise_test(async t => {
let request = buildValidNavigatorIdentityRequest();
@@ -45,11 +31,4 @@ promise_test(async t => {
request.digital.providers = [];
await promise_rejects_js(t, TypeError, requestIdentityWithActivation(test_driver, request));
}, "navigator.identity.get() API fails if there are no providers.");
-
-promise_test(async t=> {
- const message = await createIframeAndWaitForMessage(
- t, remoteBaseURL + "support/iframe.html");
- assert_equals(message.result, "Fail");
- assert_equals(message.errorType, "NotAllowedError");
-}, "navigator.identity.get() fails in cross-origin iframe");
</script>
diff --git a/tests/wpt/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers b/tests/wpt/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers
index 661a357effc..8ed57bbc951 100644
--- a/tests/wpt/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers
+++ b/tests/wpt/tests/direct-sockets/disabled-by-permissions-policy.https.sub.html.headers
@@ -1,3 +1,4 @@
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
Permissions-Policy: direct-sockets=()
+Origin-Agent-Cluster: ?0
diff --git a/tests/wpt/tests/direct-sockets/tcp_socket.https.html.headers b/tests/wpt/tests/direct-sockets/tcp_socket.https.html.headers
index 177feb102db..b20aae031ea 100644
--- a/tests/wpt/tests/direct-sockets/tcp_socket.https.html.headers
+++ b/tests/wpt/tests/direct-sockets/tcp_socket.https.html.headers
@@ -1,3 +1,4 @@
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
Permissions-Policy: direct-sockets=(self)
+Origin-Agent-Cluster: ?0
diff --git a/tests/wpt/tests/direct-sockets/udp_socket.https.html.headers b/tests/wpt/tests/direct-sockets/udp_socket.https.html.headers
index 177feb102db..b20aae031ea 100644
--- a/tests/wpt/tests/direct-sockets/udp_socket.https.html.headers
+++ b/tests/wpt/tests/direct-sockets/udp_socket.https.html.headers
@@ -1,3 +1,4 @@
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
Permissions-Policy: direct-sockets=(self)
+Origin-Agent-Cluster: ?0
diff --git a/tests/wpt/tests/fedcm/support/continue_on.py b/tests/wpt/tests/fedcm/support/continue_on.py
index 0195e478e29..5447ab96e4f 100644
--- a/tests/wpt/tests/fedcm/support/continue_on.py
+++ b/tests/wpt/tests/fedcm/support/continue_on.py
@@ -12,5 +12,7 @@ def main(request, response):
account = request.POST.get(b"account_id").decode("utf-8")
nonce = request.POST.get(b"nonce").decode("utf-8")
+ if nonce == "token":
+ return "{\"token\": \"account=%s\"}" % (account)
return "{\"continue_on\": \"resolve.html?selected=%s&%s\"}" % (account, nonce)
diff --git a/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition-ref.html b/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition-ref.html
new file mode 100644
index 00000000000..b47795f2054
--- /dev/null
+++ b/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition-ref.html
@@ -0,0 +1,69 @@
+<html>
+<meta charset="utf-8">
+<style>
+canvas {
+ margin: 5px;
+}
+</style>
+<script>
+src = document.createElement("canvas");
+src.width = "100";
+src.height = "100";
+scx = src.getContext("2d");
+scx.font = "64px Segoe UI Emoji, sans-serif";
+scx.fillText("\u{1F63A}",5,65);
+
+function test(op) {
+ cv = document.createElement("canvas");
+ cv.width = "100";
+ cv.height = "100";
+ document.body.appendChild(cv);
+ cx = cv.getContext("2d");
+ cx.fillStyle = "#888888";
+ cx.fillRect(0,0,100,50);
+ cx.globalCompositeOperation = op;
+ cx.drawImage(src, 0, 0);
+}
+
+function br() {
+ document.body.appendChild(document.createElement("br"));
+}
+
+window.onload = ( ) => {
+ test("source-over");
+ test("source-in");
+ test("source-out");
+ test("source-atop");
+ br();
+ test("destination-over");
+ test("destination-in");
+ test("destination-out");
+ test("destination-atop");
+ br();
+ test("copy");
+ test("lighter");
+ test("xor");
+ test("multiply");
+ br();
+ test("screen");
+ test("overlay");
+ test("darken");
+ test("lighten");
+ br();
+ test("color-dodge");
+ test("color-burn");
+ test("hard-light");
+ test("soft-light");
+ br();
+ test("difference");
+ test("exclusion");
+ test("hue");
+ test("saturation");
+ br();
+ test("color");
+ test("luminosity");
+};
+</script>
+<body>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition.html b/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition.html
new file mode 100644
index 00000000000..ed372a2613c
--- /dev/null
+++ b/tests/wpt/tests/html/canvas/element/compositing/colr-glyph-composition.html
@@ -0,0 +1,67 @@
+<html>
+<meta charset="utf-8">
+<link rel="author" title="Jonathan Kew" href="mailto:jkew@mozilla.com">
+<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1902253">
+<link rel="match" href="colr-glyph-composition-ref.html">
+<style>
+canvas {
+ margin: 5px;
+}
+</style>
+<script>
+function test(op) {
+ cv = document.createElement("canvas");
+ cv.width = "100";
+ cv.height = "100";
+ document.body.appendChild(cv);
+ cx = cv.getContext("2d");
+ cx.fillStyle = "#888888";
+ cx.fillRect(0,0,100,50);
+ cx.globalCompositeOperation=op;
+ cx.fillStyle = "black";
+ cx.font = "64px Segoe UI Emoji, sans-serif";
+ cx.fillText("\u{1F63A}",5,65);
+}
+
+function br() {
+ document.body.appendChild(document.createElement("br"));
+}
+
+window.onload = ( ) => {
+ test("source-over");
+ test("source-in");
+ test("source-out");
+ test("source-atop");
+ br();
+ test("destination-over");
+ test("destination-in");
+ test("destination-out");
+ test("destination-atop");
+ br();
+ test("copy");
+ test("lighter");
+ test("xor");
+ test("multiply");
+ br();
+ test("screen");
+ test("overlay");
+ test("darken");
+ test("lighten");
+ br();
+ test("color-dodge");
+ test("color-burn");
+ test("hard-light");
+ test("soft-light");
+ br();
+ test("difference");
+ test("exclusion");
+ test("hue");
+ test("saturation");
+ br();
+ test("color");
+ test("luminosity");
+};
+</script>
+<body>
+</body>
+</html> \ No newline at end of file
diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations-with-promises.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations-with-promises.html
index 8e81bffdfb6..e3af9a32a36 100644
--- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations-with-promises.html
+++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations-with-promises.html
@@ -6,6 +6,8 @@
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
+<h1>2d.layer.malformed-operations-with-promises</h1>
+
<script>
promise_test(async t => {
diff --git a/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations.html b/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations.html
index cf6e7a80db0..d27e1bf6eba 100644
--- a/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations.html
+++ b/tests/wpt/tests/html/canvas/element/layers/2d.layer.malformed-operations.html
@@ -6,6 +6,8 @@
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
+<h1>2d.layer.malformed-operations</h1>
+
<script>
test(t => {
diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations-with-promises.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations-with-promises.html
index 7b8f9b09434..6641d9d4170 100644
--- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations-with-promises.html
+++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations-with-promises.html
@@ -5,6 +5,8 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
+<h1>2d.layer.malformed-operations-with-promises</h1>
+
<script>
promise_test(async t => {
diff --git a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations.html b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations.html
index a810665faf5..c3a92553646 100644
--- a/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations.html
+++ b/tests/wpt/tests/html/canvas/offscreen/layers/2d.layer.malformed-operations.html
@@ -5,6 +5,8 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
+<h1>2d.layer.malformed-operations</h1>
+
<script>
test(t => {
diff --git a/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py b/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py
index ab6f4e1cd08..a453c6ff924 100644
--- a/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py
+++ b/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py
@@ -360,6 +360,7 @@ class _Variant():
'variant_name': '',
'images': [],
'svgimages': [],
+ 'fonts': [],
}
params.update(test)
return _Variant(params)
@@ -639,6 +640,7 @@ class _VariantGrid:
'notes': self._unique_param('notes'),
'images': self._param_set('images'),
'svgimages': self._param_set('svgimages'),
+ 'fonts': self._param_set('fonts'),
}
if self.template_type in (_TemplateType.REFERENCE,
_TemplateType.HTML_REFERENCE):
diff --git a/tests/wpt/tests/html/canvas/tools/templates/testharness_element_grid.html b/tests/wpt/tests/html/canvas/tools/templates/testharness_element_grid.html
index ee2360f72c2..50d75238923 100644
--- a/tests/wpt/tests/html/canvas/tools/templates/testharness_element_grid.html
+++ b/tests/wpt/tests/html/canvas/tools/templates/testharness_element_grid.html
@@ -7,6 +7,8 @@
<script src="/html/canvas/resources/canvas-tests.js"></script>
<link rel="stylesheet" href="/html/canvas/resources/canvas-tests.css">
+<h1>{{ name }}</h1>
+
{% if fonts %}
<style>
{% for font in fonts %}
diff --git a/tests/wpt/tests/html/canvas/tools/templates/testharness_offscreen_grid.html b/tests/wpt/tests/html/canvas/tools/templates/testharness_offscreen_grid.html
index 6e5628036ba..31d86e705a0 100644
--- a/tests/wpt/tests/html/canvas/tools/templates/testharness_offscreen_grid.html
+++ b/tests/wpt/tests/html/canvas/tools/templates/testharness_offscreen_grid.html
@@ -6,6 +6,8 @@
<script src="/resources/testharnessreport.js"></script>
<script src="/html/canvas/resources/canvas-tests.js"></script>
+<h1>{{ name }}</h1>
+
<script>
{% for variant in offscreen_variants %}
diff --git a/tests/wpt/tests/html/rendering/widgets/input-number-text-size-ref.html b/tests/wpt/tests/html/rendering/widgets/input-number-text-size-ref.html
index 4c9b244990d..6c831941f08 100644
--- a/tests/wpt/tests/html/rendering/widgets/input-number-text-size-ref.html
+++ b/tests/wpt/tests/html/rendering/widgets/input-number-text-size-ref.html
@@ -2,7 +2,6 @@
<input type=number><br>
<input type=number><br>
<input type=number><br>
-<input type=number><br>
<input type=number size=10><br>
<input type=number><br>
<input type=number size=1><br>
diff --git a/tests/wpt/tests/html/rendering/widgets/input-number-text-size.tentative.html b/tests/wpt/tests/html/rendering/widgets/input-number-text-size.tentative.html
index e7b1a1990dc..0850f0558e3 100644
--- a/tests/wpt/tests/html/rendering/widgets/input-number-text-size.tentative.html
+++ b/tests/wpt/tests/html/rendering/widgets/input-number-text-size.tentative.html
@@ -4,7 +4,6 @@
<title>Test `size` attribute behavior on number input</title>
<link rel="match" href="input-number-text-size-ref.html">
<input type=number><br>
-<input type=number size=20><br>
<input type=number min=0><br>
<input type=number max=1><br>
<input type=number size=10 min=0 max=1><br>
diff --git a/tests/wpt/tests/input-events/input-events-typing.html b/tests/wpt/tests/input-events/input-events-typing.html
index cff32a44d15..8a083dc9669 100644
--- a/tests/wpt/tests/input-events/input-events-typing.html
+++ b/tests/wpt/tests/input-events/input-events-typing.html
@@ -128,6 +128,45 @@ promise_test(async function() {
promise_test(async function () {
this.add_cleanup(resetRich);
+ rich.innerHTML = '<p>Preexisting <i id="caret">C</i>ontent</p>';
+
+ const expectedResult = [
+ // Pressing 'a', 'b'
+ 'insertText',
+ 'insertText',
+ // Delete twice
+ 'deleteContentForward',
+ 'deleteContentForward',
+ // Pressing 'c', 'd'
+ 'insertText',
+ 'insertText',
+ // Backspace
+ 'deleteContentBackward'
+ ];
+ const result = [];
+
+ rich.addEventListener("input", (inputEvent) => {
+ result.push(inputEvent.inputType);
+ });
+
+ await test_driver.click(document.querySelector('#caret')); // Preexisting |Content
+ await test_driver.send_keys(rich, "a"); // Preexisting a|Content
+ await test_driver.send_keys(rich, "b"); // Preexisting ab|Content
+ // Delete
+ await test_driver.send_keys(rich, "\uE017"); // Preexisting ab|ontent
+ // Delete
+ await test_driver.send_keys(rich, "\uE017"); // Preexisting ab|ntent
+ await test_driver.send_keys(rich, "c"); // Preexisting abc|ntent
+ await test_driver.send_keys(rich, "d"); // Preexisting abcd|ntent
+ // Backspace
+ await test_driver.send_keys(rich, "\uE003"); // Preexisting abc|ntent
+
+ assert_equals(result.length, expectedResult.length);
+ expectedResult.forEach((er, index) => assert_equals(result[index], er));
+}, 'Input events have correct inputType updated when different inputs are typed');
+
+promise_test(async function () {
+ this.add_cleanup(resetRich);
rich.innerHTML = '<p>Preexisting <i id="caret">c</i>ontent</p>';
const expectedResult = [
@@ -169,8 +208,8 @@ promise_test(async function () {
// Delete
await test_driver.send_keys(rich, "\uE017"); // |
- assert_equals(expectedResult.length, result.length);
- expectedResult.forEach((er, index) => assert_equals(er, result[index]));
+ assert_equals(result.length, expectedResult.length);
+ expectedResult.forEach((er, index) => assert_equals(result[index], er));
}, 'Input events have correct inputType when selected text is removed with Backspace or Delete');
promise_test(async function() {
@@ -326,7 +365,7 @@ promise_test(async function() {
.keyUp('\uE008')
.send();
- assert_equals(expectedResult.length, result.length);
- expectedResult.forEach((er, index) => assert_equals(er, result[index]));
+ assert_equals(result.length, expectedResult.length);
+ expectedResult.forEach((er, index) => assert_equals(result[index], er));
}, 'InputEvents have correct data/order when typing on textarea and contenteditable');
</script>
diff --git a/tests/wpt/tests/interfaces/WebCryptoAPI.idl b/tests/wpt/tests/interfaces/WebCryptoAPI.idl
index 0e68ea82f59..ae85c1cfe46 100644
--- a/tests/wpt/tests/interfaces/WebCryptoAPI.idl
+++ b/tests/wpt/tests/interfaces/WebCryptoAPI.idl
@@ -68,7 +68,7 @@ interface SubtleCrypto {
sequence<KeyUsage> keyUsages );
Promise<ArrayBuffer> deriveBits(AlgorithmIdentifier algorithm,
CryptoKey baseKey,
- unsigned long length);
+ optional unsigned long? length = null);
Promise<CryptoKey> importKey(KeyFormat format,
(BufferSource or JsonWebKey) keyData,
diff --git a/tests/wpt/tests/interfaces/css-contain-3.idl b/tests/wpt/tests/interfaces/css-conditional-5.idl
index 0ecf3804954..b1919213ebc 100644
--- a/tests/wpt/tests/interfaces/css-contain-3.idl
+++ b/tests/wpt/tests/interfaces/css-conditional-5.idl
@@ -1,7 +1,7 @@
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into webref
// (https://github.com/w3c/webref)
-// Source: CSS Containment Module Level 3 (https://drafts.csswg.org/css-contain-3/)
+// Source: CSS Conditional Rules Module Level 5 (https://drafts.csswg.org/css-conditional-5/)
[Exposed=Window]
interface CSSContainerRule : CSSConditionRule {
diff --git a/tests/wpt/tests/interfaces/css-nesting.idl b/tests/wpt/tests/interfaces/css-nesting.idl
index 58d3247f904..1ad0404ecf9 100644
--- a/tests/wpt/tests/interfaces/css-nesting.idl
+++ b/tests/wpt/tests/interfaces/css-nesting.idl
@@ -4,6 +4,6 @@
// Source: CSS Nesting Module (https://drafts.csswg.org/css-nesting-1/)
[Exposed=Window]
-interface CSSNestRule : CSSGroupingRule {
+interface CSSNestedDeclarations : CSSRule {
[SameObject, PutForwards=cssText] readonly attribute CSSStyleProperties style;
};
diff --git a/tests/wpt/tests/interfaces/cssom.idl b/tests/wpt/tests/interfaces/cssom.idl
index 005496e7ede..1e70e1f8bca 100644
--- a/tests/wpt/tests/interfaces/cssom.idl
+++ b/tests/wpt/tests/interfaces/cssom.idl
@@ -130,6 +130,7 @@ interface CSSPageDescriptors : CSSStyleDeclaration {
attribute [LegacyNullToEmptyString] CSSOMString margin-bottom;
attribute [LegacyNullToEmptyString] CSSOMString margin-left;
attribute [LegacyNullToEmptyString] CSSOMString size;
+ attribute [LegacyNullToEmptyString] CSSOMString orientation;
attribute [LegacyNullToEmptyString] CSSOMString marks;
attribute [LegacyNullToEmptyString] CSSOMString bleed;
};
diff --git a/tests/wpt/tests/interfaces/fenced-frame.idl b/tests/wpt/tests/interfaces/fenced-frame.idl
index a3ec8d731bb..e15cbf11da2 100644
--- a/tests/wpt/tests/interfaces/fenced-frame.idl
+++ b/tests/wpt/tests/interfaces/fenced-frame.idl
@@ -35,6 +35,8 @@ typedef (USVString or FencedFrameConfig) UrnOrConfig;
partial interface Navigator {
Promise<undefined> deprecatedReplaceInURN(
UrnOrConfig urnOrConfig, record<USVString, USVString> replacements);
+ Promise<USVString> deprecatedURNtoURL(
+ UrnOrConfig urnOrConfig, optional boolean send_reports = false);
sequence<USVString> adAuctionComponents(unsigned short numAdComponents);
};
diff --git a/tests/wpt/tests/interfaces/geolocation.idl b/tests/wpt/tests/interfaces/geolocation.idl
index 8c0acfc6cc1..062a38bebc5 100644
--- a/tests/wpt/tests/interfaces/geolocation.idl
+++ b/tests/wpt/tests/interfaces/geolocation.idl
@@ -1,7 +1,7 @@
// GENERATED CONTENT - DO NOT EDIT
// Content was automatically extracted by Reffy into webref
// (https://github.com/w3c/webref)
-// Source: Geolocation API (https://w3c.github.io/geolocation-api/)
+// Source: Geolocation (https://w3c.github.io/geolocation/)
partial interface Navigator {
[SameObject] readonly attribute Geolocation geolocation;
diff --git a/tests/wpt/tests/interfaces/handwriting-recognition.idl b/tests/wpt/tests/interfaces/handwriting-recognition.idl
new file mode 100644
index 00000000000..2bac6b5d9ca
--- /dev/null
+++ b/tests/wpt/tests/interfaces/handwriting-recognition.idl
@@ -0,0 +1,100 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: Handwriting Recognition API (https://wicg.github.io/handwriting-recognition/)
+
+[SecureContext]
+partial interface Navigator {
+ Promise<HandwritingRecognizerQueryResult?>
+ queryHandwritingRecognizer(HandwritingModelConstraint constraint);
+};
+
+dictionary HandwritingModelConstraint {
+ required sequence<DOMString> languages;
+};
+
+dictionary HandwritingRecognizerQueryResult {
+ boolean textAlternatives;
+ boolean textSegmentation;
+ HandwritingHintsQueryResult hints;
+};
+
+dictionary HandwritingHintsQueryResult {
+ sequence<HandwritingRecognitionType> recognitionType;
+ sequence<HandwritingInputType> inputType;
+ boolean textContext;
+ boolean alternatives;
+};
+
+enum HandwritingRecognitionType{
+ "text", "per-character"
+};
+
+enum HandwritingInputType {
+ "mouse", "stylus", "touch"
+};
+
+[SecureContext]
+partial interface Navigator {
+ Promise<HandwritingRecognizer>
+ createHandwritingRecognizer(HandwritingModelConstraint constraint);
+};
+
+[Exposed=Window, SecureContext]
+interface HandwritingRecognizer {
+ HandwritingDrawing startDrawing(optional HandwritingHints hints = {});
+
+ undefined finish();
+};
+
+dictionary HandwritingHints {
+ DOMString recognitionType = "text";
+ DOMString inputType = "mouse";
+ DOMString textContext;
+ unsigned long alternatives = 3;
+};
+
+[Exposed=Window, SecureContext]
+interface HandwritingDrawing {
+ undefined addStroke(HandwritingStroke stroke);
+ undefined removeStroke(HandwritingStroke stroke);
+ undefined clear();
+ sequence<HandwritingStroke> getStrokes();
+
+ Promise<sequence<HandwritingPrediction>> getPrediction();
+};
+
+[SecureContext, Exposed=Window]
+interface HandwritingStroke {
+ constructor();
+ undefined addPoint(HandwritingPoint point);
+ sequence<HandwritingPoint> getPoints();
+ undefined clear();
+};
+
+dictionary HandwritingPoint {
+ required double x;
+ required double y;
+
+ // Optional. Number of milliseconds since a reference time point for a
+ // drawing.
+ DOMHighResTimeStamp t;
+};
+
+dictionary HandwritingPrediction {
+ required DOMString text;
+ sequence<HandwritingSegment> segmentationResult;
+};
+
+dictionary HandwritingSegment {
+ required DOMString grapheme;
+ required unsigned long beginIndex;
+ required unsigned long endIndex;
+ required sequence<HandwritingDrawingSegment> drawingSegments;
+};
+
+dictionary HandwritingDrawingSegment {
+ required unsigned long strokeIndex;
+ required unsigned long beginPointIndex;
+ required unsigned long endPointIndex;
+};
diff --git a/tests/wpt/tests/interfaces/html.idl b/tests/wpt/tests/interfaces/html.idl
index b5bf3573579..4d6c0229bc1 100644
--- a/tests/wpt/tests/interfaces/html.idl
+++ b/tests/wpt/tests/interfaces/html.idl
@@ -48,7 +48,7 @@ typedef (HTMLScriptElement or SVGScriptElement) HTMLOrSVGScriptElement;
[LegacyOverrideBuiltIns]
partial interface Document {
- static Document parseHTMLUnsafe(HTMLString html);
+ static Document parseHTMLUnsafe((TrustedHTML or DOMString) html);
// resource metadata management
[PutForwards=href, LegacyUnforgeable] readonly attribute Location? location;
@@ -452,7 +452,7 @@ interface HTMLIFrameElement : HTMLElement {
[HTMLConstructor] constructor();
[CEReactions] attribute USVString src;
- [CEReactions] attribute HTMLString srcdoc;
+ [CEReactions] attribute (TrustedHTML or DOMString) srcdoc;
[CEReactions] attribute DOMString name;
[SameObject, PutForwards=value] readonly attribute DOMTokenList sandbox;
[CEReactions] attribute DOMString allow;
@@ -2293,19 +2293,19 @@ Window includes WindowOrWorkerGlobalScope;
WorkerGlobalScope includes WindowOrWorkerGlobalScope;
partial interface Element {
- [CEReactions] undefined setHTMLUnsafe(HTMLString html);
+ [CEReactions] undefined setHTMLUnsafe((TrustedHTML or DOMString) html);
DOMString getHTML(optional GetHTMLOptions options = {});
- [CEReactions] attribute [LegacyNullToEmptyString] HTMLString innerHTML;
- [CEReactions] attribute [LegacyNullToEmptyString] HTMLString outerHTML;
- [CEReactions] undefined insertAdjacentHTML(DOMString position, HTMLString string);
+ [CEReactions] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML;
+ [CEReactions] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) outerHTML;
+ [CEReactions] undefined insertAdjacentHTML(DOMString position, (TrustedHTML or DOMString) string);
};
partial interface ShadowRoot {
- [CEReactions] undefined setHTMLUnsafe(HTMLString html);
+ [CEReactions] undefined setHTMLUnsafe((TrustedHTML or DOMString) html);
DOMString getHTML(optional GetHTMLOptions options = {});
- [CEReactions] attribute [LegacyNullToEmptyString] HTMLString innerHTML;
+ [CEReactions] attribute (TrustedHTML or [LegacyNullToEmptyString] DOMString) innerHTML;
};
dictionary GetHTMLOptions {
@@ -2317,7 +2317,7 @@ dictionary GetHTMLOptions {
interface DOMParser {
constructor();
- [NewObject] Document parseFromString(HTMLString string, DOMParserSupportedType type);
+ [NewObject] Document parseFromString((TrustedHTML or DOMString) string, DOMParserSupportedType type);
};
enum DOMParserSupportedType {
@@ -2329,7 +2329,7 @@ enum DOMParserSupportedType {
};
partial interface Range {
- [CEReactions, NewObject] DocumentFragment createContextualFragment(HTMLString string);
+ [CEReactions, NewObject] DocumentFragment createContextualFragment((TrustedHTML or DOMString) string);
};
[Exposed=Window]
@@ -2544,7 +2544,7 @@ interface WorkerGlobalScope : EventTarget {
readonly attribute WorkerGlobalScope self;
readonly attribute WorkerLocation location;
readonly attribute WorkerNavigator navigator;
- undefined importScripts(ScriptURLString... urls);
+ undefined importScripts((TrustedScriptURL or USVString)... urls);
attribute OnErrorEventHandler onerror;
attribute EventHandler onlanguagechange;
@@ -2582,7 +2582,7 @@ interface mixin AbstractWorker {
[Exposed=(Window,DedicatedWorker,SharedWorker)]
interface Worker : EventTarget {
- constructor(ScriptURLString scriptURL, optional WorkerOptions options = {});
+ constructor((TrustedScriptURL or USVString) scriptURL, optional WorkerOptions options = {});
undefined terminate();
@@ -2604,7 +2604,7 @@ Worker includes AbstractWorker;
[Exposed=Window]
interface SharedWorker : EventTarget {
- constructor(ScriptURLString scriptURL, optional (DOMString or WorkerOptions) options = {});
+ constructor((TrustedScriptURL or USVString) scriptURL, optional (DOMString or WorkerOptions) options = {});
readonly attribute MessagePort port;
};
diff --git a/tests/wpt/tests/interfaces/intersection-observer.idl b/tests/wpt/tests/interfaces/intersection-observer.idl
index 8502a11357f..eb7f18f5213 100644
--- a/tests/wpt/tests/interfaces/intersection-observer.idl
+++ b/tests/wpt/tests/interfaces/intersection-observer.idl
@@ -12,6 +12,8 @@ interface IntersectionObserver {
readonly attribute DOMString rootMargin;
readonly attribute DOMString scrollMargin;
readonly attribute FrozenArray<double> thresholds;
+ readonly attribute long delay;
+ readonly attribute boolean trackVisibility;
undefined observe(Element target);
undefined unobserve(Element target);
undefined disconnect();
@@ -26,6 +28,7 @@ interface IntersectionObserverEntry {
readonly attribute DOMRectReadOnly boundingClientRect;
readonly attribute DOMRectReadOnly intersectionRect;
readonly attribute boolean isIntersecting;
+ readonly attribute boolean isVisible;
readonly attribute double intersectionRatio;
readonly attribute Element target;
};
@@ -36,6 +39,7 @@ dictionary IntersectionObserverEntryInit {
required DOMRectInit boundingClientRect;
required DOMRectInit intersectionRect;
required boolean isIntersecting;
+ required boolean isVisible;
required double intersectionRatio;
required Element target;
};
@@ -45,4 +49,6 @@ dictionary IntersectionObserverInit {
DOMString rootMargin = "0px";
DOMString scrollMargin = "0px";
(double or sequence<double>) threshold = 0;
+ long delay = 0;
+ boolean trackVisibility = false;
};
diff --git a/tests/wpt/tests/interfaces/mediacapture-streams.idl b/tests/wpt/tests/interfaces/mediacapture-streams.idl
index 62b846db0b4..f6c8e2b82da 100644
--- a/tests/wpt/tests/interfaces/mediacapture-streams.idl
+++ b/tests/wpt/tests/interfaces/mediacapture-streams.idl
@@ -61,6 +61,7 @@ dictionary MediaTrackSupportedConstraints {
boolean channelCount = true;
boolean deviceId = true;
boolean groupId = true;
+ boolean backgroundBlur = true;
};
dictionary MediaTrackCapabilities {
@@ -79,6 +80,7 @@ dictionary MediaTrackCapabilities {
ULongRange channelCount;
DOMString deviceId;
DOMString groupId;
+ sequence<boolean> backgroundBlur;
};
dictionary MediaTrackConstraints : MediaTrackConstraintSet {
@@ -101,6 +103,7 @@ dictionary MediaTrackConstraintSet {
ConstrainULong channelCount;
ConstrainDOMString deviceId;
ConstrainDOMString groupId;
+ ConstrainBoolean backgroundBlur;
};
dictionary MediaTrackSettings {
@@ -119,6 +122,7 @@ dictionary MediaTrackSettings {
unsigned long channelCount;
DOMString deviceId;
DOMString groupId;
+ boolean backgroundBlur;
};
enum VideoFacingModeEnum {
@@ -183,6 +187,7 @@ interface InputDeviceInfo : MediaDeviceInfo {
interface DeviceChangeEvent : Event {
constructor(DOMString type, optional DeviceChangeEventInit eventInitDict = {});
[SameObject] readonly attribute FrozenArray<MediaDeviceInfo> devices;
+ [SameObject] readonly attribute FrozenArray<MediaDeviceInfo> userInsertedDevices;
};
dictionary DeviceChangeEventInit : EventInit {
diff --git a/tests/wpt/tests/interfaces/permissions-policy.idl b/tests/wpt/tests/interfaces/permissions-policy.idl
index 16945e3a9b7..5878d8d150a 100644
--- a/tests/wpt/tests/interfaces/permissions-policy.idl
+++ b/tests/wpt/tests/interfaces/permissions-policy.idl
@@ -21,6 +21,7 @@ partial interface HTMLIFrameElement {
[Exposed=Window]
interface PermissionsPolicyViolationReportBody : ReportBody {
+ [Default] object toJSON();
readonly attribute DOMString featureId;
readonly attribute DOMString? sourceFile;
readonly attribute long? lineNumber;
diff --git a/tests/wpt/tests/interfaces/pointerlock.idl b/tests/wpt/tests/interfaces/pointerlock.idl
index 0204bf53424..afe19cc9ee6 100644
--- a/tests/wpt/tests/interfaces/pointerlock.idl
+++ b/tests/wpt/tests/interfaces/pointerlock.idl
@@ -3,8 +3,12 @@
// (https://github.com/w3c/webref)
// Source: Pointer Lock 2.0 (https://w3c.github.io/pointerlock/)
+dictionary PointerLockOptions {
+ boolean unadjustedMovement = false;
+};
+
partial interface Element {
- undefined requestPointerLock();
+ Promise<undefined> requestPointerLock(optional PointerLockOptions options = {});
};
partial interface Document {
@@ -14,7 +18,7 @@ partial interface Document {
};
partial interface mixin DocumentOrShadowRoot {
- readonly attribute Element ? pointerLockElement;
+ readonly attribute Element? pointerLockElement;
};
partial interface MouseEvent {
diff --git a/tests/wpt/tests/interfaces/shared-storage.idl b/tests/wpt/tests/interfaces/shared-storage.idl
index c40344e74d2..9582f872f94 100644
--- a/tests/wpt/tests/interfaces/shared-storage.idl
+++ b/tests/wpt/tests/interfaces/shared-storage.idl
@@ -8,7 +8,7 @@ typedef (USVString or FencedFrameConfig) SharedStorageResponse;
[Exposed=(Window)]
interface SharedStorageWorklet : Worklet {
Promise<SharedStorageResponse> selectURL(DOMString name,
- FrozenArray<SharedStorageUrlWithMetadata> urls,
+ sequence<SharedStorageUrlWithMetadata> urls,
optional SharedStorageRunOperationMethodOptions options = {});
Promise<any> run(DOMString name,
optional SharedStorageRunOperationMethodOptions options = {});
@@ -47,7 +47,7 @@ dictionary SharedStorageSetMethodOptions {
[Exposed=(Window)]
interface WindowSharedStorage : SharedStorage {
Promise<SharedStorageResponse> selectURL(DOMString name,
- FrozenArray<SharedStorageUrlWithMetadata> urls,
+ sequence<SharedStorageUrlWithMetadata> urls,
optional SharedStorageRunOperationMethodOptions options = {});
Promise<any> run(DOMString name,
optional SharedStorageRunOperationMethodOptions options = {});
diff --git a/tests/wpt/tests/interfaces/trusted-types.idl b/tests/wpt/tests/interfaces/trusted-types.idl
index a0f88e4e6c3..b6008e18725 100644
--- a/tests/wpt/tests/interfaces/trusted-types.idl
+++ b/tests/wpt/tests/interfaces/trusted-types.idl
@@ -58,9 +58,6 @@ callback CreateHTMLCallback = DOMString? (DOMString input, any... arguments);
callback CreateScriptCallback = DOMString? (DOMString input, any... arguments);
callback CreateScriptURLCallback = USVString? (DOMString input, any... arguments);
-typedef [StringContext=TrustedHTML] DOMString HTMLString;
-typedef [StringContext=TrustedScript] DOMString ScriptString;
-typedef [StringContext=TrustedScriptURL] USVString ScriptURLString;
typedef (TrustedHTML or TrustedScript or TrustedScriptURL) TrustedType;
partial interface mixin WindowOrWorkerGlobalScope {
diff --git a/tests/wpt/tests/interfaces/turtledove.idl b/tests/wpt/tests/interfaces/turtledove.idl
index d4cc8c6bc5d..b7a1775a2ce 100644
--- a/tests/wpt/tests/interfaces/turtledove.idl
+++ b/tests/wpt/tests/interfaces/turtledove.idl
@@ -64,6 +64,7 @@ partial interface Navigator {
[SecureContext]
partial interface Navigator {
Promise<(USVString or FencedFrameConfig)?> runAdAuction(AuctionAdConfig config);
+ readonly attribute boolean deprecatedRunAdAuctionEnforcesKAnonymity;
};
dictionary AuctionAdConfig {
@@ -101,6 +102,11 @@ dictionary AuctionAdConfig {
[SecureContext]
partial interface Navigator {
+ boolean canLoadAdAuctionFencedFrame();
+};
+
+[SecureContext]
+partial interface Navigator {
Promise<DOMString> createAuctionNonce();
};
diff --git a/tests/wpt/tests/interfaces/webauthn.idl b/tests/wpt/tests/interfaces/webauthn.idl
index 3d5a453addc..e52b62b055e 100644
--- a/tests/wpt/tests/interfaces/webauthn.idl
+++ b/tests/wpt/tests/interfaces/webauthn.idl
@@ -357,17 +357,6 @@ dictionary AuthenticationExtensionsLargeBlobOutputs {
boolean written;
};
-partial dictionary AuthenticationExtensionsClientInputs {
- boolean uvm;
-};
-
-typedef sequence<unsigned long> UvmEntry;
-typedef sequence<UvmEntry> UvmEntries;
-
-partial dictionary AuthenticationExtensionsClientOutputs {
- UvmEntries uvm;
-};
-
dictionary AuthenticationExtensionsSupplementalPubKeysInputs {
required sequence<DOMString> scopes;
DOMString attestation = "indirect";
diff --git a/tests/wpt/tests/interfaces/webgpu.idl b/tests/wpt/tests/interfaces/webgpu.idl
index 4a1b339a002..00584589d5b 100644
--- a/tests/wpt/tests/interfaces/webgpu.idl
+++ b/tests/wpt/tests/interfaces/webgpu.idl
@@ -118,6 +118,7 @@ enum GPUFeatureName {
"bgra8unorm-storage",
"float32-filterable",
"clip-distances",
+ "dual-source-blending",
};
[Exposed=(Window, Worker), SecureContext]
@@ -751,6 +752,10 @@ enum GPUBlendFactor {
"src-alpha-saturated",
"constant",
"one-minus-constant",
+ "src1",
+ "one-minus-src1",
+ "src1-alpha",
+ "one-minus-src1-alpha",
};
enum GPUBlendOperation {
@@ -1184,12 +1189,22 @@ enum GPUCanvasAlphaMode {
"premultiplied",
};
+enum GPUCanvasToneMappingMode {
+ "standard",
+ "extended",
+};
+
+dictionary GPUCanvasToneMapping {
+ GPUCanvasToneMappingMode mode = "standard";
+};
+
dictionary GPUCanvasConfiguration {
required GPUDevice device;
required GPUTextureFormat format;
GPUTextureUsageFlags usage = 0x10; // GPUTextureUsage.RENDER_ATTACHMENT
sequence<GPUTextureFormat> viewFormats = [];
PredefinedColorSpace colorSpace = "srgb";
+ GPUCanvasToneMapping toneMapping = {};
GPUCanvasAlphaMode alphaMode = "opaque";
};
diff --git a/tests/wpt/tests/interfaces/webnn.idl b/tests/wpt/tests/interfaces/webnn.idl
index 29c88122adc..ac8710049ab 100644
--- a/tests/wpt/tests/interfaces/webnn.idl
+++ b/tests/wpt/tests/interfaces/webnn.idl
@@ -11,7 +11,8 @@ WorkerNavigator includes NavigatorML;
enum MLDeviceType {
"cpu",
- "gpu"
+ "gpu",
+ "npu"
};
enum MLPowerPreference {
@@ -131,7 +132,6 @@ dictionary MLClampOptions {
partial interface MLGraphBuilder {
MLOperand clamp(MLOperand input, optional MLClampOptions options = {});
- MLActivation clamp(optional MLClampOptions options = {});
};
partial interface MLGraphBuilder {
@@ -513,7 +513,6 @@ partial interface MLGraphBuilder {
partial interface MLGraphBuilder {
MLOperand softmax(MLOperand input, unsigned long axis);
- MLActivation softmax(unsigned long axis);
};
partial interface MLGraphBuilder {
diff --git a/tests/wpt/tests/interfaces/webrtc.idl b/tests/wpt/tests/interfaces/webrtc.idl
index de6ba1420ce..6bfbdb898c5 100644
--- a/tests/wpt/tests/interfaces/webrtc.idl
+++ b/tests/wpt/tests/interfaces/webrtc.idl
@@ -345,13 +345,10 @@ dictionary RTCRtpCodecParameters : RTCRtpCodec {
};
dictionary RTCRtpCapabilities {
- required sequence<RTCRtpCodecCapability> codecs;
+ required sequence<RTCRtpCodec> codecs;
required sequence<RTCRtpHeaderExtensionCapability> headerExtensions;
};
-dictionary RTCRtpCodecCapability : RTCRtpCodec {
-};
-
dictionary RTCRtpHeaderExtensionCapability {
required DOMString uri;
};
diff --git a/tests/wpt/tests/interfaces/webxr-hit-test.idl b/tests/wpt/tests/interfaces/webxr-hit-test.idl
index fa4fb71c9de..d01bffe2703 100644
--- a/tests/wpt/tests/interfaces/webxr-hit-test.idl
+++ b/tests/wpt/tests/interfaces/webxr-hit-test.idl
@@ -11,13 +11,13 @@ enum XRHitTestTrackableType {
dictionary XRHitTestOptionsInit {
required XRSpace space;
- FrozenArray<XRHitTestTrackableType> entityTypes;
+ sequence<XRHitTestTrackableType> entityTypes;
XRRay offsetRay;
};
dictionary XRTransientInputHitTestOptionsInit {
required DOMString profile;
- FrozenArray<XRHitTestTrackableType> entityTypes;
+ sequence<XRHitTestTrackableType> entityTypes;
XRRay offsetRay;
};
@@ -48,8 +48,8 @@ partial interface XRSession {
};
partial interface XRFrame {
- FrozenArray<XRHitTestResult> getHitTestResults(XRHitTestSource hitTestSource);
- FrozenArray<XRTransientInputHitTestResult> getHitTestResultsForTransientInput(XRTransientInputHitTestSource hitTestSource);
+ sequence<XRHitTestResult> getHitTestResults(XRHitTestSource hitTestSource);
+ sequence<XRTransientInputHitTestResult> getHitTestResultsForTransientInput(XRTransientInputHitTestSource hitTestSource);
};
dictionary XRRayDirectionInit {
diff --git a/tests/wpt/tests/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html b/tests/wpt/tests/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html
index 27583d3c9c5..38f681593d1 100644
--- a/tests/wpt/tests/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html
+++ b/tests/wpt/tests/permissions-policy/payment-allowed-by-permissions-policy.https.sub.html
@@ -48,7 +48,7 @@
expect_feature_available: expect_feature_unavailable_default,
is_promise_test: true,
});
- }, `${header} disallows Payment Request API cross-origin iframes.`);
+ }, `Payment Request API is disabled in cross-origin iframe if allow="payment" is not set and ${header}.`);
promise_test(async (test) => {
return test_feature_availability({
diff --git a/tests/wpt/tests/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html b/tests/wpt/tests/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html
index b53eff996a4..ca86e4450ec 100644
--- a/tests/wpt/tests/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html
+++ b/tests/wpt/tests/permissions-policy/payment-disabled-by-permissions-policy.https.sub.html
@@ -40,6 +40,7 @@
test,
src: cross_origin_src,
expect_feature_available: expect_feature_unavailable_default,
+ feature_name: "payment",
is_promise_test: true,
});
}, `${header} disallows Payment Request API in cross-origin iframes.`);
diff --git a/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.html b/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.html
index bd24daf6171..eb405d26c33 100644
--- a/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.html
+++ b/tests/wpt/tests/pointerevents/pointerevent_pointerrawupdate.html
@@ -19,7 +19,7 @@
<p>Press left button down and then press middle button while holding down left button. Then release the buttons</p>
<div id="target0"></div>
<script>
- var test_pointerrawupdate = async_test("pointerrawupdate event received");
+ var test_pointerrawupdate = async_test("pointerrawupdate event not received");
var actions_promise;
var pointerrawupdateReceived = false;
diff --git a/tests/wpt/tests/resources/chromium/mock-pressure-service.js b/tests/wpt/tests/resources/chromium/mock-pressure-service.js
index 016c6d97e73..8e205d31cb7 100644
--- a/tests/wpt/tests/resources/chromium/mock-pressure-service.js
+++ b/tests/wpt/tests/resources/chromium/mock-pressure-service.js
@@ -1,11 +1,12 @@
-import {PressureManager, PressureManagerReceiver, PressureStatus} from '/gen/services/device/public/mojom/pressure_manager.mojom.m.js'
+import {PressureStatus} from '/gen/services/device/public/mojom/pressure_manager.mojom.m.js'
import {PressureSource, PressureState} from '/gen/services/device/public/mojom/pressure_update.mojom.m.js'
+import {WebPressureManager, WebPressureManagerReceiver} from '/gen/third_party/blink/public/mojom/compute_pressure/web_pressure_manager.mojom.m.js'
-class MockPressureService {
+class MockWebPressureService {
constructor() {
- this.receiver_ = new PressureManagerReceiver(this);
+ this.receiver_ = new WebPressureManagerReceiver(this);
this.interceptor_ =
- new MojoInterfaceInterceptor(PressureManager.$interfaceName);
+ new MojoInterfaceInterceptor(WebPressureManager.$interfaceName);
this.interceptor_.oninterfacerequest = e => {
this.receiver_.$.bindHandle(e.handle);
};
@@ -124,4 +125,4 @@ class MockPressureService {
}
}
-export const mockPressureService = new MockPressureService();
+export const mockPressureService = new MockWebPressureService();
diff --git a/tests/wpt/tests/resources/testdriver.js b/tests/wpt/tests/resources/testdriver.js
index 2d1a89690cc..af7b3e06cd9 100644
--- a/tests/wpt/tests/resources/testdriver.js
+++ b/tests/wpt/tests/resources/testdriver.js
@@ -1100,6 +1100,14 @@
throw new Error("get_named_cookie() is not implemented by testdriver-vendor.js");
},
+ async get_computed_role(element) {
+ throw new Error("get_computed_role is a testdriver.js function which cannot be run in this context.");
+ },
+
+ async get_computed_name(element) {
+ throw new Error("get_computed_name is a testdriver.js function which cannot be run in this context.");
+ },
+
async send_keys(element, keys) {
if (this.in_automation) {
throw new Error("send_keys() is not implemented by testdriver-vendor.js");
diff --git a/tests/wpt/tests/scroll-animations/css/scroll-timeline-in-container-query.html b/tests/wpt/tests/scroll-animations/css/scroll-timeline-in-container-query.html
index 742c35b2580..b22e8c90679 100644
--- a/tests/wpt/tests/scroll-animations/css/scroll-timeline-in-container-query.html
+++ b/tests/wpt/tests/scroll-animations/css/scroll-timeline-in-container-query.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<title>scroll-timeline and container queries</title>
<link rel="help" src="https://drafts.csswg.org/scroll-animations-1/#scroll-timeline-shorthand">
-<link rel="help" src="https://drafts.csswg.org/css-contain-3/#container-queries">
+<link rel="help" src="https://drafts.csswg.org/css-conditional-5/#container-queries">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/web-animations/testcommon.js"></script>
diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html
new file mode 100644
index 00000000000..fac5882b056
--- /dev/null
+++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<title>Same document navigation to text fragment directives, with force-load-at-top</title>
+<meta charset=utf-8>
+<link rel="help" href="https://wicg.github.io/ScrollToTextFragment/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/util.js"></script>
+<script src="same-document-tests.js"></script>
+<style>
+ div {
+ margin: 200vh 0 200vh 0;
+ }
+</style>
+<body onload="runTests()">
+ <div id="text">
+ This is a line of text.
+ </div>
+ <div id="elementid">
+ This div has an id: 'elementid'.
+ </div>
+</body>
diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html.headers b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html.headers
new file mode 100644
index 00000000000..33dcdbb01ff
--- /dev/null
+++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-force-load-at-top.html.headers
@@ -0,0 +1 @@
+Document-Policy: force-load-at-top
diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html
new file mode 100644
index 00000000000..85b9237755c
--- /dev/null
+++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<title>Same document navigation to text fragment directives, with force-load-at-top set to false</title>
+<meta charset=utf-8>
+<link rel="help" href="https://wicg.github.io/ScrollToTextFragment/">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="resources/util.js"></script>
+<script src="same-document-tests.js"></script>
+<style>
+ div {
+ margin: 200vh 0 200vh 0;
+ }
+</style>
+<body onload="runTests()">
+ <div id="text">
+ This is a line of text.
+ </div>
+ <div id="elementid">
+ This div has an id: 'elementid'.
+ </div>
+</body>
diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html.headers b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html.headers
new file mode 100644
index 00000000000..e500009f91c
--- /dev/null
+++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests-no-force-load-at-top.html.headers
@@ -0,0 +1 @@
+Document-Policy: force-load-at-top=?0
diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.html b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.html
index 85db2de0a22..ab96fb56e04 100644
--- a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.html
+++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.html
@@ -5,47 +5,7 @@
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/util.js"></script>
-<script>
- function reset() {
- location.hash = '';
- window.scrollTo(0, 0);
- }
-
- function runTests() {
- // Ensure a simple text directive works correctly when navigated to the
- // same document using `location.hash`.
- promise_test(async t => {
- assert_implements(document.fragmentDirective, 'Text directive not implemented');
- reset();
-
- location.hash = ':~:text=line%20of%20text';
- await t.step_wait(() => window.scrollY > 0, "Wait for scroll");
- assert_true(isInViewport(document.getElementById('text')), 'Scrolled to text');
- }, 'Basic text directive navigation');
-
- // Test that we correctly fallback to the element id when we have a text
- // directive that doesn't match any text in the page.
- promise_test(async t => {
- assert_implements(document.fragmentDirective, 'Text directive not implemented');
- reset();
-
- location.hash = 'elementid:~:text=textDoesntExist';
- await t.step_wait(() => window.scrollY > 0, "Wait for scroll");
- assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to `elementid`');
- }, 'Basic element id fallback');
-
- // Test that we correctly fallback to the element id when we have a text
- // directive that's malformed and won't be parsed.
- promise_test(async t => {
- assert_implements(document.fragmentDirective, 'Text directive not implemented');
- reset();
-
- location.hash = 'elementid:~:text=,,,,,';
- await t.step_wait(() => window.scrollY > 0, "Wait for scroll");
- assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to `elementid`');
- }, 'Malformed text directive element id fallback');
- }
-</script>
+<script src="same-document-tests.js"></script>
<style>
div {
margin: 200vh 0 200vh 0;
diff --git a/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.js b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.js
new file mode 100644
index 00000000000..6531c8aec19
--- /dev/null
+++ b/tests/wpt/tests/scroll-to-text-fragment/same-document-tests.js
@@ -0,0 +1,48 @@
+function reset() {
+ location.hash = '';
+ window.scrollTo(0, 0);
+}
+
+function runTests() {
+ promise_test(async t => {
+ assert_implements(document.fragmentDirective, 'Text directive not implemented');
+ reset();
+
+ location.hash = 'elementid';
+ await t.step_wait(() => window.scrollY > 0, "Wait for scroll");
+ assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to text');
+ }, 'Basic element fragment navigation');
+
+ // Ensure a simple text directive works correctly when navigated to the
+ // same document using `location.hash`.
+ promise_test(async t => {
+ assert_implements(document.fragmentDirective, 'Text directive not implemented');
+ reset();
+
+ location.hash = ':~:text=line%20of%20text';
+ await t.step_wait(() => window.scrollY > 0, "Wait for scroll");
+ assert_true(isInViewport(document.getElementById('text')), 'Scrolled to text');
+ }, 'Basic text directive navigation');
+
+ // Test that we correctly fallback to the element id when we have a text
+ // directive that doesn't match any text in the page.
+ promise_test(async t => {
+ assert_implements(document.fragmentDirective, 'Text directive not implemented');
+ reset();
+
+ location.hash = 'elementid:~:text=textDoesntExist';
+ await t.step_wait(() => window.scrollY > 0, "Wait for scroll");
+ assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to `elementid`');
+ }, 'Basic element id fallback');
+
+ // Test that we correctly fallback to the element id when we have a text
+ // directive that's malformed and won't be parsed.
+ promise_test(async t => {
+ assert_implements(document.fragmentDirective, 'Text directive not implemented');
+ reset();
+
+ location.hash = 'elementid:~:text=,,,,,';
+ await t.step_wait(() => window.scrollY > 0, "Wait for scroll");
+ assert_true(isInViewport(document.getElementById('elementid')), 'Scrolled to `elementid`');
+ }, 'Malformed text directive element id fallback');
+}
diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-across-scopes.html b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-across-scopes.html
index 9f7772b9118..76e5af8c74b 100644
--- a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-across-scopes.html
+++ b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-across-scopes.html
@@ -18,15 +18,17 @@
}
</style>
+<!-- Since C is a direct reading flow item, it is visited first. -->
+<!-- Since B,A are inside a display: contents, they are visited after. -->
<div class="test-case" data-expect="C,B,A"
- data-description="Grid items in shadow root that is a display contents grid item">
- <div class=wrapper id="root">
+ data-description="Grid items in shadow host that is a display contents grid item">
+ <div class=wrapper>
<div style="display: contents">
<template shadowrootmode=open>
<slot></slot>
</template>
- <button id="A2" style="order: 2">A</button>
- <button id="B2" style="order: 1">B</button>
+ <button id="A" style="order: 2">A</button>
+ <button id="B" style="order: 1">B</button>
</div>
<button id="C" style="order: 3">C</button>
</div>
diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-on-shadow-host.html b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-on-shadow-host.html
index f5a8b3c313e..c83e2283f50 100644
--- a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-on-shadow-host.html
+++ b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-on-shadow-host.html
@@ -18,9 +18,9 @@
}
</style>
-<div class="test-case" data-expect="root/B,root/A"
+<div class="test-case" data-expect="host/B,host/A"
data-description="Grid items in shadow host with delegatesFocus">
- <div id="root" class="wrapper" tabindex="0">
+ <div id="host" class="wrapper" tabindex="0">
<template shadowrootmode="open" shadowrootdelegatesfocus>
<button id="A" style="order: 2">A</button>
<button id="B" style="order: 1">B</button>
@@ -28,9 +28,9 @@
</div>
</div>
-<div class="test-case" data-expect="root2,root2/B,root2/A"
+<div class="test-case" data-expect="host2,host2/B,host2/A"
data-description="Grid items in shadow host without delegatesFocus">
- <div id="root2" class="wrapper" tabindex="0">
+ <div id="host2" class="wrapper" tabindex="0">
<template shadowrootmode="open">
<button id="A" style="order: 2">A</button>
<button id="B" style="order: 1">B</button>
diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-with-slots.html b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-with-slots.html
index 4cfdc79fa40..f52c9ebdc81 100644
--- a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-with-slots.html
+++ b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order-with-slots.html
@@ -19,7 +19,7 @@
}
</style>
-<span id="root1" class="test-case" data-expect="b1,a1,c1"
+<span id="host1" class="test-case" data-expect="b1,a1,c1"
data-description="Slot assigned element is a grid with reading-flow.">
<template shadowrootmode="open">
<style>
@@ -38,7 +38,7 @@
</span>
<br>
-<span id="root2" class="test-case" data-expect="b2,a2,c2"
+<span id="host2" class="test-case" data-expect="b2,a2,c2"
data-description="Slot is a grid with reading-flow.">
<template shadowrootmode="open">
<style>
@@ -55,7 +55,7 @@
</span>
<br>
-<span id="root3" class="test-case" data-expect="root3/o2,root3/o4,o1,o3,o5"
+<span id="host3" class="test-case" data-expect="host3/o2,host3/o4,o1,o3,o5"
data-description="Slot is inside a grid container with reading-flow.">
<template shadowrootmode="open">
<style>
@@ -70,14 +70,14 @@
<button style="order: 2" id="o2">Order 2</button>
</div>
</template>
- <button style="order: 5" id="o5">Order 5</button>
- <button style="order: 1" id="o1">Order 1</button>
- <button style="order: 3" id="o3">Order 3</button>
+ <button style="order: 5" id="o5">Slotted 5</button>
+ <button style="order: 1" id="o1">Slotted 1</button>
+ <button style="order: 3" id="o3">Slotted 3</button>
</span>
<br>
-<span id="root4" class="test-case"
- data-expect="root4/after,root4/before,b4,a4,d42,d41,d43,c4"
+<span id="host4" class="test-case"
+ data-expect="host4/after,host4/before,b4,a4,d42,d41,d43,c4"
data-description="Slot is a grid with reading-flow inside a grid container with reading-flow.">
<template shadowrootmode="open">
<style>
@@ -103,8 +103,8 @@
</span>
<br>
-<span id="root5" class="test-case" data-expect="b51,a51,c51,b52,a52,c52"
- data-description="Slot is not inside a shadow root.">
+<span id="host5" class="test-case" data-expect="b51,a51,c51,b52,a52,c52"
+ data-description="Slot is not inside a shadow host.">
<div class="wrapper">
<slot name=slot1>
<button style="order: 2" id="a51">Item A</button>
@@ -120,7 +120,7 @@
</span>
<br>
-<span id="root6" class="test-case" data-expect="root6/after,root6/before,b6,a6"
+<span id="host6" class="test-case" data-expect="host6/after,host6/before,b6,a6"
data-description="Slot is a display contents inside a grid container.">
<template shadowrootmode="open">
<style>
@@ -140,7 +140,7 @@
</span>
<br>
-<span id="root7" class="test-case" data-expect="a7,b7,root7/after,root7/before"
+<span id="host7" class="test-case" data-expect="a7,b7,host7/after,host7/before"
data-description="Slot is a display block inside a grid container.">
<template shadowrootmode="open">
<style>
diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order.html b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order.html
index 358f5c2988c..b2dd197413e 100644
--- a/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order.html
+++ b/tests/wpt/tests/shadow-dom/focus-navigation/reading-flow/tentative/grid-order.html
@@ -73,6 +73,20 @@
</div>
</div>
+<div class="test-case" data-expect="order1B,order2B,order3B,order4B,div1B,div2B"
+ data-description="Items in display contents are sorted in same grid container, with focusable display contents divs at the end of the focus sequence.">
+ <div class="wrapper">
+ <div id="div1B" style="display: contents" tabindex="0">
+ <button id="order3B" style="order: 3">Order 3</button>
+ <button id="order1B" style="order: 1">Order 1</button>
+ <div id="div2B" style="display: contents" tabindex="0">
+ <button id="order4B" style="order: 4">Order 4</button>
+ <button id="order2B" style="order: 2">Order 2</button>
+ </div>
+ </div>
+ </div>
+</div>
+
<div class="test-case" data-expect="d4,b4,c4,a4"
data-description="Items in display block are not in parent grid container.">
<div class="wrapper">
diff --git a/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe-iframe.html b/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe-iframe.html
index 77f1163f363..cfc7d599a1b 100644
--- a/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe-iframe.html
+++ b/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe-iframe.html
@@ -310,6 +310,22 @@
handle_shared_worker.port.postMessage("Same-origin handle access");
break;
}
+ case "unpartitioned": {
+ await MaybeSetStorageAccess("*", "*", "allowed");
+ await test_driver.set_permission({ name: 'storage-access' }, 'denied');
+ let hasUnpartitionedCookieAccess = await document.hasUnpartitionedCookieAccess();
+ if (!hasUnpartitionedCookieAccess) {
+ message = "First-party cookies should be readable as the state is unpartitioned.";
+ }
+ const handle = await document.requestStorageAccess({BroadcastChannel: true});
+ const handle_channel = handle.BroadcastChannel(id);
+ handle_channel.postMessage("Same-origin handle access");
+ handle_channel.close();
+ const local_channel = new BroadcastChannel(id);
+ local_channel.postMessage("Same-origin local access");
+ local_channel.close();
+ break;
+ }
default: {
message = "Unexpected type " + type;
break;
diff --git a/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html b/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html
index a9247a00020..3d9f5bb1ef2 100644
--- a/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html
+++ b/tests/wpt/tests/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html
@@ -16,12 +16,24 @@ window.addEventListener("message", async (e) => {
// Step 4 (storage-access-api/storage-access-beyond-cookies.{}.tentative.sub.https.html)
try {
await MaybeSetStorageAccess("*", "*", "blocked");
- await test_driver.set_permission({ name: 'storage-access' }, 'granted');
if (type == "cookies") {
+ await test_driver.set_permission({ name: 'storage-access' }, 'denied');
+ let didSeeError = false;
+ try {
+ await document.requestStorageAccess({cookies: true});
+ } catch (e) {
+ didSeeError = true;
+ }
+ if (!didSeeError) {
+ message = "First-party cookies should not be readable if storage access is denied.";
+ }
+ await test_driver.set_permission({ name: 'storage-access' }, 'granted');
let hasUnpartitionedCookieAccess = await document.hasUnpartitionedCookieAccess();
if (hasUnpartitionedCookieAccess) {
message = "First-party cookies should not be readable before handle is loaded.";
}
+ } else {
+ await test_driver.set_permission({ name: 'storage-access' }, 'granted');
}
const handle = await test_driver.bless("fake user interaction", () => document.requestStorageAccess({all: true}));
if (type == "cookies") {
@@ -121,6 +133,12 @@ window.addEventListener("message", async (e) => {
shared_worker.port.postMessage("Cross-origin handle access");
break;
}
+ case "unpartitioned": {
+ const channel = handle.BroadcastChannel(id);
+ channel.postMessage("Cross-origin handle access");
+ channel.close();
+ break;
+ }
default: {
message = "Unexpected type " + type;
break;
diff --git a/tests/wpt/tests/storage-access-api/storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.js b/tests/wpt/tests/storage-access-api/storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.js
new file mode 100644
index 00000000000..ddc5b49f481
--- /dev/null
+++ b/tests/wpt/tests/storage-access-api/storage-access-beyond-cookies.unpartitioned.tentative.sub.https.window.js
@@ -0,0 +1,40 @@
+// META: script=/resources/testdriver.js
+// META: script=/resources/testdriver-vendor.js
+
+'use strict';
+
+// Here's the set-up for this test:
+// Step 1 (top-frame) Set up listener for "HasAccess" message.
+// Step 2 (top-frame) Open channel first-party broadcast.
+// Step 3 (top-frame) Embed an iframe that's cross-site with top-frame.
+// Step 4 (sub-frame) Try to use storage access API and send first-party broadcast.
+// Step 5 (sub-frame) Embed an iframe that's same-origin with top-frame.
+// Step 6 (sub-sub-frame) Try to use storage access API and send first-party broadcast when unpartitioned.
+// Step 7 (sub-sub-frame) Send "HasAccess for unpartitioned" message to top-frame.
+// Step 8 (top-frame) Receive "HasAccess for unpartitioned" message and cleanup.
+
+async_test(t => {
+ let broadcasts = [];
+ // Step 1
+ window.addEventListener("message", t.step_func(e => {
+ if (e.data.type != "result") {
+ return;
+ }
+ // Step 8
+ assert_equals(e.data.message, "HasAccess for unpartitioned", "Storage Access API should be accessible and return first-party data");
+ assert_array_equals(broadcasts, ["Same-origin handle access"], "Should have only seen same-origin handle broadcasts");
+ t.done();
+ }));
+
+ // Step 2
+ const id = Date.now();
+ const channel = new BroadcastChannel(id);
+ channel.onmessage = (event) => {
+ broadcasts.push(event.data);
+ };
+
+ // Step 3
+ let iframe = document.createElement("iframe");
+ iframe.src = "https://{{hosts[alt][]}}:{{ports[https][0]}}/storage-access-api/resources/storage-access-beyond-cookies-iframe.sub.html?type=unpartitioned&id="+id;
+ document.body.appendChild(iframe);
+}, "Verify StorageAccessAPIBeyondCookies when unpartitioned");
diff --git a/tests/wpt/tests/svg/painting/reftests/non-scaling-stroke-003.html b/tests/wpt/tests/svg/painting/reftests/non-scaling-stroke-003.html
new file mode 100644
index 00000000000..147bf814d30
--- /dev/null
+++ b/tests/wpt/tests/svg/painting/reftests/non-scaling-stroke-003.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<html>
+<title>non-scaling-stroke with screen transform</title>
+<link rel="help" href="https://svgwg.org/svg2-draft/painting.html#PaintingVectorEffects" />
+<link rel="match" href="green-100x100.svg" />
+<body>
+ <style>
+ body {
+ border: none;
+ margin: 0;
+ width: 200px;
+ height: 200px;
+ transform: scale(0.5);
+ }
+ svg {
+ width: 100px;
+ height: 100px;
+ transform: scale(2) translate(-25px, -25px);
+ transform-origin: center;
+ transform-bxox: fill-box;
+ }
+ rect {
+ fill: red;
+ stroke: green;
+ stroke-width: 75px;
+ vector-effect: non-scaling-stroke screen;
+ }
+ </style>
+ <svg>
+ <rect width="75" height="75"/>
+ </svg>
+</body>
+</html>
diff --git a/tests/wpt/tests/svg/styling/vector-effect-invalid.html b/tests/wpt/tests/svg/styling/vector-effect-invalid.html
new file mode 100644
index 00000000000..ec49b88c599
--- /dev/null
+++ b/tests/wpt/tests/svg/styling/vector-effect-invalid.html
@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>vector-effect test: parsing vector-effect with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/SVG2/coords.html#VectorEffects">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_invalid_value("vector-effect", "none none");
+test_invalid_value("vector-effect", "none non-scaling-stroke");
+test_invalid_value("vector-effect", "non-scaling-stroke viewport screen");
+test_invalid_value("vector-effect", "none viewport");
+test_invalid_value("vector-effect", "none screen");
+test_invalid_value("vector-effect", "viewport");
+test_invalid_value("vector-effect", "screen");
+test_invalid_value("vector-effect", "screen non-scaling-stroke");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/tests/svg/styling/vector-effect-valid.html b/tests/wpt/tests/svg/styling/vector-effect-valid.html
new file mode 100644
index 00000000000..9563db0523b
--- /dev/null
+++ b/tests/wpt/tests/svg/styling/vector-effect-valid.html
@@ -0,0 +1,19 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<title>vector-effect test: parsing vector-effect with invalid values</title>
+<link rel="help" href="https://www.w3.org/TR/SVG2/coords.html#VectorEffects">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/css/support/parsing-testcommon.js"></script>
+</head>
+<body>
+<script>
+test_valid_value("vector-effect", "none");
+test_valid_value("vector-effect", "non-scaling-stroke");
+test_valid_value("vector-effect", "non-scaling-stroke viewport", "non-scaling-stroke");
+test_valid_value("vector-effect", "non-scaling-stroke screen");
+</script>
+</body>
+</html>
diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py
index 4523f67e9c9..46c5885271a 100644
--- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py
+++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py
@@ -241,3 +241,14 @@ class Network(BidiModule):
def remove_intercept(self, intercept: str) -> Mapping[str, Any]:
params: MutableMapping[str, Any] = {"intercept": intercept}
return params
+
+ @command
+ def set_cache_bypass(
+ self, bypass: bool, contexts: Optional[List[str]] = None
+ ) -> Mapping[str, Any]:
+ params: MutableMapping[str, Any] = {"bypass": bypass}
+
+ if contexts is not None:
+ params["contexts"] = contexts
+
+ return params
diff --git a/tests/wpt/tests/tools/wptrunner/requirements.txt b/tests/wpt/tests/tools/wptrunner/requirements.txt
index ae71bbbad6d..565055c6e3d 100644
--- a/tests/wpt/tests/tools/wptrunner/requirements.txt
+++ b/tests/wpt/tests/tools/wptrunner/requirements.txt
@@ -7,4 +7,4 @@ packaging==24.0
pillow==10.3.0
requests==2.32.3
six==1.16.0
-urllib3==2.2.1
+urllib3==2.2.2
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py
index 3b1bd6411e2..d0d9f1d3421 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/browsers/chrome.py
@@ -119,6 +119,8 @@ def executor_kwargs(logger, test_type, test_environment, run_info_data, subsuite
# flag is no-op. Required to avoid flakiness in tests, as the infobar
# changes the viewport, which can happen during the test run.
chrome_options["args"].append("--disable-infobars")
+ # For WebNN tests.
+ chrome_options["args"].append("--enable-features=WebMachineLearningNeuralNetwork")
# Classify `http-private`, `http-public` and https variants in the
# appropriate IP address spaces.
diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py b/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py
index 0a5dfb1fd18..003a6acbd99 100644
--- a/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py
+++ b/tests/wpt/tests/tools/wptrunner/wptrunner/testrunner.py
@@ -478,19 +478,18 @@ class TestRunnerManager(threading.Thread):
self.logger.debug("TestRunnerManager main loop terminating, starting cleanup")
skipped_tests = []
- while True:
- _, _, test, _, _ = self.get_next_test()
- if test is None:
- break
+ test_group, subsuite, _, _ = self.test_source.current_group
+ while test_group is not None and len(test_group) > 0:
+ test = test_group.popleft()
skipped_tests.append(test)
if skipped_tests:
self.logger.critical(
- f"Tests left in the queue: {skipped_tests[0].id!r} "
+ f"Tests left in the queue: {subsuite}:{skipped_tests[0].id!r} "
f"and {len(skipped_tests) - 1} others"
)
for test in skipped_tests[1:]:
- self.logger.debug(f"Test left in the queue: {test.id!r}")
+ self.logger.debug(f"Test left in the queue: {subsuite}:{test.id!r}")
force_stop = (not isinstance(self.state, RunnerManagerState.stop) or
self.state.force_stop)
@@ -957,6 +956,8 @@ class TestRunnerManager(threading.Thread):
try:
self.browser.stop(force=force)
self.ensure_runner_stopped()
+ except (OSError, PermissionError):
+ self.logger.error("Failed to stop the runner")
finally:
self.cleanup()
diff --git a/tests/wpt/tests/touch-events/single-touch-vertical-rl.html b/tests/wpt/tests/touch-events/single-touch-vertical-rl.html
index 3c34a6d9c96..623e57e8a11 100644
--- a/tests/wpt/tests/touch-events/single-touch-vertical-rl.html
+++ b/tests/wpt/tests/touch-events/single-touch-vertical-rl.html
@@ -12,28 +12,44 @@
<script>
setup({explicit_done: true});
- async function run() {
- document.documentElement.addEventListener("touchstart", function onTouchStart(event) {
- test(function() {
- assert_equals(event.changedTouches[0].clientX, 10, "clientX");
- assert_equals(event.changedTouches[0].clientY, 20, "clientY");
- }, "touchstart client coordinates are correct in vertical-rl");
+ function onEvent(target, eventName, validator) {
+ return new Promise((resolve) => {
+ const listener = (event) => {
+ validator(event);
+ resolve();
+ };
+ target.addEventListener(eventName, listener, { once: true });
});
+ }
- document.documentElement.addEventListener("click", function onClick(event) {
- test(function() {
- assert_equals(event.clientX, 10, "clientX");
- assert_equals(event.clientY, 20, "clientY");
- }, "click client coordinates are correct in vertical-rl");
- done();
- });
+ async function run() {
+ promise_test(async () => {
+ const touchstart_promise = onEvent(document.documentElement,
+ "touchstart", (event) => {
+ assert_equals(event.changedTouches[0].clientX, 10,
+ "touchstart clientX coordinates are correct in vertical-rl");
+ assert_equals(event.changedTouches[0].clientY, 20,
+ "touchstart clientX coordinates are correct in vertical-rl");
+ });
+
+ const click_promise = onEvent(document.documentElement,
+ "click", (event) => {
+ assert_equals(event.clientX, 10,
+ "click clientX coordinates are correct in vertical-rl");
+ assert_equals(event.clientY, 20,
+ "click clientY coordinates are correct in vertical-rl");
+ });
- let actions = new test_driver.Actions()
+ const actions = new test_driver.Actions()
.addPointer("touchPointer1", "touch")
.pointerMove(10, 20)
.pointerDown()
.pointerUp();
- await actions.send();
+
+ const actions_promise = actions.send();
+ await Promise.all([actions_promise, click_promise, touchstart_promise]);
+ done();
+ }, "touch & click events in vertical-rl mode have correct coordinates");
}
</script>
<style>
diff --git a/tests/wpt/tests/trusted-types/trusted-types-reporting.html b/tests/wpt/tests/trusted-types/trusted-types-reporting.html
index 42759093604..5a7a64b52bd 100644
--- a/tests/wpt/tests/trusted-types/trusted-types-reporting.html
+++ b/tests/wpt/tests/trusted-types/trusted-types-reporting.html
@@ -89,7 +89,8 @@
function flush() {
expect_throws(_ => {
var o = document.createElement('object');
- o.type = "application/x-shockwave-flash";
+ o.type = "video/mp4";
+ o.data = "dummy.webm";
document.body.appendChild(o);
});
}
diff --git a/tests/wpt/tests/url/resources/toascii.json b/tests/wpt/tests/url/resources/toascii.json
index bca28b4a1e4..d02c4c7e866 100644
--- a/tests/wpt/tests/url/resources/toascii.json
+++ b/tests/wpt/tests/url/resources/toascii.json
@@ -172,5 +172,31 @@
{
"input": "≯",
"output": "xn--hdh"
+ },
+ {
+ "comment": "NFC normalization (forbidden < and > characters are normalized to valid ones)",
+ "input": "=\u0338",
+ "output": "xn--1ch"
+ },
+ {
+ "input": "<\u0338",
+ "output": "xn--gdh"
+ },
+ {
+ "input": ">\u0338",
+ "output": "xn--hdh"
+ },
+ {
+ "comment": "Same with inserted IDNA ignored code point",
+ "input": "=\u00AD\u0338",
+ "output": "xn--1ch"
+ },
+ {
+ "input": "<\u00AD\u0338",
+ "output": "xn--gdh"
+ },
+ {
+ "input": ">\u00AD\u0338",
+ "output": "xn--hdh"
}
]
diff --git a/tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html b/tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html
index c1232730eab..0d5c7ca6ed5 100644
--- a/tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.html
+++ b/tests/wpt/tests/wasm/webapi/esm-integration/script-src-blocks-wasm.tentative.sub.html
@@ -1,6 +1,6 @@
<!DOCTYPE html>
<title>script-src blocks Wasm execution</title>
-<meta http-equiv="Content-Security-Policy" content="script-src 'unsafe-inline';">
+<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script>
@@ -18,4 +18,4 @@
assert_array_equals(log, ["script-src-elem"]);
}));
</script>
-<script type="module" src="./resources/execute-start.wasm"></script>
+<script type="module" src="https://{{hosts[alt][]}}/resources/execute-start.wasm"></script>
diff --git a/tests/wpt/tests/webcodecs/video-encoder-h264.https.any.js b/tests/wpt/tests/webcodecs/video-encoder-h264.https.any.js
index 82370a8338c..e63024a64b4 100644
--- a/tests/wpt/tests/webcodecs/video-encoder-h264.https.any.js
+++ b/tests/wpt/tests/webcodecs/video-encoder-h264.https.any.js
@@ -5,22 +5,37 @@
// META: variant=?baseline
// META: variant=?main
// META: variant=?high
+// META: variant=?high-6.2
promise_test(async t => {
const codecString = {
'?baseline': 'avc1.42001e',
'?main': 'avc1.4d001e',
'?high': 'avc1.64001e',
+ '?high-6.2': 'avc1.64003e',
}[location.search];
- let encoderConfig = {
- codec: codecString,
- width: 640,
- height: 480,
- displayWidth: 800,
- displayHeight: 600,
- avc: {format: 'avc'}, // AVC makes it easy to check the profile.
- };
+ var encoderConfig;
+ if (location.search != "?high-6.2") {
+ encoderConfig = {
+ codec: codecString,
+ width: 640,
+ height: 480,
+ displayWidth: 800,
+ displayHeight: 600,
+ avc: {format: 'avc'}, // AVC makes it easy to check the profile.
+ };
+ } else {
+ // high profile + level 6.2
+ encoderConfig = {
+ codec: codecString,
+ width: 7680,
+ height: 4320,
+ displayWidth: 7680,
+ displayHeight: 4320,
+ avc: {format: 'avc'}, // AVC makes it easy to check the profile.
+ };
+ }
let supported = false;
try {
@@ -44,8 +59,8 @@ promise_test(async t => {
let encoder = new VideoEncoder(codecInit);
encoder.configure(encoderConfig);
- let frame1 = createFrame(640, 480, 0);
- let frame2 = createFrame(640, 480, 33333);
+ let frame1 = createFrame(encoderConfig.width, encoderConfig.height, 0);
+ let frame2 = createFrame(encoderConfig.width, encoderConfig.height, 33333);
t.add_cleanup(() => {
frame1.close();
frame2.close();
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py
index fb690807f21..14fa2260561 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py
@@ -9,7 +9,7 @@ from .. import assert_navigation_info
pytestmark = pytest.mark.asyncio
-EMPTY_PAGE = "/webdriver/tests/bidi/support/empty.html"
+EMPTY_PAGE = "/webdriver/tests/bidi/browsing_context/support/empty.html"
FRAGMENT_NAVIGATED_EVENT = "browsingContext.fragmentNavigated"
@@ -88,7 +88,7 @@ async def test_navigation_id(
await subscribe_events([FRAGMENT_NAVIGATED_EVENT])
- on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
+ on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
target_url = url(EMPTY_PAGE + '#foo')
result = await bidi_session.browsing_context.navigate(
@@ -101,7 +101,7 @@ async def test_navigation_id(
'timestamp': any_int,
'url': target_url
},
- await wait_for_future_safe(on_frame_navigated),
+ await wait_for_future_safe(on_fragment_navigated),
)
@@ -111,7 +111,7 @@ async def test_url_with_base_tag(bidi_session, subscribe_events, inline, new_tab
await subscribe_events(events=[FRAGMENT_NAVIGATED_EVENT])
- on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
+ on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
target_url = url + '#foo'
await bidi_session.browsing_context.navigate(context=new_tab["context"], url=target_url, wait="complete")
@@ -121,7 +121,7 @@ async def test_url_with_base_tag(bidi_session, subscribe_events, inline, new_tab
'context': new_tab["context"],
'url': target_url
},
- await wait_for_future_safe(on_frame_navigated),
+ await wait_for_future_safe(on_fragment_navigated),
)
@@ -143,7 +143,7 @@ async def test_iframe(
await subscribe_events([FRAGMENT_NAVIGATED_EVENT])
- on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
+ on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
target_url = url(EMPTY_PAGE + '#bar')
await bidi_session.browsing_context.navigate(
@@ -155,7 +155,7 @@ async def test_iframe(
'timestamp': any_int,
'url': target_url
},
- await wait_for_future_safe(on_frame_navigated),
+ await wait_for_future_safe(on_fragment_navigated),
)
@@ -178,7 +178,7 @@ async def test_document_location(
await subscribe_events([FRAGMENT_NAVIGATED_EVENT])
- on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
+ on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
target_url = url(EMPTY_PAGE + hash_after)
@@ -200,7 +200,7 @@ async def test_document_location(
'timestamp': any_int,
'url': target_url
},
- await wait_for_future_safe(on_frame_navigated),
+ await wait_for_future_safe(on_fragment_navigated),
)
@@ -223,7 +223,7 @@ async def test_browsing_context_navigate(
await subscribe_events([FRAGMENT_NAVIGATED_EVENT])
- on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
+ on_fragment_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT)
target_url = url(EMPTY_PAGE + hash_after)
@@ -236,7 +236,7 @@ async def test_browsing_context_navigate(
'timestamp': any_int,
'url': target_url
},
- await wait_for_future_safe(on_frame_navigated),
+ await wait_for_future_safe(on_fragment_navigated),
)
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py
index 0af0a71c2b8..8ae06d28904 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py
@@ -6,7 +6,7 @@ from ... import any_int, recursive_compare
pytestmark = pytest.mark.asyncio
-EMPTY_PAGE = "/webdriver/tests/bidi/support/empty.html"
+EMPTY_PAGE = "/webdriver/tests/bidi/browsing_context/support/empty.html"
FRAGMENT_NAVIGATED_EVENT = "browsingContext.fragmentNavigated"
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py
index c562ddbd9a2..5bbc616960f 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/handle_user_prompt/handle_user_prompt.py
@@ -113,8 +113,7 @@ async def test_prompt(
@pytest.mark.capabilities({"unhandledPromptBehavior": {'default': 'ignore'}})
-@pytest.mark.parametrize("accept", [False])
-# @pytest.mark.parametrize("accept", [True, False])
+@pytest.mark.parametrize("accept", [True, False])
async def test_beforeunload(
bidi_session,
subscribe_events,
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/navigate.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/navigate.py
index 934fd3554f7..1f003f4aa69 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/navigate.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/navigate/navigate.py
@@ -1,6 +1,7 @@
import asyncio
import pytest
+from webdriver.bidi.modules.script import ContextTarget
from . import navigate_and_assert
from ... import any_string
@@ -86,3 +87,23 @@ async def test_relative_url(bidi_session, new_tab, url):
url_after = url_before.replace("empty.html", "other.html")
await navigate_and_assert(bidi_session, new_tab, url_after, "interactive")
+
+
+async def test_same_document_navigation_in_before_unload(bidi_session, new_tab, url):
+ url_before = url(
+ "/webdriver/tests/bidi/browsing_context/support/empty.html"
+ )
+
+ await navigate_and_assert(bidi_session, new_tab, url_before, "complete")
+
+ await bidi_session.script.evaluate(
+ expression="""window.addEventListener(
+ 'beforeunload',
+ () => history.replaceState(null, 'initial', window.location.href),
+ false
+ );""",
+ target=ContextTarget(new_tab["context"]),
+ await_promise=False)
+
+ url_after = url_before.replace("empty.html", "other.html")
+ await navigate_and_assert(bidi_session, new_tab, url_after, "complete")
diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/handler.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/handler.py
new file mode 100644
index 00000000000..2aa67056f80
--- /dev/null
+++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/user_prompt_opened/handler.py
@@ -0,0 +1,63 @@
+import pytest
+import pytest_asyncio
+
+from ... import recursive_compare
+
+pytestmark = pytest.mark.asyncio
+
+USER_PROMPT_OPENED_EVENT = "browsingContext.userPromptOpened"
+
+
+@pytest_asyncio.fixture
+async def check_handler(
+ bidi_session,
+ subscribe_events,
+ inline,
+ new_tab,
+ wait_for_event,
+ wait_for_future_safe,
+):
+ async def check_handler(expected_handler):
+ await subscribe_events(events=[USER_PROMPT_OPENED_EVENT])
+ on_entry = wait_for_event(USER_PROMPT_OPENED_EVENT)
+
+ await bidi_session.browsing_context.navigate(
+ context=new_tab["context"],
+ url=inline(f"<script>window.alert('foo')</script>"),
+ )
+
+ event = await wait_for_future_safe(on_entry)
+
+ expected = {
+ "context": new_tab["context"],
+ "type": "alert",
+ "handler": expected_handler,
+ }
+ recursive_compare(expected, event)
+
+ return check_handler
+
+
+@pytest.mark.capabilities({"unhandledPromptBehavior": "accept"})
+async def test_accept(check_handler):
+ await check_handler("accept")
+
+
+@pytest.mark.capabilities({"unhandledPromptBehavior": "accept and notify"})
+async def test_accept_and_notify(check_handler):
+ await check_handler("accept")
+
+
+@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss"})
+async def test_dismiss(check_handler):
+ await check_handler("dismiss")
+
+
+@pytest.mark.capabilities({"unhandledPromptBehavior": "dismiss and notify"})
+async def test_dismiss_and_notify(check_handler):
+ await check_handler("dismiss")
+
+
+@pytest.mark.capabilities({"unhandledPromptBehavior": "ignore"})
+async def test_ignore(check_handler):
+ await check_handler("ignore")
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/cookies.py b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/cookies.py
index 5f594c4b029..d403f279d51 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/cookies.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/cookies.py
@@ -31,7 +31,7 @@ async def test_modify_cookies(
# Navigate away from about:blank to make sure document.cookies can be used.
await bidi_session.browsing_context.navigate(
context=top_context["context"],
- url=url("/webdriver/tests/bidi/support/empty.html"),
+ url=url("/webdriver/tests/bidi/network/support/empty.html"),
wait="complete"
)
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/headers.py b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/headers.py
index d6af7094a64..ed4839ee806 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/headers.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/continue_request/headers.py
@@ -79,7 +79,7 @@ async def test_override_cookies(
# Navigate away from about:blank to make sure document.cookies can be used.
await bidi_session.browsing_context.navigate(
context=top_context["context"],
- url=url("/webdriver/tests/bidi/support/empty.html"),
+ url=url("/webdriver/tests/bidi/network/support/empty.html"),
wait="complete"
)
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/continue_with_auth/action.py b/tests/wpt/tests/webdriver/tests/bidi/network/continue_with_auth/action.py
index e4cf6da08f4..dccdd6a9308 100644
--- a/tests/wpt/tests/webdriver/tests/bidi/network/continue_with_auth/action.py
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/continue_with_auth/action.py
@@ -17,13 +17,24 @@ async def test_cancel(
setup_blocked_request, subscribe_events, wait_for_event, bidi_session, wait_for_future_safe
):
request = await setup_blocked_request("authRequired")
+
+ # Additionally subscribe to network.responseCompleted
await subscribe_events(events=[RESPONSE_COMPLETED_EVENT])
+ # Track all received network.responseCompleted events in the events array
+ events = []
+
+ async def on_event(method, data):
+ events.append(data)
+
+ remove_listener = bidi_session.add_event_listener(
+ RESPONSE_COMPLETED_EVENT, on_event
+ )
+
on_response_completed = wait_for_event(RESPONSE_COMPLETED_EVENT)
await bidi_session.network.continue_with_auth(request=request, action="cancel")
- await on_response_completed
-
response_event = await wait_for_future_safe(on_response_completed)
+
assert_response_event(
response_event,
expected_response={
@@ -32,6 +43,13 @@ async def test_cancel(
},
)
+ # check no other responseCompleted event was received
+ wait = AsyncPoll(bidi_session, timeout=0.5)
+ with pytest.raises(TimeoutException):
+ await wait.until(lambda _: len(events) > 1)
+
+ remove_listener()
+
async def test_default(
setup_blocked_request, subscribe_events, bidi_session
@@ -63,7 +81,7 @@ async def test_default(
async def test_provideCredentials(
- setup_blocked_request, subscribe_events, bidi_session
+ setup_blocked_request, subscribe_events, wait_for_event, bidi_session, wait_for_future_safe
):
# Setup unique username / password because browsers cache credentials.
username = "test_provideCredentials"
@@ -84,17 +102,25 @@ async def test_provideCredentials(
)
credentials = AuthCredentials(username=username, password=password)
+
+ on_response_completed = wait_for_event(RESPONSE_COMPLETED_EVENT)
await bidi_session.network.continue_with_auth(
request=request, action="provideCredentials", credentials=credentials
)
+ response_event = await wait_for_future_safe(on_response_completed)
- # TODO: At the moment, the specification does not expect to receive a
- # responseCompleted event for each authentication attempt, so only assert
- # the last event. See https://github.com/w3c/webdriver-bidi/issues/627
+ assert_response_event(
+ response_event,
+ expected_response={
+ "status": 200,
+ "statusText": "OK",
+ },
+ )
- # Wait until a a responseCompleted event with status 200 OK is received.
- wait = AsyncPoll(bidi_session, message="Didn't receive response completed events")
- await wait.until(lambda _: len(events) > 0 and events[-1]["response"]["status"] == 200)
+ # check no other responseCompleted event was received
+ wait = AsyncPoll(bidi_session, timeout=0.5)
+ with pytest.raises(TimeoutException):
+ await wait.until(lambda _: len(events) > 1)
remove_listener()
@@ -132,16 +158,24 @@ async def test_provideCredentials_wrong_credentials(
# Continue with the correct credentials
correct_credentials = AuthCredentials(username=username, password=password)
+
+ on_response_completed = wait_for_event(RESPONSE_COMPLETED_EVENT)
await bidi_session.network.continue_with_auth(
request=request, action="provideCredentials", credentials=correct_credentials
)
+ response_event = await wait_for_future_safe(on_response_completed)
- # TODO: At the moment, the specification does not expect to receive a
- # responseCompleted event for each authentication attempt, so only assert
- # the last event. See https://github.com/w3c/webdriver-bidi/issues/627
+ assert_response_event(
+ response_event,
+ expected_response={
+ "status": 200,
+ "statusText": "OK",
+ },
+ )
- # Wait until a a responseCompleted event with status 200 OK is received.
- wait = AsyncPoll(bidi_session, message="Didn't receive response completed events")
- await wait.until(lambda _: len(events) > 0 and events[-1]["response"]["status"] == 200)
+ # check no other responseCompleted event was received
+ wait = AsyncPoll(bidi_session, timeout=0.5)
+ with pytest.raises(TimeoutException):
+ await wait.until(lambda _: len(events) > 1)
remove_listener()
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/__init__.py
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/__init__.py
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/conftest.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/conftest.py
new file mode 100644
index 00000000000..969641b8fd2
--- /dev/null
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/conftest.py
@@ -0,0 +1,17 @@
+import pytest_asyncio
+
+from .. import RESPONSE_COMPLETED_EVENT
+
+
+@pytest_asyncio.fixture
+async def is_request_from_cache(
+ wait_for_event, fetch, wait_for_future_safe, top_context
+):
+ async def is_request_from_cache(url, context=top_context):
+ on_response_completed = wait_for_event(RESPONSE_COMPLETED_EVENT)
+ await fetch(url, context=context)
+ event = await wait_for_future_safe(on_response_completed)
+
+ return event["response"]["fromCache"]
+
+ return is_request_from_cache
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/contexts_tentative.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/contexts_tentative.py
new file mode 100644
index 00000000000..946d6d9a7eb
--- /dev/null
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/contexts_tentative.py
@@ -0,0 +1,99 @@
+import pytest
+import random
+
+from .. import RESPONSE_COMPLETED_EVENT
+
+pytestmark = pytest.mark.asyncio
+
+
+async def test_one_context(
+ bidi_session,
+ setup_network_test,
+ top_context,
+ new_tab,
+ url,
+ inline,
+ is_request_from_cache,
+):
+ await bidi_session.browsing_context.navigate(
+ context=new_tab["context"],
+ url=inline("foo"),
+ wait="complete",
+ )
+
+ await setup_network_test(
+ events=[RESPONSE_COMPLETED_EVENT],
+ contexts=[top_context["context"], new_tab["context"]],
+ )
+
+ cached_url = url(
+ f"/webdriver/tests/support/http_handlers/cached.py?status=200&nocache={random.random()}"
+ )
+
+ # The first request/response is used to fill the browser cache,
+ # so we expect fromCache to be False here.
+ assert await is_request_from_cache(url=cached_url, context=top_context) is False
+
+ # In the second tab it will request from cache.
+ assert await is_request_from_cache(url=cached_url, context=new_tab) is True
+
+ # Disable cache only in one context.
+ await bidi_session.network.set_cache_bypass(
+ bypass=True, contexts=[new_tab["context"]]
+ )
+
+ assert await is_request_from_cache(url=cached_url, context=top_context) is True
+ assert await is_request_from_cache(url=cached_url, context=new_tab) is False
+
+ # Reset to default behavior.
+ await bidi_session.network.set_cache_bypass(
+ bypass=False, contexts=[new_tab["context"]]
+ )
+
+
+@pytest.mark.parametrize("type_hint", ["tab", "window"])
+async def test_new_context(
+ bidi_session,
+ setup_network_test,
+ top_context,
+ url,
+ inline,
+ is_request_from_cache,
+ type_hint,
+):
+ await setup_network_test(events=[RESPONSE_COMPLETED_EVENT])
+
+ cached_url = url(
+ f"/webdriver/tests/support/http_handlers/cached.py?status=200&nocache={random.random()}"
+ )
+
+ # The first request/response is used to fill the browser cache,
+ # so we expect fromCache to be False here.
+ assert await is_request_from_cache(url=cached_url) is False
+
+ # In the second tab it will request from cache.
+ assert await is_request_from_cache(url=cached_url) is True
+
+ # Disable cache only in one context.
+ await bidi_session.network.set_cache_bypass(
+ bypass=True, contexts=[top_context["context"]]
+ )
+
+ assert await is_request_from_cache(url=cached_url, context=top_context) is False
+
+ # Create a new tab.
+ new_context = await bidi_session.browsing_context.create(type_hint=type_hint)
+
+ await bidi_session.browsing_context.navigate(
+ context=new_context["context"],
+ url=inline("<div>foo</div>"),
+ wait="complete",
+ )
+
+ # Make sure that the new context still has cache enabled.
+ assert await is_request_from_cache(cached_url, context=new_context) is True
+
+ # Reset to default behavior.
+ await bidi_session.network.set_cache_bypass(
+ bypass=False, contexts=[top_context["context"]]
+ )
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/invalid_tentative.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/invalid_tentative.py
new file mode 100644
index 00000000000..678d5d313f8
--- /dev/null
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/invalid_tentative.py
@@ -0,0 +1,32 @@
+import pytest
+import webdriver.bidi.error as error
+
+pytestmark = pytest.mark.asyncio
+
+
+@pytest.mark.parametrize("value", [None, "foo", 42, {}, []])
+async def test_params_bypass_invalid_type(bidi_session, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.network.set_cache_bypass(bypass=value)
+
+
+@pytest.mark.parametrize("value", ["foo", 42, False, {}])
+async def test_params_contexts_invalid_type(bidi_session, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.network.set_cache_bypass(bypass=True, contexts=value)
+
+
+async def test_params_contexts_invalid_value_empty_array(bidi_session):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.network.set_cache_bypass(bypass=True, contexts=[])
+
+
+@pytest.mark.parametrize("value", [None, 42, False, {}, []])
+async def test_params_contexts_invalid_array_element_type(bidi_session, value):
+ with pytest.raises(error.InvalidArgumentException):
+ await bidi_session.network.set_cache_bypass(bypass=True, contexts=[value])
+
+
+async def test_params_contexts_invalid_array_element_value(bidi_session):
+ with pytest.raises(error.NoSuchFrameException):
+ await bidi_session.network.set_cache_bypass(bypass=True, contexts=["foo"])
diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/set_cache_bypass_tentative.py b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/set_cache_bypass_tentative.py
new file mode 100644
index 00000000000..42166ef253b
--- /dev/null
+++ b/tests/wpt/tests/webdriver/tests/bidi/network/set_cache_bypass/set_cache_bypass_tentative.py
@@ -0,0 +1,68 @@
+import pytest
+import random
+
+from .. import RESPONSE_COMPLETED_EVENT
+
+pytestmark = pytest.mark.asyncio
+
+
+async def test_set_cache_bypass(
+ bidi_session, setup_network_test, url, is_request_from_cache
+):
+ await setup_network_test(events=[RESPONSE_COMPLETED_EVENT])
+
+ cached_url = url(
+ f"/webdriver/tests/support/http_handlers/cached.py?status=200&nocache={random.random()}"
+ )
+
+ # The first request/response is used to fill the browser cache,
+ # so we expect fromCache to be False here.
+ assert await is_request_from_cache(cached_url) is False
+
+ # The second request for the same URL has to be read from the local cache.
+ assert await is_request_from_cache(cached_url) is True
+
+ await bidi_session.network.set_cache_bypass(bypass=True)
+
+ assert await is_request_from_cache(cached_url) is False
+
+ await bidi_session.network.set_cache_bypass(bypass=False)
+
+ assert await is_request_from_cache(cached_url) is True
+
+
+@pytest.mark.parametrize("type_hint", ["tab", "window"])
+async def test_new_context(
+ bidi_session, setup_network_test, url, inline, is_request_from_cache, type_hint
+):
+ await setup_network_test(events=[RESPONSE_COMPLETED_EVENT])
+
+ cached_url = url(
+ f"/webdriver/tests/support/http_handlers/cached.py?status=200&nocache={random.random()}"
+ )
+
+ # The first request/response is used to fill the browser cache,
+ # so we expect fromCache to be False here.
+ assert await is_request_from_cache(cached_url) is False
+
+ # The second request for the same URL has to be read from the local cache.
+ assert await is_request_from_cache(cached_url) is True
+
+ await bidi_session.network.set_cache_bypass(bypass=True)
+
+ assert await is_request_from_cache(cached_url) is False
+
+ # Create a new tab.
+ new_context = await bidi_session.browsing_context.create(type_hint=type_hint)
+
+ await bidi_session.browsing_context.navigate(
+ context=new_context["context"],
+ url=inline("<div>foo</div>"),
+ wait="complete",
+ )
+
+ # Make sure that the new context still has cache disabled.
+ assert await is_request_from_cache(cached_url, context=new_context) is False
+
+ # Reset to default behavior.
+ await bidi_session.network.set_cache_bypass(bypass=False)
diff --git a/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py b/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py
index 3e97cfe3ce4..7c88abcd2e0 100644
--- a/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py
+++ b/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py
@@ -558,7 +558,7 @@ def fetch(bidi_session, top_context, configuration):
body_arg = ""
if post_data is not None:
- body_arg = f"body: {post_data},"
+ body_arg = f"body: {json.dumps(post_data)},"
timeout_in_seconds = timeout_in_seconds * configuration["timeout_multiplier"]
# Wait for fetch() to resolve a response and for response.text() to
diff --git a/tests/wpt/tests/webnn/resources/test_data/gelu.json b/tests/wpt/tests/webnn/resources/test_data/gelu.json
index 41422797591..3adf4b6a2b6 100644
--- a/tests/wpt/tests/webnn/resources/test_data/gelu.json
+++ b/tests/wpt/tests/webnn/resources/test_data/gelu.json
@@ -107,6 +107,73 @@
}
},
{
+ "name": "gelu float32 1D constant tensor",
+ "inputs": {
+ "input": {
+ "shape": [24],
+ "data": [
+ 0.878292441368103,
+ -0.09706497937440872,
+ 0.1367187649011612,
+ 0.46406492590904236,
+ -0.26635801792144775,
+ -0.8252315521240234,
+ 0.8530909419059753,
+ 0.3846154808998108,
+ 0.6772316694259644,
+ -0.4811072051525116,
+ 0.2983909249305725,
+ 0.6777864098548889,
+ -0.526228129863739,
+ 0.3497541546821594,
+ -0.12918996810913086,
+ 0.5853934288024902,
+ -0.8950720429420471,
+ 0.028302494436502457,
+ -0.09901237487792969,
+ -0.8838679790496826,
+ -0.596120297908783,
+ 0.31863871216773987,
+ 0.4794037640094757,
+ -0.06489315629005432
+ ],
+ "type": "float32",
+ "constant": true
+ }
+ },
+ "expected": {
+ "name": "output",
+ "shape": [24],
+ "data": [
+ 0.7115113139152527,
+ -0.0447796992957592,
+ 0.07579325884580612,
+ 0.3149605691432953,
+ -0.10520657151937485,
+ -0.16885890066623688,
+ 0.6851989030838013,
+ 0.24989959597587585,
+ 0.508513331413269,
+ -0.1516546905040741,
+ 0.18419598042964935,
+ 0.509049117565155,
+ -0.15753419697284698,
+ 0.22270187735557556,
+ -0.05795508995652199,
+ 0.42198580503463745,
+ -0.1659233123064041,
+ 0.014470770955085754,
+ -0.04560155048966408,
+ -0.1665063202381134,
+ -0.1642593890428543,
+ 0.19914908707141876,
+ 0.3279957175254822,
+ -0.030767757445573807
+ ],
+ "type": "float32"
+ }
+ },
+ {
"name": "gelu float16 1D tensor",
"inputs": {
"input": {
diff --git a/tests/wpt/tests/webnn/resources/utils_validation.js b/tests/wpt/tests/webnn/resources/utils_validation.js
index 2ac308242a1..119450be4c1 100644
--- a/tests/wpt/tests/webnn/resources/utils_validation.js
+++ b/tests/wpt/tests/webnn/resources/utils_validation.js
@@ -213,6 +213,13 @@ function validateTwoInputsBroadcastable(operationName) {
}
promise_test(async t => {
for (let dataType of allWebNNOperandDataTypes) {
+ if (!context.opSupportLimits().input.dataTypes.includes(dataType)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ `inputA${++inputAIndex}`, {dataType, dimensions1D}));
+ continue;
+ }
for (let dimensions of allWebNNDimensionsArray) {
if (dimensions.length > 0) {
const inputA = builder.input(`inputA${++inputAIndex}`, {dataType, dimensions});
@@ -245,9 +252,24 @@ function validateTwoInputsOfSameDataType(operationName) {
for (let subOperationName of operationNameArray) {
promise_test(async t => {
for (let dataType of allWebNNOperandDataTypes) {
+ if (!context.opSupportLimits().input.dataTypes.includes(dataType)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ `inputA${++inputAIndex}`, {dataType, dimensions1D}));
+ continue;
+ }
for (let dimensions of allWebNNDimensionsArray) {
const inputA = builder.input(`inputA${++inputAIndex}`, {dataType, dimensions});
for (let dataTypeB of allWebNNOperandDataTypes) {
+ if (!context.opSupportLimits().input.dataTypes.includes(
+ dataTypeB)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ `inputB${++inputBIndex}`, {dataTypeB, dimensions1D}));
+ continue;
+ }
if (dataType !== dataTypeB) {
const inputB = builder.input(`inputB${++inputBIndex}`, {dataType: dataTypeB, dimensions});
assert_throws_js(
@@ -283,6 +305,13 @@ function validateOptionsAxes(operationName) {
// TypeError is expected if any of options.axes elements is not an unsigned long interger
promise_test(async t => {
for (let dataType of allWebNNOperandDataTypes) {
+ if (!context.opSupportLimits().input.dataTypes.includes(dataType)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ `inputA${++inputAIndex}`, {dataType, dimensions1D}));
+ continue;
+ }
for (let dimensions of allWebNNDimensionsArray) {
const rank = getRank(dimensions);
if (rank >= 1) {
@@ -310,6 +339,13 @@ function validateOptionsAxes(operationName) {
// to the size of input
promise_test(async t => {
for (let dataType of allWebNNOperandDataTypes) {
+ if (!context.opSupportLimits().input.dataTypes.includes(dataType)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ `inputA${++inputAIndex}`, {dataType, dimensions1D}));
+ continue;
+ }
for (let dimensions of allWebNNDimensionsArray) {
const rank = getRank(dimensions);
if (rank >= 1) {
@@ -329,6 +365,13 @@ function validateOptionsAxes(operationName) {
// TypeError is expected if two or more values are same in the axes sequence
promise_test(async t => {
for (let dataType of allWebNNOperandDataTypes) {
+ if (!context.opSupportLimits().input.dataTypes.includes(dataType)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ `inputA${++inputAIndex}`, {dataType, dimensions1D}));
+ continue;
+ }
for (let dimensions of allWebNNDimensionsArray) {
const rank = getRank(dimensions);
if (rank >= 2) {
@@ -357,35 +400,41 @@ function validateOptionsAxes(operationName) {
*/
function validateUnaryOperation(
operationName, supportedDataTypes, alsoBuildActivation = false) {
- // TODO: crbug.com/345271830 - use context.opSupportLimits to get supported
- // data types for current context.
- for (let dataType of supportedDataTypes) {
- for (let dimensions of allWebNNDimensionsArray) {
- promise_test(
- async t => {
- const input = builder.input(`input`, {dataType, dimensions});
- const output = builder[operationName](input);
- assert_equals(output.dataType(), dataType);
- assert_array_equals(output.shape(), dimensions);
- },
- `[${operationName}] Test building an operator, dataType = ${
- dataType}, dimensions = [${dimensions}]`);
+ promise_test(async t => {
+ for (let dataType of supportedDataTypes) {
+ if (!context.opSupportLimits().input.dataTypes.includes(dataType)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ `inputA${++inputAIndex}`, {dataType, dimensions1D}));
+ continue;
+ }
+ for (let dimensions of allWebNNDimensionsArray) {
+ const input = builder.input(`input`, {dataType, dimensions});
+ const output = builder[operationName](input);
+ assert_equals(output.dataType(), dataType);
+ assert_array_equals(output.shape(), dimensions);
+ }
}
- }
+ }, `[${operationName}] Test building an unary operator with supported type.`);
const unsupportedDataTypes =
new Set(allWebNNOperandDataTypes).difference(new Set(supportedDataTypes));
- for (let dataType of unsupportedDataTypes) {
- for (let dimensions of allWebNNDimensionsArray) {
- promise_test(
- async t => {
- const input = builder.input(`input`, {dataType, dimensions});
- assert_throws_js(TypeError, () => builder[operationName](input));
- },
- `[${operationName}] Throw if the dataType is not supported, dataType = ${
- dataType}, dimensions = [${dimensions}]`);
+ promise_test(async t => {
+ for (let dataType of unsupportedDataTypes) {
+ if (!context.opSupportLimits().input.dataTypes.includes(dataType)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ `inputA${++inputAIndex}`, {dataType, dimensions1D}));
+ continue;
+ }
+ for (let dimensions of allWebNNDimensionsArray) {
+ const input = builder.input(`input`, {dataType, dimensions});
+ assert_throws_js(TypeError, () => builder[operationName](input));
+ }
}
- }
+ }, `[${operationName}] Throw if the dataType is not supported for an unary operator.`);
if (alsoBuildActivation) {
promise_test(async t => {
diff --git a/tests/wpt/tests/webnn/validation_tests/clamp.https.any.js b/tests/wpt/tests/webnn/validation_tests/clamp.https.any.js
index ce1394802ed..96600c22f8b 100644
--- a/tests/wpt/tests/webnn/validation_tests/clamp.https.any.js
+++ b/tests/wpt/tests/webnn/validation_tests/clamp.https.any.js
@@ -10,6 +10,13 @@ validateUnaryOperation('clamp', allWebNNOperandDataTypes);
promise_test(async t => {
const options = {minValue: 1.0, maxValue: 3.0};
+ if (!context.opSupportLimits().input.dataTypes.includes('uint32')) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ 'input', {dataType: 'uint32', dimensions: [1, 2, 3]}));
+ return;
+ }
const input =
builder.input('input', {dataType: 'uint32', dimensions: [1, 2, 3]});
const output = builder.clamp(input, options);
@@ -19,6 +26,13 @@ promise_test(async t => {
promise_test(async t => {
const options = {minValue: 0, maxValue: 0};
+ if (!context.opSupportLimits().input.dataTypes.includes('int32')) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ 'input', {dataType: 'int32', dimensions: [1, 2, 3, 4]}));
+ return;
+ }
const input =
builder.input('input', {dataType: 'int32', dimensions: [1, 2, 3, 4]});
const output = builder.clamp(input, options);
@@ -28,6 +42,13 @@ promise_test(async t => {
promise_test(async t => {
const options = {minValue: 3.0, maxValue: 1.0};
+ if (!context.opSupportLimits().input.dataTypes.includes('uint8')) {
+ assert_throws_js(
+ TypeError,
+ () =>
+ builder.input('input', {dataType: 'uint8', dimensions: [1, 2, 3]}));
+ return;
+ }
const input =
builder.input('input', {dataType: 'uint8', dimensions: [1, 2, 3]});
assert_throws_js(TypeError, () => builder.clamp(input, options));
diff --git a/tests/wpt/tests/webnn/validation_tests/elementwise-binary.https.any.js b/tests/wpt/tests/webnn/validation_tests/elementwise-binary.https.any.js
index 7b3fec938bb..8e86731a0fd 100644
--- a/tests/wpt/tests/webnn/validation_tests/elementwise-binary.https.any.js
+++ b/tests/wpt/tests/webnn/validation_tests/elementwise-binary.https.any.js
@@ -53,6 +53,24 @@ const tests = [
function runElementWiseBinaryTests(operatorName, tests) {
tests.forEach(test => {
promise_test(async t => {
+ if (!context.opSupportLimits().input.dataTypes.includes(
+ test.a.dataType)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ 'a',
+ {dataType: test.a.dataType, dimensions: test.a.dimensions}));
+ return;
+ }
+ if (!context.opSupportLimits().input.dataTypes.includes(
+ test.b.dataType)) {
+ assert_throws_js(
+ TypeError,
+ () => builder.input(
+ 'b',
+ {dataType: test.b.dataType, dimensions: test.b.dimensions}));
+ return;
+ }
const a = builder.input(
'a', {dataType: test.a.dataType, dimensions: test.a.dimensions});
const b = builder.input(
diff --git a/tests/wpt/tests/webrtc/RTCDataChannel-close.html b/tests/wpt/tests/webrtc/RTCDataChannel-close.html
index 64534fc5070..e215d95ed9a 100644
--- a/tests/wpt/tests/webrtc/RTCDataChannel-close.html
+++ b/tests/wpt/tests/webrtc/RTCDataChannel-close.html
@@ -45,6 +45,40 @@ for (const options of [{}, {negotiated: true, id: 0}]) {
assert_true(closingSeen, 'Closing event was seen');
}, `Close ${mode} causes closing and close event to be called`);
+ promise_test(async t => {
+ const pc1 = new RTCPeerConnection();
+ t.add_cleanup(() => pc1.close());
+ const pc2 = new RTCPeerConnection();
+ t.add_cleanup(() => pc2.close());
+ const mainChannel1 = pc1.createDataChannel('not-counted', options);
+ exchangeIceCandidates(pc1, pc2);
+ await exchangeOfferAnswer(pc1, pc2);
+ if (!options.negotiated) {
+ await new Promise(r => pc2.ondatachannel = r);
+ }
+
+ for (let i = 1; i <= 10; i++) {
+ if ('id' in options) {
+ options.id = i;
+ }
+ const sender = pc1.createDataChannel(`dc ${i}`, options);
+ const senderOpen = new Promise(r => sender.onopen = r);
+ let receiver;
+ if (options.negotiated) {
+ receiver = pc2.createDataChannel(`dc ${i}`, options);
+ } else {
+ receiver = (await new Promise(r => pc2.ondatachannel = r)).channel;
+ }
+ receiver.onmessage = ({data}) => receiver.send(data);
+ await senderOpen;
+ sender.send(`ping ${i}`);
+ const {data} = await new Promise(r => sender.onmessage = r);
+ assert_equals(data, `ping ${i}`);
+ sender.close();
+ await new Promise(r => receiver.onclose = r);
+ }
+ }, `Repeated open/send/echo/close ${mode} works`);
+
promise_test(async t => {
const pc1 = new RTCPeerConnection();
t.add_cleanup(() => pc1.close());