From eb3c48f9d3c6e3dd043a0750e0ec29cc5b20170f Mon Sep 17 00:00:00 2001 From: Servo WPT Sync <32481905+servo-wpt-sync@users.noreply.github.com> Date: Tue, 18 Mar 2025 06:51:39 +0100 Subject: [PATCH] Update web-platform-tests to revision b'18fda923cafeb4e3e0546ffcfb2302c3b1b11f98' (#36019) Signed-off-by: WPT Sync Bot --- .../FileAPI/url/url-with-fetch.any.js.ini | 3 + tests/wpt/meta/MANIFEST.json | 9591 +++++++++++++++-- .../corner-shape/corner-shape-any.html.ini | 29 + .../corner-shape-fill-any.html.ini | 26 - .../meta/css/css-color-hdr/computed.html.ini | 57 + .../css/css-color-hdr/inheritance.html.ini | 3 + .../css/css-color-hdr/interpolation.html.ini | 192 + .../meta/css/css-color-hdr/parsing.html.ini | 33 + .../css/css-fonts/font-synthesis-08.html.ini | 2 + ...-analogous-missing-components-003.html.ini | 2 + .../gradient-none-interpolation.html.ini | 2 + ...ient-container-relative-units-001.html.ini | 2 + ...ient-container-relative-units-002.html.ini | 2 + ...ient-container-relative-units-003.html.ini | 2 + ...ient-container-relative-units-004.html.ini | 2 + ...ve.html.ini => at-function-cssom.html.ini} | 8 +- ...shed-function-named-arg.tentative.html.ini | 27 + ...dashed-function-standard-property.html.ini | 12 + ...content-min-inline-size.tentative.html.ini | 2 - ...sizes-for-intrinsic-contributions.html.ini | 18 + ...ight-replaced-in-percent-cell-003.html.ini | 2 + ...ight-replaced-in-percent-cell-004.html.ini | 2 + ...table-cell-overflow-auto-scrolled.html.ini | 2 - .../preserve3d-and-flattening-001.html.ini | 2 - .../css/css-values/attr-all-types.html.ini | 42 +- ...lc-sibling-function-in-shadow-dom.html.ini | 3 - .../calc-sibling-function-parsing.html.ini | 0 .../calc-sibling-function.html.ini | 0 .../sibling-function-container-query.html.ini | 12 + ...ng-function-descriptors.tentative.html.ini | 12 + .../sibling-function-invalidation.html.ini | 12 + .../tree-scoped-sibling-function.html.ini | 6 + tests/wpt/meta/dom/idlharness.window.js.ini | 36 + .../nodes/moveBefore/Node-moveBefore.html.ini | 87 + .../continue-css-animation-left.html.ini | 0 .../continue-css-animation-transform.html.ini | 0 ...ntinue-css-transition-left-pseudo.html.ini | 0 .../continue-css-transition-left.html.ini | 0 ...e-css-transition-transform-pseudo.html.ini | 0 ...continue-css-transition-transform.html.ini | 0 .../css-animation-commit-styles.html.ini | 0 .../css-transition-cross-document.html.ini | 0 .../css-transition-cross-shadow.html.ini | 3 - ...ansition-to-disconnected-document.html.ini | 0 .../css-transition-trigger.html.ini | 0 .../custom-element-move-reactions.html.ini | 0 .../fire-focusin-focusout.html.ini | 18 +- .../{tentative => }/focus-within.html.ini | 0 .../iframe-document-preserve.window.js.ini | 0 .../listed-form-element-reset.html.ini | 0 .../live-range-updates.html.ini | 9 - .../{tentative => }/modal-dialog.html.ini | 0 .../moveBefore-shadow-inside.html.ini | 0 .../moveBefore-shadow-root.html.ini | 0 .../{tentative => }/mutation-events.html.ini | 0 .../mutation-observer.html.ini | 0 .../moveBefore/{tentative => }/nonce.html.ini | 0 .../object-crash-regression.html.ini | 0 .../{tentative => }/popover-preserve.html.ini | 0 .../preserve-render-blocking-script.html.ini | 0 .../preserve-render-blocking-style.html.ini | 0 .../relevant-mutations.html.ini | 0 .../select-option-optgroup.html.ini | 0 .../slotchange-events.html.ini | 0 .../{tentative => }/style-applies.html.ini | 0 .../tentative/Node-moveBefore.html.ini | 168 - .../{tentative => }/throws-exception.html.ini | 0 .../dom/xslt/document-function.window.js.ini | 2 + .../createImageBitmap-transfer.html.ini | 2 +- .../text/canvas.2d.offscreen.lang.html.ini | 2 - .../canvas.2d.offscreen.lang.inherit.html.ini | 2 - ...vas.2d.offscreen.transferred.lang.html.ini | 2 - ...transferred.lang.inherit.document.html.ini | 2 - ...ffscreen.transferred.lang.inherit.html.ini | 2 - .../hidden-until-found-idl.html.ini | 3 + .../supported-elements.html.ini | 3 +- .../iframe_sandbox_popups_escaping-1.html.ini | 3 +- ...rame_sandbox_popups_nonescaping-3.html.ini | 2 +- .../naturalWidth-naturalHeight.html.ini | 18 + .../source-relevant-mutations.html.ini | 3 + ...ect-appearance-disabled.tentative.html.ini | 2 + .../clip-path-animation.html.ini | 3 + .../opt-in/audio-tag.https.html.ini | 1 - .../accept-signature.parser-inserted.html.ini | 12 + .../tentative/accept-signature.window.js.ini | 12 + .../tentative/authority.https.window.js.ini | 2 + tests/wpt/meta/url/a-element-xhtml.xhtml.ini | 15 + tests/wpt/meta/url/a-element.html.ini | 15 + tests/wpt/meta/url/url-constructor.any.js.ini | 30 + .../meta/url/url-setters-a-area.window.js.ini | 48 + tests/wpt/meta/url/url-setters.any.js.ini | 48 + .../url/urlsearchparams-delete.any.js.ini | 14 + .../xhr/progressevent-constructor.html.ini | 9 + tests/wpt/tests/.github/workflows/docker.yml | 4 +- .../.github/workflows/safari-wptrunner.yml | 2 +- ...ering-large-mixed-with-small-values.any.js | 43 + ...nt-ordering-large-then-small-values.any.js | 28 + ...request-event-ordering-large-values.any.js | 19 + ...request-event-ordering-small-values.any.js | 20 + .../request-event-ordering-common.js} | 79 - .../accname/name/comp_name_from_content.html | 103 + .../comp_name_from_content.tentative.html | 52 - ...ility-detached-crash.tentative.https.html} | 7 +- .../capabilities.tentative.https.any.js | 11 - .../detector.https.tentative.any.js | 18 +- ...ranslator_translate.tentative.https.any.js | 14 +- tests/wpt/tests/common/redirect.py | 10 + ...e_pressure_detached_iframe.https.window.js | 2 +- ...pressure_duplicate_updates.https.window.js | 28 +- .../compute-pressure/resources/common.js | 6 + ...eport_only_require_trusted_types_eval.html | 103 + ...ly_require_trusted_types_eval.html.headers | 6 + ..._eval_with_require_trusted_types_eval.html | 88 + ...th_require_trusted_types_eval.html.headers | 5 + ...al_without_require_trusted_types_eval.html | 101 + ...ut_require_trusted_types_eval.html.headers | 5 + .../anchor-fallback-to-self-crash.html | 11 + ...order-inset-modified-containing-block.html | 66 + ...background-gradient-interpolation-003.html | 2 +- .../border-image-space-001.html | 2 +- .../css3-border-image-repeat-repeat.html | 2 +- .../corner-shape/corner-shape-any-ref.html | 23 + .../corner-shape/corner-shape-any.html | 32 + .../corner-shape-fill-any-ref.html | 48 - .../corner-shape/corner-shape-fill-any.html | 31 - .../corner-shape/resources/corner-math.js | 51 - .../corner-shape/resources/corner-shape.js | 166 + .../corner-shape/resources/corner-utils.js | 126 + .../resources/resolve-corner-style.js | 65 +- .../layer-namespace-sandwich-crash.html | 8 + .../wpt/tests/css/css-color-hdr/computed.html | 64 +- .../tests/css/css-color-hdr/inheritance.html | 2 +- .../css/css-color-hdr/interpolation.html | 40 +- .../wpt/tests/css/css-color-hdr/parsing.html | 42 +- .../css/css-color/currentcolor-005-ref.html | 31 + .../tests/css/css-color/currentcolor-005.html | 43 + .../css-color/system-color-consistency.html | 100 +- ...y-content_space-between-003.tentative.html | 33 + .../css-fonts/font-face-sign-function.html | 2 +- .../font-face-stretch-auto-static-ref.html | 2 +- .../font-face-stretch-auto-static.html | 2 +- .../font-face-style-auto-static-ref.html | 2 +- .../font-face-style-auto-static.html | 2 +- .../font-face-weight-auto-static-ref.html | 2 +- .../font-face-weight-auto-static.html | 2 +- .../font-feature-resolution-001-ref.html | 2 +- .../font-feature-resolution-001.html | 6 +- .../font-feature-resolution-002-ref.html | 2 +- .../font-feature-resolution-002.html | 6 +- .../css/css-fonts/font-synthesis-01-ref.html | 2 +- .../css/css-fonts/font-synthesis-01.html | 2 +- .../css/css-fonts/font-synthesis-02-ref.html | 2 +- .../css/css-fonts/font-synthesis-02.html | 2 +- .../css/css-fonts/font-synthesis-03-ref.html | 2 +- .../css/css-fonts/font-synthesis-03.html | 2 +- .../css/css-fonts/font-synthesis-04-ref.html | 2 +- .../css/css-fonts/font-synthesis-04.html | 2 +- .../css/css-fonts/font-synthesis-05-ref.html | 2 +- .../css/css-fonts/font-synthesis-05.html | 2 +- .../css/css-fonts/font-synthesis-07-ref.html | 2 +- .../css/css-fonts/font-synthesis-07.html | 2 +- .../css/css-fonts/font-synthesis-08-ref.html | 2 +- .../css/css-fonts/font-synthesis-08.html | 2 +- .../font-synthesis-position-001-ref.html | 2 +- .../font-synthesis-position-001.html | 2 +- ...synthesis-small-caps-first-letter-ref.html | 2 +- ...ont-synthesis-small-caps-first-letter.html | 2 +- ...t-synthesis-small-caps-first-line-ref.html | 2 +- .../font-synthesis-small-caps-first-line.html | 2 +- .../font-synthesis-small-caps-ref.html | 2 +- .../css-fonts/font-synthesis-small-caps.html | 2 +- ...font-synthesis-style-first-letter-ref.html | 2 +- .../font-synthesis-style-first-letter.html | 2 +- .../font-synthesis-style-first-line-ref.html | 2 +- .../font-synthesis-style-first-line.html | 2 +- .../css-fonts/font-synthesis-style-ref.html | 2 +- .../css/css-fonts/font-synthesis-style.html | 2 +- ...ont-synthesis-weight-first-letter-ref.html | 2 +- .../font-synthesis-weight-first-letter.html | 2 +- .../font-synthesis-weight-first-line-ref.html | 2 +- .../font-synthesis-weight-first-line.html | 2 +- .../css-fonts/font-synthesis-weight-ref.html | 2 +- .../css/css-fonts/font-synthesis-weight.html | 2 +- .../font-variant-position-04-notref.html | 2 +- .../css-fonts/font-variant-position-04.html | 2 +- .../font-variant-position-05-notref.html | 2 +- .../css-fonts/font-variant-position-05.html | 2 +- ...ects-rendering-of-second-text-run-ref.html | 2 +- ...-affects-rendering-of-second-text-run.html | 2 +- .../lang-attribute-affects-rendering-ref.html | 2 +- .../lang-attribute-affects-rendering.html | 2 +- ...-analogous-missing-components-001-ref.html | 26 + ...ient-analogous-missing-components-001.html | 43 + ...-analogous-missing-components-002-ref.html | 38 + ...ient-analogous-missing-components-002.html | 40 + ...-analogous-missing-components-003-ref.html | 24 + ...ient-analogous-missing-components-003.html | 35 + .../gradient/gradient-increasing-hue-lch.html | 2 +- .../gradient/gradient-longer-hue-lch-004.html | 2 +- .../gradient-none-interpolation-ref.html | 6 +- .../gradient/gradient-none-interpolation.html | 8 +- .../gradient/gradient-single-stop-001.html | 2 +- .../gradient/gradient-single-stop-002.html | 2 +- .../gradient/gradient-single-stop-003.html | 2 +- .../gradient/gradient-single-stop-004.html | 2 +- .../gradient/gradient-single-stop-005.html | 2 +- ...adient-single-stop-longer-hue-hsl-002.html | 2 +- ...r-gradient-relative-currentcolor-stop.html | 1 + ...gradient-interpolation-method-invalid.html | 14 + ...gradient-container-relative-units-001.html | 16 + ...gradient-container-relative-units-002.html | 16 + ...gradient-container-relative-units-003.html | 16 + ...gradient-container-relative-units-004.html | 16 + ...gradient-container-relative-units-ref.html | 10 + .../clip-path/clip-path-borderBox-1c.html | 2 +- .../clip-path/clip-path-strokeBox-1a.html | 2 +- .../clip-path/clip-path-viewBox-1c.html | 2 +- .../clip-path/svg-clip-path-fixed-values.html | 2 +- ....tentative.html => at-function-cssom.html} | 0 .../dashed-function-named-arg.tentative.html | 34 + .../dashed-function-standard-property.html | 46 + .../column-scroll-marker-015-crash.html | 29 + .../column-scroll-marker-focus-001.html | 198 + ...inline-with-scroll-marker-group-crash.html | 14 + .../css-overflow/scroll-marker-014-crash.html | 20 + .../var-reference-registered-properties.html | 4 +- ...s-001.html => host-has-001.tentative.html} | 0 ...s-002.html => host-has-002.tentative.html} | 0 ...s-003.html => host-has-003.tentative.html} | 0 ...-with-text-fragment-navigation-target.html | 3 +- ....html => fit-content-min-inline-size.html} | 2 +- ...rd-sizes-for-intrinsic-contributions.html} | 13 +- ...t-height-replaced-in-percent-cell-003.html | 13 + ...t-height-replaced-in-percent-cell-004.html | 14 + .../text-autospace-ligature-001-ref.html | 2 +- .../text-autospace-ligature-001.html | 2 +- .../rotate-transform-equivalent.html | 2 +- .../group/svg-transform-group-009.html | 2 +- .../group/svg-transform-nested-009.html | 2 +- .../group/svg-transform-nested-014.html | 2 +- .../preserve3d-and-flattening-001.html | 2 +- .../css-transforms/skewX/svg-skewxy-001.html | 2 +- .../css-transforms/skewY/svg-skewy-001.html | 2 +- .../css-transforms/skewY/svg-skewy-006.html | 2 +- .../css-transforms/skewY/svg-skewy-011.html | 2 +- .../css-transforms/skewY/svg-skewy-016.html | 2 +- .../css-transforms/skewY/svg-skewy-021.html | 2 +- .../css-transforms/transform-input-005.html | 2 +- .../css-transforms/transform-percent-008.html | 2 +- .../transform3d-sorting-006.html | 2 +- tests/wpt/tests/css/css-ui/caret-eol-001.html | 30 + tests/wpt/tests/css/css-ui/caret-eol-002.html | 31 + tests/wpt/tests/css/css-ui/caret-eol-003.html | 31 + .../css/css-ui/caret-eol-004.tentative.html | 31 + .../css/css-ui/reference/caret-eol-001.html | 26 + .../tests/css/css-values/attr-all-types.html | 3 +- .../css-values/clamp-length-serialize.html | 5 +- .../calc-sibling-function-in-shadow-dom.html | 0 .../calc-sibling-function-parsing.html | 0 .../calc-sibling-function.html | 0 .../sibling-function-container-query.html | 67 + ...ibling-function-descriptors.tentative.html | 45 + .../sibling-function-invalidation.html | 52 + ...ibling-function-media-query.tentative.html | 32 + .../tree-scoped-sibling-function.html | 50 + .../zoom-computed-with-sign-expression.html | 38 + .../zoom/parsing/zoom-computed.html | 12 +- .../css-writing-modes/available-size-020.html | 86 + .../css-writing-modes/available-size-021.html | 94 + .../css-writing-modes/available-size-022.html | 98 + .../css-writing-modes/available-size-023.html | 98 + .../reference/available-size-020-ref.html | 72 + .../reference/available-size-022-ref.html | 76 + .../insertRule-import-no-sheet-crash.html | 10 + .../tests/css/motion/offset-path-url-003.html | 2 +- .../tests/css/motion/offset-path-url-004.html | 2 +- .../tests/css/motion/offset-rotate-001.html | 1 + .../tests/css/motion/offset-rotate-002.html | 1 + .../tests/css/motion/offset-rotate-003.html | 1 + .../tests/css/motion/offset-rotate-004.html | 1 + .../tests/css/motion/offset-rotate-005.html | 1 + .../tests/css/motion/offset-rotate-ref.html | 1 + .../form-associated/form-reset-callback.html | 40 +- .../clear-site-data.https.html | 41 +- .../create-session.https.html | 19 +- .../credentials-matching.https.html | 90 + .../excluded_verify_authenticated.py | 5 + .../helper.js | 26 +- .../include-site.https.html | 41 + .../included_verify_authenticated.py | 5 + .../jwt_helper.py | 2 +- .../device-bound-session-credentials/login.py | 30 +- .../multiple-credentials.https.html | 69 + .../multiple-registrations.https.html | 56 + .../not-secure-connection.html | 10 +- .../pull_server_state.py | 6 + ...refresh-does-not-send-challenge.https.html | 36 + .../refresh-replaces-config.https.html | 36 +- .../refresh-with-continue-false.https.html | 19 +- .../refresh_session.py | 23 +- .../registration-sends-challenge.https.html | 19 +- .../request_early_challenge.py | 22 +- .../resolving-urls.https.html | 55 + ...ession-cookie-has-no-attributes.https.html | 19 +- .../session_manager.py | 146 +- .../set-authorization.https.html | 14 +- .../set-early-challenge.https.html | 89 +- .../set-scope-origin.https.html | 58 +- .../set-scope-specification.https.html | 67 + .../set_cookie.py | 8 + .../setup_sharded_server_state.py | 2 +- .../verify_authenticated.py | 13 +- .../verify_authenticated_alternate.py | 5 + .../verify_authenticated_util.py | 16 + tests/wpt/tests/digital-credentials/META.yml | 1 + .../default-permissions-policy.https.sub.html | 12 +- ...abled-by-permissions-policy.https.sub.html | 4 +- ...rigin-by-permissions-policy.https.sub.html | 10 +- ...ectors-space-and-dash-attribute-value.html | 2 +- .../{tentative => }/Node-moveBefore.html | 2 +- .../chrome-338071841-crash.html | 0 .../continue-css-animation-left.html | 0 .../continue-css-animation-transform.html | 0 .../continue-css-transition-left-pseudo.html | 0 .../continue-css-transition-left.html | 0 ...tinue-css-transition-transform-pseudo.html | 0 .../continue-css-transition-transform.html | 0 .../css-animation-commit-styles.html | 0 .../css-transition-cross-document.html | 0 .../css-transition-cross-shadow.html | 0 ...s-transition-to-disconnected-document.html | 0 .../css-transition-trigger.html | 0 .../custom-element-move-reactions.html | 0 .../fire-focusin-focusout.html | 0 .../{tentative => }/focus-within.html | 0 .../{tentative => }/fullscreen-preserve.html | 0 .../iframe-document-preserve.window.js | 0 .../input-moveBefore-crash.html | 0 .../listed-form-element-reset.html | 0 .../{tentative => }/live-range-updates.html | 0 .../{tentative => }/modal-dialog.html | 0 .../moveBefore-shadow-inside.html | 0 .../moveBefore-shadow-root.html | 0 .../{tentative => }/mutation-events.html | 0 .../{tentative => }/mutation-observer.html | 0 .../moveBefore/{tentative => }/nonce.html | 0 .../{tentative => }/nonce.html.headers | 0 .../object-crash-regression.html | 0 .../{tentative => }/pointer-events.html | 0 .../{tentative => }/popover-preserve.html | 0 .../preserve-render-blocking-script.html | 0 .../preserve-render-blocking-style.html | 0 .../{tentative => }/relevant-mutations.html | 0 .../{tentative => }/resources/dummy.js | 0 .../{tentative => }/resources/green.css | 0 .../resources/moveBefore-iframe.html | 0 .../select-option-optgroup.html | 0 .../{tentative => }/selection-preserve.html | 0 .../{tentative => }/slotchange-events.html | 0 .../{tentative => }/style-applies.html | 0 .../{tentative => }/throws-exception.html | 0 .../dom/xslt/document-function.window.js | 43 + .../delete-selection-with-null-range.html} | 0 .../design-mode-textarea.html} | 0 .../empty-editable.html} | 0 ...irst-letter-crossing-engine-boundary.html} | 3 - .../plaintext-only/styling-commands.html | 3 + .../tentative/server-response.https.window.js | 31 +- .../generic-sensor-iframe-tests.sub.js | 5 + .../generic-sensor/generic-sensor-tests.js | 10 +- ...navigation-hsts-upgrade.tentative.sub.html | 76 + tests/wpt/tests/hsts/resources/hsts.html | 4 + .../tests/hsts/resources/hsts.html.headers | 2 + .../hsts/resources/post-origin-to-opener.html | 4 + .../manual/text/canvas.2d.lang-ref.html | 25 +- .../text/canvas.2d.lang.dynamic-ref.html | 49 +- .../manual/text/canvas.2d.lang.dynamic.html | 31 +- .../manual/text/canvas.2d.lang.empty-ref.html | 21 +- .../text/canvas.2d.lang.empty.canvas.html | 23 +- .../element/manual/text/canvas.2d.lang.html | 25 +- ...s.2d.lang.inherit.disconnected.canvas.html | 23 +- ....inherit.disconnected.canvas.no.lang.html} | 35 +- .../manual/text/canvas.2d.lang.inherit.html | 43 +- .../text/canvas.2d.unknown.lang-ref.html | 47 + ...measure.text-clusters-split.tentative.html | 12 +- .../text/canvas.2d.offscreen.lang-ref.html | 25 +- .../manual/text/canvas.2d.offscreen.lang.html | 26 +- .../canvas.2d.offscreen.lang.inherit.html | 29 +- .../canvas.2d.offscreen.transferred.lang.html | 26 +- ...een.transferred.lang.inherit.document.html | 31 +- ...2d.offscreen.transferred.lang.inherit.html | 25 +- .../canvas.2d.offscreen.worker.lang-ref.html | 25 +- .../text/canvas.2d.offscreen.worker.lang.html | 50 +- ...nvas.2d.offscreen.worker.lang.inherit.html | 54 +- .../manual/text/text-lang-worker-en.js | 21 + .../manual/text/text-lang-worker-inherit.js | 19 +- .../manual/text/text-lang-worker-ja.js | 12 - .../manual/text/text-lang-worker-tr.js | 21 + .../manual/text/text-lang-worker-zh-CN.js | 12 - ...measure.text-clusters-split.tentative.html | 12 +- ...re.text-clusters-split.tentative.worker.js | 12 +- .../resources/canvas-promise-test-worker.js | 24 + .../canvas/resources/canvas-promise-test.js | 144 + .../tests/html/canvas/tools/yaml/text.yaml | 12 +- .../hidden-until-found-idl.html | 20 + .../load-removes-queued-error-event.html | 21 +- .../current-pixel-density/basic.html | 17 +- .../naturalWidth-naturalHeight.html | 42 + .../source-relevant-mutations.html | 88 + .../resources/customizable-select-styles.css | 4 + .../select-appearance-disabled-ref.html | 6 + .../select-appearance-disabled.tentative.html | 13 + .../select-events.tentative.html | 133 +- ...elect-picker-starting-style.tentative.html | 11 + .../semantics/popovers/popover-focus-2.html | 123 +- .../popover-light-dismiss-command.html | 333 + .../html-unsafe-methods/WEB_FEATURES.yml | 3 + .../browsers/firefox/prefs.html.ini | 4 + ...ype-inputevent-data-withnewline-atend.html | 4 +- ...e-inputevent-data-withnewline-atstart.html | 4 +- tests/wpt/tests/interfaces/css-mixins.idl | 12 +- tests/wpt/tests/interfaces/dom.idl | 2 + tests/wpt/tests/interfaces/webnn.idl | 145 +- tests/wpt/tests/interfaces/webtransport.idl | 15 +- tests/wpt/tests/interfaces/xhr.idl | 8 +- .../clip-path-animation.html | 100 + tests/wpt/tests/lint.ignore | 1 - ...ackGenerator-with-window-tracks.https.html | 3 +- .../resources/digital-credentials-get.html | 13 +- tests/wpt/tests/resources/testharness.js | 16 +- .../sanitizer-removeUnsafe.tentative.html | 103 + .../sethtml-tree-construction.sub.dat | 24 + .../onchange-event-subframe.html | 23 +- .../scroll-to-text-diretive-center-ref.html | 8 + .../scroll-to-text-diretive-center.html | 34 + ...tringifier_editable_element.tentative.html | 187 + ...che-after-clear-site-data-cache.https.html | 35 + .../redirect-middle-of-prefetch.https.html | 54 + .../redirect-to-prefetch-url.https.html | 39 + .../prefetch/redirect-url.https.html | 35 + .../prefetch/redirect-url.sub.https.html | 54 - .../prefetch/resources/redirect-helper.sub.js | 71 + .../service-worker/basic.sub.https.html | 11 +- ...ing-after-clear-site-data-cache.https.html | 2 +- .../prerender/resources/exec.html | 2 +- ...ccess-cross-site-fetch.sub.https.window.js | 52 + .../resources/echo-cookie-header.py | 13 +- .../signatures/accept-signature-script.py | 34 + .../accept-signature.parser-inserted.html | 85 + .../tentative/accept-signature.window.js | 44 + .../tentative/authority.https.window.js | 88 + .../signatures/tentative/helper.js | 46 + .../signatures/tentative/status.window.js | 2 +- .../reftests/discard-check-remove2.html | 41 + .../reftests/gradient-color-interpolation.svg | 2 +- .../shapes/reftests/pathlength-005-ref.html | 4 + .../svg/shapes/reftests/pathlength-005.html | 9 + .../bidi/modules/browsing_context.py | 14 +- .../wptrunner/executors/executorwebdriver.py | 10 +- tests/wpt/tests/tools/wptserve/setup.py | 2 +- .../tests/tools/wptserve/wptserve/request.py | 8 +- .../tests/url/resources/setters_tests.json | 140 +- tests/wpt/tests/url/resources/toascii.json | 12 +- .../wpt/tests/url/resources/urltestdata.json | 120 + .../tests/url/url-setters-a-area.window.js | 53 +- tests/wpt/tests/url/url-setters.any.js | 33 +- .../wpt/tests/url/url-statics-canparse.any.js | 5 + .../tests/url/urlsearchparams-delete.any.js | 12 +- tests/wpt/tests/urlpattern/META.yml | 5 + .../resources/urlpatterntestdata.json | 21 +- .../wpt/tests/wai-aria/scripts/aria-utils.js | 6 - .../webauthn/conditional-mediation.https.html | 19 +- .../tests/webcodecs/videoFrame-copyTo.any.js | 55 + tests/wpt/tests/webcodecs/videoFrame-utils.js | 28 + .../tests/webdriver/tests/bidi/__init__.py | 18 +- .../set_viewport/device_pixel_ratio.py | 9 + .../browsing_context/set_viewport/invalid.py | 71 +- .../set_viewport/user_contexts.py | 402 + .../bidi/input/file_dialog_opened/__init__.py | 10 + .../file_dialog_opened/file_dialog_opened.py | 109 + .../file_dialog_opened/tentative/__init__.py | 0 .../tentative/show_open_file_picker.py | 32 + .../set_viewport_with_preload_script.py | 54 + .../add_preload_script/user_contexts.py | 50 + .../unhandled_prompt_behavior/file/accept.py | 25 + .../file/conftest.py | 60 + .../unhandled_prompt_behavior/file/dismiss.py | 25 + .../unhandled_prompt_behavior/file/ignore.py | 24 + .../bidi/session/subscribe/user_contexts.py | 29 + .../bidi/web_extension/install/invalid.py | 2 - .../tests/webnn/resources/utils_validation.js | 5 +- .../elementwise-binary.https.any.js | 100 +- .../elementwise-logical.https.any.js | 59 +- .../WorkerGlobalScope_ErrorEvent_message.htm | 1 + .../tests/xhr/progressevent-constructor.html | 30 + .../tests/xhr/progressevent-interface.html | 4 +- 496 files changed, 17696 insertions(+), 2718 deletions(-) create mode 100644 tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-any.html.ini delete mode 100644 tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-fill-any.html.ini create mode 100644 tests/wpt/meta/css/css-fonts/font-synthesis-08.html.ini create mode 100644 tests/wpt/meta/css/css-images/gradient/gradient-analogous-missing-components-003.html.ini create mode 100644 tests/wpt/meta/css/css-images/gradient/gradient-none-interpolation.html.ini create mode 100644 tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-001.html.ini create mode 100644 tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-002.html.ini create mode 100644 tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-003.html.ini create mode 100644 tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-004.html.ini rename tests/wpt/meta/css/css-mixins/{at-function-cssom.tentative.html.ini => at-function-cssom.html.ini} (98%) create mode 100644 tests/wpt/meta/css/css-mixins/dashed-function-named-arg.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-mixins/dashed-function-standard-property.html.ini delete mode 100644 tests/wpt/meta/css/css-sizing/fit-content-min-inline-size.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-sizing/keyword-sizes-for-intrinsic-contributions.html.ini create mode 100644 tests/wpt/meta/css/css-tables/percent-height-replaced-in-percent-cell-003.html.ini create mode 100644 tests/wpt/meta/css/css-tables/percent-height-replaced-in-percent-cell-004.html.ini delete mode 100644 tests/wpt/meta/css/css-tables/table-cell-overflow-auto-scrolled.html.ini delete mode 100644 tests/wpt/meta/css/css-transforms/preserve3d-and-flattening-001.html.ini rename tests/wpt/meta/css/css-values/{ => tree-counting}/calc-sibling-function-in-shadow-dom.html.ini (72%) rename tests/wpt/meta/css/css-values/{ => tree-counting}/calc-sibling-function-parsing.html.ini (100%) rename tests/wpt/meta/css/css-values/{ => tree-counting}/calc-sibling-function.html.ini (100%) create mode 100644 tests/wpt/meta/css/css-values/tree-counting/sibling-function-container-query.html.ini create mode 100644 tests/wpt/meta/css/css-values/tree-counting/sibling-function-descriptors.tentative.html.ini rename tests/wpt/meta/css/css-values/{ => tree-counting}/sibling-function-invalidation.html.ini (51%) create mode 100644 tests/wpt/meta/css/css-values/tree-counting/tree-scoped-sibling-function.html.ini create mode 100644 tests/wpt/meta/dom/nodes/moveBefore/Node-moveBefore.html.ini rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/continue-css-animation-left.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/continue-css-animation-transform.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/continue-css-transition-left-pseudo.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/continue-css-transition-left.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/continue-css-transition-transform-pseudo.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/continue-css-transition-transform.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/css-animation-commit-styles.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/css-transition-cross-document.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/css-transition-cross-shadow.html.ini (56%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/css-transition-to-disconnected-document.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/css-transition-trigger.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/custom-element-move-reactions.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/fire-focusin-focusout.html.ini (57%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/focus-within.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/iframe-document-preserve.window.js.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/listed-form-element-reset.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/live-range-updates.html.ini (51%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/modal-dialog.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/moveBefore-shadow-inside.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/moveBefore-shadow-root.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/mutation-events.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/mutation-observer.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/nonce.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/object-crash-regression.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/popover-preserve.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/preserve-render-blocking-script.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/preserve-render-blocking-style.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/relevant-mutations.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/select-option-optgroup.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/slotchange-events.html.ini (100%) rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/style-applies.html.ini (100%) delete mode 100644 tests/wpt/meta/dom/nodes/moveBefore/tentative/Node-moveBefore.html.ini rename tests/wpt/meta/dom/nodes/moveBefore/{tentative => }/throws-exception.html.ini (100%) create mode 100644 tests/wpt/meta/dom/xslt/document-function.window.js.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.html.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.inherit.html.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.html.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.document.html.ini delete mode 100644 tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.html.ini create mode 100644 tests/wpt/meta/html/editing/the-hidden-attribute/hidden-until-found-idl.html.ini create mode 100644 tests/wpt/meta/html/semantics/embedded-content/the-img-element/naturalWidth-naturalHeight.html.ini create mode 100644 tests/wpt/meta/html/semantics/embedded-content/the-img-element/source-relevant-mutations.html.ini create mode 100644 tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled.tentative.html.ini create mode 100644 tests/wpt/meta/intersection-observer/clip-path-animation.html.ini create mode 100644 tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html.ini create mode 100644 tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.window.js.ini create mode 100644 tests/wpt/meta/subresource-integrity/signatures/tentative/authority.https.window.js.ini create mode 100644 tests/wpt/meta/url/urlsearchparams-delete.any.js.ini create mode 100644 tests/wpt/meta/xhr/progressevent-constructor.html.ini create mode 100644 tests/wpt/tests/IndexedDB/request-event-ordering-large-mixed-with-small-values.any.js create mode 100644 tests/wpt/tests/IndexedDB/request-event-ordering-large-then-small-values.any.js create mode 100644 tests/wpt/tests/IndexedDB/request-event-ordering-large-values.any.js create mode 100644 tests/wpt/tests/IndexedDB/request-event-ordering-small-values.any.js rename tests/wpt/tests/IndexedDB/{request-event-ordering.any.js => resources/request-event-ordering-common.js} (85%) delete mode 100644 tests/wpt/tests/accname/name/comp_name_from_content.tentative.html rename tests/wpt/tests/ai/language_detection/{capabilities-detached-crash.tentative.https.html => availability-detached-crash.tentative.https.html} (53%) delete mode 100644 tests/wpt/tests/ai/language_detection/capabilities.tentative.https.any.js create mode 100644 tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html create mode 100644 tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html.headers create mode 100644 tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_require_trusted_types_eval.html create mode 100644 tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_require_trusted_types_eval.html.headers create mode 100644 tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_without_require_trusted_types_eval.html create mode 100644 tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_without_require_trusted_types_eval.html.headers create mode 100644 tests/wpt/tests/css/css-anchor-position/anchor-fallback-to-self-crash.html create mode 100644 tests/wpt/tests/css/css-anchor-position/position-try-order-inset-modified-containing-block.html create mode 100644 tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html create mode 100644 tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-any.html delete mode 100644 tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html delete mode 100644 tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-fill-any.html delete mode 100644 tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-math.js create mode 100644 tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-shape.js create mode 100644 tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-utils.js create mode 100644 tests/wpt/tests/css/css-cascade/layer-namespace-sandwich-crash.html create mode 100644 tests/wpt/tests/css/css-color/currentcolor-005-ref.html create mode 100644 tests/wpt/tests/css/css-color/currentcolor-005.html create mode 100644 tests/wpt/tests/css/css-flexbox/justify-content_space-between-003.tentative.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-001-ref.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-001.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-002-ref.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-002.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-003-ref.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-003.html create mode 100644 tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-001.html create mode 100644 tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-002.html create mode 100644 tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-003.html create mode 100644 tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-004.html create mode 100644 tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-ref.html rename tests/wpt/tests/css/css-mixins/{at-function-cssom.tentative.html => at-function-cssom.html} (100%) create mode 100644 tests/wpt/tests/css/css-mixins/dashed-function-named-arg.tentative.html create mode 100644 tests/wpt/tests/css/css-mixins/dashed-function-standard-property.html create mode 100644 tests/wpt/tests/css/css-overflow/column-scroll-marker-015-crash.html create mode 100644 tests/wpt/tests/css/css-overflow/column-scroll-marker-focus-001.html create mode 100644 tests/wpt/tests/css/css-overflow/inline-with-scroll-marker-group-crash.html create mode 100644 tests/wpt/tests/css/css-overflow/scroll-marker-014-crash.html rename tests/wpt/tests/css/css-scoping/{host-has-001.html => host-has-001.tentative.html} (100%) rename tests/wpt/tests/css/css-scoping/{host-has-002.html => host-has-002.tentative.html} (100%) rename tests/wpt/tests/css/css-scoping/{host-has-003.html => host-has-003.tentative.html} (100%) rename tests/wpt/tests/css/css-sizing/{fit-content-min-inline-size.tentative.html => fit-content-min-inline-size.html} (74%) rename tests/wpt/tests/css/css-sizing/{keyword-sizes-for-intrinsic-contributions.tentative.html => keyword-sizes-for-intrinsic-contributions.html} (92%) create mode 100644 tests/wpt/tests/css/css-tables/percent-height-replaced-in-percent-cell-003.html create mode 100644 tests/wpt/tests/css/css-tables/percent-height-replaced-in-percent-cell-004.html create mode 100644 tests/wpt/tests/css/css-ui/caret-eol-001.html create mode 100644 tests/wpt/tests/css/css-ui/caret-eol-002.html create mode 100644 tests/wpt/tests/css/css-ui/caret-eol-003.html create mode 100644 tests/wpt/tests/css/css-ui/caret-eol-004.tentative.html create mode 100644 tests/wpt/tests/css/css-ui/reference/caret-eol-001.html rename tests/wpt/tests/css/css-values/{ => tree-counting}/calc-sibling-function-in-shadow-dom.html (100%) rename tests/wpt/tests/css/css-values/{ => tree-counting}/calc-sibling-function-parsing.html (100%) rename tests/wpt/tests/css/css-values/{ => tree-counting}/calc-sibling-function.html (100%) create mode 100644 tests/wpt/tests/css/css-values/tree-counting/sibling-function-container-query.html create mode 100644 tests/wpt/tests/css/css-values/tree-counting/sibling-function-descriptors.tentative.html rename tests/wpt/tests/css/css-values/{ => tree-counting}/sibling-function-invalidation.html (52%) create mode 100644 tests/wpt/tests/css/css-values/tree-counting/sibling-function-media-query.tentative.html create mode 100644 tests/wpt/tests/css/css-values/tree-counting/tree-scoped-sibling-function.html create mode 100644 tests/wpt/tests/css/css-viewport/zoom/parsing/zoom-computed-with-sign-expression.html create mode 100644 tests/wpt/tests/css/css-writing-modes/available-size-020.html create mode 100644 tests/wpt/tests/css/css-writing-modes/available-size-021.html create mode 100644 tests/wpt/tests/css/css-writing-modes/available-size-022.html create mode 100644 tests/wpt/tests/css/css-writing-modes/available-size-023.html create mode 100644 tests/wpt/tests/css/css-writing-modes/reference/available-size-020-ref.html create mode 100644 tests/wpt/tests/css/css-writing-modes/reference/available-size-022-ref.html create mode 100644 tests/wpt/tests/css/cssom/insertRule-import-no-sheet-crash.html create mode 100644 tests/wpt/tests/device-bound-session-credentials/credentials-matching.https.html create mode 100644 tests/wpt/tests/device-bound-session-credentials/excludeInScopeSpecification/excluded_verify_authenticated.py create mode 100644 tests/wpt/tests/device-bound-session-credentials/include-site.https.html create mode 100644 tests/wpt/tests/device-bound-session-credentials/includeInScopeSpecification/included_verify_authenticated.py create mode 100644 tests/wpt/tests/device-bound-session-credentials/multiple-credentials.https.html create mode 100644 tests/wpt/tests/device-bound-session-credentials/multiple-registrations.https.html create mode 100644 tests/wpt/tests/device-bound-session-credentials/pull_server_state.py create mode 100644 tests/wpt/tests/device-bound-session-credentials/refresh-does-not-send-challenge.https.html create mode 100644 tests/wpt/tests/device-bound-session-credentials/resolving-urls.https.html create mode 100644 tests/wpt/tests/device-bound-session-credentials/set-scope-specification.https.html create mode 100644 tests/wpt/tests/device-bound-session-credentials/set_cookie.py create mode 100644 tests/wpt/tests/device-bound-session-credentials/verify_authenticated_alternate.py create mode 100644 tests/wpt/tests/device-bound-session-credentials/verify_authenticated_util.py rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/Node-moveBefore.html (99%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/chrome-338071841-crash.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/continue-css-animation-left.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/continue-css-animation-transform.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/continue-css-transition-left-pseudo.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/continue-css-transition-left.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/continue-css-transition-transform-pseudo.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/continue-css-transition-transform.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/css-animation-commit-styles.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/css-transition-cross-document.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/css-transition-cross-shadow.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/css-transition-to-disconnected-document.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/css-transition-trigger.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/custom-element-move-reactions.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/fire-focusin-focusout.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/focus-within.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/fullscreen-preserve.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/iframe-document-preserve.window.js (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/input-moveBefore-crash.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/listed-form-element-reset.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/live-range-updates.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/modal-dialog.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/moveBefore-shadow-inside.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/moveBefore-shadow-root.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/mutation-events.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/mutation-observer.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/nonce.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/nonce.html.headers (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/object-crash-regression.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/pointer-events.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/popover-preserve.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/preserve-render-blocking-script.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/preserve-render-blocking-style.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/relevant-mutations.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/resources/dummy.js (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/resources/green.css (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/resources/moveBefore-iframe.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/select-option-optgroup.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/selection-preserve.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/slotchange-events.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/style-applies.html (100%) rename tests/wpt/tests/dom/nodes/moveBefore/{tentative => }/throws-exception.html (100%) create mode 100644 tests/wpt/tests/dom/xslt/document-function.window.js rename tests/wpt/tests/editing/{other/delete-selection-with-null-range-crash.html => crashtests/delete-selection-with-null-range.html} (100%) rename tests/wpt/tests/editing/{other/design-mode-textarea-crash.html => crashtests/design-mode-textarea.html} (100%) rename tests/wpt/tests/editing/{run/empty-editable-crash.html => crashtests/empty-editable.html} (100%) rename tests/wpt/tests/editing/{run/first-letter-crossing-engine-boundary-crash.html => crashtests/first-letter-crossing-engine-boundary.html} (74%) create mode 100644 tests/wpt/tests/hsts/only-top-level-navigation-hsts-upgrade.tentative.sub.html create mode 100644 tests/wpt/tests/hsts/resources/hsts.html create mode 100644 tests/wpt/tests/hsts/resources/hsts.html.headers create mode 100644 tests/wpt/tests/hsts/resources/post-origin-to-opener.html rename tests/wpt/tests/html/canvas/element/manual/text/{canvas.2d.lang.inherit.document.disconnected.canvas.html => canvas.2d.lang.inherit.disconnected.canvas.no.lang.html} (51%) create mode 100644 tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.unknown.lang-ref.html create mode 100644 tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-en.js delete mode 100644 tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-ja.js create mode 100644 tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-tr.js delete mode 100644 tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-zh-CN.js create mode 100644 tests/wpt/tests/html/canvas/resources/canvas-promise-test-worker.js create mode 100644 tests/wpt/tests/html/canvas/resources/canvas-promise-test.js create mode 100644 tests/wpt/tests/html/editing/the-hidden-attribute/hidden-until-found-idl.html create mode 100644 tests/wpt/tests/html/semantics/embedded-content/the-img-element/naturalWidth-naturalHeight.html create mode 100644 tests/wpt/tests/html/semantics/embedded-content/the-img-element/source-relevant-mutations.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled.tentative.html create mode 100644 tests/wpt/tests/html/semantics/popovers/popover-light-dismiss-command.html create mode 100644 tests/wpt/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/WEB_FEATURES.yml create mode 100644 tests/wpt/tests/intersection-observer/clip-path-animation.html create mode 100644 tests/wpt/tests/sanitizer-api/sanitizer-removeUnsafe.tentative.html create mode 100644 tests/wpt/tests/scroll-to-text-fragment/scroll-to-text-diretive-center-ref.html create mode 100644 tests/wpt/tests/scroll-to-text-fragment/scroll-to-text-diretive-center.html create mode 100644 tests/wpt/tests/selection/stringifier_editable_element.tentative.html create mode 100644 tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.https.html create mode 100644 tests/wpt/tests/speculation-rules/prefetch/redirect-middle-of-prefetch.https.html create mode 100644 tests/wpt/tests/speculation-rules/prefetch/redirect-to-prefetch-url.https.html create mode 100644 tests/wpt/tests/speculation-rules/prefetch/redirect-url.https.html delete mode 100644 tests/wpt/tests/speculation-rules/prefetch/redirect-url.sub.https.html create mode 100644 tests/wpt/tests/speculation-rules/prefetch/resources/redirect-helper.sub.js create mode 100644 tests/wpt/tests/storage-access-api/requestStorageAccess-cross-site-fetch.sub.https.window.js create mode 100644 tests/wpt/tests/subresource-integrity/signatures/accept-signature-script.py create mode 100644 tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html create mode 100644 tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js create mode 100644 tests/wpt/tests/subresource-integrity/signatures/tentative/authority.https.window.js create mode 100644 tests/wpt/tests/svg/animations/reftests/discard-check-remove2.html create mode 100644 tests/wpt/tests/svg/shapes/reftests/pathlength-005-ref.html create mode 100644 tests/wpt/tests/svg/shapes/reftests/pathlength-005.html create mode 100644 tests/wpt/tests/urlpattern/META.yml create mode 100644 tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/user_contexts.py create mode 100644 tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/__init__.py create mode 100644 tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/file_dialog_opened.py create mode 100644 tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/tentative/__init__.py create mode 100644 tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/tentative/show_open_file_picker.py create mode 100644 tests/wpt/tests/webdriver/tests/bidi/integration/set_viewport_with_preload_script.py create mode 100644 tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/accept.py create mode 100644 tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/conftest.py create mode 100644 tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/dismiss.py create mode 100644 tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/ignore.py diff --git a/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini index b275cb58343..5f4566bad57 100644 --- a/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini @@ -5,6 +5,9 @@ [Revoke blob URL after creating Request, then clone Request, will fetch] expected: FAIL + [Revoke blob URL after calling fetch, fetch should succeed] + expected: FAIL + [url-with-fetch.any.worker.html] [Revoke blob URL after creating Request, will fetch] diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 12e7d538c2b..2a5c5b46f87 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -410,8 +410,8 @@ }, "ai": { "language_detection": { - "capabilities-detached-crash.tentative.https.html": [ - "705fff6ceec378b32d7ec6efe4cdece49bf6f107", + "availability-detached-crash.tentative.https.html": [ + "8dd685d990ad0c2e2524ab134da7284dbe79d010", [ null, {} @@ -612,6 +612,13 @@ {} ] ], + "anchor-fallback-to-self-crash.html": [ + "c5a8165d11322901546f30f948041ca96cf43639", + [ + null, + {} + ] + ], "anchor-scroll-composited-scrolling-001-crash.html": [ "e8ecde3a3e36702d8833c6caa0c94782243edba4", [ @@ -1640,6 +1647,13 @@ ] }, "css-cascade": { + "layer-namespace-sandwich-crash.html": [ + "c0a754e902fbd0b26ef784614dfe6fe71a29391f", + [ + null, + {} + ] + ], "layer-statement-copy-crash.html": [ "f183ab30ab72f2364dd71c37ff3b545bfaf556f1", [ @@ -4112,6 +4126,13 @@ {} ] ], + "column-scroll-marker-015-crash.html": [ + "f7d94832d1404f55f6553e30d8bbf5aebcc293db", + [ + null, + {} + ] + ], "column-scroll-marker-no-content-crash.html": [ "12879ec6f2f756bd17cdc7591d1dfb8f1cd25384", [ @@ -4126,6 +4147,13 @@ {} ] ], + "inline-with-scroll-marker-group-crash.html": [ + "c32c63ca050af1e9466ab077d4cf718d9a8dca69", + [ + null, + {} + ] + ], "line-clamp": { "line-clamp-auto-001-crash.html": [ "9185f9802de563fa9b838709b648342d45d72fc8", @@ -4198,6 +4226,13 @@ {} ] ], + "scroll-marker-014-crash.html": [ + "dd27d66fa5a01e69e69ae54b85dc814d57a05901", + [ + null, + {} + ] + ], "scroll-marker-dynamic-crash.html": [ "22c5b7d2299b8ebef349b393da82a88e224fbff9", [ @@ -5850,6 +5885,13 @@ {} ] ], + "insertRule-import-no-sheet-crash.html": [ + "43e82e817f640789bb084b2e35d96db9c2781dd5", + [ + null, + {} + ] + ], "insertRule-import-trailing-garbage-crash.html": [ "3acd607ca3c245dd47f4a4ddc225d8cb4e7af7b9", [ @@ -6206,22 +6248,20 @@ ] ], "moveBefore": { - "tentative": { - "chrome-338071841-crash.html": [ - "26adfb1cbfae116e0a88a7ff2cbf24cdb9a5e7f7", - [ - null, - {} - ] - ], - "input-moveBefore-crash.html": [ - "a41d06b024ebce951d9b84c9759a29b5754d0e96", - [ - null, - {} - ] + "chrome-338071841-crash.html": [ + "26adfb1cbfae116e0a88a7ff2cbf24cdb9a5e7f7", + [ + null, + {} ] - } + ], + "input-moveBefore-crash.html": [ + "a41d06b024ebce951d9b84c9759a29b5754d0e96", + [ + null, + {} + ] + ] }, "node-appendchild-crash.html": [ "245de87f2d36ed39eec30cd627aa3c21bd4ff115", @@ -6466,6 +6506,13 @@ {} ] ], + "delete-selection-with-null-range.html": [ + "4d814eab807facfa13a11084b2d5f1ecda712c18", + [ + null, + {} + ] + ], "delete-to-join-inline-blocks.html": [ "a299c519cb5d4999118c349d79518cffbb891177", [ @@ -6473,6 +6520,13 @@ {} ] ], + "design-mode-textarea.html": [ + "d9f01e41653bc07d3e939a968485f0c9c60417d9", + [ + null, + {} + ] + ], "designMode-caret-change.html": [ "be80afd4ab8a474572d1732baecdcb1f052c57fb", [ @@ -6508,6 +6562,13 @@ {} ] ], + "empty-editable.html": [ + "eda75a13cd5b4be66f42f43154ed6ed2ff177297", + [ + null, + {} + ] + ], "enableInlineTableEditing-after-updating-selection-range-cross-shadow-dom-boundary.html": [ "b248e03ea05fb85b89ab50e782d37ffec9075ea9", [ @@ -6543,6 +6604,13 @@ {} ] ], + "first-letter-crossing-engine-boundary.html": [ + "ccea4365a69aa98c6c61657c20980ff1a6746300", + [ + null, + {} + ] + ], "format-block-selection-containing-non-editable-list.html": [ "2f8f8ea5ab2a795f945d00edbbe275aa716ddb96", [ @@ -7180,38 +7248,6 @@ {} ] ] - }, - "other": { - "delete-selection-with-null-range-crash.html": [ - "4d814eab807facfa13a11084b2d5f1ecda712c18", - [ - null, - {} - ] - ], - "design-mode-textarea-crash.html": [ - "d9f01e41653bc07d3e939a968485f0c9c60417d9", - [ - null, - {} - ] - ] - }, - "run": { - "empty-editable-crash.html": [ - "eda75a13cd5b4be66f42f43154ed6ed2ff177297", - [ - null, - {} - ] - ], - "first-letter-crossing-engine-boundary-crash.html": [ - "be6325fce4894f22f7fa43a488810464f3ebdaee", - [ - null, - {} - ] - ] } }, "encoding": { @@ -127524,7 +127560,7 @@ ] ], "background-gradient-interpolation-003.html": [ - "0b60549355471f1aca4caa540c292dc28e1628f9", + "32446b5e4e85554482b04718a1f1733d387f9a85", [ null, [ @@ -127544,7 +127580,7 @@ ], [ 0, - 6500 + 7100 ] ] ] @@ -133986,7 +134022,7 @@ ] ], "border-image-space-001.html": [ - "720f0df188d962c9d3797d18df2517da46f203aa", + "133b0c2b41a4c57873f22d95e32c4e3d21340ae8", [ null, [ @@ -134006,7 +134042,7 @@ ], [ 0, - 1728 + 3850 ] ] ] @@ -135526,7 +135562,7 @@ ] ], "css3-border-image-repeat-repeat.html": [ - "b6db467a668856eac84475dc2b86e03fc4342095", + "f3dc09008a9165c4e249a7033527a0226adc412f", [ null, [ @@ -135546,7 +135582,7 @@ ], [ 0, - 412 + 5300 ] ] ] @@ -135958,6 +135994,269 @@ ] }, "corner-shape": { + "corner-shape-any.html": [ + "9c256eb89778f8060906b7d943d08a01a3cfe300", + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-bottom-left-shape=bevel&border-bottom-left-radius=30px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-bottom-left-shape=bevel&border-bottom-left-radius=30px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-bottom-right-shape=superellipse(1.9)&border-bottom-right-radius=50%", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-bottom-right-shape=superellipse(1.9)&border-bottom-right-radius=50%", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=squircle&border-radius=50%", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-shape=squircle&border-radius=50%", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=squircle&border-top-left-radius=30%", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-shape=squircle&border-top-left-radius=30%", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=squircle&border-top-right-radius=30px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-shape=squircle&border-top-right-radius=30px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=straight&border-bottom-leftradius=5px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-shape=straight&border-bottom-leftradius=5px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=superellipse(5.2)&border-radius=40%", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-shape=superellipse(5.2)&border-radius=40%", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-shape=superellipse(8)&border-top-right-radius=33px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-shape=superellipse(8)&border-top-right-radius=33px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-left-shape=scoop&corner-top-right-shape=scoop&border-radius=50%", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-left-shape=scoop&corner-top-right-shape=scoop&border-radius=50%", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ], + [ + "css/css-borders/tentative/corner-shape/corner-shape-any.html?corner-top-right-shape=superellipse(0.1)&border-top-right-radius=50px", + [ + [ + "/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html?corner-top-right-shape=superellipse(0.1)&border-top-right-radius=50px", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 180 + ], + [ + 0, + 520 + ] + ] + ] + ] + } + ] + ], "corner-shape-bevel-overflow-composite.html": [ "985b5efdc9b9c868465d658e5486cd1e7eae5fd5", [ @@ -136016,243 +136315,6 @@ } ] ], - "corner-shape-fill-any.html": [ - "eb3a9830837b98f8797eebfc2b621e6627c85175", - [ - "css/css-borders/tentative/corner-shape/corner-shape-fill-any.html?corner-bottom-left-shape=scoop&border-radius=10%", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html?corner-bottom-left-shape=scoop&border-radius=10%", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 128 - ], - [ - 0, - 500 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-fill-any.html?corner-bottom-right-shape=scoop&border-radius=50%", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html?corner-bottom-right-shape=scoop&border-radius=50%", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 128 - ], - [ - 0, - 500 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-fill-any.html?corner-shape=squircle&border-radius=10%", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html?corner-shape=squircle&border-radius=10%", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 128 - ], - [ - 0, - 500 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-fill-any.html?corner-shape=squircle&border-radius=30px", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html?corner-shape=squircle&border-radius=30px", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 128 - ], - [ - 0, - 500 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-fill-any.html?corner-shape=squircle&border-radius=50%", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html?corner-shape=squircle&border-radius=50%", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 128 - ], - [ - 0, - 500 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-fill-any.html?corner-shape=straight&border-radius=5px", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html?corner-shape=straight&border-radius=5px", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 128 - ], - [ - 0, - 500 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-fill-any.html?corner-shape=superellipse(5.2)&border-radius=33px", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html?corner-shape=superellipse(5.2)&border-radius=33px", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 128 - ], - [ - 0, - 500 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-fill-any.html?corner-shape=superellipse(5.2)&border-radius=50%", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html?corner-shape=superellipse(5.2)&border-radius=50%", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 128 - ], - [ - 0, - 500 - ] - ] - ] - ] - } - ], - [ - "css/css-borders/tentative/corner-shape/corner-shape-fill-any.html?corner-top-right-shape=scoop&border-radius=50px", - [ - [ - "/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html?corner-top-right-shape=scoop&border-radius=50px", - "==" - ] - ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 128 - ], - [ - 0, - 500 - ] - ] - ] - ] - } - ] - ], "corner-shape-fill.html": [ "6e5df8364c5fa57398644a72d40ca0e3dc8b2b65", [ @@ -149909,6 +149971,19 @@ {} ] ], + "currentcolor-005.html": [ + "67a9dc2bb1f8b68980a96e9e395ffc4fe4b5b529", + [ + null, + [ + [ + "/css/css-color/currentcolor-005-ref.html", + "==" + ] + ], + {} + ] + ], "currentcolor-visited-fallback.html": [ "a83506b5e581ac28a4864b47426e30d796f6d3d8", [ @@ -178723,6 +178798,19 @@ {} ] ], + "justify-content_space-between-003.tentative.html": [ + "dfe14a8683553727c2c9abeba1e35bd83e73bb65", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "layout-algorithm_algo-cross-line-001.html": [ "7fcc96f3c0c07068a00ed6a3a8007d44cca021fb", [ @@ -180500,7 +180588,7 @@ ] ], "font-face-sign-function.html": [ - "28c958c7ee704c1fa35ce838b29d9b766270862c", + "aee8fff0882603f9513633d578cfcb8ccfe3327a", [ null, [ @@ -180513,7 +180601,7 @@ ] ], "font-face-stretch-auto-static.html": [ - "ce3c94fa2feb25483d44883cb5a883d74fea641b", + "fb87ca9a278a767400792a7734f2c9a944e14aa6", [ null, [ @@ -180552,7 +180640,7 @@ ] ], "font-face-style-auto-static.html": [ - "8c8cae3e91936d74e495f8e0a094524a53f2dcbe", + "b0d902018aaf60800204db581fc4cf167cbadc8f", [ null, [ @@ -180617,7 +180705,7 @@ ] ], "font-face-weight-auto-static.html": [ - "af84d4b1f1a91417225c955c98bdb746b665aea8", + "1d2a82b9a39206c5c7bbfc3e1f5e76849f36f176", [ null, [ @@ -180981,7 +181069,7 @@ ] ], "font-feature-resolution-001.html": [ - "45f316af5c9c90e460cd11965e19f2f04a1b5b4e", + "ed74a5ae161c2eb46fcff989e35db602c76fd89a", [ null, [ @@ -180994,7 +181082,7 @@ ] ], "font-feature-resolution-002.html": [ - "05cc4db7464853c35548a924ea7c132e31b56f52", + "fe54f423f69769196d7d19e076cddd49b8801445", [ null, [ @@ -182372,7 +182460,7 @@ ] ], "font-synthesis-01.html": [ - "cf6d099e0ddc303b5f27cc37b0bc31874f14dd9c", + "bac811f267a03f0a496a6dafdb79f48e0015f7c7", [ null, [ @@ -182385,7 +182473,7 @@ ] ], "font-synthesis-02.html": [ - "59243c4cb7a8ad36cbfe68e29326e14f2faa4a5f", + "f27e0230057cead27ab74562043c3a2f1fe5e38f", [ null, [ @@ -182398,7 +182486,7 @@ ] ], "font-synthesis-03.html": [ - "53cac8ee4019b47ae23c4485cd0d213c9d6d2cdc", + "bec84b853822466626b7af7398fca7fc65a479d0", [ null, [ @@ -182411,7 +182499,7 @@ ] ], "font-synthesis-04.html": [ - "908171546927819e643d257fe8c44e6256bbd2e7", + "d281df4d34680de4930ec8c283fc82c49029f119", [ null, [ @@ -182424,7 +182512,7 @@ ] ], "font-synthesis-05.html": [ - "e521e6c67cf2c69d32c31bab763ca9a644bc7766", + "4f630a6a4cc080e185fefc8b7fbe24acea33e9e8", [ null, [ @@ -182450,7 +182538,7 @@ ] ], "font-synthesis-07.html": [ - "8f8572412df46c92aecf98092dcd65a47e4abb75", + "68d21ae642e0eeba5da263962cc3c7bba0255cf4", [ null, [ @@ -182463,7 +182551,7 @@ ] ], "font-synthesis-08.html": [ - "b3de1afcaee681b7e79969b325fc6bf98de4ec1c", + "5f61f81322237d0ba3ad2addbb940aae2b299c8b", [ null, [ @@ -182476,7 +182564,7 @@ ] ], "font-synthesis-position-001.html": [ - "1ed13f67c1950f3abf4b599c2b58ad1b0db3d169", + "9cd57e2a02db9e090fdca654eef9b66c4327881e", [ null, [ @@ -182489,7 +182577,7 @@ ] ], "font-synthesis-small-caps-first-letter.html": [ - "9e31777c73af5763c8c093fd6820becab033fe2a", + "97c5386091fd77624c526b3c0de0ab3be70e12ae", [ null, [ @@ -182502,7 +182590,7 @@ ] ], "font-synthesis-small-caps-first-line.html": [ - "77d66e58d8a8a3a58ccb352fad6ce9c71e3297a2", + "b11fa4b7b2681a9d76aa50c7478c099501bf4976", [ null, [ @@ -182528,7 +182616,7 @@ ] ], "font-synthesis-small-caps.html": [ - "953ebf5a3a3bf5d69a6ecfd3480b09a07410beb5", + "8b63ffbee4fb938df81b489f74c13e9f9e8ecdd0", [ null, [ @@ -182554,7 +182642,7 @@ ] ], "font-synthesis-style-first-letter.html": [ - "1296baf05f9c430cda6c52e5a63e813c79862b9a", + "2c8a531116af35b4733947951b5cdfacd360df6a", [ null, [ @@ -182567,7 +182655,7 @@ ] ], "font-synthesis-style-first-line.html": [ - "147c8eb7ff85a5af873e03aaba297e09909e418e", + "6a378b334b7fac486d402fc155e6544265aaa9b5", [ null, [ @@ -182593,7 +182681,7 @@ ] ], "font-synthesis-style.html": [ - "2970e377ed408c765a0f097286eea9fcb00624dc", + "5adf6272f36cf9e8ecf948b6ca60326b3c16e89c", [ null, [ @@ -182619,7 +182707,7 @@ ] ], "font-synthesis-weight-first-letter.html": [ - "3d60b2a22847e1b99f1ee53d27c231a41bbc60da", + "a169ffac623fb7625087f00b253d812a9e07ea97", [ null, [ @@ -182632,7 +182720,7 @@ ] ], "font-synthesis-weight-first-line.html": [ - "5093a9e17b667bb7995cc1f9d234439cf76e76e6", + "a850b333f3ad37a0311fb6ba703096b98e4c367b", [ null, [ @@ -182645,7 +182733,7 @@ ] ], "font-synthesis-weight.html": [ - "6213817edf6052fddbd63c63b820edd307fcfee9", + "a11895e90cddfbd782da04acb0f5e30b50b09e5a", [ null, [ @@ -183594,7 +183682,7 @@ ] ], "font-variant-position-04.html": [ - "de1cbd8779509a602be2032adbd27ce478ee0077", + "72b3b3d887567b6e83e1ba0a37234b7d5f5c689f", [ null, [ @@ -183607,7 +183695,7 @@ ] ], "font-variant-position-05.html": [ - "f93cb9861732768b5c2ebaacb43be00992d931c2", + "1a81b9bd8edd0e027cd3f3aea30fbe83fccf0901", [ null, [ @@ -183698,7 +183786,7 @@ ] ], "lang-attribute-affects-rendering-of-second-text-run.html": [ - "296468719c95b4f58b853657cc6a66c3827750d6", + "1e280b26498e25cf8bf78434a7df85dfd4b1c964", [ null, [ @@ -183711,7 +183799,7 @@ ] ], "lang-attribute-affects-rendering.html": [ - "041fd8f5abdc1524b585673e919de83126efe49a", + "98282f7148f26591704eb6e047c3b869b1d6005f", [ null, [ @@ -196584,6 +196672,45 @@ } ] ], + "gradient-analogous-missing-components-001.html": [ + "0bfd7bb615f7f8d2e5b8b1b1ce11deb3643121d9", + [ + null, + [ + [ + "/css/css-images/gradient/gradient-analogous-missing-components-001-ref.html", + "==" + ] + ], + {} + ] + ], + "gradient-analogous-missing-components-002.html": [ + "96038650136fb48d49c3951c2c4433d5fe205650", + [ + null, + [ + [ + "/css/css-images/gradient/gradient-analogous-missing-components-002-ref.html", + "==" + ] + ], + {} + ] + ], + "gradient-analogous-missing-components-003.html": [ + "c4c8995c1ef840f7f42424743643d2aedfd62270", + [ + null, + [ + [ + "/css/css-images/gradient/gradient-analogous-missing-components-003-ref.html", + "==" + ] + ], + {} + ] + ], "gradient-decreasing-hue-hsl.html": [ "973974417ea306380adc4f3fc3e75b6daa0b9af9", [ @@ -196975,7 +197102,7 @@ ] ], "gradient-increasing-hue-lch.html": [ - "603c023e5ca2c00b1b6f1cef55ebca9b101bcdcc", + "f6de5c43dbe98fced8de503515f37a5be187ce97", [ null, [ @@ -196995,7 +197122,7 @@ ], [ 0, - 23900 + 24900 ] ] ] @@ -197324,7 +197451,7 @@ ] ], "gradient-longer-hue-lch-004.html": [ - "6975e26957da1b3ce85341b167ae717d4006251d", + "e32d86d70ee8b2e87bb7e719213a60c7dee4ae56", [ null, [ @@ -197344,7 +197471,7 @@ ], [ 0, - 1240 + 1540 ] ] ] @@ -197505,7 +197632,7 @@ ] ], "gradient-none-interpolation.html": [ - "06d7be6e66b6a08132fa9474cd51ea3817300de0", + "11bac74b9b5fc901045978d7c37b2892ee20676d", [ null, [ @@ -197525,7 +197652,7 @@ ], [ 0, - 5000 + 15000 ] ] ] @@ -197534,7 +197661,7 @@ ] ], "gradient-single-stop-001.html": [ - "af43fd7e9fcb5d51921e1e2b1e48bb3bae5da5d5", + "1e89b3ffc67766552529f7dd09c8590b2c55c27c", [ null, [ @@ -197554,7 +197681,7 @@ ], [ 0, - 4500 + 6000 ] ] ] @@ -197563,7 +197690,7 @@ ] ], "gradient-single-stop-002.html": [ - "8721f8d6dd6b43ca002e3bc645bb5c0219484fbd", + "912ca2016bc90d4eeaf9d2286897d65c7df38f06", [ null, [ @@ -197583,7 +197710,7 @@ ], [ 0, - 4500 + 6000 ] ] ] @@ -197592,7 +197719,7 @@ ] ], "gradient-single-stop-003.html": [ - "39d9761e48ba8da307122444a96a42fedaf4284a", + "6430cdc4296c051e75c24226d2566567ca6f3f9d", [ null, [ @@ -197612,7 +197739,7 @@ ], [ 0, - 4500 + 6000 ] ] ] @@ -197621,7 +197748,7 @@ ] ], "gradient-single-stop-004.html": [ - "191e906f0e637b83c38ab465fad2cee05ed7cf42", + "7e4f675c912db0a8b4012313398b4bee9dfd4786", [ null, [ @@ -197641,7 +197768,7 @@ ], [ 0, - 4500 + 6000 ] ] ] @@ -197650,7 +197777,7 @@ ] ], "gradient-single-stop-005.html": [ - "c3072c75146da4c35db62fb0ee1179efbb13e230", + "a94e0ce53d638a14a5597a9bfea7ae8cb19bfb9b", [ null, [ @@ -197670,7 +197797,7 @@ ], [ 0, - 4500 + 6000 ] ] ] @@ -197766,7 +197893,7 @@ ] ], "gradient-single-stop-longer-hue-hsl-002.html": [ - "5b1dd25113a43a1a26a1f8e261c6bed1431086de", + "218eec044d3de20334b852d2638aab5596f117cf", [ null, [ @@ -197786,7 +197913,7 @@ ], [ 0, - 9050 + 18000 ] ] ] @@ -197908,7 +198035,7 @@ ] ], "linear-gradient-relative-currentcolor-stop.html": [ - "901b0894e158c503a46b172345eb3106336336ac", + "3ddabe7b100ef5217aec3b22532c1f027788de78", [ null, [ @@ -197917,7 +198044,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 1, + 1 + ], + [ + 0, + 5000 + ] + ] + ] + ] + } ] ], "oklab-gradient.html": [ @@ -202878,6 +203021,58 @@ } ] ], + "radial-gradient-container-relative-units-001.html": [ + "9663bf5133f343bb99e76913bfa5f6e057000c28", + [ + null, + [ + [ + "/css/css-images/radial-gradient-container-relative-units-ref.html", + "==" + ] + ], + {} + ] + ], + "radial-gradient-container-relative-units-002.html": [ + "73083b095d6fe0df2f14bae37b06228f7bad3faa", + [ + null, + [ + [ + "/css/css-images/radial-gradient-container-relative-units-ref.html", + "==" + ] + ], + {} + ] + ], + "radial-gradient-container-relative-units-003.html": [ + "f41e23c01fa19fce6edb1e03c01c115937712593", + [ + null, + [ + [ + "/css/css-images/radial-gradient-container-relative-units-ref.html", + "==" + ] + ], + {} + ] + ], + "radial-gradient-container-relative-units-004.html": [ + "c99059561a344af542828e1e1e2c91cbe9301c5f", + [ + null, + [ + [ + "/css/css-images/radial-gradient-container-relative-units-ref.html", + "==" + ] + ], + {} + ] + ], "repeating-conic-gradient.html": [ "9a9587f29f6b491461d9df96d76072cbe13efe9a", [ @@ -209717,7 +209912,7 @@ ] ], "clip-path-borderBox-1c.html": [ - "99f6bb0fc978c8c27023c695b355ced6e83ea618", + "0783cfe0039c7cbcae55f1fbe392a525e39f70f6", [ null, [ @@ -209737,7 +209932,7 @@ ], [ 0, - 368 + 750 ] ] ] @@ -211800,7 +211995,7 @@ ] ], "clip-path-strokeBox-1a.html": [ - "487f5363b694304923538d0314d3c6d2a685da6b", + "37cec39ff808bc51e837ecc9d03725a22c20a989", [ null, [ @@ -211820,7 +212015,7 @@ ], [ 0, - 368 + 750 ] ] ] @@ -212136,7 +212331,7 @@ ] ], "clip-path-viewBox-1c.html": [ - "d46c6d2f03ea8fc93bb3f47d15d36d8a66202573", + "720b3b587549bc8ec9cd2fe1aa7f87db566dc74b", [ null, [ @@ -212156,7 +212351,7 @@ ], [ 0, - 368 + 750 ] ] ] @@ -212346,7 +212541,7 @@ ] ], "svg-clip-path-fixed-values.html": [ - "eb2c44fbb23bd18456b97416cb4c55ba701b6105", + "3366e88fa23d201174bb1c9d31fb2366de777b9e", [ null, [ @@ -212366,7 +212561,7 @@ ], [ 0, - 608 + 990 ] ] ] @@ -236258,7 +236453,7 @@ {} ] ], - "host-has-001.html": [ + "host-has-001.tentative.html": [ "79c89874c63af3b2fa14ed64e0711b006a8032dc", [ null, @@ -236271,7 +236466,7 @@ {} ] ], - "host-has-002.html": [ + "host-has-002.tentative.html": [ "33a705672aeb07fdaae71eb7fac583396f20d450", [ null, @@ -236284,7 +236479,7 @@ {} ] ], - "host-has-003.html": [ + "host-has-003.tentative.html": [ "58f1482564b0b29afd2a1c5dea7a7640d6b74a72", [ null, @@ -246278,8 +246473,8 @@ {} ] ], - "fit-content-min-inline-size.tentative.html": [ - "46e2d5d127338fce204f7ed692954bef7e626695", + "fit-content-min-inline-size.html": [ + "926f0034ec6e4f2ecca0f3c74889cd30cb8a3496", [ null, [ @@ -248990,6 +249185,32 @@ {} ] ], + "percent-height-replaced-in-percent-cell-003.html": [ + "f0720cd9640c213bdc98ad97b80f50b2b2bf6d9d", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], + "percent-height-replaced-in-percent-cell-004.html": [ + "3ef8b1b16a9c6a0e220d9d045751605223723f9c", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "percent-height-replaced-in-percent-cell.tentative.html": [ "ed5effa8a755d9533054e0b6005900305735b3d6", [ @@ -259019,7 +259240,7 @@ ] ], "text-autospace-ligature-001.html": [ - "d9acc35626c7111312a1dd83655b34885999bd97", + "f7ea716cc154ba6ce9a207752fe17beb95d9bb18", [ null, [ @@ -272915,7 +273136,7 @@ ] ], "rotate-transform-equivalent.html": [ - "5748d86608d07e31f7ae7aae487217cf4867f7cc", + "64c3007fd918b3e36d72f8fb6cf9adab43c70c41", [ null, [ @@ -272935,7 +273156,7 @@ ], [ 0, - 277 + 450 ] ] ] @@ -274464,7 +274685,7 @@ ] ], "svg-transform-group-009.html": [ - "58f4beeda9c2e207ac259f4567fef171ef0f3056", + "36ecf88da8515a85c90574a4577351131135da84", [ null, [ @@ -274480,11 +274701,11 @@ [ [ 0, - 1 + 47 ], [ 0, - 2 + 490 ] ] ] @@ -274639,7 +274860,7 @@ ] ], "svg-transform-nested-009.html": [ - "fe3b06ac2c564126e9bcc10203ea798655086563", + "286325c03eaa0cf9ec2dc896448cf8ca5a551bb9", [ null, [ @@ -274655,11 +274876,11 @@ [ [ 0, - 1 + 2 ], [ 0, - 1 + 600 ] ] ] @@ -274720,7 +274941,7 @@ ] ], "svg-transform-nested-014.html": [ - "9da7a80c1011c3481bd6d6bed3441d8a5e63997c", + "d8084b63ddef69caa7424163b18da709779dca77", [ null, [ @@ -274736,11 +274957,11 @@ [ [ 0, - 1 + 2 ], [ 0, - 2 + 216 ] ] ] @@ -276654,7 +276875,7 @@ ] ], "preserve3d-and-flattening-001.html": [ - "411b945e10ed9bd7e87b4011f1e1c5e6c4ae58fd", + "f7dc8b296c621fe27488662f358f7d94ad6009d4", [ null, [ @@ -276674,7 +276895,7 @@ ], [ 0, - 101 + 500 ] ] ] @@ -277658,7 +277879,7 @@ ] ], "svg-skewxy-001.html": [ - "0eee25c5dfe36d919a1a116de15ae2780f7428c4", + "b15dff571df3e02740977c2ac82b7b4560cf9845", [ null, [ @@ -277678,7 +277899,7 @@ ], [ 0, - 1 + 270 ] ] ] @@ -277689,7 +277910,7 @@ }, "skewY": { "svg-skewy-001.html": [ - "a5678f30fb42bae41e660ae56fffdb99f708546a", + "d530dfad762d8e115cf784891fe0ca3f4c804a20", [ null, [ @@ -277709,7 +277930,7 @@ ], [ 0, - 2 + 104 ] ] ] @@ -277718,7 +277939,7 @@ ] ], "svg-skewy-006.html": [ - "51d7b768973909f81726017bf522b4317999f3de", + "9fe8d42c08359a3c610d27ac3ce9296263b46443", [ null, [ @@ -277738,7 +277959,7 @@ ], [ 0, - 2 + 104 ] ] ] @@ -277747,7 +277968,7 @@ ] ], "svg-skewy-011.html": [ - "89f0aa9e62ca59d3c71adddff5d04edd943ec591", + "7929bf092b7c1d9eec3a3dfc271b8afd1d6832f0", [ null, [ @@ -277767,7 +277988,7 @@ ], [ 0, - 2 + 104 ] ] ] @@ -277776,7 +277997,7 @@ ] ], "svg-skewy-016.html": [ - "fee2331f96e38f5d159f10e34c76831d7189b031", + "8bad647f98e651f0a8bac5d63196d72b5a3ba73e", [ null, [ @@ -277796,7 +278017,7 @@ ], [ 0, - 2 + 104 ] ] ] @@ -277805,7 +278026,7 @@ ] ], "svg-skewy-021.html": [ - "5905e79c0d0f11faf38466b705bf229316bdb1d4", + "269c289c842ac5ff76d304395b95936bc9e83a9a", [ null, [ @@ -277825,7 +278046,7 @@ ], [ 0, - 2 + 104 ] ] ] @@ -279442,7 +279663,7 @@ ] ], "transform-input-005.html": [ - "efa053e9c80dab15af05cb118fef68817be81de7", + "16232c89a271b248b3183b449eefe984aeeb37b2", [ null, [ @@ -279458,7 +279679,7 @@ [ [ 0, - 128 + 180 ], [ 0, @@ -281636,7 +281857,7 @@ ] ], "transform-percent-008.html": [ - "e4b333216333c320dafb7697a7cf47acfc20e3f5", + "1ba4ad9b913fe059ddd35d0bff71b3fc4f0e0ccf", [ null, [ @@ -281660,7 +281881,7 @@ ], [ 0, - 416 + 560 ] ] ] @@ -283859,7 +284080,7 @@ ] ], "transform3d-sorting-006.html": [ - "acc478079e713044958958d5f02bf92bd00aa35f", + "d7d08a1b8c37e2b32f32d53329f5ed3b19c5e37f", [ null, [ @@ -283879,7 +284100,7 @@ ], [ 0, - 544 + 920 ] ] ] @@ -285236,6 +285457,58 @@ {} ] ], + "caret-eol-001.html": [ + "3eb1d8ce368abe3d2cc42a202981b739f83318a8", + [ + null, + [ + [ + "/css/css-ui/reference/caret-eol-001.html", + "==" + ] + ], + {} + ] + ], + "caret-eol-002.html": [ + "2506c6defd1ca594b263e94c05e4df7155198584", + [ + null, + [ + [ + "/css/css-ui/reference/caret-eol-001.html", + "==" + ] + ], + {} + ] + ], + "caret-eol-003.html": [ + "61e9c50bf5aa2f579d347ed207e629e7271cce98", + [ + null, + [ + [ + "/css/css-ui/reference/caret-eol-001.html", + "==" + ] + ], + {} + ] + ], + "caret-eol-004.tentative.html": [ + "63e6e1c79b9b161a59e76599417d5d2c8d83a965", + [ + null, + [ + [ + "/css/css-ui/reference/caret-eol-001.html", + "==" + ] + ], + {} + ] + ], "compute-kind-widget-fallback-props-revert-001.html": [ "7f2ae2cf1df1319ddc8d1041ddb08d3b1d14f937", [ @@ -311509,6 +311782,58 @@ {} ] ], + "available-size-020.html": [ + "bf09886f30a0762e8a56d0ad01a335b263280b39", + [ + null, + [ + [ + "/css/css-writing-modes/reference/available-size-020-ref.html", + "==" + ] + ], + {} + ] + ], + "available-size-021.html": [ + "4547ba1934f8ec3432f1f09dfda0c06f84494026", + [ + null, + [ + [ + "/css/css-writing-modes/reference/available-size-020-ref.html", + "==" + ] + ], + {} + ] + ], + "available-size-022.html": [ + "5e6e684adae62960c3abb8b8d4e3a14bc7d72c78", + [ + null, + [ + [ + "/css/css-writing-modes/reference/available-size-022-ref.html", + "==" + ] + ], + {} + ] + ], + "available-size-023.html": [ + "a1be62a27e2395a243410fe89a0d662db5e4a535", + [ + null, + [ + [ + "/css/css-writing-modes/reference/available-size-022-ref.html", + "==" + ] + ], + {} + ] + ], "background-position-vrl-018.xht": [ "d4e76334b7647340282d732692f08b6691437930", [ @@ -328976,7 +329301,7 @@ ] ], "offset-path-url-003.html": [ - "4485b52d071f15b9b9f812af0fe5f56a30cd0494", + "7e0c2fe0b507f157a354fa9771f4ea6f0f34e177", [ null, [ @@ -328996,7 +329321,7 @@ ], [ 0, - 76 + 85 ] ] ] @@ -329005,7 +329330,7 @@ ] ], "offset-path-url-004.html": [ - "05aea375a18018eac9e0797f2cbdc1c3dae8963d", + "d1e4135a263f992207d83f5cb7a319fb59bc519a", [ null, [ @@ -329025,7 +329350,7 @@ ], [ 0, - 65 + 70 ] ] ] @@ -329125,7 +329450,7 @@ ] ], "offset-rotate-001.html": [ - "e5b13fe8a9ab5a4db3acf1c6428c951d1a146da6", + "56173cf4e4f1918097ca4b2d2a532e421a4e04bf", [ null, [ @@ -329138,7 +329463,7 @@ ] ], "offset-rotate-002.html": [ - "1edf38d546dff30e855c6d38342107ae10875903", + "29888029b7bd041f6b3c2f790542c6cb9ed65f9b", [ null, [ @@ -329151,7 +329476,7 @@ ] ], "offset-rotate-003.html": [ - "522ff35b051ba969b6d10b7c951e0868158aaff8", + "7a8ddbe8142d6cc4b168af1b1d77be4d78a0ec37", [ null, [ @@ -329180,7 +329505,7 @@ ] ], "offset-rotate-004.html": [ - "33783d423b50585c3da0cd37f13df4763774bd38", + "c55887d4f61a4e4e3c5d3e31d3d0a554da2a3b60", [ null, [ @@ -329193,7 +329518,7 @@ ] ], "offset-rotate-005.html": [ - "9b1c40ed112c9f95bacfa70810d18de97fd3bcd7", + "42070b5bef47ac1f135fa501c7c256a70c2a732a", [ null, [ @@ -337452,7 +337777,7 @@ ] ], "canvas.2d.lang.dynamic.html": [ - "ad23b2c23386892a844aa71382f7c96a91bfbd37", + "225fcaa7ba19ddb4311d994760e262892a8f98fe", [ null, [ @@ -337465,7 +337790,7 @@ ] ], "canvas.2d.lang.empty.canvas.html": [ - "d1b6e52f7968adda7fd8f3125c6955ad71d35a88", + "099081de379890e28efd18b29f395cf780e3ce37", [ null, [ @@ -337478,7 +337803,7 @@ ] ], "canvas.2d.lang.html": [ - "372cf8c04cd149f44621ca50e340114cf4289a82", + "b8fca4dd5e72b95c6a47d61b2bb3d895cc4ddb8d", [ null, [ @@ -337491,7 +337816,7 @@ ] ], "canvas.2d.lang.inherit.disconnected.canvas.html": [ - "7b28b1fb9506565d1b38c02147ba63678e71e134", + "0af5f20d6f5d21a0e79122d4ef76c0535a75654a", [ null, [ @@ -337503,13 +337828,13 @@ {} ] ], - "canvas.2d.lang.inherit.document.disconnected.canvas.html": [ - "e6a463ae37530351f6fc48c1defc7b73af433d5c", + "canvas.2d.lang.inherit.disconnected.canvas.no.lang.html": [ + "6b06ae5df960c0ffe240894dce5c50461db65fc9", [ null, [ [ - "/html/canvas/element/manual/text/canvas.2d.lang-ref.html", + "/html/canvas/element/manual/text/canvas.2d.unknown.lang-ref.html", "==" ] ], @@ -337517,7 +337842,7 @@ ] ], "canvas.2d.lang.inherit.html": [ - "bb2e655e15ab63e6099abc907574387bcbbd0eca", + "845880f20d86c45983caf0cd839583d07082cedf", [ null, [ @@ -341117,7 +341442,7 @@ ] ], "canvas.2d.offscreen.lang.html": [ - "0179dad8fea809594f524e0bebb4cca7ecea1141", + "c3c6b36901d39d18689930171fdef69947870bd0", [ null, [ @@ -341130,7 +341455,7 @@ ] ], "canvas.2d.offscreen.lang.inherit.html": [ - "5b027f6dae05f52aeeaec411034fb0daec1cf580", + "63b6854cd780b9a93f3bdcab8b7418b96e3f0422", [ null, [ @@ -341169,7 +341494,7 @@ ] ], "canvas.2d.offscreen.transferred.lang.html": [ - "049f5484058cf9461b964816a066aae463414823", + "06c0db121d0b213d23a8f03b3aae6c39e168de0b", [ null, [ @@ -341182,7 +341507,7 @@ ] ], "canvas.2d.offscreen.transferred.lang.inherit.document.html": [ - "732496c93b05f2a93233b4b736365d661e7acd53", + "a7561ddd855649790f437922daed20d22bac9a08", [ null, [ @@ -341195,7 +341520,7 @@ ] ], "canvas.2d.offscreen.transferred.lang.inherit.html": [ - "9ffb6a493061fbfa2ffeb21cf3a24191624b334b", + "72aab773a5e9dc85e32625a4b66dd227d1a292ef", [ null, [ @@ -341234,7 +341559,7 @@ ] ], "canvas.2d.offscreen.worker.lang.html": [ - "ed438c68f91c5be020f61e1e6c499edab1ba826a", + "8ed884a177539048d8670383c8d586ea4b34173f", [ null, [ @@ -341247,7 +341572,7 @@ ] ], "canvas.2d.offscreen.worker.lang.inherit.html": [ - "ca0d0ffeee656bab162d3ef84fbd781d5dc7c081", + "43157d54d2b8403011ccb668536439f33453f1d7", [ null, [ @@ -348848,6 +349173,35 @@ } ] ], + "select-appearance-disabled.tentative.html": [ + "a20fb4e0904d7dac72b4266978306bd7a5147eb0", + [ + null, + [ + [ + "/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 41 + ], + [ + 0, + 1 + ] + ] + ] + ] + } + ] + ], "select-appearance-fallback-bottom-left-scroller.tentative.html": [ "77f97efab212c0ae76ec33f39e5d508c1abd6b27", [ @@ -357616,6 +357970,21 @@ ] } }, + "scroll-to-text-fragment": { + "scroll-to-text-diretive-center.html": [ + "a3739f0b5ff93861baa631c24b827f9b3daa0f73", + [ + null, + [ + [ + "/scroll-to-text-fragment/scroll-to-text-diretive-center-ref.html", + "==" + ] + ], + {} + ] + ] + }, "selection": { "caret": { "after-designMode-off.html": [ @@ -358215,6 +358584,19 @@ {} ] ], + "discard-check-remove2.html": [ + "92ecaec9d2137f9c70c1160af24536800f50ec53", + [ + null, + [ + [ + "/svg/animations/reftests/reference/green-100x100.svg", + "==" + ] + ], + {} + ] + ], "discard-rect-as-child.svg": [ "93e14c0d73e6ea14d910507047a3ba00c637cf74", [ @@ -360901,7 +361283,7 @@ ] ], "gradient-color-interpolation.svg": [ - "f7959437734230d394197d1837be2ba6ffaa7d3c", + "91dad7dcf0e57c103a0174c76c4f341d5f2dfdf8", [ null, [ @@ -360921,7 +361303,7 @@ ], [ 0, - 29200 + 29400 ] ] ] @@ -361684,6 +362066,19 @@ {} ] ], + "pathlength-005.html": [ + "59d4ae5fa6443bd971856c6c2e385026d9002c9f", + [ + null, + [ + [ + "/svg/shapes/reftests/pathlength-005-ref.html", + "==" + ] + ], + {} + ] + ], "polygon-with-filtered-marker.html": [ "def8adc6852efd36e91060e120c4f127be10b7bc", [ @@ -366511,7 +366906,7 @@ [] ], "docker.yml": [ - "96f4629d8b54b9e6ad0cb8f7df4f3dccad0b81f3", + "6d5c7c79a05faeaeb5e18040ceedaf99240020c4", [] ], "documentation.yml": [ @@ -366535,7 +366930,7 @@ [] ], "safari-wptrunner.yml": [ - "0860533dc92a398d23c965e7b72d3c65a2a491e4", + "9cfc8a7eeeb56da91aa7456cc7cc36b67af9a73f", [] ], "safari_stable.yml": [ @@ -366846,6 +367241,10 @@ "45c8ffef923870909cb9b0e2af128081e5bce41a", [] ], + "request-event-ordering-common.js": [ + "f754ba5f3ab98bac6a15072a23f8ce4b761a6a4b", + [] + ], "support-get-all.js": [ "3b70b828b1375d4946b45941de0b3a115deaec5b", [] @@ -370752,7 +371151,7 @@ [] ], "redirect.py": [ - "f2fd1ebd51d4ad5f4ef0582510600eb3731fd2c7", + "1ddde9a579b7094dd7aebd0935fb32ec087fd5aa", [] ], "refresh.py": [ @@ -371169,7 +371568,7 @@ }, "resources": { "common.js": [ - "4f666f1557e42dd290de2d23c997bb2fb33b57db", + "b5a2ca2b27f720841ce40af01db5d1ff82e729a9", [] ], "compute-pressure-allowed-by-permissions-policy-worker.js": [ @@ -390958,6 +391357,18 @@ "b7918c93323eff9db66ad26a73b78798d35e5f7b", [] ], + "script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html.headers": [ + "ae1e09e31ea4ba841d96458be2803871448e09ec", + [] + ], + "script-src-trusted_types_eval_with_require_trusted_types_eval.html.headers": [ + "3e51fcd47410a11cbb6e16cd5ea426c40e9e1dab", + [] + ], + "script-src-trusted_types_eval_without_require_trusted_types_eval.html.headers": [ + "5658b5ab2de0b836c0ebde7395247cfb11bdb2b1", + [] + ], "scriptnonce-specified-source.sub.html.sub.headers": [ "d23494ca83705ba3cc7c244443eef42856fbca96", [] @@ -411998,6 +412409,10 @@ }, "tentative": { "corner-shape": { + "corner-shape-any-ref.html": [ + "688f01c8668554efce1ccde22ebf2b12a2ff61c8", + [] + ], "corner-shape-bevel-overflow-composite-ref.html": [ "f67be0cc6388ee35801bc1eab83f857902ea2be8", [] @@ -412006,10 +412421,6 @@ "374302671907cfc89740026e76f671df6418f40a", [] ], - "corner-shape-fill-any-ref.html": [ - "7bdb829f02205d436e5c1afd802182dc11c538e0", - [] - ], "corner-shape-fill-ref.html": [ "4000833c31d1cad31076f52f33f0f4f95922bbd1", [] @@ -412027,12 +412438,16 @@ [] ], "resources": { - "corner-math.js": [ - "0a2ddf0889d7c767b61ffc6fa143812b828b9ba0", + "corner-shape.js": [ + "2aaaf5ed28987608fba8f4f8b756cd3062e82498", + [] + ], + "corner-utils.js": [ + "39203aefc67d57e9e0128112e60ac5b01e147d95", [] ], "resolve-corner-style.js": [ - "bb6fc7dca63da2945c007b3a8b811a00cab6319b", + "ea065f577e09c30b56cf1171685375b7aefeebc7", [] ] } @@ -413026,6 +413441,10 @@ "835e4b81e62f9b0c95c81e87f4e9eac311dc8edd", [] ], + "currentcolor-005-ref.html": [ + "67c72813aff211670b0043b09974c2bdc91f3346", + [] + ], "currentcolor-visited-fallback-ref.html": [ "8e6bf0d336145f13a42a9e60e43024339e487ac5", [] @@ -418657,7 +419076,7 @@ [] ], "font-face-stretch-auto-static-ref.html": [ - "5b3c4477332a127234b43993af3a31658c439c72", + "cbafc4850d74303a88ee88bb3ef131ea68322dee", [] ], "font-face-stretch-auto-variable-ref.html": [ @@ -418669,7 +419088,7 @@ [] ], "font-face-style-auto-static-ref.html": [ - "375a6d4e3e8d101df194afea937066120912b942", + "aea71f63d7385f956766a63596bc56207d71e778", [] ], "font-face-style-auto-variable-ref.html": [ @@ -418689,7 +419108,7 @@ [] ], "font-face-weight-auto-static-ref.html": [ - "34772a941884a60846ef78733c7c9169459f8028", + "ca0f9b568c2c120568b9a5b45ab0a56cf4bb8367", [] ], "font-face-weight-auto-variable-ref.html": [ @@ -418729,11 +419148,11 @@ [] ], "font-feature-resolution-001-ref.html": [ - "261b93f5dbadbf95f50e2582cebb9d42e92c201c", + "3a2a6515cb713702b867427d183d994167b82d8e", [] ], "font-feature-resolution-002-ref.html": [ - "99084224149f42e81341b8248cb88137af64b103", + "5bf3e2cefc0e70a4731ff04def40a070c75da6e1", [] ], "font-feature-settings-descriptor-01-ref.html": [ @@ -419025,23 +419444,23 @@ [] ], "font-synthesis-01-ref.html": [ - "535518272a04c2e11cf945f40c1b7321215e3ba3", + "9992466cff60e93ab1e47088f2d1c2792f0899df", [] ], "font-synthesis-02-ref.html": [ - "5f80bcdf5a56ebf449e72f570a1154ce1aa6d3db", + "c0e446a76ab64b382d77cd584f823bd863dbf70b", [] ], "font-synthesis-03-ref.html": [ - "8f36b311177a92bd4b6d4704217a8b854d170cb7", + "f77f75ef1601909594b82c8786b2a97ba9b139a3", [] ], "font-synthesis-04-ref.html": [ - "f3b65481f226c92923d686bdcb7005586a2a3149", + "810889a52b9fd9831f099df7e11885c773cfeacb", [] ], "font-synthesis-05-ref.html": [ - "801889d15605537143852ea57f17adc7c94e7e6b", + "1710440333668a459ee98622bfcbe469a6e425dd", [] ], "font-synthesis-06-ref.html": [ @@ -419049,23 +419468,23 @@ [] ], "font-synthesis-07-ref.html": [ - "428c8c401856627c81bc7d03663317fd76bbf08b", + "d0746cd2f6c3cf1d0df5725f30d0b99ede42b2b4", [] ], "font-synthesis-08-ref.html": [ - "39cd4558d98b1fcdbc78968dff477c44d7f0fa94", + "012c9dc89db63553f8e8f645c45b0ed382a60880", [] ], "font-synthesis-position-001-ref.html": [ - "228dc652f29d0cd1d73f0d88b8d970699070191e", + "145714605c572129742f19d41c7ff8ed0b6a4e51", [] ], "font-synthesis-small-caps-first-letter-ref.html": [ - "8f66b7b298a7c247b6848527ac0fec1ee0de8286", + "5277489ce830e16cc0c7923600d98c1d197d4eb2", [] ], "font-synthesis-small-caps-first-line-ref.html": [ - "121f9412fb2e3768f6a24cf27347519b779bbcf2", + "718012d48cd66b6ee9d442255dbb0e03cd403ca3", [] ], "font-synthesis-small-caps-not-applied-ref.html": [ @@ -419073,7 +419492,7 @@ [] ], "font-synthesis-small-caps-ref.html": [ - "6851d552674fe495f692e3a510e4aff4927c8f37", + "f2b8044d72646e7466d7973fc3083046ae60c783", [] ], "font-synthesis-style-binary-ref.html": [ @@ -419081,11 +419500,11 @@ [] ], "font-synthesis-style-first-letter-ref.html": [ - "c4f9b175de79052ad0f29df3be07a33c1072f245", + "ef325ce6ef377e8e211db90e2d625f9e74dc191f", [] ], "font-synthesis-style-first-line-ref.html": [ - "bef793609e6841b04b9f8b201d6881e2f8424d37", + "bcea0fcb0629298482ae008a2891787d2728dc80", [] ], "font-synthesis-style-oblique-only-ref.html": [ @@ -419093,7 +419512,7 @@ [] ], "font-synthesis-style-ref.html": [ - "969572344a549eaa0a7b1b9b22b22c3e0e7c03ce", + "a6256884c54ae69518ad2f7e9ed54dedad1fe39c", [] ], "font-synthesis-weight-binary-ref.html": [ @@ -419101,15 +419520,15 @@ [] ], "font-synthesis-weight-first-letter-ref.html": [ - "fd29f4134d67d22b6e344dcc7ec8315a32dac2e5", + "108394f780f4a83a7fbf19daa1a464ffc4a31b1b", [] ], "font-synthesis-weight-first-line-ref.html": [ - "b92bd2c9801d8c8711b4c5fd54a68432dd1ef366", + "feffe6d39348006db93e812a9e661675b09e4b79", [] ], "font-synthesis-weight-ref.html": [ - "8d5e3f6e08bcfeff2470b09a8c6cc2d069e08165", + "89bd3ae55df786b8fdee7d2490aac312656ae5e8", [] ], "font-variant-01-ref.html": [ @@ -419405,11 +419824,11 @@ [] ], "font-variant-position-04-notref.html": [ - "5bfe6db4331e861c0dbb090161105ea149d3831e", + "6445f79d657294c42bbff73ce74cefeea7fd5215", [] ], "font-variant-position-05-notref.html": [ - "a79c7b83a77f67e098721e7194a26dd297b6c246", + "b874462215a654cb0b1732d402979bec6b3635b6", [] ], "font-variant-position-ref.html": [ @@ -419437,11 +419856,11 @@ [] ], "lang-attribute-affects-rendering-of-second-text-run-ref.html": [ - "7d2f4e7129fd5b42bf971e074c7cfec51209e6a3", + "3f8b9f541196807a401b7e53e84b9b72e872a5c7", [] ], "lang-attribute-affects-rendering-ref.html": [ - "f832a1ef61fe39141c9566f1d76d52161607d83d", + "d84eb87164b3d00a05f05e9ff41fd9c51cc2a0e0", [] ], "line-gap-override-ref.html": [ @@ -428213,6 +428632,18 @@ "28d57bc19c779250d792eafc2d5e4461baece0d5", [] ], + "gradient-analogous-missing-components-001-ref.html": [ + "5e89048bf00d924bc63fce23301c59c0a4a3c417", + [] + ], + "gradient-analogous-missing-components-002-ref.html": [ + "ecdbc4c114801aeadbd7e5ea47b54f31dd2abcc9", + [] + ], + "gradient-analogous-missing-components-003-ref.html": [ + "134388315a03691bdd20e77cf7d54ba959e9b7fb", + [] + ], "gradient-decreasing-hue-hsl-ref.html": [ "df6dc90ac033e4d00fca3e8f5f6e7ad998aa4c6c", [] @@ -428378,7 +428809,7 @@ [] ], "gradient-none-interpolation-ref.html": [ - "89a1929e275bac96c2a2e845124e0bd9cecd3cfa", + "154112fe612979103ad5f7c3c8fa528c1d434a5b", [] ], "gradient-single-stop-longer-hue-hsl-002-ref.html": [ @@ -429060,6 +429491,10 @@ [] ] }, + "radial-gradient-container-relative-units-ref.html": [ + "503058910ddc951c1f47ce536145ae6d9908ac17", + [] + ], "reference": { "100x100-blue-green.html": [ "e4f35c3e430cc2994709f6805576d1fe2c1f9cf3", @@ -436566,7 +437001,7 @@ [] ], "scroll-initial-target-with-text-fragment-navigation-target.html": [ - "61a3db00c66d059e629c4e3280d64743bf6fcbf3", + "aea8e120c15af61717f79b52ddd2f5c957393725", [] ], "stash.py": [ @@ -441214,7 +441649,7 @@ [] ], "text-autospace-ligature-001-ref.html": [ - "286cdfc104bd33bde6ff7e0ddbdde3add113b91e", + "8cae2c0ec71c35dc654d5a4192435611a95c8658", [] ], "text-autospace-no-001-mismatch-ref.html": [ @@ -445651,6 +446086,10 @@ "5e103f7712c8a761ad4dba2ec8a0085dacd2191c", [] ], + "caret-eol-001.html": [ + "dc8f37feaeefa314f3f6bde2ec031eb4e9b9cf02", + [] + ], "outline-006-ref.html": [ "3c15fcbf6cc0870159c4fe7ddaff8b61747126be", [] @@ -449039,6 +449478,14 @@ "ef66b4e0d6248a8bc5b49c2654bfc77a2ac2e298", [] ], + "available-size-020-ref.html": [ + "ecd3ac273a2be4c198abba2730ef8355f4b52111", + [] + ], + "available-size-022-ref.html": [ + "c1e492ef24d2c9bae39611d26f4b8ca0db7d426b", + [] + ], "baseline-with-orthogonal-flow-001-ref.html": [ "dda75ca1ef495507c75c27f4a1de638bbf5506f8", [] @@ -452705,7 +453152,7 @@ [] ], "offset-rotate-ref.html": [ - "ec22768e96a1cd1efab206781b985cec8f006686", + "4b2d36529af2af91bd9316985bb365053b949a1c", [] ] }, @@ -453977,32 +454424,52 @@ "29636973a589fb3d97dddbd3e35b60b7f5655c5c", [] ], + "excludeInScopeSpecification": { + "excluded_verify_authenticated.py": [ + "d4a7dce24b0b90ad4b8c3bb2a7c2aa6fb830edaa", + [] + ] + }, "helper.js": [ - "c4cfcfc1f7540a12e105bdd7d3c2ab97727dbeb1", + "58b7a5fe7a2da56b9c6555f6e21510abd1c81473", [] ], + "includeInScopeSpecification": { + "included_verify_authenticated.py": [ + "d4a7dce24b0b90ad4b8c3bb2a7c2aa6fb830edaa", + [] + ] + }, "jwt_helper.py": [ - "315fb362ff6288462e0cefee967709474f60c3ae", + "53f8a364fcd7ddca9a3db467e2e080913630fdab", [] ], "login.py": [ - "2e2d93a8e47e627a4e4fe56c7d9bc200ad3a8edc", + "1d811fbaaa154016d62a03ea9324decb331c3e26", + [] + ], + "pull_server_state.py": [ + "6870ed5291f043c35a85669c2d69dace00f9ceaa", [] ], "refresh_session.py": [ - "9b39118ce714ab25363e8e6e4584d18189c1a083", + "d05340a318ce6bd0183d157e55db136fa5d98156", [] ], "request_early_challenge.py": [ - "e3e429ee76fb6c14d22d8aff91b578f58553890b", + "f0cc5c75421a7a9508fa8c7f5d1fc0707634d251", [] ], "session_manager.py": [ - "98eb120ed7cc054acc1d3b999689299da5d6fdc0", + "1095c94d7688f86a088d13d38e7160fc70ff3e29", + [] + ], + "set_cookie.py": [ + "73fde3ca523167bdf2883de7a488a39458fc3a12", [] ], "setup_sharded_server_state.py": [ - "8e5f3a67134c6982c826a481cd20f4464c7d1229", + "f3e6029e8f3d6fb27cfe9262a419b8eb793c0dd0", [] ], "start_session.py": [ @@ -454010,7 +454477,15 @@ [] ], "verify_authenticated.py": [ - "fa81f0f0d2091581aa0a4a9dd1093c0cf3b9814e", + "ea4b5a2162a366fe8fd04d069f992a909236be66", + [] + ], + "verify_authenticated_alternate.py": [ + "d4a7dce24b0b90ad4b8c3bb2a7c2aa6fb830edaa", + [] + ], + "verify_authenticated_util.py": [ + "e9bbb74793ee07c54b8d0dee2835cf78a36f1db5", [] ] }, @@ -454036,7 +454511,7 @@ }, "digital-credentials": { "META.yml": [ - "7273f019d78464df10e4ee48f9babd1ccbc1a112", + "d062affc1848e3f315ef4f7e1d30319545bc7992", [] ], "dc-types.ts": [ @@ -454921,25 +455396,23 @@ [] ], "moveBefore": { - "tentative": { - "nonce.html.headers": [ - "ae36f1b0a7020df875edbcda3c627e2ee325878b", + "nonce.html.headers": [ + "ae36f1b0a7020df875edbcda3c627e2ee325878b", + [] + ], + "resources": { + "dummy.js": [ + "1bee3c776389c8fe49947128b41eff092bc11668", [] ], - "resources": { - "dummy.js": [ - "1bee3c776389c8fe49947128b41eff092bc11668", - [] - ], - "green.css": [ - "182d72fa7fddab14222e4085b2cc498d79865709", - [] - ], - "moveBefore-iframe.html": [ - "7d9c498e8da29f6d23df33d49a2aab5b85e9f1e2", - [] - ] - } + "green.css": [ + "182d72fa7fddab14222e4085b2cc498d79865709", + [] + ], + "moveBefore-iframe.html": [ + "7d9c498e8da29f6d23df33d49a2aab5b85e9f1e2", + [] + ] } }, "mutationobservers.js": [ @@ -461704,11 +462177,11 @@ [] ], "generic-sensor-iframe-tests.sub.js": [ - "277d5d0ea9b290b554a7746567dde65b826a165d", + "a63729ec2e62ed5ca6aab02278b6d0f7d38fd437", [] ], "generic-sensor-tests.js": [ - "b4ed22554a0ebf62bde1d13175f2681b1fa631db", + "970dc3314c3cb5005e0222ef8e74f0dd794cf857", [] ], "resources": { @@ -461862,6 +462335,22 @@ ] } }, + "hsts": { + "resources": { + "hsts.html": [ + "aad90f8b193d39fcb46abcf7b0156c349584f022", + [] + ], + "hsts.html.headers": [ + "1e3f57846f9dd490029c32e5d0e2a9a2863eb80d", + [] + ], + "post-origin-to-opener.html": [ + "8d0ac71c29cec210558ab25ca3898a6857f66b56", + [] + ] + } + }, "html": { "META.yml": [ "7eecf519f1b69eda044e17fdfafda34561b95a18", @@ -465318,15 +465807,19 @@ [] ], "canvas.2d.lang-ref.html": [ - "19e283985ccbfadf3ba65193f101b9ddc0c1f143", + "6bb9238a74a287c88dd7846aa98cbfdd3e2d611f", [] ], "canvas.2d.lang.dynamic-ref.html": [ - "18027189f393223d01a26a1deed2c13bc6988e42", + "177bddb1794ef440663d90f75b204360e05dc100", [] ], "canvas.2d.lang.empty-ref.html": [ - "fda8b02a3445a209ea0e490359878717618886c2", + "258ebf6298e164ad4edf9f6171f1ff17ac1991d2", + [] + ], + "canvas.2d.unknown.lang-ref.html": [ + "9d12ba0d695b39bca17b3fec88b1eb2d14c890c1", [] ], "canvas_text_font_001-ref.htm": [ @@ -466354,7 +466847,7 @@ [] ], "canvas.2d.offscreen.lang-ref.html": [ - "aa13564fbba4ec4c1f4024ba07cd19c935f7f4e9", + "51eff356b8e6fd2742cc4da82ba015383f8f0a1a", [] ], "canvas.2d.offscreen.worker.direction-ref.html": [ @@ -466362,7 +466855,7 @@ [] ], "canvas.2d.offscreen.worker.lang-ref.html": [ - "82b6e7316392d849932dbeb2844cbb45fca1db0c", + "35c87f8c69e2ad0983e8838fdcf00b2b13ca9da7", [] ], "text-direction-worker-inherit.js": [ @@ -466373,16 +466866,16 @@ "d85504f524e66fce864ab284da961624e2e3c3a5", [] ], + "text-lang-worker-en.js": [ + "12e231a6d6a6a9953851f22fb3ca296d283ab9c9", + [] + ], "text-lang-worker-inherit.js": [ - "20d96d94c93b8ddd192c87cd82b38e1e909a3d59", + "7be7f1f41f0b644ddec658c304449f4d6cd9909a", [] ], - "text-lang-worker-ja.js": [ - "585fc066ac34629dcbb22c409a7db74449a90423", - [] - ], - "text-lang-worker-zh-CN.js": [ - "cbededf338477311973654016f5db2feb42abcc4", + "text-lang-worker-tr.js": [ + "047b06d692106a35c34b14fcef23a83d87d2ebb3", [] ] }, @@ -466531,6 +467024,14 @@ "e13897f157263b83b2d69e3e187cb890ff394f6c", [] ], + "canvas-promise-test-worker.js": [ + "f5410efca5b92d3b1272f94a9049027972698996", + [] + ], + "canvas-promise-test.js": [ + "1b2e2b3a584a1740c01e6911f6e5c72b0a5aafda", + [] + ], "canvas-spec.css": [ "5882acb68ef3ef7e00cbea39d484c6fd0f1ab2d6", [] @@ -466693,7 +467194,7 @@ [] ], "text.yaml": [ - "c572f00cb0c2af8cb8b64b8f0091d940a06c75b1", + "48a0429f267d281927fad8d59dd6a791e6f029ac", [] ], "the-canvas-state.yaml": [ @@ -474693,7 +475194,7 @@ [] ], "customizable-select-styles.css": [ - "9cac1c5899cc6fffc01e2a2c7344d366a2496780", + "13a500a6197955a4bceebf0382ddc41feaf09b46", [] ], "customizable-select-utils.js": [ @@ -474737,6 +475238,10 @@ "0b59f2839b5cd2983a7279827b93788c50527cae", [] ], + "select-appearance-disabled-ref.html": [ + "cee0175b715b6c6d72976b9217eac1ef429d4694", + [] + ], "select-appearance-fallback-bottom-left-ref.html": [ "fbc1b25e72bbf6034b6fdfdf34f7cea8012c5eb8", [] @@ -478454,6 +478959,10 @@ ] }, "html-unsafe-methods": { + "WEB_FEATURES.yml": [ + "fb5c8374b7afe9166592f06009f69face0ab2da5", + [] + ], "resources": { "parseHTMLUnsafe-iframe-base-pushstate.html": [ "53b855968c866e842e8eb28090f676327757ce5b", @@ -479578,7 +480087,7 @@ [] ], "prefs.html.ini": [ - "7b78d216de80698ff10bfbb4837d1dccfb39015d", + "f5b5f403b22a462fc8e13e61163060895916ae64", [] ] } @@ -480472,7 +480981,7 @@ [] ], "css-mixins.idl": [ - "6629b3861f6a3fc02885081f02abbd548f00a3d2", + "86015e7dd0e48ebec4a251a43285126b25bf9737", [] ], "css-nav.idl": [ @@ -480576,7 +481085,7 @@ [] ], "dom.idl": [ - "814040a2c401c6aa30906806c2ead963508558cd", + "7b4fcb920e2ec67570580b538c13bbaa86985b74", [] ], "edit-context.idl": [ @@ -481292,7 +481801,7 @@ [] ], "webnn.idl": [ - "7c026d4c0a475c2b5cf1880e8339ce98841fd0b2", + "8dc3a0ebc14e42a993e3cc3c5c4e494a334be712", [] ], "webrtc-encoded-transform.idl": [ @@ -481328,7 +481837,7 @@ [] ], "webtransport.idl": [ - "24fe5b7e61b91d850e1278d8577117c6d2f3954a", + "eb456336081972b4989a6c549006708a293ec6b6", [] ], "webusb.idl": [ @@ -481392,7 +481901,7 @@ [] ], "xhr.idl": [ - "b4c27c8aca9ab3b44abbf39002fba9c687519257", + "6ff75fd27741369f9671509998a21aeb9de3761a", [] ] }, @@ -481785,7 +482294,7 @@ ] }, "lint.ignore": [ - "1d552f3468a236414c6c34bca22cb88ef11f09e8", + "65e22dccbc1d9cce01a6c570fe739e68d112df3e", [] ], "loading": { @@ -485819,7 +486328,7 @@ [] ], "digital-credentials-get.html": [ - "12a450a1ae41c806c6023d0ef17e3ae55236e931", + "543417f230a59b3d09705b20775a38cbabaf7a22", [] ], "nested-sandbox.html": [ @@ -489594,7 +490103,7 @@ [] ], "testharness.js": [ - "5b5410c8b2198e384a73f996d2d86c07c8fc747d", + "bd668be20f87c8ac8f802f556a2b0d4813b60bd7", [] ], "testharness.js.headers": [ @@ -489648,7 +490157,7 @@ [] ], "sethtml-tree-construction.sub.dat": [ - "d39447345f9fd3839c0737518743d1016e301e34", + "47cc159df1fbf8066da5392311ce36a481ef1c83", [] ], "sethtml-unsafety.sub.dat": [ @@ -489977,6 +490486,10 @@ "6531c8aec194dad6505bf7cc988be3299a1f1807", [] ], + "scroll-to-text-diretive-center-ref.html": [ + "b9a3a74ef36b2dfe12bf1e6b99da5d39a9f410e6", + [] + ], "scroll-to-text-fragment-after-DOMContentLoaded-target.html": [ "b7d517a7f6b2781f882d0f4804225354d8dd0ac8", [] @@ -493877,6 +494390,10 @@ "595096e0cace1237badd1137bbcee414c01e9c15", [] ], + "redirect-helper.sub.js": [ + "a17eaabe2430090ce0554fec480480a261ae41aa", + [] + ], "ruleset.py": [ "0a6cfde79ac28d5252fcb4d5711ce9c5ca8f0a49", [] @@ -494046,7 +494563,7 @@ [] ], "exec.html": [ - "1eebaa73d0b1ca05a91cbaf1353327da3851c7d7", + "9b8ededa8630f4a98b707e2fbab4b161a84953ce", [] ], "exec.py": [ @@ -494451,7 +494968,7 @@ [] ], "echo-cookie-header.py": [ - "f1599e3a89919adfe0a0de60515ef1d44a898190", + "0d84b0edd183c8bd0850c917010f3362fd8b69f6", [] ], "embedded_forwarder.js": [ @@ -494698,6 +495215,10 @@ [] ], "signatures": { + "accept-signature-script.py": [ + "a1c61f396d50332831d1af1d3749e2c790454a7a", + [] + ], "query-resource.py": [ "dea586937454298f137e9c34d8ecee2262b70c98", [] @@ -494708,7 +495229,7 @@ ], "tentative": { "helper.js": [ - "1258f3bef72a347c00f60999243813042809ffce", + "e5e00ec7b5318d5bbe5c8542458e61b4105c5c93", [] ] } @@ -495671,6 +496192,10 @@ "4b166e0cae0729babc69732c33fa7d5baaf19b20", [] ], + "pathlength-005-ref.html": [ + "b99474aa4667f94beace3d59465fa187a4f3a490", + [] + ], "reference": { "empty.svg": [ "0c7be4e2da4480937124138e7dee3e26bd018abe", @@ -507150,7 +507675,7 @@ [] ], "browsing_context.py": [ - "7f3f7c50e59569cf9c9e36ef86899c306b6987eb", + "f95196da1747b0586a2768f5b807b59a24fb7125", [] ], "input.py": [ @@ -507649,7 +508174,7 @@ [] ], "executorwebdriver.py": [ - "efde66a81f083f7e55f775ccd053b0c7c1a68a18", + "95667480afe7bd67a54f235428f12a45879bac5a", [] ], "executorwktr.py": [ @@ -508069,7 +508594,7 @@ ] }, "setup.py": [ - "36aa98f1d82579420294c69f0e61b79646fc6345", + "d66769f06303e92087567ce93443d20cd74bd961", [] ], "tests": { @@ -508364,7 +508889,7 @@ [] ], "request.py": [ - "087d6fbb490b68314267b90c03c9fc5e52c9cddf", + "9245b97fa50a4590fdef4057123296d877306fe3", [] ], "response.py": [ @@ -509333,11 +509858,11 @@ [] ], "setters_tests.json": [ - "efd548b6c88c57ccec02e244fac2b98e94d8cba5", + "e7072cd6afdb30de553eb39b1524a8aa1a527fcb", [] ], "toascii.json": [ - "02291962ebce4f0bdc7d5e6bf3d01e6c144e5acc", + "588ef150f9ce6a6f50630f08ccb46a6306cb3a71", [] ], "urltestdata-javascript-only.json": [ @@ -509345,7 +509870,7 @@ [] ], "urltestdata.json": [ - "214ed0852aa31236a6b7a975e31763de82911f9c", + "d1a06f6319d1bca3275d75d5433de3dc846d3322", [] ] }, @@ -509361,6 +509886,10 @@ } }, "urlpattern": { + "META.yml": [ + "ad348f6dfd778f953d8f55405b2ea3198dbff0d3", + [] + ], "WEB_FEATURES.yml": [ "cb82ba5cda2918be080e10ab8bbd4c145e05b790", [] @@ -509379,7 +509908,7 @@ [] ], "urlpatterntestdata.json": [ - "3d5ddce1eab21ee8eca63666cfe2e096903c397f", + "f92ab76b71df5ab42b729ebe366e381bd9e939af", [] ], "urlpatterntests.js": [ @@ -509493,7 +510022,7 @@ [] ], "aria-utils.js": [ - "5ed73b06e455265801f272bed4247671e909ef3c", + "ec53464c18fda38a1e26281a226d7ed8bd653d48", [] ], "manual.css": [ @@ -511966,7 +512495,7 @@ [] ], "videoFrame-utils.js": [ - "a4c761306c05d58880e408b30ef2b28f6d6f0cb6", + "f03d8f381475ea3e53f0a90adb7a6122021ceaeb", [] ], "vp8.webm": [ @@ -512002,7 +512531,7 @@ [] ], "__init__.py": [ - "ba982d1dc64ef5287d0e2e0c9a5d71a1b5cbc040", + "8e45c0f72651ed7b825458682fc04bc2e1a7be5a", [] ], "browser": { @@ -512264,6 +512793,18 @@ "4cb61f8820175e7c8208f448bc5c35d81a85b21f", [] ], + "file_dialog_opened": { + "__init__.py": [ + "27f5918b4c83a0d6cd0db4870b93a5d107b7a3ce", + [] + ], + "tentative": { + "__init__.py": [ + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + [] + ] + } + }, "perform_actions": { "__init__.py": [ "26fbd423ea4154ee68dd10fb67d1a396f7ddfd2b", @@ -512544,6 +513085,16 @@ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] ], + "capabilities": { + "unhandled_prompt_behavior": { + "file": { + "conftest.py": [ + "397b5a610eff8d9d15e69e8ea5b1b85c513f8d38", + [] + ] + } + } + }, "new": { "__init__.py": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", @@ -513501,7 +514052,7 @@ [] ], "utils_validation.js": [ - "4ee0a9fd25701881920273238642b89664080e49", + "77a6d79205b5365d9a92af7d1a2d39df144a0f3f", [] ] }, @@ -532503,10 +533054,10 @@ } ] ], - "request-event-ordering.any.js": [ - "89c45091f1d766ed2961d8dbe0f8d0318df7e406", + "request-event-ordering-large-mixed-with-small-values.any.js": [ + "46079437b549b886ae642f46b17d72e4ffcdd92b", [ - "IndexedDB/request-event-ordering.any.html", + "IndexedDB/request-event-ordering-large-mixed-with-small-values.any.html", { "script_metadata": [ [ @@ -532525,6 +533076,10 @@ "script", "resources/support.js" ], + [ + "script", + "resources/request-event-ordering-common.js" + ], [ "timeout", "long" @@ -532534,7 +533089,7 @@ } ], [ - "IndexedDB/request-event-ordering.any.serviceworker.html", + "IndexedDB/request-event-ordering-large-mixed-with-small-values.any.serviceworker.html", { "script_metadata": [ [ @@ -532553,6 +533108,10 @@ "script", "resources/support.js" ], + [ + "script", + "resources/request-event-ordering-common.js" + ], [ "timeout", "long" @@ -532562,7 +533121,7 @@ } ], [ - "IndexedDB/request-event-ordering.any.sharedworker.html", + "IndexedDB/request-event-ordering-large-mixed-with-small-values.any.sharedworker.html", { "script_metadata": [ [ @@ -532581,6 +533140,10 @@ "script", "resources/support.js" ], + [ + "script", + "resources/request-event-ordering-common.js" + ], [ "timeout", "long" @@ -532590,7 +533153,7 @@ } ], [ - "IndexedDB/request-event-ordering.any.worker.html", + "IndexedDB/request-event-ordering-large-mixed-with-small-values.any.worker.html", { "script_metadata": [ [ @@ -532609,6 +533172,403 @@ "script", "resources/support.js" ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "request-event-ordering-large-then-small-values.any.js": [ + "d7386b384128d699a7a852743bcfb9d9f15935df", + [ + "IndexedDB/request-event-ordering-large-then-small-values.any.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "IndexedDB/request-event-ordering-large-then-small-values.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "IndexedDB/request-event-ordering-large-then-small-values.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "IndexedDB/request-event-ordering-large-then-small-values.any.worker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "request-event-ordering-large-values.any.js": [ + "095ab82df015b1efcbf782f0ddc5c5aa9fcb8624", + [ + "IndexedDB/request-event-ordering-large-values.any.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "IndexedDB/request-event-ordering-large-values.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "IndexedDB/request-event-ordering-large-values.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "IndexedDB/request-event-ordering-large-values.any.worker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "request-event-ordering-small-values.any.js": [ + "05b0ce66c02762a1f8fb3f3b8fee376fa76d435a", + [ + "IndexedDB/request-event-ordering-small-values.any.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "IndexedDB/request-event-ordering-small-values.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "IndexedDB/request-event-ordering-small-values.any.sharedworker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "IndexedDB/request-event-ordering-small-values.any.worker.html", + { + "script_metadata": [ + [ + "title", + "IndexedDB: request result events are delivered in order" + ], + [ + "global", + "window,worker" + ], + [ + "script", + "resources/support-promises.js" + ], + [ + "script", + "resources/support.js" + ], + [ + "script", + "resources/request-event-ordering-common.js" + ], [ "timeout", "long" @@ -543970,16 +544930,7 @@ ] ], "comp_name_from_content.html": [ - "32a9a7b3c43b0f25fc09045c1a630a71c784b265", - [ - null, - { - "testdriver": true - } - ] - ], - "comp_name_from_content.tentative.html": [ - "3239a1dcf3106ff49c4ebb569140dd6445dbbda3", + "6626eecb0ddd8f6e5709350a93cfd384994efff4", [ null, { @@ -544060,71 +545011,8 @@ }, "ai": { "language_detection": { - "capabilities.tentative.https.any.js": [ - "3eca5119a378741fc48adb44f4bd83ba7a7e06bd", - [ - "ai/language_detection/capabilities.tentative.https.any.html", - { - "script_metadata": [ - [ - "title", - "capabilities test" - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "ai/language_detection/capabilities.tentative.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "capabilities test" - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "ai/language_detection/capabilities.tentative.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "title", - "capabilities test" - ], - [ - "global", - "window,worker" - ] - ] - } - ], - [ - "ai/language_detection/capabilities.tentative.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "capabilities test" - ], - [ - "global", - "window,worker" - ] - ] - } - ] - ], "detector.https.tentative.any.js": [ - "2fd91c245bbe16889250abc874540be2f3ef972f", + "337f11d338d495a46a6926308970768f99ac2526", [ "ai/language_detection/detector.https.tentative.any.html", { @@ -544136,6 +545024,10 @@ [ "global", "window,worker" + ], + [ + "script", + "../resources/util.js" ] ] } @@ -544151,6 +545043,10 @@ [ "global", "window,worker" + ], + [ + "script", + "../resources/util.js" ] ] } @@ -544166,6 +545062,10 @@ [ "global", "window,worker" + ], + [ + "script", + "../resources/util.js" ] ] } @@ -544181,6 +545081,10 @@ [ "global", "window,worker" + ], + [ + "script", + "../resources/util.js" ] ] } @@ -544272,7 +545176,7 @@ ] ], "ai_translator_translate.tentative.https.any.js": [ - "4dfbf874a00c19695cac2c9395671d2eb7a3ce18", + "729cb04fb76e94d9bf8eb40e463b840931b0e3a7", [ "ai/translator/ai_translator_translate.tentative.https.any.html", { @@ -556784,7 +557688,7 @@ ] ], "compute_pressure_detached_iframe.https.window.js": [ - "78654626fe1b775aa074850b2e7daf0beacec326", + "120e754cb6f1a552df8c0037931092b543414cd7", [ "compute-pressure/compute_pressure_detached_iframe.https.window.html?globalScope=window", { @@ -557042,7 +557946,7 @@ ] ], "compute_pressure_duplicate_updates.https.window.js": [ - "e6f4ed10454a28bc276e839dd6a54f75769d565c", + "231d4afc345d50e59a2612fc3c343af3a5a5a8c2", [ "compute-pressure/compute_pressure_duplicate_updates.https.window.html?globalScope=dedicated_worker", { @@ -563786,6 +564690,27 @@ {} ] ], + "script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html": [ + "192dadee77025bf5fcea11317997a6cc061c1eed", + [ + null, + {} + ] + ], + "script-src-trusted_types_eval_with_require_trusted_types_eval.html": [ + "06fae6d623baa223828417fad725304862ba11f3", + [ + null, + {} + ] + ], + "script-src-trusted_types_eval_without_require_trusted_types_eval.html": [ + "f8481194f9e363a6532f258b6eb2d283199b55ec", + [ + null, + {} + ] + ], "script-src-wildcards-disallowed.html": [ "7bf3d89b6726dbec7ed98e8176be3f11da9e1b86", [ @@ -570967,6 +571892,13 @@ {} ] ], + "position-try-order-inset-modified-containing-block.html": [ + "9a859c96bb4c311e61f1ef3d1b6af109b803ad89", + [ + null, + {} + ] + ], "position-try-order-position-area.html": [ "4ffbbd0b71ded8991b89b8ae69ac68383560da15", [ @@ -575096,7 +576028,7 @@ ] ], "system-color-consistency.html": [ - "a3849c5781b1c37f8a5ce9277b6eba7937070798", + "fd73d1ab2f28984b3a229d0fb6b60718f9146f23", [ null, {} @@ -575206,28 +576138,28 @@ }, "css-color-hdr": { "computed.html": [ - "48076da6b6a9f7eece37c6e701ef1a7c5ed96e91", + "47021144087d8fe6976ee7a06a187e85665b8fdf", [ null, {} ] ], "inheritance.html": [ - "4f7a44a77290736703b170425f5b15e0ca445039", + "6f893b6b68a8cd450871b18143a6f59b4345d402", [ null, {} ] ], "interpolation.html": [ - "62e079f6366d7979e130e72dfec8d7f9fede07b7", + "41ee84210196946b222f74c6ac964d20e724382e", [ null, {} ] ], "parsing.html": [ - "caf3e86a27c00862902e107b3219338633c795d6", + "e165a60d7edb9f7599608f6d4749ca640bfa9635", [ null, {} @@ -585404,7 +586336,7 @@ ] ], "gradient-interpolation-method-invalid.html": [ - "336a387e3c212bea459e8a3834ca54537b6d2c9d", + "a53d5a1b770ab344f6f04b331e8435f616de8eb5", [ null, {} @@ -587374,7 +588306,7 @@ } }, "css-mixins": { - "at-function-cssom.tentative.html": [ + "at-function-cssom.html": [ "dbf157b3c2f40e191a6410787189eed2f42af92d", [ null, @@ -587402,6 +588334,13 @@ {} ] ], + "dashed-function-named-arg.tentative.html": [ + "b404c6887fa33879c23c8d2d90821390cd5c87c5", + [ + null, + {} + ] + ], "dashed-function-parsing.html": [ "f67102b0f4448c07f781e7cafb8e50a002ad628f", [ @@ -587409,6 +588348,13 @@ {} ] ], + "dashed-function-standard-property.html": [ + "359377b75297e0c6e016a123a85dfac9549c5c4b", + [ + null, + {} + ] + ], "function-attr.html": [ "69cb69723ff41bcfe6fcd745f0c3d6b74a1ebd81", [ @@ -588267,6 +589213,15 @@ } ] ], + "column-scroll-marker-focus-001.html": [ + "2b566efc53c3287e76b07b8574b375e2f6356b3e", + [ + null, + { + "testdriver": true + } + ] + ], "column-updates-computed-style.html": [ "d741b8cf915a189e13a7f7c2738bb2880aa4e852", [ @@ -590757,7 +591712,7 @@ ] ], "var-reference-registered-properties.html": [ - "f8f094c9bc24eadd56e152b4c6d1fd0fe32a00bc", + "5b49c912ec530788f92647d968e791d6bd2037a7", [ null, {} @@ -595277,8 +596232,8 @@ {} ] ], - "keyword-sizes-for-intrinsic-contributions.tentative.html": [ - "5f135d8181b023134eb24e5ec34957e3a25e6765", + "keyword-sizes-for-intrinsic-contributions.html": [ + "5a2a9ab615368d1cc3181cf84d9ebdefaf79368a", [ null, {} @@ -604501,7 +605456,7 @@ ] ], "attr-all-types.html": [ - "8dce4feb5f4f32e69d19b25c203689f8667c0e62", + "5ea11a68f8e26eaf13b0dd7b6b7fec841aca2c2b", [ null, {} @@ -604724,27 +605679,6 @@ {} ] ], - "calc-sibling-function-in-shadow-dom.html": [ - "92fb6ce3351b9c37b3616445b4f83969a5f30b63", - [ - null, - {} - ] - ], - "calc-sibling-function-parsing.html": [ - "dfddf84a061556d3c7c08ac9eaae134922314439", - [ - null, - {} - ] - ], - "calc-sibling-function.html": [ - "5fe6e00a10b1eedecb86e85898b0784a570e1e74", - [ - null, - {} - ] - ], "calc-size": { "animation": { "calc-size-height-interpolation.html": [ @@ -605013,7 +605947,7 @@ ] ], "clamp-length-serialize.html": [ - "987d028ee87126d98328cbaef12b1c0b504a1a71", + "91560d7899d4b01f4493610d9aa7c1db0cdd97f4", [ null, {} @@ -605516,13 +606450,6 @@ {} ] ], - "sibling-function-invalidation.html": [ - "74f4995f5f72413330e577a3a4c72ce095479225", - [ - null, - {} - ] - ], "signed-zero.html": [ "6ede4bbb0ecb67ea40ec26e1f41c516d2e9d3a88", [ @@ -605572,6 +606499,64 @@ {} ] ], + "tree-counting": { + "calc-sibling-function-in-shadow-dom.html": [ + "92fb6ce3351b9c37b3616445b4f83969a5f30b63", + [ + null, + {} + ] + ], + "calc-sibling-function-parsing.html": [ + "dfddf84a061556d3c7c08ac9eaae134922314439", + [ + null, + {} + ] + ], + "calc-sibling-function.html": [ + "5fe6e00a10b1eedecb86e85898b0784a570e1e74", + [ + null, + {} + ] + ], + "sibling-function-container-query.html": [ + "addcf0b2d48f5c444a9f93264a2136342c4b48d6", + [ + null, + {} + ] + ], + "sibling-function-descriptors.tentative.html": [ + "d31d4acf499fb62f777817f24186e394626d507e", + [ + null, + {} + ] + ], + "sibling-function-invalidation.html": [ + "3c75c78530dca4cfb30dfc0c17c0ad2049cfb087", + [ + null, + {} + ] + ], + "sibling-function-media-query.tentative.html": [ + "c76ac449e48493c396d9aea0ab8f04dde27092c5", + [ + null, + {} + ] + ], + "tree-scoped-sibling-function.html": [ + "979466bb7cf3d5e5c4e9a2681f02f969858953e6", + [ + null, + {} + ] + ] + }, "update-subpixel-rem-unit.html": [ "98d4f00f92ae90165dd9b0c82cf0496523bc9c2a", [ @@ -606701,8 +607686,15 @@ ], "zoom": { "parsing": { + "zoom-computed-with-sign-expression.html": [ + "8029fd3a65e542749792a48100161f18fd25fee9", + [ + null, + {} + ] + ], "zoom-computed.html": [ - "b7484169f74b8be8afb7cb8469b51d3acc5c48a5", + "c6b4afc92a364bf52be9ba3b38e8292bc397d4e8", [ null, {} @@ -612972,7 +613964,7 @@ ] ], "form-reset-callback.html": [ - "8b8497f8b6c4268a0fcd10baeb39bda15a09ac0e", + "5bfd93b951341698bc8942db6802e78af3b1b88e", [ null, {} @@ -613968,70 +614960,119 @@ }, "device-bound-session-credentials": { "clear-site-data.https.html": [ - "2d6e42977d1b98091136a5511d349e9754728d5b", + "94f2d96a358138054c427360d3301f875496876c", [ null, {} ] ], "create-session.https.html": [ - "cddfd1797978d80f5344740b0224a671acf550b8", + "13e17de37441b4d86b98787718af6477fd27604f", + [ + null, + {} + ] + ], + "credentials-matching.https.html": [ + "28af9153db41aa04b9cba84903b3b75c7986be33", + [ + null, + {} + ] + ], + "include-site.https.html": [ + "6eaf522c73ba6d6378c60f8460fb3497cd8df424", + [ + null, + {} + ] + ], + "multiple-credentials.https.html": [ + "57fe9294a7737d5817d127baa29f445bfdd3d1cb", + [ + null, + {} + ] + ], + "multiple-registrations.https.html": [ + "d5563eb4e014f74649ce6850871d428327eb0348", [ null, {} ] ], "not-secure-connection.html": [ - "93736c0b5966ea627f0df45c4bf59dec724c4c7e", + "b2c99b139c8d983dfdf498a6c28aab2f1540b218", + [ + null, + {} + ] + ], + "refresh-does-not-send-challenge.https.html": [ + "d882cfe571751191184c442d737bc33260feb225", [ null, {} ] ], "refresh-replaces-config.https.html": [ - "1ac8096b5de1d4784cb43711357ade8ff97f5889", + "b52b625caef20db945a374d1c1310e03fd829c2f", [ null, {} ] ], "refresh-with-continue-false.https.html": [ - "9ebec2209775511a3b34c47aa1c1760a6d0e2d5c", + "7814a49687c5441d7a552bb4329744822d78d5aa", [ null, {} ] ], "registration-sends-challenge.https.html": [ - "36aeb631fcd40ae76db6cbb4c380162bd5354d91", + "d95fa429153219fdafe5cdc8ca33a4cf62d2601a", + [ + null, + {} + ] + ], + "resolving-urls.https.html": [ + "e502eb4b777a746fe653cfdc1582b4c6504bb4be", [ null, {} ] ], "session-cookie-has-no-attributes.https.html": [ - "9e5264193078fec1de3304414446c1a3af9459cf", + "734b4d1a69e636ceecfbbd92280dd5a9962011bd", [ null, {} ] ], "set-authorization.https.html": [ - "3cfe23331d1826c32c2306de0b1d4c8835f122c3", + "26969d40b75950361cbc0cb46c13aff607dd5640", [ null, {} ] ], "set-early-challenge.https.html": [ - "112c87d4aee807520bdc50cd97c129e290fefd98", + "a6d032f9fe1ec13617f39bd180b68b7642d01d60", [ null, {} ] ], "set-scope-origin.https.html": [ - "2105e8745a38897bbf1656631ff166c42bf056ed", + "817d5cdaf7f94bf0735fd0ede7aaab03b12e1c3e", + [ + null, + {} + ] + ], + "set-scope-specification.https.html": [ + "8ec125d7aa481f2e6d90bd5e6bd7d460d40bec25", [ null, {} @@ -614170,7 +615211,7 @@ ] ], "default-permissions-policy.https.sub.html": [ - "b4696293a287cfa8ad027e3f0116829052cd267f", + "742a94ec4eb8ff079b1b24f17179962818fb3868", [ null, { @@ -614186,7 +615227,7 @@ ] ], "disabled-by-permissions-policy.https.sub.html": [ - "5c634b1b66d7974f41a2c803037231c0e58f403a", + "c32f73aa309b64e5785d67b3565077a8ac6b8424", [ null, { @@ -614195,7 +615236,7 @@ ] ], "enabled-on-self-origin-by-permissions-policy.https.sub.html": [ - "ec70461e3857b5c1111d3b947c45527386569ff6", + "d530f4920a395b0a612964a32b60fec65833054e", [ null, { @@ -617922,7 +618963,7 @@ ] ], "ParentNode-querySelectors-space-and-dash-attribute-value.html": [ - "e08c6e6db13d472b852b1dc19e05dc067e7a2fc4", + "7fe4e74ae9666be684245348d061cbc15f68c14a", [ null, {} @@ -618407,284 +619448,284 @@ ] }, "moveBefore": { + "Node-moveBefore.html": [ + "845c5986eaf3380278e6a2f82176327ccfd0bf08", + [ + null, + {} + ] + ], + "continue-css-animation-left.html": [ + "8c7f73e3c933ce6f6a9749281707c62e0a090d7d", + [ + null, + {} + ] + ], + "continue-css-animation-transform.html": [ + "e7a285893aa0e4a538ec29af944f1d0761d93f0a", + [ + null, + {} + ] + ], + "continue-css-transition-left-pseudo.html": [ + "fa51b168879f4ef12f7521a9a4e1a1492d340815", + [ + null, + {} + ] + ], + "continue-css-transition-left.html": [ + "2b8e04b26e469b38bb8d7c3750be9b54025f3060", + [ + null, + {} + ] + ], + "continue-css-transition-transform-pseudo.html": [ + "d02c72561c1101ce9474cc60b9295e46c9e499df", + [ + null, + {} + ] + ], + "continue-css-transition-transform.html": [ + "f09edca144978948e490eeccbc5a0cb915c8ab58", + [ + null, + {} + ] + ], + "css-animation-commit-styles.html": [ + "86bb7c33e4261ec04740824775249fdd7cbdc9b2", + [ + null, + {} + ] + ], + "css-transition-cross-document.html": [ + "de30e9e9db9ce992c7fb0ed61d0001ad1aa34de7", + [ + null, + {} + ] + ], + "css-transition-cross-shadow.html": [ + "80f509707e597227a3ed48cb14489cf32a399ad2", + [ + null, + {} + ] + ], + "css-transition-to-disconnected-document.html": [ + "f5f8e1ccc8d468f74ff6eb2462b9ce9dc78dad14", + [ + null, + {} + ] + ], + "css-transition-trigger.html": [ + "0cb5608a695e000dc54b9fa2f73c49fc16ebcd98", + [ + null, + {} + ] + ], + "custom-element-move-reactions.html": [ + "a561180f9457c00a615ba6464751f4bd1ec825dd", + [ + null, + {} + ] + ], + "fire-focusin-focusout.html": [ + "5bc24ae96935a1d5fa5ea9d7f66a87a07b14cf6b", + [ + null, + {} + ] + ], + "focus-within.html": [ + "18d8c93b9982dd96a14c5548257292ad7b76c315", + [ + null, + {} + ] + ], + "fullscreen-preserve.html": [ + "810eeac9af90f80e18ed149e875b3656f81b3a1d", + [ + null, + { + "testdriver": true + } + ] + ], + "iframe-document-preserve.window.js": [ + "4f9fa7540f69067549872615d92a05ed783f18f3", + [ + "dom/nodes/moveBefore/iframe-document-preserve.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ] + ] + } + ] + ], + "listed-form-element-reset.html": [ + "29f524dd9e7de2f9036dd3f69f8268523dfd6d2e", + [ + null, + {} + ] + ], + "live-range-updates.html": [ + "7f73b37e6a8231ca8c01884bb11a974156e392ef", + [ + null, + {} + ] + ], + "modal-dialog.html": [ + "fa9eeae85eb13daf948c20406b1b907575c1c1f6", + [ + null, + {} + ] + ], + "moveBefore-shadow-inside.html": [ + "239b08ee95b76d9626001756c59cf9ac9e9da634", + [ + null, + {} + ] + ], + "moveBefore-shadow-root.html": [ + "0a198a90bbc21f8ad0087470b8118804a615cb28", + [ + null, + {} + ] + ], + "mutation-events.html": [ + "4bba1efa8e14b986bb51144062e144366d4af19d", + [ + null, + {} + ] + ], + "mutation-observer.html": [ + "a2bf4c4246f4fe1732e60df536d69916d80066fb", + [ + null, + {} + ] + ], + "nonce.html": [ + "50bbdca2ecd510720cba09ade9f8f14a0d06c952", + [ + null, + {} + ] + ], + "object-crash-regression.html": [ + "def2b0391ffa4f3c074bca212904a95966e06a8f", + [ + null, + {} + ] + ], + "pointer-events.html": [ + "a5d34fe40051d934a0b2792b8b7a3c9132cdf5c5", + [ + null, + { + "testdriver": true + } + ] + ], + "popover-preserve.html": [ + "5487bd4aec51e37eb0fb54e3e63d8a510b0f923c", + [ + null, + {} + ] + ], + "preserve-render-blocking-script.html": [ + "7b4f508b5c91b19949c8dd0d7334337529a30879", + [ + null, + { + "timeout": "long" + } + ] + ], + "preserve-render-blocking-style.html": [ + "aa715c8b1447690ecdca2d7bf2e3dba965b4115b", + [ + null, + { + "timeout": "long" + } + ] + ], + "relevant-mutations.html": [ + "8cf4ba668c7760c1fbfec83c96eca7d75f703c26", + [ + null, + {} + ] + ], + "select-option-optgroup.html": [ + "2f310216371321da9f7ac82c63b29bdc6d0beeb0", + [ + null, + {} + ] + ], + "selection-preserve.html": [ + "cb49e19d72978e4ec7e97a7077f96b36779191e0", + [ + null, + { + "testdriver": true + } + ] + ], + "slotchange-events.html": [ + "eee000f481b402c9ba23fbb2936815c55cfc8448", + [ + null, + {} + ] + ], + "style-applies.html": [ + "39f9a5feaac3a006320cc055eab05a887e4e483c", + [ + null, + {} + ] + ], "tentative": { - "Node-moveBefore.html": [ - "a1147c4c1d131e3f497c0cfe2c999ad16353ae55", - [ - null, - {} - ] - ], - "continue-css-animation-left.html": [ - "8c7f73e3c933ce6f6a9749281707c62e0a090d7d", - [ - null, - {} - ] - ], - "continue-css-animation-transform.html": [ - "e7a285893aa0e4a538ec29af944f1d0761d93f0a", - [ - null, - {} - ] - ], - "continue-css-transition-left-pseudo.html": [ - "fa51b168879f4ef12f7521a9a4e1a1492d340815", - [ - null, - {} - ] - ], - "continue-css-transition-left.html": [ - "2b8e04b26e469b38bb8d7c3750be9b54025f3060", - [ - null, - {} - ] - ], - "continue-css-transition-transform-pseudo.html": [ - "d02c72561c1101ce9474cc60b9295e46c9e499df", - [ - null, - {} - ] - ], - "continue-css-transition-transform.html": [ - "f09edca144978948e490eeccbc5a0cb915c8ab58", - [ - null, - {} - ] - ], - "css-animation-commit-styles.html": [ - "86bb7c33e4261ec04740824775249fdd7cbdc9b2", - [ - null, - {} - ] - ], - "css-transition-cross-document.html": [ - "de30e9e9db9ce992c7fb0ed61d0001ad1aa34de7", - [ - null, - {} - ] - ], - "css-transition-cross-shadow.html": [ - "80f509707e597227a3ed48cb14489cf32a399ad2", - [ - null, - {} - ] - ], - "css-transition-to-disconnected-document.html": [ - "f5f8e1ccc8d468f74ff6eb2462b9ce9dc78dad14", - [ - null, - {} - ] - ], - "css-transition-trigger.html": [ - "0cb5608a695e000dc54b9fa2f73c49fc16ebcd98", - [ - null, - {} - ] - ], - "custom-element-move-reactions.html": [ - "a561180f9457c00a615ba6464751f4bd1ec825dd", - [ - null, - {} - ] - ], - "fire-focusin-focusout.html": [ - "5bc24ae96935a1d5fa5ea9d7f66a87a07b14cf6b", - [ - null, - {} - ] - ], "focus-preserve.html": [ "a00e8b77880697a51d4418fc15637b1dcef6914b", [ null, {} ] - ], - "focus-within.html": [ - "18d8c93b9982dd96a14c5548257292ad7b76c315", - [ - null, - {} - ] - ], - "fullscreen-preserve.html": [ - "810eeac9af90f80e18ed149e875b3656f81b3a1d", - [ - null, - { - "testdriver": true - } - ] - ], - "iframe-document-preserve.window.js": [ - "4f9fa7540f69067549872615d92a05ed783f18f3", - [ - "dom/nodes/moveBefore/tentative/iframe-document-preserve.window.html", - { - "script_metadata": [ - [ - "script", - "/common/get-host-info.sub.js" - ] - ] - } - ] - ], - "listed-form-element-reset.html": [ - "29f524dd9e7de2f9036dd3f69f8268523dfd6d2e", - [ - null, - {} - ] - ], - "live-range-updates.html": [ - "7f73b37e6a8231ca8c01884bb11a974156e392ef", - [ - null, - {} - ] - ], - "modal-dialog.html": [ - "fa9eeae85eb13daf948c20406b1b907575c1c1f6", - [ - null, - {} - ] - ], - "moveBefore-shadow-inside.html": [ - "239b08ee95b76d9626001756c59cf9ac9e9da634", - [ - null, - {} - ] - ], - "moveBefore-shadow-root.html": [ - "0a198a90bbc21f8ad0087470b8118804a615cb28", - [ - null, - {} - ] - ], - "mutation-events.html": [ - "4bba1efa8e14b986bb51144062e144366d4af19d", - [ - null, - {} - ] - ], - "mutation-observer.html": [ - "a2bf4c4246f4fe1732e60df536d69916d80066fb", - [ - null, - {} - ] - ], - "nonce.html": [ - "50bbdca2ecd510720cba09ade9f8f14a0d06c952", - [ - null, - {} - ] - ], - "object-crash-regression.html": [ - "def2b0391ffa4f3c074bca212904a95966e06a8f", - [ - null, - {} - ] - ], - "pointer-events.html": [ - "a5d34fe40051d934a0b2792b8b7a3c9132cdf5c5", - [ - null, - { - "testdriver": true - } - ] - ], - "popover-preserve.html": [ - "5487bd4aec51e37eb0fb54e3e63d8a510b0f923c", - [ - null, - {} - ] - ], - "preserve-render-blocking-script.html": [ - "7b4f508b5c91b19949c8dd0d7334337529a30879", - [ - null, - { - "timeout": "long" - } - ] - ], - "preserve-render-blocking-style.html": [ - "aa715c8b1447690ecdca2d7bf2e3dba965b4115b", - [ - null, - { - "timeout": "long" - } - ] - ], - "relevant-mutations.html": [ - "8cf4ba668c7760c1fbfec83c96eca7d75f703c26", - [ - null, - {} - ] - ], - "select-option-optgroup.html": [ - "2f310216371321da9f7ac82c63b29bdc6d0beeb0", - [ - null, - {} - ] - ], - "selection-preserve.html": [ - "cb49e19d72978e4ec7e97a7077f96b36779191e0", - [ - null, - { - "testdriver": true - } - ] - ], - "slotchange-events.html": [ - "eee000f481b402c9ba23fbb2936815c55cfc8448", - [ - null, - {} - ] - ], - "style-applies.html": [ - "39f9a5feaac3a006320cc055eab05a887e4e483c", - [ - null, - {} - ] - ], - "throws-exception.html": [ - "34123c72dfd1bf8617f716cf755bd4d9e34e0272", - [ - null, - {} - ] ] - } + }, + "throws-exception.html": [ + "34123c72dfd1bf8617f716cf755bd4d9e34e0272", + [ + null, + {} + ] + ] }, "prepend-on-Document.html": [ "1d6d43a46392650796cbcaae413f7ad630633a57", @@ -619499,6 +620540,13 @@ ] ], "xslt": { + "document-function.window.js": [ + "a01f3b37c945d0fcded4a0853d32e97d60bb9696", + [ + "dom/xslt/document-function.window.html", + {} + ] + ], "functions.tentative.window.js": [ "81240022dc68a8296474fcea696cdde3b66057fd", [ @@ -623691,7 +624739,7 @@ ] ], "styling-commands.html": [ - "2afaf9212ac6439606617e99f4d1be681ff1e853", + "40390c642794e4cdaba1d34d09c76cd1dfc1968a", [ "editing/plaintext-only/styling-commands.html?styleWithCSS=false", { @@ -667440,7 +668488,7 @@ ] ], "server-response.https.window.js": [ - "5374adb164a7e8a18612be95d7dc4daf924b7156", + "d4eaf0d25123298a696f0116cb54c6fe144038d4", [ "fledge/tentative/server-response.https.window.html?1-6", { @@ -667540,6 +668588,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -667644,6 +668696,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -667748,6 +668804,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -667852,6 +668912,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -667956,6 +669020,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668060,6 +669128,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668164,6 +669236,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668268,6 +669344,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668372,6 +669452,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668476,6 +669560,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668580,6 +669668,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668684,6 +669776,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668788,6 +669884,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668892,6 +669992,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -668996,6 +670100,118 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" + ] + ], + "timeout": "long" + } + ], + [ + "fledge/tentative/server-response.https.window.html?67-70", + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/ba-fledge-util.sub.js" + ], + [ + "script", + "resources/fledge-util.sub.js" + ], + [ + "script", + "third_party/cbor-js/cbor.js" + ], + [ + "script", + "/common/subset-tests.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?1-6" + ], + [ + "variant", + "?7-10" + ], + [ + "variant", + "?11-14" + ], + [ + "variant", + "?15-18" + ], + [ + "variant", + "?19-22" + ], + [ + "variant", + "?23-26" + ], + [ + "variant", + "?27-30" + ], + [ + "variant", + "?31-34" + ], + [ + "variant", + "?35-38" + ], + [ + "variant", + "?39-42" + ], + [ + "variant", + "?43-46" + ], + [ + "variant", + "?47-50" + ], + [ + "variant", + "?51-54" + ], + [ + "variant", + "?55-58" + ], + [ + "variant", + "?59-62" + ], + [ + "variant", + "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -669100,6 +670316,10 @@ [ "variant", "?63-66" + ], + [ + "variant", + "?67-70" ] ], "timeout": "long" @@ -675157,6 +676377,15 @@ ] ] }, + "hsts": { + "only-top-level-navigation-hsts-upgrade.tentative.sub.html": [ + "be891d05c01e04a961842557ee5a8fb0e8941f46", + [ + null, + {} + ] + ] + }, "html": { "anonymous-iframe": { "anonymous-iframe-popup.tentative.https.window.js": [ @@ -691738,7 +692967,7 @@ ] ], "2d.text.measure.text-clusters-split.tentative.html": [ - "63c7cce72be7c1ede567c2f00001d7a57addadbc", + "e4f881d03ad9aea16757fa9bcb5b2ee7605e3b53", [ null, {} @@ -705677,14 +706906,14 @@ ] ], "2d.text.measure.text-clusters-split.tentative.html": [ - "6a5fd475795e140ff8b8533b8d070baf97f0ebfe", + "cf24a873c31398700cb466fa31a2cb111bf608e3", [ null, {} ] ], "2d.text.measure.text-clusters-split.tentative.worker.js": [ - "f98c323e0e2311a25dbb2b90a192ccf6f3c8968d", + "e8d7519b48abb0b8866c9506247bac94d4d914dd", [ "html/canvas/offscreen/text/2d.text.measure.text-clusters-split.tentative.worker.html", {} @@ -713224,6 +714453,13 @@ } ] ], + "hidden-until-found-idl.html": [ + "dfeee855dcbfad4533f1aedffe8c5ab77a4d6ec3", + [ + null, + {} + ] + ], "hidden-until-found-text-fragment.html": [ "05220f7ce11b5c4d59d20904d2c6303c2107f25c", [ @@ -718067,7 +719303,7 @@ ] ], "load-removes-queued-error-event.html": [ - "54d5c28dad55eae515516ecc6f29d1997f19d329", + "f7cfabf64b620f4b5c91ee2f94bcbae367d25f90", [ null, {} @@ -721544,7 +722780,7 @@ ], "current-pixel-density": { "basic.html": [ - "b2d3b53b55814850cf10029391876a6ff0001eb5", + "f7d47b3640dfc03516aafcb744c9e9d32295e452", [ null, {} @@ -722005,6 +723241,13 @@ {} ] ], + "naturalWidth-naturalHeight.html": [ + "19aa4b9344f9040ac9092c8b415267f5f5815cf2", + [ + null, + {} + ] + ], "non-active-document.html": [ "6072138cb387d98e3bc8ae86971e424fe7061194", [ @@ -722137,6 +723380,13 @@ {} ] ], + "source-relevant-mutations.html": [ + "88ea61407f9dabdc0ca4c837271ebe027dd51487", + [ + null, + {} + ] + ], "srcset": { "avoid-reload-on-resize.html": [ "52366dcaa7f7638b27adabe1b1007c5baca98580", @@ -724699,7 +725949,7 @@ ] ], "select-events.tentative.html": [ - "28abf1534c1ccb7e4ad93e26987e78652c428459", + "2a9280e1ae886c3091eaf07a09547b31e4a8707a", [ null, { @@ -724873,7 +726123,7 @@ ] ], "select-picker-starting-style.tentative.html": [ - "c653016875a6455367d337a9e914a7d21bac0dbb", + "2be9f388975aa59c8a226df07673e8702bb2664f", [ null, { @@ -726564,7 +727814,7 @@ ] ], "popover-focus-2.html": [ - "3c1c6bed95cda4da8c068a69d5b509def9752b2d", + "6f361698f54e7ceee7aabaa08c5d0f13d190d8d4", [ null, { @@ -726621,6 +727871,16 @@ } ] ], + "popover-light-dismiss-command.html": [ + "b0149f8925f4f687861503603c0ac40f68078560", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], "popover-light-dismiss-flat-tree-nested.html": [ "ef3b35aea408e9c59f6d371ca83576268c34141c", [ @@ -739760,7 +741020,7 @@ ] ], "textarea-insertfrompaste-type-inputevent-data-withnewline-atend.html": [ - "f126d4f2531ec12bef089665866e9272d722d71c", + "58c004b53eb32e75ecade0a30507554e219cb152", [ null, { @@ -739769,7 +741029,7 @@ ] ], "textarea-insertfrompaste-type-inputevent-data-withnewline-atstart.html": [ - "b6269e72834eeebc3b588b10debc8ebc45616d28", + "25728b282915e47e4bd332e2e06db8477c7c4669", [ null, { @@ -739852,6 +741112,13 @@ {} ] ], + "clip-path-animation.html": [ + "867b025d8c3b1af88dd3af851e1ba3b1fe991348", + [ + null, + {} + ] + ], "clip-path.html": [ "89f6d865b27df8c5ab340309fe97897e6974b1d2", [ @@ -746770,7 +748037,7 @@ ] ], "VideoTrackGenerator-with-window-tracks.https.html": [ - "dfe000fbddb6cddd52538dfdcb686c2357ca1ff7", + "1c5560f6964aac0c6506a531619392a318756c8b", [ null, {} @@ -776245,6 +777512,13 @@ {} ] ], + "sanitizer-removeUnsafe.tentative.html": [ + "7ad8253ad5fdec29b79c590e50e9c0d211d17031", + [ + null, + {} + ] + ], "sanitizer-unknown.tentative.html": [ "37bb8c832274c25e6d0eca8df859b2a915943e14", [ @@ -778221,7 +779495,7 @@ ] ], "onchange-event-subframe.html": [ - "6eb986b43804ddd91ccd07476dc373684c4727a6", + "2d9529d1dcccad558ada1dbcb6c37a20cc1f9e93", [ null, { @@ -780577,6 +781851,15 @@ {} ] ], + "stringifier_editable_element.tentative.html": [ + "9dedd7f7fa1d6e8b3dc2eb3aca3135e997450c94", + [ + null, + { + "testdriver": true + } + ] + ], "textcontrols": { "focus.html": [ "8c2e0b55914e765bb8b56154aa6638dd0d9f863f", @@ -787863,6 +789146,13 @@ {} ] ], + "clear-prefetch-cache-after-clear-site-data-cache.https.html": [ + "c5796e48b768868f084ae5ad97a63fca5abf6992", + [ + null, + {} + ] + ], "cookie-indices.https.html": [ "f5fac65822ed7433ffd803ddf74ed91e4b69a4bb", [ @@ -788536,10 +789826,64 @@ } ] ], - "redirect-url.sub.https.html": [ - "02bb35349ff9f72e74d0244473447b9ea89ce9a4", + "redirect-middle-of-prefetch.https.html": [ + "2afa5c82a76a1022a63499bae4f6426ce126c8c8", [ - null, + "speculation-rules/prefetch/redirect-middle-of-prefetch.https.html?origin=cross-site-initial", + { + "timeout": "long" + } + ], + [ + "speculation-rules/prefetch/redirect-middle-of-prefetch.https.html?origin=cross-site-redirect", + { + "timeout": "long" + } + ], + [ + "speculation-rules/prefetch/redirect-middle-of-prefetch.https.html?origin=same-origin", + { + "timeout": "long" + } + ] + ], + "redirect-to-prefetch-url.https.html": [ + "f634ede8838d1eb8b98f1c80a5c342c2db34ed52", + [ + "speculation-rules/prefetch/redirect-to-prefetch-url.https.html?origin=cross-site-initial", + { + "timeout": "long" + } + ], + [ + "speculation-rules/prefetch/redirect-to-prefetch-url.https.html?origin=cross-site-redirect", + { + "timeout": "long" + } + ], + [ + "speculation-rules/prefetch/redirect-to-prefetch-url.https.html?origin=same-origin", + { + "timeout": "long" + } + ] + ], + "redirect-url.https.html": [ + "41fab0791ac5eb44f3e459d83c94c781e396356c", + [ + "speculation-rules/prefetch/redirect-url.https.html?origin=cross-site-initial", + { + "timeout": "long" + } + ], + [ + "speculation-rules/prefetch/redirect-url.https.html?origin=cross-site-redirect", + { + "timeout": "long" + } + ], + [ + "speculation-rules/prefetch/redirect-url.https.html?origin=same-origin", { "timeout": "long" } @@ -788643,7 +789987,7 @@ "tentative": { "service-worker": { "basic.sub.https.html": [ - "9420088ff291590816bd6d411dbfaa73df69830f", + "e4c103535cc9f3ff2ba23fbe2ca7ff4bfb82a576", [ "speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html?origin=cross-site&sw=fetch-handler", { @@ -788758,7 +790102,7 @@ ] ], "cancel-prerendering-after-clear-site-data-cache.https.html": [ - "cb6dc281d89dadbb6f139dba6d06674c94550920", + "a31046d34b2eca47a2108200bf02f31a836942ce", [ null, { @@ -791603,6 +792947,32 @@ } ] ], + "requestStorageAccess-cross-site-fetch.sub.https.window.js": [ + "b46f42d1211f4205a23c02f03c4117e35e241d81", + [ + "storage-access-api/requestStorageAccess-cross-site-fetch.sub.https.window.html", + { + "script_metadata": [ + [ + "script", + "helpers.js" + ], + [ + "script", + "/cookies/resources/cookie-helper.sub.js" + ], + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ] + ] + } + ] + ], "requestStorageAccess-cross-site-iframe.sub.https.window.js": [ "53f90de75d06f6bbf95e99bd5ae7da7cd06f7830", [ @@ -803605,6 +804975,41 @@ "subresource-integrity": { "signatures": { "tentative": { + "accept-signature.parser-inserted.html": [ + "ccedc5ce4f9213e748611cb305892a87950978f6", + [ + null, + {} + ] + ], + "accept-signature.window.js": [ + "efcbf0cdad6cb2816b47e989701835a30b777639", + [ + "subresource-integrity/signatures/tentative/accept-signature.window.html", + { + "script_metadata": [ + [ + "script", + "helper.js" + ] + ] + } + ] + ], + "authority.https.window.js": [ + "9f05359d43222250c9392bdf1598a8a33724ac97", + [ + "subresource-integrity/signatures/tentative/authority.https.window.html", + { + "script_metadata": [ + [ + "script", + "helper.js" + ] + ] + } + ] + ], "client-initiated.cross-origin.window.js": [ "ce7b817f7e863d4502494e9946955cbefb145b0a", [ @@ -803723,7 +805128,7 @@ ] ], "status.window.js": [ - "2cc4485a3e6fe4265b5b6e032da122e05e0470f6", + "d585e1716d730395d106f3ea87469143cdf19fa2", [ "subresource-integrity/signatures/tentative/status.window.html", { @@ -812029,7 +813434,7 @@ ] ], "url-setters-a-area.window.js": [ - "6a5e762cd42fe89de25bef44dcad8c537b5b9874", + "0012595cc469ee2290a3537733c619dfaa97204b", [ "url/url-setters-a-area.window.html?exclude=(file|javascript|mailto)", { @@ -812151,7 +813556,7 @@ ] ], "url-setters.any.js": [ - "fe88175ac63446927030867fcdacaae768c522c7", + "66b3d9b4f9d0477644db2847fa8c5769192fc990", [ "url/url-setters.any.html?exclude=(file|javascript|mailto)", { @@ -812370,7 +813775,7 @@ ] ], "url-statics-canparse.any.js": [ - "74f3da31f0d17527147b4de716cec6d6574f5a66", + "9b352029d8569bf5f2bbc66ff8a1ad9d273b7c94", [ "url/url-statics-canparse.any.html", {} @@ -812436,7 +813841,7 @@ ] ], "urlsearchparams-delete.any.js": [ - "c597142c51d5bf3cdea286cf7a6e191d4e3be828", + "09a5dccb6487338bc69d6fb924472b1dc8b7899d", [ "url/urlsearchparams-delete.any.html", {} @@ -828769,7 +830174,7 @@ }, "webauthn": { "conditional-mediation.https.html": [ - "1eb2ba3b1e750b261b2ae71fbf6172c624503cb2", + "aeb14b3b161a4a72699e8f071647f17545ae2ab2", [ null, { @@ -837100,7 +838505,7 @@ ] ], "videoFrame-copyTo.any.js": [ - "0fa57f43105fd40a01ed83664f0ef46171af876f", + "7cd3c3f73cdd1e6b125a10526ce97051bf0426ab", [ "webcodecs/videoFrame-copyTo.any.html", { @@ -856591,9 +857996,9 @@ ] ], "elementwise-binary.https.any.js": [ - "12fdc5aadc38533515e7c315e2f0abdd32f3d960", + "3f87e3ce0f243f3d93d9c3950147beb9a955d99f", [ - "webnn/validation_tests/elementwise-binary.https.any.html?cpu", + "webnn/validation_tests/elementwise-binary.https.any.html?op=add&device=cpu", { "script_metadata": [ [ @@ -856606,15 +858011,87 @@ ], [ "variant", - "?cpu" + "?op=add&device=cpu" ], [ "variant", - "?gpu" + "?op=add&device=gpu" ], [ "variant", - "?npu" + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" ], [ "script", @@ -856624,7 +858101,7 @@ } ], [ - "webnn/validation_tests/elementwise-binary.https.any.html?gpu", + "webnn/validation_tests/elementwise-binary.https.any.html?op=add&device=gpu", { "script_metadata": [ [ @@ -856637,15 +858114,87 @@ ], [ "variant", - "?cpu" + "?op=add&device=cpu" ], [ "variant", - "?gpu" + "?op=add&device=gpu" ], [ "variant", - "?npu" + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" ], [ "script", @@ -856655,7 +858204,7 @@ } ], [ - "webnn/validation_tests/elementwise-binary.https.any.html?npu", + "webnn/validation_tests/elementwise-binary.https.any.html?op=add&device=npu", { "script_metadata": [ [ @@ -856668,15 +858217,1941 @@ ], [ "variant", - "?cpu" + "?op=add&device=cpu" ], [ "variant", - "?gpu" + "?op=add&device=gpu" ], [ "variant", - "?npu" + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=div&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=div&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=div&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=max&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=max&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=max&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=min&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=min&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=min&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=mul&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=mul&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=mul&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=pow&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=pow&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=pow&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=sub&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=sub&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-binary.https.any.html?op=sub&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise binary operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=add&device=cpu" + ], + [ + "variant", + "?op=add&device=gpu" + ], + [ + "variant", + "?op=add&device=npu" + ], + [ + "variant", + "?op=sub&device=cpu" + ], + [ + "variant", + "?op=sub&device=gpu" + ], + [ + "variant", + "?op=sub&device=npu" + ], + [ + "variant", + "?op=mul&device=cpu" + ], + [ + "variant", + "?op=mul&device=gpu" + ], + [ + "variant", + "?op=mul&device=npu" + ], + [ + "variant", + "?op=div&device=cpu" + ], + [ + "variant", + "?op=div&device=gpu" + ], + [ + "variant", + "?op=div&device=npu" + ], + [ + "variant", + "?op=max&device=cpu" + ], + [ + "variant", + "?op=max&device=gpu" + ], + [ + "variant", + "?op=max&device=npu" + ], + [ + "variant", + "?op=min&device=cpu" + ], + [ + "variant", + "?op=min&device=gpu" + ], + [ + "variant", + "?op=min&device=npu" + ], + [ + "variant", + "?op=pow&device=cpu" + ], + [ + "variant", + "?op=pow&device=gpu" + ], + [ + "variant", + "?op=pow&device=npu" ], [ "script", @@ -856687,9 +860162,9 @@ ] ], "elementwise-logical.https.any.js": [ - "40b15a5c946e48bbed6aa551c58598827c22e376", + "547cba3cc6c480e3e8a5a34c62e54723b7d9bd6a", [ - "webnn/validation_tests/elementwise-logical.https.any.html?cpu", + "webnn/validation_tests/elementwise-logical.https.any.html?op=equal&device=cpu", { "script_metadata": [ [ @@ -856702,15 +860177,123 @@ ], [ "variant", - "?cpu" + "?op=equal&device=cpu" ], [ "variant", - "?gpu" + "?op=equal&device=gpu" ], [ "variant", - "?npu" + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" ], [ "script", @@ -856720,7 +860303,7 @@ } ], [ - "webnn/validation_tests/elementwise-logical.https.any.html?gpu", + "webnn/validation_tests/elementwise-logical.https.any.html?op=equal&device=gpu", { "script_metadata": [ [ @@ -856733,15 +860316,123 @@ ], [ "variant", - "?cpu" + "?op=equal&device=cpu" ], [ "variant", - "?gpu" + "?op=equal&device=gpu" ], [ "variant", - "?npu" + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" ], [ "script", @@ -856751,7 +860442,7 @@ } ], [ - "webnn/validation_tests/elementwise-logical.https.any.html?npu", + "webnn/validation_tests/elementwise-logical.https.any.html?op=equal&device=npu", { "script_metadata": [ [ @@ -856764,15 +860455,3876 @@ ], [ "variant", - "?cpu" + "?op=equal&device=cpu" ], [ "variant", - "?gpu" + "?op=equal&device=gpu" ], [ "variant", - "?npu" + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=greater&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=greater&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=greater&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=greaterOrEqual&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=greaterOrEqual&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=greaterOrEqual&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=lesser&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=lesser&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=lesser&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=lesserOrEqual&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=lesserOrEqual&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=lesserOrEqual&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalAnd&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalAnd&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalAnd&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalNot&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalNot&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalNot&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalOr&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalOr&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalOr&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalXor&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalXor&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=logicalXor&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=notEqual&device=cpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=notEqual&device=gpu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" + ], + [ + "script", + "../resources/utils_validation.js" + ] + ] + } + ], + [ + "webnn/validation_tests/elementwise-logical.https.any.html?op=notEqual&device=npu", + { + "script_metadata": [ + [ + "title", + "validation tests for WebNN API element-wise logical operations" + ], + [ + "global", + "window" + ], + [ + "variant", + "?op=equal&device=cpu" + ], + [ + "variant", + "?op=equal&device=gpu" + ], + [ + "variant", + "?op=equal&device=npu" + ], + [ + "variant", + "?op=greater&device=cpu" + ], + [ + "variant", + "?op=greater&device=gpu" + ], + [ + "variant", + "?op=greater&device=npu" + ], + [ + "variant", + "?op=greaterOrEqual&device=cpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=gpu" + ], + [ + "variant", + "?op=greaterOrEqual&device=npu" + ], + [ + "variant", + "?op=lesser&device=cpu" + ], + [ + "variant", + "?op=lesser&device=gpu" + ], + [ + "variant", + "?op=lesser&device=npu" + ], + [ + "variant", + "?op=lesserOrEqual&device=cpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=gpu" + ], + [ + "variant", + "?op=lesserOrEqual&device=npu" + ], + [ + "variant", + "?op=notEqual&device=cpu" + ], + [ + "variant", + "?op=notEqual&device=gpu" + ], + [ + "variant", + "?op=notEqual&device=npu" + ], + [ + "variant", + "?op=logicalAnd&device=cpu" + ], + [ + "variant", + "?op=logicalAnd&device=gpu" + ], + [ + "variant", + "?op=logicalAnd&device=npu" + ], + [ + "variant", + "?op=logicalOr&device=cpu" + ], + [ + "variant", + "?op=logicalOr&device=gpu" + ], + [ + "variant", + "?op=logicalOr&device=npu" + ], + [ + "variant", + "?op=logicalXor&device=cpu" + ], + [ + "variant", + "?op=logicalXor&device=gpu" + ], + [ + "variant", + "?op=logicalXor&device=npu" + ], + [ + "variant", + "?op=logicalNot&device=cpu" + ], + [ + "variant", + "?op=logicalNot&device=gpu" + ], + [ + "variant", + "?op=logicalNot&device=npu" ], [ "script", @@ -882231,7 +889783,7 @@ ] ], "WorkerGlobalScope_ErrorEvent_message.htm": [ - "bc1d2c45b42cb0e3cb96a243d00f2b7351e8b1d3", + "27d4dda5114cfe0ff5ebab090d0c41dfebf0a256", [ null, {} @@ -887452,14 +895004,14 @@ ] ], "progressevent-constructor.html": [ - "0e771f4459fef7f6fe6cbee0e3d90319cc413e2f", + "3b9c774b8740dc9bfa8d01ae17cf7f6278068745", [ null, {} ] ], "progressevent-interface.html": [ - "7552ff73d3f44997723674da0407bf59ab3f91c4", + "ec8d471d783d915c7da9cf3bae25f7394d23c054", [ null, {} @@ -910019,14 +917571,21 @@ }, "set_viewport": { "device_pixel_ratio.py": [ - "76a4ef7ecd28c6977762404820f61c1b2dfd5dea", + "6267a793b8891c9d2dcd428d19a9de1da8368913", [ null, {} ] ], "invalid.py": [ - "744bc0f7f79f86722fbf2f05bb8475c6cdfc9e23", + "671157986b39b2bfbd8b7568180f96d9d0f8b75e", + [ + null, + {} + ] + ], + "user_contexts.py": [ + "64c261637342868e90ee67a2332503e00fa96b0d", [ null, {} @@ -910181,6 +917740,24 @@ } }, "input": { + "file_dialog_opened": { + "file_dialog_opened.py": [ + "d1c4c555dcfc79877b5f0c053876ba9e730e5cbf", + [ + null, + {} + ] + ], + "tentative": { + "show_open_file_picker.py": [ + "cfa08f96995a131743bb8cdb4d72e017ae499c76", + [ + null, + {} + ] + ] + } + }, "perform_actions": { "invalid.py": [ "98e2bde4709ec696a680da822afd7185cb8b3f19", @@ -910390,6 +917967,13 @@ null, {} ] + ], + "set_viewport_with_preload_script.py": [ + "790c0a1d7c30299ad2cf94ebf3b8dc9379d1e3a0", + [ + null, + {} + ] ] }, "log": { @@ -910843,7 +918427,7 @@ ] ], "user_contexts.py": [ - "9a6bb45cc7083c489ee14e1196f45e5cebedfeb8", + "db798d83f4f316e5bab3e81a5586228f83f0fab2", [ null, {} @@ -911206,6 +918790,39 @@ } }, "session": { + "capabilities": { + "unhandled_prompt_behavior": { + "file": { + "accept.py": [ + "cc1197a53f93a83251c6acb633570702fe48edd9", + [ + null, + { + "timeout": "long" + } + ] + ], + "dismiss.py": [ + "91367a33a42d0dda11d32987a254f5386fe7a9da", + [ + null, + { + "timeout": "long" + } + ] + ], + "ignore.py": [ + "9d9951dd3352ad973825aa5ded332ea4b316fc46", + [ + null, + { + "timeout": "long" + } + ] + ] + } + } + }, "new": { "bidi_upgrade.py": [ "1060bef2be95c6fb560b4d8bbafeb02e2a5083e2", @@ -911254,7 +918871,7 @@ ] ], "user_contexts.py": [ - "f98221ba7e3ed267023e3ac4638a3107a3ededbc", + "ae2f574eca5a696b3b3646dae784743c0d18f695", [ null, {} @@ -911429,7 +919046,7 @@ ] ], "invalid.py": [ - "bf6a47d396bcdb1f1b2e56bd7a6bcedea3fb6ec4", + "8dddcbc8321a619d7868f1f9356c5bb07a0d5068", [ null, {} diff --git a/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-any.html.ini b/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-any.html.ini new file mode 100644 index 00000000000..f1903acb386 --- /dev/null +++ b/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-any.html.ini @@ -0,0 +1,29 @@ +[corner-shape-any.html?corner-shape=superellipse(5.2)&border-radius=40%] + expected: FAIL + +[corner-shape-any.html?corner-bottom-right-shape=superellipse(1.9)&border-bottom-right-radius=50%] + expected: FAIL + +[corner-shape-any.html?corner-shape=squircle&border-radius=50%] + expected: FAIL + +[corner-shape-any.html?corner-shape=straight&border-bottom-leftradius=5px] + expected: FAIL + +[corner-shape-any.html?corner-bottom-left-shape=bevel&border-bottom-left-radius=30px] + expected: FAIL + +[corner-shape-any.html?corner-top-left-shape=scoop&corner-top-right-shape=scoop&border-radius=50%] + expected: FAIL + +[corner-shape-any.html?corner-shape=squircle&border-top-left-radius=30%] + expected: FAIL + +[corner-shape-any.html?corner-top-right-shape=superellipse(0.1)&border-top-right-radius=50px] + expected: FAIL + +[corner-shape-any.html?corner-shape=superellipse(8)&border-top-right-radius=33px] + expected: FAIL + +[corner-shape-any.html?corner-shape=squircle&border-top-right-radius=30px] + expected: FAIL diff --git a/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-fill-any.html.ini b/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-fill-any.html.ini deleted file mode 100644 index 8b46280d84b..00000000000 --- a/tests/wpt/meta/css/css-borders/tentative/corner-shape/corner-shape-fill-any.html.ini +++ /dev/null @@ -1,26 +0,0 @@ -[corner-shape-fill-any.html?corner-bottom-left-shape=scoop&border-radius=10%] - expected: FAIL - -[corner-shape-fill-any.html?corner-bottom-right-shape=scoop&border-radius=50%] - expected: FAIL - -[corner-shape-fill-any.html?corner-shape=squircle&border-radius=30px] - expected: FAIL - -[corner-shape-fill-any.html?corner-shape=superellipse(5.2)&border-radius=50%] - expected: FAIL - -[corner-shape-fill-any.html?corner-shape=squircle&border-radius=50%] - expected: FAIL - -[corner-shape-fill-any.html?corner-shape=squircle&border-radius=10%] - expected: FAIL - -[corner-shape-fill-any.html?corner-shape=straight&border-radius=5px] - expected: FAIL - -[corner-shape-fill-any.html?corner-shape=superellipse(5.2)&border-radius=33px] - expected: FAIL - -[corner-shape-fill-any.html?corner-top-right-shape=scoop&border-radius=50px] - expected: FAIL diff --git a/tests/wpt/meta/css/css-color-hdr/computed.html.ini b/tests/wpt/meta/css/css-color-hdr/computed.html.ini index 9146abf2d16..213629ecaad 100644 --- a/tests/wpt/meta/css/css-color-hdr/computed.html.ini +++ b/tests/wpt/meta/css/css-color-hdr/computed.html.ini @@ -58,3 +58,60 @@ [Property dynamic-range-limit value 'dynamic-range-limit-mix(high 25%, standard 25%, standard 25%, standard 25%)'] expected: FAIL + + [Property dynamic-range-limit value 'no-limit'] + expected: FAIL + + [Property dynamic-range-limit value 'constrained'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(standard 75%, no-limit 25%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(standard 25%, no-limit 75%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(no-limit 100%, standard 0%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(no-limit 100%, no-limit 0%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(no-limit 25%, standard 25%, standard 25%, standard 25%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(no-limit 25%, standard 75%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(no-limit 100%, standard 100%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(no-limit 80%, standard 60%, constrained 60%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(standard 25%, constrained 75%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(constrained 75%, standard 25%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(constrained 25%, no-limit 25%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(standard 25%, constrained 50%, no-limit 25%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(standard 10%, constrained 20%, no-limit 20%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(no-limit 10%, standard 30%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(dynamic-range-limit-mix(standard 10%, no-limit 30%) 20%, standard 80%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(dynamic-range-limit-mix(standard 25%, no-limit 75%) 20%, dynamic-range-limit-mix(standard 25%, constrained 75%) 40%, dynamic-range-limit-mix(constrained 25%, no-limit 75%) 40%)'] + expected: FAIL + + [Property dynamic-range-limit value 'dynamic-range-limit-mix(no-limit 10%, dynamic-range-limit-mix(standard 25%, constrained 75%) 20%, dynamic-range-limit-mix(constrained 10%, no-limit 30%) 20%)'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-color-hdr/inheritance.html.ini b/tests/wpt/meta/css/css-color-hdr/inheritance.html.ini index b7307d0fe24..eb225a68d99 100644 --- a/tests/wpt/meta/css/css-color-hdr/inheritance.html.ini +++ b/tests/wpt/meta/css/css-color-hdr/inheritance.html.ini @@ -4,3 +4,6 @@ [Property dynamic-range-limit inherits] expected: FAIL + + [Property dynamic-range-limit has initial value no-limit] + expected: FAIL diff --git a/tests/wpt/meta/css/css-color-hdr/interpolation.html.ini b/tests/wpt/meta/css/css-color-hdr/interpolation.html.ini index 8b0224cf3f4..b5358838b5a 100644 --- a/tests/wpt/meta/css/css-color-hdr/interpolation.html.ini +++ b/tests/wpt/meta/css/css-color-hdr/interpolation.html.ini @@ -190,3 +190,195 @@ [Web Animations: property from [dynamic-range-limit-mix(constrained-high 90%, standard 10%)\] to [dynamic-range-limit-mix(high 10%, standard 90%)\] at (1) should be [dynamic-range-limit-mix(standard 90%, high 10%)\]] expected: FAIL + + [CSS Transitions: property from [no-limit\] to [standard\] at (0) should be [no-limit\]] + expected: FAIL + + [CSS Transitions: property from [no-limit\] to [standard\] at (0.25) should be [dynamic-range-limit-mix(standard 25%, no-limit 75%)\]] + expected: FAIL + + [CSS Transitions: property from [no-limit\] to [standard\] at (0.75) should be [dynamic-range-limit-mix(standard 75%, no-limit 25%)\]] + expected: FAIL + + [CSS Transitions: property from [no-limit\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [no-limit\] to [standard\] at (0) should be [no-limit\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [no-limit\] to [standard\] at (0.25) should be [dynamic-range-limit-mix(standard 25%, no-limit 75%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [no-limit\] to [standard\] at (0.75) should be [dynamic-range-limit-mix(standard 75%, no-limit 25%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [no-limit\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [CSS Animations: property from [no-limit\] to [standard\] at (0) should be [no-limit\]] + expected: FAIL + + [CSS Animations: property from [no-limit\] to [standard\] at (0.25) should be [dynamic-range-limit-mix(standard 25%, no-limit 75%)\]] + expected: FAIL + + [CSS Animations: property from [no-limit\] to [standard\] at (0.75) should be [dynamic-range-limit-mix(standard 75%, no-limit 25%)\]] + expected: FAIL + + [CSS Animations: property from [no-limit\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [Web Animations: property from [no-limit\] to [standard\] at (0) should be [no-limit\]] + expected: FAIL + + [Web Animations: property from [no-limit\] to [standard\] at (0.25) should be [dynamic-range-limit-mix(standard 25%, no-limit 75%)\]] + expected: FAIL + + [Web Animations: property from [no-limit\] to [standard\] at (0.75) should be [dynamic-range-limit-mix(standard 75%, no-limit 25%)\]] + expected: FAIL + + [Web Animations: property from [no-limit\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [CSS Transitions: property from [constrained\] to [standard\] at (0) should be [constrained\]] + expected: FAIL + + [CSS Transitions: property from [constrained\] to [standard\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, constrained 50%)\]] + expected: FAIL + + [CSS Transitions: property from [constrained\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [constrained\] to [standard\] at (0) should be [constrained\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [constrained\] to [standard\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, constrained 50%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [constrained\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [CSS Animations: property from [constrained\] to [standard\] at (0) should be [constrained\]] + expected: FAIL + + [CSS Animations: property from [constrained\] to [standard\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, constrained 50%)\]] + expected: FAIL + + [CSS Animations: property from [constrained\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [Web Animations: property from [constrained\] to [standard\] at (0) should be [constrained\]] + expected: FAIL + + [Web Animations: property from [constrained\] to [standard\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, constrained 50%)\]] + expected: FAIL + + [Web Animations: property from [constrained\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [CSS Transitions: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (0) should be [dynamic-range-limit-mix(standard 50%, no-limit 50%)\]] + expected: FAIL + + [CSS Transitions: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (0.75) should be [dynamic-range-limit-mix(standard 87.5%, no-limit 12.5%)\]] + expected: FAIL + + [CSS Transitions: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (0) should be [dynamic-range-limit-mix(standard 50%, no-limit 50%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (0.75) should be [dynamic-range-limit-mix(standard 87.5%, no-limit 12.5%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [CSS Animations: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (0) should be [dynamic-range-limit-mix(standard 50%, no-limit 50%)\]] + expected: FAIL + + [CSS Animations: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (0.75) should be [dynamic-range-limit-mix(standard 87.5%, no-limit 12.5%)\]] + expected: FAIL + + [CSS Animations: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [Web Animations: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (0) should be [dynamic-range-limit-mix(standard 50%, no-limit 50%)\]] + expected: FAIL + + [Web Animations: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (0.75) should be [dynamic-range-limit-mix(standard 87.5%, no-limit 12.5%)\]] + expected: FAIL + + [Web Animations: property from [dynamic-range-limit-mix(standard 50%, no-limit 50%)\] to [standard\] at (1) should be [standard\]] + expected: FAIL + + [CSS Transitions: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (0) should be [dynamic-range-limit-mix(standard 90%, no-limit 10%)\]] + expected: FAIL + + [CSS Transitions: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, no-limit 50%)\]] + expected: FAIL + + [CSS Transitions: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (1) should be [dynamic-range-limit-mix(standard 10%, no-limit 90%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (0) should be [dynamic-range-limit-mix(standard 90%, no-limit 10%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, no-limit 50%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (1) should be [dynamic-range-limit-mix(standard 10%, no-limit 90%)\]] + expected: FAIL + + [CSS Animations: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (0) should be [dynamic-range-limit-mix(standard 90%, no-limit 10%)\]] + expected: FAIL + + [CSS Animations: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, no-limit 50%)\]] + expected: FAIL + + [CSS Animations: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (1) should be [dynamic-range-limit-mix(standard 10%, no-limit 90%)\]] + expected: FAIL + + [Web Animations: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (0) should be [dynamic-range-limit-mix(standard 90%, no-limit 10%)\]] + expected: FAIL + + [Web Animations: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, no-limit 50%)\]] + expected: FAIL + + [Web Animations: property from [dynamic-range-limit-mix(standard 90%, no-limit 10%)\] to [dynamic-range-limit-mix(standard 10%, no-limit 90%)\] at (1) should be [dynamic-range-limit-mix(standard 10%, no-limit 90%)\]] + expected: FAIL + + [CSS Transitions: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (0) should be [dynamic-range-limit-mix(standard 10%, constrained 90%)\]] + expected: FAIL + + [CSS Transitions: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, constrained 45%, no-limit 5%)\]] + expected: FAIL + + [CSS Transitions: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (1) should be [dynamic-range-limit-mix(standard 90%, no-limit 10%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (0) should be [dynamic-range-limit-mix(standard 10%, constrained 90%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, constrained 45%, no-limit 5%)\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (1) should be [dynamic-range-limit-mix(standard 90%, no-limit 10%)\]] + expected: FAIL + + [CSS Animations: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (0) should be [dynamic-range-limit-mix(standard 10%, constrained 90%)\]] + expected: FAIL + + [CSS Animations: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, constrained 45%, no-limit 5%)\]] + expected: FAIL + + [CSS Animations: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (1) should be [dynamic-range-limit-mix(standard 90%, no-limit 10%)\]] + expected: FAIL + + [Web Animations: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (0) should be [dynamic-range-limit-mix(standard 10%, constrained 90%)\]] + expected: FAIL + + [Web Animations: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (0.5) should be [dynamic-range-limit-mix(standard 50%, constrained 45%, no-limit 5%)\]] + expected: FAIL + + [Web Animations: property from [dynamic-range-limit-mix(constrained 90%, standard 10%)\] to [dynamic-range-limit-mix(no-limit 10%, standard 90%)\] at (1) should be [dynamic-range-limit-mix(standard 90%, no-limit 10%)\]] + expected: FAIL diff --git a/tests/wpt/meta/css/css-color-hdr/parsing.html.ini b/tests/wpt/meta/css/css-color-hdr/parsing.html.ini index 5d1613e738f..0d7626461ee 100644 --- a/tests/wpt/meta/css/css-color-hdr/parsing.html.ini +++ b/tests/wpt/meta/css/css-color-hdr/parsing.html.ini @@ -34,3 +34,36 @@ [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(high 1%)" should set the property value] expected: FAIL + + [e.style['dynamic-range-limit'\] = "no-limit" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "constrained" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(no-limit 80%, standard 20%)" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(no-limit 8%, standard 2%)" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(no-limit 99%, standard 99%)" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(no-limit 99%, standard 99%, constrained 10%)" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(no-limit 1%)" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(constrained 20%, no-limit 80%)" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(dynamic-range-limit-mix(constrained 90%, no-limit 10%) 1%, no-limit 80%)" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(no-limit 1%, dynamic-range-limit-mix(constrained 2%, no-limit 10%) 80%)" should set the property value] + expected: FAIL + + [e.style['dynamic-range-limit'\] = "dynamic-range-limit-mix(dynamic-range-limit-mix(no-limit 1%, standard 2%) 3%, dynamic-range-limit-mix(constrained 5%, no-limit 5%) 6%)" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta/css/css-fonts/font-synthesis-08.html.ini b/tests/wpt/meta/css/css-fonts/font-synthesis-08.html.ini new file mode 100644 index 00000000000..20db075c10c --- /dev/null +++ b/tests/wpt/meta/css/css-fonts/font-synthesis-08.html.ini @@ -0,0 +1,2 @@ +[font-synthesis-08.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-images/gradient/gradient-analogous-missing-components-003.html.ini b/tests/wpt/meta/css/css-images/gradient/gradient-analogous-missing-components-003.html.ini new file mode 100644 index 00000000000..1bcc9d5af49 --- /dev/null +++ b/tests/wpt/meta/css/css-images/gradient/gradient-analogous-missing-components-003.html.ini @@ -0,0 +1,2 @@ +[gradient-analogous-missing-components-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-images/gradient/gradient-none-interpolation.html.ini b/tests/wpt/meta/css/css-images/gradient/gradient-none-interpolation.html.ini new file mode 100644 index 00000000000..1fb3052d5d0 --- /dev/null +++ b/tests/wpt/meta/css/css-images/gradient/gradient-none-interpolation.html.ini @@ -0,0 +1,2 @@ +[gradient-none-interpolation.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-001.html.ini b/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-001.html.ini new file mode 100644 index 00000000000..3b44d858825 --- /dev/null +++ b/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-001.html.ini @@ -0,0 +1,2 @@ +[radial-gradient-container-relative-units-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-002.html.ini b/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-002.html.ini new file mode 100644 index 00000000000..a42203bdd94 --- /dev/null +++ b/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-002.html.ini @@ -0,0 +1,2 @@ +[radial-gradient-container-relative-units-002.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-003.html.ini b/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-003.html.ini new file mode 100644 index 00000000000..efde55e9e25 --- /dev/null +++ b/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-003.html.ini @@ -0,0 +1,2 @@ +[radial-gradient-container-relative-units-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-004.html.ini b/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-004.html.ini new file mode 100644 index 00000000000..d0a63589495 --- /dev/null +++ b/tests/wpt/meta/css/css-images/radial-gradient-container-relative-units-004.html.ini @@ -0,0 +1,2 @@ +[radial-gradient-container-relative-units-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-mixins/at-function-cssom.tentative.html.ini b/tests/wpt/meta/css/css-mixins/at-function-cssom.html.ini similarity index 98% rename from tests/wpt/meta/css/css-mixins/at-function-cssom.tentative.html.ini rename to tests/wpt/meta/css/css-mixins/at-function-cssom.html.ini index 622e0c5f9b6..42157308bcf 100644 --- a/tests/wpt/meta/css/css-mixins/at-function-cssom.tentative.html.ini +++ b/tests/wpt/meta/css/css-mixins/at-function-cssom.html.ini @@ -1,4 +1,4 @@ -[at-function-cssom.tentative.html] +[at-function-cssom.html] [Empty CSSFunctionRule] expected: FAIL @@ -35,6 +35,9 @@ [Indexed property getter] expected: FAIL + [@supports in body] + expected: FAIL + [CSSFunctionRule.name] expected: FAIL @@ -97,6 +100,3 @@ [CSSFunctionRule.cssText (--escaped-)] expected: FAIL - - [@supports in body] - expected: FAIL diff --git a/tests/wpt/meta/css/css-mixins/dashed-function-named-arg.tentative.html.ini b/tests/wpt/meta/css/css-mixins/dashed-function-named-arg.tentative.html.ini new file mode 100644 index 00000000000..60355848e48 --- /dev/null +++ b/tests/wpt/meta/css/css-mixins/dashed-function-named-arg.tentative.html.ini @@ -0,0 +1,27 @@ +[dashed-function-named-arg.tentative.html] + [e.style['top'\] = "--func(myident)" should set the property value] + expected: FAIL + + [e.style['top'\] = "--func(--myident)" should set the property value] + expected: FAIL + + [e.style['top'\] = "--func(--)" should set the property value] + expected: FAIL + + [e.style['top'\] = "--func(50px --myident:)" should set the property value] + expected: FAIL + + [e.style['top'\] = "--func({--myident:})" should set the property value] + expected: FAIL + + [e.style['top'\] = "--func({ --myident:})" should set the property value] + expected: FAIL + + [e.style['top'\] = "--func({--myident :})" should set the property value] + expected: FAIL + + [e.style['top'\] = "--func({--myident: })" should set the property value] + expected: FAIL + + [e.style['top'\] = "--func(10px, { --myident : })" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta/css/css-mixins/dashed-function-standard-property.html.ini b/tests/wpt/meta/css/css-mixins/dashed-function-standard-property.html.ini new file mode 100644 index 00000000000..bdc9cac5a54 --- /dev/null +++ b/tests/wpt/meta/css/css-mixins/dashed-function-standard-property.html.ini @@ -0,0 +1,12 @@ +[dashed-function-standard-property.html] + [ in longhand] + expected: FAIL + + [ with typed result in longhand] + expected: FAIL + + [ with in inherited longhand] + expected: FAIL + + [ with typed result in shorthand] + expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/fit-content-min-inline-size.tentative.html.ini b/tests/wpt/meta/css/css-sizing/fit-content-min-inline-size.tentative.html.ini deleted file mode 100644 index 88d110ee31c..00000000000 --- a/tests/wpt/meta/css/css-sizing/fit-content-min-inline-size.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[fit-content-min-inline-size.tentative.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-sizing/keyword-sizes-for-intrinsic-contributions.html.ini b/tests/wpt/meta/css/css-sizing/keyword-sizes-for-intrinsic-contributions.html.ini new file mode 100644 index 00000000000..20dd43c39b9 --- /dev/null +++ b/tests/wpt/meta/css/css-sizing/keyword-sizes-for-intrinsic-contributions.html.ini @@ -0,0 +1,18 @@ +[keyword-sizes-for-intrinsic-contributions.html] + [.test 15] + expected: FAIL + + [.test 19] + expected: FAIL + + [.test 23] + expected: FAIL + + [.test 27] + expected: FAIL + + [.test 31] + expected: FAIL + + [.test 35] + expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/percent-height-replaced-in-percent-cell-003.html.ini b/tests/wpt/meta/css/css-tables/percent-height-replaced-in-percent-cell-003.html.ini new file mode 100644 index 00000000000..84d3702866f --- /dev/null +++ b/tests/wpt/meta/css/css-tables/percent-height-replaced-in-percent-cell-003.html.ini @@ -0,0 +1,2 @@ +[percent-height-replaced-in-percent-cell-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/percent-height-replaced-in-percent-cell-004.html.ini b/tests/wpt/meta/css/css-tables/percent-height-replaced-in-percent-cell-004.html.ini new file mode 100644 index 00000000000..7d8125747a9 --- /dev/null +++ b/tests/wpt/meta/css/css-tables/percent-height-replaced-in-percent-cell-004.html.ini @@ -0,0 +1,2 @@ +[percent-height-replaced-in-percent-cell-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-tables/table-cell-overflow-auto-scrolled.html.ini b/tests/wpt/meta/css/css-tables/table-cell-overflow-auto-scrolled.html.ini deleted file mode 100644 index 55805c45ee2..00000000000 --- a/tests/wpt/meta/css/css-tables/table-cell-overflow-auto-scrolled.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[table-cell-overflow-auto-scrolled.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-transforms/preserve3d-and-flattening-001.html.ini b/tests/wpt/meta/css/css-transforms/preserve3d-and-flattening-001.html.ini deleted file mode 100644 index 1eb821dd609..00000000000 --- a/tests/wpt/meta/css/css-transforms/preserve3d-and-flattening-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[preserve3d-and-flattening-001.html] - expected: FAIL 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 index e0625023176..769d98fcfc1 100644 --- a/tests/wpt/meta/css/css-values/attr-all-types.html.ini +++ b/tests/wpt/meta/css/css-values/attr-all-types.html.ini @@ -2,9 +2,6 @@ [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 @@ -23,9 +20,6 @@ [CSS Values and Units Test: attr 7] expected: FAIL - [CSS Values and Units Test: attr 10] - expected: FAIL - [CSS Values and Units Test: attr 11] expected: FAIL @@ -38,12 +32,6 @@ [CSS Values and Units Test: attr 21] expected: FAIL - [CSS Values and Units Test: attr 36] - expected: FAIL - - [CSS Values and Units Test: attr 38] - expected: FAIL - [CSS Values and Units Test: attr 12] expected: FAIL @@ -56,9 +44,6 @@ [CSS Values and Units Test: attr 24] expected: FAIL - [CSS Values and Units Test: attr 20] - expected: FAIL - [CSS Values and Units Test: attr 25] expected: FAIL @@ -119,9 +104,6 @@ [CSS Values and Units Test: attr 52] expected: FAIL - [CSS Values and Units Test: attr 54] - expected: FAIL - [CSS Values and Units Test: attr 55] expected: FAIL @@ -227,9 +209,6 @@ [CSS Values and Units Test: attr 82] expected: FAIL - [CSS Values and Units Test: attr 91] - expected: FAIL - [CSS Values and Units Test: attr 92] expected: FAIL @@ -238,3 +217,24 @@ [CSS Values and Units Test: attr 94] expected: FAIL + + [CSS Values and Units Test: attr 8] + expected: FAIL + + [CSS Values and Units Test: attr 19] + expected: FAIL + + [CSS Values and Units Test: attr 34] + expected: FAIL + + [CSS Values and Units Test: attr 37] + expected: FAIL + + [CSS Values and Units Test: attr 53] + expected: FAIL + + [CSS Values and Units Test: attr 83] + expected: FAIL + + [CSS Values and Units Test: attr 95] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/calc-sibling-function-in-shadow-dom.html.ini b/tests/wpt/meta/css/css-values/tree-counting/calc-sibling-function-in-shadow-dom.html.ini similarity index 72% rename from tests/wpt/meta/css/css-values/calc-sibling-function-in-shadow-dom.html.ini rename to tests/wpt/meta/css/css-values/tree-counting/calc-sibling-function-in-shadow-dom.html.ini index 0e6faeca45b..078fc209a02 100644 --- a/tests/wpt/meta/css/css-values/calc-sibling-function-in-shadow-dom.html.ini +++ b/tests/wpt/meta/css/css-values/tree-counting/calc-sibling-function-in-shadow-dom.html.ini @@ -1,6 +1,3 @@ [calc-sibling-function-in-shadow-dom.html] - [originating element in Shadow DOM] - expected: FAIL - [Host children have sibling-index() and sibling-count() based on assignedNodes order] expected: FAIL diff --git a/tests/wpt/meta/css/css-values/calc-sibling-function-parsing.html.ini b/tests/wpt/meta/css/css-values/tree-counting/calc-sibling-function-parsing.html.ini similarity index 100% rename from tests/wpt/meta/css/css-values/calc-sibling-function-parsing.html.ini rename to tests/wpt/meta/css/css-values/tree-counting/calc-sibling-function-parsing.html.ini diff --git a/tests/wpt/meta/css/css-values/calc-sibling-function.html.ini b/tests/wpt/meta/css/css-values/tree-counting/calc-sibling-function.html.ini similarity index 100% rename from tests/wpt/meta/css/css-values/calc-sibling-function.html.ini rename to tests/wpt/meta/css/css-values/tree-counting/calc-sibling-function.html.ini diff --git a/tests/wpt/meta/css/css-values/tree-counting/sibling-function-container-query.html.ini b/tests/wpt/meta/css/css-values/tree-counting/sibling-function-container-query.html.ini new file mode 100644 index 00000000000..0e20c94f83e --- /dev/null +++ b/tests/wpt/meta/css/css-values/tree-counting/sibling-function-container-query.html.ini @@ -0,0 +1,12 @@ +[sibling-function-container-query.html] + [sibling-index() in @container width query] + expected: FAIL + + [sibling-count() in @container width query] + expected: FAIL + + [sibling-index() in @container style() query] + expected: FAIL + + [sibling-count() in @container style() query] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/tree-counting/sibling-function-descriptors.tentative.html.ini b/tests/wpt/meta/css/css-values/tree-counting/sibling-function-descriptors.tentative.html.ini new file mode 100644 index 00000000000..287f1c19314 --- /dev/null +++ b/tests/wpt/meta/css/css-values/tree-counting/sibling-function-descriptors.tentative.html.ini @@ -0,0 +1,12 @@ +[sibling-function-descriptors.tentative.html] + [sibling-index() should not be allowed in @page properties] + expected: FAIL + + [sibling-count() should not be allowed in @page properties] + expected: FAIL + + [sibling-index() should not be allowed in @font-face descriptors] + expected: FAIL + + [sibling-count() should not be allowed in @font-face descriptors] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/sibling-function-invalidation.html.ini b/tests/wpt/meta/css/css-values/tree-counting/sibling-function-invalidation.html.ini similarity index 51% rename from tests/wpt/meta/css/css-values/sibling-function-invalidation.html.ini rename to tests/wpt/meta/css/css-values/tree-counting/sibling-function-invalidation.html.ini index a59a9023d47..0109b9c6814 100644 --- a/tests/wpt/meta/css/css-values/sibling-function-invalidation.html.ini +++ b/tests/wpt/meta/css/css-values/tree-counting/sibling-function-invalidation.html.ini @@ -10,3 +10,15 @@ [5 siblings after removal] expected: FAIL + + [Initially 6th slotted sibling] + expected: FAIL + + [5th sibling after slot change] + expected: FAIL + + [Initially 6 slotted siblings] + expected: FAIL + + [5 siblings after slot change] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/tree-counting/tree-scoped-sibling-function.html.ini b/tests/wpt/meta/css/css-values/tree-counting/tree-scoped-sibling-function.html.ini new file mode 100644 index 00000000000..e3dfccb04bd --- /dev/null +++ b/tests/wpt/meta/css/css-values/tree-counting/tree-scoped-sibling-function.html.ini @@ -0,0 +1,6 @@ +[tree-scoped-sibling-function.html] + [sibling-index() and sibling-count() evaluates to 0 from outer tree with ::part] + expected: FAIL + + [sibling-index() and sibling-count() evaluate as normal from inner tree] + expected: FAIL diff --git a/tests/wpt/meta/dom/idlharness.window.js.ini b/tests/wpt/meta/dom/idlharness.window.js.ini index f98cee42af9..e50d8b5fb02 100644 --- a/tests/wpt/meta/dom/idlharness.window.js.ini +++ b/tests/wpt/meta/dom/idlharness.window.js.ini @@ -409,3 +409,39 @@ [AbortController interface: calling abort(optional any) on new AbortController() with too few arguments must throw TypeError] expected: FAIL + + [Document interface: operation moveBefore(Node, Node?)] + expected: FAIL + + [Document interface: new Document() must inherit property "moveBefore(Node, Node?)" with the proper type] + expected: FAIL + + [Document interface: calling moveBefore(Node, Node?) on new Document() with too few arguments must throw TypeError] + expected: FAIL + + [Document interface: xmlDoc must inherit property "moveBefore(Node, Node?)" with the proper type] + expected: FAIL + + [Document interface: calling moveBefore(Node, Node?) on xmlDoc with too few arguments must throw TypeError] + expected: FAIL + + [DocumentFragment interface: operation moveBefore(Node, Node?)] + expected: FAIL + + [DocumentFragment interface: document.createDocumentFragment() must inherit property "moveBefore(Node, Node?)" with the proper type] + expected: FAIL + + [DocumentFragment interface: calling moveBefore(Node, Node?) on document.createDocumentFragment() with too few arguments must throw TypeError] + expected: FAIL + + [Element interface: operation moveBefore(Node, Node?)] + expected: FAIL + + [Element interface: element must inherit property "moveBefore(Node, Node?)" with the proper type] + expected: FAIL + + [Element interface: calling moveBefore(Node, Node?) on element with too few arguments must throw TypeError] + expected: FAIL + + +[idlharness.window.html?include=Node] diff --git a/tests/wpt/meta/dom/nodes/moveBefore/Node-moveBefore.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/Node-moveBefore.html.ini new file mode 100644 index 00000000000..e3d675d87fa --- /dev/null +++ b/tests/wpt/meta/dom/nodes/moveBefore/Node-moveBefore.html.ini @@ -0,0 +1,87 @@ +[Node-moveBefore.html] + [If node is a host-including inclusive ancestor of parent, then throw a HierarchyRequestError DOMException.] + expected: FAIL + + [If node is not a DocumentFragment, DocumentType, Element, Text, ProcessingInstruction, or Comment node, then throw a HierarchyRequestError DOMException.] + expected: FAIL + + [If node is a Text node and parent is a document, then throw a HierarchyRequestError DOMException.] + expected: FAIL + + [If node is a doctype and parent is not a document, then throw a HierarchyRequestError DOMException.] + expected: FAIL + + [If node is a DocumentFragment with multiple elements and parent is a document, then throw a HierarchyRequestError DOMException.] + expected: FAIL + + [If node is a DocumentFragment with an element and parent is a document with another element, then throw a HierarchyRequestError DOMException.] + expected: FAIL + + [If node is an Element and parent is a document with another element, then throw a HierarchyRequestError DOMException.] + expected: FAIL + + [If node is a doctype and parent is a document with another doctype, then throw a HierarchyRequestError DOMException.] + expected: FAIL + + [If node is a doctype and parent is a document with an element, then throw a HierarchyRequestError DOMException.] + expected: FAIL + + [moveBefore() on disconnected parent throws a HierarchyRequestError] + expected: FAIL + + [moveBefore() with disconnected target node throws a HierarchyRequestError] + expected: FAIL + + [moveBefore() on a cross-document target node throws a HierarchyRequestError] + expected: FAIL + + [moveBefore() into a Document throws a HierarchyRequestError] + expected: FAIL + + [moveBefore() CharacterData into a Document] + expected: FAIL + + [moveBefore() with node being an inclusive ancestor of parent throws a HierarchyRequestError] + expected: FAIL + + [moveBefore() with a non-{Element, CharacterData} throws a HierarchyRequestError] + expected: FAIL + + [moveBefore with an Element or CharacterData succeeds] + expected: FAIL + + [moveBefore on a paragraph's Text node child] + expected: FAIL + + [moveBefore with reference child whose parent is NOT the destination parent (context node) throws a NotFoundError.] + expected: FAIL + + [moveBefore() returns undefined] + expected: FAIL + + [Moving a node before itself should not move the node] + expected: FAIL + + [Moving a node from a disconnected container to a disconnected new parent without a shared ancestor throws a HIERARCHY_REQUEST_ERR] + expected: FAIL + + [Moving a node from a disconnected container to a disconnected new parent in the same tree succeeds] + expected: FAIL + + [Moving a node from a disconnected container to a disconnected new parent in the same tree succeeds,also across shadow-roots] + expected: FAIL + + [Moving a node from disconnected->connected throws a HIERARCHY_REQUEST_ERR] + expected: FAIL + + [Moving a node from connected->disconnected throws a HIERARCHY_REQUEST_ERR] + expected: FAIL + + [No custom element callbacks are run during disconnected moveBefore()] + expected: FAIL + + [Invalid node hierarchy with null old parent does not crash] + expected: FAIL + + [Move disconnected iframe does not crash] + expected: FAIL diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-animation-left.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/continue-css-animation-left.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-animation-left.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/continue-css-animation-left.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-animation-transform.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/continue-css-animation-transform.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-animation-transform.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/continue-css-animation-transform.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-transition-left-pseudo.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/continue-css-transition-left-pseudo.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-transition-left-pseudo.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/continue-css-transition-left-pseudo.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-transition-left.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/continue-css-transition-left.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-transition-left.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/continue-css-transition-left.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-transition-transform-pseudo.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/continue-css-transition-transform-pseudo.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-transition-transform-pseudo.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/continue-css-transition-transform-pseudo.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-transition-transform.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/continue-css-transition-transform.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/continue-css-transition-transform.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/continue-css-transition-transform.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/css-animation-commit-styles.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/css-animation-commit-styles.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/css-animation-commit-styles.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/css-animation-commit-styles.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/css-transition-cross-document.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/css-transition-cross-document.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/css-transition-cross-document.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/css-transition-cross-document.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/css-transition-cross-shadow.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/css-transition-cross-shadow.html.ini similarity index 56% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/css-transition-cross-shadow.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/css-transition-cross-shadow.html.ini index 506b2a597d9..aada7d7a5ed 100644 --- a/tests/wpt/meta/dom/nodes/moveBefore/tentative/css-transition-cross-shadow.html.ini +++ b/tests/wpt/meta/dom/nodes/moveBefore/css-transition-cross-shadow.html.ini @@ -1,6 +1,3 @@ [css-transition-cross-shadow.html] - [Moving an element with a transition across shadow boundaries should reset the transition] - expected: FAIL - [Moving an element with a transition across shadow boundaries preserves the transition] expected: FAIL diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/css-transition-to-disconnected-document.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/css-transition-to-disconnected-document.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/css-transition-to-disconnected-document.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/css-transition-to-disconnected-document.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/css-transition-trigger.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/css-transition-trigger.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/css-transition-trigger.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/css-transition-trigger.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/custom-element-move-reactions.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/custom-element-move-reactions.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/custom-element-move-reactions.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/custom-element-move-reactions.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/fire-focusin-focusout.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/fire-focusin-focusout.html.ini similarity index 57% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/fire-focusin-focusout.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/fire-focusin-focusout.html.ini index 35d14593c47..df0f0f55dfe 100644 --- a/tests/wpt/meta/dom/nodes/moveBefore/tentative/fire-focusin-focusout.html.ini +++ b/tests/wpt/meta/dom/nodes/moveBefore/fire-focusin-focusout.html.ini @@ -1,25 +1,13 @@ [fire-focusin-focusout.html] - [Fire focusin/out when reparenting focused element directly] - expected: FAIL - - [Fire focusin/out when reparenting an element that has focus within] - expected: FAIL - - [Don't fire focusin/out when moving to the same parent] - expected: FAIL - - [Fire focusin and then correct when moving to an inert subtree] - expected: FAIL - - [Fire focusin and then correct when moving to a tree that is made inert using style] - expected: FAIL - [Don't fire focusin/out when reparenting focused element directly] expected: FAIL [Don't fire focusin/out when reparenting an element that has focus within] expected: FAIL + [Don't fire focusin/out when moving to the same parent] + expected: FAIL + [Don't fire focusin and then correct when moving to an inert subtree] expected: FAIL diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/focus-within.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/focus-within.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/focus-within.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/focus-within.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/iframe-document-preserve.window.js.ini b/tests/wpt/meta/dom/nodes/moveBefore/iframe-document-preserve.window.js.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/iframe-document-preserve.window.js.ini rename to tests/wpt/meta/dom/nodes/moveBefore/iframe-document-preserve.window.js.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/listed-form-element-reset.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/listed-form-element-reset.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/listed-form-element-reset.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/listed-form-element-reset.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/live-range-updates.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/live-range-updates.html.ini similarity index 51% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/live-range-updates.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/live-range-updates.html.ini index 72e0d48543e..354af00cec3 100644 --- a/tests/wpt/meta/dom/nodes/moveBefore/tentative/live-range-updates.html.ini +++ b/tests/wpt/meta/dom/nodes/moveBefore/live-range-updates.html.ini @@ -1,13 +1,4 @@ [live-range-updates.html] - [moveBefore does not cause range startContainer to snap up to parent when startContainer is moved] - expected: FAIL - - [moveBefore does not cause range startContainer to snap up to parent, when startContainer ancestor is moved] - expected: FAIL - - [moveBefore does not cause range endContainer to snap up to parent, when endContainer ancestor is moved] - expected: FAIL - [moveBefore still results in range startContainer snapping up to parent when startContainer is moved] expected: FAIL diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/modal-dialog.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/modal-dialog.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/modal-dialog.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/modal-dialog.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/moveBefore-shadow-inside.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/moveBefore-shadow-inside.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/moveBefore-shadow-inside.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/moveBefore-shadow-inside.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/moveBefore-shadow-root.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/moveBefore-shadow-root.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/moveBefore-shadow-root.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/moveBefore-shadow-root.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/mutation-events.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/mutation-events.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/mutation-events.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/mutation-events.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/mutation-observer.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/mutation-observer.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/mutation-observer.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/mutation-observer.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/nonce.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/nonce.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/nonce.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/nonce.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/object-crash-regression.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/object-crash-regression.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/object-crash-regression.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/object-crash-regression.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/popover-preserve.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/popover-preserve.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/popover-preserve.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/popover-preserve.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/preserve-render-blocking-script.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/preserve-render-blocking-script.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/preserve-render-blocking-script.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/preserve-render-blocking-script.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/preserve-render-blocking-style.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/preserve-render-blocking-style.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/preserve-render-blocking-style.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/preserve-render-blocking-style.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/relevant-mutations.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/relevant-mutations.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/relevant-mutations.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/relevant-mutations.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/select-option-optgroup.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/select-option-optgroup.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/select-option-optgroup.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/select-option-optgroup.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/slotchange-events.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/slotchange-events.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/slotchange-events.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/slotchange-events.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/style-applies.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/style-applies.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/style-applies.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/style-applies.html.ini diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/Node-moveBefore.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/tentative/Node-moveBefore.html.ini deleted file mode 100644 index 512122b1b41..00000000000 --- a/tests/wpt/meta/dom/nodes/moveBefore/tentative/Node-moveBefore.html.ini +++ /dev/null @@ -1,168 +0,0 @@ -[Node-moveBefore.html] - [Should check the 'parent' type before checking whether 'child' is a child of 'parent'] - expected: FAIL - - [Should check that 'node' is not an ancestor of 'parent' before checking whether 'child' is a child of 'parent'] - expected: FAIL - - [Should check whether 'child' is a child of 'parent' before checking whether 'node' is of a type that can have a parent.] - expected: FAIL - - [Should check whether 'child' is a child of 'parent' before checking whether 'node' is of a type that can have a parent of the type that 'parent' is.] - expected: FAIL - - [Should check whether 'child' is a child of 'parent' before checking whether 'node' can be inserted into the document given the kids the document has right now.] - expected: FAIL - - [If node is a host-including inclusive ancestor of parent, then throw a HierarchyRequestError DOMException.] - expected: FAIL - - [If node is not a DocumentFragment, DocumentType, Element, Text, ProcessingInstruction, or Comment node, then throw a HierarchyRequestError DOMException.] - expected: FAIL - - [If node is a Text node and parent is a document, then throw a HierarchyRequestError DOMException.] - expected: FAIL - - [If node is a doctype and parent is not a document, then throw a HierarchyRequestError DOMException.] - expected: FAIL - - [If node is a DocumentFragment with multiple elements and parent is a document, then throw a HierarchyRequestError DOMException.] - expected: FAIL - - [If node is a DocumentFragment with an element and parent is a document with another element, then throw a HierarchyRequestError DOMException.] - expected: FAIL - - [If node is an Element and parent is a document with another element, then throw a HierarchyRequestError DOMException.] - expected: FAIL - - [If node is a doctype and parent is a document with another doctype, then throw a HierarchyRequestError DOMException.] - expected: FAIL - - [If node is a doctype and parent is a document with an element, then throw a HierarchyRequestError DOMException.] - expected: FAIL - - [Calling moveBefore an a leaf node DocumentType must throw HIERARCHY_REQUEST_ERR.] - expected: FAIL - - [Calling moveBefore an a leaf node Text must throw HIERARCHY_REQUEST_ERR.] - expected: FAIL - - [Calling moveBefore an a leaf node Comment must throw HIERARCHY_REQUEST_ERR.] - expected: FAIL - - [Calling moveBefore an a leaf node ProcessingInstruction must throw HIERARCHY_REQUEST_ERR.] - expected: FAIL - - [Calling moveBefore with an inclusive ancestor of the context object must throw HIERARCHY_REQUEST_ERR.] - expected: FAIL - - [Calling moveBefore with a reference child whose parent is not the context node must throw a NotFoundError.] - expected: FAIL - - [If the context node is a document, inserting a document or text node should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document, inserting a DocumentFragment that contains a text node or too many elements should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document, inserting a DocumentFragment with an element if there already is an element child should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document and a doctype is following the reference child, inserting a DocumentFragment with an element should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document, inserting a DocumentFragment with an element before the doctype should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document, inserting an element if there already is an element child should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document, inserting an element before the doctype should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document and a doctype is following the reference child, inserting an element should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document, inserting a doctype if there already is a doctype child should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document, inserting a doctype after the document element should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a document with and element child, appending a doctype should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is a DocumentFragment, inserting a document or a doctype should throw a HierarchyRequestError.] - expected: FAIL - - [If the context node is an element, inserting a document or a doctype should throw a HierarchyRequestError.] - expected: FAIL - - [Inserting a node before itself should not move the node] - expected: FAIL - - [moveBefore() on disconnected parent throws a HierarchyRequestError] - expected: FAIL - - [moveBefore() with disconnected target node throws a HierarchyRequestError] - expected: FAIL - - [moveBefore() on a cross-document target node throws a HierarchyRequestError] - expected: FAIL - - [moveBefore() into a Document throws a HierarchyRequestError] - expected: FAIL - - [moveBefore() into a CharacterData throws a HierarchyRequestError] - expected: FAIL - - [moveBefore() with node being an inclusive ancestor of parent throws a HierarchyRequestError] - expected: FAIL - - [moveBefore() with a non-{Element, CharacterData} throws a HierarchyRequestError] - expected: FAIL - - [moveBefore with an Element or CharacterData succeeds] - expected: FAIL - - [moveBefore on a paragraph's Text node child] - expected: FAIL - - [moveBefore with reference child whose parent is NOT the destination parent (context node) throws a NotFoundError.] - expected: FAIL - - [Moving a node from a disconnected container to a disconnected new parent succeeds] - expected: FAIL - - [Moving a node from disconnected->connected throws a HIERARCHY_REQUEST_ERR] - expected: FAIL - - [Moving a node from connected->disconnected throws a HIERARCHY_REQUEST_ERR] - expected: FAIL - - [No custom element callbacks are run during disconnected moveBefore()] - expected: FAIL - - [moveBefore() CharacterData into a Document] - expected: FAIL - - [Moving a node from a disconnected container to a disconnected new parent without a shared ancestor throws a HIERARCHY_REQUEST_ERR] - expected: FAIL - - [Moving a node from a disconnected container to a disconnected new parent in the same tree succeeds] - expected: FAIL - - [Moving a node from a disconnected container to a disconnected new parent in the same tree succeeds,also across shadow-roots] - expected: FAIL - - [moveBefore() returns undefined] - expected: FAIL - - [Moving a node before itself should not move the node] - expected: FAIL - - [Invalid node hierarchy with null old parent does not crash] - expected: FAIL - - [Move disconnected iframe does not crash] - expected: FAIL diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/throws-exception.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/throws-exception.html.ini similarity index 100% rename from tests/wpt/meta/dom/nodes/moveBefore/tentative/throws-exception.html.ini rename to tests/wpt/meta/dom/nodes/moveBefore/throws-exception.html.ini diff --git a/tests/wpt/meta/dom/xslt/document-function.window.js.ini b/tests/wpt/meta/dom/xslt/document-function.window.js.ini new file mode 100644 index 00000000000..97e44d51a88 --- /dev/null +++ b/tests/wpt/meta/dom/xslt/document-function.window.js.ini @@ -0,0 +1,2 @@ +[document-function.window.html] + expected: ERROR diff --git a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini index 7e036a1c4e4..5d2657041d1 100644 --- a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini +++ b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini @@ -1,5 +1,5 @@ [createImageBitmap-transfer.html] - expected: TIMEOUT + expected: ERROR [Transfer ImageBitmap created from a vector HTMLImageElement] expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.html.ini deleted file mode 100644 index 5544627aa21..00000000000 --- a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[canvas.2d.offscreen.lang.html] - expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.inherit.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.inherit.html.ini deleted file mode 100644 index 46ed1107ac1..00000000000 --- a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang.inherit.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[canvas.2d.offscreen.lang.inherit.html] - expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.html.ini deleted file mode 100644 index 2303d27219f..00000000000 --- a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[canvas.2d.offscreen.transferred.lang.html] - expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.document.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.document.html.ini deleted file mode 100644 index 14cb2ad57df..00000000000 --- a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.document.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[canvas.2d.offscreen.transferred.lang.inherit.document.html] - expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.html.ini b/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.html.ini deleted file mode 100644 index 3c2d2b828f8..00000000000 --- a/tests/wpt/meta/html/canvas/offscreen/manual/text/canvas.2d.offscreen.transferred.lang.inherit.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[canvas.2d.offscreen.transferred.lang.inherit.html] - expected: FAIL diff --git a/tests/wpt/meta/html/editing/the-hidden-attribute/hidden-until-found-idl.html.ini b/tests/wpt/meta/html/editing/the-hidden-attribute/hidden-until-found-idl.html.ini new file mode 100644 index 00000000000..1505f47bcd4 --- /dev/null +++ b/tests/wpt/meta/html/editing/the-hidden-attribute/hidden-until-found-idl.html.ini @@ -0,0 +1,3 @@ +[hidden-until-found-idl.html] + [element.hidden should return "until-found" regardless of uppercase letters.] + expected: FAIL diff --git a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index ddd65fdcec8..b3b91068b8d 100644 --- a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -1,4 +1,5 @@ [supported-elements.html] + expected: TIMEOUT [Contenteditable element should support autofocus] expected: FAIL @@ -9,7 +10,7 @@ expected: FAIL [Area element should support autofocus] - expected: FAIL + expected: NOTRUN [Host element with delegatesFocus should support autofocus] expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index 7d28d586f51..24903b5f66f 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,3 +1,4 @@ [iframe_sandbox_popups_escaping-1.html] + expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: FAIL + expected: TIMEOUT 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 d89a1691435..d5fd800f09d 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,4 +1,4 @@ [iframe_sandbox_popups_nonescaping-3.html] 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-img-element/naturalWidth-naturalHeight.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-img-element/naturalWidth-naturalHeight.html.ini new file mode 100644 index 00000000000..e695ee932f6 --- /dev/null +++ b/tests/wpt/meta/html/semantics/embedded-content/the-img-element/naturalWidth-naturalHeight.html.ini @@ -0,0 +1,18 @@ +[naturalWidth-naturalHeight.html] + [HTMLImageElement.prototype.naturalWidth/naturalHeight, SVG image, width/height in pixels] + expected: FAIL + + [HTMLImageElement.prototype.naturalWidth/naturalHeight, SVG image, width in pixels; height unspecified] + expected: FAIL + + [HTMLImageElement.prototype.naturalWidth/naturalHeight, SVG image, width in pixels; percentage height] + expected: FAIL + + [HTMLImageElement.prototype.naturalWidth/naturalHeight, SVG image, width/height in pixels; viewBox] + expected: FAIL + + [HTMLImageElement.prototype.naturalWidth/naturalHeight, SVG image, width in pixels; height unspecified; viewBox] + expected: FAIL + + [HTMLImageElement.prototype.naturalWidth/naturalHeight, SVG image, width unspecified; height in pixels; viewBox] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-img-element/source-relevant-mutations.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-img-element/source-relevant-mutations.html.ini new file mode 100644 index 00000000000..5505db02bb4 --- /dev/null +++ b/tests/wpt/meta/html/semantics/embedded-content/the-img-element/source-relevant-mutations.html.ini @@ -0,0 +1,3 @@ +[source-relevant-mutations.html] + [Neither the removing, moving, nor insertion steps for the source element track the previous 'next sibling' pointer when triggering relevant mutations for remaining child image elements of its old parent] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled.tentative.html.ini b/tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled.tentative.html.ini new file mode 100644 index 00000000000..6133e32a697 --- /dev/null +++ b/tests/wpt/meta/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled.tentative.html.ini @@ -0,0 +1,2 @@ +[select-appearance-disabled.tentative.html] + expected: FAIL diff --git a/tests/wpt/meta/intersection-observer/clip-path-animation.html.ini b/tests/wpt/meta/intersection-observer/clip-path-animation.html.ini new file mode 100644 index 00000000000..ba1bc690fe2 --- /dev/null +++ b/tests/wpt/meta/intersection-observer/clip-path-animation.html.ini @@ -0,0 +1,3 @@ +[clip-path-animation.html] + [clip-path-animation] + expected: FAIL diff --git a/tests/wpt/meta/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini b/tests/wpt/meta/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini index becb376ab4c..f137b6ba51c 100644 --- a/tests/wpt/meta/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini +++ b/tests/wpt/meta/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini @@ -1,5 +1,4 @@ [audio-tag.https.html] - expected: TIMEOUT [Mixed-Content: Expects blocked for audio-tag to cross-http origin and keep-scheme redirection from https context.] expected: FAIL diff --git a/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html.ini b/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html.ini new file mode 100644 index 00000000000..1c650fbd420 --- /dev/null +++ b/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.parser-inserted.html.ini @@ -0,0 +1,12 @@ +[accept-signature.parser-inserted.html] + [Single, valid integrity assertion.] + expected: FAIL + + [One matching + malformed integrity assertion.] + expected: FAIL + + [One matching + one mismatching integrity assertion.] + expected: FAIL + + [One matching + one mismatching + malformed integrity assertion.] + expected: FAIL diff --git a/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.window.js.ini b/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.window.js.ini new file mode 100644 index 00000000000..68b6e50ddde --- /dev/null +++ b/tests/wpt/meta/subresource-integrity/signatures/tentative/accept-signature.window.js.ini @@ -0,0 +1,12 @@ +[accept-signature.window.html] + [ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=] + expected: FAIL + + [ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs= malformed-thing] + expected: FAIL + + [ed25519-xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE= ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=] + expected: FAIL + + [ed25519-xDnP380zcL4rJ76rXYjeHlfMyPZEOqpJYjsjEppbuXE= malformed-thing ed25519-JrQLj5P/89iXES9+vFgrIy29clF9CC/oPPsw3c5D0bs=] + expected: FAIL diff --git a/tests/wpt/meta/subresource-integrity/signatures/tentative/authority.https.window.js.ini b/tests/wpt/meta/subresource-integrity/signatures/tentative/authority.https.window.js.ini new file mode 100644 index 00000000000..79caa64e24f --- /dev/null +++ b/tests/wpt/meta/subresource-integrity/signatures/tentative/authority.https.window.js.ini @@ -0,0 +1,2 @@ +[authority.https.window.html] + expected: ERROR diff --git a/tests/wpt/meta/url/a-element-xhtml.xhtml.ini b/tests/wpt/meta/url/a-element-xhtml.xhtml.ini index 37f65fb63d6..7c14ebadada 100644 --- a/tests/wpt/meta/url/a-element-xhtml.xhtml.ini +++ b/tests/wpt/meta/url/a-element-xhtml.xhtml.ini @@ -575,5 +575,20 @@ [Parsing: @[\\\]^_`{|}~> against ] expected: FAIL + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + [a-element-xhtml.xhtml?include=mailto] diff --git a/tests/wpt/meta/url/a-element.html.ini b/tests/wpt/meta/url/a-element.html.ini index 31c3d92a27d..66dacf51b20 100644 --- a/tests/wpt/meta/url/a-element.html.ini +++ b/tests/wpt/meta/url/a-element.html.ini @@ -576,3 +576,18 @@ [Parsing: @[\\\]^_`{|}~> against ] expected: FAIL + + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL + + [Parsing: against ] + expected: FAIL diff --git a/tests/wpt/meta/url/url-constructor.any.js.ini b/tests/wpt/meta/url/url-constructor.any.js.ini index d1bdd8b326c..6c87a0ea737 100644 --- a/tests/wpt/meta/url/url-constructor.any.js.ini +++ b/tests/wpt/meta/url/url-constructor.any.js.ini @@ -908,6 +908,21 @@ [Parsing: @[\\\]^_`{|}~> without base] expected: FAIL + [Parsing: without base] + expected: FAIL + + [Parsing: without base] + expected: FAIL + + [Parsing: without base] + expected: FAIL + + [Parsing: without base] + expected: FAIL + + [Parsing: without base] + expected: FAIL + [url-constructor.any.worker.html?include=file] [Parsing: against ] @@ -1281,6 +1296,21 @@ [Parsing: @[\\\]^_`{|}~> without base] expected: FAIL + [Parsing: without base] + expected: FAIL + + [Parsing: without base] + expected: FAIL + + [Parsing: without base] + expected: FAIL + + [Parsing: without base] + expected: FAIL + + [Parsing: without base] + expected: FAIL + [url-constructor.any.html?include=file] [Parsing: against ] diff --git a/tests/wpt/meta/url/url-setters-a-area.window.js.ini b/tests/wpt/meta/url/url-setters-a-area.window.js.ini index 5886a4c2569..dfb4f500951 100644 --- a/tests/wpt/meta/url/url-setters-a-area.window.js.ini +++ b/tests/wpt/meta/url/url-setters-a-area.window.js.ini @@ -49,3 +49,51 @@ [: Setting .pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] expected: FAIL + + [: Setting .search = '' Trailing spaces and opaque paths] + expected: FAIL + + [: Setting .search = '' Trailing spaces and opaque paths] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [: Setting .search = '' Trailing spaces and opaque paths] + expected: FAIL + + [: Setting .search = '' Trailing spaces and opaque paths] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [: Setting .search = ''] + expected: FAIL + + [: Setting .hash = '' Trailing spaces and opaque paths] + expected: FAIL + + [: Setting .hash = '' Trailing spaces and opaque paths] + expected: FAIL + + [: Setting .hash = ''] + expected: FAIL + + [: Setting .hash = ''] + expected: FAIL + + [: Setting .hash = '' Trailing spaces and opaque paths] + expected: FAIL + + [: Setting .hash = '' Trailing spaces and opaque paths] + expected: FAIL + + [: Setting .hash = ''] + expected: FAIL + + [: Setting .hash = ''] + expected: FAIL diff --git a/tests/wpt/meta/url/url-setters.any.js.ini b/tests/wpt/meta/url/url-setters.any.js.ini index 1ce9715a481..e2c549ff034 100644 --- a/tests/wpt/meta/url/url-setters.any.js.ini +++ b/tests/wpt/meta/url/url-setters.any.js.ini @@ -23,6 +23,30 @@ [URL: Setting .pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] expected: FAIL + [URL: Setting .search = '' Trailing spaces and opaque paths] + expected: FAIL + + [URL: Setting .search = ''] + expected: FAIL + + [URL: Setting .search = '' Trailing spaces and opaque paths] + expected: FAIL + + [URL: Setting .search = ''] + expected: FAIL + + [URL: Setting .hash = '' Trailing spaces and opaque paths] + expected: FAIL + + [URL: Setting .hash = ''] + expected: FAIL + + [URL: Setting .hash = '' Trailing spaces and opaque paths] + expected: FAIL + + [URL: Setting .hash = ''] + expected: FAIL + [url-setters.any.worker.html?include=javascript] @@ -69,6 +93,30 @@ [URL: Setting .pathname = '\x00\x01\t\n\r\x1f !"#$%&'()*+,-./09:;<=>?@AZ[\\\]^_`az{|}~€Éé' UTF-8 percent encoding with the default encode set. Tabs and newlines are removed.] expected: FAIL + [URL: Setting .search = '' Trailing spaces and opaque paths] + expected: FAIL + + [URL: Setting .search = ''] + expected: FAIL + + [URL: Setting .search = '' Trailing spaces and opaque paths] + expected: FAIL + + [URL: Setting .search = ''] + expected: FAIL + + [URL: Setting .hash = '' Trailing spaces and opaque paths] + expected: FAIL + + [URL: Setting .hash = ''] + expected: FAIL + + [URL: Setting .hash = '' Trailing spaces and opaque paths] + expected: FAIL + + [URL: Setting .hash = ''] + expected: FAIL + [url-setters.any.worker.html?include=mailto] diff --git a/tests/wpt/meta/url/urlsearchparams-delete.any.js.ini b/tests/wpt/meta/url/urlsearchparams-delete.any.js.ini new file mode 100644 index 00000000000..99f1d8bcecd --- /dev/null +++ b/tests/wpt/meta/url/urlsearchparams-delete.any.js.ini @@ -0,0 +1,14 @@ +[urlsearchparams-delete.any.worker.html] + [Changing the query of a URL with an opaque path with trailing spaces] + expected: FAIL + + [Changing the query of a URL with an opaque path with trailing spaces and a fragment] + expected: FAIL + + +[urlsearchparams-delete.any.html] + [Changing the query of a URL with an opaque path with trailing spaces] + expected: FAIL + + [Changing the query of a URL with an opaque path with trailing spaces and a fragment] + expected: FAIL diff --git a/tests/wpt/meta/xhr/progressevent-constructor.html.ini b/tests/wpt/meta/xhr/progressevent-constructor.html.ini new file mode 100644 index 00000000000..766a8c4a205 --- /dev/null +++ b/tests/wpt/meta/xhr/progressevent-constructor.html.ini @@ -0,0 +1,9 @@ +[progressevent-constructor.html] + [Decimal number test.] + expected: FAIL + + [Mixed integer and decimal number test.] + expected: FAIL + + [Negative number.] + expected: FAIL diff --git a/tests/wpt/tests/.github/workflows/docker.yml b/tests/wpt/tests/.github/workflows/docker.yml index 96f4629d8b5..6d5c7c79a05 100644 --- a/tests/wpt/tests/.github/workflows/docker.yml +++ b/tests/wpt/tests/.github/workflows/docker.yml @@ -33,14 +33,14 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 # v4.6.0 + uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} tags: | latest type=raw,value=${{ inputs.tag }} - name: Build and push the Docker image - uses: docker/build-push-action@0adf9959216b96bec444f325f1e493d4aa344497 # v6.14.0 + uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0 with: context: ./tools/docker push: true diff --git a/tests/wpt/tests/.github/workflows/safari-wptrunner.yml b/tests/wpt/tests/.github/workflows/safari-wptrunner.yml index 0860533dc92..9cfc8a7eeeb 100644 --- a/tests/wpt/tests/.github/workflows/safari-wptrunner.yml +++ b/tests/wpt/tests/.github/workflows/safari-wptrunner.yml @@ -22,7 +22,7 @@ permissions: {} jobs: safari-results: - name: ${{ inputs.safari-technology-preview && 'Safari Technology Preview' || 'Safari' }} + name: ${{ matrix.current-chunk }} (of ${{ matrix.total-chunks }}) runs-on: - self-hosted - webkit-ews diff --git a/tests/wpt/tests/IndexedDB/request-event-ordering-large-mixed-with-small-values.any.js b/tests/wpt/tests/IndexedDB/request-event-ordering-large-mixed-with-small-values.any.js new file mode 100644 index 00000000000..46079437b54 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/request-event-ordering-large-mixed-with-small-values.any.js @@ -0,0 +1,43 @@ +// META: title=IndexedDB: request result events are delivered in order +// META: global=window,worker +// META: script=resources/support-promises.js +// META: script=resources/support.js +// META: script=resources/request-event-ordering-common.js +// META: timeout=long + +// Spec: https://w3c.github.io/IndexedDB/#abort-transaction + +'use strict'; + +eventsTest('large values mixed with small values', [ + ['get', 1], + ['get', 2], + ['get-empty', 5], + ['count', 4], + ['continue-empty', null], + ['open', 1], + ['continue', 2], + ['open-empty', 5], + ['getall', 4], + ['open', 2], + ['continue-empty', null], + ['add', 5], + ['get', 3], + ['count', 5], + ['get-empty', 6], + ['put-with-id', 5], + ['getall', 5], + ['continue', 3], + ['open-empty', 6], + ['put', 6], + ['error', 1], + ['continue', 2], + ['open', 4], + ['get-empty', 7], + ['count', 6], + ['continue', 3], + ['add', 7], + ['getall', 7], + ['error', 3], + ['count', 7], +]); diff --git a/tests/wpt/tests/IndexedDB/request-event-ordering-large-then-small-values.any.js b/tests/wpt/tests/IndexedDB/request-event-ordering-large-then-small-values.any.js new file mode 100644 index 00000000000..d7386b38412 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/request-event-ordering-large-then-small-values.any.js @@ -0,0 +1,28 @@ +// META: title=IndexedDB: request result events are delivered in order +// META: global=window,worker +// META: script=resources/support-promises.js +// META: script=resources/support.js +// META: script=resources/request-event-ordering-common.js +// META: timeout=long + +// Spec: https://w3c.github.io/IndexedDB/#abort-transaction + +'use strict'; + +eventsTest('large value followed by small values', [ + ['get', 1], + ['getall', 4], + ['open', 2], + ['continue-empty', null], + ['get', 2], + ['get-empty', 5], + ['count', 4], + ['continue-empty', null], + ['open-empty', 5], + ['add', 5], + ['error', 1], + ['continue', 2], + ['get-empty', 6], + ['put-with-id', 5], + ['put', 6], +]); diff --git a/tests/wpt/tests/IndexedDB/request-event-ordering-large-values.any.js b/tests/wpt/tests/IndexedDB/request-event-ordering-large-values.any.js new file mode 100644 index 00000000000..095ab82df01 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/request-event-ordering-large-values.any.js @@ -0,0 +1,19 @@ +// META: title=IndexedDB: request result events are delivered in order +// META: global=window,worker +// META: script=resources/support-promises.js +// META: script=resources/support.js +// META: script=resources/request-event-ordering-common.js +// META: timeout=long + +// Spec: https://w3c.github.io/IndexedDB/#abort-transaction + +'use strict'; + +eventsTest('large values', [ + ['open', 1], + ['get', 1], + ['getall', 4], + ['get', 3], + ['continue', 3], + ['open', 3], +]); diff --git a/tests/wpt/tests/IndexedDB/request-event-ordering-small-values.any.js b/tests/wpt/tests/IndexedDB/request-event-ordering-small-values.any.js new file mode 100644 index 00000000000..05b0ce66c02 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/request-event-ordering-small-values.any.js @@ -0,0 +1,20 @@ +// META: title=IndexedDB: request result events are delivered in order +// META: global=window,worker +// META: script=resources/support-promises.js +// META: script=resources/support.js +// META: script=resources/request-event-ordering-common.js +// META: timeout=long + +// Spec: https://w3c.github.io/IndexedDB/#abort-transaction + +'use strict'; + +eventsTest('small values', [ + ['get', 2], ['count', 4], ['continue-empty', null], + ['get-empty', 5], ['add', 5], ['open', 2], + ['continue', 2], ['get', 4], ['get-empty', 6], + ['count', 5], ['put-with-id', 5], ['put', 6], + ['error', 3], ['continue', 4], ['count', 6], + ['get-empty', 7], ['open', 4], ['open-empty', 7], + ['add', 7], +]); diff --git a/tests/wpt/tests/IndexedDB/request-event-ordering.any.js b/tests/wpt/tests/IndexedDB/resources/request-event-ordering-common.js similarity index 85% rename from tests/wpt/tests/IndexedDB/request-event-ordering.any.js rename to tests/wpt/tests/IndexedDB/resources/request-event-ordering-common.js index 89c45091f1d..f754ba5f3ab 100644 --- a/tests/wpt/tests/IndexedDB/request-event-ordering.any.js +++ b/tests/wpt/tests/IndexedDB/resources/request-event-ordering-common.js @@ -1,12 +1,3 @@ -// META: title=IndexedDB: request result events are delivered in order -// META: global=window,worker -// META: script=resources/support-promises.js -// META: script=resources/support.js -// META: timeout=long - -// Spec: https://w3c.github.io/IndexedDB/#abort-transaction - -'use strict'; // Should be large enough to trigger large value handling in the IndexedDB // engines that have special code paths for large values. @@ -289,73 +280,3 @@ function eventsTest(label, operations) { }); }, label); } - -eventsTest('small values', [ - ['get', 2], ['count', 4], ['continue-empty', null], - ['get-empty', 5], ['add', 5], ['open', 2], - ['continue', 2], ['get', 4], ['get-empty', 6], - ['count', 5], ['put-with-id', 5], ['put', 6], - ['error', 3], ['continue', 4], ['count', 6], - ['get-empty', 7], ['open', 4], ['open-empty', 7], - ['add', 7], -]); - -eventsTest('large values', [ - ['open', 1], - ['get', 1], - ['getall', 4], - ['get', 3], - ['continue', 3], - ['open', 3], -]); - -eventsTest('large value followed by small values', [ - ['get', 1], - ['getall', 4], - ['open', 2], - ['continue-empty', null], - ['get', 2], - ['get-empty', 5], - ['count', 4], - ['continue-empty', null], - ['open-empty', 5], - ['add', 5], - ['error', 1], - ['continue', 2], - ['get-empty', 6], - ['put-with-id', 5], - ['put', 6], -]); - -eventsTest('large values mixed with small values', [ - ['get', 1], - ['get', 2], - ['get-empty', 5], - ['count', 4], - ['continue-empty', null], - ['open', 1], - ['continue', 2], - ['open-empty', 5], - ['getall', 4], - ['open', 2], - ['continue-empty', null], - ['add', 5], - ['get', 3], - ['count', 5], - ['get-empty', 6], - ['put-with-id', 5], - ['getall', 5], - ['continue', 3], - ['open-empty', 6], - ['put', 6], - ['error', 1], - ['continue', 2], - ['open', 4], - ['get-empty', 7], - ['count', 6], - ['continue', 3], - ['add', 7], - ['getall', 7], - ['error', 3], - ['count', 7], -]); diff --git a/tests/wpt/tests/accname/name/comp_name_from_content.html b/tests/wpt/tests/accname/name/comp_name_from_content.html index 32a9a7b3c43..6626eecb0dd 100644 --- a/tests/wpt/tests/accname/name/comp_name_from_content.html +++ b/tests/wpt/tests/accname/name/comp_name_from_content.html @@ -259,6 +259,109 @@

Call us

Call us

+ + + + + +

heading which visually transforms びょういん (hospital) to + びよういん (beauty parlor) using CSS + text-transform:full-size-kana

+

びょういんのかんじゃサービス

+ + + + +

Elements with implicit button, heading, link roles containing element with + implicit term role

+ +

this is an example

+
this is an example + +

Elements with implicit button, heading, link roles containing element with + explicit term role

+ +

this is an example

+this is an example + +

Elements with explicit button, heading, link roles containing element with + implicit term role

+
this is an example
+
this is an example
+
this is an example
+ +

Elements with explicit button, heading, link roles containing element with + explicit term role

+
this is an example
+
this is an example
+
this is an example
+ diff --git a/tests/wpt/tests/accname/name/comp_name_from_content.tentative.html b/tests/wpt/tests/accname/name/comp_name_from_content.tentative.html deleted file mode 100644 index 3239a1dcf31..00000000000 --- a/tests/wpt/tests/accname/name/comp_name_from_content.tentative.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - Name Comp: Name From Content (Tentative) - - - - - - - - - - - - - - - -

heading which visually transforms びょういん (hospital) to びよういん (beauty parlor) using CSS text-transform:full-size-kana

-

びょういんのかんじゃサービス

- - - - - -

Elements with implicit button, heading, link roles containing element with implicit term role

- -

this is an example

-this is an example - -

Elements with implicit button, heading, link roles containing element with explicit term role

- -

this is an example

-this is an example - -

Elements with explicit button, heading, link roles containing element with implicit term role

-
this is an example
-
this is an example
-
this is an example
- -

Elements with explicit button, heading, link roles containing element with explicit term role

-
this is an example
-
this is an example
-
this is an example
- - - - - diff --git a/tests/wpt/tests/ai/language_detection/capabilities-detached-crash.tentative.https.html b/tests/wpt/tests/ai/language_detection/availability-detached-crash.tentative.https.html similarity index 53% rename from tests/wpt/tests/ai/language_detection/capabilities-detached-crash.tentative.https.html rename to tests/wpt/tests/ai/language_detection/availability-detached-crash.tentative.https.html index 705fff6ceec..8dd685d990a 100644 --- a/tests/wpt/tests/ai/language_detection/capabilities-detached-crash.tentative.https.html +++ b/tests/wpt/tests/ai/language_detection/availability-detached-crash.tentative.https.html @@ -1,12 +1,13 @@ -Assures no crash upon call of LanguageDetectorFactory.capabilities() on a detached document - +Assures no crash upon call of LanguageDetector.availability() on a detached document + diff --git a/tests/wpt/tests/ai/language_detection/capabilities.tentative.https.any.js b/tests/wpt/tests/ai/language_detection/capabilities.tentative.https.any.js deleted file mode 100644 index 3eca5119a37..00000000000 --- a/tests/wpt/tests/ai/language_detection/capabilities.tentative.https.any.js +++ /dev/null @@ -1,11 +0,0 @@ -// META: title=capabilities test -// META: global=window,worker - -'use strict'; - -promise_test(async t => { - const languageDetectorCapabilities = await ai.languageDetector.capabilities(); - const availability = languageDetectorCapabilities.available; - assert_not_equals(availability, "no"); - // TODO(crbug.com/349927087): Add languageDetectorCapabilities.languageAvailable("en") once implemented. -}); diff --git a/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js b/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js index 2fd91c245bb..337f11d338d 100644 --- a/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js +++ b/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js @@ -1,8 +1,16 @@ // META: title=Detect english // META: global=window,worker +// META: script=../resources/util.js 'use strict'; +promise_test(async t => { + // Language detection is available after call to `create()`. + await ai.languageDetector.create(); + const availability = await ai.languageDetector.availability(); + assert_equals(availability, 'available'); +}, 'Simple AILanguageDetector.availability() call'); + promise_test(async t => { const detector = await ai.languageDetector.create(); const results = await detector.detect('this string is in English'); @@ -28,7 +36,15 @@ promise_test(async t => { controller.abort(); const detector = await ai.languageDetector.create(); - const detectPromise = await detector.detect('this string is in English'); + const detectPromise = + detector.detect('this string is in English', {signal: controller.signal}); await promise_rejects_dom(t, 'AbortError', detectPromise); }, 'AILanguageDetector.detect() call with an aborted signal.'); + +promise_test(async t => { + const detector = await ai.languageDetector.create(); + await testAbortPromise(t, signal => { + return detector.detect('this string is in English', {signal}); + }); +}, 'Aborting AILanguageDetector.detect().'); diff --git a/tests/wpt/tests/ai/translator/ai_translator_translate.tentative.https.any.js b/tests/wpt/tests/ai/translator/ai_translator_translate.tentative.https.any.js index 4dfbf874a00..729cb04fb76 100644 --- a/tests/wpt/tests/ai/translator/ai_translator_translate.tentative.https.any.js +++ b/tests/wpt/tests/ai/translator/ai_translator_translate.tentative.https.any.js @@ -27,17 +27,11 @@ promise_test(async t => { // Creating the translator with user activation succeeds. await createTranslator(languagePair); - // Creating it should have switched it to readily. - const capabilities = await ai.translator.capabilities(); - const {sourceLanguage, targetLanguage} = languagePair; - assert_equals( - capabilities.languagePairAvailable(sourceLanguage, targetLanguage), - 'readily'); - + // Creating it should have switched it to available. const availability = await ai.translator.availability(languagePair); assert_equals(availability, 'available'); - // Now that it is readily, we should no longer need user activation. + // Now that it is available, we should no longer need user activation. await ai.translator.create(languagePair); }, 'AITranslator.create() requires user activation when availability is "downloadable.'); @@ -131,8 +125,10 @@ promise_test(async t => { // Must have at least 2 progress events, one for 0 and one for 1. assert_greater_than_equal(progressEvents.length, 2); + + // 0 should be the first event and 1 should be the last event. assert_equals(progressEvents.at(0).loaded, 0); - assert_equals(progressEvents.at(1).loaded, 1); + assert_equals(progressEvents.at(-1).loaded, 1); // All progress events must have a total of 1. for (const progressEvent of progressEvents) { diff --git a/tests/wpt/tests/common/redirect.py b/tests/wpt/tests/common/redirect.py index f2fd1ebd51d..1ddde9a579b 100644 --- a/tests/wpt/tests/common/redirect.py +++ b/tests/wpt/tests/common/redirect.py @@ -4,6 +4,9 @@ def main(request, response): The request should typically have two query parameters: status - The status to use for the redirection. Defaults to 302. location - The resource to redirect to. + + This utility optionally supports CORS (iff the `enable-cors` query param is + present). """ status = 302 if b"status" in request.GET: @@ -17,3 +20,10 @@ def main(request, response): location = request.GET.first(b"location") response.headers.set(b"Location", location) + + if request.GET.get(b"enable-cors") is not None: + origin = request.headers.get(b"Origin") + if origin: + response.headers.set(b"Content-Type", b"text/plain") + response.headers.set(b"Access-Control-Allow-Origin", origin) + response.headers.set(b"Access-Control-Allow-Credentials", 'true') diff --git a/tests/wpt/tests/compute-pressure/compute_pressure_detached_iframe.https.window.js b/tests/wpt/tests/compute-pressure/compute_pressure_detached_iframe.https.window.js index 78654626fe1..120e754cb6f 100644 --- a/tests/wpt/tests/compute-pressure/compute_pressure_detached_iframe.https.window.js +++ b/tests/wpt/tests/compute-pressure/compute_pressure_detached_iframe.https.window.js @@ -8,7 +8,7 @@ 'use strict'; -test(() => { +promise_test(async () => { const iframe = document.createElement('iframe'); document.body.appendChild(iframe); const frame_window = iframe.contentWindow; diff --git a/tests/wpt/tests/compute-pressure/compute_pressure_duplicate_updates.https.window.js b/tests/wpt/tests/compute-pressure/compute_pressure_duplicate_updates.https.window.js index e6f4ed10454..231d4afc345 100644 --- a/tests/wpt/tests/compute-pressure/compute_pressure_duplicate_updates.https.window.js +++ b/tests/wpt/tests/compute-pressure/compute_pressure_duplicate_updates.https.window.js @@ -17,7 +17,7 @@ pressure_test(async (t) => { }); const syncObserver = new SyncPressureObserver(t); - await syncObserver.observer().observe('cpu', {sampleInterval: 100}); + await syncObserver.observer().observe('cpu'); await update_virtual_pressure_source('cpu', 'critical'); await syncObserver.waitForUpdate(); @@ -32,6 +32,30 @@ pressure_test(async (t) => { assert_equals(syncObserver.changes()[1][0].state, 'nominal'); assert_equals(syncObserver.changes().length, 2); -}, 'Changes that fail the "has change in data" test are discarded.'); +}, 'Changes that fail the "should dispatch" test are discarded.'); + +pressure_test(async (t) => { + await create_virtual_pressure_source('cpu'); + t.add_cleanup(async () => { + await remove_virtual_pressure_source('cpu'); + }); + + const syncObserver = new SyncPressureObserver(t); + await syncObserver.observer().observe('cpu', {sampleInterval: 500}); + + await update_virtual_pressure_source('cpu', 'critical'); + await syncObserver.waitForUpdate(); + assert_equals(syncObserver.changes()[0][0].state, 'critical'); + + await update_virtual_pressure_source('cpu', 'critical'); + await syncObserver.waitForUpdate(); + assert_equals(syncObserver.changes()[1][0].state, 'critical'); + + await update_virtual_pressure_source('cpu', 'nominal'); + await syncObserver.waitForUpdate(); + assert_equals(syncObserver.changes()[2][0].state, 'nominal'); + + assert_equals(syncObserver.changes().length, 3); +}, 'Updates should be received even when no state change, if sampleInterval is set.'); mark_as_done(); diff --git a/tests/wpt/tests/compute-pressure/resources/common.js b/tests/wpt/tests/compute-pressure/resources/common.js index 4f666f1557e..b5a2ca2b27f 100644 --- a/tests/wpt/tests/compute-pressure/resources/common.js +++ b/tests/wpt/tests/compute-pressure/resources/common.js @@ -136,6 +136,12 @@ switch (_globalScope) { throw new Error(`Invalid variant '${_globalScope}'`); } +promise_setup(async () => { + // Ensure window's document has focus so that the global under test can + // receive data. + await test_driver.click(document.documentElement); +}); + const pressure_test = _pressureTestHelper.pressure_test.bind(_pressureTestHelper); const mark_as_done = _pressureTestHelper.mark_as_done.bind(_pressureTestHelper); diff --git a/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html new file mode 100644 index 00000000000..192dadee770 --- /dev/null +++ b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html @@ -0,0 +1,103 @@ + + + + + Scripts injected via `eval` are not allowed with `trusted-types-eval` when `require-trusted-types-for 'script'` is report only. + + + + + + + + +

Scripts injected via `eval` are not allowed with `trusted-types-eval` when `require-trusted-types-for 'script'` is report only.

+
+ + + + + \ No newline at end of file diff --git a/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html.headers b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html.headers new file mode 100644 index 00000000000..ae1e09e31ea --- /dev/null +++ b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_report_only_require_trusted_types_eval.html.headers @@ -0,0 +1,6 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'nonce-dummy' 'trusted-types-eval' +Content-Security-Policy-Report-Only: require-trusted-types-for 'script'; diff --git a/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_require_trusted_types_eval.html b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_require_trusted_types_eval.html new file mode 100644 index 00000000000..06fae6d623b --- /dev/null +++ b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_require_trusted_types_eval.html @@ -0,0 +1,88 @@ + + + + + Scripts injected via `eval` are allowed with `trusted-types-eval` and `require-trusted-types-for 'script'`. + + + + + + + +

Scripts injected via `eval` are allowed with `trusted-types-eval` and `require-trusted-types-for 'script'`.

+
+ + + + + \ No newline at end of file diff --git a/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_require_trusted_types_eval.html.headers b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_require_trusted_types_eval.html.headers new file mode 100644 index 00000000000..3e51fcd4741 --- /dev/null +++ b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_with_require_trusted_types_eval.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'nonce-dummy' 'trusted-types-eval'; require-trusted-types-for 'script'; diff --git a/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_without_require_trusted_types_eval.html b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_without_require_trusted_types_eval.html new file mode 100644 index 00000000000..f8481194f9e --- /dev/null +++ b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_without_require_trusted_types_eval.html @@ -0,0 +1,101 @@ + + + + + Scripts injected via `eval` are not allowed with `trusted-types-eval` without `require-trusted-types-for 'script'`. + + + + + + + +

Scripts injected via `eval` are not allowed with `trusted-types-eval` without `require-trusted-types-for 'script'`.

+
+ + + + + \ No newline at end of file diff --git a/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_without_require_trusted_types_eval.html.headers b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_without_require_trusted_types_eval.html.headers new file mode 100644 index 00000000000..5658b5ab2de --- /dev/null +++ b/tests/wpt/tests/content-security-policy/script-src/script-src-trusted_types_eval_without_require_trusted_types_eval.html.headers @@ -0,0 +1,5 @@ +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Cache-Control: no-store, no-cache, must-revalidate +Cache-Control: post-check=0, pre-check=0, false +Pragma: no-cache +Content-Security-Policy: script-src 'nonce-dummy' 'trusted-types-eval' diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-fallback-to-self-crash.html b/tests/wpt/tests/css/css-anchor-position/anchor-fallback-to-self-crash.html new file mode 100644 index 00000000000..c5a8165d113 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-fallback-to-self-crash.html @@ -0,0 +1,11 @@ + +Anchor-positioned element attempting to anchor to itself as a fallback + + + +
+
diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-modified-containing-block.html b/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-modified-containing-block.html new file mode 100644 index 00000000000..9a859c96bb4 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/position-try-order-inset-modified-containing-block.html @@ -0,0 +1,66 @@ + +CSS Anchor Positioning: position-try-order behavior with margins + + + + + +
+
+
+
+ diff --git a/tests/wpt/tests/css/css-backgrounds/background-gradient-interpolation-003.html b/tests/wpt/tests/css/css-backgrounds/background-gradient-interpolation-003.html index 0b605493554..32446b5e4e8 100644 --- a/tests/wpt/tests/css/css-backgrounds/background-gradient-interpolation-003.html +++ b/tests/wpt/tests/css/css-backgrounds/background-gradient-interpolation-003.html @@ -9,7 +9,7 @@ - + +
+ diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html b/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html deleted file mode 100644 index 7bdb829f022..00000000000 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-fill-any-ref.html +++ /dev/null @@ -1,48 +0,0 @@ - - -CSS Borders and Box Decorations 4: 'corner-shape' full squircle - - - - diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-fill-any.html b/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-fill-any.html deleted file mode 100644 index eb3a9830837..00000000000 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-fill-any.html +++ /dev/null @@ -1,31 +0,0 @@ - - -CSS Borders and Box Decorations 4: 'corner-shape' full squircle - - - - - - - - - - - - - -
- diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-math.js b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-math.js deleted file mode 100644 index 0a2ddf0889d..00000000000 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-math.js +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2025 The Chromium Authors -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. -/** - * @param {number} s - * @param {number} t - * @returns {x: number, y: number} - */ -function se(s, t = 0.5) { - const curvature = Math.pow(2, s); - const x = superellipse_at(curvature); - const y = superellipse_at(curvature, 1 - t); - return {x, y}; -} - -/** - * - * @param {number} k - * @returns Array<[number, number]> - */ -function control_points_for_superellipse(k) { - const p = [ - 1.2430920942724248, 2.010479023614843, 0.32922901179443753, - 0.2823023142212073, 1.3473704261055421, 2.9149468637949814, - 0.9106507102917086 - ]; - - const s = Math.log2(k); - const absS = Math.abs(s); - const slope = - p[0] + (p[6] - p[0]) * 0.5 * (1 + Math.tanh(p[5] * (absS - p[1]))); - const base = 1 / (1 + Math.exp(-slope * (0 - p[1]))); - const logistic = 1 / (1 + Math.exp(-slope * (absS - p[1]))); - - const a = (logistic - base) / (1 - base); - const b = p[2] * Math.exp(-p[3] * absS ** p[4]); - - const P3 = se(absS, 0.5); - const P1 = {x: a, y: 1}; - const P5 = {x: 1, y: a}; - - if (s < 0) { - [P1.x, P1.y] = [1 - P1.y, 1 - P1.x]; - [P3.x, P3.y] = [1 - P3.y, 1 - P3.x]; - [P5.x, P5.y] = [1 - P5.y, 1 - P5.x]; - } - - const P2 = {x: P3.x - b, y: P3.y + b}; - const P4 = {x: P3.x + b, y: P3.y - b}; - return [P1, P2, P3, P4, P5].map(({x, y}) => [x, 1 - y]); -} diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-shape.js b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-shape.js new file mode 100644 index 00000000000..2aaaf5ed289 --- /dev/null +++ b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-shape.js @@ -0,0 +1,166 @@ +/** + * Use short lines that follow the superellipse formula to generate + * a path that approximates a superellipse. + * + * @param {CanvasRenderingContext2D} ctx + * @param {number} ax + * @param {number} ay + * @param {number} bx + * @param {number} by + * @param {number} curvature + * @param {*} phase + * @param {*} direction + * @returns + */ +function add_corner(ctx, ax, ay, bx, by, curvature) { + const vertical_first = Math.sign(bx - ax) === Math.sign(by - ay); + function map_point({ x, y }) { + if (vertical_first) { + y = 1 - y; + } else { + [x, y] = [1 - y, x]; + } + + return [ax + x * (bx - ax), ay + y * (by - ay)]; + } + + if (curvature > 1000) { + ctx.lineTo(...map_point({ x: 0, y: 1 })); + ctx.lineTo(...map_point({ x: 1, y: 1 })); + ctx.lineTo(...map_point({ x: 0, y: 1 })); + return; + } + + if (curvature <= 0.001) { + ctx.lineTo(...map_point({ x: 0, y: 1 })); + ctx.lineTo(...map_point({ x: 0, y: 0 })); + ctx.lineTo(...map_point({ x: 1, y: 0 })); + return; + } + + function xy_for_t(t) { + return map_point(superellipse(curvature, t)); + } + + ctx.lineTo(ax, ay); + const t_values = new Set(); + const antialiasing_offset = 0.25; + for ( + let x = Math.min(ax, bx) + antialiasing_offset; + x < Math.max(ax, bx); + ++x + ) { + const nx = (x - ax) / (bx - ax); + const t = vertical_first + ? superellipse_t_for_x(nx, curvature) + : superellipse_t_for_y(1 - nx, curvature); + if (t > 0 && t < 1) t_values.add(t); + } + + for ( + let y = Math.min(ay, by) + antialiasing_offset; + y < Math.max(ay, by); + ++y + ) { + const ny = (y - ay) / (by - ay); + const t = vertical_first + ? superellipse_t_for_y(1 - ny, curvature) + : superellipse_t_for_x(1 - ny, curvature); + if (t > 0 && t < 1) t_values.add(t); + } + + for (const t of [...t_values].sort()) { + const [x, y] = xy_for_t(t); + ctx.lineTo(x, y); + } + ctx.lineTo(bx, by); +} + +/** + * + * @param {{ + * 'corner-top-left-shape': number, + * 'corner-top-right-shape': number, + * 'corner-bottom-right-shape': number, + * 'corner-bottom-left-shape': number, + * 'border-top-left-radius': [number, number], + * 'border-top-right-radius': [number, number], + * 'border-bottom-left-radius': [number, number], + * 'border-bottom-right-radius': [number, number], + * 'border-top-color': string, + * 'border-right-color': string, + * 'border-left-color': string, + * 'border-bottom-color': string, + * 'border-top-width': number, + * 'border-right-width': number, + * 'border-bottom-width': number, + * 'border-left-width': number, + * }} style + * @param {CanvasRenderingContext2D} ctx + * @param {number} width + * @param {number} height + */ +function render_rect_with_corner_shapes(style, ctx, width, height) { + const corner_params = resolve_corner_params(style, width, height); + + function draw_outer_corner(corner, phase = "both", direction) { + const params = corner_params[corner]; + add_corner(ctx, ...params.outer_rect, params.shape, phase, direction); + } + + function draw_inner_corner_from_params(params, phase = "both", direction) { + add_corner(ctx, ...params.inner_rect, params.shape, phase, direction); + } + + function draw_inner_corner(corner, phase = "both", direction) { + draw_inner_corner_from_params(corner_params[corner], phase, direction); + } + + ctx.beginPath(); + + draw_outer_corner("top-right"); + draw_outer_corner("bottom-right"); + draw_outer_corner("bottom-left"); + draw_outer_corner("top-left"); + ctx.closePath(); + ctx.clip("nonzero"); + + const inner_rect = [ + style["border-left-width"], + style["border-top-width"], + width - style["border-right-width"], + height - style["border-bottom-width"], + ]; + ctx.save(); + ctx.beginPath(); + draw_inner_corner("top-right"); + ctx.lineTo(inner_rect[2], inner_rect[3]); + ctx.lineTo(inner_rect[0], inner_rect[3]); + ctx.lineTo(inner_rect[0], inner_rect[1]); + ctx.closePath(); + ctx.clip(); + ctx.beginPath(); + draw_inner_corner("bottom-right"); + ctx.lineTo(inner_rect[0], inner_rect[3]); + ctx.lineTo(inner_rect[0], inner_rect[1]); + ctx.lineTo(inner_rect[2], inner_rect[1]); + ctx.closePath(); + ctx.clip(); + ctx.beginPath(); + draw_inner_corner("bottom-left"); + ctx.lineTo(inner_rect[0], inner_rect[1]); + ctx.lineTo(inner_rect[2], inner_rect[1]); + ctx.lineTo(inner_rect[2], inner_rect[3]); + ctx.closePath(); + ctx.clip(); + ctx.beginPath(); + draw_inner_corner("top-left"); + ctx.lineTo(inner_rect[2], inner_rect[1]); + ctx.lineTo(inner_rect[2], inner_rect[3]); + ctx.lineTo(inner_rect[0], inner_rect[3]); + ctx.closePath(); + ctx.clip(); + ctx.fillStyle = style["background-color"]; + ctx.fill(); + ctx.restore(); +} diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-utils.js b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-utils.js new file mode 100644 index 00000000000..39203aefc67 --- /dev/null +++ b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/corner-utils.js @@ -0,0 +1,126 @@ +/** + * + * @param {number} curvature + * @returns {[number, number]} + */ +function offset_for_curvature(curvature) { + // Find the superellipse's control point. + // we do that by approximating the superellipse as a quadratic + // curve that has the same point at t = 0.5. + if (curvature <= 0.001) return [1, -1]; + const { x } = superellipse(curvature); + const [a, b] = [x, 1 - x].map((m) => 2 * m - 0.5); + const magnitude = Math.hypot(a, b); + // Normalize a & b + const norm_a = a / magnitude; + const norm_b = b / magnitude; + return [norm_a, -norm_b]; +} + +/** + * + * @param {number} curvature + * @param {number} t + * @returns {{x: number, y: number}} + */ +function superellipse(curvature, t = 0.5) { + // Make concave shapes symmetrical with convex ones. + if (curvature < 1) { + const { x, y } = superellipse(1 / curvature, t); + return { x: 1 - y, y: 1 - x }; + } + + const x = Math.pow(t, 1 / curvature); + const y = Math.pow(1 - t, 1 / curvature); + return { x, y }; +} + +function superellipse_t_for_x(x, curvature) { + if (curvature < 1) { + return 1 - superellipse_t_for_y(1 - x, 1 / curvature); + } else return Math.log(x) / Math.log(1 / curvature); +} + +function superellipse_t_for_y(y, curvature) { + if (curvature < 1) { + return 1 - superellipse_t_for_x(1 - y, 1 / curvature); + } else return 1 - Math.log(y) / Math.log(1 / curvature); +} + +function resolve_corner_params(style, width, height, outset = null) { + const params = { + "top-right": { + outer: [ + width - style["border-top-right-radius"][0], + 0, + width, + style["border-top-right-radius"][1], + ], + inset: [style["border-top-width"], style["border-right-width"]], + }, + + "bottom-right": { + outer: [ + width, + height - style["border-bottom-right-radius"][1], + width - style["border-bottom-right-radius"][0], + height, + ], + inset: [style["border-right-width"], style["border-bottom-width"]], + }, + + "bottom-left": { + outer: [ + style["border-bottom-left-radius"][0], + height, + 0, + height - style["border-bottom-left-radius"][1], + ], + inset: [style["border-bottom-width"], style["border-left-width"]], + }, + + "top-left": { + outer: [ + 0, + style["border-top-left-radius"][1], + style["border-top-left-radius"][0], + 0, + ], + inset: [style["border-left-width"], style["border-top-width"]], + }, + }; + + return Object.fromEntries( + Object.entries(params).map(([corner, { outer, inset }]) => { + if (outset !== null) inset = [-outset, -outset]; + const shape = style[`corner-${corner}-shape`]; + const s1 = Math.sign(outer[2] - outer[0]); + const s2 = Math.sign(outer[3] - outer[1]); + const [sw1, sw2] = inset; + const inner_offset = [s1 * sw1, s2 * sw1, -s1 * sw2, -s2 * sw2]; + + const offset = offset_for_curvature(shape); + if (Math.sign(inner_offset[0]) === Math.sign(inner_offset[1])) { + offset.reverse(); + } + + const inner_rect = [ + outer[0] + inner_offset[0] * offset[0], + outer[1] + inner_offset[1] * offset[1], + outer[2] + inner_offset[2] * offset[1], + outer[3] + inner_offset[3] * offset[0], + ]; + + return [ + corner, + { + outer_rect: outer, + shape, + inset, + inner_rect, + inner_offset, + }, + ]; + }) + ); +} diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/resolve-corner-style.js b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/resolve-corner-style.js index bb6fc7dca63..ea065f577e0 100644 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/resolve-corner-style.js +++ b/tests/wpt/tests/css/css-borders/tentative/corner-shape/resources/resolve-corner-style.js @@ -11,77 +11,26 @@ const keywords = { straight: 1000, }; -function superellipse_at(curvature, t = 0.5) { - return Math.pow(t, 1 / curvature) -} - -/** - * @param {number} s - * @param {number} t - * @returns {x: number, y: number} - */ -function se(s, t = 0.5) { - const curvature = Math.pow(2, s); - const x = superellipse_at(curvature); - const y = superellipse_at(curvature, 1 - t); - return {x, y}; -} - - -/** - * - * @param {number} curvature - * @returns number - */ -function offset_for_curvature(curvature) { - if (curvature === 0) - return 1; - if (curvature >= 2) - return 0; - // Find the approximate slope & magnitude of the superellipse's tangent - const a = superellipse_at(curvature); - const b = 1 - a; - const slope = a / b; - const magnitude = Math.hypot(a, b); - // Normalize a & b - const norm_a = a / magnitude; - const norm_b = b / magnitude; - - // The outer normal offset is the intercept of the line - // parallel to the tangent, at distance. - - return norm_b + slope * (norm_a - 1); -} - - -function resolve_corner_style(style, width, height) { +function resolve_corner_style(style, w, h) { ['top', 'bottom'].forEach((vSide) => ['left', 'right'].forEach((hSide) => { let shape = style[`corner-${vSide}-${hSide}-shape`] || style['corner-shape'] || 'round'; const match = shape.match(/superellipse\((\.?[0-9]+(.[0-9]+)?)\)/); shape = match ? +match[1] : keywords[shape]; - const hWidth = style[`border-${hSide}-width`] ?? style['border-width'] ?? 0; - const vWidth = style[`border-${vSide}-width`] ?? style['border-width'] ?? 0; + const hWidth = style[`border-${hSide}-width`] || style['border-width'] || 0; + const vWidth = style[`border-${vSide}-width`] || style['border-width'] || 0; let radius = - style[`border-${vSide}-${hSide}-radius`] ?? style['border-radius']; + style[`border-${vSide}-${hSide}-radius`] || style['border-radius'] || 0; if (!Array.isArray(radius)) radius = [radius, radius]; if (shape > 1000) shape = 1000; - if (shape < 0.00000001) - shape = 0.00000001; if (String(radius[0]).endsWith('%')) - radius[0] = (parseFloat(radius[0]) * width) / 100; + radius[0] = (parseFloat(radius[0]) * w) / 100; if (String(radius[1]).endsWith('%')) - radius[1] = (parseFloat(radius[1]) * height) / 100; - radius = radius.map(r => parseFloat(r)); - ; + radius[1] = (parseFloat(radius[1]) * h) / 100; + radius = radius.map(parseFloat); style[`corner-${vSide}-${hSide}-shape`] = shape; - const offset = offset_for_curvature(shape); - radius = [ - Math.min(Math.max(radius[0], hWidth), width / 2 - hWidth * offset), - Math.min(Math.max(radius[1], vWidth), height / 2 - vWidth * offset) - ]; style[`border-${vSide}-${hSide}-radius`] = radius; style[`border-${hSide}-width`] = hWidth; style[`border-${vSide}-width`] = vWidth; diff --git a/tests/wpt/tests/css/css-cascade/layer-namespace-sandwich-crash.html b/tests/wpt/tests/css/css-cascade/layer-namespace-sandwich-crash.html new file mode 100644 index 00000000000..c0a754e902f --- /dev/null +++ b/tests/wpt/tests/css/css-cascade/layer-namespace-sandwich-crash.html @@ -0,0 +1,8 @@ + +Crash Test: @layer statement sandwiched between namespaces + + diff --git a/tests/wpt/tests/css/css-color-hdr/computed.html b/tests/wpt/tests/css/css-color-hdr/computed.html index 48076da6b6a..47021144087 100644 --- a/tests/wpt/tests/css/css-color-hdr/computed.html +++ b/tests/wpt/tests/css/css-color-hdr/computed.html @@ -10,37 +10,37 @@
diff --git a/tests/wpt/tests/css/css-color-hdr/inheritance.html b/tests/wpt/tests/css/css-color-hdr/inheritance.html index 4f7a44a7729..6f893b6b68a 100644 --- a/tests/wpt/tests/css/css-color-hdr/inheritance.html +++ b/tests/wpt/tests/css/css-color-hdr/inheritance.html @@ -12,5 +12,5 @@ diff --git a/tests/wpt/tests/css/css-color-hdr/interpolation.html b/tests/wpt/tests/css/css-color-hdr/interpolation.html index 62e079f6366..41ee8421019 100644 --- a/tests/wpt/tests/css/css-color-hdr/interpolation.html +++ b/tests/wpt/tests/css/css-color-hdr/interpolation.html @@ -14,52 +14,52 @@ diff --git a/tests/wpt/tests/css/css-color-hdr/parsing.html b/tests/wpt/tests/css/css-color-hdr/parsing.html index caf3e86a27c..e165a60d7ed 100644 --- a/tests/wpt/tests/css/css-color-hdr/parsing.html +++ b/tests/wpt/tests/css/css-color-hdr/parsing.html @@ -9,31 +9,31 @@ diff --git a/tests/wpt/tests/css/css-color/currentcolor-005-ref.html b/tests/wpt/tests/css/css-color/currentcolor-005-ref.html new file mode 100644 index 00000000000..67c72813aff --- /dev/null +++ b/tests/wpt/tests/css/css-color/currentcolor-005-ref.html @@ -0,0 +1,31 @@ + + + + Others depend on currentcolor should be recomputed when currentcolor changes + + + + + +
XXX
YYY
+
XXX
YYY
+ + diff --git a/tests/wpt/tests/css/css-color/currentcolor-005.html b/tests/wpt/tests/css/css-color/currentcolor-005.html new file mode 100644 index 00000000000..67a9dc2bb1f --- /dev/null +++ b/tests/wpt/tests/css/css-color/currentcolor-005.html @@ -0,0 +1,43 @@ + + + + column-rule-color that depend on currentcolor should be recomputed when currentcolor changes + + + + + + + +
XXX
YYY
+
XXX
YYY
+ + + diff --git a/tests/wpt/tests/css/css-color/system-color-consistency.html b/tests/wpt/tests/css/css-color/system-color-consistency.html index a3849c5781b..fd73d1ab2f2 100644 --- a/tests/wpt/tests/css/css-color/system-color-consistency.html +++ b/tests/wpt/tests/css/css-color/system-color-consistency.html @@ -1,19 +1,13 @@ - - - - - CSS Color 4: System color consistency - - - - - - - - - -
+ +CSS Color 4: System color consistency + + + + + + +
@@ -31,41 +25,55 @@ Marked text Link -
+
Canvas Colors +
+ - + // Mark and MarkText + style = getComputedStyle(document.getElementById('mark')); + test_computed_value('color', 'Mark', style.getPropertyValue('background-color'), `has the same color as the background-color of a mark element (${colorScheme})`); + test_computed_value('color', 'MarkText', style.getPropertyValue('color'), `has the same color as the color of a mark element (${colorScheme})`); - + // LinkText + style = getComputedStyle(document.getElementById('link')); + test_computed_value('color', 'LinkText', style.getPropertyValue('color'), `has the same color as the color of an anchor element (${colorScheme})`); + + // These colors are only text colors and do not have corresponding + // backgrounds, so they should not match the canvas background (as + // otherwise they'd be invisible) + test_not_canvas("LinkText", colorScheme); + test_not_canvas("ActiveText", colorScheme); + test_not_canvas("VisitedText", colorScheme); + }); + diff --git a/tests/wpt/tests/css/css-flexbox/justify-content_space-between-003.tentative.html b/tests/wpt/tests/css/css-flexbox/justify-content_space-between-003.tentative.html new file mode 100644 index 00000000000..dfe14a86835 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/justify-content_space-between-003.tentative.html @@ -0,0 +1,33 @@ + + + + + + + +

Test passes if there is a filled green square.

+
+ +
+
+
+
+
+
+ +
+
+
+
+
diff --git a/tests/wpt/tests/css/css-fonts/font-face-sign-function.html b/tests/wpt/tests/css/css-fonts/font-face-sign-function.html index 28c958c7ee7..aee8fff0882 100644 --- a/tests/wpt/tests/css/css-fonts/font-face-sign-function.html +++ b/tests/wpt/tests/css/css-fonts/font-face-sign-function.html @@ -9,7 +9,7 @@ } @font-face { font-family: "Lato"; - src: url('support/fonts/Lato-Medium.ttf') format('truetype'); + src: url('/fonts/Lato-Medium.ttf') format('truetype'); font-display: swap; font-weight: calc(sign(1rem - 1px) * 400); font-width: calc(sign(1rem - 1px) * 100%); diff --git a/tests/wpt/tests/css/css-fonts/font-face-stretch-auto-static-ref.html b/tests/wpt/tests/css/css-fonts/font-face-stretch-auto-static-ref.html index 5b3c4477332..cbafc4850d7 100644 --- a/tests/wpt/tests/css/css-fonts/font-face-stretch-auto-static-ref.html +++ b/tests/wpt/tests/css/css-fonts/font-face-stretch-auto-static-ref.html @@ -5,7 +5,7 @@ + + +
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-001.html b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-001.html new file mode 100644 index 00000000000..0bfd7bb615f --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-001.html @@ -0,0 +1,43 @@ + + + + + Gradient analogous missing components carry forward logic tests + + + + + + + + +
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-002-ref.html b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-002-ref.html new file mode 100644 index 00000000000..ecdbc4c1148 --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-002-ref.html @@ -0,0 +1,38 @@ + + + + + Gradient analogous missing components carry forward logic tests + + + + + +

They should be equivalent to `background: color-mix(in srgb, color(srgb none 1 none), lime)`

+
This should be a lime background.
+
This should be a lime background.
+
This should be a lime background.
+
This should be a lime background.
+ + diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-002.html b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-002.html new file mode 100644 index 00000000000..96038650136 --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-002.html @@ -0,0 +1,40 @@ + + + + + Gradient analogous missing components carry forward logic tests + + + + + + + + +

They should be equivalent to `background: color-mix(in srgb, color(srgb none 1 none), lime)`

+
This should be a lime background.
+
This should be a lime background.
+
This should be a lime background.
+
This should be a lime background.
+ + diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-003-ref.html b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-003-ref.html new file mode 100644 index 00000000000..134388315a0 --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-003-ref.html @@ -0,0 +1,24 @@ + + + + + Gradient analogous missing components carry forward logic tests + + + + + + +
This should be a lime background.
+
This should be a lime background.
+
This should be a lime background.
+ + diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-003.html b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-003.html new file mode 100644 index 00000000000..c4c8995c1ef --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-analogous-missing-components-003.html @@ -0,0 +1,35 @@ + + + + + Gradient analogous missing components carry forward logic tests + + + + + + + + +
This should be a lime background.
+
This should be a lime background.
+
This should be a lime background.
+ + diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-increasing-hue-lch.html b/tests/wpt/tests/css/css-images/gradient/gradient-increasing-hue-lch.html index 603c023e5ca..f6de5c43dbe 100644 --- a/tests/wpt/tests/css/css-images/gradient/gradient-increasing-hue-lch.html +++ b/tests/wpt/tests/css/css-images/gradient/gradient-increasing-hue-lch.html @@ -7,7 +7,7 @@ - + @@ -37,5 +40,6 @@
+
diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-none-interpolation.html b/tests/wpt/tests/css/css-images/gradient/gradient-none-interpolation.html index 06d7be6e66b..11bac74b9b5 100644 --- a/tests/wpt/tests/css/css-images/gradient/gradient-none-interpolation.html +++ b/tests/wpt/tests/css/css-images/gradient/gradient-none-interpolation.html @@ -6,10 +6,10 @@ - + @@ -42,5 +45,6 @@
+
diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-001.html b/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-001.html index af43fd7e9fc..1e89b3ffc67 100644 --- a/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-001.html +++ b/tests/wpt/tests/css/css-images/gradient/gradient-single-stop-001.html @@ -8,7 +8,7 @@ - + +
+
+
diff --git a/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-002.html b/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-002.html new file mode 100644 index 00000000000..73083b095d6 --- /dev/null +++ b/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-002.html @@ -0,0 +1,16 @@ + +radial-gradient() with container relative unit <position> (vertical) + + + + +
+
+
diff --git a/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-003.html b/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-003.html new file mode 100644 index 00000000000..f41e23c01fa --- /dev/null +++ b/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-003.html @@ -0,0 +1,16 @@ + +radial-gradient() with container relative unit <radial-size> (horizontal) + + + + +
+
+
diff --git a/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-004.html b/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-004.html new file mode 100644 index 00000000000..c99059561a3 --- /dev/null +++ b/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-004.html @@ -0,0 +1,16 @@ + +radial-gradient() with container relative unit <radial-size> (vertical) + + + + +
+
+
diff --git a/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-ref.html b/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-ref.html new file mode 100644 index 00000000000..503058910dd --- /dev/null +++ b/tests/wpt/tests/css/css-images/radial-gradient-container-relative-units-ref.html @@ -0,0 +1,10 @@ + +radial-gradient() with container relative unit (reference) + +
diff --git a/tests/wpt/tests/css/css-masking/clip-path/clip-path-borderBox-1c.html b/tests/wpt/tests/css/css-masking/clip-path/clip-path-borderBox-1c.html index 99f6bb0fc97..0783cfe0039 100644 --- a/tests/wpt/tests/css/css-masking/clip-path/clip-path-borderBox-1c.html +++ b/tests/wpt/tests/css/css-masking/clip-path/clip-path-borderBox-1c.html @@ -7,7 +7,7 @@ - + + +
+ + diff --git a/tests/wpt/tests/css/css-overflow/column-scroll-marker-015-crash.html b/tests/wpt/tests/css/css-overflow/column-scroll-marker-015-crash.html new file mode 100644 index 00000000000..f7d94832d14 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/column-scroll-marker-015-crash.html @@ -0,0 +1,29 @@ + +Shorten column content to reduce number of columns needed, and thus also remove a snap area + + + + + diff --git a/tests/wpt/tests/css/css-overflow/column-scroll-marker-focus-001.html b/tests/wpt/tests/css/css-overflow/column-scroll-marker-focus-001.html new file mode 100644 index 00000000000..2b566efc53c --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/column-scroll-marker-focus-001.html @@ -0,0 +1,198 @@ + +Tab focus and ::colum::scroll-marker + + + +
+ +
Nothing
+ + +
line
+
line
+ + + + +
+ + +
+
+
A
+
B
+
C
+ + +
D
+
E
+
F
+
+
+
+
caption
+ + +
footer
+
header
+
body
+
+
+
+ + +
abs
+
block
+
+ + +
block
+
abs
+
+
+ +
after
+ + + + + + + + diff --git a/tests/wpt/tests/css/css-overflow/inline-with-scroll-marker-group-crash.html b/tests/wpt/tests/css/css-overflow/inline-with-scroll-marker-group-crash.html new file mode 100644 index 00000000000..c32c63ca050 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/inline-with-scroll-marker-group-crash.html @@ -0,0 +1,14 @@ + +Attempt to set scroll-marker-group on inline + + + + diff --git a/tests/wpt/tests/css/css-overflow/scroll-marker-014-crash.html b/tests/wpt/tests/css/css-overflow/scroll-marker-014-crash.html new file mode 100644 index 00000000000..dd27d66fa5a --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-marker-014-crash.html @@ -0,0 +1,20 @@ + +Non-atomic inline ::scroll-marker with scroll snapping + + + + diff --git a/tests/wpt/tests/css/css-properties-values-api/var-reference-registered-properties.html b/tests/wpt/tests/css/css-properties-values-api/var-reference-registered-properties.html index f8f094c9bc2..5b49c912ec5 100644 --- a/tests/wpt/tests/css/css-properties-values-api/var-reference-registered-properties.html +++ b/tests/wpt/tests/css/css-properties-values-api/var-reference-registered-properties.html @@ -172,11 +172,11 @@ function test_invalid_fallback(syntax, value, fallback) { try { element.style = `${name}: ${value}; --x:var(${name},${fallback})`; let computedStyle = getComputedStyle(element); - assert_equals(computedStyle.getPropertyValue('--x'), ''); + assert_equals(computedStyle.getPropertyValue('--x'), value); } finally { element.style = ''; } - }, `Invalid fallback invalidates var()-reference [${syntax}, ${fallback}]`); + }, `Invalid fallback doesn't invalidate var()-reference [${syntax}, ${fallback}]`); } test_valid_fallback('', '40px', '10px'); diff --git a/tests/wpt/tests/css/css-scoping/host-has-001.html b/tests/wpt/tests/css/css-scoping/host-has-001.tentative.html similarity index 100% rename from tests/wpt/tests/css/css-scoping/host-has-001.html rename to tests/wpt/tests/css/css-scoping/host-has-001.tentative.html diff --git a/tests/wpt/tests/css/css-scoping/host-has-002.html b/tests/wpt/tests/css/css-scoping/host-has-002.tentative.html similarity index 100% rename from tests/wpt/tests/css/css-scoping/host-has-002.html rename to tests/wpt/tests/css/css-scoping/host-has-002.tentative.html diff --git a/tests/wpt/tests/css/css-scoping/host-has-003.html b/tests/wpt/tests/css/css-scoping/host-has-003.tentative.html similarity index 100% rename from tests/wpt/tests/css/css-scoping/host-has-003.html rename to tests/wpt/tests/css/css-scoping/host-has-003.tentative.html diff --git a/tests/wpt/tests/css/css-scroll-snap/scroll-initial-target/scroll-initial-target-with-text-fragment-navigation-target.html b/tests/wpt/tests/css/css-scroll-snap/scroll-initial-target/scroll-initial-target-with-text-fragment-navigation-target.html index 61a3db00c66..aea8e120c15 100644 --- a/tests/wpt/tests/css/css-scroll-snap/scroll-initial-target/scroll-initial-target-with-text-fragment-navigation-target.html +++ b/tests/wpt/tests/css/css-scroll-snap/scroll-initial-target/scroll-initial-target-with-text-fragment-navigation-target.html @@ -1,5 +1,6 @@ + + +

Test passes if you see a orange text insertion caret at the end of the line below. + +

abcde
+ + diff --git a/tests/wpt/tests/css/css-ui/caret-eol-002.html b/tests/wpt/tests/css/css-ui/caret-eol-002.html new file mode 100644 index 00000000000..2506c6defd1 --- /dev/null +++ b/tests/wpt/tests/css/css-ui/caret-eol-002.html @@ -0,0 +1,31 @@ + + + +CSS Basic User Interface Test: end-of-line carets should be visible + + + + + + +

Test passes if you see a orange text insertion caret at the end of the line below. + +

abcde
+ + diff --git a/tests/wpt/tests/css/css-ui/caret-eol-003.html b/tests/wpt/tests/css/css-ui/caret-eol-003.html new file mode 100644 index 00000000000..61e9c50bf5a --- /dev/null +++ b/tests/wpt/tests/css/css-ui/caret-eol-003.html @@ -0,0 +1,31 @@ + + + +CSS Basic User Interface Test: end-of-line carets should be visible + + + + + + +

Test passes if you see a orange text insertion caret at the end of the line below. + +

abcde
+ + diff --git a/tests/wpt/tests/css/css-ui/caret-eol-004.tentative.html b/tests/wpt/tests/css/css-ui/caret-eol-004.tentative.html new file mode 100644 index 00000000000..63e6e1c79b9 --- /dev/null +++ b/tests/wpt/tests/css/css-ui/caret-eol-004.tentative.html @@ -0,0 +1,31 @@ + + + +CSS Basic User Interface Test: end-of-line carets should be visible + + + + + + +

Test passes if you see a orange text insertion caret at the end of the line below. + +

abcdefghijkl
+ + diff --git a/tests/wpt/tests/css/css-ui/reference/caret-eol-001.html b/tests/wpt/tests/css/css-ui/reference/caret-eol-001.html new file mode 100644 index 00000000000..dc8f37feaee --- /dev/null +++ b/tests/wpt/tests/css/css-ui/reference/caret-eol-001.html @@ -0,0 +1,26 @@ + + + +CSS Basic User Interface Test Reference + + + +

Test passes if you see a orange text insertion caret at the end of the line below. + +

abcde
+ + diff --git a/tests/wpt/tests/css/css-values/attr-all-types.html b/tests/wpt/tests/css/css-values/attr-all-types.html index 8dce4feb5f4..5ea11a68f8e 100644 --- a/tests/wpt/tests/css/css-values/attr-all-types.html +++ b/tests/wpt/tests/css/css-values/attr-all-types.html @@ -91,7 +91,8 @@ } test_valid_attr('content', 'attr(data-foo)', 'abc', '"abc"'); - test_valid_attr('content', 'attr(data-foo string)', 'abc', '"abc"'); + test_invalid_attr('content', 'attr(data-foo string)', 'abc'); + test_valid_attr('content', 'attr(data-foo raw-string)', 'abc', '"abc"'); test_valid_attr('content', 'attr(data-foo,)', 'abc', '"abc"'); test_valid_attr('content', 'attr(data-foo type())', '"abc"', '"abc"'); diff --git a/tests/wpt/tests/css/css-values/clamp-length-serialize.html b/tests/wpt/tests/css/css-values/clamp-length-serialize.html index 987d028ee87..91560d7899d 100644 --- a/tests/wpt/tests/css/css-values/clamp-length-serialize.html +++ b/tests/wpt/tests/css/css-values/clamp-length-serialize.html @@ -6,8 +6,8 @@ diff --git a/tests/wpt/tests/css/css-values/calc-sibling-function-in-shadow-dom.html b/tests/wpt/tests/css/css-values/tree-counting/calc-sibling-function-in-shadow-dom.html similarity index 100% rename from tests/wpt/tests/css/css-values/calc-sibling-function-in-shadow-dom.html rename to tests/wpt/tests/css/css-values/tree-counting/calc-sibling-function-in-shadow-dom.html diff --git a/tests/wpt/tests/css/css-values/calc-sibling-function-parsing.html b/tests/wpt/tests/css/css-values/tree-counting/calc-sibling-function-parsing.html similarity index 100% rename from tests/wpt/tests/css/css-values/calc-sibling-function-parsing.html rename to tests/wpt/tests/css/css-values/tree-counting/calc-sibling-function-parsing.html diff --git a/tests/wpt/tests/css/css-values/calc-sibling-function.html b/tests/wpt/tests/css/css-values/tree-counting/calc-sibling-function.html similarity index 100% rename from tests/wpt/tests/css/css-values/calc-sibling-function.html rename to tests/wpt/tests/css/css-values/tree-counting/calc-sibling-function.html diff --git a/tests/wpt/tests/css/css-values/tree-counting/sibling-function-container-query.html b/tests/wpt/tests/css/css-values/tree-counting/sibling-function-container-query.html new file mode 100644 index 00000000000..addcf0b2d48 --- /dev/null +++ b/tests/wpt/tests/css/css-values/tree-counting/sibling-function-container-query.html @@ -0,0 +1,67 @@ + +CSS Values and Units Test: sibling-index() and sibling-count() in container queries + + + + + +
+
+ +
+
+ +
+
+ diff --git a/tests/wpt/tests/css/css-values/tree-counting/sibling-function-descriptors.tentative.html b/tests/wpt/tests/css/css-values/tree-counting/sibling-function-descriptors.tentative.html new file mode 100644 index 00000000000..d31d4acf499 --- /dev/null +++ b/tests/wpt/tests/css/css-values/tree-counting/sibling-function-descriptors.tentative.html @@ -0,0 +1,45 @@ + +CSS Values and Units Test: sibling-index() and sibling-count() invalid in descriptors + + + + + + diff --git a/tests/wpt/tests/css/css-values/sibling-function-invalidation.html b/tests/wpt/tests/css/css-values/tree-counting/sibling-function-invalidation.html similarity index 52% rename from tests/wpt/tests/css/css-values/sibling-function-invalidation.html rename to tests/wpt/tests/css/css-values/tree-counting/sibling-function-invalidation.html index 74f4995f5f7..3c75c78530d 100644 --- a/tests/wpt/tests/css/css-values/sibling-function-invalidation.html +++ b/tests/wpt/tests/css/css-values/tree-counting/sibling-function-invalidation.html @@ -48,3 +48,55 @@ assert_equals(t2.offsetHeight, 50); }, "5 siblings after removal"); + + +
+ +
+
+
+
+
+
+
+ + + +
+ +
+
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-values/tree-counting/sibling-function-media-query.tentative.html b/tests/wpt/tests/css/css-values/tree-counting/sibling-function-media-query.tentative.html new file mode 100644 index 00000000000..c76ac449e48 --- /dev/null +++ b/tests/wpt/tests/css/css-values/tree-counting/sibling-function-media-query.tentative.html @@ -0,0 +1,32 @@ + +CSS Values and Units Test: sibling-index() and sibling-count() invalid in media queries + + + + + + +
+ diff --git a/tests/wpt/tests/css/css-values/tree-counting/tree-scoped-sibling-function.html b/tests/wpt/tests/css/css-values/tree-counting/tree-scoped-sibling-function.html new file mode 100644 index 00000000000..979466bb7cf --- /dev/null +++ b/tests/wpt/tests/css/css-values/tree-counting/tree-scoped-sibling-function.html @@ -0,0 +1,50 @@ + +CSS Values and Units Test: Tree-scoped sibling-index() + + + + +
+ +
+ + +
+
+
+
+ +
+
+
+
+ diff --git a/tests/wpt/tests/css/css-viewport/zoom/parsing/zoom-computed-with-sign-expression.html b/tests/wpt/tests/css/css-viewport/zoom/parsing/zoom-computed-with-sign-expression.html new file mode 100644 index 00000000000..8029fd3a65e --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/parsing/zoom-computed-with-sign-expression.html @@ -0,0 +1,38 @@ + + +CSS Test: getComputedStyle().zoom, with a specified value that includes a sign() expression + + + + + + +
+
+
+ diff --git a/tests/wpt/tests/css/css-viewport/zoom/parsing/zoom-computed.html b/tests/wpt/tests/css/css-viewport/zoom/parsing/zoom-computed.html index b7484169f74..c6b4afc92a3 100644 --- a/tests/wpt/tests/css/css-viewport/zoom/parsing/zoom-computed.html +++ b/tests/wpt/tests/css/css-viewport/zoom/parsing/zoom-computed.html @@ -5,12 +5,6 @@ -
@@ -20,12 +14,14 @@ test_computed_value("zoom", "normal", "1"); test_computed_value("zoom", "1", "1"); test_computed_value("zoom", "1.5", "1.5"); test_computed_value("zoom", "0.75", "0.75"); -test_computed_value("zoom", 'calc(1 + (sign(2cqw - 10px) * 0.5))', '0.5'); +test_computed_value("zoom", 'calc(1 - 0.5)', '0.5'); +test_computed_value("zoom", 'calc(1 * 0.5)', '0.5'); test_computed_value("zoom", "100%", "1"); test_computed_value("zoom", "150%", "1.5"); test_computed_value("zoom", "75%", "0.75"); -test_computed_value("zoom", 'calc(100% + (sign(2cqw - 10px) * 50%))', '0.5'); +test_computed_value("zoom", 'calc(100% - 50%)', '0.5'); +test_computed_value("zoom", 'calc(100% * 0.5)', '0.5'); // Legacy crap, wat test_computed_value("zoom", "0", "1"); diff --git a/tests/wpt/tests/css/css-writing-modes/available-size-020.html b/tests/wpt/tests/css/css-writing-modes/available-size-020.html new file mode 100644 index 00000000000..bf09886f30a --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/available-size-020.html @@ -0,0 +1,86 @@ + + +Nested Orthogonal Flows vertical-rl Block Container Auto-Sizing + + + + + +

Test passes if the first five boxes are identical, and the last four boxes are identical. + +

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-writing-modes/available-size-021.html b/tests/wpt/tests/css/css-writing-modes/available-size-021.html new file mode 100644 index 00000000000..4547ba1934f --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/available-size-021.html @@ -0,0 +1,94 @@ + + +Nested Orthogonal Flows vertical-rl Block Container Auto-Sizing w/ Contained Ancestor + + + + + + +

Test passes if the first five boxes are identical, and the last four boxes are identical. + +

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-writing-modes/available-size-022.html b/tests/wpt/tests/css/css-writing-modes/available-size-022.html new file mode 100644 index 00000000000..5e6e684adae --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/available-size-022.html @@ -0,0 +1,98 @@ + + +Nested Orthogonal Flows vertical-rl Block Container Auto-Sizing with Contained Ancestor within Scroll Container + + + + + + +

Test passes if the contents of the first five boxes are identical, and of the last four boxes are identical, +except that blue boxes are truncated. + +

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-writing-modes/available-size-023.html b/tests/wpt/tests/css/css-writing-modes/available-size-023.html new file mode 100644 index 00000000000..a1be62a27e2 --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/available-size-023.html @@ -0,0 +1,98 @@ + + +Nested Orthogonal Flows vertical-rl Block Container Auto-Sizing within Contained Scroll Container + + + + + + +

Test passes if the contents of the first five boxes are identical, and of the last four boxes are identical, +except that blue boxes are truncated. + +

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-writing-modes/reference/available-size-020-ref.html b/tests/wpt/tests/css/css-writing-modes/reference/available-size-020-ref.html new file mode 100644 index 00000000000..ecd3ac273a2 --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/reference/available-size-020-ref.html @@ -0,0 +1,72 @@ + + +Reftest Reference + + +

Test passes if the first five boxes are identical, and the last four boxes are identical. + +

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+
diff --git a/tests/wpt/tests/css/css-writing-modes/reference/available-size-022-ref.html b/tests/wpt/tests/css/css-writing-modes/reference/available-size-022-ref.html new file mode 100644 index 00000000000..c1e492ef24d --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/reference/available-size-022-ref.html @@ -0,0 +1,76 @@ + + +Reftest Reference + + +

Test passes if the contents of the first five boxes are identical, and of the last four boxes are identical, +except that blue boxes are truncated. + +

+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + +
+
+ +
+
diff --git a/tests/wpt/tests/css/cssom/insertRule-import-no-sheet-crash.html b/tests/wpt/tests/css/cssom/insertRule-import-no-sheet-crash.html new file mode 100644 index 00000000000..43e82e817f6 --- /dev/null +++ b/tests/wpt/tests/css/cssom/insertRule-import-no-sheet-crash.html @@ -0,0 +1,10 @@ + + diff --git a/tests/wpt/tests/css/motion/offset-path-url-003.html b/tests/wpt/tests/css/motion/offset-path-url-003.html index 4485b52d071..7e0c2fe0b50 100644 --- a/tests/wpt/tests/css/motion/offset-path-url-003.html +++ b/tests/wpt/tests/css/motion/offset-path-url-003.html @@ -5,7 +5,7 @@ - + - + Browser does not support HTML5 Canvas. - + Browser does not support HTML5 Canvas. - + Browser does not support HTML5 Canvas. - + Browser does not support HTML5 Canvas. diff --git a/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.dynamic.html b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.dynamic.html index ad23b2c2338..225fcaa7ba1 100644 --- a/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.dynamic.html +++ b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.dynamic.html @@ -15,24 +15,33 @@ - + Browser does not support HTML5 Canvas. diff --git a/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.empty-ref.html b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.empty-ref.html index fda8b02a344..258ebf6298e 100644 --- a/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.empty-ref.html +++ b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.empty-ref.html @@ -4,13 +4,22 @@ diff --git a/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.empty.canvas.html b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.empty.canvas.html index d1b6e52f796..099081de379 100644 --- a/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.empty.canvas.html +++ b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.empty.canvas.html @@ -8,14 +8,23 @@ diff --git a/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.html b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.html index 372cf8c04cd..b8fca4dd5e7 100644 --- a/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.html +++ b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.lang.html @@ -7,12 +7,12 @@ - - + + Browser does not support HTML5 Canvas. - + Browser does not support HTML5 Canvas. diff --git a/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.unknown.lang-ref.html b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.unknown.lang-ref.html new file mode 100644 index 00000000000..9d12ba0d695 --- /dev/null +++ b/tests/wpt/tests/html/canvas/element/manual/text/canvas.2d.unknown.lang-ref.html @@ -0,0 +1,47 @@ + + +HTML5 Canvas Test Reference: The lang attribute. + + + + + + Browser does not support HTML5 Canvas. + + + Browser does not support HTML5 Canvas. + + diff --git a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.text-clusters-split.tentative.html b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.text-clusters-split.tentative.html index 63c7cce72be..e4f881d03ad 100644 --- a/tests/wpt/tests/html/canvas/element/text/2d.text.measure.text-clusters-split.tentative.html +++ b/tests/wpt/tests/html/canvas/element/text/2d.text.measure.text-clusters-split.tentative.html @@ -28,22 +28,22 @@ _addTest(function(canvas, ctx) { // Should return 6 clusters(A|B|C| |☺️|❤️). _assertSame(clusters.length, 6, "clusters.length", "6"); // A from position 0 to 1. - _assertSame(clusters[0].begin, 0, "clusters[\""+(0)+"\"].begin", "0"); + _assertSame(clusters[0].start, 0, "clusters[\""+(0)+"\"].start", "0"); _assertSame(clusters[0].end, 1, "clusters[\""+(0)+"\"].end", "1"); // B from position 1 to 2. - _assertSame(clusters[1].begin, 1, "clusters[\""+(1)+"\"].begin", "1"); + _assertSame(clusters[1].start, 1, "clusters[\""+(1)+"\"].start", "1"); _assertSame(clusters[1].end, 2, "clusters[\""+(1)+"\"].end", "2"); // C from position 2 to 3. - _assertSame(clusters[2].begin, 2, "clusters[\""+(2)+"\"].begin", "2"); + _assertSame(clusters[2].start, 2, "clusters[\""+(2)+"\"].start", "2"); _assertSame(clusters[2].end, 3, "clusters[\""+(2)+"\"].end", "3"); // space from position 3 to 4. - _assertSame(clusters[3].begin, 3, "clusters[\""+(3)+"\"].begin", "3"); + _assertSame(clusters[3].start, 3, "clusters[\""+(3)+"\"].start", "3"); _assertSame(clusters[3].end, 4, "clusters[\""+(3)+"\"].end", "4"); // ☺️ from position 4 to 6. - _assertSame(clusters[4].begin, 4, "clusters[\""+(4)+"\"].begin", "4"); + _assertSame(clusters[4].start, 4, "clusters[\""+(4)+"\"].start", "4"); _assertSame(clusters[4].end, 6, "clusters[\""+(4)+"\"].end", "6"); // ❤️ from position 6 to 8. - _assertSame(clusters[5].begin, 6, "clusters[\""+(5)+"\"].begin", "6"); + _assertSame(clusters[5].start, 6, "clusters[\""+(5)+"\"].start", "6"); _assertSame(clusters[5].end, 8, "clusters[\""+(5)+"\"].end", "8"); }); diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang-ref.html b/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang-ref.html index aa13564fbba..51eff356b8e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang-ref.html +++ b/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.offscreen.lang-ref.html @@ -3,12 +3,12 @@ HTML5 Canvas Test Reference: The lang attribute in an offscreen canvas - + Browser does not support HTML5 Canvas. - + Browser does not support HTML5 Canvas. diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.offscreen.worker.lang.inherit.html b/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.offscreen.worker.lang.inherit.html index ca0d0ffeee6..43157d54d2b 100644 --- a/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.offscreen.worker.lang.inherit.html +++ b/tests/wpt/tests/html/canvas/offscreen/manual/text/canvas.2d.offscreen.worker.lang.inherit.html @@ -8,12 +8,12 @@ - + Browser does not support HTML5 Canvas. - + Browser does not support HTML5 Canvas. diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-en.js b/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-en.js new file mode 100644 index 00000000000..12e231a6d6a --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-en.js @@ -0,0 +1,21 @@ +self.onmessage = function(e) { + const offscreen = e.data.canvas; + offscreen_ctx = offscreen.getContext('2d'); + + let test_font = new FontFace( + // Lato-Medium is a font with language specific ligatures. + "Lato-Medium", + "url(/fonts/Lato-Medium.ttf)" + ); + + test_font.load().then((font) => { + self.fonts.add(font); + offscreen_ctx.font = '25px Lato-Medium'; + offscreen_ctx.lang = 'en'; + offscreen_ctx.fillText('fi', 5, 50); + + // Draw a single pixel, used to detect that the worker has completed. + offscreen_ctx.fillStyle = '#0f0'; + offscreen_ctx.fillRect(0, 0, 1, 1); + }); +} diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-inherit.js b/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-inherit.js index 20d96d94c93..7be7f1f41f0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-inherit.js +++ b/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-inherit.js @@ -2,10 +2,19 @@ self.onmessage = function(e) { const offscreen = e.data.canvas; offscreen_ctx = offscreen.getContext('2d'); - offscreen_ctx.font = '25px serif'; - offscreen_ctx.fillText('今骨直', 5, 50); + let test_font = new FontFace( + // Lato-Medium is a font with language specific ligatures. + "Lato-Medium", + "url(/fonts/Lato-Medium.ttf)" + ); - // Draw a single pixel, used to detect that the worker has completed. - offscreen_ctx.fillStyle = '#0f0'; - offscreen_ctx.fillRect(0, 0, 1, 1); + test_font.load().then((font) => { + self.fonts.add(font); + offscreen_ctx.font = '25px Lato-Medium'; + offscreen_ctx.fillText('fi', 5, 50); + + // Draw a single pixel, used to detect that the worker has completed. + offscreen_ctx.fillStyle = '#0f0'; + offscreen_ctx.fillRect(0, 0, 1, 1); + }); } diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-ja.js b/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-ja.js deleted file mode 100644 index 585fc066ac3..00000000000 --- a/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-ja.js +++ /dev/null @@ -1,12 +0,0 @@ -self.onmessage = function(e) { - const offscreen = e.data.canvas; - offscreen_ctx = offscreen.getContext('2d'); - - offscreen_ctx.font = '25px serif'; - offscreen_ctx.lang = 'ja'; - offscreen_ctx.fillText('今骨直', 5, 50); - - // Draw a single pixel, used to detect that the worker has completed. - offscreen_ctx.fillStyle = '#0f0'; - offscreen_ctx.fillRect(0, 0, 1, 1); -} diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-tr.js b/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-tr.js new file mode 100644 index 00000000000..047b06d6921 --- /dev/null +++ b/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-tr.js @@ -0,0 +1,21 @@ +self.onmessage = function(e) { + const offscreen = e.data.canvas; + offscreen_ctx = offscreen.getContext('2d'); + + let test_font = new FontFace( + // Lato-Medium is a font with language specific ligatures. + "Lato-Medium", + "url(/fonts/Lato-Medium.ttf)" + ); + + test_font.load().then((font) => { + self.fonts.add(font); + offscreen_ctx.font = '25px Lato-Medium'; + offscreen_ctx.lang = 'tr'; + offscreen_ctx.fillText('fi', 5, 50); + + // Draw a single pixel, used to detect that the worker has completed. + offscreen_ctx.fillStyle = '#0f0'; + offscreen_ctx.fillRect(0, 0, 1, 1); + }); +} diff --git a/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-zh-CN.js b/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-zh-CN.js deleted file mode 100644 index cbededf3384..00000000000 --- a/tests/wpt/tests/html/canvas/offscreen/manual/text/text-lang-worker-zh-CN.js +++ /dev/null @@ -1,12 +0,0 @@ -self.onmessage = function(e) { - const offscreen = e.data.canvas; - offscreen_ctx = offscreen.getContext('2d'); - - offscreen_ctx.font = '25px serif'; - offscreen_ctx.lang = 'zh-CN'; - offscreen_ctx.fillText('今骨直', 5, 50); - - // Draw a single pixel, used to detect that the worker has completed. - offscreen_ctx.fillStyle = '#0f0'; - offscreen_ctx.fillRect(0, 0, 1, 1); -} diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-split.tentative.html b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-split.tentative.html index 6a5fd475795..cf24a873c31 100644 --- a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-split.tentative.html +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-split.tentative.html @@ -29,22 +29,22 @@ t.step(function() { // Should return 6 clusters(A|B|C| |☺️|❤️). _assertSame(clusters.length, 6, "clusters.length", "6"); // A from position 0 to 1. - _assertSame(clusters[0].begin, 0, "clusters[\""+(0)+"\"].begin", "0"); + _assertSame(clusters[0].start, 0, "clusters[\""+(0)+"\"].start", "0"); _assertSame(clusters[0].end, 1, "clusters[\""+(0)+"\"].end", "1"); // B from position 1 to 2. - _assertSame(clusters[1].begin, 1, "clusters[\""+(1)+"\"].begin", "1"); + _assertSame(clusters[1].start, 1, "clusters[\""+(1)+"\"].start", "1"); _assertSame(clusters[1].end, 2, "clusters[\""+(1)+"\"].end", "2"); // C from position 2 to 3. - _assertSame(clusters[2].begin, 2, "clusters[\""+(2)+"\"].begin", "2"); + _assertSame(clusters[2].start, 2, "clusters[\""+(2)+"\"].start", "2"); _assertSame(clusters[2].end, 3, "clusters[\""+(2)+"\"].end", "3"); // space from position 3 to 4. - _assertSame(clusters[3].begin, 3, "clusters[\""+(3)+"\"].begin", "3"); + _assertSame(clusters[3].start, 3, "clusters[\""+(3)+"\"].start", "3"); _assertSame(clusters[3].end, 4, "clusters[\""+(3)+"\"].end", "4"); // ☺️ from position 4 to 6. - _assertSame(clusters[4].begin, 4, "clusters[\""+(4)+"\"].begin", "4"); + _assertSame(clusters[4].start, 4, "clusters[\""+(4)+"\"].start", "4"); _assertSame(clusters[4].end, 6, "clusters[\""+(4)+"\"].end", "6"); // ❤️ from position 6 to 8. - _assertSame(clusters[5].begin, 6, "clusters[\""+(5)+"\"].begin", "6"); + _assertSame(clusters[5].start, 6, "clusters[\""+(5)+"\"].start", "6"); _assertSame(clusters[5].end, 8, "clusters[\""+(5)+"\"].end", "8"); t.done(); diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-split.tentative.worker.js b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-split.tentative.worker.js index f98c323e0e2..e8d7519b48a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-split.tentative.worker.js +++ b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.measure.text-clusters-split.tentative.worker.js @@ -24,22 +24,22 @@ t.step(function() { // Should return 6 clusters(A|B|C| |☺️|❤️). _assertSame(clusters.length, 6, "clusters.length", "6"); // A from position 0 to 1. - _assertSame(clusters[0].begin, 0, "clusters[\""+(0)+"\"].begin", "0"); + _assertSame(clusters[0].start, 0, "clusters[\""+(0)+"\"].start", "0"); _assertSame(clusters[0].end, 1, "clusters[\""+(0)+"\"].end", "1"); // B from position 1 to 2. - _assertSame(clusters[1].begin, 1, "clusters[\""+(1)+"\"].begin", "1"); + _assertSame(clusters[1].start, 1, "clusters[\""+(1)+"\"].start", "1"); _assertSame(clusters[1].end, 2, "clusters[\""+(1)+"\"].end", "2"); // C from position 2 to 3. - _assertSame(clusters[2].begin, 2, "clusters[\""+(2)+"\"].begin", "2"); + _assertSame(clusters[2].start, 2, "clusters[\""+(2)+"\"].start", "2"); _assertSame(clusters[2].end, 3, "clusters[\""+(2)+"\"].end", "3"); // space from position 3 to 4. - _assertSame(clusters[3].begin, 3, "clusters[\""+(3)+"\"].begin", "3"); + _assertSame(clusters[3].start, 3, "clusters[\""+(3)+"\"].start", "3"); _assertSame(clusters[3].end, 4, "clusters[\""+(3)+"\"].end", "4"); // ☺️ from position 4 to 6. - _assertSame(clusters[4].begin, 4, "clusters[\""+(4)+"\"].begin", "4"); + _assertSame(clusters[4].start, 4, "clusters[\""+(4)+"\"].start", "4"); _assertSame(clusters[4].end, 6, "clusters[\""+(4)+"\"].end", "6"); // ❤️ from position 6 to 8. - _assertSame(clusters[5].begin, 6, "clusters[\""+(5)+"\"].begin", "6"); + _assertSame(clusters[5].start, 6, "clusters[\""+(5)+"\"].start", "6"); _assertSame(clusters[5].end, 8, "clusters[\""+(5)+"\"].end", "8"); t.done(); }); diff --git a/tests/wpt/tests/html/canvas/resources/canvas-promise-test-worker.js b/tests/wpt/tests/html/canvas/resources/canvas-promise-test-worker.js new file mode 100644 index 00000000000..f5410efca5b --- /dev/null +++ b/tests/wpt/tests/html/canvas/resources/canvas-promise-test-worker.js @@ -0,0 +1,24 @@ +/** Worker script needed by canvas-test.js. */ + +/** + * Worker version of `canvasPromiseTest()`, running `testBody` with an + * `OffscreenCanvas` in a worker. For more details, see the main thread version + * of this function in `canvas-test.js`. + */ +function canvasPromiseTest( + testBody, description, + {testTypes = Object.values(CanvasTestType)} = {}) { + if (testTypes.includes(CanvasTestType.WORKER)) { + promise_test(() => testBody(new OffscreenCanvas(300, 150)), + 'Worker: ' + description); + } +} + +/** + * The function `runCanvasTestsInWorker()` in `canvas-test.js` re-executes the + * current script in a worker. That script inevitably contain the call to + * `runCanvasTestsInWorker()`, which triggered the whole thing. For that call + * to succeed, the worker must have a definition for that function. There's + * nothing to do here though, the script is already running in a worker. + */ +function runCanvasTestsInWorker() {} diff --git a/tests/wpt/tests/html/canvas/resources/canvas-promise-test.js b/tests/wpt/tests/html/canvas/resources/canvas-promise-test.js new file mode 100644 index 00000000000..1b2e2b3a584 --- /dev/null +++ b/tests/wpt/tests/html/canvas/resources/canvas-promise-test.js @@ -0,0 +1,144 @@ +/** + * Framework for executing tests with HTMLCanvasElement, main thread + * OffscreenCanvas and worker OffscreenCanvas. Canvas tests are specified using + * calls to `canvasPromiseTest`, which runs the test on the main thread, using + * an HTML and an OffscreenCanvas. Calling `runCanvasTestsInWorker` at the + * script level then re-execute the whole script in a worker, this time using + * only OffscreenCanvas objects. Example usage: + * + * +*/ + +/** + * Enum listing all test types emitted by `canvasPromiseTest()`. + */ +const CanvasTestType = Object.freeze({ + HTML: Symbol("html"), + DETACHED_HTML: Symbol("detached_html"), + OFFSCREEN: Symbol("offscreen"), + WORKER: Symbol("worker") +}); + +ALL_CANVAS_TEST_TYPES = Object.values(CanvasTestType); +DEFAULT_CANVAS_TEST_TYPES = [ + CanvasTestType.HTML, + CanvasTestType.OFFSCREEN, + CanvasTestType.WORKER, +]; +HTML_CANVAS_ELEMENT_TEST_TYPES = [ + CanvasTestType.HTML, + CanvasTestType.DETACHED_HTML, +]; +OFFSCREEN_CANVAS_TEST_TYPES = [ + CanvasTestType.OFFSCREEN, + CanvasTestType.WORKER, +]; +MAIN_THREAD_CANVAS_TEST_TYPES = [ + CanvasTestType.HTML, + CanvasTestType.DETACHED_HTML, + CanvasTestType.OFFSCREEN, +]; +WORKER_CANVAS_TEST_TYPES = [ + CanvasTestType.WORKER, +]; + +/** + * Run `testBody` in a `promise_test` against multiple types of canvases. By + * default, the test is executed against an HTMLCanvasElement, a main thread + * OffscreenCanvas and a worker OffscreenCanvas, though `testTypes` can be used + * only enable a subset of these. `testBody` must be a function accepting a + * canvas as parameter and returning a promise that resolves on test completion. + * + * This function has two implementations. The version below runs the test on the + * main thread and another version in `canvas-worker-test.js` runs it in a + * worker. The worker invocation is launched by calling `runCanvasTestsInWorker` + * at the script level. + */ +function canvasPromiseTest( + testBody, description, + {testTypes = DEFAULT_CANVAS_TEST_TYPES} = {}) { + if (testTypes.includes(CanvasTestType.WORKER)) { + setup(() => { + const currentScript = document.currentScript; + assert_true( + currentScript.classList.contains('runCanvasTestsInWorkerInvoked'), + 'runCanvasTestsInWorker() must be called in the current script ' + + 'before calling canvasPromiseTest with CanvasTestType.WORKER test ' + + 'type, or else the test won\'t have worker coverage.'); + + currentScript.classList.add('canvasWorkerTestAdded'); + }); + } + + if (testTypes.includes(CanvasTestType.HTML)) { + promise_test(async () => { + if (!document.body) { + document.documentElement.appendChild(document.createElement("body")); + } + const canvas = document.createElement('canvas'); + document.body.appendChild(canvas); + await testBody(canvas); + document.body.removeChild(canvas); + }, 'HTMLCanvasElement: ' + description); + } + + if (testTypes.includes(CanvasTestType.DETACHED_HTML)) { + promise_test(() => testBody(document.createElement('canvas')), + 'Detached HTMLCanvasElement: ' + description); + } + + if (testTypes.includes(CanvasTestType.OFFSCREEN)) { + promise_test(() => testBody(new OffscreenCanvas(300, 150)), + 'OffscreenCanvas: ' + description); + } +} + +/** + * Run all the canvasPromiseTest from the current script in a worker. + * If the tests depend on external scripts, these must be specified as a list + * via the `dependencies` parameter so that the worker could load them. + */ +function runCanvasTestsInWorker({dependencies = []} = {}) { + const currentScript = document.currentScript; + // Keep track of whether runCanvasTestsInWorker was invoked on the current + // script. `canvasPromiseTest` will fail if `runCanvasTestsInWorker` hasn't + // been called, to prevent accidentally omitting worker coverage. + setup(() => { + assert_false( + currentScript.classList.contains('runCanvasTestsInWorkerInvoked'), + 'runCanvasTestsInWorker() can\'t be invoked twice on the same script.'); + currentScript.classList.add('runCanvasTestsInWorkerInvoked'); + }); + + promise_setup(async () => { + const allDeps = [ + '/resources/testharness.js', + '/html/canvas/resources/canvas-promise-test.js', + // canvas-promise-test-worker.js overrides parts of canvas-test.js. + '/html/canvas/resources/canvas-promise-test-worker.js', + ].concat(dependencies); + + const dependencyScripts = + await Promise.all(allDeps.map(dep => fetch(dep).then(r => r.text()))); + const canvasTests = currentScript.textContent; + const allScripts = dependencyScripts.concat([canvasTests, 'done();']); + + const workerBlob = new Blob(allScripts); + const worker = new Worker(URL.createObjectURL(workerBlob)); + fetch_tests_from_worker(worker); + }); + + promise_setup(async () => { + await new Promise(resolve => step_timeout(resolve, 0)); + assert_true( + currentScript.classList.contains('canvasWorkerTestAdded'), + 'runCanvasTestsInWorker() should not be called if no ' + + 'canvasPromiseTest uses the CanvasTestType.WORKER test type.'); + }); +} diff --git a/tests/wpt/tests/html/canvas/tools/yaml/text.yaml b/tests/wpt/tests/html/canvas/tools/yaml/text.yaml index c572f00cb0c..48a0429f267 100644 --- a/tests/wpt/tests/html/canvas/tools/yaml/text.yaml +++ b/tests/wpt/tests/html/canvas/tools/yaml/text.yaml @@ -2058,22 +2058,22 @@ // Should return 6 clusters(A|B|C| |☺️|❤️). @assert clusters.length === 6; // A from position 0 to 1. - @assert clusters[0].begin === 0; + @assert clusters[0].start === 0; @assert clusters[0].end === 1; // B from position 1 to 2. - @assert clusters[1].begin === 1; + @assert clusters[1].start === 1; @assert clusters[1].end === 2; // C from position 2 to 3. - @assert clusters[2].begin === 2; + @assert clusters[2].start === 2; @assert clusters[2].end === 3; // space from position 3 to 4. - @assert clusters[3].begin === 3; + @assert clusters[3].start === 3; @assert clusters[3].end === 4; // ☺️ from position 4 to 6. - @assert clusters[4].begin === 4; + @assert clusters[4].start === 4; @assert clusters[4].end === 6; // ❤️ from position 6 to 8. - @assert clusters[5].begin === 6; + @assert clusters[5].start === 6; @assert clusters[5].end === 8; - name: 2d.text.measure.text-clusters-exceptions.tentative diff --git a/tests/wpt/tests/html/editing/the-hidden-attribute/hidden-until-found-idl.html b/tests/wpt/tests/html/editing/the-hidden-attribute/hidden-until-found-idl.html new file mode 100644 index 00000000000..dfeee855dcb --- /dev/null +++ b/tests/wpt/tests/html/editing/the-hidden-attribute/hidden-until-found-idl.html @@ -0,0 +1,20 @@ + + + + + + + +
div
+ + diff --git a/tests/wpt/tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-removes-queued-error-event.html b/tests/wpt/tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-removes-queued-error-event.html index 54d5c28dad5..f7cfabf64b6 100644 --- a/tests/wpt/tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-removes-queued-error-event.html +++ b/tests/wpt/tests/html/semantics/embedded-content/media-elements/loading-the-media-resource/load-removes-queued-error-event.html @@ -23,7 +23,26 @@ async_test(function(t) { } }); v.src = ''; -}, 'video error event'); +}, 'video error event with load()'); + +async_test(function(t) { + var v = document.createElement('video'); + var events = []; + v.onloadstart = v.onerror = v.onsuspend = t.step_func(function(e) { + events.push(e.type); + if (events.length == 1) { + // Wait for a usable resource to check that no 'error' event is pending. + v.src = '/media/sound_0.mp3'; + } else if (events.length == 3) { + // 'suspend' is queued "if the user agent intends to not attempt to + // fetch the resource", "when a media element's download has been + // suspended", or "once the entire media resource has been fetched". + assert_array_equals(events, ['loadstart', 'loadstart', 'suspend']); + t.done(); + } + }); + v.src = ''; +}, 'video error event with src resource'); async_test(function(t) { var v = document.createElement('video'); diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html b/tests/wpt/tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html index b2d3b53b558..f7d47b3640d 100644 --- a/tests/wpt/tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html +++ b/tests/wpt/tests/html/semantics/embedded-content/the-img-element/current-pixel-density/basic.html @@ -15,12 +15,9 @@ - - - + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-img-element/source-relevant-mutations.html b/tests/wpt/tests/html/semantics/embedded-content/the-img-element/source-relevant-mutations.html new file mode 100644 index 00000000000..88ea61407f9 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-img-element/source-relevant-mutations.html @@ -0,0 +1,88 @@ + +img should only look at a parent picture element + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css index 9cac1c5899c..13a500a6197 100644 --- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/resources/customizable-select-styles.css @@ -74,6 +74,10 @@ min-block-size: max(24px, 1lh); } +.customizable-select-button.disabled { + color: color-mix(in srgb, currentColor 50%, transparent); +} + .customizable-select-button.hover { background-color: color-mix(in lab, currentColor 10%, transparent); } diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-ref.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-ref.html new file mode 100644 index 00000000000..cee0175b715 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled-ref.html @@ -0,0 +1,6 @@ + + + +
+ option +
diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled.tentative.html new file mode 100644 index 00000000000..a20fb4e0904 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-disabled.tentative.html @@ -0,0 +1,13 @@ + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html index 28abf1534c1..2a9280e1ae8 100644 --- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-events.tentative.html @@ -48,7 +48,13 @@ eventList = []; } function getEventHandler(description) { - return (e) => eventList.push(`${e.type} on ${e.target.className} at ${description}`); + return (e) => { + let focused = ''; + if (e.type == 'keydown' || e.type == 'keyup') { + focused = ` focused: ${document.activeElement.className || document.activeElement.tagName}.`; + } + eventList.push(`${e.type} on ${e.target.className} at ${description}. open: ${select.matches(':open')}.${focused}`); + }; } events.forEach(evt => wrapper.addEventListener(evt,getEventHandler('wrapper'))); events.forEach(evt => select.addEventListener(evt,getEventHandler('select'))); @@ -58,12 +64,18 @@ await test_driver.click(select); assert_true(select.matches(':open')); assert_events([ - 'pointerdown on select at select', 'pointerdown on select at wrapper', - 'mousedown on select at select', 'mousedown on select at wrapper', - 'focusin on option1 at select', 'focusin on option1 at wrapper', - 'pointerup on select at select', 'pointerup on select at wrapper', - 'mouseup on select at select', 'mouseup on select at wrapper', - 'click on select at select', 'click on select at wrapper' + 'pointerdown on select at select. open: false.', + 'pointerdown on select at wrapper. open: false.', + 'mousedown on select at select. open: false.', + 'mousedown on select at wrapper. open: false.', + 'focusin on option1 at select. open: true.', + 'focusin on option1 at wrapper. open: true.', + 'pointerup on select at select. open: true.', + 'pointerup on select at wrapper. open: true.', + 'mouseup on select at select. open: true.', + 'mouseup on select at wrapper. open: true.', + 'click on select at select. open: true.', + 'click on select at wrapper. open: true.' ],'after showing, events from test_driver.click'); // Press arrow-down, and preventDefault @@ -71,18 +83,24 @@ await test_driver.send_keys(document.activeElement, keys.ArrowDown); assert_equals(select.selectedOptions[0].innerText,'one'); assert_events([ - 'keydown on option1 at select', 'keydown on option1 at wrapper', - 'keyup on option1 at select', 'keyup on option1 at wrapper' + 'keydown on option1 at select. open: true. focused: option1.', + 'keydown on option1 at wrapper. open: true. focused: option1.', + 'keyup on option1 at select. open: true. focused: option1.', + 'keyup on option1 at wrapper. open: true. focused: option1.' ],'arrow down, with preventDefault'); // Press arrow-down, no preventDefault await test_driver.send_keys(document.activeElement, keys.ArrowDown); assert_equals(select.selectedOptions[0].innerText,'one','selection does not follow focus'); assert_events([ - 'keydown on option1 at select', 'keydown on option1 at wrapper', - 'focusout on option1 at select', 'focusout on option1 at wrapper', - 'focusin on option2 at select', 'focusin on option2 at wrapper', - 'keyup on option2 at select', 'keyup on option2 at wrapper' + 'keydown on option1 at select. open: true. focused: option1.', + 'keydown on option1 at wrapper. open: true. focused: option1.', + 'focusout on option1 at select. open: true.', + 'focusout on option1 at wrapper. open: true.', + 'focusin on option2 at select. open: true.', + 'focusin on option2 at wrapper. open: true.', + 'keyup on option2 at select. open: true. focused: option2.', + 'keyup on option2 at wrapper. open: true. focused: option2.' ],'arrow down, no preventDefault'); // Press escape, and preventDefault @@ -90,18 +108,24 @@ await test_driver.send_keys(document.activeElement, keys.Escape); assert_true(select.matches(':open')); assert_events([ - 'keydown on option2 at select', 'keydown on option2 at wrapper', - 'keyup on option2 at select', 'keyup on option2 at wrapper' + 'keydown on option2 at select. open: true. focused: option2.', + 'keydown on option2 at wrapper. open: true. focused: option2.', + 'keyup on option2 at select. open: true. focused: option2.', + 'keyup on option2 at wrapper. open: true. focused: option2.' ],'escape, with preventDefault'); // Press escape, no preventDefault await test_driver.send_keys(document.activeElement, keys.Escape); assert_false(select.matches(':open'),'select should be closed escape no preventDefault'); assert_events([ - 'keydown on option2 at select', 'keydown on option2 at wrapper', - 'focusout on option2 at select', 'focusout on option2 at wrapper', - 'focusin on select at select', 'focusin on select at wrapper', - 'keyup on select at select', 'keyup on select at wrapper' + 'keydown on option2 at select. open: true. focused: option2.', + 'keydown on option2 at wrapper. open: true. focused: option2.', + 'focusout on option2 at select. open: false.', + 'focusout on option2 at wrapper. open: false.', + 'focusin on select at select. open: false.', + 'focusin on select at wrapper. open: false.', + 'keyup on select at select. open: false. focused: select.', + 'keyup on select at wrapper. open: false. focused: select.' ],'escape, no preventDefault'); // Re-open the picker and hit arrow-down again. @@ -118,8 +142,10 @@ assert_true(select.matches(':open')); assert_equals(select.value,'one','value has not changed'); assert_events([ - 'keydown on option2 at select', 'keydown on option2 at wrapper', - 'keyup on option2 at select', 'keyup on option2 at wrapper' + 'keydown on option2 at select. open: true. focused: option2.', + 'keydown on option2 at wrapper. open: true. focused: option2.', + 'keyup on option2 at select. open: true. focused: option2.', + 'keyup on option2 at wrapper. open: true. focused: option2.' ],'enter, with preventDefault'); // Press enter to select an option, no preventDefault @@ -127,11 +153,18 @@ assert_false(select.matches(':open'),'select should be closed enter no preventDefault'); assert_equals(select.value,'two'); assert_events([ - 'keydown on option2 at select', 'keydown on option2 at wrapper', - 'input on select at select', 'input on select at wrapper', 'change on select at select', - 'change on select at wrapper', 'focusout on option2 at select', 'focusout on option2 at wrapper', - 'focusin on select at select', 'focusin on select at wrapper', - 'keyup on select at select', 'keyup on select at wrapper' + 'keydown on option2 at select. open: true. focused: option2.', + 'keydown on option2 at wrapper. open: true. focused: option2.', + 'input on select at select. open: true.', + 'input on select at wrapper. open: true.', + 'change on select at select. open: true.', + 'change on select at wrapper. open: true.', + 'focusout on option2 at select. open: false.', + 'focusout on option2 at wrapper. open: false.', + 'focusin on select at select. open: false.', + 'focusin on select at wrapper. open: false.', + 'keyup on select at select. open: false. focused: select.', + 'keyup on select at wrapper. open: false. focused: select.' ],'enter, no preventDefault'); // Re-open the picker. @@ -149,13 +182,20 @@ .send(); assert_true(select.matches(':open'),'click should be cancelled'); assert_events([ - 'pointerdown on option1 at select', 'pointerdown on option1 at wrapper', - 'mousedown on option1 at select', 'mousedown on option1 at wrapper', - 'focusout on option2 at select', 'focusout on option2 at wrapper', - 'focusin on option1 at select', 'focusin on option1 at wrapper', - 'pointerup on option1 at select', 'pointerup on option1 at wrapper', - 'mouseup on option1 at select', 'mouseup on option1 at wrapper', - 'click on option1 at select', 'click on option1 at wrapper' + 'pointerdown on option1 at select. open: true.', + 'pointerdown on option1 at wrapper. open: true.', + 'mousedown on option1 at select. open: true.', + 'mousedown on option1 at wrapper. open: true.', + 'focusout on option2 at select. open: true.', + 'focusout on option2 at wrapper. open: true.', + 'focusin on option1 at select. open: true.', + 'focusin on option1 at wrapper. open: true.', + 'pointerup on option1 at select. open: true.', + 'pointerup on option1 at wrapper. open: true.', + 'mouseup on option1 at select. open: true.', + 'mouseup on option1 at wrapper. open: true.', + 'click on option1 at select. open: true.', + 'click on option1 at wrapper. open: true.' ],'click option, with preventDefault'); // Click on an option, no preventDefault @@ -167,15 +207,24 @@ .send(); assert_false(select.matches(':open'),'select should be closed click option no preventDefault'); assert_events([ - 'pointerdown on option1 at select', 'pointerdown on option1 at wrapper', - 'mousedown on option1 at select', 'mousedown on option1 at wrapper', - 'pointerup on option1 at select', 'pointerup on option1 at wrapper', - 'mouseup on option1 at select', 'mouseup on option1 at wrapper', - 'input on select at select', 'input on select at wrapper', - 'change on select at select', 'change on select at wrapper', - 'focusout on option1 at select', 'focusout on option1 at wrapper', - 'focusin on select at select', 'focusin on select at wrapper', - 'click on option1 at select', 'click on option1 at wrapper' + 'pointerdown on option1 at select. open: true.', + 'pointerdown on option1 at wrapper. open: true.', + 'mousedown on option1 at select. open: true.', + 'mousedown on option1 at wrapper. open: true.', + 'pointerup on option1 at select. open: true.', + 'pointerup on option1 at wrapper. open: true.', + 'mouseup on option1 at select. open: true.', + 'mouseup on option1 at wrapper. open: true.', + 'input on select at select. open: true.', + 'input on select at wrapper. open: true.', + 'change on select at select. open: true.', + 'change on select at wrapper. open: true.', + 'focusout on option1 at select. open: false.', + 'focusout on option1 at wrapper. open: false.', + 'focusin on select at select. open: false.', + 'focusin on select at wrapper. open: false.', + 'click on option1 at select. open: false.', + 'click on option1 at wrapper. open: false.' ],'click option, no preventDefault'); },`Events, ${wrapper.dataset.description}`); }); diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-picker-starting-style.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-picker-starting-style.tentative.html index c653016875a..2be9f388975 100644 --- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-picker-starting-style.tentative.html +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-picker-starting-style.tentative.html @@ -18,15 +18,24 @@ select, ::picker(select) { ::picker(select) { color: white; } +option { + background-color: black; +} .animate::picker(select) { transition: color 100s steps(2, start); } +.animate option { + transition: background-color 100s steps(2, start); +} @starting-style { .animate::picker(select) { color: black; } + .animate option { + background-color: white; + } } @@ -43,5 +52,7 @@ promise_test(async () => { const style = getComputedStyle(option); assert_equals(style.color, 'rgb(128, 128, 128)', 'color should transition based on @starting-style.'); + assert_equals(style.backgroundColor, 'rgb(128, 128, 128)', + 'background-color should transition based on @starting-style.'); }, '@starting-style should work on ::picker(select) just like a popover.'); diff --git a/tests/wpt/tests/html/semantics/popovers/popover-focus-2.html b/tests/wpt/tests/html/semantics/popovers/popover-focus-2.html index 3c1c6bed95c..6f361698f54 100644 --- a/tests/wpt/tests/html/semantics/popovers/popover-focus-2.html +++ b/tests/wpt/tests/html/semantics/popovers/popover-focus-2.html @@ -3,6 +3,7 @@ Popover focus behaviors + @@ -10,7 +11,6 @@ -
@@ -121,8 +121,28 @@ promise_test(async t => { invoker3.removeAttribute('popovertarget'); }); await testPopoverFocusNavigation(); -}, "Popover focus navigation with declarative invocation"); - +}, "Popover focus navigation with popovertarget invocation"); +promise_test(async t => { + invoker0.setAttribute('commandfor', 'popover0'); + invoker1.setAttribute('commandfor', 'popover1'); + invoker2.setAttribute('commandfor', 'popover2'); + invoker3.setAttribute('commandfor', 'popover3'); + invoker0.setAttribute('command', 'toggle-popover'); + invoker1.setAttribute('command', 'toggle-popover'); + invoker2.setAttribute('command', 'toggle-popover'); + invoker3.setAttribute('command', 'toggle-popover'); + t.add_cleanup(() => { + invoker0.removeAttribute('commandfor'); + invoker1.removeAttribute('commandfor'); + invoker2.removeAttribute('commandfor'); + invoker3.removeAttribute('commandfor'); + invoker0.removeAttribute('command'); + invoker1.removeAttribute('command'); + invoker2.removeAttribute('command'); + invoker3.removeAttribute('command'); + }); + await testPopoverFocusNavigation(); +}, "Popover focus navigation with command/commandfor invocation"); promise_test(async t => { const invoker0Click = () => { popover0.togglePopover({ source: invoker0 }); @@ -149,11 +169,10 @@ promise_test(async t => { await testPopoverFocusNavigation() }, "Popover focus navigation with imperative invocation"); -
- - + +
@@ -167,16 +186,41 @@ async function testCircularReferenceTabNavigation() { promise_test(async t => { circular0.setAttribute('popovertarget', 'popover4'); circular1.setAttribute('popovertarget', 'popover4'); + circular1.setAttribute('popovertargetaction', 'hide'); circular2.setAttribute('popovertarget', 'popover4'); + circular2.setAttribute('popovertargetaction', 'show'); circular3.setAttribute('popovertarget', 'popover4'); t.add_cleanup(() => { circular0.removeAttribute('popovertarget'); circular1.removeAttribute('popovertarget'); + circular1.removeAttribute('popovertargetaction'); circular2.removeAttribute('popovertarget'); + circular2.removeAttribute('popovertargetaction'); circular3.removeAttribute('popovertarget'); }); await testCircularReferenceTabNavigation(); -}, "Circular reference tab navigation with declarative invocation"); +}, "Circular reference tab navigation with popovertarget invocation"); +promise_test(async t => { + circular0.setAttribute('commandfor', 'popover4'); + circular1.setAttribute('commandfor', 'popover4'); + circular2.setAttribute('commandfor', 'popover4'); + circular3.setAttribute('commandfor', 'popover4'); + circular0.setAttribute('command', 'toggle-popover'); + circular1.setAttribute('command', 'hide-popover'); + circular2.setAttribute('command', 'show-popover'); + circular3.setAttribute('command', 'toggle-popover'); + t.add_cleanup(() => { + circular0.removeAttribute('commandfor'); + circular1.removeAttribute('commandfor'); + circular2.removeAttribute('commandfor'); + circular3.removeAttribute('commandfor'); + circular0.removeAttribute('command'); + circular1.removeAttribute('command'); + circular2.removeAttribute('command'); + circular3.removeAttribute('command'); + }); + await testCircularReferenceTabNavigation(); +}, "Circular reference tab navigation with command/commandfor invocation"); promise_test(async t => { const circular0Click = () => { popover4.togglePopover({ source: circular0 }); @@ -203,18 +247,17 @@ promise_test(async t => { await testCircularReferenceTabNavigation(); }, "Circular reference tab navigation with imperative invocation"); -
- +
- +
-
Popover with
@@ -286,7 +348,17 @@ promise_test(async t => { invoker.removeAttribute('popovertarget'); }); await testPopoverFocusReturn2(); -}, "Popover focus only returns to invoker when focus is within the popover with declarative invocation"); +}, "Popover focus only returns to invoker when focus is within the popover with popovertarget invocation"); +promise_test(async t => { + const invoker = document.querySelector('#focus-return2>button'); + invoker.setAttribute('command', 'toggle-popover'); + invoker.setAttribute('commandfor', 'focus-return2-p'); + t.add_cleanup(() => { + invoker.removeAttribute('command'); + invoker.removeAttribute('commandfor'); + }); + await testPopoverFocusReturn2(); +}, "Popover focus only returns to invoker when focus is within the popover with command/commandfor invocation"); promise_test(async t => { const invoker = document.querySelector('#focus-return2>button'); const popover = document.querySelector('#focus-return2>[popover]'); @@ -300,7 +372,6 @@ promise_test(async t => { await testPopoverFocusReturn2(); }, "Popover focus only returns to invoker when focus is within the popover with imperative invocation"); -
@@ -346,7 +417,27 @@ promise_test(async t => { nestedPopover.hidePopover(); }); await testNoFocusCandidate(); -}, "Cases where the next focus candidate isn't in the direct parent scope with declarative invocation"); +}, "Cases where the next focus candidate isn't in the direct parent scope with popovertarget invocation"); +promise_test(async t => { + const invoker = document.querySelector('#no-focus-candidate>button'); + const popover = document.querySelector('#no-focus-candidate>[popover]'); + const nestedButton = popover.querySelector('button'); + const nestedPopover = document.querySelector('#no-focus-candidate>[popover]>[popover]'); + invoker.setAttribute('commandfor', 'no-focus-candidate-p'); + invoker.setAttribute('command', 'toggle-popover'); + nestedButton.setAttribute('commandfor', 'no-focus-candidate-p2'); + nestedButton.setAttribute('command', 'toggle-popover'); + t.add_cleanup(() => { + invoker.removeAttribute('command'); + invoker.removeAttribute('commandfor'); + nestedButton.removeAttribute('command'); + nestedButton.removeAttribute('commandfor'); + nestedButton.disabled = false; + popover.hidePopover(); + nestedPopover.hidePopover(); + }); + await testNoFocusCandidate(); +}, "Cases where the next focus candidate isn't in the direct parent scope with command/commandfor invocation"); promise_test(async t => { const invoker = document.querySelector('#no-focus-candidate>button'); const popover = document.querySelector('#no-focus-candidate>[popover]'); diff --git a/tests/wpt/tests/html/semantics/popovers/popover-light-dismiss-command.html b/tests/wpt/tests/html/semantics/popovers/popover-light-dismiss-command.html new file mode 100644 index 00000000000..b0149f8925f --- /dev/null +++ b/tests/wpt/tests/html/semantics/popovers/popover-light-dismiss-command.html @@ -0,0 +1,333 @@ + + +Popover light dismiss behavior with command/commandfor + + + + + + + + + + + + + +Outside all popovers +
+ Inside popover 1 + + Inside popover 1 after button +
+ Inside popover 2 +
+
+ + + + +
Inside popover 3
+
Inside popover 5 + +
+ + + + + + +
+ + Inside popover 8 after button +
+ + + +
Popover 1 + +
Popover 2 + + +
+
Popover 3 + +
+

Popover 4

+
+ + + +
Popover 29
+ + + +
Popover 30
+ + + diff --git a/tests/wpt/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/WEB_FEATURES.yml b/tests/wpt/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/WEB_FEATURES.yml new file mode 100644 index 00000000000..fb5c8374b7a --- /dev/null +++ b/tests/wpt/tests/html/webappapis/dynamic-markup-insertion/html-unsafe-methods/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: parse-html-unsafe + files: "**" diff --git a/tests/wpt/tests/infrastructure/metadata/infrastructure/browsers/firefox/prefs.html.ini b/tests/wpt/tests/infrastructure/metadata/infrastructure/browsers/firefox/prefs.html.ini index 7b78d216de8..f5b5f403b22 100644 --- a/tests/wpt/tests/infrastructure/metadata/infrastructure/browsers/firefox/prefs.html.ini +++ b/tests/wpt/tests/infrastructure/metadata/infrastructure/browsers/firefox/prefs.html.ini @@ -1,2 +1,6 @@ [prefs.html] prefs: ["browser.display.foreground_color:#00FF00"] + + [Ensure that setting gecko prefs works] + expected: + if product == "firefox": FAIL # https://bugzilla.mozilla.org/show_bug.cgi?id=1954181 diff --git a/tests/wpt/tests/input-events/textarea-insertfrompaste-type-inputevent-data-withnewline-atend.html b/tests/wpt/tests/input-events/textarea-insertfrompaste-type-inputevent-data-withnewline-atend.html index f126d4f2531..58c004b53eb 100644 --- a/tests/wpt/tests/input-events/textarea-insertfrompaste-type-inputevent-data-withnewline-atend.html +++ b/tests/wpt/tests/input-events/textarea-insertfrompaste-type-inputevent-data-withnewline-atend.html @@ -26,8 +26,8 @@ await utils.sendCopyShortcutKey(); await utils.sendPasteShortcutKey(); // Event data should now be set with the first line of the text. - assert_equals(selectedData, "Copying and pasting first line including interchange newline\n"); - assert_equals(eventData, selectedData); + assert_equals(selectedData.replace(/\r\n/g, "\n"), "Copying and pasting first line including interchange newline\n"); + assert_equals(eventData, selectedData.replace(/\r\n/g, "\n")); }, "Input event data for inputType insertFromPaste should be set"); diff --git a/tests/wpt/tests/input-events/textarea-insertfrompaste-type-inputevent-data-withnewline-atstart.html b/tests/wpt/tests/input-events/textarea-insertfrompaste-type-inputevent-data-withnewline-atstart.html index b6269e72834..25728b28291 100644 --- a/tests/wpt/tests/input-events/textarea-insertfrompaste-type-inputevent-data-withnewline-atstart.html +++ b/tests/wpt/tests/input-events/textarea-insertfrompaste-type-inputevent-data-withnewline-atstart.html @@ -27,8 +27,8 @@ insertFromPaste await utils.sendCopyShortcutKey(); await utils.sendPasteShortcutKey(); // Event data should now be set with the second line of the text - assert_equals(selectedData, "\nat the start should set the event.data with the selected part for inputType"); - assert_equals(eventData, selectedData); + assert_equals(selectedData.replace(/\r\n/g, "\n"), "\nat the start should set the event.data with the selected part for inputType"); + assert_equals(eventData, selectedData.replace(/\r\n/g, "\n")); }, "Input event data for inputType insertFromPaste should be set"); diff --git a/tests/wpt/tests/interfaces/css-mixins.idl b/tests/wpt/tests/interfaces/css-mixins.idl index 6629b3861f6..86015e7dd0e 100644 --- a/tests/wpt/tests/interfaces/css-mixins.idl +++ b/tests/wpt/tests/interfaces/css-mixins.idl @@ -4,7 +4,17 @@ // Source: CSS Functions and Mixins Module (https://drafts.csswg.org/css-mixins-1/) [Exposed=Window] -interface CSSFunctionRule : CSSGroupingRule { }; +interface CSSFunctionRule : CSSGroupingRule { + readonly attribute CSSOMString name; + sequence getParameters(); + readonly attribute CSSOMString returnType; +}; + +dictionary FunctionParameter { + required CSSOMString name; + required CSSOMString type; + CSSOMString? defaultValue; +}; [Exposed=Window] interface CSSFunctionDescriptors : CSSStyleDeclaration { diff --git a/tests/wpt/tests/interfaces/dom.idl b/tests/wpt/tests/interfaces/dom.idl index 814040a2c40..7b4fcb920e2 100644 --- a/tests/wpt/tests/interfaces/dom.idl +++ b/tests/wpt/tests/interfaces/dom.idl @@ -124,6 +124,8 @@ interface mixin ParentNode { [CEReactions, Unscopable] undefined append((Node or DOMString)... nodes); [CEReactions, Unscopable] undefined replaceChildren((Node or DOMString)... nodes); + [CEReactions] undefined moveBefore(Node node, Node? child); + Element? querySelector(DOMString selectors); [NewObject] NodeList querySelectorAll(DOMString selectors); }; diff --git a/tests/wpt/tests/interfaces/webnn.idl b/tests/wpt/tests/interfaces/webnn.idl index 7c026d4c0a4..8dc3a0ebc14 100644 --- a/tests/wpt/tests/interfaces/webnn.idl +++ b/tests/wpt/tests/interfaces/webnn.idl @@ -286,6 +286,21 @@ partial dictionary MLOpSupportLimits { MLConv2dSupportLimits convTranspose2d; }; +dictionary MLCumulativeSumOptions : MLOperatorOptions { + boolean exclusive = false; + boolean reversed = false; +}; + +partial interface MLGraphBuilder { + MLOperand cumulativeSum(MLOperand input, + unsigned long axis, + optional MLCumulativeSumOptions options = {}); +}; + +partial dictionary MLOpSupportLimits { + MLSingleInputSupportLimits cumulativeSum; +}; + partial interface MLGraphBuilder { MLOperand add(MLOperand a, MLOperand b, optional MLOperatorOptions options = {}); MLOperand sub(MLOperand a, MLOperand b, optional MLOperatorOptions options = {}); @@ -310,6 +325,9 @@ partial interface MLGraphBuilder { MLOperand equal(MLOperand a, MLOperand b, optional MLOperatorOptions options = {}); + MLOperand notEqual(MLOperand a, + MLOperand b, + optional MLOperatorOptions options = {}); MLOperand greater(MLOperand a, MLOperand b, optional MLOperatorOptions options = {}); @@ -323,6 +341,15 @@ partial interface MLGraphBuilder { MLOperand b, optional MLOperatorOptions options = {}); MLOperand logicalNot(MLOperand a, optional MLOperatorOptions options = {}); + MLOperand logicalAnd(MLOperand a, + MLOperand b, + optional MLOperatorOptions options = {}); + MLOperand logicalOr(MLOperand a, + MLOperand b, + optional MLOperatorOptions options = {}); + MLOperand logicalXor(MLOperand a, + MLOperand b, + optional MLOperatorOptions options = {}); }; dictionary MLLogicalNotSupportLimits { @@ -332,11 +359,15 @@ dictionary MLLogicalNotSupportLimits { partial dictionary MLOpSupportLimits { MLBinarySupportLimits equal; + MLBinarySupportLimits notEqual; MLBinarySupportLimits greater; MLBinarySupportLimits greaterOrEqual; MLBinarySupportLimits lesser; MLBinarySupportLimits lesserOrEqual; MLLogicalNotSupportLimits logicalNot; + MLBinarySupportLimits logicalAnd; + MLBinarySupportLimits logicalOr; + MLBinarySupportLimits logicalXor; }; partial interface MLGraphBuilder { @@ -351,6 +382,7 @@ partial interface MLGraphBuilder { MLOperand neg(MLOperand input, optional MLOperatorOptions options = {}); MLOperand reciprocal(MLOperand input, optional MLOperatorOptions options = {}); MLOperand sin(MLOperand input, optional MLOperatorOptions options = {}); + MLOperand sign(MLOperand input, optional MLOperatorOptions options = {}); MLOperand sqrt(MLOperand input, optional MLOperatorOptions options = {}); MLOperand tan(MLOperand input, optional MLOperatorOptions options = {}); }; @@ -367,10 +399,40 @@ partial dictionary MLOpSupportLimits { MLSingleInputSupportLimits neg; MLSingleInputSupportLimits reciprocal; MLSingleInputSupportLimits sin; + MLSingleInputSupportLimits sign; MLSingleInputSupportLimits sqrt; MLSingleInputSupportLimits tan; }; +partial interface MLGraphBuilder { + MLOperand dequantizeLinear(MLOperand input, + MLOperand scale, + MLOperand zeroPoint, + optional MLOperatorOptions options = {}); +}; + +dictionary MLQuantizationSupportLimits { + MLSupportLimits input; + MLSupportLimits scale; + MLSupportLimits zeroPoint; + MLSupportLimits output; +}; + +partial dictionary MLOpSupportLimits { + MLQuantizationSupportLimits dequantizeLinear; +}; + +partial interface MLGraphBuilder { + MLOperand quantizeLinear(MLOperand input, + MLOperand scale, + MLOperand zeroPoint, + optional MLOperatorOptions options = {}); +}; + +partial dictionary MLOpSupportLimits { + MLQuantizationSupportLimits quantizeLinear; +}; + dictionary MLEluOptions : MLOperatorOptions { double alpha = 1; }; @@ -413,6 +475,26 @@ partial dictionary MLOpSupportLimits { MLGatherSupportLimits gather; }; +partial interface MLGraphBuilder { + MLOperand gatherElements(MLOperand input, + MLOperand indices, + optional MLGatherOptions options = {}); +}; + +partial dictionary MLOpSupportLimits { + MLGatherSupportLimits gatherElements; +}; + +partial interface MLGraphBuilder { + MLOperand gatherND(MLOperand input, + MLOperand indices, + optional MLOperatorOptions options = {}); +}; + +partial dictionary MLOpSupportLimits { + MLGatherSupportLimits gatherND; +}; + partial interface MLGraphBuilder { MLOperand gelu(MLOperand input, optional MLOperatorOptions options = {}); }; @@ -830,6 +912,51 @@ partial dictionary MLOpSupportLimits { MLSingleInputSupportLimits reshape; }; +dictionary MLReverseOptions : MLOperatorOptions { + sequence<[EnforceRange] unsigned long> axes; +}; + +partial interface MLGraphBuilder { + MLOperand reverse(MLOperand input, optional MLReverseOptions options = {}); +}; + +partial dictionary MLOpSupportLimits { + MLSingleInputSupportLimits reverse; +}; + +dictionary MLScatterOptions : MLOperatorOptions { + [EnforceRange] unsigned long axis = 0; +}; + +partial interface MLGraphBuilder { + MLOperand scatterElements(MLOperand input, + MLOperand indices, + MLOperand updates, + optional MLScatterOptions options = {}); +}; + +dictionary MLScatterSupportLimits { + MLSupportLimits input; + MLSupportLimits indices; + MLSupportLimits updates; + MLSupportLimits output; +}; + +partial dictionary MLOpSupportLimits { + MLScatterSupportLimits scatterElements; +}; + +partial interface MLGraphBuilder { + MLOperand scatterND(MLOperand input, + MLOperand indices, + MLOperand updates, + optional MLOperatorOptions options = {}); +}; + +partial dictionary MLOpSupportLimits { + MLScatterSupportLimits scatterND; +}; + partial interface MLGraphBuilder { MLOperand sigmoid(MLOperand input, optional MLOperatorOptions options = {}); }; @@ -838,14 +965,18 @@ partial dictionary MLOpSupportLimits { MLSingleInputSupportLimits sigmoid; }; +dictionary MLSliceOptions : MLOperatorOptions { + sequence<[EnforceRange] unsigned long> strides; +}; + partial interface MLGraphBuilder { MLOperand slice(MLOperand input, sequence<[EnforceRange] unsigned long> starts, sequence<[EnforceRange] unsigned long> sizes, - optional MLOperatorOptions options = {}); + optional MLSliceOptions options = {}); }; -partial dictionary MLOpSupportLimits { +partial dictionary MLOpSupportLimits { MLSingleInputSupportLimits slice; }; @@ -903,6 +1034,16 @@ partial dictionary MLOpSupportLimits { MLSingleInputSupportLimits tanh; }; +partial interface MLGraphBuilder { + MLOperand tile(MLOperand input, + sequence repetitions, + optional MLOperatorOptions options = {}); +}; + +partial dictionary MLOpSupportLimits { + MLSingleInputSupportLimits tile; +}; + dictionary MLTransposeOptions : MLOperatorOptions { sequence<[EnforceRange] unsigned long> permutation; }; diff --git a/tests/wpt/tests/interfaces/webtransport.idl b/tests/wpt/tests/interfaces/webtransport.idl index 24fe5b7e61b..eb456336081 100644 --- a/tests/wpt/tests/interfaces/webtransport.idl +++ b/tests/wpt/tests/interfaces/webtransport.idl @@ -3,10 +3,18 @@ // (https://github.com/w3c/webref) // Source: WebTransport (https://w3c.github.io/webtransport/) +[Exposed=(Window,Worker), SecureContext, Transferable] +interface WebTransportDatagramsWritable : WritableStream { + attribute WebTransportSendGroup? sendGroup; + attribute long long sendOrder; +}; + [Exposed=(Window,Worker), SecureContext] interface WebTransportDatagramDuplexStream { + WebTransportDatagramsWritable createWritable( + optional WebTransportSendOptions options = {}); readonly attribute ReadableStream readable; - readonly attribute WritableStream writable; + readonly attribute WebTransportDatagramsWritable writable; readonly attribute unsigned long maxDatagramSize; attribute unrestricted double? incomingMaxAge; @@ -79,9 +87,12 @@ dictionary WebTransportCloseInfo { USVString reason = ""; }; -dictionary WebTransportSendStreamOptions { +dictionary WebTransportSendOptions { WebTransportSendGroup? sendGroup = null; long long sendOrder = 0; +}; + +dictionary WebTransportSendStreamOptions : WebTransportSendOptions { boolean waitUntilAvailable = false; }; diff --git a/tests/wpt/tests/interfaces/xhr.idl b/tests/wpt/tests/interfaces/xhr.idl index b4c27c8aca9..6ff75fd2774 100644 --- a/tests/wpt/tests/interfaces/xhr.idl +++ b/tests/wpt/tests/interfaces/xhr.idl @@ -88,12 +88,12 @@ interface ProgressEvent : Event { constructor(DOMString type, optional ProgressEventInit eventInitDict = {}); readonly attribute boolean lengthComputable; - readonly attribute unsigned long long loaded; - readonly attribute unsigned long long total; + readonly attribute double loaded; + readonly attribute double total; }; dictionary ProgressEventInit : EventInit { boolean lengthComputable = false; - unsigned long long loaded = 0; - unsigned long long total = 0; + double loaded = 0; + double total = 0; }; diff --git a/tests/wpt/tests/intersection-observer/clip-path-animation.html b/tests/wpt/tests/intersection-observer/clip-path-animation.html new file mode 100644 index 00000000000..867b025d8c3 --- /dev/null +++ b/tests/wpt/tests/intersection-observer/clip-path-animation.html @@ -0,0 +1,100 @@ + + + + + + + + + +
+
+
+ + diff --git a/tests/wpt/tests/lint.ignore b/tests/wpt/tests/lint.ignore index 1d552f3468a..65e22dccbc1 100644 --- a/tests/wpt/tests/lint.ignore +++ b/tests/wpt/tests/lint.ignore @@ -695,7 +695,6 @@ TESTHARNESS-IN-OTHER-TYPE: css/css-text/white-space/pre-line-br-with-whitespace- TESTHARNESS-IN-OTHER-TYPE: css/css-text/white-space/pre-with-whitespace-crash.html TESTHARNESS-IN-OTHER-TYPE: css/css-writing-modes/bidi-inline-fragment-crash.html TESTHARNESS-IN-OTHER-TYPE: dom/svg-insert-crash.html -TESTHARNESS-IN-OTHER-TYPE: editing/run/first-letter-crossing-engine-boundary-crash.html TESTHARNESS-IN-OTHER-TYPE: html/canvas/element/manual/wide-gamut-canvas/imagedata-no-color-settings-crash.html TESTHARNESS-IN-OTHER-TYPE: html/semantics/embedded-content/the-object-element/block-object-with-ruby-crash.html TESTHARNESS-IN-OTHER-TYPE: html/semantics/forms/the-input-element/time-datalist-crash.html diff --git a/tests/wpt/tests/mediacapture-insertable-streams/VideoTrackGenerator-with-window-tracks.https.html b/tests/wpt/tests/mediacapture-insertable-streams/VideoTrackGenerator-with-window-tracks.https.html index dfe000fbddb..1c5560f6964 100644 --- a/tests/wpt/tests/mediacapture-insertable-streams/VideoTrackGenerator-with-window-tracks.https.html +++ b/tests/wpt/tests/mediacapture-insertable-streams/VideoTrackGenerator-with-window-tracks.https.html @@ -248,7 +248,8 @@ // The first frame may not have had scaleResolutionDownBy applied const numTries = 5; for (let i = 1; i <= numTries; i++) { - worker.postMessage({type:"getVideoFrame", track: e.track}, [e.track]); + const clone = e.track.clone(); + worker.postMessage({type:"getVideoFrame", track: clone}, [clone]); const {frame: outputFrame} = await new Promise(resolve => worker.onmessage = e => resolve(e.data)); if (outputFrame.displayWidth !== width / 2) { assert_less_than(i, numTries, `First ${numTries} frames were the wrong size.`); diff --git a/tests/wpt/tests/permissions-policy/resources/digital-credentials-get.html b/tests/wpt/tests/permissions-policy/resources/digital-credentials-get.html index 12a450a1ae4..543417f230a 100644 --- a/tests/wpt/tests/permissions-policy/resources/digital-credentials-get.html +++ b/tests/wpt/tests/permissions-policy/resources/digital-credentials-get.html @@ -11,22 +11,17 @@ } let enabled = undefined; try { - // Provide a complete correct request to test permission policy. - await navigator.credentials.get(makeGetOptions("openid4vp")); - // If no exception is thrown, then the feature is allowed by - // the permission policy. - enabled = true; + await navigator.credentials.get(makeGetOptions([])); } catch (e) { switch (e.name) { - // Unless a "NotAllowedError" exception is thrown, we assume - // the feature is allowed by permission policy. This is - // suitable for the tests that are using this helper method. case "NotAllowedError": enabled = false; break; - default: + case "TypeError": enabled = true; break; + default: + throw e; } } finally { window.parent.postMessage({ type, enabled }, "*"); diff --git a/tests/wpt/tests/resources/testharness.js b/tests/wpt/tests/resources/testharness.js index 5b5410c8b21..bd668be20f8 100644 --- a/tests/wpt/tests/resources/testharness.js +++ b/tests/wpt/tests/resources/testharness.js @@ -1330,6 +1330,15 @@ "0xffff": "uffff", }; + const formatEscapeMap = { + "\\": "\\\\", + '"': '\\"' + }; + for (const p in replacements) { + formatEscapeMap[String.fromCharCode(p)] = "\\" + replacements[p]; + } + const formatEscapePattern = new RegExp(`[${Object.keys(formatEscapeMap).map(k => k === "\\" ? "\\\\" : k).join("")}]`, "g"); + /** * Convert a value to a nice, human-readable string * @@ -1380,12 +1389,7 @@ switch (typeof val) { case "string": - val = val.replace(/\\/g, "\\\\"); - for (var p in replacements) { - var replace = "\\" + replacements[p]; - val = val.replace(RegExp(String.fromCharCode(p), "g"), replace); - } - return '"' + val.replace(/"/g, '\\"') + '"'; + return '"' + val.replace(formatEscapePattern, match => formatEscapeMap[match]) + '"'; case "boolean": case "undefined": return String(val); diff --git a/tests/wpt/tests/sanitizer-api/sanitizer-removeUnsafe.tentative.html b/tests/wpt/tests/sanitizer-api/sanitizer-removeUnsafe.tentative.html new file mode 100644 index 00000000000..7ad8253ad5f --- /dev/null +++ b/tests/wpt/tests/sanitizer-api/sanitizer-removeUnsafe.tentative.html @@ -0,0 +1,103 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/sanitizer-api/sethtml-tree-construction.sub.dat b/tests/wpt/tests/sanitizer-api/sethtml-tree-construction.sub.dat index d39447345f9..47cc159df1f 100644 --- a/tests/wpt/tests/sanitizer-api/sethtml-tree-construction.sub.dat +++ b/tests/wpt/tests/sanitizer-api/sethtml-tree-construction.sub.dat @@ -304,34 +304,46 @@ TypeError #data +#config +{} #document | #data +#config +{} #document | #data +#config +{} #document | | href="http:evil.com" #data
Click.
+#config +{} #document |
| "Click." #data Click.
+#config +{} #document |
| "Click." #data Click.
+#config +{} #document |
| action="http:evil.com" @@ -339,34 +351,46 @@ TypeError #data +#config +{} #document | #data +#config +{} #document | #data +#config +{} #document | | formaction="http:evil.com" #data +#config +{} #document | +#config +{} #document | +#config +{} #document | + Anchor + Text + + + diff --git a/tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.https.html b/tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.https.html new file mode 100644 index 00000000000..c5796e48b76 --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prefetch/clear-prefetch-cache-after-clear-site-data-cache.https.html @@ -0,0 +1,35 @@ + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prefetch/redirect-middle-of-prefetch.https.html b/tests/wpt/tests/speculation-rules/prefetch/redirect-middle-of-prefetch.https.html new file mode 100644 index 00000000000..2afa5c82a76 --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prefetch/redirect-middle-of-prefetch.https.html @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prefetch/redirect-to-prefetch-url.https.html b/tests/wpt/tests/speculation-rules/prefetch/redirect-to-prefetch-url.https.html new file mode 100644 index 00000000000..f634ede8838 --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prefetch/redirect-to-prefetch-url.https.html @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prefetch/redirect-url.https.html b/tests/wpt/tests/speculation-rules/prefetch/redirect-url.https.html new file mode 100644 index 00000000000..41fab0791ac --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prefetch/redirect-url.https.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prefetch/redirect-url.sub.https.html b/tests/wpt/tests/speculation-rules/prefetch/redirect-url.sub.https.html deleted file mode 100644 index 02bb35349ff..00000000000 --- a/tests/wpt/tests/speculation-rules/prefetch/redirect-url.sub.https.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - diff --git a/tests/wpt/tests/speculation-rules/prefetch/resources/redirect-helper.sub.js b/tests/wpt/tests/speculation-rules/prefetch/resources/redirect-helper.sub.js new file mode 100644 index 00000000000..a17eaabe243 --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prefetch/resources/redirect-helper.sub.js @@ -0,0 +1,71 @@ +// Prefetched redirect chain (as test variant parameters): +// origin=same-origin: +// initiator-(same-origin)->prefetchInitialUrl-(same-origin)->prefetchFinalUrl +// origin=cross-site-initial: +// initiator-(cross-site)-->prefetchInitialUrl-(same-origin)->prefetchFinalUrl +// origin=cross-site-redirect: +// initiator-(same-origin)->prefetchInitialUrl-(cross-site)-->prefetchFinalUrl +const { origin } = Object.fromEntries(new URLSearchParams(location.search)); + +// `prefetchTiming`: +// - 'redirect-received-after-navigation-start': +// prefetch is started before navigation starts but the redirect response +// is received after navigation starts. +// - Otherwise: +// prefetch (including its redirects) is completed before navigation starts. +async function prepare(t, prefetchTiming) { + const agent = await spawnWindow(t); + + let prefetchFinalUrl; + let prefetchInitialOrigin; + if (origin === 'same-origin') { + prefetchFinalUrl = agent.getExecutorURL({ page: 2 }); + prefetchInitialOrigin = location.origin; + } else if (origin === 'cross-site-initial') { + prefetchFinalUrl = agent.getExecutorURL( + { page: 2, hostname: '{{hosts[alt][www]}}' }); + prefetchInitialOrigin = prefetchFinalUrl.origin; + } else if (origin === 'cross-site-redirect') { + prefetchFinalUrl = agent.getExecutorURL( + { page: 2, hostname: '{{hosts[alt][www]}}' }); + prefetchInitialOrigin = location.origin; + } else { + t.assert_unreached('Invalid origin option: ' + origin); + } + + let prefetchInitialUrl; + if (prefetchTiming === 'redirect-received-after-navigation-start') { + // Because `forceSinglePrefetch()` waits for 2 seconds, we put 4-second + // delay here to make the redirect response is received after `navigate()` + // below. + prefetchInitialUrl = new URL('/common/slow-redirect.py?delay=4', + prefetchInitialOrigin); + prefetchInitialUrl.searchParams.set('location', prefetchFinalUrl); + } else { + // Because `forceSinglePrefetch()` waits for 2 seconds, the redirect and + // final responses are expected to be received before `navigate()` below. + prefetchInitialUrl = new URL('/common/redirect.py', prefetchInitialOrigin); + prefetchInitialUrl.searchParams.set('location', prefetchFinalUrl); + } + + const redirectToPrefetchInitialUrl = new URL('/common/redirect.py', + location.href); + redirectToPrefetchInitialUrl.searchParams.set( + 'location', prefetchInitialUrl); + + const redirectToPrefetchFinalUrl = new URL('/common/redirect.py', + location.href); + redirectToPrefetchFinalUrl.searchParams.set( + 'location', prefetchFinalUrl); + + // `type` is set just to make `redirectToPrefetchFinalUrl` different + // from `prefetchInitialUrl`. + redirectToPrefetchFinalUrl.searchParams.set( + 'type', 'navigation'); + + return {agent, + prefetchInitialUrl, + prefetchFinalUrl, + redirectToPrefetchInitialUrl, + redirectToPrefetchFinalUrl}; +} diff --git a/tests/wpt/tests/speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html b/tests/wpt/tests/speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html index 9420088ff29..e4c103535cc 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/tentative/service-worker/basic.sub.https.html @@ -25,10 +25,6 @@ const originOption = new URL(location.href).searchParams.get('origin'); const swOption = new URL(location.href).searchParams.get('sw'); promise_test(async t => { - // Current Chromium's expected behavior: prefetch only works when there - // are no controlling service worker. - const expectsPrefetch = swOption === 'no-controller'; - const hostname = originOption === 'cross-site' ? '{{hosts[alt][www]}}' : undefined; const win = await spawnWindow(t, { protocol: 'https', hostname: hostname }); @@ -62,7 +58,12 @@ promise_test(async t => { return requestHeaders; }, []); - if (expectsPrefetch) { + // Current Chromium's expected behavior: + // prefetch works when + // - there are no controlling service worker, or + // - same-origin prefetches with controlling service worker. + if (swOption === 'no-controller' || + originOption === 'same-site') { assert_prefetched(headers, "Prefetched result should be served."); assert_equals(requestCount.prefetch, 1, 'a prefetch request should be sent to the server.'); diff --git a/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache.https.html b/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache.https.html index cb6dc281d89..a31046d34b2 100644 --- a/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache.https.html +++ b/tests/wpt/tests/speculation-rules/prerender/cancel-prerendering-after-clear-site-data-cache.https.html @@ -41,7 +41,7 @@ promise_test(async t => { new_window = window.open("../../clear-site-data/support/clear-site-data-cache.py?" + cache_helper + "response=single_html&cache&clear_first=all"); await gotMessage; - // Because Clear-Site-Header response header is sent, the existing prerender + // Because Clear-Site-Data response header is sent, the existing prerender // is expected to be canceled. // And the navigation is expected to create another page instead of activation. referrerRC.navigateTo(prerenderedRC.url); diff --git a/tests/wpt/tests/speculation-rules/prerender/resources/exec.html b/tests/wpt/tests/speculation-rules/prerender/resources/exec.html index 1eebaa73d0b..9b8ededa863 100644 --- a/tests/wpt/tests/speculation-rules/prerender/resources/exec.html +++ b/tests/wpt/tests/speculation-rules/prerender/resources/exec.html @@ -13,6 +13,6 @@ meta.content = referrer_policy; document.head.append(meta); } - new Executor(document.prerendering ? uuid : discard_uuid).execute(); + new Executor(document.prerendering ? uuid : discard_uuid); diff --git a/tests/wpt/tests/storage-access-api/requestStorageAccess-cross-site-fetch.sub.https.window.js b/tests/wpt/tests/storage-access-api/requestStorageAccess-cross-site-fetch.sub.https.window.js new file mode 100644 index 00000000000..b46f42d1211 --- /dev/null +++ b/tests/wpt/tests/storage-access-api/requestStorageAccess-cross-site-fetch.sub.https.window.js @@ -0,0 +1,52 @@ +// META: script=helpers.js +// META: script=/cookies/resources/cookie-helper.sub.js +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +'use strict'; + +const mainHost = "https://{{host}}:{{ports[https][0]}}"; +const altRoot = "https://{{hosts[alt][]}}:{{ports[https][0]}}"; +const responderPath = "/storage-access-api/resources/script-with-cookie-header.py?script=embedded_responder.js"; + +const altRootResponder = `${altRoot}${responderPath}`; +const domainCookieString = "cookie=unpartitioned;Secure;SameSite=None;Path=/;Domain={{hosts[alt][]}}"; + +async function SetUpResponderFrame(t, url) { + const frame = await CreateFrame(url); + + t.add_cleanup(async () => { + await test_driver.delete_all_cookies(); + await SetPermissionInFrame(frame, [{ name: 'storage-access' }, 'prompt']); + }); + + return frame; +} + +promise_test(async (t) => { + const frame = await SetUpResponderFrame(t, altRootResponder); + await SetDocumentCookieFromFrame(frame, domainCookieString); + + const initiallyHasCookieAccess = + cookieStringHasCookie("cookie", "unpartitioned", + await FetchSubresourceCookiesFromFrame(frame, altRoot)); + if (initiallyHasCookieAccess) { + // Nothing to test here; third-party cookies are already accessible. + return; + } + + await SetPermissionInFrame(frame, [{ name: 'storage-access' }, 'granted']); + + assert_true(await RequestStorageAccessInFrame(frame), "requestStorageAccess resolves without requiring a gesture."); + assert_true(await FrameHasStorageAccess(frame), "frame has storage access after request."); + await SetDocumentCookieFromFrame(frame, domainCookieString); + assert_true(await HasUnpartitionedCookie(frame), "frame has access to cookies after request."); + + // Redirect back to the iframe's origin, via a cross-site redirect. The + // frame's origin is `{{hosts[alt][]}}`, so `{{host}}` is cross-site to it. + const dest = `${altRoot}/storage-access-api/resources/echo-cookie-header.py`; + const redirect = `${mainHost}/common/redirect.py?enable-cors=&location=${encodeURIComponent(dest)}`; + assert_false( + cookieStringHasCookie("cookie", "unpartitioned", + await FetchFromFrame(frame, redirect)), + "fetch is not credentialed after a cross-site redirect"); +}, "Cross-site HTTP redirects from a frame with storage-access are not credentialed by default"); diff --git a/tests/wpt/tests/storage-access-api/resources/echo-cookie-header.py b/tests/wpt/tests/storage-access-api/resources/echo-cookie-header.py index f1599e3a899..0d84b0edd18 100644 --- a/tests/wpt/tests/storage-access-api/resources/echo-cookie-header.py +++ b/tests/wpt/tests/storage-access-api/resources/echo-cookie-header.py @@ -1,12 +1,9 @@ def main(request, response): # Set the cors enabled headers. origin = request.headers.get(b"Origin") - headers = [] - if origin is not None and origin != b"null": - headers.append((b"Content-Type", b"text/plain")) - headers.append((b"Access-Control-Allow-Origin", origin)) - headers.append((b"Access-Control-Allow-Credentials", 'true')) + if origin: + response.headers.set(b"Content-Type", b"text/plain") + response.headers.set(b"Access-Control-Allow-Origin", origin) + response.headers.set(b"Access-Control-Allow-Credentials", 'true') - cookie_header = request.headers.get(b"Cookie", b"") - - return (200, headers, cookie_header) + return request.headers.get(b"Cookie", b"") diff --git a/tests/wpt/tests/subresource-integrity/signatures/accept-signature-script.py b/tests/wpt/tests/subresource-integrity/signatures/accept-signature-script.py new file mode 100644 index 00000000000..a1c61f396d5 --- /dev/null +++ b/tests/wpt/tests/subresource-integrity/signatures/accept-signature-script.py @@ -0,0 +1,34 @@ +''' +SRI Message Signature helper for `accept-signature` header validation for + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js b/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js new file mode 100644 index 00000000000..efcbf0cdad6 --- /dev/null +++ b/tests/wpt/tests/subresource-integrity/signatures/tentative/accept-signature.window.js @@ -0,0 +1,44 @@ +// META: script=helper.js +// +// The following tests verify that `accept-signature` headers are sent when +// requesting resources via ` + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/svg/pservers/reftests/gradient-color-interpolation.svg b/tests/wpt/tests/svg/pservers/reftests/gradient-color-interpolation.svg index f7959437734..91dad7dcf0e 100644 --- a/tests/wpt/tests/svg/pservers/reftests/gradient-color-interpolation.svg +++ b/tests/wpt/tests/svg/pservers/reftests/gradient-color-interpolation.svg @@ -6,7 +6,7 @@ - + diff --git a/tests/wpt/tests/svg/shapes/reftests/pathlength-005-ref.html b/tests/wpt/tests/svg/shapes/reftests/pathlength-005-ref.html new file mode 100644 index 00000000000..b99474aa466 --- /dev/null +++ b/tests/wpt/tests/svg/shapes/reftests/pathlength-005-ref.html @@ -0,0 +1,4 @@ + + + + diff --git a/tests/wpt/tests/svg/shapes/reftests/pathlength-005.html b/tests/wpt/tests/svg/shapes/reftests/pathlength-005.html new file mode 100644 index 00000000000..59d4ae5fa64 --- /dev/null +++ b/tests/wpt/tests/svg/shapes/reftests/pathlength-005.html @@ -0,0 +1,9 @@ + +Test of 'pathLength' on shapes with zoom. + + + + + + diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browsing_context.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browsing_context.py index 7f3f7c50e59..f95196da174 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browsing_context.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browsing_context.py @@ -227,18 +227,20 @@ class BrowsingContext(BidiModule): @command def set_viewport(self, - context: str, + context: Optional[str] = None, viewport: Union[Optional[Mapping[str, Any]], Undefined] = UNDEFINED, - device_pixel_ratio: Union[Optional[float], Undefined] = UNDEFINED) -> Mapping[str, Any]: - params: MutableMapping[str, Any] = { - "context": context, - } + device_pixel_ratio: Union[Optional[float], Undefined] = UNDEFINED, + user_contexts: Optional[List[str]] = None) -> Mapping[str, Any]: + params: MutableMapping[str, Any] = {} + if context is not None: + params["context"] = context if viewport is not UNDEFINED: params["viewport"] = viewport - if device_pixel_ratio is not UNDEFINED: params["devicePixelRatio"] = device_pixel_ratio + if user_contexts is not None: + params["userContexts"] = user_contexts return params diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py index efde66a81f0..95667480afe 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py @@ -859,8 +859,6 @@ class WebDriverRun(TimedRunner): self.result_flag.set() -# TODO(web-platform-tests/wpt#13183): Add testdriver support to the other -# executors. class TestDriverExecutorMixin: def __init__(self, script_resume: str): self.script_resume = script_resume @@ -935,7 +933,7 @@ class TestDriverExecutorMixin: # https://github.com/w3c/webdriver/issues/1308 if not isinstance(test_driver_message, list) or len(test_driver_message) != 3: try: - is_alive = self.is_alive() + is_alive = protocol.is_alive() except webdriver_error.WebDriverException: is_alive = False if not is_alive: @@ -990,9 +988,6 @@ class WebDriverTestharnessExecutor(TestharnessExecutor, TestDriverExecutorMixin) self.close_after_done = close_after_done self.cleanup_after_test = cleanup_after_test - def is_alive(self): - return self.protocol.is_alive() - def on_environment_change(self, new_environment): if new_environment["protocol"] != self.last_environment["protocol"]: self.protocol.testharness.load_runner(new_environment["protocol"]) @@ -1090,9 +1085,6 @@ class WebDriverRefTestExecutor(RefTestExecutor, TestDriverExecutorMixin): def reset(self): self.implementation.reset() - def is_alive(self): - return self.protocol.is_alive() - def do_test(self, test): width_offset, height_offset = self.protocol.webdriver.execute_script( """return [window.outerWidth - window.innerWidth, diff --git a/tests/wpt/tests/tools/wptserve/setup.py b/tests/wpt/tests/tools/wptserve/setup.py index 36aa98f1d82..d66769f0630 100644 --- a/tests/wpt/tests/tools/wptserve/setup.py +++ b/tests/wpt/tests/tools/wptserve/setup.py @@ -19,7 +19,7 @@ setup(name='wptserve', author_email='james@hoppipolla.co.uk', url='http://wptserve.readthedocs.org/', license='BSD', - packages=['wptserve', 'wptserve.sslutils'], + packages=['wptserve', 'wptserve.sslutils', 'wptserve.cgi'], include_package_data=True, zip_safe=False, install_requires=deps diff --git a/tests/wpt/tests/tools/wptserve/wptserve/request.py b/tests/wpt/tests/tools/wptserve/wptserve/request.py index 087d6fbb490..9245b97fa50 100644 --- a/tests/wpt/tests/tools/wptserve/wptserve/request.py +++ b/tests/wpt/tests/tools/wptserve/wptserve/request.py @@ -9,7 +9,7 @@ from typing import Dict, List, TypeVar from urllib.parse import parse_qsl, urlsplit from . import stash -from . import cgi +from .cgi import FieldStorage from .utils import HTTPException, isomorphic_encode, isomorphic_decode KT = TypeVar('KT') @@ -348,7 +348,7 @@ class Request: "keep_blank_values": True, "encoding": "iso-8859-1", } - fs = cgi.FieldStorage(**kwargs) + fs = FieldStorage(**kwargs) self._POST = MultiDict.from_field_storage(fs) self.raw_input.seek(pos) return self._POST @@ -612,7 +612,7 @@ class MultiDict(Dict[KT, VT]): @classmethod def from_field_storage(cls, fs): - """Construct a MultiDict from a cgi.FieldStorage + """Construct a MultiDict from a FieldStorage Note that all keys and values are binary strings. """ @@ -628,7 +628,7 @@ class MultiDict(Dict[KT, VT]): if not value.filename: value = isomorphic_encode(value.value) else: - assert isinstance(value, cgi.FieldStorage) + assert isinstance(value, FieldStorage) self.add(isomorphic_encode(key), value) return self diff --git a/tests/wpt/tests/url/resources/setters_tests.json b/tests/wpt/tests/url/resources/setters_tests.json index efd548b6c88..e7072cd6afd 100644 --- a/tests/wpt/tests/url/resources/setters_tests.json +++ b/tests/wpt/tests/url/resources/setters_tests.json @@ -1141,6 +1141,60 @@ "host": "example.com", "hostname": "example.com" } + }, + { + "href": "https://test.invalid/", + "new_value": "*", + "expected": { + "href": "https://*/", + "host": "*", + "hostname": "*" + } + }, + { + "href": "https://test.invalid/", + "new_value": "x@x", + "expected": { + "href": "https://test.invalid/", + "host": "test.invalid", + "hostname": "test.invalid" + } + }, + { + "href": "https://test.invalid/", + "new_value": "foo\t\r\nbar", + "expected": { + "href": "https://foobar/", + "host": "foobar", + "hostname": "foobar" + } + }, + { + "href": "https://test.invalid/", + "new_value": "><", + "expected": { + "href": "https://test.invalid/", + "host": "test.invalid", + "hostname": "test.invalid" + } + }, + { + "href": "https://test.invalid/", + "new_value": "test/@aaa", + "expected": { + "href": "https://test/", + "host": "test", + "hostname": "test" + } + }, + { + "href": "https://test.invalid/", + "new_value": "test/:aaa", + "expected": { + "href": "https://test/", + "host": "test", + "hostname": "test" + } } ], "hostname": [ @@ -1552,6 +1606,60 @@ "host": "example.com", "hostname": "example.com" } + }, + { + "href": "https://test.invalid/", + "new_value": "*", + "expected": { + "href": "https://*/", + "host": "*", + "hostname": "*" + } + }, + { + "href": "https://test.invalid/", + "new_value": "x@x", + "expected": { + "href": "https://test.invalid/", + "host": "test.invalid", + "hostname": "test.invalid" + } + }, + { + "href": "https://test.invalid/", + "new_value": "foo\t\r\nbar", + "expected": { + "href": "https://foobar/", + "host": "foobar", + "hostname": "foobar" + } + }, + { + "href": "https://test.invalid/", + "new_value": "><", + "expected": { + "href": "https://test.invalid/", + "host": "test.invalid", + "hostname": "test.invalid" + } + }, + { + "href": "https://test.invalid/", + "new_value": "test/@aaa", + "expected": { + "href": "https://test/", + "host": "test", + "hostname": "test" + } + }, + { + "href": "https://test.invalid/", + "new_value": "test/:aaa", + "expected": { + "href": "https://test/", + "host": "test", + "hostname": "test" + } } ], "port": [ @@ -2169,12 +2277,12 @@ } }, { - "comment": "Drop trailing spaces from trailing opaque paths", + "comment": "Trailing spaces and opaque paths", "href": "data:space ?query", "new_value": "", "expected": { - "href": "data:space", - "pathname": "space", + "href": "data:space%20", + "pathname": "space%20", "search": "" } }, @@ -2182,17 +2290,17 @@ "href": "sc:space ?query", "new_value": "", "expected": { - "href": "sc:space", - "pathname": "space", + "href": "sc:space%20", + "pathname": "space%20", "search": "" } }, { - "comment": "Do not drop trailing spaces from non-trailing opaque paths", + "comment": "Trailing spaces and opaque paths", "href": "data:space ?query#fragment", "new_value": "", "expected": { - "href": "data:space #fragment", + "href": "data:space %20#fragment", "search": "" } }, @@ -2200,7 +2308,7 @@ "href": "sc:space ?query#fragment", "new_value": "", "expected": { - "href": "sc:space #fragment", + "href": "sc:space %20#fragment", "search": "" } }, @@ -2357,12 +2465,12 @@ } }, { - "comment": "Drop trailing spaces from trailing opaque paths", + "comment": "Trailing spaces and opaque paths", "href": "data:space #fragment", "new_value": "", "expected": { - "href": "data:space", - "pathname": "space", + "href": "data:space %20", + "pathname": "space %20", "hash": "" } }, @@ -2370,17 +2478,17 @@ "href": "sc:space #fragment", "new_value": "", "expected": { - "href": "sc:space", - "pathname": "space", + "href": "sc:space %20", + "pathname": "space %20", "hash": "" } }, { - "comment": "Do not drop trailing spaces from non-trailing opaque paths", + "comment": "Trailing spaces and opaque paths", "href": "data:space ?query#fragment", "new_value": "", "expected": { - "href": "data:space ?query", + "href": "data:space %20?query", "hash": "" } }, @@ -2388,7 +2496,7 @@ "href": "sc:space ?query#fragment", "new_value": "", "expected": { - "href": "sc:space ?query", + "href": "sc:space %20?query", "hash": "" } }, diff --git a/tests/wpt/tests/url/resources/toascii.json b/tests/wpt/tests/url/resources/toascii.json index 02291962ebc..588ef150f9c 100644 --- a/tests/wpt/tests/url/resources/toascii.json +++ b/tests/wpt/tests/url/resources/toascii.json @@ -1,6 +1,9 @@ [ "This contains assorted IDNA tests that IdnaTestV2 might not cover.", "Feel free to deduplicate with a clear commit message.", + "", + "If the test only applies to the URL Standard's 'domain to ASCII', ", + "and not to TR46's ToASCII, then tag it with `urlStandardOnly`", { "comment": "Label with hyphens in 3rd and 4th position", "input": "aa--", @@ -239,11 +242,13 @@ }, { "input": "www.lookout.net\u2A7480", - "output": null + "output": null, + "urlStandardOnly": true }, { "input": "www\u00A0.lookout.net", - "output": null + "output": null, + "urlStandardOnly": true }, { "input": "\u1680lookout.net", @@ -251,7 +256,8 @@ }, { "input": "\u001flookout.net", - "output": null + "output": null, + "urlStandardOnly": true }, { "input": "look\u06DDout.net", diff --git a/tests/wpt/tests/url/resources/urltestdata.json b/tests/wpt/tests/url/resources/urltestdata.json index 214ed0852aa..d1a06f6319d 100644 --- a/tests/wpt/tests/url/resources/urltestdata.json +++ b/tests/wpt/tests/url/resources/urltestdata.json @@ -3778,6 +3778,126 @@ "search": "", "hash": "" }, + { + "input": "non-special:opaque ", + "base": null, + "href": "non-special:opaque", + "origin": "null", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "opaque", + "search": "", + "hash": "" + }, + { + "input": "non-special:opaque ?hi", + "base": null, + "href": "non-special:opaque %20?hi", + "origin": "null", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "opaque %20", + "search": "?hi", + "hash": "" + }, + { + "input": "non-special:opaque #hi", + "base": null, + "href": "non-special:opaque %20#hi", + "origin": "null", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "opaque %20", + "search": "", + "hash": "#hi" + }, + { + "input": "non-special:opaque x?hi", + "base": null, + "href": "non-special:opaque x?hi", + "origin": "null", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "opaque x", + "search": "?hi", + "hash": "" + }, + { + "input": "non-special:opaque x#hi", + "base": null, + "href": "non-special:opaque x#hi", + "origin": "null", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "opaque x", + "search": "", + "hash": "#hi" + }, + { + "input": "non-special:opaque \t\t \t#hi", + "base": null, + "href": "non-special:opaque %20#hi", + "origin": "null", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "opaque %20", + "search": "", + "hash": "#hi" + }, + { + "input": "non-special:opaque \t\t #hi", + "base": null, + "href": "non-special:opaque %20#hi", + "origin": "null", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "opaque %20", + "search": "", + "hash": "#hi" + }, + { + "input": "non-special:opaque\t\t \r #hi", + "base": null, + "href": "non-special:opaque %20#hi", + "origin": "null", + "protocol": "non-special:", + "username": "", + "password": "", + "host": "", + "hostname": "", + "port": "", + "pathname": "opaque %20", + "search": "", + "hash": "#hi" + }, "Ideographic full stop (full-width period for Chinese, etc.) should be treated as a dot. U+3002 is mapped to U+002E (dot)", { "input": "http://www.foo。bar.com", diff --git a/tests/wpt/tests/url/url-setters-a-area.window.js b/tests/wpt/tests/url/url-setters-a-area.window.js index 6a5e762cd42..0012595cc46 100644 --- a/tests/wpt/tests/url/url-setters-a-area.window.js +++ b/tests/wpt/tests/url/url-setters-a-area.window.js @@ -8,36 +8,37 @@ promise_test(() => fetch("resources/setters_tests.json").then(res => res.json()).then(runURLSettersTests), "Loading data…"); -function runURLSettersTests(all_test_cases) { - for (var attribute_to_be_set in all_test_cases) { - if (attribute_to_be_set == "comment") { +function runURLSettersTests(allTestCases) { + for (const [propertyToBeSet, testCases] of Object.entries(allTestCases)) { + if (propertyToBeSet === "comment") { continue; } - var test_cases = all_test_cases[attribute_to_be_set]; - for(var i = 0, l = test_cases.length; i < l; i++) { - var test_case = test_cases[i]; - var name = "Setting <" + test_case.href + ">." + attribute_to_be_set + - " = '" + test_case.new_value + "'"; - if ("comment" in test_case) { - name += " " + test_case.comment; - } - const key = test_case.href.split(":")[0]; - subsetTestByKey(key, test, function() { - var url = document.createElement("a"); - url.href = test_case.href; - url[attribute_to_be_set] = test_case.new_value; - for (var attribute in test_case.expected) { - assert_equals(url[attribute], test_case.expected[attribute]) + + for (const testCase of testCases) { + const name = `Setting <${testCase.href}>.${propertyToBeSet} = '${testCase.new_value}'${ + testCase.comment ? ` ${testCase.comment}` : '' + }`; + + const key = testCase.href.split(":")[0]; + subsetTestByKey(key, test, () => { + const url = document.createElement("a"); + url.href = testCase.href; + url[propertyToBeSet] = testCase.new_value; + + for (const [property, expectedValue] of Object.entries(testCase.expected)) { + assert_equals(url[property], expectedValue); } - }, ": " + name) - subsetTestByKey(key, test, function() { - var url = document.createElement("area"); - url.href = test_case.href; - url[attribute_to_be_set] = test_case.new_value; - for (var attribute in test_case.expected) { - assert_equals(url[attribute], test_case.expected[attribute]) + }, `: ${name}`); + + subsetTestByKey(key, test, () => { + const url = document.createElement("area"); + url.href = testCase.href; + url[propertyToBeSet] = testCase.new_value; + + for (const [property, expectedValue] of Object.entries(testCase.expected)) { + assert_equals(url[property], expectedValue); } - }, ": " + name) + }, `: ${name}`); } } } diff --git a/tests/wpt/tests/url/url-setters.any.js b/tests/wpt/tests/url/url-setters.any.js index fe88175ac63..66b3d9b4f9d 100644 --- a/tests/wpt/tests/url/url-setters.any.js +++ b/tests/wpt/tests/url/url-setters.any.js @@ -8,27 +8,26 @@ promise_test(() => fetch("resources/setters_tests.json").then(res => res.json()).then(runURLSettersTests), "Loading data…"); -function runURLSettersTests(all_test_cases) { - for (var attribute_to_be_set in all_test_cases) { - if (attribute_to_be_set == "comment") { +function runURLSettersTests(allTestCases) { + for (const [propertyToBeSet, testCases] of Object.entries(allTestCases)) { + if (propertyToBeSet === "comment") { continue; } - var test_cases = all_test_cases[attribute_to_be_set]; - for(var i = 0, l = test_cases.length; i < l; i++) { - var test_case = test_cases[i]; - var name = "Setting <" + test_case.href + ">." + attribute_to_be_set + - " = '" + test_case.new_value + "'"; - if ("comment" in test_case) { - name += " " + test_case.comment; - } + + for (const test_case of testCases) { + const name = `Setting <${test_case.href}>.${propertyToBeSet} = '${test_case.new_value}'${ + test_case.comment ? ` ${test_case.comment}` : '' + }`; + const key = test_case.href.split(":")[0]; - subsetTestByKey(key, test, function() { - var url = new URL(test_case.href); - url[attribute_to_be_set] = test_case.new_value; - for (var attribute in test_case.expected) { - assert_equals(url[attribute], test_case.expected[attribute]) + subsetTestByKey(key, test, () => { + const url = new URL(test_case.href); + url[propertyToBeSet] = test_case.new_value; + + for (const [property, expectedValue] of Object.entries(test_case.expected)) { + assert_equals(url[property], expectedValue); } - }, "URL: " + name) + }, `URL: ${name}`); } } } diff --git a/tests/wpt/tests/url/url-statics-canparse.any.js b/tests/wpt/tests/url/url-statics-canparse.any.js index 74f3da31f0d..9b352029d85 100644 --- a/tests/wpt/tests/url/url-statics-canparse.any.js +++ b/tests/wpt/tests/url/url-statics-canparse.any.js @@ -15,6 +15,11 @@ "base": "aaa:b", "expected": false }, + { + "url": undefined, + "base": "https://test:test/", + "expected": false + }, { "url": "aaa:/b", "base": undefined, diff --git a/tests/wpt/tests/url/urlsearchparams-delete.any.js b/tests/wpt/tests/url/urlsearchparams-delete.any.js index c597142c51d..09a5dccb648 100644 --- a/tests/wpt/tests/url/urlsearchparams-delete.any.js +++ b/tests/wpt/tests/url/urlsearchparams-delete.any.js @@ -50,17 +50,17 @@ test(() => { url.searchParams.delete('test'); assert_false(url.searchParams.has('test')); assert_equals(url.search, ''); - assert_equals(url.pathname, 'space'); - assert_equals(url.href, 'data:space'); -}, 'Changing the query of a URL with an opaque path can impact the path'); + assert_equals(url.pathname, 'space %20'); + assert_equals(url.href, 'data:space %20'); +}, 'Changing the query of a URL with an opaque path with trailing spaces'); test(() => { const url = new URL('data:space ?test#test'); url.searchParams.delete('test'); assert_equals(url.search, ''); - assert_equals(url.pathname, 'space '); - assert_equals(url.href, 'data:space #test'); -}, 'Changing the query of a URL with an opaque path can impact the path if the URL has no fragment'); + assert_equals(url.pathname, 'space %20'); + assert_equals(url.href, 'data:space %20#test'); +}, 'Changing the query of a URL with an opaque path with trailing spaces and a fragment'); test(() => { const params = new URLSearchParams(); diff --git a/tests/wpt/tests/urlpattern/META.yml b/tests/wpt/tests/urlpattern/META.yml new file mode 100644 index 00000000000..ad348f6dfd7 --- /dev/null +++ b/tests/wpt/tests/urlpattern/META.yml @@ -0,0 +1,5 @@ +spec: https://urlpattern.spec.whatwg.org/ +suggested_reviewers: + - sisidovski + - anonrig + - annevk diff --git a/tests/wpt/tests/urlpattern/resources/urlpatterntestdata.json b/tests/wpt/tests/urlpattern/resources/urlpatterntestdata.json index 3d5ddce1eab..f92ab76b71d 100644 --- a/tests/wpt/tests/urlpattern/resources/urlpatterntestdata.json +++ b/tests/wpt/tests/urlpattern/resources/urlpatterntestdata.json @@ -2432,8 +2432,10 @@ }, { "pattern": [{ "hostname": "bad#hostname" }], - "inputs": [{ "hostname": "bad" }], - "exactly_empty_components": ["port"], + "inputs": [{ "hostname": "bad" }], + "expected_obj": { + "hostname": "bad" + }, "expected_match": { "hostname": { "input": "bad", "groups": {} } } @@ -2445,6 +2447,9 @@ { "pattern": [{ "hostname": "bad/hostname" }], "inputs": [{ "hostname": "bad" }], + "expected_obj": { + "hostname": "bad" + }, "expected_match": { "hostname": { "input": "bad", "groups": {} } } @@ -2480,6 +2485,9 @@ { "pattern": [{ "hostname": "bad\\\\hostname" }], "inputs": [{ "hostname": "badhostname" }], + "expected_obj": { + "hostname": "bad" + }, "expected_match": null }, { @@ -2493,6 +2501,9 @@ { "pattern": [{ "hostname": "bad\nhostname" }], "inputs": [{ "hostname": "badhostname" }], + "expected_obj": { + "hostname": "badhostname" + }, "expected_match": { "hostname": { "input": "badhostname", "groups": {} } } @@ -2500,6 +2511,9 @@ { "pattern": [{ "hostname": "bad\rhostname" }], "inputs": [{ "hostname": "badhostname" }], + "expected_obj": { + "hostname": "badhostname" + }, "expected_match": { "hostname": { "input": "badhostname", "groups": {} } } @@ -2507,6 +2521,9 @@ { "pattern": [{ "hostname": "bad\thostname" }], "inputs": [{ "hostname": "badhostname" }], + "expected_obj": { + "hostname": "badhostname" + }, "expected_match": { "hostname": { "input": "badhostname", "groups": {} } } diff --git a/tests/wpt/tests/wai-aria/scripts/aria-utils.js b/tests/wpt/tests/wai-aria/scripts/aria-utils.js index 5ed73b06e45..ec53464c18f 100644 --- a/tests/wpt/tests/wai-aria/scripts/aria-utils.js +++ b/tests/wpt/tests/wai-aria/scripts/aria-utils.js @@ -45,9 +45,6 @@ const AriaUtils = { } for (const el of els) { let role = el.getAttribute("data-expectedrole"); - if (!role) { - throw `Element should have attribute \'data-expectedrole\'. Element: ${el.outerHTML}`; - } let testName = el.getAttribute("data-testname") || role; // data-testname optional if role is unique per test file if (typeof roleTestNamePrefix !== "undefined") { testName = roleTestNamePrefix + testName; @@ -140,9 +137,6 @@ const AriaUtils = { } for (const el of els) { let label = el.getAttribute("data-expectedlabel"); - if (!label) { - throw `Element should have attribute \'data-expectedlabel\'. Element: ${el.outerHTML}`; - } let testName = el.getAttribute("data-testname") || label; // data-testname optional if label is unique per test file if (typeof labelTestNamePrefix !== "undefined") { testName = labelTestNamePrefix + testName; diff --git a/tests/wpt/tests/webauthn/conditional-mediation.https.html b/tests/wpt/tests/webauthn/conditional-mediation.https.html index 1eb2ba3b1e7..aeb14b3b161 100644 --- a/tests/wpt/tests/webauthn/conditional-mediation.https.html +++ b/tests/wpt/tests/webauthn/conditional-mediation.https.html @@ -10,7 +10,7 @@ diff --git a/tests/wpt/tests/webcodecs/videoFrame-copyTo.any.js b/tests/wpt/tests/webcodecs/videoFrame-copyTo.any.js index 0fa57f43105..7cd3c3f73cd 100644 --- a/tests/wpt/tests/webcodecs/videoFrame-copyTo.any.js +++ b/tests/wpt/tests/webcodecs/videoFrame-copyTo.any.js @@ -310,3 +310,58 @@ promise_test(async t => { const data = new Uint8Array(12); await promise_rejects_js(t, TypeError, frame.copyTo(data, options)); }, 'Test invalid rect.'); + +promise_test(async t => { + let init = { + format: 'I420', + timestamp: 1234, + codedWidth: 8, + codedHeight: 16, + visibleRect: { + x: 2, + y: 2, + width: 4, + height: 8, + }, + colorSpace: { + primaries: 'smpte170m', + transfer: 'smpte170m', + matrix: 'smpte170m', + fullRange: false, + } + }; + + // Define YUV values for BT.601 red. + const redY = 76; + const redU = 84; + const redV = 255; + + const ySize = init.codedWidth * init.codedHeight; + const uvSize = ySize / 4; + let data = new Uint8Array(ySize + 2 * uvSize); + fillYUV(data, init.codedWidth, init.codedHeight, init.visibleRect, redY, redU, + redV); + + let frame = new VideoFrame(data, init); + assert_equals(frame.codedWidth, init.visibleRect.width); + assert_equals(frame.codedHeight, init.visibleRect.height); + assert_equals(frame.visibleRect.x, 0); + assert_equals(frame.visibleRect.y, 0); + assert_equals(frame.visibleRect.width, init.visibleRect.width); + assert_equals(frame.visibleRect.height, init.visibleRect.height); + assert_equals(frame.displayWidth, init.visibleRect.width); + assert_equals(frame.displayHeight, init.visibleRect.height); + + let options = {rect: frame.visibleRect}; + let copied_data = new Uint8Array(frame.allocationSize(options)); + await frame.copyTo(copied_data, options); + + // We could write a bunch of code to carefully slice out the visible region + // of `data`, but it's simpler and works better with testharness.js operators + // to just create a fresh packed version for direct comparison. + let packed_data = new Uint8Array(frame.allocationSize(options)); + fillYUV(packed_data, frame.codedWidth, frame.codedHeight, frame.visibleRect, + redY, redU, redV); + + assert_array_equals(copied_data, packed_data, `Copied frame data incorrect.`); +}, 'copyTo from byte data with non-default visibleRect'); diff --git a/tests/wpt/tests/webcodecs/videoFrame-utils.js b/tests/wpt/tests/webcodecs/videoFrame-utils.js index a4c761306c0..f03d8f38147 100644 --- a/tests/wpt/tests/webcodecs/videoFrame-utils.js +++ b/tests/wpt/tests/webcodecs/videoFrame-utils.js @@ -116,3 +116,31 @@ function verifyTimestampRequiredToConstructFrame(imageSource) { let validFrame = new VideoFrame(imageSource, {timestamp: 0}); validFrame.close(); } + +// Fills a visible region within `data` with the given YUV values. +function fillYUV(data, codedWidth, codedHeight, visibleRect, v_y, v_u, v_v) { + for (let y = 0; y < codedHeight; y++) { + for (let x = 0; x < codedWidth; x++) { + data[y * codedWidth + x] = + (x >= visibleRect.x && y < visibleRect.y + visibleRect.height) ? v_y + : 0; + } + } + const uvWidth = codedWidth / 2; + const uvHeight = codedHeight / 2; + const uvPlaneSize = uvWidth * uvHeight; + const uvOffset = codedWidth * codedHeight; + const uvX = visibleRect.x / 2; + const uvMaxY = (visibleRect.y + visibleRect.height) / 2; + for (let y = 0; y < uvHeight; y++) { + for (let x = 0; x < uvWidth; x++) { + if (x >= uvX && y < uvMaxY) { + data[uvOffset + y * uvWidth + x] = v_u; + data[uvOffset + uvPlaneSize + y * uvWidth + x] = v_v; + } else { + data[uvOffset + y * uvWidth + x] = + data[uvOffset + uvPlaneSize + y * uvWidth + x] = 128; + } + } + } +} diff --git a/tests/wpt/tests/webdriver/tests/bidi/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/__init__.py index ba982d1dc64..8e45c0f7265 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/__init__.py +++ b/tests/wpt/tests/webdriver/tests/bidi/__init__.py @@ -1,10 +1,12 @@ from typing import Any, Callable, Dict, List, Mapping from webdriver.bidi.modules.script import ContextTarget +from webdriver.bidi.undefined import UNDEFINED # Compares 2 objects recursively. # Actual value can have more keys as part of the forwards-compat design. -# Expected value can be a callable delegate, asserting the value. +# Expected value can be a value, a callable delegate, asserting the value, or UNDEFINED. +# If expected value is UNDEFINED, the actual value should not be present. def recursive_compare(expected: Any, actual: Any) -> None: if callable(expected): expected(actual) @@ -17,11 +19,19 @@ def recursive_compare(expected: Any, actual: Any) -> None: return if isinstance(actual, Dict) and isinstance(expected, Dict): + + # Expected keys with UNDEFINED values should not be present. + unexpected_keys = {key: value for key, value in expected.items() if + value is UNDEFINED}.keys() + assert not (unexpected_keys & actual.keys()), \ + f"Keys should not be present: {unexpected_keys & actual.keys()}" + + expected_keys = expected.keys() - unexpected_keys # Actual Mapping can have more keys as part of the forwards-compat design. assert ( - expected.keys() <= actual.keys() - ), f"Key set should be present: {set(expected.keys()) - set(actual.keys())}" - for key in expected.keys(): + expected_keys <= actual.keys() + ), f"Key set should be present: {set(expected_keys) - set(actual.keys())}" + for key in expected_keys: recursive_compare(expected[key], actual[key]) return diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/device_pixel_ratio.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/device_pixel_ratio.py index 76a4ef7ecd2..6267a793b88 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/device_pixel_ratio.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/device_pixel_ratio.py @@ -22,6 +22,15 @@ async def test_device_pixel_ratio_only(bidi_session, inline, new_tab, device_pix assert await get_device_pixel_ratio(bidi_session, new_tab) == device_pixel_ratio assert await get_viewport_dimensions(bidi_session, new_tab) == viewport + url = inline("
foo
", domain="alt") + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=url, wait="complete" + ) + + # Make sure that overrides are applied after cross-origin navigation. + assert await get_device_pixel_ratio(bidi_session, new_tab) == device_pixel_ratio + assert await get_viewport_dimensions(bidi_session, new_tab) == viewport + @pytest.mark.asyncio @pytest.mark.parametrize("device_pixel_ratio", [0.5, 2]) diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/invalid.py index 744bc0f7f79..671157986b3 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/invalid.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/invalid.py @@ -6,7 +6,7 @@ import webdriver.bidi.error as error pytestmark = pytest.mark.asyncio -@pytest.mark.parametrize("value", [None, False, 42, {}, []]) +@pytest.mark.parametrize("value", [False, 42, {}, []]) async def test_params_context_invalid_type(bidi_session, value): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.set_viewport(context=value, viewport={ @@ -89,3 +89,72 @@ async def test_params_devicePixelRatio_invalid_value(bidi_session, new_tab, devi device_pixel_ratio=device_pixel_ratio, viewport=None ) + + +@pytest.mark.parametrize("value", [True, "foo", 42, {}]) +async def test_params_user_contexts_invalid_type(bidi_session, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.set_viewport( + user_contexts=value, + viewport={ + "width": 100, + "height": 200, + } + ) + + +async def test_params_user_contexts_empty_list(bidi_session): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.set_viewport( + user_contexts=[], + viewport={ + "width": 100, + "height": 200, + } + ) + + +@pytest.mark.parametrize("value", [None, False, 42, {}, []]) +async def test_params_user_contexts_entry_invalid_type(bidi_session, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.set_viewport( + user_contexts=[value], + viewport={ + "width": 100, + "height": 200, + } + ) + + +@pytest.mark.parametrize("value", ["", "somestring"]) +async def test_params_user_contexts_entry_invalid_value(bidi_session, value): + with pytest.raises(error.NoSuchUserContextException): + await bidi_session.browsing_context.set_viewport( + user_contexts=[value], + viewport={ + "width": 100, + "height": 200, + } + ) + + +async def test_params_both_user_contexts_and_context(bidi_session, top_context): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.set_viewport( + context=top_context["context"], + user_contexts=["default"], + viewport={ + "width": 100, + "height": 200, + } + ) + + +async def test_params_no_user_contexts_and_context(bidi_session): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.set_viewport( + viewport={ + "width": 100, + "height": 200, + } + ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/user_contexts.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/user_contexts.py new file mode 100644 index 00000000000..64c26163734 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/user_contexts.py @@ -0,0 +1,402 @@ +import pytest +from webdriver.bidi.undefined import UNDEFINED + +from ... import get_device_pixel_ratio, get_viewport_dimensions + + +pytestmark = pytest.mark.asyncio + + +async def test_set_to_user_context(bidi_session, new_tab, create_user_context): + user_context = await create_user_context() + context_in_user_context_1 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + test_viewport = {"width": 250, "height": 300} + + assert await get_viewport_dimensions(bidi_session, new_tab) != test_viewport + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + != test_viewport + ) + + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], viewport=test_viewport + ) + + # Make sure that the viewport changes are only applied to the context associated with user context + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == test_viewport + ) + assert await get_viewport_dimensions(bidi_session, new_tab) != test_viewport + + # Create a new context in the user context + context_in_user_context_2 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + # Make sure that the viewport changes are also applied + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_2) + == test_viewport + ) + + # Create a new context in the default context + context_in_default_context = await bidi_session.browsing_context.create( + type_hint="tab" + ) + + # Make sure that the viewport changes are not applied + assert ( + await get_viewport_dimensions(bidi_session, context_in_default_context) + != test_viewport + ) + + +async def test_set_to_default_user_context(bidi_session, new_tab, create_user_context): + user_context = await create_user_context() + context_in_user_context_1 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + test_viewport = {"width": 250, "height": 300} + + assert await get_viewport_dimensions(bidi_session, new_tab) != test_viewport + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + != test_viewport + ) + + await bidi_session.browsing_context.set_viewport( + user_contexts=["default"], viewport=test_viewport + ) + + # Make sure that the viewport changes are only applied to the context associated with default user context + assert await get_viewport_dimensions(bidi_session, new_tab) == test_viewport + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + != test_viewport + ) + + # Create a new context in the default context + context_in_default_context = await bidi_session.browsing_context.create( + type_hint="tab" + ) + + assert ( + await get_viewport_dimensions(bidi_session, context_in_default_context) + == test_viewport + ) + + # Reset viewport settings + await bidi_session.browsing_context.set_viewport( + user_contexts=["default"], viewport=None + ) + + +async def test_set_to_multiple_user_contexts(bidi_session, create_user_context): + user_context_1 = await create_user_context() + user_context_2 = await create_user_context() + context_in_user_context_1 = await bidi_session.browsing_context.create( + user_context=user_context_1, type_hint="tab" + ) + context_in_user_context_2 = await bidi_session.browsing_context.create( + user_context=user_context_2, type_hint="tab" + ) + + test_viewport = {"width": 250, "height": 300} + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + != test_viewport + ) + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_2) + != test_viewport + ) + + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context_1, user_context_2], viewport=test_viewport + ) + + # Make sure that the viewport changes are applied to both user contexts + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == test_viewport + ) + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_2) + == test_viewport + ) + + +async def test_undefined_viewport(bidi_session, inline, create_user_context): + user_context = await create_user_context() + context_in_user_context_1 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + test_viewport = {"width": 499, "height": 599} + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + != test_viewport + ) + + # Load a page so that reflow is triggered when changing the viewport + url = inline("
foo
") + await bidi_session.browsing_context.navigate( + context=context_in_user_context_1["context"], url=url, wait="complete" + ) + + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], viewport=test_viewport + ) + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == test_viewport + ) + + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], viewport=UNDEFINED + ) + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == test_viewport + ) + + # Create another context in updated user context + context_in_user_context_2 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_2) + == test_viewport + ) + + +async def test_reset_to_default(bidi_session, inline, create_user_context): + user_context = await create_user_context() + context_in_user_context_1 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + original_viewport = await get_viewport_dimensions( + bidi_session, context_in_user_context_1 + ) + + test_viewport = {"width": 666, "height": 333} + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + != test_viewport + ) + + # Load a page so that reflow is triggered when changing the viewport + url = inline("
foo
") + await bidi_session.browsing_context.navigate( + context=context_in_user_context_1["context"], url=url, wait="complete" + ) + + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], viewport=test_viewport + ) + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == test_viewport + ) + + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], viewport=None + ) + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == original_viewport + ) + + # Create another context in updated user context + context_in_user_context_2 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_2) + == original_viewport + ) + + +async def test_set_viewport_and_device_pixel_ratio(bidi_session, create_user_context): + user_context = await create_user_context() + context_in_user_context_1 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + test_viewport = {"width": 250, "height": 300} + + # Set the viewport changes + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], viewport=test_viewport + ) + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == test_viewport + ) + + # Create a new context in the user context + context_in_user_context_2 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + # Make sure that the viewport changes are also applied + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_2) + == test_viewport + ) + + # Set the device pixel ratio changes + test_device_pixel_ratio = 2 + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], device_pixel_ratio=test_device_pixel_ratio + ) + + assert ( + await get_device_pixel_ratio(bidi_session, context_in_user_context_1) + == test_device_pixel_ratio + ) + assert ( + await get_device_pixel_ratio(bidi_session, context_in_user_context_2) + == test_device_pixel_ratio + ) + + # Create a new context in the user context + context_in_user_context_3 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + assert ( + await get_device_pixel_ratio(bidi_session, context_in_user_context_3) + == test_device_pixel_ratio + ) + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_3) + == test_viewport + ) + + +async def test_set_to_user_context_and_then_to_context( + bidi_session, create_user_context +): + user_context = await create_user_context() + context_in_user_context_1 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + test_viewport = {"width": 250, "height": 300} + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + != test_viewport + ) + + # Apply viewport dimensions to the user context. + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], viewport=test_viewport + ) + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == test_viewport + ) + + new_test_viewport = {"width": 100, "height": 100} + # Apply viewport dimensions now only to the context + await bidi_session.browsing_context.set_viewport( + context=context_in_user_context_1["context"], viewport=new_test_viewport + ) + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == new_test_viewport + ) + + await bidi_session.browsing_context.reload( + context=context_in_user_context_1["context"], wait="complete" + ) + + # Make sure that after reload the viewport dimensions are still updated. + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == new_test_viewport + ) + + # Create a new context in the user context + context_in_user_context_2 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + # Make sure that the viewport settings for the user context are applied + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_2) + == test_viewport + ) + + +async def test_set_viewport_to_user_context_and_then_device_pixel_ratio_to_context( + bidi_session, create_user_context +): + user_context = await create_user_context() + context_in_user_context_1 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + original_dpr = await get_device_pixel_ratio(bidi_session, context_in_user_context_1) + test_dpr = original_dpr + 1 + + test_viewport = {"width": 250, "height": 300} + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + != test_viewport + ) + + # Apply viewport dimensions to the user context. + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], viewport=test_viewport + ) + + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == test_viewport + ) + + # Apply viewport device pixel ratio now only to the context. + await bidi_session.browsing_context.set_viewport( + context=context_in_user_context_1["context"], device_pixel_ratio=test_dpr + ) + + assert ( + await get_device_pixel_ratio(bidi_session, context_in_user_context_1) + == test_dpr + ) + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_1) + == test_viewport + ) + + # Create a new context in the user context + context_in_user_context_2 = await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + # Make sure that the viewport settings for the user context are applied + assert ( + await get_viewport_dimensions(bidi_session, context_in_user_context_2) + == test_viewport + ) + assert ( + await get_device_pixel_ratio(bidi_session, context_in_user_context_2) + == original_dpr + ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/__init__.py new file mode 100644 index 00000000000..27f5918b4c8 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/__init__.py @@ -0,0 +1,10 @@ +from tests.bidi import recursive_compare, any_bool, any_dict + + +def assert_file_dialog_opened_event(event, context, multiple=any_bool, + element=any_dict): + recursive_compare({ + 'context': context, + 'element': element, + 'multiple': multiple + }, event) diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/file_dialog_opened.py b/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/file_dialog_opened.py new file mode 100644 index 00000000000..d1c4c555dcf --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/file_dialog_opened.py @@ -0,0 +1,109 @@ +import pytest +from tests.support.sync import AsyncPoll + +from webdriver.bidi.modules.script import ContextTarget +from . import assert_file_dialog_opened_event + +from webdriver.error import TimeoutException + +pytestmark = pytest.mark.asyncio + +FILE_DIALOG_OPENED_EVENT = "input.fileDialogOpened" + + +async def test_unsubscribe(bidi_session, inline, top_context, wait_for_event, + wait_for_future_safe): + await bidi_session.session.subscribe(events=[FILE_DIALOG_OPENED_EVENT]) + await bidi_session.session.unsubscribe(events=[FILE_DIALOG_OPENED_EVENT]) + + # Track all received browsingContext.navigationStarted events in the events array + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener = bidi_session.add_event_listener(FILE_DIALOG_OPENED_EVENT, + on_event) + + url = inline("") + await bidi_session.browsing_context.navigate(context=top_context["context"], + url=url, wait="complete") + + await bidi_session.script.evaluate( + expression="input.click()", + target=ContextTarget(top_context["context"]), + await_promise=False, + user_activation=True + ) + + wait = AsyncPoll(bidi_session, timeout=0.5) + with pytest.raises(TimeoutException): + await wait.until(lambda _: len(events) > 0) + + remove_listener() + + +async def test_subscribe(bidi_session, subscribe_events, inline, top_context, + wait_for_event, wait_for_future_safe): + await subscribe_events(events=[FILE_DIALOG_OPENED_EVENT]) + on_entry = wait_for_event(FILE_DIALOG_OPENED_EVENT) + + url = inline("") + await bidi_session.browsing_context.navigate(context=top_context["context"], + url=url, wait="complete") + + await bidi_session.script.evaluate( + expression="input.click()", + target=ContextTarget(top_context["context"]), + await_promise=False, + user_activation=True + ) + + event = await wait_for_future_safe(on_entry) + assert_file_dialog_opened_event(event, top_context["context"]) + + +@pytest.mark.parametrize("multiple", [True, False]) +async def test_multiple(bidi_session, subscribe_events, inline, top_context, + wait_for_event, wait_for_future_safe, multiple): + await subscribe_events(events=[FILE_DIALOG_OPENED_EVENT]) + on_entry = wait_for_event(FILE_DIALOG_OPENED_EVENT) + + url = inline( + f"") + await bidi_session.browsing_context.navigate(context=top_context["context"], + url=url, wait="complete") + + await bidi_session.script.evaluate( + expression="input.click()", + target=ContextTarget(top_context["context"]), + await_promise=False, + user_activation=True + ) + event = await wait_for_future_safe(on_entry) + assert_file_dialog_opened_event(event, top_context["context"], + multiple=multiple) + + +async def test_element(bidi_session, subscribe_events, inline, top_context, + wait_for_event, wait_for_future_safe): + await subscribe_events(events=[FILE_DIALOG_OPENED_EVENT]) + on_entry = wait_for_event(FILE_DIALOG_OPENED_EVENT) + + url = inline("") + await bidi_session.browsing_context.navigate(context=top_context["context"], + url=url, wait="complete") + + node = await bidi_session.script.evaluate( + expression="input.click(); input", + target=ContextTarget(top_context["context"]), + await_promise=False, + user_activation=True + ) + + event = await wait_for_future_safe(on_entry) + expected_element = { + 'sharedId': node["sharedId"], + } + assert_file_dialog_opened_event(event, top_context["context"], + element=expected_element) diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/tentative/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/tentative/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/tentative/show_open_file_picker.py b/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/tentative/show_open_file_picker.py new file mode 100644 index 00000000000..cfa08f96995 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/input/file_dialog_opened/tentative/show_open_file_picker.py @@ -0,0 +1,32 @@ +import pytest + +from webdriver.bidi.modules.script import ContextTarget +from webdriver.bidi.undefined import UNDEFINED +from tests.bidi.input.file_dialog_opened import assert_file_dialog_opened_event + +pytestmark = pytest.mark.asyncio + +FILE_DIALOG_OPENED_EVENT = "input.fileDialogOpened" + + +@pytest.mark.parametrize("multiple", [True, False]) +async def test_show_open_file_picker(bidi_session, subscribe_events, inline, + top_context, wait_for_event, wait_for_future_safe, multiple): + await subscribe_events(events=[FILE_DIALOG_OPENED_EVENT]) + on_file_dialog_opened = wait_for_event(FILE_DIALOG_OPENED_EVENT) + + # Navigate to a page to enable file picker. + await bidi_session.browsing_context.navigate(context=top_context["context"], + url=(inline("")), + wait="complete") + + await bidi_session.script.evaluate( + expression=f"window.showOpenFilePicker({{'multiple': {'true' if multiple else 'false'}}})", + target=ContextTarget(top_context["context"]), + await_promise=False, + user_activation=True + ) + + event = await wait_for_future_safe(on_file_dialog_opened) + assert_file_dialog_opened_event(event, top_context["context"], + multiple=multiple, element=UNDEFINED) diff --git a/tests/wpt/tests/webdriver/tests/bidi/integration/set_viewport_with_preload_script.py b/tests/wpt/tests/webdriver/tests/bidi/integration/set_viewport_with_preload_script.py new file mode 100644 index 00000000000..790c0a1d7c3 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/integration/set_viewport_with_preload_script.py @@ -0,0 +1,54 @@ +import pytest + +from .. import remote_mapping_to_dict + +pytestmark = pytest.mark.asyncio + + +async def test_order( + bidi_session, + add_preload_script, + create_user_context, + subscribe_events, + wait_for_event, + wait_for_future_safe, +): + await subscribe_events(["script.message"]) + test_viewport = {"width": 250, "height": 300} + + user_context = await create_user_context() + + await add_preload_script( + function_declaration="""(channel) => { + channel({ + height: window.innerHeight, + width: window.innerWidth, + }); + }""", + arguments=[{"type": "channel", "value": {"channel": "channel_name"}}], + ) + + on_message = wait_for_event("script.message") + + await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + + message = await wait_for_future_safe(on_message) + viewport = remote_mapping_to_dict(message["data"]["value"]) + + assert test_viewport != viewport + + await bidi_session.browsing_context.set_viewport( + user_contexts=[user_context], viewport=test_viewport + ) + + on_message = wait_for_event("script.message") + await bidi_session.browsing_context.create( + user_context=user_context, type_hint="tab" + ) + message = await wait_for_future_safe(on_message) + viewport = remote_mapping_to_dict(message["data"]["value"]) + + # Make sure that the preload script runs after viewport settings are updated. + assert test_viewport == viewport diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/add_preload_script/user_contexts.py b/tests/wpt/tests/webdriver/tests/bidi/script/add_preload_script/user_contexts.py index 9a6bb45cc70..db798d83f4f 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/add_preload_script/user_contexts.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/add_preload_script/user_contexts.py @@ -55,6 +55,56 @@ async def test_add_preload_script_to_user_context( await bidi_session.browsing_context.close(context=new_context_2["context"]) +async def test_add_preload_script_to_default_user_context( + bidi_session, add_preload_script, inline, create_user_context +): + await add_preload_script( + function_declaration="() => { window.foo='bar'; }", user_contexts=["default"] + ) + + new_context_1 = await bidi_session.browsing_context.create(type_hint="tab") + + # Check that preload script applied the changes to the tab in the user context. + result = await bidi_session.script.evaluate( + expression="window.foo", + target=ContextTarget(new_context_1["context"]), + await_promise=True, + ) + assert result == {"type": "string", "value": "bar"} + + url = inline("
foo
") + await bidi_session.browsing_context.navigate( + context=new_context_1["context"], + url=url, + wait="complete", + ) + + # Check that preload script was applied after navigation + result = await bidi_session.script.evaluate( + expression="window.foo", + target=ContextTarget(new_context_1["context"]), + await_promise=True, + ) + assert result == {"type": "string", "value": "bar"} + + user_context = await create_user_context() + # Create a new browsing context in the other user context. + new_context_2 = await bidi_session.browsing_context.create( + type_hint="tab", user_context=user_context + ) + + # Check that preload script didn't apply the changes to the tab in the default user context. + result = await bidi_session.script.evaluate( + expression="window.foo", + target=ContextTarget(new_context_2["context"]), + await_promise=True, + ) + assert result == {"type": "undefined"} + + await bidi_session.browsing_context.close(context=new_context_1["context"]) + await bidi_session.browsing_context.close(context=new_context_2["context"]) + + async def test_add_preload_script_to_multiple_user_contexts( bidi_session, add_preload_script, create_user_context ): diff --git a/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/accept.py b/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/accept.py new file mode 100644 index 00000000000..cc1197a53f9 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/accept.py @@ -0,0 +1,25 @@ +# META: timeout=long +import pytest + +pytestmark = pytest.mark.asyncio + + +@pytest.mark.capabilities({"unhandledPromptBehavior": 'accept'}) +async def test_string_accept(assert_file_dialog_canceled): + await assert_file_dialog_canceled() + + +@pytest.mark.capabilities({"unhandledPromptBehavior": 'accept and notify'}) +async def test_string_accept_and_notify(assert_file_dialog_canceled): + await assert_file_dialog_canceled() + + +@pytest.mark.capabilities({"unhandledPromptBehavior": {'default': 'accept'}}) +async def test_default_accept(assert_file_dialog_canceled): + await assert_file_dialog_canceled() + + +@pytest.mark.capabilities( + {"unhandledPromptBehavior": {'file': 'accept', 'default': 'ignore'}}) +async def test_file_accept(assert_file_dialog_canceled): + await assert_file_dialog_canceled() diff --git a/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/conftest.py b/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/conftest.py new file mode 100644 index 00000000000..397b5a610ef --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/conftest.py @@ -0,0 +1,60 @@ +import pytest +import pytest_asyncio +import asyncio + +from webdriver.error import TimeoutException +from webdriver.bidi.modules.script import ContextTarget + + +@pytest_asyncio.fixture +async def assert_file_dialog_canceled(bidi_session, inline, top_context): + async def assert_file_dialog_canceled(): + cancel_event = await bidi_session.script.evaluate( + expression=""" + new Promise(resolve => { + const picker = document.createElement('input'); + picker.type = 'file'; + picker.addEventListener('cancel', (event) => { + resolve(event.isTrusted); + }); + picker.click(); + })""", + target=ContextTarget(top_context["context"]), + await_promise=True, + user_activation=True + ) + + # Assert the `cancel` event is dispatched and the event is trusted. + assert cancel_event == { + 'type': 'boolean', + 'value': True + } + + yield assert_file_dialog_canceled + + +@pytest_asyncio.fixture +async def assert_file_dialog_not_canceled(bidi_session, inline, top_context, + wait_for_future_safe): + async def assert_file_dialog_not_canceled(): + cancel_event_future = asyncio.create_task(bidi_session.script.evaluate( + expression=""" + new Promise(resolve => { + const picker = document.createElement('input'); + picker.type = 'file'; + picker.addEventListener('cancel', (event) => { + resolve(event.isTrusted); + }); + picker.click(); + })""", + target=ContextTarget(top_context["context"]), + await_promise=True, + user_activation=True + )) + + with pytest.raises(TimeoutException): + await wait_for_future_safe(cancel_event_future, timeout=0.5) + + cancel_event_future.cancel() + + yield assert_file_dialog_not_canceled diff --git a/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/dismiss.py b/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/dismiss.py new file mode 100644 index 00000000000..91367a33a42 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/dismiss.py @@ -0,0 +1,25 @@ +# META: timeout=long +import pytest + +pytestmark = pytest.mark.asyncio + + +@pytest.mark.capabilities({"unhandledPromptBehavior": 'dismiss'}) +async def test_string_dismiss(assert_file_dialog_canceled): + await assert_file_dialog_canceled() + + +@pytest.mark.capabilities({"unhandledPromptBehavior": 'dismiss and notify'}) +async def test_string_dismiss_and_notify(assert_file_dialog_canceled): + await assert_file_dialog_canceled() + + +@pytest.mark.capabilities({"unhandledPromptBehavior": {'default': 'dismiss'}}) +async def test_default_dismiss(assert_file_dialog_canceled): + await assert_file_dialog_canceled() + + +@pytest.mark.capabilities( + {"unhandledPromptBehavior": {'file': 'dismiss', 'default': 'ignore'}}) +async def test_file_dismiss(assert_file_dialog_canceled): + await assert_file_dialog_canceled() diff --git a/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/ignore.py b/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/ignore.py new file mode 100644 index 00000000000..9d9951dd335 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/session/capabilities/unhandled_prompt_behavior/file/ignore.py @@ -0,0 +1,24 @@ +# META: timeout=long +import pytest + +pytestmark = pytest.mark.asyncio + + +async def test_no_capabilities(assert_file_dialog_not_canceled): + await assert_file_dialog_not_canceled() + + +@pytest.mark.capabilities({"unhandledPromptBehavior": 'ignore'}) +async def test_string_ignore(assert_file_dialog_not_canceled): + await assert_file_dialog_not_canceled() + + +@pytest.mark.capabilities({"unhandledPromptBehavior": {'default': 'ignore'}}) +async def test_default_ignore(assert_file_dialog_not_canceled): + await assert_file_dialog_not_canceled() + + +@pytest.mark.capabilities( + {"unhandledPromptBehavior": {'file': 'ignore', 'default': 'accept'}}) +async def test_file_ignore(assert_file_dialog_not_canceled): + await assert_file_dialog_not_canceled() diff --git a/tests/wpt/tests/webdriver/tests/bidi/session/subscribe/user_contexts.py b/tests/wpt/tests/webdriver/tests/bidi/session/subscribe/user_contexts.py index f98221ba7e3..ae2f574eca5 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/session/subscribe/user_contexts.py +++ b/tests/wpt/tests/webdriver/tests/bidi/session/subscribe/user_contexts.py @@ -34,6 +34,35 @@ async def test_subscribe_one_user_context(bidi_session, subscribe_events, create ) +async def test_subscribe_default_user_context(bidi_session, subscribe_events, create_user_context, wait_for_events): + user_context = await create_user_context() + + default_context = await bidi_session.browsing_context.create( + type_hint="tab", + user_context="default" + ) + + other_context = await bidi_session.browsing_context.create( + type_hint="tab", + user_context=user_context + ) + + await subscribe_events(events=["log.entryAdded"], user_contexts=["default"]) + + with wait_for_events(["log.entryAdded"]) as waiter: + await create_console_api_message(bidi_session, default_context, "text1") + await create_console_api_message(bidi_session, other_context, "text2") + events = await waiter.get_events(lambda events : len(events) >= 1) + assert len(events) == 1 + + recursive_compare( + { + "text": "text1", + }, + events[0][1], + ) + + async def test_subscribe_multiple_user_contexts(bidi_session, subscribe_events, wait_for_events, create_user_context): user_context = await create_user_context() diff --git a/tests/wpt/tests/webdriver/tests/bidi/web_extension/install/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/web_extension/install/invalid.py index bf6a47d396b..8dddcbc8321 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/web_extension/install/invalid.py +++ b/tests/wpt/tests/webdriver/tests/bidi/web_extension/install/invalid.py @@ -1,8 +1,6 @@ import pytest import webdriver.bidi.error as error -from tests.support.helpers import get_extension_path - pytestmark = pytest.mark.asyncio diff --git a/tests/wpt/tests/webnn/resources/utils_validation.js b/tests/wpt/tests/webnn/resources/utils_validation.js index 4ee0a9fd257..77a6d79205b 100644 --- a/tests/wpt/tests/webnn/resources/utils_validation.js +++ b/tests/wpt/tests/webnn/resources/utils_validation.js @@ -197,7 +197,8 @@ promise_setup(async () => { if (navigator.ml === undefined) { return; } - const deviceType = location.search.substring(1); + const deviceType = new URLSearchParams(location.search).get('device') || + location.search.substring(1); context = await navigator.ml.createContext({deviceType: deviceType}); }, {explicit_timeout: true}); @@ -584,8 +585,6 @@ function validateTwoInputsFromMultipleBuilders(operatorName) { function multi_builder_test(func, description) { promise_test(async t => { - const context = await navigator.ml.createContext(); - const builder = new MLGraphBuilder(context); const otherBuilder = new MLGraphBuilder(context); 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 12fdc5aadc3..3f87e3ce0f2 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 @@ -1,21 +1,32 @@ // META: title=validation tests for WebNN API element-wise binary operations // META: global=window -// META: variant=?cpu -// META: variant=?gpu -// META: variant=?npu +// META: variant=?op=add&device=cpu +// META: variant=?op=add&device=gpu +// META: variant=?op=add&device=npu +// META: variant=?op=sub&device=cpu +// META: variant=?op=sub&device=gpu +// META: variant=?op=sub&device=npu +// META: variant=?op=mul&device=cpu +// META: variant=?op=mul&device=gpu +// META: variant=?op=mul&device=npu +// META: variant=?op=div&device=cpu +// META: variant=?op=div&device=gpu +// META: variant=?op=div&device=npu +// META: variant=?op=max&device=cpu +// META: variant=?op=max&device=gpu +// META: variant=?op=max&device=npu +// META: variant=?op=min&device=cpu +// META: variant=?op=min&device=gpu +// META: variant=?op=min&device=npu +// META: variant=?op=pow&device=cpu +// META: variant=?op=pow&device=gpu +// META: variant=?op=pow&device=npu // META: script=../resources/utils_validation.js 'use strict'; -const kElementwiseBinaryOperators = [ - 'add', - 'sub', - 'mul', - 'div', - 'max', - 'min', - 'pow', -]; +const queryParams = new URLSearchParams(window.location.search); +const operatorName = queryParams.get('op'); const label = 'elementwise_binary_op'; const regrexp = new RegExp('\\[' + label + '\\]'); @@ -54,40 +65,35 @@ const tests = [ }, ]; -function runElementWiseBinaryTests(operatorName, tests) { - tests.forEach(test => { - promise_test(async t => { - const builder = new MLGraphBuilder(context); - if (!context.opSupportLimits().input.dataTypes.includes( - test.a.dataType)) { - assert_throws_js(TypeError, () => builder.input('a', test.a)); - return; - } - if (!context.opSupportLimits().input.dataTypes.includes( - test.b.dataType)) { - assert_throws_js(TypeError, () => builder.input('b', test.b)); - return; - } - const a = builder.input('a', test.a); - const b = builder.input('b', test.b); +tests.forEach(test => { + promise_test(async t => { + const builder = new MLGraphBuilder(context); + if (!context.opSupportLimits().input.dataTypes.includes( + test.a.dataType)) { + assert_throws_js(TypeError, () => builder.input('a', test.a)); + return; + } + if (!context.opSupportLimits().input.dataTypes.includes( + test.b.dataType)) { + assert_throws_js(TypeError, () => builder.input('b', test.b)); + return; + } + const a = builder.input('a', test.a); + const b = builder.input('b', test.b); - if (test.output) { - const output = builder[operatorName](a, b); - assert_equals(output.dataType, test.output.dataType); - assert_array_equals(output.shape, test.output.shape); - } else { - const options = {label}; - assert_throws_with_label( - () => builder[operatorName](a, b, options), regrexp); - } - }, test.name.replace('[binary]', `[${operatorName}]`)); - }); -} - -kElementwiseBinaryOperators.forEach((operatorName) => { - validateTwoInputsOfSameDataType(operatorName, label); - validateTwoInputsBroadcastable(operatorName, label); - validateTwoInputsFromMultipleBuilders(operatorName); - validateTwoBroadcastableInputsTensorLimit(operatorName, label); - runElementWiseBinaryTests(operatorName, tests); + if (test.output) { + const output = builder[operatorName](a, b); + assert_equals(output.dataType, test.output.dataType); + assert_array_equals(output.shape, test.output.shape); + } else { + const options = {label}; + assert_throws_with_label( + () => builder[operatorName](a, b, options), regrexp); + } + }, test.name.replace('[binary]', `[${operatorName}]`)); }); + +validateTwoInputsOfSameDataType(operatorName, label); +validateTwoInputsBroadcastable(operatorName, label); +validateTwoInputsFromMultipleBuilders(operatorName); +validateTwoBroadcastableInputsTensorLimit(operatorName, label); diff --git a/tests/wpt/tests/webnn/validation_tests/elementwise-logical.https.any.js b/tests/wpt/tests/webnn/validation_tests/elementwise-logical.https.any.js index 40b15a5c946..547cba3cc6c 100644 --- a/tests/wpt/tests/webnn/validation_tests/elementwise-logical.https.any.js +++ b/tests/wpt/tests/webnn/validation_tests/elementwise-logical.https.any.js @@ -1,31 +1,48 @@ // META: title=validation tests for WebNN API element-wise logical operations // META: global=window -// META: variant=?cpu -// META: variant=?gpu -// META: variant=?npu +// META: variant=?op=equal&device=cpu +// META: variant=?op=equal&device=gpu +// META: variant=?op=equal&device=npu +// META: variant=?op=greater&device=cpu +// META: variant=?op=greater&device=gpu +// META: variant=?op=greater&device=npu +// META: variant=?op=greaterOrEqual&device=cpu +// META: variant=?op=greaterOrEqual&device=gpu +// META: variant=?op=greaterOrEqual&device=npu +// META: variant=?op=lesser&device=cpu +// META: variant=?op=lesser&device=gpu +// META: variant=?op=lesser&device=npu +// META: variant=?op=lesserOrEqual&device=cpu +// META: variant=?op=lesserOrEqual&device=gpu +// META: variant=?op=lesserOrEqual&device=npu +// META: variant=?op=notEqual&device=cpu +// META: variant=?op=notEqual&device=gpu +// META: variant=?op=notEqual&device=npu +// META: variant=?op=logicalAnd&device=cpu +// META: variant=?op=logicalAnd&device=gpu +// META: variant=?op=logicalAnd&device=npu +// META: variant=?op=logicalOr&device=cpu +// META: variant=?op=logicalOr&device=gpu +// META: variant=?op=logicalOr&device=npu +// META: variant=?op=logicalXor&device=cpu +// META: variant=?op=logicalXor&device=gpu +// META: variant=?op=logicalXor&device=npu +// META: variant=?op=logicalNot&device=cpu +// META: variant=?op=logicalNot&device=gpu +// META: variant=?op=logicalNot&device=npu // META: script=../resources/utils_validation.js 'use strict'; -const kElementwiseLogicalBinaryOperators = [ - 'equal', - 'greater', - 'greaterOrEqual', - 'lesser', - 'lesserOrEqual', - 'notEqual', - 'logicalAnd', - 'logicalOr', - 'logicalXor', -]; +const queryParams = new URLSearchParams(window.location.search); +const operatorName = queryParams.get('op'); -const label = 'elementwise_logic_op'; - -kElementwiseLogicalBinaryOperators.forEach((operatorName) => { +if (operatorName === 'logicalNot') { + // The `logicalNot()` operator is unary. + validateInputFromAnotherBuilder(operatorName); +} else { + const label = 'elementwise_logic_op'; validateTwoInputsOfSameDataType(operatorName, label); validateTwoInputsFromMultipleBuilders(operatorName); validateTwoInputsBroadcastable(operatorName, label); -}); - -// The `logicalNot()` operator is unary. -validateInputFromAnotherBuilder('logicalNot'); +} diff --git a/tests/wpt/tests/workers/WorkerGlobalScope_ErrorEvent_message.htm b/tests/wpt/tests/workers/WorkerGlobalScope_ErrorEvent_message.htm index bc1d2c45b42..27d4dda5114 100644 --- a/tests/wpt/tests/workers/WorkerGlobalScope_ErrorEvent_message.htm +++ b/tests/wpt/tests/workers/WorkerGlobalScope_ErrorEvent_message.htm @@ -14,6 +14,7 @@ async_test(function(t) { worker.onmessage = t.step_func_done(function(e) { assert_greater_than(e.data.message.indexOf(message), -1); }); + worker.onerror = e => e.preventDefault(); worker.postMessage(message); }); diff --git a/tests/wpt/tests/xhr/progressevent-constructor.html b/tests/wpt/tests/xhr/progressevent-constructor.html index 0e771f4459f..3b9c774b874 100644 --- a/tests/wpt/tests/xhr/progressevent-constructor.html +++ b/tests/wpt/tests/xhr/progressevent-constructor.html @@ -40,6 +40,36 @@ test(function() { assert_equals(ev.loaded, 2) }, "ECMAScript value conversion test.") test(function() { + var ev = new ProgressEvent(null, { loaded: 1, total: 2 }) + assert_equals(ev.type, "null") + assert_equals(ev.loaded, 1) + assert_equals(ev.total, 2) +}, "Positive integer number test.") +test(function () { + var ev = new ProgressEvent(null, { loaded: 0, total: 1 }) + assert_equals(ev.type, "null") + assert_equals(ev.loaded, 0) + assert_equals(ev.total, 1) +}, "Zero test.") +test(function () { + var ev = new ProgressEvent(null, { loaded: 1.5, total: 3.5 }) + assert_equals(ev.type, "null") + assert_equals(ev.loaded, 1.5) + assert_equals(ev.total, 3.5) +}, "Decimal number test.") +test(function () { + var ev = new ProgressEvent(null, { loaded: 1.5, total: 5 }) + assert_equals(ev.type, "null") + assert_equals(ev.loaded, 1.5) + assert_equals(ev.total, 5) +}, "Mixed integer and decimal number test.") +test(function () { + var ev = new ProgressEvent(null, { loaded: -1, total: -5.5 }) + assert_equals(ev.type, "null") + assert_equals(ev.loaded, -1) + assert_equals(ev.total, -5.5) +}, "Negative number.") +test(function () { var ev = new ProgressEvent("Xx", { lengthcomputable: true}) assert_equals(ev.type, "Xx") assert_equals(ev.lengthComputable, false) diff --git a/tests/wpt/tests/xhr/progressevent-interface.html b/tests/wpt/tests/xhr/progressevent-interface.html index 7552ff73d3f..ec8d471d783 100644 --- a/tests/wpt/tests/xhr/progressevent-interface.html +++ b/tests/wpt/tests/xhr/progressevent-interface.html @@ -23,8 +23,8 @@ test(function() { }, "interface prototype object") var attributes = [ ["boolean", "lengthComputable"], - ["unsigned long long", "loaded"], - ["unsigned long long", "total"] + ["double", "loaded"], + ["double", "total"] ]; attributes.forEach(function(a) { test(function() {