From 9306f575c970573224deb9a723e876bf77e22e78 Mon Sep 17 00:00:00 2001 From: Servo WPT Sync <32481905+servo-wpt-sync@users.noreply.github.com> Date: Sun, 19 Jan 2025 02:36:07 +0100 Subject: [PATCH] Update web-platform-tests to revision b'8f3f629756d7351867a8be36d5f217608b9adc61' (#35065) Signed-off-by: WPT Sync Bot --- ...tition-navigation.tentative.https.html.ini | 2 + ...n-worker-creation.tentative.https.html.ini | 2 + .../cross-partition.tentative.https.html.ini | 2 + ...absent-getAvailability.https.window.js.ini | 4 - ...-added-getAvailability.https.window.js.ini | 4 - ...ed-off-getAvailability.https.window.js.ini | 4 - ...red-on-getAvailability.https.window.js.ini | 4 - ...off-on-getAvailability.https.window.js.ini | 4 - ...emoved-getAvailability.https.window.js.ini | 4 - ...me-getAvailability.sub.https.window.js.ini | 4 - ...aracteristicProperties.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - ...riptor-get-same-object.https.window.js.ini | 4 - ...gen-service-is-removed.https.window.js.ini | 4 - ...c-is-removed-with-uuid.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - ...riptor-get-same-object.https.window.js.ini | 4 - ...e-is-removed-with-uuid.https.window.js.ini | 4 - ...gen-service-is-removed.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - .../service-is-removed.https.window.js.ini | 4 - ...ltiple-event-listeners.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - .../event-is-fired.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - .../read-succeeds.https.window.js.ini | 4 - .../read-updates-value.https.window.js.ini | 4 - .../service-is-removed.https.window.js.ini | 4 - ...from-2-characteristics.https.window.js.ini | 4 - .../service-same-object.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - .../buffer-is-detached.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - .../service-is-removed.https.window.js.ini | 4 - .../write-succeeds.https.window.js.ini | 4 - .../buffer-is-detached.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - .../service-is-removed.https.window.js.ini | 4 - .../write-succeeds.https.window.js.ini | 4 - .../buffer-is-detached.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - .../service-is-removed.https.window.js.ini | 4 - .../write-succeeds.https.window.js.ini | 4 - ...gen-service-is-removed.https.window.js.ini | 4 - .../read-succeeds.https.window.js.ini | 4 - .../buffer-is-detached.https.window.js.ini | 4 - ...gen-service-is-removed.https.window.js.ini | 4 - .../disconnected.https.window.js.ini | 4 - .../disconnected_gc.https.window.js.ini | 4 - ...vent-per-disconnection.https.window.js.ini | 4 - ...ing-disconnected-event.https.window.js.ini | 4 - ...re-watchAdvertisements.https.window.js.ini | 4 - ...bort-pending-operation.https.window.js.ini | 4 - ...rt-signal-stops-events.https.window.js.ini | 4 - ...ents-call-stops-events.https.window.js.ini | 4 - ...ntreceived-event-fired.https.window.js.ini | 4 - ...chAdvertisements-calls.https.window.js.ini | 4 - ...ta-filtered-from-event.https.window.js.ini | 4 - ...tchAdvertisements-call.https.window.js.ini | 4 - ...ne-watchAdvertisements.https.window.js.ini | 4 - .../watching-two-devices.https.window.js.ini | 4 - ...-devices-with-services.https.window.js.ini | 4 - .../no-granted-devices.https.window.js.ini | 4 - ...luetooth-device-object.https.window.js.ini | 4 - .../idlharness.tentative.https.window.js.ini | 244 - ...sconnect-called-before.https.window.js.ini | 4 - ...ct-called-during-error.https.window.js.ini | 4 - ...-called-during-success.https.window.js.ini | 4 - ...ct-invalidates-objects.https.window.js.ini | 4 - ...en-disconnected-device.https.window.js.ini | 4 - ...mission-absent-service.https.window.js.ini | 4 - ...lete-service-not-found.https.window.js.ini | 4 - ...ction-ran-during-error.https.window.js.ini | 4 - ...ion-ran-during-success.https.window.js.ini | 4 - ...ice-after-reconnection.https.window.js.ini | 4 - .../gen-get-same-object.https.window.js.ini | 4 - ...n-invalid-service-name.https.window.js.ini | 4 - ...mission-absent-service.https.window.js.ini | 4 - ...ission-for-any-service.https.window.js.ini | 4 - ...ission-present-service.https.window.js.ini | 4 - .../gen-service-not-found.https.window.js.ini | 4 - ...alled-before-with-uuid.https.window.js.ini | 4 - ...sconnect-called-before.https.window.js.ini | 4 - ...during-error-with-uuid.https.window.js.ini | 4 - ...ct-called-during-error.https.window.js.ini | 4 - ...ring-success-with-uuid.https.window.js.ini | 4 - ...-called-during-success.https.window.js.ini | 4 - ...ates-objects-with-uuid.https.window.js.ini | 4 - ...ct-invalidates-objects.https.window.js.ini | 4 - ...ected-device-with-uuid.https.window.js.ini | 4 - ...en-disconnected-device.https.window.js.ini | 4 - ...sent-service-with-uuid.https.window.js.ini | 4 - ...ce-not-found-with-uuid.https.window.js.ini | 4 - ...during-error-with-uuid.https.window.js.ini | 4 - ...ction-ran-during-error.https.window.js.ini | 4 - ...ring-success-with-uuid.https.window.js.ini | 4 - ...ion-ran-during-success.https.window.js.ini | 4 - ...reconnection-with-uuid.https.window.js.ini | 4 - ...ice-after-reconnection.https.window.js.ini | 4 - ...-same-object-with-uuid.https.window.js.ini | 4 - .../gen-get-same-object.https.window.js.ini | 4 - ...n-invalid-service-name.https.window.js.ini | 4 - ...sent-service-with-uuid.https.window.js.ini | 4 - ...-any-service-with-uuid.https.window.js.ini | 4 - ...ission-for-any-service.https.window.js.ini | 4 - ...sent-service-with-uuid.https.window.js.ini | 4 - ...ce-not-found-with-uuid.https.window.js.ini | 4 - ...klisted-characteristic.https.window.js.ini | 4 - ...aracteristic-not-found.https.window.js.ini | 4 - ...ction-ran-during-error.https.window.js.ini | 4 - .../gen-get-same-object.https.window.js.ini | 4 - ...id-characteristic-name.https.window.js.ini | 4 - .../gen-reconnect-during.https.window.js.ini | 4 - ...gen-service-is-removed.https.window.js.ini | 4 - ...aracteristic-with-uuid.https.window.js.ini | 4 - ...ic-not-found-with-uuid.https.window.js.ini | 4 - ...during-error-with-uuid.https.window.js.ini | 4 - ...ction-ran-during-error.https.window.js.ini | 4 - ...-same-object-with-uuid.https.window.js.ini | 4 - .../gen-get-same-object.https.window.js.ini | 4 - ...id-characteristic-name.https.window.js.ini | 4 - ...nnect-during-with-uuid.https.window.js.ini | 4 - .../gen-reconnect-during.https.window.js.ini | 4 - ...e-is-removed-with-uuid.https.window.js.ini | 4 - ...gen-service-is-removed.https.window.js.ini | 4 - .../font-display-preload.html.ini | 2 +- .../generic-family-keywords-001.html.ini | 6 + .../background-image-alpha.https.html.ini | 2 +- .../background-image-multiple.https.html.ini | 2 + .../background-image-tiled.https.html.ini | 2 +- .../background-repeat-x.https.html.ini | 2 + ...r-custom-property-animation.https.html.ini | 2 +- ...ometry-background-image-001.https.html.ini | 2 + ...ometry-background-image-002.https.html.ini | 2 + ...-background-image-tiled-001.https.html.ini | 2 + ...-background-image-tiled-002.https.html.ini | 2 +- ...-background-image-tiled-003.https.html.ini | 2 +- .../geometry-border-image-001.https.html.ini | 2 +- .../geometry-border-image-002.https.html.ini | 2 +- .../geometry-border-image-003.https.html.ini | 2 +- .../geometry-border-image-004.https.html.ini | 2 + .../geometry-border-image-005.https.html.ini | 2 + .../geometry-with-float-size.https.html.ini | 2 +- .../hidpi/canvas-reset.https.html.ini | 2 + .../hidpi/canvas-transform.https.html.ini | 2 +- .../hidpi/device-pixel-ratio.https.html.ini | 2 +- ...lid-image-constructor-error.https.html.ini | 2 + .../invalid-image-paint-error.https.html.ini | 2 + ...nvalid-image-pending-script.https.html.ini | 2 + ...n-registered-property-value.https.html.ini | 2 + ...perty-animation-half-opaque.https.html.ini | 2 +- .../css/css-paint-api/overdraw.https.html.ini | 2 + .../paint-arguments.https.html.ini | 2 +- ...aint-function-arguments-var.https.html.ini | 2 +- .../paint-function-arguments.https.html.ini | 2 +- .../paint-function-this-value.https.html.ini | 2 + ...nt2d-canvasFilter.tentative.https.html.ini | 2 + .../paint2d-composite.https.html.ini | 2 +- .../paint2d-conicGradient.https.html.ini | 2 + .../paint2d-filter.https.html.ini | 2 +- .../paint2d-gradient.https.html.ini | 2 + .../paint2d-image.https.html.ini | 2 + .../paint2d-paths.https.html.ini | 2 +- .../paint2d-rects.https.html.ini | 2 + .../paint2d-reset.https.html.ini | 2 + .../paint2d-roundRect.https.html.ini | 2 + .../paint2d-shadows.https.html.ini | 2 + .../paint2d-transform.https.html.ini | 2 + .../parse-input-arguments-001.https.html.ini | 2 + .../parse-input-arguments-002.https.html.ini | 1 + .../parse-input-arguments-003.https.html.ini | 1 + .../parse-input-arguments-004.https.html.ini | 2 + .../parse-input-arguments-005.https.html.ini | 1 + .../parse-input-arguments-006.https.html.ini | 1 + .../parse-input-arguments-007.https.html.ini | 2 + .../parse-input-arguments-008.https.html.ini | 1 + .../parse-input-arguments-009.https.html.ini | 1 + .../parse-input-arguments-010.https.html.ini | 1 + .../parse-input-arguments-011.https.html.ini | 1 + .../parse-input-arguments-012.https.html.ini | 1 + .../parse-input-arguments-013.https.html.ini | 2 + .../parse-input-arguments-014.https.html.ini | 2 + .../parse-input-arguments-015.https.html.ini | 2 + .../parse-input-arguments-016.https.html.ini | 1 + .../parse-input-arguments-017.https.html.ini | 2 + .../parse-input-arguments-018.https.html.ini | 2 +- .../parse-input-arguments-019.https.html.ini | 2 + .../parse-input-arguments-020.https.html.ini | 2 + .../parse-input-arguments-021.https.html.ini | 2 + .../parse-input-arguments-022.https.html.ini | 2 + .../paint-function-valid.https.html.ini | 2 + ...d-property-invalidation-001.https.html.ini | 2 +- ...d-property-invalidation-002.https.html.ini | 2 +- .../css-paint-api/roundrect.https.html.ini | 2 + .../setTransform-001.https.html.ini | 2 + .../setTransform-002.https.html.ini | 2 + .../setTransform-003.https.html.ini | 2 + .../setTransform-004.https.html.ini | 2 + .../style-background-image.https.html.ini | 2 +- .../style-before-pseudo.https.html.ini | 2 +- .../style-first-letter-pseudo.https.html.ini | 2 +- .../top-level-await.https.html.ini | 2 +- ...o-custom-property-animation.https.html.ini | 2 +- ...t-custom-property-animation.https.html.ini | 2 +- ...e-custom-property-animation.https.html.ini | 2 +- .../valid-image-after-load.https.html.ini | 2 + .../valid-image-before-load.https.html.ini | 2 + ...he-check-pseudo-element.tentative.html.ini | 2 + ...ct-arrow-pseudo-element.tentative.html.ini | 2 + .../dynamic-available-size-iframe.html.ini | 2 + .../stretch/block-height-1.html.ini | 2 - .../stretch/block-height-2.html.ini | 2 - .../css/css-values/attr-all-types.html.ini | 41 +- .../tentative/Node-moveBefore.html.ini | 6 + .../css-font-face.sub.tentative.html.ini | 3 + .../element-picture.https.sub.html.ini | 9 + .../fetch/range/blob.any.js.ini | 36 - ...nt-after-calling-window-focus.sub.html.ini | 15 + ...fferent-site-iframe-contentwindow.html.ini | 6 + ...me-then-immediately-focusing-back.html.ini | 3 + ...er-focusing-different-site-iframe.html.ini | 3 + ...ng-same-site-iframe-contentwindow.html.ini | 2 + ...t-after-focusing-same-site-iframe.html.ini | 3 + ...fferent-site-iframe-contentwindow.html.ini | 2 + ...ng-same-site-iframe-contentwindow.html.ini | 2 + .../focus/focus-centers-element.html.ini | 3 + ...ocus-event-after-focusing-iframes.html.ini | 6 + ...cus-event-after-iframe-gets-focus.html.ini | 9 + ...-in-different-site-iframes-window.html.ini | 2 + ...oration-in-different-site-iframes.html.ini | 3 + ...ation-in-same-site-iframes-window.html.ini | 2 + .../focus/hasfocus-different-site.html.ini | 3 + .../focus/hasfocus-same-site.html.ini | 3 + ...lement-after-focusing-out-iframes.html.ini | 6 + ...different-site-intermediate-frame.html.ini | 3 + ...th-same-as-top-intermediate-frame.html.ini | 3 + ...different-site-intermediate-frame.html.ini | 3 + ...th-same-as-top-intermediate-frame.html.ini | 3 + .../iframe-focuses-parent-same-site.html.ini | 2 + .../focus/scroll-matches-focus.html.ini | 4 + .../iframe-nosrc.html.ini | 3 - ...c-aboutblank-navigate-immediately.html.ini | 3 + .../load-pageshow-events-window-open.html.ini | 3 + .../traverse_the_history_3.html.ini | 3 - .../createImageBitmap-serializable.html.ini | 2 +- ...ret-position-edge-cases.tentative.html.ini | 2 - ...re.caret-position-edges.tentative.html.ini | 2 - ....measure.caret-position.tentative.html.ini | 2 - .../offscreencanvas.resize.html.ini | 10 - ...anvas.transfer.lowlatency.nocrash.html.ini | 3 - ...nvas.transfercontrol.to.offscreen.html.ini | 10 - ...ret-position-edge-cases.tentative.html.ini | 2 - ...osition-edge-cases.tentative.worker.js.ini | 2 - ...re.caret-position-edges.tentative.html.ini | 2 - ...ret-position-edges.tentative.worker.js.ini | 2 - ....measure.caret-position.tentative.html.ini | 2 - .../html/dom/idlharness.https.html.ini | 12 +- ...ading-lazy-reload-location-reload.html.ini | 3 - ...rame_sandbox_popups_nonescaping-2.html.ini | 4 +- ...rame_sandbox_popups_nonescaping-3.html.ini | 2 +- ...mit-iframe-then-location-navigate.html.ini | 3 + ...rm-during-planned-navigation-task.html.ini | 4 + .../radio-disconnected-group-owner.html.ini | 3 + ...ct-value-selectedOption.tentative.html.ini | 2 - .../invokers/idlharness.tentative.html.ini | 2 - ...terestelement-interface.tentative.html.ini | 2 - ...invokeelement-interface.tentative.html.ini | 2 - ...ype-reset-popovertarget.tentative.html.ini | 3 +- ...opover-types-with-hints.tentative.html.ini | 33 +- .../bounding-box.html.ini | 3 + ...back-cross-realm-report-exception.html.ini | 3 + .../client-rect.html.ini | 3 + .../intersection-observer/clip-path.html.ini | 3 + .../containing-block.html.ini | 3 + .../cross-document-root.html.ini | 3 + .../cross-origin-iframe.sub.html.ini | 4 + .../intersection-observer/disconnect.html.ini | 3 + .../display-none.html.ini | 3 + .../document-scrolling-element-root.html.ini | 3 + .../edge-inclusive-intersection.html.ini | 3 + .../empty-root-margin.html.ini | 3 + .../explicit-root-different-document.html.ini | 4 + .../fixed-position-child-scroll.html.ini | 3 + .../fixed-position-iframe-scroll.html.ini | 3 + .../fixed-position-scroll.html.ini | 3 + .../grow-height-and-scrolled.html.ini | 2 + .../idlharness.window.js.ini | 135 + ...me-no-root-with-wrapping-scroller.html.ini | 3 + .../iframe-no-root.html.ini | 3 + ...nitial-observation-with-threshold.html.ini | 3 + .../inline-client-rect.html.ini | 3 + ...line-with-block-child-client-rect.html.ini | 3 + .../intersection-ratio-ib-split.html.ini | 3 + ...on-ratio-with-fractional-bounds-2.html.ini | 3 + ...-with-fractional-bounds-in-iframe.html.ini | 4 + ...tion-ratio-with-fractional-bounds.html.ini | 3 + .../isIntersecting-change-events.html.ini | 3 + .../isIntersecting-threshold.html.ini | 10 + .../multiple-targets.html.ini | 3 + .../multiple-thresholds.html.ini | 3 + .../nested-cross-origin-iframe.sub.html.ini | 4 + .../not-in-containing-block-chain.html.ini | 4 + .../observer-attributes.html.ini | 3 + .../observer-callback-arguments.html.ini | 3 + .../observer-exceptions.html.ini | 27 + .../observer-without-js-reference.html.ini | 3 + .../padding-clip.html.ini | 3 + .../remove-element.html.ini | 3 + .../root-margin-root-element.html.ini | 3 + .../root-margin-rounding.html.ini | 4 + .../root-margin.html.ini | 3 + .../root-vertical-rl.html.ini | 3 + .../rtl-clipped-root.html.ini | 3 + .../same-document-no-root.html.ini | 3 + .../same-document-root.html.ini | 3 + .../same-document-with-document-root.html.ini | 3 + .../same-document-zero-size-target.html.ini | 3 + ...ame-origin-grand-child-iframe.sub.html.ini | 4 + .../scroll-and-root-margin.html.ini | 4 + .../scroll-margin-4-val.html.ini | 4 + .../scroll-margin-clip-path.html.ini | 4 + .../scroll-margin-dynamic.html.ini | 4 + .../scroll-margin-horizontal.html.ini | 4 + .../scroll-margin-iframe.html.ini | 3 + .../scroll-margin-nested-2.html.ini | 4 + .../scroll-margin-nested-3.html.ini | 4 + .../scroll-margin-nested.html.ini | 4 + .../scroll-margin-no-intersect.html.ini | 4 + .../scroll-margin-non-scrolling-root.html.ini | 4 + .../scroll-margin-not-contained.html.ini | 4 + .../scroll-margin-percent.html.ini | 4 + ...scroll-margin-with-border-outline.html.ini | 4 + .../scroll-margin-zero.html.ini | 4 + .../scroll-margin.html.ini | 4 + .../shadow-content.html.ini | 3 + .../svg-clipped-rect-target.html.ini | 3 + .../svg-container-element.html.ini | 3 + .../svg-group-target.html.ini | 3 + .../intersection-observer/svg-image.html.ini | 3 + ...rsection-with-fractional-bounds-2.html.ini | 3 + ...tersection-with-fractional-bounds.html.ini | 3 + .../svg-rect-target.html.ini | 3 + .../svg-stroke-change.html.ini | 3 + .../svg-target-changes-position.html.ini | 3 + .../svg-transformed-rect-target.html.ini | 3 + .../svg-viewbox.html.ini | 3 + .../target-in-detached-document.html.ini | 3 + .../target-in-different-window.html.ini | 3 + .../target-is-root.html.ini | 3 + .../text-target.html.ini | 3 + .../intersection-observer/timestamp.html.ini | 4 + .../transform-animation.html.ini | 3 + .../unclipped-root.html.ini | 3 + .../v2/animated-occlusion.html.ini | 3 + .../v2/blur-filter.html.ini | 3 + .../v2/box-reflect.html.ini | 3 + .../v2/box-shadow.html.ini | 3 + .../v2/cross-origin-effects.sub.html.ini | 4 + .../v2/cross-origin-occlusion.sub.html.ini | 4 + .../v2/delay-test.html.ini | 3 + .../drop-shadow-filter-vertical-rl.html.ini | 3 + .../v2/iframe-target.html.ini | 3 + .../v2/inline-occlusion.html.ini | 3 + .../v2/nested-cross-origin.sub.html.ini | 4 + ...-overflow-visible-and-not-visible.html.ini | 4 + .../v2/position-relative.html.ini | 3 + .../v2/scaled-target.html.ini | 4 + .../v2/simple-effects.html.ini | 3 + ...mple-occlusion-svg-foreign-object.html.ini | 3 + .../v2/simple-occlusion.html.ini | 3 + .../v2/text-editor-occlusion.html.ini | 3 + .../v2/text-shadow.html.ini | 3 + .../visibility-hidden.html.ini | 3 + .../zero-area-element-hidden.html.ini | 3 + .../zero-area-element-visible.html.ini | 3 + .../zoom-scaled-target.html.ini | 3 + .../mixed-content/blob.https.sub.html.ini | 4 + .../mixed-content/csp.https.window.js.ini | 3 + .../opt-in/fetch.https.html.ini | 6 + .../opt-in/websocket.https.html.ini | 3 + .../opt-in/xhr.https.html.ini | 6 + .../opt-in/fetch.https.html.ini | 3 + .../opt-in/websocket.https.html.ini | 3 + .../opt-in/xhr.https.html.ini | 3 + .../unset/fetch.https.html.ini | 6 + .../unset/websocket.https.html.ini | 3 + .../unset/xhr.https.html.ini | 6 + .../opt-in/fetch.https.html.ini | 6 + .../opt-in/websocket.https.html.ini | 3 + .../opt-in/xhr.https.html.ini | 6 + .../unset/fetch.https.html.ini | 6 + .../unset/websocket.https.html.ini | 3 + .../unset/xhr.https.html.ini | 6 + .../opt-in/fetch.https.html.ini | 6 + .../opt-in/websocket.https.html.ini | 3 + .../opt-in/xhr.https.html.ini | 6 + .../opt-in/fetch.https.html.ini | 3 + .../opt-in/websocket.https.html.ini | 3 + .../opt-in/xhr.https.html.ini | 3 + .../unset/fetch.https.html.ini | 6 + .../unset/websocket.https.html.ini | 3 + .../unset/xhr.https.html.ini | 6 + .../opt-in/fetch.https.html.ini | 6 + .../opt-in/websocket.https.html.ini | 3 + .../opt-in/xhr.https.html.ini | 6 + .../unset/fetch.https.html.ini | 6 + .../unset/websocket.https.html.ini | 3 + .../unset/xhr.https.html.ini | 6 + .../opt-in/audio-tag.https.html.ini | 2 + .../top.http-rp/opt-in/beacon.https.html.ini | 6 + .../top.http-rp/opt-in/fetch.https.html.ini | 24 + .../top.http-rp/opt-in/img-tag.https.html.ini | 24 + .../opt-in/link-css-tag.https.html.ini | 24 + .../opt-in/link-prefetch-tag.https.html.ini | 24 + .../opt-in/object-tag.https.html.ini | 31 + .../opt-in/picture-tag.https.html.ini | 24 + .../opt-in/script-tag.https.html.ini | 24 + .../sharedworker-classic.https.html.ini | 6 + .../sharedworker-import-data.https.html.ini | 6 + .../opt-in/sharedworker-import.https.html.ini | 6 + .../opt-in/sharedworker-module.https.html.ini | 6 + .../opt-in/video-tag.https.html.ini | 31 + .../opt-in/websocket.https.html.ini | 6 + .../opt-in/worker-import-data.https.html.ini | 6 + .../opt-in/worker-import.https.html.ini | 6 + ...rklet-animation-import-data.https.html.ini | 6 + .../opt-in/worklet-animation.https.html.ini | 6 + .../worklet-audio-import-data.https.html.ini | 6 + .../opt-in/worklet-audio.https.html.ini | 6 + .../worklet-layout-import-data.https.html.ini | 6 + .../opt-in/worklet-layout.https.html.ini | 6 + .../worklet-paint-import-data.https.html.ini | 6 + .../opt-in/worklet-paint.https.html.ini | 6 + .../gen/top.http-rp/opt-in/xhr.https.html.ini | 24 + .../top.meta/opt-in/audio-tag.https.html.ini | 2 + .../gen/top.meta/opt-in/beacon.https.html.ini | 3 + .../gen/top.meta/opt-in/fetch.https.html.ini | 6 + .../top.meta/opt-in/img-tag.https.html.ini | 6 + .../opt-in/link-css-tag.https.html.ini | 6 + .../opt-in/link-prefetch-tag.https.html.ini | 6 + .../top.meta/opt-in/object-tag.https.html.ini | 10 + .../opt-in/picture-tag.https.html.ini | 6 + .../top.meta/opt-in/script-tag.https.html.ini | 6 + .../sharedworker-classic.https.html.ini | 3 + .../sharedworker-import-data.https.html.ini | 3 + .../opt-in/sharedworker-import.https.html.ini | 3 + .../opt-in/sharedworker-module.https.html.ini | 3 + .../top.meta/opt-in/video-tag.https.html.ini | 10 + .../top.meta/opt-in/websocket.https.html.ini | 6 + .../opt-in/worker-import-data.https.html.ini | 3 + .../opt-in/worker-import.https.html.ini | 3 + ...rklet-animation-import-data.https.html.ini | 3 + .../opt-in/worklet-animation.https.html.ini | 3 + .../worklet-audio-import-data.https.html.ini | 3 + .../opt-in/worklet-audio.https.html.ini | 3 + .../worklet-layout-import-data.https.html.ini | 3 + .../opt-in/worklet-layout.https.html.ini | 3 + .../worklet-paint-import-data.https.html.ini | 3 + .../opt-in/worklet-paint.https.html.ini | 3 + .../gen/top.meta/opt-in/xhr.https.html.ini | 6 + .../top.meta/unset/audio-tag.https.html.ini | 2 + .../gen/top.meta/unset/beacon.https.html.ini | 6 + .../gen/top.meta/unset/fetch.https.html.ini | 18 + .../unset/link-css-tag.https.html.ini | 18 + .../unset/link-prefetch-tag.https.html.ini | 18 + .../top.meta/unset/object-tag.https.html.ini | 25 + .../top.meta/unset/picture-tag.https.html.ini | 18 + .../top.meta/unset/script-tag.https.html.ini | 18 + .../unset/sharedworker-classic.https.html.ini | 6 + .../sharedworker-import-data.https.html.ini | 6 + .../unset/sharedworker-import.https.html.ini | 6 + .../unset/sharedworker-module.https.html.ini | 6 + .../top.meta/unset/video-tag.https.html.ini | 25 + .../top.meta/unset/websocket.https.html.ini | 6 + .../unset/worker-import-data.https.html.ini | 6 + .../unset/worker-import.https.html.ini | 6 + ...rklet-animation-import-data.https.html.ini | 6 + .../unset/worklet-animation.https.html.ini | 6 + .../worklet-audio-import-data.https.html.ini | 6 + .../unset/worklet-audio.https.html.ini | 6 + .../worklet-layout-import-data.https.html.ini | 6 + .../unset/worklet-layout.https.html.ini | 6 + .../worklet-paint-import-data.https.html.ini | 6 + .../unset/worklet-paint.https.html.ini | 6 + .../gen/top.meta/unset/xhr.https.html.ini | 18 + .../opt-in/fetch.https.html.ini | 24 + .../opt-in/websocket.https.html.ini | 6 + .../opt-in/xhr.https.html.ini | 24 + .../opt-in/fetch.https.html.ini | 6 + .../opt-in/websocket.https.html.ini | 6 + .../opt-in/xhr.https.html.ini | 6 + .../unset/fetch.https.html.ini | 18 + .../unset/websocket.https.html.ini | 6 + .../unset/xhr.https.html.ini | 18 + .../opt-in/fetch.https.html.ini | 24 + .../opt-in/websocket.https.html.ini | 6 + .../opt-in/xhr.https.html.ini | 24 + .../unset/fetch.https.html.ini | 18 + .../unset/websocket.https.html.ini | 6 + .../unset/xhr.https.html.ini | 18 + .../opt-in/fetch.https.html.ini | 6 + .../opt-in/websocket.https.html.ini | 3 + .../opt-in/xhr.https.html.ini | 6 + .../opt-in/fetch.https.html.ini | 3 + .../opt-in/websocket.https.html.ini | 3 + .../opt-in/xhr.https.html.ini | 3 + .../unset/fetch.https.html.ini | 6 + .../unset/websocket.https.html.ini | 3 + .../unset/xhr.https.html.ini | 6 + .../opt-in/fetch.https.html.ini | 6 + .../opt-in/websocket.https.html.ini | 3 + .../opt-in/worker-classic.https.html.ini | 6 + .../opt-in/worker-module.https.html.ini | 6 + .../opt-in/xhr.https.html.ini | 6 + .../unset/fetch.https.html.ini | 6 + .../unset/websocket.https.html.ini | 3 + .../unset/worker-classic.https.html.ini | 6 + .../unset/worker-module.https.html.ini | 6 + .../unset/xhr.https.html.ini | 6 + .../mixed-content/imageset.https.sub.html.ini | 3 + .../nested-iframes.window.js.ini | 3 + .../audio-upgrade.https.sub.html.ini | 6 + .../image-upgrade.https.sub.html.ini | 6 + .../mixed-content-cors.https.sub.html.ini | 9 + .../video-upgrade.https.sub.html.ini | 6 + .../test-navigation-type-reload.html.ini | 9 - ...ation-id-detached-frame.tentative.html.ini | 4 - .../tentative/detached-frame.html.ini | 2 + .../include-frames-originA-A-A.html.ini | 2 + .../include-frames-originA-A.html.ini | 2 + .../include-frames-originA-AA.html.ini | 2 + .../include-frames-originA-AB.html.ini | 2 + .../include-frames-originA-B-A.html.ini | 2 + .../include-frames-originA-B-B.html.ini | 2 + .../include-frames-originA-B.html.ini | 2 + .../performance-entry-source.html.ini | 2 + .../with-filter-options-originA.html.ini | 2 + .../png/apng/acTL-plays-one.html.ini | 2 + .../png/apng/acTL-plays-two.html.ini | 2 + .../png/apng/fDAT-inherits-cICP.html.ini | 2 + .../png/apng/fcTL-acTL-ordering.html.ini | 2 + .../apng/fcTL-blend-over-repeatedly.html.ini | 2 + .../png/apng/fcTL-blend-over-solid.html.ini | 2 + ...L-blend-source-nearly-transparent.html.ini | 2 + .../png/apng/fcTL-blend-source-solid.html.ini | 2 + .../fcTL-blend-source-transparent.html.ini | 2 + .../fcTL-dispose-background-final.html.ini | 2 + .../png/apng/fcTL-dispose-background.html.ini | 2 + ...-dispose-before-region-background.html.ini | 2 + ...fcTL-dispose-in-region-background.html.ini | 2 + .../apng/fcTL-dispose-in-region-none.html.ini | 2 + .../fcTL-dispose-in-region-previous.html.ini | 2 + .../png/apng/fcTL-dispose-none.html.ini | 2 + .../apng/fcTL-dispose-previous-final.html.ini | 2 + .../apng/fcTL-dispose-previous-first.html.ini | 2 + .../png/apng/fcTL-dispose-previous.html.ini | 2 + .../png/apng/fdAT-16bit.html.ini | 2 + .../png/apng/fdAT-1bit-PLTE-tRNS.html.ini | 2 + .../png/apng/fdAT-1bit-PLTE.html.ini | 2 + .../png/apng/fdAT-2bit-PLTE-tRNS.html.ini | 2 + .../png/apng/fdAT-8bit-gray-alpha.html.ini | 2 + .../png/apng/fdAT-8bit-gray.html.ini | 2 + .../png/apng/fdAT-split-basic.html.ini | 2 + .../png/apng/fdAT-split-zero-length.html.ini | 2 + .../png/apng/first-frame-not-IDAT.html.ini | 2 + .../meta-legacy-layout/png/cICP-wins.html.ini | 2 + .../png/cicp-chunk.html.ini | 3 + .../png/exif-chunk.html.ini | 3 + .../basic-shared-worker.html.ini | 2 + .../basic-shared-worker.https.html.ini | 2 + .../unset/iframe-tag.https.html.ini | 19 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/iframe-tag.https.html.ini | 19 + .../upgrade/img-tag.https.html.ini | 18 + .../sharedworker-classic.https.html.ini | 9 + .../sharedworker-import-data.https.html.ini | 18 + .../sharedworker-import.https.html.ini | 18 + .../sharedworker-module.https.html.ini | 9 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/worker-classic.https.html.ini | 9 + .../upgrade/worker-import-data.https.html.ini | 18 + .../upgrade/worker-import.https.html.ini | 18 + .../upgrade/worker-module.https.html.ini | 9 + ...rklet-animation-import-data.https.html.ini | 18 + .../upgrade/worklet-animation.https.html.ini | 18 + .../worklet-audio-import-data.https.html.ini | 18 + .../upgrade/worklet-audio.https.html.ini | 18 + .../worklet-layout-import-data.https.html.ini | 18 + .../upgrade/worklet-layout.https.html.ini | 18 + .../worklet-paint-import-data.https.html.ini | 18 + .../upgrade/worklet-paint.https.html.ini | 18 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/xhr.https.html.ini | 18 + .../unset/iframe-tag.https.html.ini | 19 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/iframe-tag.https.html.ini | 19 + .../upgrade/img-tag.https.html.ini | 18 + .../sharedworker-classic.https.html.ini | 9 + .../sharedworker-import-data.https.html.ini | 18 + .../sharedworker-import.https.html.ini | 18 + .../sharedworker-module.https.html.ini | 9 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/worker-classic.https.html.ini | 9 + .../upgrade/worker-import-data.https.html.ini | 18 + .../upgrade/worker-import.https.html.ini | 18 + .../upgrade/worker-module.https.html.ini | 9 + ...rklet-animation-import-data.https.html.ini | 18 + .../upgrade/worklet-animation.https.html.ini | 18 + .../worklet-audio-import-data.https.html.ini | 18 + .../upgrade/worklet-audio.https.html.ini | 18 + .../worklet-layout-import-data.https.html.ini | 18 + .../upgrade/worklet-layout.https.html.ini | 18 + .../worklet-paint-import-data.https.html.ini | 18 + .../upgrade/worklet-paint.https.html.ini | 18 + .../upgrade/xhr.https.html.ini | 18 + .../top.http-rp/upgrade/fetch.https.html.ini | 18 + .../upgrade/iframe-tag.https.html.ini | 19 + .../upgrade/img-tag.https.html.ini | 18 + .../sharedworker-classic.https.html.ini | 9 + .../sharedworker-import-data.https.html.ini | 18 + .../sharedworker-import.https.html.ini | 18 + .../sharedworker-module.https.html.ini | 9 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/worker-classic.https.html.ini | 9 + .../upgrade/worker-import-data.https.html.ini | 18 + .../upgrade/worker-import.https.html.ini | 18 + .../upgrade/worker-module.https.html.ini | 9 + ...rklet-animation-import-data.https.html.ini | 18 + .../upgrade/worklet-animation.https.html.ini | 18 + .../worklet-audio-import-data.https.html.ini | 18 + .../upgrade/worklet-audio.https.html.ini | 18 + .../worklet-layout-import-data.https.html.ini | 18 + .../upgrade/worklet-layout.https.html.ini | 18 + .../worklet-paint-import-data.https.html.ini | 18 + .../upgrade/worklet-paint.https.html.ini | 18 + .../top.http-rp/upgrade/xhr.https.html.ini | 18 + .../top.meta/unset/iframe-tag.https.html.ini | 19 + .../gen/top.meta/upgrade/fetch.https.html.ini | 18 + .../upgrade/iframe-tag.https.html.ini | 19 + .../top.meta/upgrade/img-tag.https.html.ini | 18 + .../sharedworker-classic.https.html.ini | 9 + .../sharedworker-import-data.https.html.ini | 18 + .../sharedworker-import.https.html.ini | 18 + .../sharedworker-module.https.html.ini | 9 + .../top.meta/upgrade/websocket.https.html.ini | 6 + .../upgrade/worker-classic.https.html.ini | 9 + .../upgrade/worker-import-data.https.html.ini | 18 + .../upgrade/worker-import.https.html.ini | 18 + .../upgrade/worker-module.https.html.ini | 9 + ...rklet-animation-import-data.https.html.ini | 18 + .../upgrade/worklet-animation.https.html.ini | 18 + .../worklet-audio-import-data.https.html.ini | 18 + .../upgrade/worklet-audio.https.html.ini | 18 + .../worklet-layout-import-data.https.html.ini | 18 + .../upgrade/worklet-layout.https.html.ini | 18 + .../worklet-paint-import-data.https.html.ini | 18 + .../upgrade/worklet-paint.https.html.ini | 18 + .../gen/top.meta/upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/worker-classic.https.html.ini | 9 + .../upgrade/worker-module.https.html.ini | 9 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/xhr.https.html.ini | 18 + .../upgrade/fetch.https.html.ini | 18 + .../upgrade/websocket.https.html.ini | 6 + .../upgrade/worker-classic.https.html.ini | 9 + .../upgrade/worker-module.https.html.ini | 9 + .../upgrade/xhr.https.html.ini | 18 + .../link-upgrade.sub.https.html.ini | 21 + .../Worker/Worker-constructor.html.ini | 2 - .../xhr/blob-range.any.js.ini | 30 - .../cross-partition-navigation.https.html.ini | 3 + .../url/url-in-tags-revoke.window.js.ini | 3 + tests/wpt/meta/MANIFEST.json | 17509 +++++++++------- .../buffer-is-detached.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - .../service-is-removed.https.window.js.ini | 4 - .../write-succeeds.https.window.js.ini | 4 - .../buffer-is-detached.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - ...racteristic-is-removed.https.window.js.ini | 4 - .../service-is-removed.https.window.js.ini | 4 - .../write-succeeds.https.window.js.ini | 4 - ...re-watchAdvertisements.https.window.js.ini | 4 - ...bort-pending-operation.https.window.js.ini | 4 - ...rt-signal-stops-events.https.window.js.ini | 4 - ...ents-call-stops-events.https.window.js.ini | 4 - ...ntreceived-event-fired.https.window.js.ini | 4 - ...chAdvertisements-calls.https.window.js.ini | 4 - ...ta-filtered-from-event.https.window.js.ini | 4 - ...tchAdvertisements-call.https.window.js.ini | 4 - ...ne-watchAdvertisements.https.window.js.ini | 4 - .../watching-two-devices.https.window.js.ini | 4 - .../idlharness.tentative.https.window.js.ini | 226 - .../line-clamp/block-ellipsis-001.html.ini | 2 + .../line-clamp/block-ellipsis-002.html.ini | 2 + .../block-ellipsis-003.tentative.html.ini | 2 + .../line-clamp/block-ellipsis-004.html.ini | 2 + .../line-clamp/block-ellipsis-005.html.ini | 2 + .../line-clamp/block-ellipsis-006.html.ini | 2 + .../block-ellipsis-007.tentative.html.ini | 2 + .../block-ellipsis-008.tentative.html.ini | 2 + .../block-ellipsis-009.tentative.html.ini | 2 + ...e-clamp-with-floats-010.tentative.html.ini | 2 - .../line-clamp/webkit-line-clamp-051.html.ini | 2 + .../line-clamp/webkit-line-clamp-052.html.ini | 2 + .../line-clamp/webkit-line-clamp-053.html.ini | 2 + ...-imageSmoothingQuality.high.https.html.ini | 2 + ...d-imageSmoothingQuality.low.https.html.ini | 2 + ...d-imageSmoothingQuality.med.https.html.ini | 2 + .../after-change-style-inherited.html.ini | 9 + .../css/css-values/attr-all-types.html.ini | 41 +- .../css-values/attr-cycle.tentative.html.ini | 54 + .../random-computed.tentative.html.ini | 195 + .../random-serialize.tentative.html.ini | 63 + .../css-values/rlh-on-root-lengths.html.ini | 3 + .../details-open-pseudo-001.html.ini | 2 + .../details-open-pseudo-002.html.ini | 2 + .../details-open-pseudo-003.html.ini | 2 + .../tentative/Node-moveBefore.html.ini | 6 + tests/wpt/meta/fetch/api/basic/gc.any.js.ini | 9 + ...avigation-unload-same-origin.window.js.ini | 3 + .../refresh/same-document-refresh.html.ini | 3 - .../traverse_the_history_3.html.ini | 3 - ...-subresource-corp.tentative.https.html.ini | 10 + .../meta/html/dom/idlharness.https.html.ini | 6 + ...etails-summary-display-inline-002.html.ini | 2 + .../iframe_sandbox_popups_escaping-1.html.ini | 1 + .../iframe_sandbox_popups_escaping-3.html.ini | 2 +- ...rame_sandbox_popups_nonescaping-3.html.ini | 2 +- .../text-plain.window.js.ini | 3 + .../radio-disconnected-group-owner.html.ini | 3 + ... button-type-reset-popovertarget.html.ini} | 2 +- ....ini => popover-types-with-hints.html.ini} | 10 +- .../content-encoding.https.html.ini | 4 + .../content-encoding.https.html.ini | 76 + .../webmessaging/without-ports/018.html.ini | 4 + .../mozilla/preferences.html.ini | 1 + .../worklets/test_paint_worklet.html.ini | 2 +- .../worklets/test_paint_worklet_size.html.ini | 2 +- .../test_paint_worklet_timeout.html.ini | 2 +- .../mozilla/worklets/test_worklet.html.ini | 1 + tests/wpt/tests/.github/workflows/docker.yml | 2 +- .../cross-partition-navigation.https.html | 59 + ...reateObjectStore-createIndex-emptyname.htm | 45 - .../idbdatabase_createObjectStore.any.js | 305 + .../idbdatabase_createObjectStore.htm | 29 - ...bdatabase_createObjectStore10-1000ends.htm | 37 - ...database_createObjectStore10-emptyname.htm | 38 - .../idbdatabase_createObjectStore11.htm | 25 - .../idbdatabase_createObjectStore2.htm | 33 - .../idbdatabase_createObjectStore3.htm | 24 - .../idbdatabase_createObjectStore4.htm | 27 - .../idbdatabase_createObjectStore5.htm | 33 - .../idbdatabase_createObjectStore6.htm | 30 - .../idbdatabase_createObjectStore7.htm | 25 - ...database_createObjectStore8-parameters.htm | 39 - ...e_createObjectStore9-invalidparameters.htm | 29 - .../IndexedDB/idbindex-rename-abort.any.js | 126 + .../IndexedDB/idbindex-rename-abort.html | 110 - .../IndexedDB/idbindex-rename-errors.any.js | 154 + .../IndexedDB/idbindex-rename-errors.html | 132 - .../tests/IndexedDB/idbindex-rename.any.js | 358 + .../wpt/tests/IndexedDB/idbindex-rename.html | 301 - .../transaction-abort-generator-revert.any.js | 124 + .../transaction-abort-generator-revert.html | 110 - ...saction-abort-index-metadata-revert.any.js | 338 + ...ansaction-abort-index-metadata-revert.html | 278 - ...tion-abort-multiple-metadata-revert.any.js | 325 + ...action-abort-multiple-metadata-revert.html | 293 - ...-abort-object-store-metadata-revert.any.js | 274 + ...on-abort-object-store-metadata-revert.html | 235 - .../transaction-abort-request-error.any.js | 69 + .../transaction-abort-request-error.html | 68 - ...transaction-create_in_versionchange.any.js | 78 + .../transaction-create_in_versionchange.htm | 82 - .../transaction-deactivation-timing.any.js | 159 + .../transaction-deactivation-timing.html | 143 - .../IndexedDB/transaction-requestqueue.any.js | 102 + .../IndexedDB/transaction-requestqueue.htm | 89 - .../transaction_bubble-and-capture.any.js | 73 + .../transaction_bubble-and-capture.htm | 75 - ...ter-absent-getAvailability.https.window.js | 0 ...pter-added-getAvailability.https.window.js | 0 ...owered-off-getAvailability.https.window.js | 0 ...powered-on-getAvailability.https.window.js | 0 ...-on-off-on-getAvailability.https.window.js | 0 ...er-removed-getAvailability.https.window.js | 0 ...iframe-getAvailability.sub.https.window.js | 0 .../characteristicProperties.https.window.js | 0 .../detachedIframe.https.window.js | 0 ...-characteristic-is-removed.https.window.js | 0 ...descriptor-get-same-object.https.window.js | 0 .../gen-service-is-removed.https.window.js | 0 .../detachedIframe.https.window.js | 0 ...istic-is-removed-with-uuid.https.window.js | 0 ...-characteristic-is-removed.https.window.js | 0 ...descriptor-get-same-object.https.window.js | 0 ...rvice-is-removed-with-uuid.https.window.js | 0 .../gen-service-is-removed.https.window.js | 0 .../characteristic-is-removed.https.window.js | 0 .../service-is-removed.https.window.js | 0 ...d-multiple-event-listeners.https.window.js | 0 .../characteristic-is-removed.https.window.js | 0 .../readValue/detachedIframe.https.window.js | 0 .../readValue/event-is-fired.https.window.js | 0 ...-characteristic-is-removed.https.window.js | 0 .../readValue/read-succeeds.https.window.js | 0 .../read-updates-value.https.window.js | 0 .../service-is-removed.https.window.js | 0 ...ame-from-2-characteristics.https.window.js | 0 .../service-same-object.https.window.js | 0 .../detachedIframe.https.window.js | 0 ...-characteristic-is-removed.https.window.js | 0 .../detachedIframe.https.window.js | 0 .../buffer-is-detached.https.window.js | 0 .../characteristic-is-removed.https.window.js | 0 .../writeValue/detachedIframe.https.window.js | 0 ...-characteristic-is-removed.https.window.js | 0 .../service-is-removed.https.window.js | 0 .../writeValue/write-succeeds.https.window.js | 0 .../buffer-is-detached.https.window.js | 0 .../characteristic-is-removed.https.window.js | 0 ...-characteristic-is-removed.https.window.js | 0 .../service-is-removed.https.window.js | 0 .../write-succeeds.https.window.js | 0 .../buffer-is-detached.https.window.js | 0 .../characteristic-is-removed.https.window.js | 0 ...-characteristic-is-removed.https.window.js | 0 .../service-is-removed.https.window.js | 0 .../write-succeeds.https.window.js | 0 .../readValue/detachedIframe.https.window.js | 0 .../gen-service-is-removed.https.window.js | 0 .../readValue/read-succeeds.https.window.js | 0 .../buffer-is-detached.https.window.js | 0 .../writeValue/detachedIframe.https.window.js | 0 .../gen-service-is-removed.https.window.js | 0 .../connect-after-forget.https.window.js | 0 .../forget/detachedIframe.https.window.js | 0 .../device/forget/getDevices.https.window.js | 0 .../disconnected.https.window.js | 0 .../disconnected_gc.https.window.js | 0 ...ne-event-per-disconnection.https.window.js | 0 ...-during-disconnected-event.https.window.js | 0 ...before-watchAdvertisements.https.window.js | 0 .../abort-pending-operation.https.window.js | 0 .../abort-signal-stops-events.https.window.js | 0 ...isements-call-stops-events.https.window.js | 0 ...sementreceived-event-fired.https.window.js | 0 ...r-data-filtered-from-event.https.window.js | 0 ...-watchAdvertisements-calls.https.window.js | 0 .../detachedIframe.https.window.js | 0 ...r-data-filtered-from-event.https.window.js | 0 ...t-watchAdvertisements-call.https.window.js | 0 ...rt-one-watchAdvertisements.https.window.js | 0 .../watching-two-devices.https.window.js | 0 .../tests/bluetooth/{ => legacy}/generate.py | 0 .../bluetooth/{ => legacy}/generate_test.py | 0 .../reject_opaque_origin.https.html | 0 .../reject_opaque_origin.https.html.headers | 0 .../sandboxed_iframe.https.window.js | 0 ...nted-devices-with-services.https.window.js | 0 .../no-granted-devices.https.window.js | 0 .../reject_opaque_origin.https.html | 0 .../reject_opaque_origin.https.html.headers | 0 ...me-bluetooth-device-object.https.window.js | 0 .../sandboxed_iframe.https.window.js | 0 .../idl/idl-Bluetooth.https.window.js | 0 .../idl/idl-BluetoothDevice.https.window.js | 0 .../idl/idl-BluetoothUUID.window.js | 0 .../idl-NavigatorBluetooth.https.window.js | 0 .../idl/idl-NavigatorBluetooth.window.js | 0 .../idl/idlharness.tentative.https.window.js | 0 .../device-with-empty-name.https.window.js | 0 .../device-with-name.https.window.js | 0 .../optional-services-missing.https.window.js | 0 .../optional-services-present.https.window.js | 0 ...anufacturer-data-in-filter.https.window.js | 0 ...cklisted-service-in-filter.https.window.js | 0 ...ervice-in-optionalServices.https.window.js | 0 .../data-prefix-and-mask-size.https.window.js | 0 ...aPrefix-buffer-is-detached.https.window.js | 0 ...-name-longer-than-29-bytes.https.window.js | 0 .../empty-dataPrefix.https.window.js | 0 .../empty-exclusion-filter.https.window.js | 0 ...y-exclusion-filters-member.https.window.js | 0 .../empty-filter.https.window.js | 0 .../empty-filters-member.https.window.js | 0 ...ty-manufacturerData-member.https.window.js | 0 .../empty-namePrefix.https.window.js | 0 .../empty-services-member.https.window.js | 0 ...on-filters-require-filters.https.window.js | 0 ...lters-xor-acceptAllDevices.https.window.js | 0 .../invalid-companyIdentifier.https.window.js | 0 .../mask-buffer-is-detached.https.window.js | 0 ...ngth-exceeded-name-unicode.https.window.js | 0 .../max-length-exceeded-name.https.window.js | 0 ...xceeded-namePrefix-unicode.https.window.js | 0 ...length-exceeded-namePrefix.https.window.js | 0 .../max-length-name-unicode.https.window.js | 0 .../max-length-name.https.window.js | 0 ...-length-namePrefix-unicode.https.window.js | 0 .../max-length-namePrefix.https.window.js | 0 .../no-arguments.https.window.js | 0 .../same-company-identifier.https.window.js | 0 ...ode-valid-length-name-name.https.window.js | 0 ...lid-length-name-namePrefix.https.window.js | 0 ...in-optionalServices-member.https.window.js | 0 ...service-in-services-member.https.window.js | 0 .../cross-origin-iframe.sub.https.window.js | 0 .../discovery-succeeds.https.window.js | 0 ...oesnt-consume-user-gesture.https.window.js | 0 .../filter-matches.https.window.js | 0 .../le-not-supported.https.window.js | 0 ...cturer-data-filter-matches.https.window.js | 0 ...ice-from-name-empty-filter.https.window.js | 0 ...ot-processing-user-gesture.https.window.js | 0 .../radio-not-present.https.window.js | 0 .../reject_opaque_origin.https.html | 0 .../reject_opaque_origin.https.html.headers | 0 .../request-from-iframe.https.window.js | 0 ...uest-from-sandboxed-iframe.https.window.js | 0 .../requestDevice/same-device.https.window.js | 0 .../sandboxed_iframe.https.window.js | 0 ...ngle-filter-single-service.https.window.js | 0 .../reject_opaque_origin.https.html | 0 .../reject_opaque_origin.https.html.headers | 0 .../sandboxed_iframe.https.window.js | 0 .../script-tests/base_test_js.template | 0 .../characteristic-is-removed.js | 0 .../descriptor-get-same-object.js | 0 .../characteristic/service-is-removed.js | 0 .../descriptor/service-is-removed.js | 0 .../server/disconnect-called-before.js | 0 .../server/disconnect-called-during-error.js | 0 .../disconnect-called-during-success.js | 0 .../server/disconnect-discovery-timeout.js | 0 .../server/disconnect-invalidates-objects.js | 0 .../server/disconnected-device.js | 0 ...y-complete-no-permission-absent-service.js | 0 .../discovery-complete-service-not-found.js | 0 .../garbage-collection-ran-during-error.js | 0 .../garbage-collection-ran-during-success.js | 0 ...et-different-service-after-reconnection.js | 0 .../script-tests/server/get-same-object.js | 0 .../server/invalid-service-name.js | 0 .../server/no-permission-absent-service.js | 0 .../server/no-permission-for-any-service.js | 0 .../server/no-permission-present-service.js | 0 .../script-tests/server/service-not-found.js | 0 .../service/blocklisted-characteristic.js | 0 .../service/characteristic-not-found.js | 0 .../garbage-collection-ran-during-error.js | 0 .../script-tests/service/get-same-object.js | 0 .../service/invalid-characteristic-name.js | 0 .../script-tests/service/reconnect-during.js | 0 .../service/service-is-removed.js | 0 .../connection-succeeds.https.window.js | 0 .../connect/detachedIframe.https.window.js | 0 ...lection-ran-during-success.https.window.js | 0 .../get-same-gatt-server.https.window.js | 0 .../server/device-same-object.https.window.js | 0 .../connect-disconnect-twice.https.window.js | 0 .../disconnect/detach-gc.https.window.js | 0 .../disconnect/detachedIframe.https.window.js | 0 .../disconnect-twice-in-a-row.https.window.js | 0 .../disconnect/gc-detach.https.window.js | 0 ...n-disconnect-called-before.https.window.js | 0 ...onnect-called-during-error.https.window.js | 0 ...nect-called-during-success.https.window.js | 0 ...sconnect-discovery-timeout.https.window.js | 0 ...onnect-invalidates-objects.https.window.js | 0 .../gen-disconnected-device.https.window.js | 0 ...-permission-absent-service.https.window.js | 0 ...complete-service-not-found.https.window.js | 0 ...ollection-ran-during-error.https.window.js | 0 ...lection-ran-during-success.https.window.js | 0 ...service-after-reconnection.https.window.js | 0 .../gen-get-same-object.https.window.js | 0 .../gen-invalid-service-name.https.window.js | 0 ...-permission-absent-service.https.window.js | 0 ...permission-for-any-service.https.window.js | 0 ...permission-present-service.https.window.js | 0 .../gen-service-not-found.https.window.js | 0 .../service-found.https.window.js | 0 ...o-iframes-from-same-origin.https.window.js | 0 ...klisted-services-with-uuid.https.window.js | 0 .../blocklisted-services.https.window.js | 0 .../correct-services.https.window.js | 0 ...ct-called-before-with-uuid.https.window.js | 0 ...n-disconnect-called-before.https.window.js | 0 ...led-during-error-with-uuid.https.window.js | 0 ...onnect-called-during-error.https.window.js | 0 ...d-during-success-with-uuid.https.window.js | 0 ...nect-called-during-success.https.window.js | 0 ...iscovery-timeout-with-uuid.https.window.js | 0 ...sconnect-discovery-timeout.https.window.js | 0 ...alidates-objects-with-uuid.https.window.js | 0 ...onnect-invalidates-objects.https.window.js | 0 ...connected-device-with-uuid.https.window.js | 0 .../gen-disconnected-device.https.window.js | 0 ...n-absent-service-with-uuid.https.window.js | 0 ...ervice-not-found-with-uuid.https.window.js | 0 ...ran-during-error-with-uuid.https.window.js | 0 ...ollection-ran-during-error.https.window.js | 0 ...n-during-success-with-uuid.https.window.js | 0 ...lection-ran-during-success.https.window.js | 0 ...ter-reconnection-with-uuid.https.window.js | 0 ...service-after-reconnection.https.window.js | 0 ...-get-same-object-with-uuid.https.window.js | 0 .../gen-get-same-object.https.window.js | 0 .../gen-invalid-service-name.https.window.js | 0 ...n-absent-service-with-uuid.https.window.js | 0 ...-for-any-service-with-uuid.https.window.js | 0 ...permission-for-any-service.https.window.js | 0 ...-present-service-with-uuid.https.window.js | 0 ...ervice-not-found-with-uuid.https.window.js | 0 .../services-found-with-uuid.https.window.js | 0 .../services-found.https.window.js | 0 .../services-not-found.https.window.js | 0 .../service/detachedIframe.https.window.js | 0 ...evice-same-from-2-services.https.window.js | 0 .../device-same-object.https.window.js | 0 .../characteristic-found.https.window.js | 0 .../detachedIframe.https.window.js | 0 ...blocklisted-characteristic.https.window.js | 0 ...n-characteristic-not-found.https.window.js | 0 ...ollection-ran-during-error.https.window.js | 0 .../gen-get-same-object.https.window.js | 0 ...nvalid-characteristic-name.https.window.js | 0 .../gen-reconnect-during.https.window.js | 0 .../gen-service-is-removed.https.window.js | 0 ...locklisted-characteristics.https.window.js | 0 ...cteristics-found-with-uuid.https.window.js | 0 .../characteristics-found.https.window.js | 0 .../characteristics-not-found.https.window.js | 0 ...d-characteristic-with-uuid.https.window.js | 0 ...ristic-not-found-with-uuid.https.window.js | 0 ...ran-during-error-with-uuid.https.window.js | 0 ...ollection-ran-during-error.https.window.js | 0 ...-get-same-object-with-uuid.https.window.js | 0 .../gen-get-same-object.https.window.js | 0 ...nvalid-characteristic-name.https.window.js | 0 ...reconnect-during-with-uuid.https.window.js | 0 .../gen-reconnect-during.https.window.js | 0 ...rvice-is-removed-with-uuid.https.window.js | 0 .../gen-service-is-removed.https.window.js | 0 .../clear-site-data/clear-cache.https.html | 110 + .../support/clear-site-data-cache.py | 69 + .../cookieListItem_attributes.https.any.js | 12 + .../cookieStore_delete_arguments.https.any.js | 2 +- ...Store_getAll_set_creation_url.https.any.js | 33 + ...kieStore_get_set_creation_url.https.any.js | 32 + .../cookieStore_set_arguments.https.any.js | 29 +- .../at-container-parsing.html | 2 + .../at-container-serialization.html | 60 +- .../support/cq-testcommon.js | 9 + .../content-visibility-auto-svg-text.html | 2 +- .../font-face-local-not-family-ref.html | 19 + .../css-fonts/font-face-local-not-family.html | 25 + .../clip-path/clip-path-shape-winding.html | 25 + .../reference/clip-path-path-winding-ref.html | 29 + .../parsing/clip-path-shape-parsing.html | 5 + .../parsing/masonry-slack-computed.html | 2 +- .../parsing/masonry-slack-invalid.html | 2 +- .../parsing/masonry-slack-valid.html | 2 +- .../masonry-template-tracks-invalid.html | 2 +- .../masonry-template-tracks-valid.html | 2 +- .../parsing/masonry-track-computed.html | 4 +- .../parsing/masonry-track-invalid.html | 4 +- .../parsing/masonry-track-valid.html | 4 +- .../line-clamp/block-ellipsis-001.html | 22 + .../line-clamp/block-ellipsis-002.html | 21 + .../block-ellipsis-003.tentative.html | 27 + .../line-clamp/block-ellipsis-004.html | 28 + .../line-clamp/block-ellipsis-005.html | 26 + .../line-clamp/block-ellipsis-006.html | 27 + .../block-ellipsis-007.tentative.html | 23 + .../block-ellipsis-008.tentative.html | 25 + .../block-ellipsis-009.tentative.html | 27 + .../reference/block-ellipsis-001-ref.html | 15 + .../reference/block-ellipsis-002-ref.html | 15 + .../reference/block-ellipsis-003-ref.html | 21 + .../reference/block-ellipsis-004-ref.html | 21 + .../reference/block-ellipsis-005-ref.html | 20 + .../reference/block-ellipsis-007-ref.html | 17 + .../reference/block-ellipsis-009-ref.html | 21 + .../reference/webkit-line-clamp-051-ref.html | 13 + .../reference/webkit-line-clamp-052-ref.html | 13 + .../reference/webkit-line-clamp-053-ref.html | 14 + .../line-clamp/webkit-line-clamp-051.html | 23 + .../line-clamp/webkit-line-clamp-052.html | 23 + .../line-clamp/webkit-line-clamp-053.html | 23 + ...crollable-overflow-empty-newline-span.html | 18 + ...aint2d-imageSmoothingQuality.high-ref.html | 14 + ...nt2d-imageSmoothingQuality.high.https.html | 33 + ...paint2d-imageSmoothingQuality.low-ref.html | 14 + ...int2d-imageSmoothingQuality.low.https.html | 33 + ...paint2d-imageSmoothingQuality.med-ref.html | 14 + ...int2d-imageSmoothingQuality.med.https.html | 33 + .../sticky/position-sticky-rtl-ref.html | 32 + .../sticky/position-sticky-rtl.html | 35 + ...l-initial-target-shadow-dom.tentative.html | 136 + .../shape-function-computed.tentative.html | 4 +- .../shape-function-valid.tentative.html | 16 +- ...ext-wrap-balance-before-after-001-ref.html | 25 + ...ext-wrap-balance-before-after-002-ref.html | 38 + .../text-wrap-balance-before-after-001.html | 34 + .../text-wrap-balance-before-after-002.html | 37 + .../after-change-style-inherited.html | 110 + .../tests/css/css-values/attr-all-types.html | 16 +- .../css/css-values/attr-cycle.tentative.html | 121 + .../css-values/random-computed.tentative.html | 303 + .../css-values/random-invalid.tentative.html | 29 + .../random-serialize.tentative.html | 44 + .../css/css-values/rlh-on-root-lengths.html | 16 + .../auto-name-get-animations.html | 68 + ...-in-hidden-doc-should-skip-transition.html | 47 +- .../resources/navigate-after-hide.html | 18 + .../details-open-pseudo-001-ref.html | 17 + .../selectors-4/details-open-pseudo-001.html | 22 + .../selectors-4/details-open-pseudo-002.html | 32 + .../details-open-pseudo-003-ref.html | 15 + .../selectors-4/details-open-pseudo-003.html | 32 + .../moveBefore/tentative/Node-moveBefore.html | 33 +- ...entElement-in-designMode-when-no-body.html | 16 + .../other/copy-paste-before-non-editable.html | 54 + ...tion-change-on-deleting-empty-element.html | 27 +- ...e-container-remove-non-first-children.html | 59 + .../automatic-beacon-component-ad.https.html | 28 +- tests/wpt/tests/fetch/api/basic/gc.any.js | 19 + .../tentative/additional-bids.https.window.js | 363 +- .../tentative/resources/additional-bids.py | 103 +- .../tentative/resources/ba-fledge-util.sub.js | 62 +- .../fledge/tentative/resources/ed25519.py | 289 - .../tentative/resources/fledge-util.sub.js | 208 +- ...esponse-for-debugging-only.https.window.js | 192 + ...sponse-private-aggregation.https.window.js | 239 + .../tentative/server-response.https.window.js | 218 +- .../third_party/noble-ed25519/LICENSE | 21 + .../third_party/noble-ed25519/README | 7 + .../noble-ed25519/noble-ed25519.js | 427 + .../FileSystemDirectoryHandle-removeEntry.js | 10 + ...-attribute-redirect-on-load.https.sub.html | 12 +- ...permission-policy-attribute.https.sub.html | 63 +- ...as.host.size.attributes.parse.decimal.html | 1 + ....canvas.host.size.attributes.parse.em.html | 1 + ...nvas.host.size.attributes.parse.empty.html | 1 + ...canvas.host.size.attributes.parse.exp.html | 1 + ...canvas.host.size.attributes.parse.hex.html | 1 + ...anvas.host.size.attributes.parse.junk.html | 1 + ...nvas.host.size.attributes.parse.minus.html | 1 + ...nvas.host.size.attributes.parse.octal.html | 1 + ....host.size.attributes.parse.onlyspace.html | 1 + ...as.host.size.attributes.parse.percent.html | 1 + ...anvas.host.size.attributes.parse.plus.html | 1 + ...nvas.host.size.attributes.parse.space.html | 1 + ...st.size.attributes.parse.trailingjunk.html | 1 + ...host.size.attributes.parse.whitespace.html | 1 + ...anvas.host.size.attributes.parse.zero.html | 1 + ....size.attributes.setAttribute.decimal.html | 1 + ....host.size.attributes.setAttribute.em.html | 1 + ...st.size.attributes.setAttribute.empty.html | 1 + ...host.size.attributes.setAttribute.exp.html | 1 + ...host.size.attributes.setAttribute.hex.html | 1 + ...ost.size.attributes.setAttribute.junk.html | 1 + ...st.size.attributes.setAttribute.minus.html | 1 + ...st.size.attributes.setAttribute.octal.html | 1 + ...ize.attributes.setAttribute.onlyspace.html | 1 + ....size.attributes.setAttribute.percent.html | 1 + ...ost.size.attributes.setAttribute.plus.html | 1 + ...st.size.attributes.setAttribute.space.html | 1 + ....attributes.setAttribute.trailingjunk.html | 1 + ...ze.attributes.setAttribute.whitespace.html | 1 + ...ost.size.attributes.setAttribute.zero.html | 1 + .../2d.composite.canvas.clear.html | 1 + .../compositing/2d.composite.canvas.copy.html | 1 + .../2d.composite.canvas.destination-atop.html | 1 + .../2d.composite.canvas.destination-in.html | 1 + .../2d.composite.canvas.destination-out.html | 1 + .../2d.composite.canvas.destination-over.html | 1 + .../2d.composite.canvas.lighter.html | 1 + .../2d.composite.canvas.source-atop.html | 1 + .../2d.composite.canvas.source-in.html | 1 + .../2d.composite.canvas.source-out.html | 1 + .../2d.composite.canvas.source-over.html | 1 + .../compositing/2d.composite.canvas.xor.html | 1 + .../compositing/2d.composite.clip.clear.html | 1 + .../compositing/2d.composite.clip.copy.html | 1 + .../2d.composite.clip.destination-atop.html | 1 + .../2d.composite.clip.destination-in.html | 1 + .../2d.composite.clip.destination-out.html | 1 + .../2d.composite.clip.destination-over.html | 1 + .../2d.composite.clip.lighter.html | 1 + .../2d.composite.clip.source-atop.html | 1 + .../2d.composite.clip.source-in.html | 1 + .../2d.composite.clip.source-out.html | 1 + .../2d.composite.clip.source-over.html | 1 + .../compositing/2d.composite.clip.xor.html | 1 + .../compositing/2d.composite.image.clear.html | 1 + .../compositing/2d.composite.image.copy.html | 1 + .../2d.composite.image.destination-atop.html | 1 + .../2d.composite.image.destination-in.html | 1 + .../2d.composite.image.destination-out.html | 1 + .../2d.composite.image.destination-over.html | 1 + .../2d.composite.image.lighter.html | 1 + .../2d.composite.image.source-atop.html | 1 + .../2d.composite.image.source-in.html | 1 + .../2d.composite.image.source-out.html | 1 + .../2d.composite.image.source-over.html | 1 + .../compositing/2d.composite.image.xor.html | 1 + .../compositing/2d.composite.solid.clear.html | 1 + .../compositing/2d.composite.solid.copy.html | 1 + .../2d.composite.solid.destination-atop.html | 1 + .../2d.composite.solid.destination-in.html | 1 + .../2d.composite.solid.destination-out.html | 1 + .../2d.composite.solid.destination-over.html | 1 + .../2d.composite.solid.lighter.html | 1 + .../2d.composite.solid.source-atop.html | 1 + .../2d.composite.solid.source-in.html | 1 + .../2d.composite.solid.source-out.html | 1 + .../2d.composite.solid.source-over.html | 1 + .../compositing/2d.composite.solid.xor.html | 1 + .../2d.composite.transparent.clear.html | 1 + .../2d.composite.transparent.copy.html | 1 + ...omposite.transparent.destination-atop.html | 1 + ....composite.transparent.destination-in.html | 1 + ...composite.transparent.destination-out.html | 1 + ...omposite.transparent.destination-over.html | 1 + .../2d.composite.transparent.lighter.html | 1 + .../2d.composite.transparent.source-atop.html | 1 + .../2d.composite.transparent.source-in.html | 1 + .../2d.composite.transparent.source-out.html | 1 + .../2d.composite.transparent.source-over.html | 1 + .../2d.composite.transparent.xor.html | 1 + .../2d.composite.uncovered.fill.copy.html | 1 + ...osite.uncovered.fill.destination-atop.html | 1 + ...mposite.uncovered.fill.destination-in.html | 1 + ...2d.composite.uncovered.fill.source-in.html | 1 + ...d.composite.uncovered.fill.source-out.html | 1 + .../2d.composite.uncovered.image.copy.html | 1 + ...site.uncovered.image.destination-atop.html | 1 + ...posite.uncovered.image.destination-in.html | 1 + ...d.composite.uncovered.image.source-in.html | 1 + ....composite.uncovered.image.source-out.html | 1 + ...2d.composite.uncovered.nocontext.copy.html | 1 + ....uncovered.nocontext.destination-atop.html | 1 + ...te.uncovered.nocontext.destination-in.html | 1 + ...mposite.uncovered.nocontext.source-in.html | 1 + ...posite.uncovered.nocontext.source-out.html | 1 + .../2d.composite.uncovered.pattern.copy.html | 1 + ...te.uncovered.pattern.destination-atop.html | 1 + ...site.uncovered.pattern.destination-in.html | 1 + ...composite.uncovered.pattern.source-in.html | 1 + ...omposite.uncovered.pattern.source-out.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-1.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-2.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-3.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-4.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-5.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-6.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-7.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-8.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-9.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-1.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-2.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-3.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-4.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-5.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-6.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-7.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-8.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-9.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-1.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-2.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-3.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-4.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-5.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-6.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-1.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-2.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-3.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-4.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-5.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-6.html | 1 + .../2d.fillStyle.parse.hex3.html | 1 + .../2d.fillStyle.parse.hex4.html | 1 + .../2d.fillStyle.parse.hex6.html | 1 + .../2d.fillStyle.parse.hex8.html | 1 + .../2d.fillStyle.parse.hsl-1.html | 1 + .../2d.fillStyle.parse.hsl-2.html | 1 + .../2d.fillStyle.parse.hsl-3.html | 1 + .../2d.fillStyle.parse.hsl-4.html | 1 + .../2d.fillStyle.parse.hsl-5.html | 1 + .../2d.fillStyle.parse.hsl-6.html | 1 + ...e.parse.hsl-clamp-negative-saturation.html | 1 + .../2d.fillStyle.parse.hsla-1.html | 1 + .../2d.fillStyle.parse.hsla-2.html | 1 + ...2d.fillStyle.parse.hsla-clamp-alpha-1.html | 1 + ...2d.fillStyle.parse.hsla-clamp-alpha-2.html | 1 + ....parse.hsla-clamp-negative-saturation.html | 1 + .../2d.fillStyle.parse.html4.html | 1 + ...Style.parse.invalid.css-color-4-hsl-1.html | 1 + ...Style.parse.invalid.css-color-4-hsl-2.html | 1 + ...Style.parse.invalid.css-color-4-hsl-3.html | 1 + ...Style.parse.invalid.css-color-4-hsl-4.html | 1 + ...Style.parse.invalid.css-color-4-hsl-5.html | 1 + ...tyle.parse.invalid.css-color-4-hsla-1.html | 1 + ...tyle.parse.invalid.css-color-4-hsla-2.html | 1 + ...tyle.parse.invalid.css-color-4-hsla-3.html | 1 + ...Style.parse.invalid.css-color-4-rgb-1.html | 1 + ...Style.parse.invalid.css-color-4-rgb-2.html | 1 + ...Style.parse.invalid.css-color-4-rgb-3.html | 1 + ...Style.parse.invalid.css-color-4-rgb-4.html | 1 + ...Style.parse.invalid.css-color-4-rgb-5.html | 1 + ...tyle.parse.invalid.css-color-4-rgba-1.html | 1 + ...tyle.parse.invalid.css-color-4-rgba-2.html | 1 + ...tyle.parse.invalid.css-color-4-rgba-3.html | 1 + .../2d.fillStyle.parse.invalid.hex1.html | 1 + .../2d.fillStyle.parse.invalid.hex2.html | 1 + .../2d.fillStyle.parse.invalid.hex3.html | 1 + .../2d.fillStyle.parse.invalid.hex4.html | 1 + .../2d.fillStyle.parse.invalid.hex5.html | 1 + .../2d.fillStyle.parse.invalid.hex6.html | 1 + .../2d.fillStyle.parse.invalid.hex7.html | 1 + .../2d.fillStyle.parse.invalid.hex8.html | 1 + .../2d.fillStyle.parse.invalid.hsl-1.html | 1 + .../2d.fillStyle.parse.invalid.hsl-2.html | 1 + .../2d.fillStyle.parse.invalid.hsl-3.html | 1 + .../2d.fillStyle.parse.invalid.hsl-4.html | 1 + .../2d.fillStyle.parse.invalid.hsl-5.html | 1 + .../2d.fillStyle.parse.invalid.hsl-6.html | 1 + .../2d.fillStyle.parse.invalid.hsla-1.html | 1 + .../2d.fillStyle.parse.invalid.hsla-2.html | 1 + .../2d.fillStyle.parse.invalid.hsla-3.html | 1 + .../2d.fillStyle.parse.invalid.name-1.html | 1 + .../2d.fillStyle.parse.invalid.name-2.html | 1 + .../2d.fillStyle.parse.invalid.name-3.html | 1 + .../2d.fillStyle.parse.invalid.name-4.html | 1 + .../2d.fillStyle.parse.invalid.name-5.html | 1 + .../2d.fillStyle.parse.invalid.rgb-1.html | 1 + .../2d.fillStyle.parse.invalid.rgb-2.html | 1 + .../2d.fillStyle.parse.invalid.rgb-3.html | 1 + .../2d.fillStyle.parse.invalid.rgba-1.html | 1 + .../2d.fillStyle.parse.invalid.rgba-2.html | 1 + .../2d.fillStyle.parse.invalid.rgba-3.html | 1 + .../2d.fillStyle.parse.invalid.rgba-4.html | 1 + .../2d.fillStyle.parse.invalid.rgba-5.html | 1 + .../2d.fillStyle.parse.rgb-clamp-1.html | 1 + .../2d.fillStyle.parse.rgb-clamp-2.html | 1 + .../2d.fillStyle.parse.rgb-clamp-3.html | 1 + .../2d.fillStyle.parse.rgb-clamp-4.html | 1 + .../2d.fillStyle.parse.rgb-clamp-5.html | 1 + .../2d.fillStyle.parse.rgb-eof.html | 1 + .../2d.fillStyle.parse.rgb-num.html | 1 + .../2d.fillStyle.parse.rgb-percent.html | 1 + .../2d.fillStyle.parse.rgba-clamp-1.html | 1 + .../2d.fillStyle.parse.rgba-clamp-2.html | 1 + .../2d.fillStyle.parse.rgba-eof.html | 1 + .../2d.fillStyle.parse.rgba-num-1.html | 1 + .../2d.fillStyle.parse.rgba-num-2.html | 1 + .../2d.fillStyle.parse.rgba-percent.html | 1 + .../2d.fillStyle.parse.rgba-solid-1.html | 1 + .../2d.fillStyle.parse.rgba-solid-2.html | 1 + .../2d.fillStyle.parse.rgba-solid-3.html | 1 + .../2d.fillStyle.parse.rgba-solid-4.html | 1 + .../2d.fillStyle.parse.svg-1.html | 1 + .../2d.fillStyle.parse.svg-2.html | 1 + .../2d.fillStyle.parse.system.html | 1 + .../2d.fillStyle.parse.transparent-1.html | 1 + .../2d.fillStyle.parse.transparent-2.html | 1 + ...as.host.size.attributes.parse.decimal.html | 1 + ....canvas.host.size.attributes.parse.em.html | 1 + ...nvas.host.size.attributes.parse.empty.html | 1 + ...canvas.host.size.attributes.parse.exp.html | 1 + ...canvas.host.size.attributes.parse.hex.html | 1 + ...anvas.host.size.attributes.parse.junk.html | 1 + ...nvas.host.size.attributes.parse.minus.html | 1 + ...nvas.host.size.attributes.parse.octal.html | 1 + ....host.size.attributes.parse.onlyspace.html | 1 + ...as.host.size.attributes.parse.percent.html | 1 + ...anvas.host.size.attributes.parse.plus.html | 1 + ...nvas.host.size.attributes.parse.space.html | 1 + ...st.size.attributes.parse.trailingjunk.html | 1 + ...host.size.attributes.parse.whitespace.html | 1 + ...anvas.host.size.attributes.parse.zero.html | 1 + .../2d.composite.canvas.clear.html | 1 + .../compositing/2d.composite.canvas.copy.html | 1 + .../2d.composite.canvas.destination-atop.html | 1 + .../2d.composite.canvas.destination-in.html | 1 + .../2d.composite.canvas.destination-out.html | 1 + .../2d.composite.canvas.destination-over.html | 1 + .../2d.composite.canvas.lighter.html | 1 + .../2d.composite.canvas.source-atop.html | 1 + .../2d.composite.canvas.source-in.html | 1 + .../2d.composite.canvas.source-out.html | 1 + .../2d.composite.canvas.source-over.html | 1 + .../compositing/2d.composite.canvas.xor.html | 1 + .../compositing/2d.composite.clip.clear.html | 1 + .../compositing/2d.composite.clip.copy.html | 1 + .../2d.composite.clip.destination-atop.html | 1 + .../2d.composite.clip.destination-in.html | 1 + .../2d.composite.clip.destination-out.html | 1 + .../2d.composite.clip.destination-over.html | 1 + .../2d.composite.clip.lighter.html | 1 + .../2d.composite.clip.source-atop.html | 1 + .../2d.composite.clip.source-in.html | 1 + .../2d.composite.clip.source-out.html | 1 + .../2d.composite.clip.source-over.html | 1 + .../compositing/2d.composite.clip.xor.html | 1 + .../compositing/2d.composite.image.clear.html | 1 + .../compositing/2d.composite.image.copy.html | 1 + .../2d.composite.image.destination-atop.html | 1 + .../2d.composite.image.destination-in.html | 1 + .../2d.composite.image.destination-out.html | 1 + .../2d.composite.image.destination-over.html | 1 + .../2d.composite.image.lighter.html | 1 + .../2d.composite.image.source-atop.html | 1 + .../2d.composite.image.source-in.html | 1 + .../2d.composite.image.source-out.html | 1 + .../2d.composite.image.source-over.html | 1 + .../compositing/2d.composite.image.xor.html | 1 + .../compositing/2d.composite.solid.clear.html | 1 + .../compositing/2d.composite.solid.copy.html | 1 + .../2d.composite.solid.destination-atop.html | 1 + .../2d.composite.solid.destination-in.html | 1 + .../2d.composite.solid.destination-out.html | 1 + .../2d.composite.solid.destination-over.html | 1 + .../2d.composite.solid.lighter.html | 1 + .../2d.composite.solid.source-atop.html | 1 + .../2d.composite.solid.source-in.html | 1 + .../2d.composite.solid.source-out.html | 1 + .../2d.composite.solid.source-over.html | 1 + .../compositing/2d.composite.solid.xor.html | 1 + .../2d.composite.transparent.clear.html | 1 + .../2d.composite.transparent.copy.html | 1 + ...omposite.transparent.destination-atop.html | 1 + ....composite.transparent.destination-in.html | 1 + ...composite.transparent.destination-out.html | 1 + ...omposite.transparent.destination-over.html | 1 + .../2d.composite.transparent.lighter.html | 1 + .../2d.composite.transparent.source-atop.html | 1 + .../2d.composite.transparent.source-in.html | 1 + .../2d.composite.transparent.source-out.html | 1 + .../2d.composite.transparent.source-over.html | 1 + .../2d.composite.transparent.xor.html | 1 + .../2d.composite.uncovered.fill.copy.html | 1 + ...osite.uncovered.fill.destination-atop.html | 1 + ...mposite.uncovered.fill.destination-in.html | 1 + ...2d.composite.uncovered.fill.source-in.html | 1 + ...d.composite.uncovered.fill.source-out.html | 1 + .../2d.composite.uncovered.image.copy.html | 1 + ...site.uncovered.image.destination-atop.html | 1 + ...posite.uncovered.image.destination-in.html | 1 + ...d.composite.uncovered.image.source-in.html | 1 + ....composite.uncovered.image.source-out.html | 1 + ...2d.composite.uncovered.nocontext.copy.html | 1 + ....uncovered.nocontext.destination-atop.html | 1 + ...te.uncovered.nocontext.destination-in.html | 1 + ...mposite.uncovered.nocontext.source-in.html | 1 + ...posite.uncovered.nocontext.source-out.html | 1 + .../2d.composite.uncovered.pattern.copy.html | 1 + ...te.uncovered.pattern.destination-atop.html | 1 + ...site.uncovered.pattern.destination-in.html | 1 + ...composite.uncovered.pattern.source-in.html | 1 + ...omposite.uncovered.pattern.source-out.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-1.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-2.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-3.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-4.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-5.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-6.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-7.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-8.html | 1 + .../2d.fillStyle.parse.css-color-4-hsl-9.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-1.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-2.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-3.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-4.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-5.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-6.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-7.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-8.html | 1 + ...2d.fillStyle.parse.css-color-4-hsla-9.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-1.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-2.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-3.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-4.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-5.html | 1 + .../2d.fillStyle.parse.css-color-4-rgb-6.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-1.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-2.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-3.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-4.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-5.html | 1 + ...2d.fillStyle.parse.css-color-4-rgba-6.html | 1 + .../2d.fillStyle.parse.hex3.html | 1 + .../2d.fillStyle.parse.hex4.html | 1 + .../2d.fillStyle.parse.hex6.html | 1 + .../2d.fillStyle.parse.hex8.html | 1 + .../2d.fillStyle.parse.hsl-1.html | 1 + .../2d.fillStyle.parse.hsl-2.html | 1 + .../2d.fillStyle.parse.hsl-3.html | 1 + .../2d.fillStyle.parse.hsl-4.html | 1 + .../2d.fillStyle.parse.hsl-5.html | 1 + .../2d.fillStyle.parse.hsl-6.html | 1 + ...e.parse.hsl-clamp-negative-saturation.html | 1 + .../2d.fillStyle.parse.hsla-1.html | 1 + .../2d.fillStyle.parse.hsla-2.html | 1 + ...2d.fillStyle.parse.hsla-clamp-alpha-1.html | 1 + ...2d.fillStyle.parse.hsla-clamp-alpha-2.html | 1 + ....parse.hsla-clamp-negative-saturation.html | 1 + .../2d.fillStyle.parse.html4.html | 1 + ...Style.parse.invalid.css-color-4-hsl-1.html | 1 + ...Style.parse.invalid.css-color-4-hsl-2.html | 1 + ...Style.parse.invalid.css-color-4-hsl-3.html | 1 + ...Style.parse.invalid.css-color-4-hsl-4.html | 1 + ...Style.parse.invalid.css-color-4-hsl-5.html | 1 + ...tyle.parse.invalid.css-color-4-hsla-1.html | 1 + ...tyle.parse.invalid.css-color-4-hsla-2.html | 1 + ...tyle.parse.invalid.css-color-4-hsla-3.html | 1 + ...Style.parse.invalid.css-color-4-rgb-1.html | 1 + ...Style.parse.invalid.css-color-4-rgb-2.html | 1 + ...Style.parse.invalid.css-color-4-rgb-3.html | 1 + ...Style.parse.invalid.css-color-4-rgb-4.html | 1 + ...Style.parse.invalid.css-color-4-rgb-5.html | 1 + ...tyle.parse.invalid.css-color-4-rgba-1.html | 1 + ...tyle.parse.invalid.css-color-4-rgba-2.html | 1 + ...tyle.parse.invalid.css-color-4-rgba-3.html | 1 + .../2d.fillStyle.parse.invalid.hex1.html | 1 + .../2d.fillStyle.parse.invalid.hex2.html | 1 + .../2d.fillStyle.parse.invalid.hex3.html | 1 + .../2d.fillStyle.parse.invalid.hex4.html | 1 + .../2d.fillStyle.parse.invalid.hex5.html | 1 + .../2d.fillStyle.parse.invalid.hex6.html | 1 + .../2d.fillStyle.parse.invalid.hex7.html | 1 + .../2d.fillStyle.parse.invalid.hex8.html | 1 + .../2d.fillStyle.parse.invalid.hsl-1.html | 1 + .../2d.fillStyle.parse.invalid.hsl-2.html | 1 + .../2d.fillStyle.parse.invalid.hsl-3.html | 1 + .../2d.fillStyle.parse.invalid.hsl-4.html | 1 + .../2d.fillStyle.parse.invalid.hsl-5.html | 1 + .../2d.fillStyle.parse.invalid.hsl-6.html | 1 + .../2d.fillStyle.parse.invalid.hsla-1.html | 1 + .../2d.fillStyle.parse.invalid.hsla-2.html | 1 + .../2d.fillStyle.parse.invalid.hsla-3.html | 1 + .../2d.fillStyle.parse.invalid.name-1.html | 1 + .../2d.fillStyle.parse.invalid.name-2.html | 1 + .../2d.fillStyle.parse.invalid.name-3.html | 1 + .../2d.fillStyle.parse.invalid.name-4.html | 1 + .../2d.fillStyle.parse.invalid.name-5.html | 1 + .../2d.fillStyle.parse.invalid.rgb-1.html | 1 + .../2d.fillStyle.parse.invalid.rgb-2.html | 1 + .../2d.fillStyle.parse.invalid.rgb-3.html | 1 + .../2d.fillStyle.parse.invalid.rgba-1.html | 1 + .../2d.fillStyle.parse.invalid.rgba-2.html | 1 + .../2d.fillStyle.parse.invalid.rgba-3.html | 1 + .../2d.fillStyle.parse.invalid.rgba-4.html | 1 + .../2d.fillStyle.parse.invalid.rgba-5.html | 1 + .../2d.fillStyle.parse.rgb-clamp-1.html | 1 + .../2d.fillStyle.parse.rgb-clamp-2.html | 1 + .../2d.fillStyle.parse.rgb-clamp-3.html | 1 + .../2d.fillStyle.parse.rgb-clamp-4.html | 1 + .../2d.fillStyle.parse.rgb-clamp-5.html | 1 + .../2d.fillStyle.parse.rgb-eof.html | 1 + .../2d.fillStyle.parse.rgb-num.html | 1 + .../2d.fillStyle.parse.rgb-percent.html | 1 + .../2d.fillStyle.parse.rgba-clamp-1.html | 1 + .../2d.fillStyle.parse.rgba-clamp-2.html | 1 + .../2d.fillStyle.parse.rgba-eof.html | 1 + .../2d.fillStyle.parse.rgba-num-1.html | 1 + .../2d.fillStyle.parse.rgba-num-2.html | 1 + .../2d.fillStyle.parse.rgba-percent.html | 1 + .../2d.fillStyle.parse.rgba-solid-1.html | 1 + .../2d.fillStyle.parse.rgba-solid-2.html | 1 + .../2d.fillStyle.parse.rgba-solid-3.html | 1 + .../2d.fillStyle.parse.rgba-solid-4.html | 1 + .../2d.fillStyle.parse.svg-1.html | 1 + .../2d.fillStyle.parse.svg-2.html | 1 + .../2d.fillStyle.parse.system.html | 1 + .../2d.fillStyle.parse.transparent-1.html | 1 + .../2d.fillStyle.parse.transparent-2.html | 1 + .../2d.gradient.interpolate.alpha.png | Bin 219 -> 0 bytes .../2d.gradient.interpolate.color.png | Bin 219 -> 0 bytes .../2d.gradient.interpolate.coloralpha.png | Bin 396 -> 0 bytes .../2d.gradient.interpolate.multiple.png | Bin 256 -> 0 bytes .../2d.gradient.interpolate.overlap.png | Bin 248 -> 0 bytes .../2d.gradient.interpolate.vertical.png | Bin 229 -> 0 bytes .../path-objects/2d.path.fill.overlap.png | Bin 205 -> 0 bytes .../path-objects/2d.path.stroke.overlap.png | Bin 205 -> 0 bytes .../2d.imageData.put.alpha.png | Bin 221 -> 0 bytes .../offscreen/shadows/2d.shadow.alpha.2.png | Bin 206 -> 0 bytes .../offscreen/shadows/2d.shadow.alpha.3.png | Bin 206 -> 0 bytes .../offscreen/shadows/2d.shadow.alpha.4.png | Bin 206 -> 0 bytes .../offscreen/shadows/2d.shadow.alpha.5.png | Bin 206 -> 0 bytes .../offscreen/shadows/2d.shadow.blur.high.png | Bin 246 -> 0 bytes .../offscreen/shadows/2d.shadow.blur.low.png | Bin 1586 -> 0 bytes .../shadows/2d.shadow.canvas.alpha.png | Bin 206 -> 0 bytes .../shadows/2d.shadow.gradient.alpha.png | Bin 206 -> 0 bytes .../shadows/2d.shadow.image.alpha.png | Bin 206 -> 0 bytes .../shadows/2d.shadow.pattern.alpha.png | Bin 206 -> 0 bytes .../text/2d.text.draw.fill.basic.png | Bin 1137 -> 0 bytes .../text/2d.text.draw.fill.maxWidth.large.png | Bin 1137 -> 0 bytes .../offscreen/text/2d.text.draw.fill.rtl.png | Bin 1137 -> 0 bytes .../text/2d.text.draw.stroke.basic.png | Bin 1634 -> 0 bytes .../html/canvas/tools/gentestutilsunion.py | 86 +- .../tests/html/canvas/tools/templates.yaml | 2 + .../html/canvas/tools/yaml-new/filters.yaml | 76 +- .../canvas/tools/yaml-new/the-canvas.yaml | 136 + .../html/canvas/tools/yaml/element/meta.yaml | 62 - .../canvas/tools/yaml/offscreen/meta.yaml | 47 - ...ting-subresource-corp.tentative.https.html | 162 + ...resource-corp.tentative.https.html.headers | 1 + ...ing-empty-frame-multiple-headers.html.asis | 10 + .../resources/reporting-empty-frame.html | 5 + .../element-render-blocking-039.html | 23 + ...etails-summary-display-inline-001-ref.html | 114 + .../details-summary-display-inline-001.html | 125 + ...etails-summary-display-inline-002-ref.html | 114 + .../details-summary-display-inline-002.html | 119 + .../widgets/input-date-whitespace-pre-1.html | 10 + .../widgets/input-date-whitespace-pre-2.html | 9 + .../input-date-whitespace-pre-ref.html | 7 + .../radio-disconnected-group-owner.html | 44 + ...e-optgroup-legend-and-label.tentative.html | 6 +- .../select-click-drag-option.tentative.html | 122 + .../select-innertext.tentative.html | 61 + ...by.tentative.html => dialog-closedby.html} | 0 ...l => dialog-popover-closedby-complex.html} | 0 ...ml => dialog-popover-closedby-simple.html} | 0 ...entative.html => dialog-requestclose.html} | 0 ...l => button-type-reset-popovertarget.html} | 0 .../popovers/popover-attribute-basic.html | 18 +- ...tentative.html => popover-hint-crash.html} | 0 ...l => popover-invoking-attribute-hint.html} | 0 ...e.html => popover-light-dismiss-hint.html} | 0 ...l => popover-top-layer-nesting-hints.html} | 0 ...ive.html => popover-types-with-hints.html} | 0 .../resources/popover-top-layer-nesting.js | 4 +- .../popovers/resources/popover-utils.js | 7 - .../interestelement-interface.tentative.html | 78 - ...terestevent-dispatch-shadow.tentative.html | 84 +- .../interestevent-interface.tentative.html | 132 +- ...arget-anchor-event-dispatch.tentative.html | 19 +- ...ttarget-area-event-dispatch.tentative.html | 19 +- ...arget-button-event-dispatch.tentative.html | 77 +- ...ttarget-on-popover-behavior.tentative.html | 80 +- ...target-svg-a-event-dispatch.tentative.html | 23 +- tests/wpt/tests/interfaces/css-fonts-5.idl | 54 + tests/wpt/tests/interfaces/css-fonts.idl | 38 - tests/wpt/tests/interfaces/css-mixins.idl | 10 + .../tests/interfaces/digital-credentials.idl | 2 +- tests/wpt/tests/interfaces/fedcm.idl | 1 + tests/wpt/tests/interfaces/html.idl | 2 + .../mediacapture-surface-control.idl | 2 +- .../tests/interfaces/permissions-policy.idl | 1 + tests/wpt/tests/interfaces/shared-storage.idl | 44 +- tests/wpt/tests/interfaces/webnn.idl | 12 +- tests/wpt/tests/lint.ignore | 3 +- .../content-encoding.https.html | 36 + ...opins.partitions.tentative.https.window.js | 42 +- .../resources/unload-helper.js | 15 +- ...oad-allowed-headerless.tentative.window.js | 41 + ...-disallowed-headerless.tentative.window.js | 43 + .../content-encoding.https.html | 107 + .../resources/compressed-data.py | 33 + .../resources/compressed-js.py | 29 + .../tests/resource-timing/resources/dummy.js | 1 + .../resource-timing/resources/foo.text.br | Bin 0 -> 15 bytes .../resources/foo.text.br.headers | 2 + .../resource-timing/resources/foo.text.gz | Bin 0 -> 57 bytes .../resources/foo.text.gz.headers | 2 + .../resource-timing/resources/foo.text.zst | Bin 0 -> 25 bytes .../resources/foo.text.zst.headers | 2 + .../resource-timing/resources/gzip_xml.py | 3 + .../tests/sanitizer-api/sethtml-safety.dat | 8 +- .../tests/sanitizer-api/sethtml-unsafety.dat | 8 +- .../intermediate-transform.html | 55 + .../resources/srcdoc-iframe-worker.js | 11 + .../resources/srcdoc-iframe.html | 92 + .../service-worker/srcdoc-iframe.https.html | 66 + .../svg/path/interfaces/SVGPathSegment.svg | 197 + .../SVGGeometryElement.getTotalLength-01.svg | 25 +- tests/wpt/tests/tools/ci/ci_built_diff.sh | 4 - tests/wpt/tests/tools/localpaths.py | 1 - tests/wpt/tests/tools/serve/serve.py | 5 + .../third_party/typing_extensions/LICENSE | 254 - .../third_party/typing_extensions/PKG-INFO | 35 - .../typing_extensions/pyproject.toml | 63 - .../src/typing_extensions.py | 2908 --- .../tests/tools/webdriver/webdriver/error.py | 14 +- ...ribute-setAttributeNS-sinks.tentative.html | 98 + ...-handler-content-attributes.tentative.html | 68 +- ...ring-assignment-to-text-and-url-sinks.html | 124 + ...handlers-content-attributes.tentative.html | 67 + .../DOMWindowTimers-setTimeout-setInterval.js | 2 +- .../WorkerGlobalScope-importScripts.https.js | 2 +- ...val-function-constructor-worker.js.headers | 1 + ...-DOMWindowTimers-setTimeout-setInterval.js | 7 +- .../support/event-handler-attributes.mjs | 47 + ...s-duplicate-names-without-enforcement.html | 8 +- ...d-types-eval-reporting-no-unsafe-eval.html | 3 +- ...sted-types-eval-reporting-report-only.html | 3 +- .../trusted-types-eval-reporting.html | 15 +- .../trusted-types-reporting.html | 17 +- .../trusted-types-svg-script-set-href.html | 19 +- .../trusted-types-svg-script.html | 15 + .../worker-constructor.https.html | 33 +- ...set_and_page_after_dispatch.tentative.html | 156 + .../resources/urlpatterntestdata.json | 57 + .../different-contexts.html | 2 +- .../per-frame-qp-encoding.https.any.js | 7 +- .../browsing_context/locate_nodes/invalid.py | 61 +- .../browsing_context/locate_nodes/locator.py | 117 + .../webnn/conformance_tests/abs.https.any.js | 231 + .../webnn/conformance_tests/ceil.https.any.js | 206 + .../webnn/conformance_tests/cos.https.any.js | 239 + .../webnn/conformance_tests/erf.https.any.js | 241 + .../webnn/conformance_tests/exp.https.any.js | 349 + .../conformance_tests/floor.https.any.js | 207 + .../conformance_tests/identity.https.any.js | 241 + .../webnn/conformance_tests/log.https.any.js | 225 + .../webnn/conformance_tests/neg.https.any.js | 245 + .../conformance_tests/not_equal.https.any.js | 537 + .../conformance_tests/reciprocal.https.any.js | 265 + .../webnn/conformance_tests/sin.https.any.js | 245 + .../webnn/conformance_tests/sqrt.https.any.js | 227 + .../webnn/conformance_tests/tan.https.any.js | 245 + .../conformance_tests/tensor.https.any.js | 11 + tests/wpt/tests/webnn/resources/utils.js | 38 +- .../tests/webnn/resources/utils_validation.js | 18 + .../webnn/validation_tests/cast.https.any.js | 9 + .../validation_tests/concat.https.any.js | 16 +- .../dequantizeLinear.https.any.js | 18 +- .../elementwise-binary.https.any.js | 1 + .../elementwise-logical.https.any.js | 1 + .../validation_tests/expand.https.any.js | 15 +- .../validation_tests/gather.https.any.js | 22 +- .../validation_tests/gatherND.https.any.js | 18 +- .../webnn/validation_tests/gemm.https.any.js | 4 +- .../webnn/validation_tests/input.https.any.js | 11 + .../validation_tests/matmul.https.any.js | 3 +- .../webnn/validation_tests/pad.https.any.js | 22 +- .../quantizeLinear.https.any.js | 2 +- .../validation_tests/resample2d.https.any.js | 16 +- .../webnn/validation_tests/tile.https.any.js | 15 +- .../webnn/validation_tests/where.https.any.js | 19 +- ...riptTransform-encoded-transform.https.html | 4 - .../webrtc/protocol/h265-level-id.https.html | 10 +- 1779 files changed, 28718 insertions(+), 15792 deletions(-) create mode 100644 tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-navigation.tentative.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-worker-creation.tentative.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition.tentative.https.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-absent-getAvailability.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-added-getAvailability.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-off-getAvailability.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-on-getAvailability.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-on-off-on-getAvailability.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-removed-getAvailability.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/adapter/cross-origin-iframe-getAvailability.sub.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/characteristicProperties.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/notifications/characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/notifications/service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/event-is-fired.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/read-succeeds.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/read-updates-value.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/service-same-from-2-characteristics.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/service-same-object.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/buffer-is-detached.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/write-succeeds.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/write-succeeds.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/descriptor/readValue/gen-service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/descriptor/readValue/read-succeeds.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/descriptor/writeValue/buffer-is-detached.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/descriptor/writeValue/gen-service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/disconnected.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-pending-operation.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-signal-stops-events.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/watching-two-devices.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/getDevices/granted-devices-with-services.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/getDevices/no-granted-devices.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/getDevices/returns-same-bluetooth-device-object.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/idl/idlharness.tentative.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnected-device.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-get-same-object.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-service-not-found.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-same-object.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-blocklisted-characteristic.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-characteristic-not-found.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-get-same-object.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-invalid-characteristic-name.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-reconnect-during.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-get-same-object-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-get-same-object.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-invalid-characteristic-name.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-reconnect-during-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-reconnect-during.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-service-is-removed.https.window.js.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-multiple.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/background-repeat-x.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-001.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-002.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-001.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-004.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-005.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/canvas-reset.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-constructor-error.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-paint-error.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-pending-script.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/non-registered-property-value.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/overdraw.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-this-value.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-canvasFilter.tentative.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-conicGradient.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-gradient.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-image.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-rects.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-reset.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-roundRect.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-shadows.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-transform.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-001.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-004.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-007.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-013.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-014.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-015.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-017.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-019.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-020.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-021.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-022.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/parsing/paint-function-valid.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/roundrect.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-001.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-002.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-003.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-004.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/valid-image-after-load.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-paint-api/valid-image-before-load.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-check-pseudo-element.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-select-arrow-pseudo-element.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-1.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-2.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/activeelement-after-calling-window-focus.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe-contentwindow.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-same-site-iframe.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/focus-centers-element.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/focus-event-after-focusing-iframes.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/focus-event-after-iframe-gets-focus.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/focus-restoration-in-different-site-iframes-window.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/focus-restoration-in-different-site-iframes.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/focus-restoration-in-same-site-iframes-window.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/hasfocus-different-site.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/hasfocus-same-site.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/iframe-activeelement-after-focusing-out-iframes.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/iframe-contentwindow-focus-with-different-site-intermediate-frame.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/iframe-contentwindow-focus-with-same-as-top-intermediate-frame.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/iframe-focus-with-different-site-intermediate-frame.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/iframe-focus-with-same-as-top-intermediate-frame.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/iframe-focuses-parent-same-site.html.ini create mode 100644 tests/wpt/meta-legacy-layout/focus/scroll-matches-focus.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.lowlatency.nocrash.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-reload-location-reload.html.ini create mode 100644 tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html.ini create mode 100644 tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/semantics/forms/the-select-element/select-value-selectedOption.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/semantics/invokers/idlharness.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/semantics/invokers/interestelement-interface.tentative.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/html/semantics/invokers/invokeelement-interface.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/bounding-box.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/callback-cross-realm-report-exception.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/client-rect.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/clip-path.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/containing-block.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/cross-document-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/cross-origin-iframe.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/disconnect.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/display-none.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/document-scrolling-element-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/edge-inclusive-intersection.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/empty-root-margin.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/explicit-root-different-document.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-child-scroll.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-iframe-scroll.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-scroll.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/grow-height-and-scrolled.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/idlharness.window.js.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/iframe-no-root-with-wrapping-scroller.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/iframe-no-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/initial-observation-with-threshold.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/inline-client-rect.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/inline-with-block-child-client-rect.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-ib-split.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds-2.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds-in-iframe.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/isIntersecting-change-events.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/isIntersecting-threshold.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/multiple-targets.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/multiple-thresholds.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/nested-cross-origin-iframe.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/not-in-containing-block-chain.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/observer-attributes.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/observer-callback-arguments.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/observer-exceptions.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/observer-without-js-reference.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/padding-clip.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/remove-element.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/root-margin-root-element.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/root-margin-rounding.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/root-margin.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/root-vertical-rl.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/rtl-clipped-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/same-document-no-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/same-document-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/same-document-with-document-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/same-document-zero-size-target.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/same-origin-grand-child-iframe.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-and-root-margin.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-4-val.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-clip-path.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-dynamic.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-horizontal.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-iframe.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested-2.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested-3.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-no-intersect.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-non-scrolling-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-not-contained.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-percent.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-with-border-outline.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-zero.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/shadow-content.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-clipped-rect-target.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-container-element.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-group-target.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-image.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-intersection-with-fractional-bounds-2.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-intersection-with-fractional-bounds.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-rect-target.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-stroke-change.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-target-changes-position.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-transformed-rect-target.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/svg-viewbox.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/target-in-detached-document.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/target-in-different-window.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/target-is-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/text-target.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/timestamp.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/transform-animation.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/unclipped-root.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/animated-occlusion.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/blur-filter.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/box-reflect.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/box-shadow.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/cross-origin-effects.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/cross-origin-occlusion.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/delay-test.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/drop-shadow-filter-vertical-rl.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/iframe-target.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/inline-occlusion.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/nested-cross-origin.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/position-absolute-overflow-visible-and-not-visible.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/position-relative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/scaled-target.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-effects.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-occlusion-svg-foreign-object.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-occlusion.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/text-editor-occlusion.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/v2/text-shadow.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/visibility-hidden.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/zero-area-element-hidden.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/zero-area-element-visible.html.ini create mode 100644 tests/wpt/meta-legacy-layout/intersection-observer/zoom-scaled-target.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/blob.https.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/csp.https.window.js.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/beacon.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/audio-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/beacon.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/img-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/link-css-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/link-prefetch-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/object-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/picture-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/script-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/video-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-animation-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-animation.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-audio-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-audio.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-layout-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-layout.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-paint-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-paint.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/audio-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/beacon.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/link-css-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/link-prefetch-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/object-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/picture-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/script-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/video-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-animation-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-animation.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-audio-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-audio.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-layout-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-layout.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-paint-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-paint.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/worker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/worker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/worker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/worker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/imageset.https.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/nested-iframes.window.js.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/image-upgrade.https.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html.ini create mode 100644 tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/video-upgrade.https.sub.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/navigation-id-detached-frame.tentative.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/detached-frame.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A-A.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AA.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AB.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-A.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-B.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/performance-entry-source.html.ini create mode 100644 tests/wpt/meta-legacy-layout/performance-timeline/tentative/with-filter-options-originA.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/acTL-plays-one.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/acTL-plays-two.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fDAT-inherits-cICP.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-acTL-ordering.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-over-repeatedly.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-over-solid.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-nearly-transparent.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-solid.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-transparent.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-background-final.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-background.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-before-region-background.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-background.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-none.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-previous.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-none.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous-final.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous-first.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fdAT-16bit.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fdAT-1bit-PLTE-tRNS.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fdAT-1bit-PLTE.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fdAT-2bit-PLTE-tRNS.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fdAT-8bit-gray-alpha.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fdAT-8bit-gray.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fdAT-split-basic.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/fdAT-split-zero-length.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/apng/first-frame-not-IDAT.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/cICP-wins.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/cicp-chunk.html.ini create mode 100644 tests/wpt/meta-legacy-layout/png/exif-chunk.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/fetch.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/websocket.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-classic.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-module.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/xhr.https.html.ini create mode 100644 tests/wpt/meta-legacy-layout/upgrade-insecure-requests/link-upgrade.sub.https.html.ini delete mode 100644 tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithResponse/service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithResponse/write-succeeds.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/abort-pending-operation.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/abort-signal-stops-events.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/device/watchAdvertisements/watching-two-devices.https.window.js.ini delete mode 100644 tests/wpt/meta/bluetooth/idl/idlharness.tentative.https.window.js.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-001.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-002.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-003.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-004.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-005.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-006.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-007.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-008.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-009.tentative.html.ini delete mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/line-clamp-with-floats-010.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/webkit-line-clamp-051.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/webkit-line-clamp-052.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/line-clamp/webkit-line-clamp-053.html.ini create mode 100644 tests/wpt/meta/css/css-paint-api/paint2d-imageSmoothingQuality.high.https.html.ini create mode 100644 tests/wpt/meta/css/css-paint-api/paint2d-imageSmoothingQuality.low.https.html.ini create mode 100644 tests/wpt/meta/css/css-paint-api/paint2d-imageSmoothingQuality.med.https.html.ini create mode 100644 tests/wpt/meta/css/css-transitions/after-change-style-inherited.html.ini create mode 100644 tests/wpt/meta/css/css-values/attr-cycle.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-values/random-computed.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-values/random-serialize.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-values/rlh-on-root-lengths.html.ini create mode 100644 tests/wpt/meta/css/selectors/selectors-4/details-open-pseudo-001.html.ini create mode 100644 tests/wpt/meta/css/selectors/selectors-4/details-open-pseudo-002.html.ini create mode 100644 tests/wpt/meta/css/selectors/selectors-4/details-open-pseudo-003.html.ini create mode 100644 tests/wpt/meta/fetch/api/basic/gc.any.js.ini create mode 100644 tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini delete mode 100644 tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/refresh/same-document-refresh.html.ini delete mode 100644 tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini create mode 100644 tests/wpt/meta/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.ini create mode 100644 tests/wpt/meta/html/rendering/the-details-element/details-summary-display-inline-002.html.ini rename tests/wpt/meta/html/semantics/popovers/{button-type-reset-popovertarget.tentative.html.ini => button-type-reset-popovertarget.html.ini} (68%) rename tests/wpt/meta/html/semantics/popovers/{popover-types-with-hints.tentative.html.ini => popover-types-with-hints.html.ini} (66%) create mode 100644 tests/wpt/meta/navigation-timing/content-encoding.https.html.ini create mode 100644 tests/wpt/meta/resource-timing/content-encoding.https.html.ini create mode 100644 tests/wpt/meta/webmessaging/without-ports/018.html.ini delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore-createIndex-emptyname.htm create mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore.any.js delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore10-1000ends.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore10-emptyname.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore11.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore2.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore3.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore4.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore5.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore6.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore7.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore8-parameters.htm delete mode 100644 tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore9-invalidparameters.htm create mode 100644 tests/wpt/tests/IndexedDB/idbindex-rename-abort.any.js delete mode 100644 tests/wpt/tests/IndexedDB/idbindex-rename-abort.html create mode 100644 tests/wpt/tests/IndexedDB/idbindex-rename-errors.any.js delete mode 100644 tests/wpt/tests/IndexedDB/idbindex-rename-errors.html create mode 100644 tests/wpt/tests/IndexedDB/idbindex-rename.any.js delete mode 100644 tests/wpt/tests/IndexedDB/idbindex-rename.html create mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-generator-revert.any.js delete mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-generator-revert.html create mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-index-metadata-revert.any.js delete mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-index-metadata-revert.html create mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-multiple-metadata-revert.any.js delete mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-multiple-metadata-revert.html create mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-object-store-metadata-revert.any.js delete mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-object-store-metadata-revert.html create mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-request-error.any.js delete mode 100644 tests/wpt/tests/IndexedDB/transaction-abort-request-error.html create mode 100644 tests/wpt/tests/IndexedDB/transaction-create_in_versionchange.any.js delete mode 100644 tests/wpt/tests/IndexedDB/transaction-create_in_versionchange.htm create mode 100644 tests/wpt/tests/IndexedDB/transaction-deactivation-timing.any.js delete mode 100644 tests/wpt/tests/IndexedDB/transaction-deactivation-timing.html create mode 100644 tests/wpt/tests/IndexedDB/transaction-requestqueue.any.js delete mode 100644 tests/wpt/tests/IndexedDB/transaction-requestqueue.htm create mode 100644 tests/wpt/tests/IndexedDB/transaction_bubble-and-capture.any.js delete mode 100644 tests/wpt/tests/IndexedDB/transaction_bubble-and-capture.htm rename tests/wpt/tests/bluetooth/{ => legacy}/adapter/adapter-absent-getAvailability.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/adapter/adapter-added-getAvailability.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/adapter/adapter-powered-off-getAvailability.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/adapter/adapter-powered-on-getAvailability.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/adapter/adapter-powered-on-off-on-getAvailability.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/adapter/adapter-removed-getAvailability.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/adapter/cross-origin-iframe-getAvailability.sub.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/characteristicProperties.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptor/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptor/gen-characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptor/gen-descriptor-get-same-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptor/gen-service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptors/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptors/gen-characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptors/gen-descriptor-get-same-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/getDescriptors/gen-service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/notifications/characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/notifications/service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/readValue/add-multiple-event-listeners.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/readValue/characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/readValue/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/readValue/event-is-fired.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/readValue/gen-characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/readValue/read-succeeds.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/readValue/read-updates-value.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/readValue/service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/service-same-from-2-characteristics.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/service-same-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/startNotifications/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/startNotifications/gen-characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/stopNotifications/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValue/buffer-is-detached.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValue/characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValue/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValue/gen-characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValue/service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValue/write-succeeds.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithResponse/service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithResponse/write-succeeds.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/descriptor/readValue/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/descriptor/readValue/gen-service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/descriptor/readValue/read-succeeds.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/descriptor/writeValue/buffer-is-detached.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/descriptor/writeValue/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/descriptor/writeValue/gen-service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/forget/connect-after-forget.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/forget/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/forget/getDevices.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/gattserverdisconnected-event/disconnected.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/gattserverdisconnected-event/disconnected_gc.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/gattserverdisconnected-event/one-event-per-disconnection.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/abort-pending-operation.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/abort-signal-stops-events.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/blocklisted-manufacturer-data-filtered-from-event.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/device/watchAdvertisements/watching-two-devices.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/generate.py (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/generate_test.py (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/getAvailability/reject_opaque_origin.https.html (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/getAvailability/reject_opaque_origin.https.html.headers (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/getAvailability/sandboxed_iframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/getDevices/granted-devices-with-services.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/getDevices/no-granted-devices.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/getDevices/reject_opaque_origin.https.html (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/getDevices/reject_opaque_origin.https.html.headers (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/getDevices/returns-same-bluetooth-device-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/getDevices/sandboxed_iframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/idl/idl-Bluetooth.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/idl/idl-BluetoothDevice.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/idl/idl-BluetoothUUID.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/idl/idl-NavigatorBluetooth.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/idl/idl-NavigatorBluetooth.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/idl/idlharness.tentative.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/acceptAllDevices/device-with-empty-name.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/acceptAllDevices/device-with-name.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/acceptAllDevices/optional-services-missing.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/acceptAllDevices/optional-services-present.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/blocklisted-manufacturer-data-in-filter.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/blocklisted-service-in-filter.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/blocklisted-service-in-optionalServices.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/data-prefix-and-mask-size.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/dataPrefix-buffer-is-detached.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/empty-dataPrefix.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/empty-exclusion-filter.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/empty-exclusion-filters-member.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/empty-filter.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/empty-filters-member.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/empty-manufacturerData-member.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/empty-namePrefix.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/empty-services-member.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/exclusion-filters-require-filters.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/invalid-companyIdentifier.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/mask-buffer-is-detached.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/max-length-name-unicode.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/max-length-name.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/max-length-namePrefix.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/no-arguments.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/same-company-identifier.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/cross-origin-iframe.sub.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/discovery-succeeds.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/doesnt-consume-user-gesture.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/filter-matches.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/le-not-supported.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/manufacturer-data-filter-matches.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/name-empty-device-from-name-empty-filter.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/not-processing-user-gesture.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/radio-not-present.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/reject_opaque_origin.https.html (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/reject_opaque_origin.https.html.headers (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/request-from-iframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/request-from-sandboxed-iframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/same-device.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/sandboxed_iframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestDevice/single-filter-single-service.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestLEScan/reject_opaque_origin.https.html (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestLEScan/reject_opaque_origin.https.html.headers (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/requestLEScan/sandboxed_iframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/base_test_js.template (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/characteristic/characteristic-is-removed.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/characteristic/descriptor-get-same-object.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/characteristic/service-is-removed.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/descriptor/service-is-removed.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/disconnect-called-before.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/disconnect-called-during-error.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/disconnect-called-during-success.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/disconnect-discovery-timeout.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/disconnect-invalidates-objects.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/disconnected-device.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/discovery-complete-no-permission-absent-service.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/discovery-complete-service-not-found.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/garbage-collection-ran-during-error.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/garbage-collection-ran-during-success.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/get-different-service-after-reconnection.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/get-same-object.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/invalid-service-name.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/no-permission-absent-service.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/no-permission-for-any-service.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/no-permission-present-service.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/server/service-not-found.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/service/blocklisted-characteristic.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/service/characteristic-not-found.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/service/garbage-collection-ran-during-error.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/service/get-same-object.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/service/invalid-characteristic-name.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/service/reconnect-during.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/script-tests/service/service-is-removed.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/connect/connection-succeeds.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/connect/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/connect/garbage-collection-ran-during-success.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/connect/get-same-gatt-server.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/device-same-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/disconnect/connect-disconnect-twice.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/disconnect/detach-gc.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/disconnect/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/disconnect/disconnect-twice-in-a-row.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/disconnect/gc-detach.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-disconnect-called-before.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-disconnect-called-during-error.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-disconnect-called-during-success.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-disconnect-discovery-timeout.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-disconnect-invalidates-objects.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-disconnected-device.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-discovery-complete-service-not-found.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-get-different-service-after-reconnection.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-get-same-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-invalid-service-name.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-no-permission-absent-service.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-no-permission-for-any-service.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-no-permission-present-service.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/gen-service-not-found.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/service-found.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryService/two-iframes-from-same-origin.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/blocklisted-services-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/blocklisted-services.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/correct-services.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-called-before.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-called-during-error.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-called-during-success.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-discovery-timeout-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-discovery-timeout.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-disconnected-device.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-get-same-object-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-get-same-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-invalid-service-name.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-no-permission-for-any-service.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/gen-service-not-found-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/services-found-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/services-found.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/server/getPrimaryServices/services-not-found.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/device-same-from-2-services.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/device-same-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristic/characteristic-found.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristic/detachedIframe.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristic/gen-blocklisted-characteristic.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristic/gen-characteristic-not-found.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristic/gen-get-same-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristic/gen-invalid-characteristic-name.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristic/gen-reconnect-during.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristic/gen-service-is-removed.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/blocklisted-characteristics.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/characteristics-found-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/characteristics-found.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/characteristics-not-found.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-get-same-object-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-get-same-object.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-invalid-characteristic-name.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-reconnect-during-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-reconnect-during.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.js (100%) rename tests/wpt/tests/bluetooth/{ => legacy}/service/getCharacteristics/gen-service-is-removed.https.window.js (100%) create mode 100644 tests/wpt/tests/clear-site-data/clear-cache.https.html create mode 100644 tests/wpt/tests/clear-site-data/support/clear-site-data-cache.py create mode 100644 tests/wpt/tests/cookie-store/cookieStore_getAll_set_creation_url.https.any.js create mode 100644 tests/wpt/tests/cookie-store/cookieStore_get_set_creation_url.https.any.js create mode 100644 tests/wpt/tests/css/css-fonts/font-face-local-not-family-ref.html create mode 100644 tests/wpt/tests/css/css-fonts/font-face-local-not-family.html create mode 100644 tests/wpt/tests/css/css-masking/clip-path/clip-path-shape-winding.html create mode 100644 tests/wpt/tests/css/css-masking/clip-path/reference/clip-path-path-winding-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-001.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-002.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-003.tentative.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-004.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-005.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-006.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-007.tentative.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-008.tentative.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-009.tentative.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-001-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-002-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-003-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-004-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-005-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-007-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-009-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-051-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-052-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-053-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-051.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-052.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-053.html create mode 100644 tests/wpt/tests/css/css-overflow/scrollable-overflow-empty-newline-span.html create mode 100644 tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.high-ref.html create mode 100644 tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.high.https.html create mode 100644 tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.low-ref.html create mode 100644 tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.low.https.html create mode 100644 tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.med-ref.html create mode 100644 tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.med.https.html create mode 100644 tests/wpt/tests/css/css-position/sticky/position-sticky-rtl-ref.html create mode 100644 tests/wpt/tests/css/css-position/sticky/position-sticky-rtl.html create mode 100644 tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-shadow-dom.tentative.html create mode 100644 tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-before-after-001-ref.html create mode 100644 tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-before-after-002-ref.html create mode 100644 tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-001.html create mode 100644 tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-002.html create mode 100644 tests/wpt/tests/css/css-transitions/after-change-style-inherited.html create mode 100644 tests/wpt/tests/css/css-values/attr-cycle.tentative.html create mode 100644 tests/wpt/tests/css/css-values/random-computed.tentative.html create mode 100644 tests/wpt/tests/css/css-values/random-invalid.tentative.html create mode 100644 tests/wpt/tests/css/css-values/random-serialize.tentative.html create mode 100644 tests/wpt/tests/css/css-values/rlh-on-root-lengths.html create mode 100644 tests/wpt/tests/css/css-view-transitions/auto-name-get-animations.html create mode 100644 tests/wpt/tests/css/css-view-transitions/navigation/resources/navigate-after-hide.html create mode 100644 tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-001-ref.html create mode 100644 tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-001.html create mode 100644 tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-002.html create mode 100644 tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-003-ref.html create mode 100644 tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-003.html create mode 100644 tests/wpt/tests/editing/crashtests/remove-all-children-of-documentElement-in-designMode-when-no-body.html create mode 100644 tests/wpt/tests/editing/other/copy-paste-before-non-editable.html create mode 100644 tests/wpt/tests/editing/other/paste-text-after-collapsible-white-space-whose-container-remove-non-first-children.html create mode 100644 tests/wpt/tests/fetch/api/basic/gc.any.js delete mode 100644 tests/wpt/tests/fledge/tentative/resources/ed25519.py create mode 100644 tests/wpt/tests/fledge/tentative/server-response-for-debugging-only.https.window.js create mode 100644 tests/wpt/tests/fledge/tentative/server-response-private-aggregation.https.window.js create mode 100644 tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/LICENSE create mode 100644 tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/README create mode 100644 tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/noble-ed25519.js delete mode 100644 tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.vertical.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/path-objects/2d.path.fill.overlap.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/path-objects/2d.path.stroke.overlap.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.put.alpha.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.2.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.3.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.4.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.5.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.blur.high.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.blur.low.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.canvas.alpha.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.image.alpha.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.fill.basic.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.fill.rtl.png delete mode 100644 tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.stroke.basic.png create mode 100644 tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html create mode 100644 tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.headers create mode 100644 tests/wpt/tests/html/document-isolation-policy/resources/reporting-empty-frame-multiple-headers.html.asis create mode 100644 tests/wpt/tests/html/document-isolation-policy/resources/reporting-empty-frame.html create mode 100644 tests/wpt/tests/html/dom/render-blocking/element-render-blocking-039.html create mode 100644 tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-001-ref.html create mode 100644 tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-001.html create mode 100644 tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-002-ref.html create mode 100644 tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-002.html create mode 100644 tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-1.html create mode 100644 tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-2.html create mode 100644 tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-ref.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-click-drag-option.tentative.html create mode 100644 tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-innertext.tentative.html rename tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/{dialog-closedby.tentative.html => dialog-closedby.html} (100%) rename tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/{dialog-popover-closedby-complex.tentative.html => dialog-popover-closedby-complex.html} (100%) rename tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/{dialog-popover-closedby-simple.tentative.html => dialog-popover-closedby-simple.html} (100%) rename tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/{dialog-requestclose.tentative.html => dialog-requestclose.html} (100%) rename tests/wpt/tests/html/semantics/popovers/{button-type-reset-popovertarget.tentative.html => button-type-reset-popovertarget.html} (100%) rename tests/wpt/tests/html/semantics/popovers/{popover-hint-crash.tentative.html => popover-hint-crash.html} (100%) rename tests/wpt/tests/html/semantics/popovers/{popover-invoking-attribute-hint.tentative.html => popover-invoking-attribute-hint.html} (100%) rename tests/wpt/tests/html/semantics/popovers/{popover-light-dismiss-hint.tentative.html => popover-light-dismiss-hint.html} (100%) rename tests/wpt/tests/html/semantics/popovers/{popover-top-layer-nesting-hints.tentative.html => popover-top-layer-nesting-hints.html} (100%) rename tests/wpt/tests/html/semantics/popovers/{popover-types-with-hints.tentative.html => popover-types-with-hints.html} (100%) create mode 100644 tests/wpt/tests/interfaces/css-fonts-5.idl create mode 100644 tests/wpt/tests/navigation-timing/content-encoding.https.html create mode 100644 tests/wpt/tests/permissions-policy/experimental-features/unload-allowed-headerless.tentative.window.js create mode 100644 tests/wpt/tests/permissions-policy/experimental-features/unload-disallowed-headerless.tentative.window.js create mode 100644 tests/wpt/tests/resource-timing/content-encoding.https.html create mode 100644 tests/wpt/tests/resource-timing/resources/compressed-data.py create mode 100644 tests/wpt/tests/resource-timing/resources/compressed-js.py create mode 100644 tests/wpt/tests/resource-timing/resources/dummy.js create mode 100644 tests/wpt/tests/resource-timing/resources/foo.text.br create mode 100644 tests/wpt/tests/resource-timing/resources/foo.text.br.headers create mode 100644 tests/wpt/tests/resource-timing/resources/foo.text.gz create mode 100644 tests/wpt/tests/resource-timing/resources/foo.text.gz.headers create mode 100644 tests/wpt/tests/resource-timing/resources/foo.text.zst create mode 100644 tests/wpt/tests/resource-timing/resources/foo.text.zst.headers create mode 100644 tests/wpt/tests/scroll-animations/view-timelines/intermediate-transform.html create mode 100644 tests/wpt/tests/service-workers/service-worker/resources/srcdoc-iframe-worker.js create mode 100644 tests/wpt/tests/service-workers/service-worker/resources/srcdoc-iframe.html create mode 100644 tests/wpt/tests/service-workers/service-worker/srcdoc-iframe.https.html create mode 100644 tests/wpt/tests/svg/path/interfaces/SVGPathSegment.svg delete mode 100644 tests/wpt/tests/tools/third_party/typing_extensions/LICENSE delete mode 100644 tests/wpt/tests/tools/third_party/typing_extensions/PKG-INFO delete mode 100644 tests/wpt/tests/tools/third_party/typing_extensions/pyproject.toml delete mode 100644 tests/wpt/tests/tools/third_party/typing_extensions/src/typing_extensions.py create mode 100644 tests/wpt/tests/trusted-types/Element-setAttribute-setAttributeNS-sinks.tentative.html create mode 100644 tests/wpt/tests/trusted-types/block-string-assignment-to-text-and-url-sinks.html create mode 100644 tests/wpt/tests/trusted-types/set-event-handlers-content-attributes.tentative.html create mode 100644 tests/wpt/tests/trusted-types/support/block-eval-function-constructor-worker.js.headers create mode 100644 tests/wpt/tests/trusted-types/support/event-handler-attributes.mjs create mode 100644 tests/wpt/tests/uievents/mouse/offset_and_page_after_dispatch.tentative.html create mode 100644 tests/wpt/tests/webnn/conformance_tests/not_equal.https.any.js diff --git a/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-navigation.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-navigation.tentative.https.html.ini new file mode 100644 index 00000000000..575e16729cb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-navigation.tentative.https.html.ini @@ -0,0 +1,2 @@ +[cross-partition-navigation.tentative.https.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-worker-creation.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-worker-creation.tentative.https.html.ini new file mode 100644 index 00000000000..06d580aa061 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition-worker-creation.tentative.https.html.ini @@ -0,0 +1,2 @@ +[cross-partition-worker-creation.tentative.https.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition.tentative.https.html.ini new file mode 100644 index 00000000000..5f8ed6cf262 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/FileAPI/BlobURL/cross-partition.tentative.https.html.ini @@ -0,0 +1,2 @@ +[cross-partition.tentative.https.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-absent-getAvailability.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-absent-getAvailability.https.window.js.ini deleted file mode 100644 index 2381bf3b21c..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-absent-getAvailability.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[adapter-absent-getAvailability.https.window.html] - [getAvailability() resolves with false if the system does not have an adapter.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-added-getAvailability.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-added-getAvailability.https.window.js.ini deleted file mode 100644 index d27675d262d..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-added-getAvailability.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[adapter-added-getAvailability.https.window.html] - [getAvailability() resolves with true after adapter is inserted into a system with a platform that supports Bluetooth LE.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-off-getAvailability.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-off-getAvailability.https.window.js.ini deleted file mode 100644 index 4eeb745298f..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-off-getAvailability.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[adapter-powered-off-getAvailability.https.window.html] - [getAvailability() resolves with true if the Bluetooth radio is powered off, but the platform that supports Bluetooth LE.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-on-getAvailability.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-on-getAvailability.https.window.js.ini deleted file mode 100644 index 4d336bda5b0..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-on-getAvailability.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[adapter-powered-on-getAvailability.https.window.html] - [getAvailability() resolves with true if the Bluetooth radio is powered on and the platform supports Bluetooth LE.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-on-off-on-getAvailability.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-on-off-on-getAvailability.https.window.js.ini deleted file mode 100644 index dd3c573439d..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-powered-on-off-on-getAvailability.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[adapter-powered-on-off-on-getAvailability.https.window.html] - [getAvailability() is not affected by the powered state of the adapter.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-removed-getAvailability.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-removed-getAvailability.https.window.js.ini deleted file mode 100644 index 0f787434b24..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/adapter/adapter-removed-getAvailability.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[adapter-removed-getAvailability.https.window.html] - [getAvailability() resolves with false after the powered on adapter is removed.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/adapter/cross-origin-iframe-getAvailability.sub.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/adapter/cross-origin-iframe-getAvailability.sub.https.window.js.ini deleted file mode 100644 index 65bf7c25b5b..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/adapter/cross-origin-iframe-getAvailability.sub.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[cross-origin-iframe-getAvailability.sub.https.window.html] - [getAvailability() resolves with false if called from a unique origin] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/characteristicProperties.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/characteristicProperties.https.window.js.ini deleted file mode 100644 index 7d5590044cc..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/characteristicProperties.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[characteristicProperties.https.window.html] - [HeartRate device properties] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.window.js.ini deleted file mode 100644 index e31590e2b73..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.window.js.ini deleted file mode 100644 index 2d41bb08fa6..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-descriptor-get-same-object.https.window.html] - [Calls to getDescriptor should return the same object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-service-is-removed.https.window.js.ini deleted file mode 100644 index b0d6d6a2908..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptor/gen-service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-is-removed.https.window.html] - [Service is removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.window.js.ini deleted file mode 100644 index 1142802d6d6..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-is-removed-with-uuid.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.window.js.ini deleted file mode 100644 index e31590e2b73..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.window.js.ini deleted file mode 100644 index 2176cf384e8..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-descriptor-get-same-object.https.window.html] - [Calls to getDescriptors should return the same object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.window.js.ini deleted file mode 100644 index f5a0da03571..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-is-removed-with-uuid.https.window.html] - [Service is removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-service-is-removed.https.window.js.ini deleted file mode 100644 index b0d6d6a2908..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/getDescriptors/gen-service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-is-removed.https.window.html] - [Service is removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/notifications/characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/notifications/characteristic-is-removed.https.window.js.ini deleted file mode 100644 index 3105a0f9239..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/notifications/characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[characteristic-is-removed.https.window.html] - [Characteristic is removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/notifications/service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/notifications/service-is-removed.https.window.js.ini deleted file mode 100644 index 17ce130ff75..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/notifications/service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[service-is-removed.https.window.html] - [Service is removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.window.js.ini deleted file mode 100644 index 55e07ad21b7..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[add-multiple-event-listeners.https.window.html] - [Add multiple event listeners then readValue().] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/characteristic-is-removed.https.window.js.ini deleted file mode 100644 index c5032c5b28b..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/event-is-fired.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/event-is-fired.https.window.js.ini deleted file mode 100644 index 57097bf2c43..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/event-is-fired.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[event-is-fired.https.window.html] - [Reading a characteristic should fire an event.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.window.js.ini deleted file mode 100644 index e31590e2b73..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/read-succeeds.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/read-succeeds.https.window.js.ini deleted file mode 100644 index ebfec4e2a27..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/read-succeeds.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[read-succeeds.https.window.html] - [A read request succeeds and returns the characteristic's value.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/read-updates-value.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/read-updates-value.https.window.js.ini deleted file mode 100644 index 17e966c69c7..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/read-updates-value.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[read-updates-value.https.window.html] - [Succesful read should update characteristic.value] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/service-is-removed.https.window.js.ini deleted file mode 100644 index 6fde66b04c8..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/readValue/service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[service-is-removed.https.window.html] - [Service gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/service-same-from-2-characteristics.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/service-same-from-2-characteristics.https.window.js.ini deleted file mode 100644 index e799d15fcdc..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/service-same-from-2-characteristics.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[service-same-from-2-characteristics.https.window.html] - [Same parent service returned from multiple characteristics.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/service-same-object.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/service-same-object.https.window.js.ini deleted file mode 100644 index 8c1c44079af..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/service-same-object.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[service-same-object.https.window.html] - [[SameObject\] test for BluetoothRemoteGATTCharacteristic service.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.window.js.ini deleted file mode 100644 index e31590e2b73..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/buffer-is-detached.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/buffer-is-detached.https.window.js.ini deleted file mode 100644 index 900b56a01c7..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/buffer-is-detached.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[buffer-is-detached.https.window.html] - [writeValue() fails when passed a detached buffer] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/characteristic-is-removed.https.window.js.ini deleted file mode 100644 index c5032c5b28b..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.window.js.ini deleted file mode 100644 index e31590e2b73..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/service-is-removed.https.window.js.ini deleted file mode 100644 index 6fde66b04c8..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[service-is-removed.https.window.html] - [Service gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/write-succeeds.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/write-succeeds.https.window.js.ini deleted file mode 100644 index df37a229b93..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValue/write-succeeds.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[write-succeeds.https.window.html] - [A regular write request to a writable characteristic should succeed.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js.ini deleted file mode 100644 index 689b45fc5b3..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[buffer-is-detached.https.window.html] - [writeValueWithResponse() fails when passed a detached buffer] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js.ini deleted file mode 100644 index c5032c5b28b..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js.ini deleted file mode 100644 index e31590e2b73..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/service-is-removed.https.window.js.ini deleted file mode 100644 index 6fde66b04c8..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[service-is-removed.https.window.html] - [Service gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/write-succeeds.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/write-succeeds.https.window.js.ini deleted file mode 100644 index df37a229b93..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithResponse/write-succeeds.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[write-succeeds.https.window.html] - [A regular write request to a writable characteristic should succeed.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js.ini deleted file mode 100644 index 54b3c859672..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[buffer-is-detached.https.window.html] - [writeValueWithoutResponse() fails when passed a detached buffer] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js.ini deleted file mode 100644 index c5032c5b28b..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js.ini deleted file mode 100644 index e31590e2b73..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-is-removed.https.window.html] - [Characteristic gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js.ini deleted file mode 100644 index 6fde66b04c8..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[service-is-removed.https.window.html] - [Service gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js.ini deleted file mode 100644 index df37a229b93..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[write-succeeds.https.window.html] - [A regular write request to a writable characteristic should succeed.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/descriptor/readValue/gen-service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/descriptor/readValue/gen-service-is-removed.https.window.js.ini deleted file mode 100644 index 8bc6d5ad998..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/descriptor/readValue/gen-service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-is-removed.https.window.html] - [Service gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/descriptor/readValue/read-succeeds.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/descriptor/readValue/read-succeeds.https.window.js.ini deleted file mode 100644 index 595c74f9adb..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/descriptor/readValue/read-succeeds.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[read-succeeds.https.window.html] - [A read request succeeds and returns the descriptor's value.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/descriptor/writeValue/buffer-is-detached.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/descriptor/writeValue/buffer-is-detached.https.window.js.ini deleted file mode 100644 index 900b56a01c7..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/descriptor/writeValue/buffer-is-detached.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[buffer-is-detached.https.window.html] - [writeValue() fails when passed a detached buffer] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/descriptor/writeValue/gen-service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/descriptor/writeValue/gen-service-is-removed.https.window.js.ini deleted file mode 100644 index 8bc6d5ad998..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/descriptor/writeValue/gen-service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-is-removed.https.window.html] - [Service gets removed. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/disconnected.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/disconnected.https.window.js.ini deleted file mode 100644 index 9ed5c89acd2..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/disconnected.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[disconnected.https.window.html] - [A device disconnecting while connected should fire the gattserverdisconnected event.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.window.js.ini deleted file mode 100644 index 5fa614818e6..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[disconnected_gc.https.window.html] - [A device disconnecting after the BluetoothDevice object has been GC'ed should not access freed memory.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.window.js.ini deleted file mode 100644 index 17178b457fa..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[one-event-per-disconnection.https.window.html] - [If a site disconnects from a device while the platform is disconnecting that device, only one gattserverdisconnected event should fire.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.window.js.ini deleted file mode 100644 index 78fbd8c84a5..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[reconnect-during-disconnected-event.https.window.html] - [A device that reconnects during the gattserverdisconnected event should still receive gattserverdisconnected events after re-connection.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js.ini deleted file mode 100644 index 59ba79a54cc..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[abort-before-watchAdvertisements.https.window.html] - [watchAdvertisements() rejects if passed an aborted signal.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-pending-operation.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-pending-operation.https.window.js.ini deleted file mode 100644 index b9f0e46395c..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-pending-operation.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[abort-pending-operation.https.window.html] - [AbortController stops a pending watchAdvertisements() operation.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-signal-stops-events.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-signal-stops-events.https.window.js.ini deleted file mode 100644 index 2ec65698976..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-signal-stops-events.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[abort-signal-stops-events.https.window.html] - [AbortController stops 'advertisementreceived' events from being fired on the device object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js.ini deleted file mode 100644 index 4c145abf935..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[abort-subsequent-watchAdvertisements-call-stops-events.https.window.html] - [AbortController on subsequent watchAdvertisements() call cancels the watch advertisements operation.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js.ini deleted file mode 100644 index a02d5557a3f..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[advertisementreceived-event-fired.https.window.html] - [watchAdvertisements() enables 'advertisementreceived' events to be fired on the device object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js.ini deleted file mode 100644 index 707a33e5d78..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[concurrent-watchAdvertisements-calls.https.window.html] - [concurrent watchAdvertisements() calls results in the second call rejecting with 'InvalidStateError'] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js.ini deleted file mode 100644 index fab1ef3e365..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[service-and-manufacturer-data-filtered-from-event.https.window.html] - [Service and Manufacturer that were not granted with requestDevice() are filtered from the advertisement event.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js.ini deleted file mode 100644 index 23b78d158da..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[subsequent-watchAdvertisements-call.https.window.html] - [subsequent watchAdvertisements() calls result in the second call resolving successfully.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js.ini deleted file mode 100644 index 7bdbd2b4bf2..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[watching-two-devices-abort-one-watchAdvertisements.https.window.html] - [AbortController while watching advertisements for two devices stops the correct watchAdvertisements() operation.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/watching-two-devices.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/watching-two-devices.https.window.js.ini deleted file mode 100644 index bb4517b5cba..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/device/watchAdvertisements/watching-two-devices.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[watching-two-devices.https.window.html] - [Events are fired on correct device with multiple watchAdvertisements() calls.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/getDevices/granted-devices-with-services.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/getDevices/granted-devices-with-services.https.window.js.ini deleted file mode 100644 index 4c9f650dc4a..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/getDevices/granted-devices-with-services.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[granted-devices-with-services.https.window.html] - [getDevices() resolves with permitted devices that can be GATT connected to.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/getDevices/no-granted-devices.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/getDevices/no-granted-devices.https.window.js.ini deleted file mode 100644 index daf89d18f81..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/getDevices/no-granted-devices.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[no-granted-devices.https.window.html] - [getDevices() resolves with empty array if no device permissions have been granted.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/getDevices/returns-same-bluetooth-device-object.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/getDevices/returns-same-bluetooth-device-object.https.window.js.ini deleted file mode 100644 index 1af5bf8056c..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/getDevices/returns-same-bluetooth-device-object.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[returns-same-bluetooth-device-object.https.window.html] - [multiple calls to getDevices() resolves with the sameBluetoothDevice objects for each granted Bluetooth device.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/idl/idlharness.tentative.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/idl/idlharness.tentative.https.window.js.ini deleted file mode 100644 index 12aad4482a4..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/idl/idlharness.tentative.https.window.js.ini +++ /dev/null @@ -1,244 +0,0 @@ -[idlharness.tentative.https.window.html] - [BluetoothRemoteGATTService interface: attribute oncharacteristicvaluechanged] - expected: FAIL - - [Bluetooth interface: navigator.bluetooth must inherit property "onadvertisementreceived" with the proper type] - expected: FAIL - - [Bluetooth interface: attribute onadvertisementreceived] - expected: FAIL - - [BluetoothDevice interface: attribute onadvertisementreceived] - expected: FAIL - - [Bluetooth interface: attribute onserviceadded] - expected: FAIL - - [Bluetooth interface: navigator.bluetooth must inherit property "oncharacteristicvaluechanged" with the proper type] - expected: FAIL - - [BluetoothServiceDataMap interface object length] - expected: FAIL - - [BluetoothManufacturerDataMap interface: existence and properties of interface prototype object] - expected: FAIL - - [BluetoothAdvertisingEvent interface: attribute manufacturerData] - expected: FAIL - - [BluetoothRemoteGATTDescriptor interface: operation readValue()] - expected: FAIL - - [BluetoothAdvertisingEvent interface: event must inherit property "uuids" with the proper type] - expected: FAIL - - [BluetoothPermissionResult interface: attribute devices] - expected: FAIL - - [BluetoothRemoteGATTServer interface: operation getPrimaryServices(BluetoothServiceUUID)] - expected: FAIL - - [BluetoothRemoteGATTCharacteristic interface: operation readValue()] - expected: FAIL - - [BluetoothRemoteGATTServer interface: operation connect()] - expected: FAIL - - [Bluetooth interface: attribute referringDevice] - expected: FAIL - - [BluetoothAdvertisingEvent interface: attribute uuids] - expected: FAIL - - [BluetoothRemoteGATTService interface: operation getCharacteristics(BluetoothCharacteristicUUID)] - expected: FAIL - - [BluetoothRemoteGATTCharacteristic interface: operation stopNotifications()] - expected: FAIL - - [BluetoothManufacturerDataMap interface: existence and properties of interface object] - expected: FAIL - - [BluetoothRemoteGATTDescriptor interface: operation writeValue(BufferSource)] - expected: FAIL - - [BluetoothAdvertisingEvent must be primary interface of event] - expected: FAIL - - [BluetoothServiceDataMap interface: existence and properties of interface object] - expected: FAIL - - [BluetoothRemoteGATTService interface: operation getIncludedServices(BluetoothServiceUUID)] - expected: FAIL - - [Bluetooth interface: navigator.bluetooth must inherit property "onserviceremoved" with the proper type] - expected: FAIL - - [BluetoothServiceDataMap interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [BluetoothAdvertisingEvent interface: event must inherit property "manufacturerData" with the proper type] - expected: FAIL - - [BluetoothManufacturerDataMap interface object length] - expected: FAIL - - [BluetoothAdvertisingEvent interface: attribute serviceData] - expected: FAIL - - [Bluetooth interface: attribute onserviceremoved] - expected: FAIL - - [BluetoothManufacturerDataMap interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - - [Bluetooth interface: operation requestDevice(RequestDeviceOptions)] - expected: FAIL - - [BluetoothRemoteGATTCharacteristic interface: operation getDescriptor(BluetoothDescriptorUUID)] - expected: FAIL - - [BluetoothAdvertisingEvent interface: event must inherit property "txPower" with the proper type] - expected: FAIL - - [ValueEvent interface: attribute value] - expected: FAIL - - [BluetoothManufacturerDataMap interface object name] - expected: FAIL - - [BluetoothRemoteGATTCharacteristic interface: operation startNotifications()] - expected: FAIL - - [BluetoothServiceDataMap interface object name] - expected: FAIL - - [BluetoothDevice interface: attribute onservicechanged] - expected: FAIL - - [Bluetooth interface: attribute onservicechanged] - expected: FAIL - - [Bluetooth interface: navigator.bluetooth must inherit property "ongattserverdisconnected" with the proper type] - expected: FAIL - - [BluetoothRemoteGATTCharacteristic interface: operation writeValue(BufferSource)] - expected: FAIL - - [BluetoothRemoteGATTServer interface: operation getPrimaryService(BluetoothServiceUUID)] - expected: FAIL - - [BluetoothDevice interface: attribute oncharacteristicvaluechanged] - expected: FAIL - - [BluetoothAdvertisingEvent interface: event must inherit property "name" with the proper type] - expected: FAIL - - [BluetoothManufacturerDataMap interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [ValueEvent interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [Stringification of event] - expected: FAIL - - [Bluetooth interface: attribute ongattserverdisconnected] - expected: FAIL - - [ValueEvent interface: existence and properties of interface prototype object] - expected: FAIL - - [ValueEvent interface object length] - expected: FAIL - - [ValueEvent interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - - [ValueEvent interface: existence and properties of interface object] - expected: FAIL - - [BluetoothRemoteGATTCharacteristic interface: operation getDescriptors(BluetoothDescriptorUUID)] - expected: FAIL - - [Bluetooth interface: operation getAvailability()] - expected: FAIL - - [BluetoothRemoteGATTService interface: operation getIncludedService(BluetoothServiceUUID)] - expected: FAIL - - [BluetoothAdvertisingEvent interface: event must inherit property "rssi" with the proper type] - expected: FAIL - - [BluetoothAdvertisingEvent interface: event must inherit property "appearance" with the proper type] - expected: FAIL - - [BluetoothServiceDataMap interface: existence and properties of interface prototype object] - expected: FAIL - - [Bluetooth interface: navigator.bluetooth must inherit property "onserviceadded" with the proper type] - expected: FAIL - - [BluetoothDevice interface: attribute onserviceremoved] - expected: FAIL - - [BluetoothAdvertisingEvent interface: event must inherit property "device" with the proper type] - expected: FAIL - - [ValueEvent interface object name] - expected: FAIL - - [BluetoothRemoteGATTService interface: operation getCharacteristic(BluetoothCharacteristicUUID)] - expected: FAIL - - [BluetoothDevice interface: attribute onserviceadded] - expected: FAIL - - [Bluetooth interface: navigator.bluetooth must inherit property "referringDevice" with the proper type] - expected: FAIL - - [Bluetooth interface: navigator.bluetooth must inherit property "onservicechanged" with the proper type] - expected: FAIL - - [BluetoothServiceDataMap interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - - [BluetoothAdvertisingEvent interface: event must inherit property "serviceData" with the proper type] - expected: FAIL - - [BluetoothDevice interface: operation watchAdvertisements()] - expected: FAIL - - [Bluetooth interface: attribute oncharacteristicvaluechanged] - expected: FAIL - - [BluetoothRemoteGATTCharacteristic interface: operation writeValueWithResponse(BufferSource)] - expected: FAIL - - [BluetoothRemoteGATTCharacteristic interface: operation writeValueWithoutResponse(BufferSource)] - expected: FAIL - - [Bluetooth interface: navigator.bluetooth must inherit property "getDevices()" with the proper type] - expected: FAIL - - [Bluetooth interface: operation requestDevice(optional RequestDeviceOptions)] - expected: FAIL - - [BluetoothRemoteGATTCharacteristic interface: operation getDescriptors(optional BluetoothDescriptorUUID)] - expected: FAIL - - [Bluetooth interface: operation getDevices()] - expected: FAIL - - [BluetoothRemoteGATTService interface: operation getIncludedServices(optional BluetoothServiceUUID)] - expected: FAIL - - [BluetoothRemoteGATTServer interface: operation getPrimaryServices(optional BluetoothServiceUUID)] - expected: FAIL - - [BluetoothRemoteGATTService interface: operation getCharacteristics(optional BluetoothCharacteristicUUID)] - expected: FAIL - - [BluetoothDevice interface: operation watchAdvertisements(optional WatchAdvertisementsOptions)] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.window.js.ini deleted file mode 100644 index 34036491560..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-called-before.https.window.html] - [disconnect() called before getPrimaryService. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.window.js.ini deleted file mode 100644 index 4a74d99b1e5..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-called-during-error.https.window.html] - [disconnect() called during a getPrimaryService call that fails. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.window.js.ini deleted file mode 100644 index 03f447e8462..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-called-during-success.https.window.html] - [disconnect() called during a getPrimaryService call that succeeds. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.window.js.ini deleted file mode 100644 index fb3e2c0cf12..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-invalidates-objects.https.window.html] - [Calls on services after we disconnect and connect again. Should reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnected-device.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnected-device.https.window.js.ini deleted file mode 100644 index 4515495540d..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-disconnected-device.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnected-device.https.window.html] - [getPrimaryService called before connecting. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.window.js.ini deleted file mode 100644 index cb130fb03ef..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-discovery-complete-no-permission-absent-service.https.window.html] - [Request for absent service without permission. Should Reject with SecurityError even if services have been discovered already.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.window.js.ini deleted file mode 100644 index 2eb9fdd84de..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-discovery-complete-service-not-found.https.window.html] - [Request for absent service. Must reject with NotFoundError even when the services have previously been discovered.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.window.js.ini deleted file mode 100644 index ae1893e83e5..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-garbage-collection-ran-during-error.https.window.html] - [Garbage Collection ran during a getPrimaryService call that failed. Should not crash.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.window.js.ini deleted file mode 100644 index 1aab32c36c3..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-garbage-collection-ran-during-success.https.window.html] - [Garbage Collection ran during a getPrimaryService call that succeeds. Should not crash.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.window.js.ini deleted file mode 100644 index 131f50484b8..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-get-different-service-after-reconnection.https.window.html] - [Calls to getPrimaryService after a disconnection should return a different object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-get-same-object.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-get-same-object.https.window.js.ini deleted file mode 100644 index a5fbc9e8dc5..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-get-same-object.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-get-same-object.https.window.html] - [Calls to getPrimaryService should return the same object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.window.js.ini deleted file mode 100644 index 97e4de15dc7..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-invalid-service-name.https.window.html] - [Wrong Service name. Reject with TypeError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.window.js.ini deleted file mode 100644 index c790eddb45c..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-no-permission-absent-service.https.window.html] - [Request for absent service without permission. Reject with SecurityError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.window.js.ini deleted file mode 100644 index 990b50c318b..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-no-permission-for-any-service.https.window.html] - [Request for present service without permission to access any service. Reject with SecurityError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.window.js.ini deleted file mode 100644 index b7033c7aca2..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-no-permission-present-service.https.window.html] - [Request for present service without permission. Reject with SecurityError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-service-not-found.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-service-not-found.https.window.js.ini deleted file mode 100644 index 7c3074a6086..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryService/gen-service-not-found.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-not-found.https.window.html] - [Request for absent service. Reject with NotFoundError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.window.js.ini deleted file mode 100644 index ceb15fb9158..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-called-before-with-uuid.https.window.html] - [disconnect() called before getPrimaryServices. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.window.js.ini deleted file mode 100644 index c306c71a357..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-called-before.https.window.html] - [disconnect() called before getPrimaryServices. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.window.js.ini deleted file mode 100644 index 24a53520e73..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-called-during-error-with-uuid.https.window.html] - [disconnect() called during a getPrimaryServices call that fails. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.window.js.ini deleted file mode 100644 index 82c7d94c882..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-called-during-error.https.window.html] - [disconnect() called during a getPrimaryServices call that fails. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.window.js.ini deleted file mode 100644 index 312f0fbad9a..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-called-during-success-with-uuid.https.window.html] - [disconnect() called during a getPrimaryServices call that succeeds. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.window.js.ini deleted file mode 100644 index 6c63b12d8b2..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-called-during-success.https.window.html] - [disconnect() called during a getPrimaryServices call that succeeds. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.window.js.ini deleted file mode 100644 index 711bb4c18e7..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-invalidates-objects-with-uuid.https.window.html] - [Calls on services after we disconnect and connect again. Should reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.window.js.ini deleted file mode 100644 index fb3e2c0cf12..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnect-invalidates-objects.https.window.html] - [Calls on services after we disconnect and connect again. Should reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.window.js.ini deleted file mode 100644 index e6f7d7885ef..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnected-device-with-uuid.https.window.html] - [getPrimaryServices called before connecting. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.window.js.ini deleted file mode 100644 index f3339275113..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-disconnected-device.https.window.html] - [getPrimaryServices called before connecting. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.js.ini deleted file mode 100644 index ceb1d394efb..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.html] - [Request for absent service without permission. Should Reject with SecurityError even if services have been discovered already.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.window.js.ini deleted file mode 100644 index c987da10e00..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-discovery-complete-service-not-found-with-uuid.https.window.html] - [Request for absent service. Must reject with NotFoundError even when the services have previously been discovered.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.window.js.ini deleted file mode 100644 index 81f7a5a79b3..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-garbage-collection-ran-during-error-with-uuid.https.window.html] - [Garbage Collection ran during a getPrimaryServices call that failed. Should not crash.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.window.js.ini deleted file mode 100644 index f70f0b63124..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-garbage-collection-ran-during-error.https.window.html] - [Garbage Collection ran during a getPrimaryServices call that failed. Should not crash.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.window.js.ini deleted file mode 100644 index 65c5c0eecbf..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-garbage-collection-ran-during-success-with-uuid.https.window.html] - [Garbage Collection ran during a getPrimaryServices call that succeeds. Should not crash.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.window.js.ini deleted file mode 100644 index 7959c977b2a..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-garbage-collection-ran-during-success.https.window.html] - [Garbage Collection ran during a getPrimaryServices call that succeeds. Should not crash.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.window.js.ini deleted file mode 100644 index aa941fe452c..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-get-different-service-after-reconnection-with-uuid.https.window.html] - [Calls to getPrimaryServices after a disconnection should return a different object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.window.js.ini deleted file mode 100644 index c568b1e70b9..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-get-different-service-after-reconnection.https.window.html] - [Calls to getPrimaryServices after a disconnection should return a different object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.window.js.ini deleted file mode 100644 index 7b33003b1e1..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-get-same-object-with-uuid.https.window.html] - [Calls to getPrimaryServices should return the same object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-same-object.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-same-object.https.window.js.ini deleted file mode 100644 index f918c020d7b..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-get-same-object.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-get-same-object.https.window.html] - [Calls to getPrimaryServices should return the same object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.window.js.ini deleted file mode 100644 index 97e4de15dc7..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-invalid-service-name.https.window.html] - [Wrong Service name. Reject with TypeError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.window.js.ini deleted file mode 100644 index aa0229428b8..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-no-permission-absent-service-with-uuid.https.window.html] - [Request for absent service without permission. Reject with SecurityError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.window.js.ini deleted file mode 100644 index 79d9cd78fe4..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-no-permission-for-any-service-with-uuid.https.window.html] - [Request for present service without permission to access any service. Reject with SecurityError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.window.js.ini deleted file mode 100644 index 990b50c318b..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-no-permission-for-any-service.https.window.html] - [Request for present service without permission to access any service. Reject with SecurityError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.window.js.ini deleted file mode 100644 index 7cbc7d5b499..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-no-permission-present-service-with-uuid.https.window.html] - [Request for present service without permission. Reject with SecurityError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.window.js.ini deleted file mode 100644 index e931f86fd76..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-not-found-with-uuid.https.window.html] - [Request for absent service. Reject with NotFoundError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-blocklisted-characteristic.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-blocklisted-characteristic.https.window.js.ini deleted file mode 100644 index 2f98d5da0d3..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-blocklisted-characteristic.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-blocklisted-characteristic.https.window.html] - [Serial Number String characteristic is blocklisted. Should reject with SecurityError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-characteristic-not-found.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-characteristic-not-found.https.window.js.ini deleted file mode 100644 index 45d32574c9c..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-characteristic-not-found.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-not-found.https.window.html] - [Request for absent characteristics with UUID. Reject with NotFoundError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.window.js.ini deleted file mode 100644 index b8f96bbc75f..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-garbage-collection-ran-during-error.https.window.html] - [Garbage Collection ran during getCharacteristic call that fails. Should not crash] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-get-same-object.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-get-same-object.https.window.js.ini deleted file mode 100644 index 76e58651387..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-get-same-object.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-get-same-object.https.window.html] - [Calls to getCharacteristic should return the same object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-invalid-characteristic-name.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-invalid-characteristic-name.https.window.js.ini deleted file mode 100644 index 77fe3cb4170..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-invalid-characteristic-name.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-invalid-characteristic-name.https.window.html] - [Wrong Characteristic name. Reject with TypeError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-reconnect-during.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-reconnect-during.https.window.js.ini deleted file mode 100644 index b1651b829bf..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-reconnect-during.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-reconnect-during.https.window.html] - [disconnect() and connect() called during getCharacteristic. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-service-is-removed.https.window.js.ini deleted file mode 100644 index 18c89a7dca4..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristic/gen-service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-is-removed.https.window.html] - [Service is removed before getCharacteristic call. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.window.js.ini deleted file mode 100644 index de155411237..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-blocklisted-characteristic-with-uuid.https.window.html] - [Serial Number String characteristic is blocklisted. Should reject with SecurityError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.window.js.ini deleted file mode 100644 index 7312e44b568..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-characteristic-not-found-with-uuid.https.window.html] - [Request for absent characteristics with UUID. Reject with NotFoundError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.window.js.ini deleted file mode 100644 index baa2c60a65f..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-garbage-collection-ran-during-error-with-uuid.https.window.html] - [Garbage Collection ran during getCharacteristics call that fails. Should not crash] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.window.js.ini deleted file mode 100644 index 0bb21aebfd6..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-garbage-collection-ran-during-error.https.window.html] - [Garbage Collection ran during getCharacteristics call that fails. Should not crash] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-get-same-object-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-get-same-object-with-uuid.https.window.js.ini deleted file mode 100644 index 9e5eee8d71c..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-get-same-object-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-get-same-object-with-uuid.https.window.html] - [Calls to getCharacteristics should return the same object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-get-same-object.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-get-same-object.https.window.js.ini deleted file mode 100644 index 6b63ba87fef..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-get-same-object.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-get-same-object.https.window.html] - [Calls to getCharacteristics should return the same object.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-invalid-characteristic-name.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-invalid-characteristic-name.https.window.js.ini deleted file mode 100644 index 77fe3cb4170..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-invalid-characteristic-name.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-invalid-characteristic-name.https.window.html] - [Wrong Characteristic name. Reject with TypeError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-reconnect-during-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-reconnect-during-with-uuid.https.window.js.ini deleted file mode 100644 index 87a6ae1e91a..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-reconnect-during-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-reconnect-during-with-uuid.https.window.html] - [disconnect() and connect() called during getCharacteristics. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-reconnect-during.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-reconnect-during.https.window.js.ini deleted file mode 100644 index ab2a94dab3c..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-reconnect-during.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-reconnect-during.https.window.html] - [disconnect() and connect() called during getCharacteristics. Reject with NetworkError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.js.ini deleted file mode 100644 index 380115923b9..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-is-removed-with-uuid.https.window.html] - [Service is removed before getCharacteristics call. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-service-is-removed.https.window.js.ini b/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-service-is-removed.https.window.js.ini deleted file mode 100644 index 665b3871e29..00000000000 --- a/tests/wpt/meta-legacy-layout/bluetooth/service/getCharacteristics/gen-service-is-removed.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[gen-service-is-removed.https.window.html] - [Service is removed before getCharacteristics call. Reject with InvalidStateError.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/font-display/font-display-preload.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/font-display/font-display-preload.html.ini index 6f9ac1c935f..e3d080a6d44 100644 --- a/tests/wpt/meta-legacy-layout/css/css-fonts/font-display/font-display-preload.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/font-display/font-display-preload.html.ini @@ -1,3 +1,3 @@ [font-display-preload.html] bug: https://github.com/servo/servo/issues/21566 - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini index a15fedd463b..3cc0d197a80 100644 --- a/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/generic-family-keywords-001.html.ini @@ -31,3 +31,9 @@ [@font-face matching for quoted and unquoted fantasy] expected: FAIL + + [@font-face matching for quoted and unquoted sans-serif] + expected: FAIL + + [@font-face matching for quoted and unquoted system-ui] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-alpha.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-alpha.https.html.ini index bbda3eb5c04..58fc6a0d970 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-alpha.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-alpha.https.html.ini @@ -1,2 +1,2 @@ [background-image-alpha.https.html] - expected: PASS + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-multiple.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-multiple.https.html.ini new file mode 100644 index 00000000000..5105718061d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-multiple.https.html.ini @@ -0,0 +1,2 @@ +[background-image-multiple.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-tiled.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-tiled.https.html.ini index 10e6dc50956..c53beb59870 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-tiled.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/background-image-tiled.https.html.ini @@ -1,3 +1,3 @@ [background-image-tiled.https.html] type: reftest - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/background-repeat-x.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/background-repeat-x.https.html.ini new file mode 100644 index 00000000000..2026c53d4f8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/background-repeat-x.https.html.ini @@ -0,0 +1,2 @@ +[background-repeat-x.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/color-custom-property-animation.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/color-custom-property-animation.https.html.ini index 9ef6d9450c5..49387717a2b 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/color-custom-property-animation.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/color-custom-property-animation.https.html.ini @@ -1,2 +1,2 @@ [color-custom-property-animation.https.html] - expected: TIMEOUT + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-001.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-001.https.html.ini new file mode 100644 index 00000000000..345acad1c69 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-001.https.html.ini @@ -0,0 +1,2 @@ +[geometry-background-image-001.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-002.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-002.https.html.ini new file mode 100644 index 00000000000..c733b5aa509 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-002.https.html.ini @@ -0,0 +1,2 @@ +[geometry-background-image-002.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-001.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-001.https.html.ini new file mode 100644 index 00000000000..724d0ee4c9c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-001.https.html.ini @@ -0,0 +1,2 @@ +[geometry-background-image-tiled-001.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-002.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-002.https.html.ini index 7ab091c56e7..3de2c084af5 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-002.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-002.https.html.ini @@ -1,2 +1,2 @@ [geometry-background-image-tiled-002.https.html] - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-003.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-003.https.html.ini index 055a7ac770f..b077acbc024 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-003.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-background-image-tiled-003.https.html.ini @@ -1,2 +1,2 @@ [geometry-background-image-tiled-003.https.html] - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-001.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-001.https.html.ini index 0d766fd36f5..b06534035f2 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-001.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-001.https.html.ini @@ -1,2 +1,2 @@ [geometry-border-image-001.https.html] - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-002.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-002.https.html.ini index 3f89d30c761..83b4b2face5 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-002.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-002.https.html.ini @@ -1,2 +1,2 @@ [geometry-border-image-002.https.html] - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-003.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-003.https.html.ini index 7e8b73d0c1a..06b91601f14 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-003.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-003.https.html.ini @@ -1,2 +1,2 @@ [geometry-border-image-003.https.html] - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-004.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-004.https.html.ini new file mode 100644 index 00000000000..a7e0e8a5bf9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-004.https.html.ini @@ -0,0 +1,2 @@ +[geometry-border-image-004.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-005.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-005.https.html.ini new file mode 100644 index 00000000000..30ee29c89fc --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-border-image-005.https.html.ini @@ -0,0 +1,2 @@ +[geometry-border-image-005.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-with-float-size.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-with-float-size.https.html.ini index 0531826fde8..47eb89029a5 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-with-float-size.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/geometry-with-float-size.https.html.ini @@ -1,3 +1,3 @@ [geometry-with-float-size.https.html] type: reftest - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/canvas-reset.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/canvas-reset.https.html.ini new file mode 100644 index 00000000000..a55b9cc8012 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/canvas-reset.https.html.ini @@ -0,0 +1,2 @@ +[canvas-reset.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/canvas-transform.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/canvas-transform.https.html.ini index 3950118e711..f24e9813505 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/canvas-transform.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/canvas-transform.https.html.ini @@ -1,2 +1,2 @@ [canvas-transform.https.html] - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/device-pixel-ratio.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/device-pixel-ratio.https.html.ini index 7954ffb5449..65354a69a37 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/device-pixel-ratio.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/hidpi/device-pixel-ratio.https.html.ini @@ -1,3 +1,3 @@ [device-pixel-ratio.https.html] type: reftest - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-constructor-error.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-constructor-error.https.html.ini new file mode 100644 index 00000000000..2a61eacfab3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-constructor-error.https.html.ini @@ -0,0 +1,2 @@ +[invalid-image-constructor-error.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-paint-error.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-paint-error.https.html.ini new file mode 100644 index 00000000000..50bbb286f63 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-paint-error.https.html.ini @@ -0,0 +1,2 @@ +[invalid-image-paint-error.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-pending-script.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-pending-script.https.html.ini new file mode 100644 index 00000000000..3cfc38c10fd --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/invalid-image-pending-script.https.html.ini @@ -0,0 +1,2 @@ +[invalid-image-pending-script.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/non-registered-property-value.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/non-registered-property-value.https.html.ini new file mode 100644 index 00000000000..4ed81cc06ad --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/non-registered-property-value.https.html.ini @@ -0,0 +1,2 @@ +[non-registered-property-value.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/one-custom-property-animation-half-opaque.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/one-custom-property-animation-half-opaque.https.html.ini index 36a28f406c8..56619824e4e 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/one-custom-property-animation-half-opaque.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/one-custom-property-animation-half-opaque.https.html.ini @@ -1,2 +1,2 @@ [one-custom-property-animation-half-opaque.https.html] - expected: TIMEOUT + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/overdraw.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/overdraw.https.html.ini new file mode 100644 index 00000000000..47dce433f71 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/overdraw.https.html.ini @@ -0,0 +1,2 @@ +[overdraw.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-arguments.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-arguments.https.html.ini index 0eba91a07d6..db163b4c35f 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-arguments.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-arguments.https.html.ini @@ -1,2 +1,2 @@ [paint-arguments.https.html] - expected: PASS + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-arguments-var.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-arguments-var.https.html.ini index b09f8785f58..d41dbc6c82a 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-arguments-var.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-arguments-var.https.html.ini @@ -1,2 +1,2 @@ [paint-function-arguments-var.https.html] - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-arguments.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-arguments.https.html.ini index 6fda875036d..7d5d6e38be0 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-arguments.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-arguments.https.html.ini @@ -1,2 +1,2 @@ [paint-function-arguments.https.html] - expected: PASS + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-this-value.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-this-value.https.html.ini new file mode 100644 index 00000000000..c7e6ff24bbb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint-function-this-value.https.html.ini @@ -0,0 +1,2 @@ +[paint-function-this-value.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-canvasFilter.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-canvasFilter.tentative.https.html.ini new file mode 100644 index 00000000000..fc8edae93dd --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-canvasFilter.tentative.https.html.ini @@ -0,0 +1,2 @@ +[paint2d-canvasFilter.tentative.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-composite.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-composite.https.html.ini index 258d95acd97..d9f8adf47c3 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-composite.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-composite.https.html.ini @@ -1,2 +1,2 @@ [paint2d-composite.https.html] - expected: [PASS, TIMEOUT] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-conicGradient.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-conicGradient.https.html.ini new file mode 100644 index 00000000000..acbfdc97008 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-conicGradient.https.html.ini @@ -0,0 +1,2 @@ +[paint2d-conicGradient.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-filter.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-filter.https.html.ini index dbbf60bf2de..1378c3b32c5 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-filter.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-filter.https.html.ini @@ -1,2 +1,2 @@ [paint2d-filter.https.html] - expected: [PASS, TIMEOUT] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-gradient.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-gradient.https.html.ini new file mode 100644 index 00000000000..fd273875788 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-gradient.https.html.ini @@ -0,0 +1,2 @@ +[paint2d-gradient.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-image.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-image.https.html.ini new file mode 100644 index 00000000000..bb15a16f2c2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-image.https.html.ini @@ -0,0 +1,2 @@ +[paint2d-image.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-paths.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-paths.https.html.ini index fb29c86afa2..7fb82910fcc 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-paths.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-paths.https.html.ini @@ -1,4 +1,4 @@ [paint2d-paths.https.html] type: reftest bug: https://github.com/servo/servo/issues/17597 - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-rects.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-rects.https.html.ini new file mode 100644 index 00000000000..c2741649c9d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-rects.https.html.ini @@ -0,0 +1,2 @@ +[paint2d-rects.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-reset.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-reset.https.html.ini new file mode 100644 index 00000000000..0b5d9be245f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-reset.https.html.ini @@ -0,0 +1,2 @@ +[paint2d-reset.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-roundRect.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-roundRect.https.html.ini new file mode 100644 index 00000000000..718b843baaa --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-roundRect.https.html.ini @@ -0,0 +1,2 @@ +[paint2d-roundRect.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-shadows.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-shadows.https.html.ini new file mode 100644 index 00000000000..111386c79a3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-shadows.https.html.ini @@ -0,0 +1,2 @@ +[paint2d-shadows.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-transform.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-transform.https.html.ini new file mode 100644 index 00000000000..7e77a4b5239 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/paint2d-transform.https.html.ini @@ -0,0 +1,2 @@ +[paint2d-transform.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-001.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-001.https.html.ini new file mode 100644 index 00000000000..8c575d90457 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-001.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-001.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-002.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-002.https.html.ini index 86d08faea46..29b61ebe7e6 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-002.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-002.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-002.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-003.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-003.https.html.ini index 6262474d196..b611dd00c86 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-003.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-003.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-003.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-004.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-004.https.html.ini new file mode 100644 index 00000000000..6a2fd730063 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-004.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-004.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-005.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-005.https.html.ini index 56c27026efc..d7c21139146 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-005.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-005.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-005.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-006.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-006.https.html.ini index 5329501fd03..395996e3e17 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-006.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-006.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-006.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-007.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-007.https.html.ini new file mode 100644 index 00000000000..48916610dd6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-007.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-007.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-008.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-008.https.html.ini index 0511e68318d..3fe1da65bf9 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-008.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-008.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-008.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-009.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-009.https.html.ini index ae92e1907f7..68b1e418480 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-009.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-009.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-009.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-010.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-010.https.html.ini index e9ca37a27e1..67d300f28dd 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-010.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-010.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-010.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-011.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-011.https.html.ini index b6e0272ac24..1040753e6a8 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-011.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-011.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-011.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-012.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-012.https.html.ini index 927fd4189bc..a491061f09b 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-012.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-012.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-012.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-013.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-013.https.html.ini new file mode 100644 index 00000000000..72a7814615a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-013.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-013.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-014.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-014.https.html.ini new file mode 100644 index 00000000000..9c740fade41 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-014.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-014.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-015.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-015.https.html.ini new file mode 100644 index 00000000000..2da534683b5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-015.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-015.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-016.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-016.https.html.ini index 685d1f18027..6723b5c1757 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-016.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-016.https.html.ini @@ -1,3 +1,4 @@ [parse-input-arguments-016.https.html] type: reftest bug: https://github.com/servo/servo/issues/17852 + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-017.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-017.https.html.ini new file mode 100644 index 00000000000..96bfc090656 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-017.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-017.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-018.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-018.https.html.ini index 63f6daf4cf9..5ee11a9c995 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-018.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-018.https.html.ini @@ -1,3 +1,3 @@ [parse-input-arguments-018.https.html] type: reftest - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-019.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-019.https.html.ini new file mode 100644 index 00000000000..63e16db6356 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-019.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-019.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-020.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-020.https.html.ini new file mode 100644 index 00000000000..804459aec12 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-020.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-020.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-021.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-021.https.html.ini new file mode 100644 index 00000000000..a8f25bcb50e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-021.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-021.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-022.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-022.https.html.ini new file mode 100644 index 00000000000..7d7eedf9102 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parse-input-arguments-022.https.html.ini @@ -0,0 +1,2 @@ +[parse-input-arguments-022.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/parsing/paint-function-valid.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/parsing/paint-function-valid.https.html.ini new file mode 100644 index 00000000000..ce8f07764e6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/parsing/paint-function-valid.https.html.ini @@ -0,0 +1,2 @@ +[paint-function-valid.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/registered-property-invalidation-001.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/registered-property-invalidation-001.https.html.ini index 28e3a2598b3..d93d27be128 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/registered-property-invalidation-001.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/registered-property-invalidation-001.https.html.ini @@ -1,2 +1,2 @@ [registered-property-invalidation-001.https.html] - expected: TIMEOUT + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/registered-property-invalidation-002.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/registered-property-invalidation-002.https.html.ini index 7640246ac79..ee803d2f267 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/registered-property-invalidation-002.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/registered-property-invalidation-002.https.html.ini @@ -1,2 +1,2 @@ [registered-property-invalidation-002.https.html] - expected: TIMEOUT + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/roundrect.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/roundrect.https.html.ini new file mode 100644 index 00000000000..a699234f856 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/roundrect.https.html.ini @@ -0,0 +1,2 @@ +[roundrect.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-001.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-001.https.html.ini new file mode 100644 index 00000000000..376397625f8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-001.https.html.ini @@ -0,0 +1,2 @@ +[setTransform-001.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-002.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-002.https.html.ini new file mode 100644 index 00000000000..184addaf0fa --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-002.https.html.ini @@ -0,0 +1,2 @@ +[setTransform-002.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-003.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-003.https.html.ini new file mode 100644 index 00000000000..2bef72de0ef --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-003.https.html.ini @@ -0,0 +1,2 @@ +[setTransform-003.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-004.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-004.https.html.ini new file mode 100644 index 00000000000..cc9a70a21f0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/setTransform-004.https.html.ini @@ -0,0 +1,2 @@ +[setTransform-004.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/style-background-image.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/style-background-image.https.html.ini index 68e44c7adff..73b213324cf 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/style-background-image.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/style-background-image.https.html.ini @@ -1,4 +1,4 @@ [style-background-image.https.html] type: reftest bug: https://github.com/servo/servo/issues/17378 - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/style-before-pseudo.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/style-before-pseudo.https.html.ini index ffc394d3523..20081c8b1b5 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/style-before-pseudo.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/style-before-pseudo.https.html.ini @@ -1,4 +1,4 @@ [style-before-pseudo.https.html] type: reftest bug: https://github.com/servo/servo/issues/17854 - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/style-first-letter-pseudo.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/style-first-letter-pseudo.https.html.ini index 13928f3491f..ec9fb10ff97 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/style-first-letter-pseudo.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/style-first-letter-pseudo.https.html.ini @@ -1,4 +1,4 @@ [style-first-letter-pseudo.https.html] type: reftest bug: https://github.com/servo/servo/issues/17854 - expected: FAIL + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/top-level-await.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/top-level-await.https.html.ini index 92d137159e7..e60709acff0 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/top-level-await.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/top-level-await.https.html.ini @@ -1,2 +1,2 @@ [top-level-await.https.html] - expected: TIMEOUT + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/two-custom-property-animation.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/two-custom-property-animation.https.html.ini index 95d38aed5ec..d1e0c554fb1 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/two-custom-property-animation.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/two-custom-property-animation.https.html.ini @@ -1,2 +1,2 @@ [two-custom-property-animation.https.html] - expected: TIMEOUT + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/two-element-custom-property-animation.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/two-element-custom-property-animation.https.html.ini index 04f23eae3e6..6475c9e75cc 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/two-element-custom-property-animation.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/two-element-custom-property-animation.https.html.ini @@ -1,2 +1,2 @@ [two-element-custom-property-animation.https.html] - expected: TIMEOUT + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/two-element-one-custom-property-animation.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/two-element-one-custom-property-animation.https.html.ini index 371214024e6..4fba903d655 100644 --- a/tests/wpt/meta-legacy-layout/css/css-paint-api/two-element-one-custom-property-animation.https.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/two-element-one-custom-property-animation.https.html.ini @@ -1,2 +1,2 @@ [two-element-one-custom-property-animation.https.html] - expected: TIMEOUT + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/valid-image-after-load.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/valid-image-after-load.https.html.ini new file mode 100644 index 00000000000..d6133c8d50d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/valid-image-after-load.https.html.ini @@ -0,0 +1,2 @@ +[valid-image-after-load.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-paint-api/valid-image-before-load.https.html.ini b/tests/wpt/meta-legacy-layout/css/css-paint-api/valid-image-before-load.https.html.ini new file mode 100644 index 00000000000..f04a20c9704 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-paint-api/valid-image-before-load.https.html.ini @@ -0,0 +1,2 @@ +[valid-image-before-load.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-check-pseudo-element.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-check-pseudo-element.tentative.html.ini new file mode 100644 index 00000000000..062a58a6e3f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-check-pseudo-element.tentative.html.ini @@ -0,0 +1,2 @@ +[the-check-pseudo-element.tentative.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-select-arrow-pseudo-element.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-select-arrow-pseudo-element.tentative.html.ini new file mode 100644 index 00000000000..a4c4197b59b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-pseudo/parsing/the-select-arrow-pseudo-element.tentative.html.ini @@ -0,0 +1,2 @@ +[the-select-arrow-pseudo-element.tentative.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini b/tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini new file mode 100644 index 00000000000..35256741d38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-sizing/dynamic-available-size-iframe.html.ini @@ -0,0 +1,2 @@ +[dynamic-available-size-iframe.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-1.html.ini b/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-1.html.ini deleted file mode 100644 index 5c9d7ecf7ea..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-1.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[block-height-1.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-2.html.ini b/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-2.html.ini deleted file mode 100644 index 8e53e770c55..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-sizing/stretch/block-height-2.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[block-height-2.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini index 7740512e55a..6f892476042 100644 --- a/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-values/attr-all-types.html.ini @@ -128,9 +128,6 @@ [CSS Values and Units Test: attr 48] expected: FAIL - [CSS Values and Units Test: attr 49] - expected: FAIL - [CSS Values and Units Test: attr 50] expected: FAIL @@ -194,12 +191,6 @@ [CSS Values and Units Test: attr 70] expected: FAIL - [CSS Values and Units Test: attr 81] - expected: FAIL - - [CSS Values and Units Test: attr 82] - expected: FAIL - [CSS Values and Units Test: attr 29] expected: FAIL @@ -209,11 +200,35 @@ [CSS Values and Units Test: attr 71] expected: FAIL - [CSS Values and Units Test: attr 83] - expected: FAIL - [CSS Values and Units Test: attr 72] expected: FAIL - [CSS Values and Units Test: attr 84] + [CSS Values and Units Test: attr 73] + expected: FAIL + + [CSS Values and Units Test: attr 74] + expected: FAIL + + [CSS Values and Units Test: attr 75] + expected: FAIL + + [CSS Values and Units Test: attr 76] + expected: FAIL + + [CSS Values and Units Test: attr 77] + expected: FAIL + + [CSS Values and Units Test: attr 78] + expected: FAIL + + [CSS Values and Units Test: attr 87] + expected: FAIL + + [CSS Values and Units Test: attr 88] + expected: FAIL + + [CSS Values and Units Test: attr 89] + expected: FAIL + + [CSS Values and Units Test: attr 90] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/Node-moveBefore.html.ini b/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/Node-moveBefore.html.ini index 2367a13b58b..512122b1b41 100644 --- a/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/Node-moveBefore.html.ini +++ b/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/Node-moveBefore.html.ini @@ -160,3 +160,9 @@ [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-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini index 24a4ca9fd4d..27d4c7ee611 100644 --- a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/css-font-face.sub.tentative.html.ini @@ -43,3 +43,6 @@ [sec-fetch-user - Not sent to non-trustworthy same-site destination] expected: FAIL + + [sec-fetch-mode - Not sent to non-trustworthy same-site destination] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/element-picture.https.sub.html.ini b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/element-picture.https.sub.html.ini index 52ed63dcbab..0349b9df725 100644 --- a/tests/wpt/meta-legacy-layout/fetch/metadata/generated/element-picture.https.sub.html.ini +++ b/tests/wpt/meta-legacy-layout/fetch/metadata/generated/element-picture.https.sub.html.ini @@ -73,3 +73,12 @@ [sec-fetch-mode - source[srcset\] - attributes: crossorigin=use-credentials] expected: FAIL + + [sec-fetch-mode - img[srcset\] - attributes: crossorigin] + expected: FAIL + + [sec-fetch-mode - source[srcset\] - attributes: crossorigin=anonymous] + expected: FAIL + + [sec-fetch-mode - img[srcset\] - attributes: crossorigin=use-credentials] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/range/blob.any.js.ini b/tests/wpt/meta-legacy-layout/fetch/range/blob.any.js.ini index 351a5ed37be..0ac3fd4cfa3 100644 --- a/tests/wpt/meta-legacy-layout/fetch/range/blob.any.js.ini +++ b/tests/wpt/meta-legacy-layout/fetch/range/blob.any.js.ini @@ -1,19 +1,4 @@ [blob.any.worker.html] - [A simple blob range request.] - expected: FAIL - - [A blob range request with no end.] - expected: FAIL - - [A blob range request with no start.] - expected: FAIL - - [A simple blob range request with whitespace.] - expected: FAIL - - [Blob content with short content and a large range end] - expected: FAIL - [Blob range request with multiple range values] expected: FAIL @@ -65,9 +50,6 @@ [Blob range with whitespace around equals sign] expected: FAIL - [Blob content with short content and a range end matching content length] - expected: FAIL - [Blob range with no value] expected: FAIL @@ -88,21 +70,6 @@ [blob.any.html] - [A simple blob range request.] - expected: FAIL - - [A blob range request with no end.] - expected: FAIL - - [A blob range request with no start.] - expected: FAIL - - [A simple blob range request with whitespace.] - expected: FAIL - - [Blob content with short content and a large range end] - expected: FAIL - [Blob range request with multiple range values] expected: FAIL @@ -154,9 +121,6 @@ [Blob range with whitespace around equals sign] expected: FAIL - [Blob content with short content and a range end matching content length] - expected: FAIL - [Blob range with no value] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/activeelement-after-calling-window-focus.sub.html.ini b/tests/wpt/meta-legacy-layout/focus/activeelement-after-calling-window-focus.sub.html.ini new file mode 100644 index 00000000000..e63caa7f33e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/activeelement-after-calling-window-focus.sub.html.ini @@ -0,0 +1,15 @@ +[activeelement-after-calling-window-focus.sub.html] + [Tests for all frames are in same origin] + expected: FAIL + + [Tests for middle frame and inner frame are in same origin and outer frame is in different origin] + expected: FAIL + + [Tests for outer frame and middle frame are in same origin and inner frame is in different origin] + expected: FAIL + + [Tests for outer frame and inner frame are in same origin and middle frame is in different origin] + expected: FAIL + + [Tests for all frames are in different origin] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe-contentwindow.html.ini b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe-contentwindow.html.ini new file mode 100644 index 00000000000..b52e5da7037 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe-contentwindow.html.ini @@ -0,0 +1,6 @@ +[activeelement-after-focusing-different-site-iframe-contentwindow.html] + [Check trailing events] + expected: FAIL + + [Check result] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini new file mode 100644 index 00000000000..8f3aec5177f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html.ini @@ -0,0 +1,3 @@ +[activeelement-after-focusing-different-site-iframe-then-immediately-focusing-back.html] + [Check focus event and active element after focusing different site iframe then immediately focusing back] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe.html.ini b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe.html.ini new file mode 100644 index 00000000000..b489ab52a39 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-different-site-iframe.html.ini @@ -0,0 +1,3 @@ +[activeelement-after-focusing-different-site-iframe.html] + [Check trailing events] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini new file mode 100644 index 00000000000..5864035c9e1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-same-site-iframe-contentwindow.html.ini @@ -0,0 +1,2 @@ +[activeelement-after-focusing-same-site-iframe-contentwindow.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-same-site-iframe.html.ini b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-same-site-iframe.html.ini new file mode 100644 index 00000000000..406e6a58324 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/activeelement-after-focusing-same-site-iframe.html.ini @@ -0,0 +1,3 @@ +[activeelement-after-focusing-same-site-iframe.html] + [Check trailing events] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini b/tests/wpt/meta-legacy-layout/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini new file mode 100644 index 00000000000..532cbcbabfe --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html.ini @@ -0,0 +1,2 @@ +[activeelement-after-immediately-focusing-different-site-iframe-contentwindow.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini b/tests/wpt/meta-legacy-layout/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini new file mode 100644 index 00000000000..8483775c0c1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html.ini @@ -0,0 +1,2 @@ +[activeelement-after-immediately-focusing-same-site-iframe-contentwindow.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/focus/focus-centers-element.html.ini b/tests/wpt/meta-legacy-layout/focus/focus-centers-element.html.ini new file mode 100644 index 00000000000..b87c94d82ac --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/focus-centers-element.html.ini @@ -0,0 +1,3 @@ +[focus-centers-element.html] + [Element.focus() center in both directions] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/focus-event-after-focusing-iframes.html.ini b/tests/wpt/meta-legacy-layout/focus/focus-event-after-focusing-iframes.html.ini new file mode 100644 index 00000000000..438ee8e4c27 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/focus-event-after-focusing-iframes.html.ini @@ -0,0 +1,6 @@ +[focus-event-after-focusing-iframes.html] + [Check focus event after focusing different site iframe] + expected: FAIL + + [Check focus event after focusing same site iframe] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/focus-event-after-iframe-gets-focus.html.ini b/tests/wpt/meta-legacy-layout/focus/focus-event-after-iframe-gets-focus.html.ini new file mode 100644 index 00000000000..44a2e330f05 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/focus-event-after-iframe-gets-focus.html.ini @@ -0,0 +1,9 @@ +[focus-event-after-iframe-gets-focus.html] + [Check focus event after same site iframe gets focus] + expected: FAIL + + [Check focus event after different site iframe gets focus] + expected: FAIL + + [Check focus event after innermost different site iframe gets focus] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/focus-restoration-in-different-site-iframes-window.html.ini b/tests/wpt/meta-legacy-layout/focus/focus-restoration-in-different-site-iframes-window.html.ini new file mode 100644 index 00000000000..8bdcea27053 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/focus-restoration-in-different-site-iframes-window.html.ini @@ -0,0 +1,2 @@ +[focus-restoration-in-different-site-iframes-window.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/focus/focus-restoration-in-different-site-iframes.html.ini b/tests/wpt/meta-legacy-layout/focus/focus-restoration-in-different-site-iframes.html.ini new file mode 100644 index 00000000000..928c1bad572 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/focus-restoration-in-different-site-iframes.html.ini @@ -0,0 +1,3 @@ +[focus-restoration-in-different-site-iframes.html] + [Check result] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/focus-restoration-in-same-site-iframes-window.html.ini b/tests/wpt/meta-legacy-layout/focus/focus-restoration-in-same-site-iframes-window.html.ini new file mode 100644 index 00000000000..53f4db35f7e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/focus-restoration-in-same-site-iframes-window.html.ini @@ -0,0 +1,2 @@ +[focus-restoration-in-same-site-iframes-window.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/focus/hasfocus-different-site.html.ini b/tests/wpt/meta-legacy-layout/focus/hasfocus-different-site.html.ini new file mode 100644 index 00000000000..536338242d5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/hasfocus-different-site.html.ini @@ -0,0 +1,3 @@ +[hasfocus-different-site.html] + [Check result] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/hasfocus-same-site.html.ini b/tests/wpt/meta-legacy-layout/focus/hasfocus-same-site.html.ini new file mode 100644 index 00000000000..d91b9c59c17 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/hasfocus-same-site.html.ini @@ -0,0 +1,3 @@ +[hasfocus-same-site.html] + [Check result] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/iframe-activeelement-after-focusing-out-iframes.html.ini b/tests/wpt/meta-legacy-layout/focus/iframe-activeelement-after-focusing-out-iframes.html.ini new file mode 100644 index 00000000000..714c3a19601 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/iframe-activeelement-after-focusing-out-iframes.html.ini @@ -0,0 +1,6 @@ +[iframe-activeelement-after-focusing-out-iframes.html] + [Check iframe activeElement after focusing out different site iframe] + expected: FAIL + + [Check iframe activeElement after focusing out same site iframe] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/iframe-contentwindow-focus-with-different-site-intermediate-frame.html.ini b/tests/wpt/meta-legacy-layout/focus/iframe-contentwindow-focus-with-different-site-intermediate-frame.html.ini new file mode 100644 index 00000000000..0a09915f1e9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/iframe-contentwindow-focus-with-different-site-intermediate-frame.html.ini @@ -0,0 +1,3 @@ +[iframe-contentwindow-focus-with-different-site-intermediate-frame.html] + [Check result] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/iframe-contentwindow-focus-with-same-as-top-intermediate-frame.html.ini b/tests/wpt/meta-legacy-layout/focus/iframe-contentwindow-focus-with-same-as-top-intermediate-frame.html.ini new file mode 100644 index 00000000000..90a44a78bc0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/iframe-contentwindow-focus-with-same-as-top-intermediate-frame.html.ini @@ -0,0 +1,3 @@ +[iframe-contentwindow-focus-with-same-as-top-intermediate-frame.html] + [Check result] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/iframe-focus-with-different-site-intermediate-frame.html.ini b/tests/wpt/meta-legacy-layout/focus/iframe-focus-with-different-site-intermediate-frame.html.ini new file mode 100644 index 00000000000..a4e9ffefd3d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/iframe-focus-with-different-site-intermediate-frame.html.ini @@ -0,0 +1,3 @@ +[iframe-focus-with-different-site-intermediate-frame.html] + [Check result] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/iframe-focus-with-same-as-top-intermediate-frame.html.ini b/tests/wpt/meta-legacy-layout/focus/iframe-focus-with-same-as-top-intermediate-frame.html.ini new file mode 100644 index 00000000000..5cf136cdb6c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/iframe-focus-with-same-as-top-intermediate-frame.html.ini @@ -0,0 +1,3 @@ +[iframe-focus-with-same-as-top-intermediate-frame.html] + [Check result] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/focus/iframe-focuses-parent-same-site.html.ini b/tests/wpt/meta-legacy-layout/focus/iframe-focuses-parent-same-site.html.ini new file mode 100644 index 00000000000..8877baa8ac6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/iframe-focuses-parent-same-site.html.ini @@ -0,0 +1,2 @@ +[iframe-focuses-parent-same-site.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/focus/scroll-matches-focus.html.ini b/tests/wpt/meta-legacy-layout/focus/scroll-matches-focus.html.ini new file mode 100644 index 00000000000..120fa9dedfd --- /dev/null +++ b/tests/wpt/meta-legacy-layout/focus/scroll-matches-focus.html.ini @@ -0,0 +1,4 @@ +[scroll-matches-focus.html] + expected: TIMEOUT + [:focus applies before scrolling into view] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini index 02a8e91ea04..6313c3e33dd 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-nosrc.html.ini @@ -4,6 +4,3 @@ [link click] expected: FAIL - - [form submission] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini index 5f9a07f92f0..dc1144214ef 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/iframe-src-aboutblank-navigate-immediately.html.ini @@ -4,3 +4,6 @@ [Navigating to a different document with form submission] expected: FAIL + + [Navigating to a different document with link click] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini index 324db3d9b35..5aef7ce66ce 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini @@ -10,3 +10,6 @@ [load event does not fire on window.open('about:blank?foo')] expected: FAIL + + [load event does not fire on window.open('about:blank')] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini deleted file mode 100644 index a03a8322165..00000000000 --- a/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[traverse_the_history_3.html] - [Multiple history traversals, last would be aborted] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini index ea398e580ef..7616121487c 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable.html.ini @@ -1,5 +1,5 @@ [createImageBitmap-serializable.html] - expected: ERROR + expected: TIMEOUT [Serialize ImageBitmap created from a vector SVGImageElement] expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini deleted file mode 100644 index dc8137a3a4e..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edge-cases.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html.ini deleted file mode 100644 index c1d026a098f..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position-edges.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edges.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position.tentative.html.ini deleted file mode 100644 index 51ffef6397a..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/element/text/2d.text.measure.caret-position.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini index 6441a1527e8..56771e2c3f4 100644 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini +++ b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.resize.html.ini @@ -8,15 +8,5 @@ [Verify that resizing an OffscreenCanvas with a 2d context propagates the new size to its placeholder canvas asynchronously.] expected: FAIL - [Verify that drawImage uses the size of the frame as the intinsic size of a placeholder canvas.] - expected: FAIL - [Verify that writing to the width and height attributes of an OffscreenCanvas works when there is a webgl context attached.] expected: FAIL - - [Verify that writing to the width or height attribute of a placeholder canvas throws an exception] - expected: FAIL - - [Verify that writing to the width or height attribute of a placeholder canvas throws an exception even when not changing the value of the attribute.] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.lowlatency.nocrash.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.lowlatency.nocrash.html.ini deleted file mode 100644 index 2592d8b2a72..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfer.lowlatency.nocrash.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[offscreencanvas.transfer.lowlatency.nocrash.html] - [Tests that transferring a low latency canvas does not cause a crash. See crbug.com/1255153] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.html.ini deleted file mode 100644 index c103d8d158b..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.transfercontrol.to.offscreen.html.ini +++ /dev/null @@ -1,10 +0,0 @@ -[offscreencanvas.transfercontrol.to.offscreen.html] - [Test that calling transferControlToOffscreen twice throws an exception] - expected: FAIL - - [Test that an OffscreenCanvas generated by transferControlToOffscreen gets correct width and height] - expected: FAIL - - [Test that calling getContext on a placeholder canvas that has already transferred its control throws an exception] - expected: FAIL - diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini deleted file mode 100644 index dc8137a3a4e..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edge-cases.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js.ini deleted file mode 100644 index 074dbcf4af4..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edge-cases.tentative.worker.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edge-cases.tentative.worker.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html.ini deleted file mode 100644 index c1d026a098f..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edges.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js.ini deleted file mode 100644 index 0133a89a2ff..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position-edges.tentative.worker.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position-edges.tentative.worker.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html.ini deleted file mode 100644 index 51ffef6397a..00000000000 --- a/tests/wpt/meta-legacy-layout/html/canvas/offscreen/text/2d.text.measure.caret-position.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[2d.text.measure.caret-position.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini b/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini index 63e98865a28..f57a3e9eef5 100644 --- a/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini +++ b/tests/wpt/meta-legacy-layout/html/dom/idlharness.https.html.ini @@ -8689,12 +8689,6 @@ [HTMLSlotElement interface: calling assign((Element or Text)...) on document.createElement("slot") with too few arguments must throw TypeError] expected: FAIL - [HTMLCanvasElement interface: operation transferControlToOffscreen()] - expected: FAIL - - [HTMLCanvasElement interface: document.createElement("canvas") must inherit property "transferControlToOffscreen()" with the proper type] - expected: FAIL - [HTMLMarqueeElement interface: existence and properties of interface object] expected: FAIL @@ -8928,3 +8922,9 @@ [HTMLElement interface: calling togglePopover(optional (TogglePopoverOptions or boolean)) on document.createElement("noscript") with too few arguments must throw TypeError] expected: FAIL + + [HTMLDialogElement interface: attribute closedBy] + expected: FAIL + + [HTMLDialogElement interface: operation requestClose(optional DOMString)] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-reload-location-reload.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-reload-location-reload.html.ini deleted file mode 100644 index 247b8ee99a6..00000000000 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-reload-location-reload.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[iframe-loading-lazy-reload-location-reload.html] - [Reloading iframe loading='lazy' before it is loaded: location.reload] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index ff0e825b9a1..76e34322dca 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,5 +1,5 @@ [iframe_sandbox_popups_nonescaping-2.html] type: testharness - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index d89a1691435..d5fd800f09d 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/meta-legacy-layout/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-legacy-layout/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html.ini new file mode 100644 index 00000000000..d44f3ccff52 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/form-submit-iframe-then-location-navigate.html.ini @@ -0,0 +1,3 @@ +[form-submit-iframe-then-location-navigate.html] + [Verifies that location navigations take precedence when following form submissions.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini new file mode 100644 index 00000000000..7682a4830bf --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/semantics/forms/form-submission-0/reparent-form-during-planned-navigation-task.html.ini @@ -0,0 +1,4 @@ +[reparent-form-during-planned-navigation-task.html] + expected: TIMEOUT + [reparent-form-during-planned-navigation-task] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html.ini index 225fb3f96e3..d7d339b1705 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html.ini @@ -13,3 +13,6 @@ [Disconnected document fragments can serve as radio group containers.] expected: FAIL + + [Appending input radio input into a disconnect form should update the other radio inputs in the same radio group.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/forms/the-select-element/select-value-selectedOption.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/forms/the-select-element/select-value-selectedOption.tentative.html.ini deleted file mode 100644 index 32d785edfa8..00000000000 --- a/tests/wpt/meta-legacy-layout/html/semantics/forms/the-select-element/select-value-selectedOption.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[select-value-selectedOption.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/invokers/idlharness.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/invokers/idlharness.tentative.html.ini deleted file mode 100644 index 7238af7327e..00000000000 --- a/tests/wpt/meta-legacy-layout/html/semantics/invokers/idlharness.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[idlharness.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/invokers/interestelement-interface.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/invokers/interestelement-interface.tentative.html.ini deleted file mode 100644 index 8fe4e9c2d7b..00000000000 --- a/tests/wpt/meta-legacy-layout/html/semantics/invokers/interestelement-interface.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[interestelement-interface.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/invokers/invokeelement-interface.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/invokers/invokeelement-interface.tentative.html.ini deleted file mode 100644 index 952e7cada9b..00000000000 --- a/tests/wpt/meta-legacy-layout/html/semantics/invokers/invokeelement-interface.tentative.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[invokeelement-interface.tentative.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/popovers/button-type-reset-popovertarget.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/popovers/button-type-reset-popovertarget.tentative.html.ini index 4557bb8cf84..8db294c3caa 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/popovers/button-type-reset-popovertarget.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/popovers/button-type-reset-popovertarget.tentative.html.ini @@ -1,3 +1,2 @@ [button-type-reset-popovertarget.tentative.html] - [Button type=reset and type=submit should not run popover algorithms when in a form.] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/html/semantics/popovers/popover-types-with-hints.tentative.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/popovers/popover-types-with-hints.tentative.html.ini index 581966ec1be..b184c9f66a4 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/popovers/popover-types-with-hints.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/popovers/popover-types-with-hints.tentative.html.ini @@ -1,33 +1,2 @@ [popover-types-with-hints.tentative.html] - [manuals do not close popovers] - expected: FAIL - - [autos close hints but not manuals] - expected: FAIL - - [hint is not closed by pre-existing auto] - expected: FAIL - - [If a popover=hint is shown, it should hide any other open popover=hint pop-ups, including ancestral pop-ups. (You can't nest popover=hint)] - expected: FAIL - - [If a popover=auto is shown, it should hide any open popover=hint, including if the popover=hint is an ancestral pop-up of the popover=auto. (You can't nest a popover=auto inside a popover=hint)] - expected: FAIL - - [If you: a) show a popover=auto (call it D), then b) show a descendent popover=hint of D (call it T), then c) hide D, then T should be hidden. (A popover=hint can be nested inside a popover=auto)] - expected: FAIL - - [If you: a) show a popover=auto (call it D), then b) show a non-descendent popover=hint of D (call it T), then c) hide D, then T should be left showing. (Non-nested popover=hint can stay open when unrelated popover=autos are hidden)] - expected: FAIL - - [If a popover=hint is shown, it should hide any other open popover=hint popovers, including ancestral popovers. (You can't nest popover=hint)] - expected: FAIL - - [If a popover=auto is shown, it should hide any open popover=hint, including if the popover=hint is an ancestral popover of the popover=auto. (You can't nest a popover=auto inside a popover=hint)] - expected: FAIL - - [You can nest hint popovers] - expected: FAIL - - [If you: a) show a popover=auto (call it D), then b) show a non-descendent popover=hint of D (call it T), then c) hide D, then T should be hidden. (Non-nested popover=hint gets hidden when unrelated popover=autos are hidden)] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/bounding-box.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/bounding-box.html.ini new file mode 100644 index 00000000000..3758cdbb9f2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/bounding-box.html.ini @@ -0,0 +1,3 @@ +[bounding-box.html] + [Test that the target's border bounding box is used to calculate intersection.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/callback-cross-realm-report-exception.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/callback-cross-realm-report-exception.html.ini new file mode 100644 index 00000000000..2fd7bdb84fa --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/callback-cross-realm-report-exception.html.ini @@ -0,0 +1,3 @@ +[callback-cross-realm-report-exception.html] + [IntersectionObserver reports the exception from its callback in the callback's global object] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/client-rect.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/client-rect.html.ini new file mode 100644 index 00000000000..5ce656e80a9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/client-rect.html.ini @@ -0,0 +1,3 @@ +[client-rect.html] + [IntersectionObserverEntry.boundingClientRect should match target.boundingClientRect()] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/clip-path.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/clip-path.html.ini new file mode 100644 index 00000000000..8a953e2b4b6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/clip-path.html.ini @@ -0,0 +1,3 @@ +[clip-path.html] + [clip-path] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/containing-block.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/containing-block.html.ini new file mode 100644 index 00000000000..cb15ad8af89 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/containing-block.html.ini @@ -0,0 +1,3 @@ +[containing-block.html] + [IntersectionObserver should only report intersections if root is a containing block ancestor of target.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/cross-document-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/cross-document-root.html.ini new file mode 100644 index 00000000000..7a1b0de25ce --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/cross-document-root.html.ini @@ -0,0 +1,3 @@ +[cross-document-root.html] + [Observer with explicit root which is the document, observing a target in a same-origin iframe.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/cross-origin-iframe.sub.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/cross-origin-iframe.sub.html.ini new file mode 100644 index 00000000000..b341f0e4118 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/cross-origin-iframe.sub.html.ini @@ -0,0 +1,4 @@ +[cross-origin-iframe.sub.html] + expected: TIMEOUT + [Intersection observer test with no explicit root and target in a cross-origin iframe.] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/disconnect.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/disconnect.html.ini new file mode 100644 index 00000000000..34536954e44 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/disconnect.html.ini @@ -0,0 +1,3 @@ +[disconnect.html] + [IntersectionObserver should not deliver pending notifications after disconnect().] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/display-none.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/display-none.html.ini new file mode 100644 index 00000000000..08997ae9fa5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/display-none.html.ini @@ -0,0 +1,3 @@ +[display-none.html] + [display-none] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/document-scrolling-element-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/document-scrolling-element-root.html.ini new file mode 100644 index 00000000000..c7bb2a21961 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/document-scrolling-element-root.html.ini @@ -0,0 +1,3 @@ +[document-scrolling-element-root.html] + [Observer with explicit root which is the document.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/edge-inclusive-intersection.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/edge-inclusive-intersection.html.ini new file mode 100644 index 00000000000..1d74b3d00f7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/edge-inclusive-intersection.html.ini @@ -0,0 +1,3 @@ +[edge-inclusive-intersection.html] + [IntersectionObserver should detect and report edge-adjacent and zero-area intersections.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/empty-root-margin.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/empty-root-margin.html.ini new file mode 100644 index 00000000000..b1c626858d3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/empty-root-margin.html.ini @@ -0,0 +1,3 @@ +[empty-root-margin.html] + [An empty rootMargin string is interpreted as a margin of size zero] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/explicit-root-different-document.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/explicit-root-different-document.html.ini new file mode 100644 index 00000000000..1742d347434 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/explicit-root-different-document.html.ini @@ -0,0 +1,4 @@ +[explicit-root-different-document.html] + expected: ERROR + [IntersectionObserver reports a (non-intersecting) entry if different-document from the doc] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-child-scroll.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-child-scroll.html.ini new file mode 100644 index 00000000000..84c6c222dbc --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-child-scroll.html.ini @@ -0,0 +1,3 @@ +[fixed-position-child-scroll.html] + [Fixed-position intersection observer on scroll] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-iframe-scroll.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-iframe-scroll.html.ini new file mode 100644 index 00000000000..f42c77669cb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-iframe-scroll.html.ini @@ -0,0 +1,3 @@ +[fixed-position-iframe-scroll.html] + [Fixed-position intersection observer on scroll] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-scroll.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-scroll.html.ini new file mode 100644 index 00000000000..9b560f002b7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/fixed-position-scroll.html.ini @@ -0,0 +1,3 @@ +[fixed-position-scroll.html] + [Fixed-position intersection observer on scroll] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/grow-height-and-scrolled.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/grow-height-and-scrolled.html.ini new file mode 100644 index 00000000000..dc9a5063a87 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/grow-height-and-scrolled.html.ini @@ -0,0 +1,2 @@ +[grow-height-and-scrolled.html] + expected: ERROR diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/idlharness.window.js.ini b/tests/wpt/meta-legacy-layout/intersection-observer/idlharness.window.js.ini new file mode 100644 index 00000000000..d694a6040a0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/idlharness.window.js.ini @@ -0,0 +1,135 @@ +[idlharness.window.html] + [idl_test setup] + expected: FAIL + + [IntersectionObserver interface: existence and properties of interface object] + expected: FAIL + + [IntersectionObserver interface object length] + expected: FAIL + + [IntersectionObserver interface object name] + expected: FAIL + + [IntersectionObserver interface: existence and properties of interface prototype object] + expected: FAIL + + [IntersectionObserver interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [IntersectionObserver interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [IntersectionObserver interface: attribute root] + expected: FAIL + + [IntersectionObserver interface: attribute rootMargin] + expected: FAIL + + [IntersectionObserver interface: attribute scrollMargin] + expected: FAIL + + [IntersectionObserver interface: attribute thresholds] + expected: FAIL + + [IntersectionObserver interface: attribute delay] + expected: FAIL + + [IntersectionObserver interface: attribute trackVisibility] + expected: FAIL + + [IntersectionObserver interface: operation observe(Element)] + expected: FAIL + + [IntersectionObserver interface: operation unobserve(Element)] + expected: FAIL + + [IntersectionObserver interface: operation disconnect()] + expected: FAIL + + [IntersectionObserver interface: operation takeRecords()] + expected: FAIL + + [IntersectionObserver must be primary interface of observer] + expected: FAIL + + [Stringification of observer] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "root" with the proper type] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "rootMargin" with the proper type] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "scrollMargin" with the proper type] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "thresholds" with the proper type] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "delay" with the proper type] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "trackVisibility" with the proper type] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "observe(Element)" with the proper type] + expected: FAIL + + [IntersectionObserver interface: calling observe(Element) on observer with too few arguments must throw TypeError] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "unobserve(Element)" with the proper type] + expected: FAIL + + [IntersectionObserver interface: calling unobserve(Element) on observer with too few arguments must throw TypeError] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "disconnect()" with the proper type] + expected: FAIL + + [IntersectionObserver interface: observer must inherit property "takeRecords()" with the proper type] + expected: FAIL + + [IntersectionObserverEntry interface: existence and properties of interface object] + expected: FAIL + + [IntersectionObserverEntry interface object length] + expected: FAIL + + [IntersectionObserverEntry interface object name] + expected: FAIL + + [IntersectionObserverEntry interface: existence and properties of interface prototype object] + expected: FAIL + + [IntersectionObserverEntry interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [IntersectionObserverEntry interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [IntersectionObserverEntry interface: attribute time] + expected: FAIL + + [IntersectionObserverEntry interface: attribute rootBounds] + expected: FAIL + + [IntersectionObserverEntry interface: attribute boundingClientRect] + expected: FAIL + + [IntersectionObserverEntry interface: attribute intersectionRect] + expected: FAIL + + [IntersectionObserverEntry interface: attribute isIntersecting] + expected: FAIL + + [IntersectionObserverEntry interface: attribute isVisible] + expected: FAIL + + [IntersectionObserverEntry interface: attribute intersectionRatio] + expected: FAIL + + [IntersectionObserverEntry interface: attribute target] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/iframe-no-root-with-wrapping-scroller.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/iframe-no-root-with-wrapping-scroller.html.ini new file mode 100644 index 00000000000..89eddabb93c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/iframe-no-root-with-wrapping-scroller.html.ini @@ -0,0 +1,3 @@ +[iframe-no-root-with-wrapping-scroller.html] + [Observer with the implicit root; target in a same-origin iframe.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/iframe-no-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/iframe-no-root.html.ini new file mode 100644 index 00000000000..17dfeb14663 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/iframe-no-root.html.ini @@ -0,0 +1,3 @@ +[iframe-no-root.html] + [Observer with the implicit root; target in a same-origin iframe.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/initial-observation-with-threshold.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/initial-observation-with-threshold.html.ini new file mode 100644 index 00000000000..1e5c6398e94 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/initial-observation-with-threshold.html.ini @@ -0,0 +1,3 @@ +[initial-observation-with-threshold.html] + [First observation with a threshold.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/inline-client-rect.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/inline-client-rect.html.ini new file mode 100644 index 00000000000..441a326511b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/inline-client-rect.html.ini @@ -0,0 +1,3 @@ +[inline-client-rect.html] + [Inline target] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/inline-with-block-child-client-rect.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/inline-with-block-child-client-rect.html.ini new file mode 100644 index 00000000000..95a3c0554b7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/inline-with-block-child-client-rect.html.ini @@ -0,0 +1,3 @@ +[inline-with-block-child-client-rect.html] + [Inline target containing a block child] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-ib-split.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-ib-split.html.ini new file mode 100644 index 00000000000..fb1b939df15 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-ib-split.html.ini @@ -0,0 +1,3 @@ +[intersection-ratio-ib-split.html] + [IntersectionObserver on an IB split gets the right intersection ratio] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds-2.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds-2.html.ini new file mode 100644 index 00000000000..57199041d19 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds-2.html.ini @@ -0,0 +1,3 @@ +[intersection-ratio-with-fractional-bounds-2.html] + [IntersectionObserver ratio with fractional bounds] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds-in-iframe.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds-in-iframe.html.ini new file mode 100644 index 00000000000..a440adc2cc5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds-in-iframe.html.ini @@ -0,0 +1,4 @@ +[intersection-ratio-with-fractional-bounds-in-iframe.html] + expected: TIMEOUT + [intersectionRatio in iframe should be 1 for totally visible target with fractional bounds] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds.html.ini new file mode 100644 index 00000000000..6c0756893ac --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/intersection-ratio-with-fractional-bounds.html.ini @@ -0,0 +1,3 @@ +[intersection-ratio-with-fractional-bounds.html] + [IntersectionObserver ratio with fractional bounds] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/isIntersecting-change-events.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/isIntersecting-change-events.html.ini new file mode 100644 index 00000000000..97b18342a5c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/isIntersecting-change-events.html.ini @@ -0,0 +1,3 @@ +[isIntersecting-change-events.html] + [isIntersecting changes should trigger notifications.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/isIntersecting-threshold.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/isIntersecting-threshold.html.ini new file mode 100644 index 00000000000..5eae3d5944d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/isIntersecting-threshold.html.ini @@ -0,0 +1,10 @@ +[isIntersecting-threshold.html] + expected: ERROR + [At initial scroll position] + expected: FAIL + + [Scrolled to half way through target element] + expected: FAIL + + [Scrolled to target element completely off screen] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/multiple-targets.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/multiple-targets.html.ini new file mode 100644 index 00000000000..eeb7f54bed4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/multiple-targets.html.ini @@ -0,0 +1,3 @@ +[multiple-targets.html] + [One observer with multiple targets.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/multiple-thresholds.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/multiple-thresholds.html.ini new file mode 100644 index 00000000000..d8857c8ea05 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/multiple-thresholds.html.ini @@ -0,0 +1,3 @@ +[multiple-thresholds.html] + [Observer with multiple thresholds.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/nested-cross-origin-iframe.sub.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/nested-cross-origin-iframe.sub.html.ini new file mode 100644 index 00000000000..06657d43699 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/nested-cross-origin-iframe.sub.html.ini @@ -0,0 +1,4 @@ +[nested-cross-origin-iframe.sub.html] + expected: TIMEOUT + [IntersectionObserver with `implicit root` in a nested cross-origin iframe works] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/not-in-containing-block-chain.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/not-in-containing-block-chain.html.ini new file mode 100644 index 00000000000..6d8bc36127b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/not-in-containing-block-chain.html.ini @@ -0,0 +1,4 @@ +[not-in-containing-block-chain.html] + expected: ERROR + [IntersectionObserver reports a (non-intersecting) entry even if not in the containing block chain] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/observer-attributes.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/observer-attributes.html.ini new file mode 100644 index 00000000000..53f3012a3a7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/observer-attributes.html.ini @@ -0,0 +1,3 @@ +[observer-attributes.html] + [Observer attribute getters.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/observer-callback-arguments.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/observer-callback-arguments.html.ini new file mode 100644 index 00000000000..3b511ec8e11 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/observer-callback-arguments.html.ini @@ -0,0 +1,3 @@ +[observer-callback-arguments.html] + [Callback is invoked with |this| value of IntersectionObserver and two arguments] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/observer-exceptions.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/observer-exceptions.html.ini new file mode 100644 index 00000000000..4e7098ca756 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/observer-exceptions.html.ini @@ -0,0 +1,27 @@ +[observer-exceptions.html] + [IntersectionObserver constructor with { threshold: [1.1\] }] + expected: FAIL + + [IntersectionObserver constructor with { threshold: ["foo"\] }] + expected: FAIL + + [IntersectionObserver constructor with { rootMargin: "1" }] + expected: FAIL + + [IntersectionObserver constructor with { rootMargin: "2em" }] + expected: FAIL + + [IntersectionObserver constructor with { rootMargin: "auto" }] + expected: FAIL + + [IntersectionObserver constructor with { rootMargin: "calc(1px + 2px)" }] + expected: FAIL + + [IntersectionObserver constructor with { rootMargin: "1px !important" }] + expected: FAIL + + [IntersectionObserver constructor with { rootMargin: "1px 1px 1px 1px 1px" }] + expected: FAIL + + [IntersectionObserver.observe("foo")] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/observer-without-js-reference.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/observer-without-js-reference.html.ini new file mode 100644 index 00000000000..96b5c3372fc --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/observer-without-js-reference.html.ini @@ -0,0 +1,3 @@ +[observer-without-js-reference.html] + [IntersectionObserver that is unreachable in js should still generate notifications.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/padding-clip.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/padding-clip.html.ini new file mode 100644 index 00000000000..e4f33174d03 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/padding-clip.html.ini @@ -0,0 +1,3 @@ +[padding-clip.html] + [Scrollport is used rather than content rect to compute intersection ratio] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/remove-element.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/remove-element.html.ini new file mode 100644 index 00000000000..56eca4fbc51 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/remove-element.html.ini @@ -0,0 +1,3 @@ +[remove-element.html] + [Verify that not-intersecting notifications are sent when a target is removed from the DOM tree.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/root-margin-root-element.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/root-margin-root-element.html.ini new file mode 100644 index 00000000000..3dc3b750f60 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/root-margin-root-element.html.ini @@ -0,0 +1,3 @@ +[root-margin-root-element.html] + [Root margin with explicit root.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/root-margin-rounding.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/root-margin-rounding.html.ini new file mode 100644 index 00000000000..226f2dbe475 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/root-margin-rounding.html.ini @@ -0,0 +1,4 @@ +[root-margin-rounding.html] + expected: ERROR + [IntersectionObserver root margin cannot end up with negative rect (and thus non-intersecting) due to rounding] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/root-margin.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/root-margin.html.ini new file mode 100644 index 00000000000..20d81a54923 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/root-margin.html.ini @@ -0,0 +1,3 @@ +[root-margin.html] + [Root margin tests] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/root-vertical-rl.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/root-vertical-rl.html.ini new file mode 100644 index 00000000000..86e44ffef9e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/root-vertical-rl.html.ini @@ -0,0 +1,3 @@ +[root-vertical-rl.html] + [IntersectionObserver vertical-rl root.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/rtl-clipped-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/rtl-clipped-root.html.ini new file mode 100644 index 00000000000..9901393254f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/rtl-clipped-root.html.ini @@ -0,0 +1,3 @@ +[rtl-clipped-root.html] + [Explicit rtl root with overflow clipping] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/same-document-no-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/same-document-no-root.html.ini new file mode 100644 index 00000000000..e3e137c8063 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/same-document-no-root.html.ini @@ -0,0 +1,3 @@ +[same-document-no-root.html] + [IntersectionObserver in a single document using the implicit root.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/same-document-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/same-document-root.html.ini new file mode 100644 index 00000000000..2793bec1583 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/same-document-root.html.ini @@ -0,0 +1,3 @@ +[same-document-root.html] + [IntersectionObserver in a single document with explicit root.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/same-document-with-document-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/same-document-with-document-root.html.ini new file mode 100644 index 00000000000..5a59b12994a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/same-document-with-document-root.html.ini @@ -0,0 +1,3 @@ +[same-document-with-document-root.html] + [IntersectionObserver in a single document using document as root.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/same-document-zero-size-target.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/same-document-zero-size-target.html.ini new file mode 100644 index 00000000000..44b4c273134 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/same-document-zero-size-target.html.ini @@ -0,0 +1,3 @@ +[same-document-zero-size-target.html] + [Observing a zero-area target.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/same-origin-grand-child-iframe.sub.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/same-origin-grand-child-iframe.sub.html.ini new file mode 100644 index 00000000000..b0c66eef5a4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/same-origin-grand-child-iframe.sub.html.ini @@ -0,0 +1,4 @@ +[same-origin-grand-child-iframe.sub.html] + expected: TIMEOUT + [rootBounds in a same-origin iframe in the case where there is a cross-origin iframe in between the top document and the same origin iframe] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-and-root-margin.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-and-root-margin.html.ini new file mode 100644 index 00000000000..f7bd26b2f40 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-and-root-margin.html.ini @@ -0,0 +1,4 @@ +[scroll-and-root-margin.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-4-val.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-4-val.html.ini new file mode 100644 index 00000000000..67c790d28b9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-4-val.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-4-val.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-clip-path.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-clip-path.html.ini new file mode 100644 index 00000000000..4fb3845da84 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-clip-path.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-clip-path.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-dynamic.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-dynamic.html.ini new file mode 100644 index 00000000000..08a0f10171e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-dynamic.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-dynamic.html] + expected: ERROR + [Test no initial scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-horizontal.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-horizontal.html.ini new file mode 100644 index 00000000000..7747868bec2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-horizontal.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-horizontal.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-iframe.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-iframe.html.ini new file mode 100644 index 00000000000..551057df43b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-iframe.html.ini @@ -0,0 +1,3 @@ +[scroll-margin-iframe.html] + [Observer with the implicit root; target in a same-origin iframe.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested-2.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested-2.html.ini new file mode 100644 index 00000000000..200f36396a1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested-2.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-nested-2.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested-3.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested-3.html.ini new file mode 100644 index 00000000000..eebbd2238c5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested-3.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-nested-3.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested.html.ini new file mode 100644 index 00000000000..dc3a1bbd4dd --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-nested.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-nested.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-no-intersect.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-no-intersect.html.ini new file mode 100644 index 00000000000..f07f30b1826 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-no-intersect.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-no-intersect.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-non-scrolling-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-non-scrolling-root.html.ini new file mode 100644 index 00000000000..d3974aea0be --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-non-scrolling-root.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-non-scrolling-root.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-not-contained.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-not-contained.html.ini new file mode 100644 index 00000000000..823b17454ee --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-not-contained.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-not-contained.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-percent.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-percent.html.ini new file mode 100644 index 00000000000..3cb8075b541 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-percent.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-percent.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-with-border-outline.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-with-border-outline.html.ini new file mode 100644 index 00000000000..48b86b2a965 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-with-border-outline.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-with-border-outline.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-zero.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-zero.html.ini new file mode 100644 index 00000000000..57a690d7877 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin-zero.html.ini @@ -0,0 +1,4 @@ +[scroll-margin-zero.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin.html.ini new file mode 100644 index 00000000000..0fb169f2adf --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/scroll-margin.html.ini @@ -0,0 +1,4 @@ +[scroll-margin.html] + expected: ERROR + [Test scroll margin intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/shadow-content.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/shadow-content.html.ini new file mode 100644 index 00000000000..6e96a4c343e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/shadow-content.html.ini @@ -0,0 +1,3 @@ +[shadow-content.html] + [Observing a target inside shadow DOM.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-clipped-rect-target.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-clipped-rect-target.html.ini new file mode 100644 index 00000000000..975421d8b21 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-clipped-rect-target.html.ini @@ -0,0 +1,3 @@ +[svg-clipped-rect-target.html] + [IntersectionObserver observing a clipped SVG element] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-container-element.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-container-element.html.ini new file mode 100644 index 00000000000..42f9bdf0355 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-container-element.html.ini @@ -0,0 +1,3 @@ +[svg-container-element.html] + [IntersectionObserver observing an SVG container element changing position] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-group-target.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-group-target.html.ini new file mode 100644 index 00000000000..84d61469282 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-group-target.html.ini @@ -0,0 +1,3 @@ +[svg-group-target.html] + [IntersectionObserver observing an SVG element] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-image.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-image.html.ini new file mode 100644 index 00000000000..51840e9ca3d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-image.html.ini @@ -0,0 +1,3 @@ +[svg-image.html] + [IntersectionObserver observing an SVG image element changing position] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-intersection-with-fractional-bounds-2.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-intersection-with-fractional-bounds-2.html.ini new file mode 100644 index 00000000000..ca4c684bfd8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-intersection-with-fractional-bounds-2.html.ini @@ -0,0 +1,3 @@ +[svg-intersection-with-fractional-bounds-2.html] + [IntersectionObserver observing an SVG with fractional bounds element] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-intersection-with-fractional-bounds.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-intersection-with-fractional-bounds.html.ini new file mode 100644 index 00000000000..30489ff481f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-intersection-with-fractional-bounds.html.ini @@ -0,0 +1,3 @@ +[svg-intersection-with-fractional-bounds.html] + [IntersectionObserver observing an SVG with fractional bounds element] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-rect-target.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-rect-target.html.ini new file mode 100644 index 00000000000..d103a4ed79d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-rect-target.html.ini @@ -0,0 +1,3 @@ +[svg-rect-target.html] + [IntersectionObserver observing an SVG element] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-stroke-change.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-stroke-change.html.ini new file mode 100644 index 00000000000..5a0cc348dca --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-stroke-change.html.ini @@ -0,0 +1,3 @@ +[svg-stroke-change.html] + [IntersectionObserver observing an SVG element while its stroke is changed] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-target-changes-position.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-target-changes-position.html.ini new file mode 100644 index 00000000000..c80b9d95176 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-target-changes-position.html.ini @@ -0,0 +1,3 @@ +[svg-target-changes-position.html] + [IntersectionObserver observing an SVG element changing position] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-transformed-rect-target.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-transformed-rect-target.html.ini new file mode 100644 index 00000000000..54bea9bd80c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-transformed-rect-target.html.ini @@ -0,0 +1,3 @@ +[svg-transformed-rect-target.html] + [IntersectionObserver observing an SVG element with changing 'transform'] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/svg-viewbox.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/svg-viewbox.html.ini new file mode 100644 index 00000000000..a4da70198c6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/svg-viewbox.html.ini @@ -0,0 +1,3 @@ +[svg-viewbox.html] + [IntersectionObserver observing an SVG element with changing 'transform'] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/target-in-detached-document.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/target-in-detached-document.html.ini new file mode 100644 index 00000000000..6a03b3f0626 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/target-in-detached-document.html.ini @@ -0,0 +1,3 @@ +[target-in-detached-document.html] + [IntersectionObserver in a single document using the implicit root.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/target-in-different-window.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/target-in-different-window.html.ini new file mode 100644 index 00000000000..283ebad410e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/target-in-different-window.html.ini @@ -0,0 +1,3 @@ +[target-in-different-window.html] + [IntersectionObserver with target in a different window.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/target-is-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/target-is-root.html.ini new file mode 100644 index 00000000000..fe47ed1b2b5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/target-is-root.html.ini @@ -0,0 +1,3 @@ +[target-is-root.html] + [IntersectionObserver when root == target doesn't compute an intersection] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/text-target.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/text-target.html.ini new file mode 100644 index 00000000000..547b6dcc7b5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/text-target.html.ini @@ -0,0 +1,3 @@ +[text-target.html] + [IntersectionObserver observing a br element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/timestamp.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/timestamp.html.ini new file mode 100644 index 00000000000..4f7c253e213 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/timestamp.html.ini @@ -0,0 +1,4 @@ +[timestamp.html] + expected: ERROR + [Check that timestamps correspond to the to execution context that created the observer.] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/transform-animation.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/transform-animation.html.ini new file mode 100644 index 00000000000..d749b52c16f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/transform-animation.html.ini @@ -0,0 +1,3 @@ +[transform-animation.html] + [An element that already intersects with the viewport does not trigger the observer callback when animating its transform.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/unclipped-root.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/unclipped-root.html.ini new file mode 100644 index 00000000000..7f6cabddf8a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/unclipped-root.html.ini @@ -0,0 +1,3 @@ +[unclipped-root.html] + [Test that border bounding box is used to calculate intersection with a non-scrolling root.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/animated-occlusion.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/animated-occlusion.html.ini new file mode 100644 index 00000000000..b9db6a7537e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/animated-occlusion.html.ini @@ -0,0 +1,3 @@ +[animated-occlusion.html] + [IntersectionObserverV2 in a single document using the implicit root, with an animated occluding element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/blur-filter.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/blur-filter.html.ini new file mode 100644 index 00000000000..ae62b59fb26 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/blur-filter.html.ini @@ -0,0 +1,3 @@ +[blur-filter.html] + [IntersectionObserverV2 in a single document using the implicit root, with an occluding element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/box-reflect.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/box-reflect.html.ini new file mode 100644 index 00000000000..a86b78bb2a8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/box-reflect.html.ini @@ -0,0 +1,3 @@ +[box-reflect.html] + [IntersectionObserverV2 detects occlusion from -webkit-box-reflect (if supported).] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/box-shadow.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/box-shadow.html.ini new file mode 100644 index 00000000000..d0cdf93ffcf --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/box-shadow.html.ini @@ -0,0 +1,3 @@ +[box-shadow.html] + [IntersectionObserverV2 observing an iframe element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/cross-origin-effects.sub.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/cross-origin-effects.sub.html.ini new file mode 100644 index 00000000000..04e2ef8d04c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/cross-origin-effects.sub.html.ini @@ -0,0 +1,4 @@ +[cross-origin-effects.sub.html] + expected: TIMEOUT + [Intersection observer V2 test with visual effects on iframe.] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/cross-origin-occlusion.sub.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/cross-origin-occlusion.sub.html.ini new file mode 100644 index 00000000000..1a6515e015b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/cross-origin-occlusion.sub.html.ini @@ -0,0 +1,4 @@ +[cross-origin-occlusion.sub.html] + expected: TIMEOUT + [Intersection observer V2 test with occlusion of target in iframe.] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/delay-test.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/delay-test.html.ini new file mode 100644 index 00000000000..a2b4a9785d0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/delay-test.html.ini @@ -0,0 +1,3 @@ +[delay-test.html] + ['delay' parameter throttles frequency of notifications.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/drop-shadow-filter-vertical-rl.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/drop-shadow-filter-vertical-rl.html.ini new file mode 100644 index 00000000000..549330be3d5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/drop-shadow-filter-vertical-rl.html.ini @@ -0,0 +1,3 @@ +[drop-shadow-filter-vertical-rl.html] + [IntersectionObserverV2 in a single document using the implicit root, with an occluding element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/iframe-target.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/iframe-target.html.ini new file mode 100644 index 00000000000..338e1a3e45e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/iframe-target.html.ini @@ -0,0 +1,3 @@ +[iframe-target.html] + [IntersectionObserverV2 observing an iframe element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/inline-occlusion.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/inline-occlusion.html.ini new file mode 100644 index 00000000000..d88f9dd3629 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/inline-occlusion.html.ini @@ -0,0 +1,3 @@ +[inline-occlusion.html] + [IntersectionObserverV2 in a single document using the implicit root, with an occluding element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/nested-cross-origin.sub.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/nested-cross-origin.sub.html.ini new file mode 100644 index 00000000000..1aab250f13c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/nested-cross-origin.sub.html.ini @@ -0,0 +1,4 @@ +[nested-cross-origin.sub.html] + expected: TIMEOUT + [Intersection observer V2 test with nested cross-origin iframes.] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/position-absolute-overflow-visible-and-not-visible.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/position-absolute-overflow-visible-and-not-visible.html.ini new file mode 100644 index 00000000000..fbf0b0d50ae --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/position-absolute-overflow-visible-and-not-visible.html.ini @@ -0,0 +1,4 @@ +[position-absolute-overflow-visible-and-not-visible.html] + expected: ERROR + [ParentWithOverflowVisibleAndNotVisible] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/position-relative.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/position-relative.html.ini new file mode 100644 index 00000000000..08331f7de0c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/position-relative.html.ini @@ -0,0 +1,3 @@ +[position-relative.html] + [IntersectionObserverV2 observing a position:relative div containing a position:relative child] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/scaled-target.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/scaled-target.html.ini new file mode 100644 index 00000000000..34637e20b21 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/scaled-target.html.ini @@ -0,0 +1,4 @@ +[scaled-target.html] + expected: TIMEOUT + [IntersectionObserver V2 test with scale applied to target.] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-effects.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-effects.html.ini new file mode 100644 index 00000000000..176361d65f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-effects.html.ini @@ -0,0 +1,3 @@ +[simple-effects.html] + [IntersectionObserverV2 in a single document using the implicit root, with a non-zero opacity ancestor.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-occlusion-svg-foreign-object.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-occlusion-svg-foreign-object.html.ini new file mode 100644 index 00000000000..ab526c3d1c3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-occlusion-svg-foreign-object.html.ini @@ -0,0 +1,3 @@ +[simple-occlusion-svg-foreign-object.html] + [IntersectionObserverV2 in a single document using the implicit root, with an occluding element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-occlusion.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-occlusion.html.ini new file mode 100644 index 00000000000..23b4fdabc0a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/simple-occlusion.html.ini @@ -0,0 +1,3 @@ +[simple-occlusion.html] + [IntersectionObserverV2 in a single document using the implicit root, with an occluding element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/text-editor-occlusion.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/text-editor-occlusion.html.ini new file mode 100644 index 00000000000..5aa3e8e06e7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/text-editor-occlusion.html.ini @@ -0,0 +1,3 @@ +[text-editor-occlusion.html] + [IntersectionObserverV2 in a single document using the implicit root, with an occluding element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/v2/text-shadow.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/v2/text-shadow.html.ini new file mode 100644 index 00000000000..360ed59cc9d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/v2/text-shadow.html.ini @@ -0,0 +1,3 @@ +[text-shadow.html] + [IntersectionObserverV2 observing an iframe element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/visibility-hidden.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/visibility-hidden.html.ini new file mode 100644 index 00000000000..30dcd391526 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/visibility-hidden.html.ini @@ -0,0 +1,3 @@ +[visibility-hidden.html] + [IntersectionObserver observing a visibility:hidden element.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/zero-area-element-hidden.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/zero-area-element-hidden.html.ini new file mode 100644 index 00000000000..929b77285ce --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/zero-area-element-hidden.html.ini @@ -0,0 +1,3 @@ +[zero-area-element-hidden.html] + [A zero-area hidden target should not be intersecting.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/zero-area-element-visible.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/zero-area-element-visible.html.ini new file mode 100644 index 00000000000..6412fce6a61 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/zero-area-element-visible.html.ini @@ -0,0 +1,3 @@ +[zero-area-element-visible.html] + [Ensure that a zero-area target intersecting root generates a notification with intersectionRatio == 1] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/intersection-observer/zoom-scaled-target.html.ini b/tests/wpt/meta-legacy-layout/intersection-observer/zoom-scaled-target.html.ini new file mode 100644 index 00000000000..c6c51e1211b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/intersection-observer/zoom-scaled-target.html.ini @@ -0,0 +1,3 @@ +[zoom-scaled-target.html] + [IntersectionObserver observing elements with css zoom] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/blob.https.sub.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/blob.https.sub.html.ini new file mode 100644 index 00000000000..c249fb7dec2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/blob.https.sub.html.ini @@ -0,0 +1,4 @@ +[blob.https.sub.html] + expected: ERROR + [Mixed-Content: blob tests 1] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/csp.https.window.js.ini b/tests/wpt/meta-legacy-layout/mixed-content/csp.https.window.js.ini new file mode 100644 index 00000000000..bffe056ff1f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/csp.https.window.js.ini @@ -0,0 +1,3 @@ +[csp.https.window.html] + [Mixed content checks apply to fetches in sandboxed documents] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.http-rp/opt-in/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..c069fd74d83 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/fetch.https.html.ini @@ -0,0 +1,3 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..9108efe5a75 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/opt-in/xhr.https.html.ini @@ -0,0 +1,3 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic-data.meta/unset/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/opt-in/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-classic.http-rp/unset/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.http-rp/opt-in/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..c069fd74d83 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/fetch.https.html.ini @@ -0,0 +1,3 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..9108efe5a75 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/opt-in/xhr.https.html.ini @@ -0,0 +1,3 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module-data.meta/unset/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/opt-in/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/sharedworker-module.http-rp/unset/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini new file mode 100644 index 00000000000..a9ab0322c26 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/audio-tag.https.html.ini @@ -0,0 +1,2 @@ +[audio-tag.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/beacon.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/beacon.https.html.ini new file mode 100644 index 00000000000..a910190f49d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/beacon.https.html.ini @@ -0,0 +1,6 @@ +[beacon.https.html] + [Mixed-Content: Expects allowed for beacon to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for beacon to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..c55cf7260f1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/fetch.https.html.ini @@ -0,0 +1,24 @@ +[fetch.https.html] + [Mixed-Content: Expects blocked for fetch to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html.ini new file mode 100644 index 00000000000..8ca272db562 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/img-tag.https.html.ini @@ -0,0 +1,24 @@ +[img-tag.https.html] + [Mixed-Content: Expects blocked for img-tag to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for img-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for img-tag to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for img-tag to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for img-tag to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for img-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for img-tag to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for img-tag to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html.ini new file mode 100644 index 00000000000..86e943fc236 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/link-css-tag.https.html.ini @@ -0,0 +1,24 @@ +[link-css-tag.https.html] + [Mixed-Content: Expects blocked for link-css-tag to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html.ini new file mode 100644 index 00000000000..b5ae92ca34e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/link-prefetch-tag.https.html.ini @@ -0,0 +1,24 @@ +[link-prefetch-tag.https.html] + [Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html.ini new file mode 100644 index 00000000000..7f73673f5d5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/object-tag.https.html.ini @@ -0,0 +1,31 @@ +[object-tag.https.html] + expected: TIMEOUT + [Mixed-Content: Expects allowed for object-tag to same-https origin and keep-scheme redirection from https context.] + expected: TIMEOUT + + [Mixed-Content: Expects allowed for object-tag to same-https origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to cross-http origin and keep-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to cross-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to cross-http origin and swap-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to cross-https origin and swap-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to same-http origin and keep-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to same-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to same-http origin and swap-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to same-https origin and swap-scheme redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html.ini new file mode 100644 index 00000000000..61363caf01b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/picture-tag.https.html.ini @@ -0,0 +1,24 @@ +[picture-tag.https.html] + [Mixed-Content: Expects blocked for picture-tag to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html.ini new file mode 100644 index 00000000000..640f3352878 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/script-tag.https.html.ini @@ -0,0 +1,24 @@ +[script-tag.https.html] + [Mixed-Content: Expects blocked for script-tag to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html.ini new file mode 100644 index 00000000000..ad6e0fe3f1e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-classic.https.html.ini @@ -0,0 +1,6 @@ +[sharedworker-classic.https.html] + [Mixed-Content: Expects allowed for sharedworker-classic to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for sharedworker-classic to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html.ini new file mode 100644 index 00000000000..c07509690c3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-import-data.https.html.ini @@ -0,0 +1,6 @@ +[sharedworker-import-data.https.html] + [Mixed-Content: Expects allowed for sharedworker-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for sharedworker-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html.ini new file mode 100644 index 00000000000..b46d6958b60 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-import.https.html.ini @@ -0,0 +1,6 @@ +[sharedworker-import.https.html] + [Mixed-Content: Expects allowed for sharedworker-import to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for sharedworker-import to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html.ini new file mode 100644 index 00000000000..6569676c7df --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/sharedworker-module.https.html.ini @@ -0,0 +1,6 @@ +[sharedworker-module.https.html] + [Mixed-Content: Expects allowed for sharedworker-module to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for sharedworker-module to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html.ini new file mode 100644 index 00000000000..25b2d40022f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/video-tag.https.html.ini @@ -0,0 +1,31 @@ +[video-tag.https.html] + expected: TIMEOUT + [Mixed-Content: Expects allowed for video-tag to same-https origin and keep-scheme redirection from https context.] + expected: TIMEOUT + + [Mixed-Content: Expects allowed for video-tag to same-https origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for video-tag to cross-http origin and keep-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for video-tag to cross-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for video-tag to cross-http origin and swap-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for video-tag to cross-https origin and swap-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for video-tag to same-http origin and keep-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for video-tag to same-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for video-tag to same-http origin and swap-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for video-tag to same-https origin and swap-scheme redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..c99cc00b7e5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Mixed-Content: Expects blocked for websocket to cross-ws origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for websocket to same-ws origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html.ini new file mode 100644 index 00000000000..e427cb8c174 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worker-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worker-import-data.https.html] + [Mixed-Content: Expects allowed for worker-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worker-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html.ini new file mode 100644 index 00000000000..a4a08ad0465 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worker-import.https.html.ini @@ -0,0 +1,6 @@ +[worker-import.https.html] + [Mixed-Content: Expects allowed for worker-import to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worker-import to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html.ini new file mode 100644 index 00000000000..a3b30621954 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-animation-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worklet-animation-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-animation-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-animation-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html.ini new file mode 100644 index 00000000000..ef66d3ee75b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-animation.https.html.ini @@ -0,0 +1,6 @@ +[worklet-animation.https.html] + [Mixed-Content: Expects allowed for worklet-animation to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-animation to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html.ini new file mode 100644 index 00000000000..7705335f336 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-audio-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worklet-audio-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-audio-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-audio-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html.ini new file mode 100644 index 00000000000..7b35312875d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-audio.https.html.ini @@ -0,0 +1,6 @@ +[worklet-audio.https.html] + [Mixed-Content: Expects allowed for worklet-audio to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-audio to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html.ini new file mode 100644 index 00000000000..52d857e4aa0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-layout-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worklet-layout-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-layout-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-layout-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html.ini new file mode 100644 index 00000000000..41431656cea --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-layout.https.html.ini @@ -0,0 +1,6 @@ +[worklet-layout.https.html] + [Mixed-Content: Expects allowed for worklet-layout to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-layout to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html.ini new file mode 100644 index 00000000000..1dd40f7b8bd --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-paint-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worklet-paint-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-paint-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-paint-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html.ini new file mode 100644 index 00000000000..52e5f390e6f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/worklet-paint.https.html.ini @@ -0,0 +1,6 @@ +[worklet-paint.https.html] + [Mixed-Content: Expects allowed for worklet-paint to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-paint to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..5fdedfb77f9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.http-rp/opt-in/xhr.https.html.ini @@ -0,0 +1,24 @@ +[xhr.https.html] + [Mixed-Content: Expects blocked for xhr to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/audio-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/audio-tag.https.html.ini new file mode 100644 index 00000000000..a9ab0322c26 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/audio-tag.https.html.ini @@ -0,0 +1,2 @@ +[audio-tag.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/beacon.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/beacon.https.html.ini new file mode 100644 index 00000000000..256397774c6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/beacon.https.html.ini @@ -0,0 +1,3 @@ +[beacon.https.html] + [Mixed-Content: Expects allowed for beacon to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..1c9b927041e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects blocked for fetch to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/img-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/img-tag.https.html.ini new file mode 100644 index 00000000000..c0f944cd819 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/img-tag.https.html.ini @@ -0,0 +1,6 @@ +[img-tag.https.html] + [Mixed-Content: Expects blocked for img-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for img-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/link-css-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/link-css-tag.https.html.ini new file mode 100644 index 00000000000..7033f60ba17 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/link-css-tag.https.html.ini @@ -0,0 +1,6 @@ +[link-css-tag.https.html] + [Mixed-Content: Expects blocked for link-css-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/link-prefetch-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/link-prefetch-tag.https.html.ini new file mode 100644 index 00000000000..35eed4b893f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/link-prefetch-tag.https.html.ini @@ -0,0 +1,6 @@ +[link-prefetch-tag.https.html] + [Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/object-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/object-tag.https.html.ini new file mode 100644 index 00000000000..5ebc9b1ede8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/object-tag.https.html.ini @@ -0,0 +1,10 @@ +[object-tag.https.html] + expected: TIMEOUT + [Mixed-Content: Expects allowed for object-tag to same-https origin and no-redirect redirection from https context.] + expected: TIMEOUT + + [Mixed-Content: Expects blocked for object-tag to cross-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to same-http origin and no-redirect redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/picture-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/picture-tag.https.html.ini new file mode 100644 index 00000000000..2ca106c6f72 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/picture-tag.https.html.ini @@ -0,0 +1,6 @@ +[picture-tag.https.html] + [Mixed-Content: Expects blocked for picture-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/script-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/script-tag.https.html.ini new file mode 100644 index 00000000000..4a169093c38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/script-tag.https.html.ini @@ -0,0 +1,6 @@ +[script-tag.https.html] + [Mixed-Content: Expects blocked for script-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-classic.https.html.ini new file mode 100644 index 00000000000..dbae88bae86 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-classic.https.html.ini @@ -0,0 +1,3 @@ +[sharedworker-classic.https.html] + [Mixed-Content: Expects allowed for sharedworker-classic to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-import-data.https.html.ini new file mode 100644 index 00000000000..ee3b09c9d4a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-import-data.https.html.ini @@ -0,0 +1,3 @@ +[sharedworker-import-data.https.html] + [Mixed-Content: Expects allowed for sharedworker-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-import.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-import.https.html.ini new file mode 100644 index 00000000000..c9646beb8d3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-import.https.html.ini @@ -0,0 +1,3 @@ +[sharedworker-import.https.html] + [Mixed-Content: Expects allowed for sharedworker-import to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-module.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-module.https.html.ini new file mode 100644 index 00000000000..b3a85e259b6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/sharedworker-module.https.html.ini @@ -0,0 +1,3 @@ +[sharedworker-module.https.html] + [Mixed-Content: Expects allowed for sharedworker-module to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/video-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/video-tag.https.html.ini new file mode 100644 index 00000000000..933ea12e10c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/video-tag.https.html.ini @@ -0,0 +1,10 @@ +[video-tag.https.html] + expected: TIMEOUT + [Mixed-Content: Expects allowed for video-tag to same-https origin and no-redirect redirection from https context.] + expected: TIMEOUT + + [Mixed-Content: Expects blocked for video-tag to cross-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for video-tag to same-http origin and no-redirect redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..c99cc00b7e5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Mixed-Content: Expects blocked for websocket to cross-ws origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for websocket to same-ws origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worker-import-data.https.html.ini new file mode 100644 index 00000000000..7fa8c06a308 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worker-import-data.https.html.ini @@ -0,0 +1,3 @@ +[worker-import-data.https.html] + [Mixed-Content: Expects allowed for worker-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worker-import.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worker-import.https.html.ini new file mode 100644 index 00000000000..0ae2f304405 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worker-import.https.html.ini @@ -0,0 +1,3 @@ +[worker-import.https.html] + [Mixed-Content: Expects allowed for worker-import to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-animation-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-animation-import-data.https.html.ini new file mode 100644 index 00000000000..1d270469d1f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-animation-import-data.https.html.ini @@ -0,0 +1,3 @@ +[worklet-animation-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-animation-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-animation.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-animation.https.html.ini new file mode 100644 index 00000000000..ab0c9b7bd19 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-animation.https.html.ini @@ -0,0 +1,3 @@ +[worklet-animation.https.html] + [Mixed-Content: Expects allowed for worklet-animation to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-audio-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-audio-import-data.https.html.ini new file mode 100644 index 00000000000..3e1019e0139 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-audio-import-data.https.html.ini @@ -0,0 +1,3 @@ +[worklet-audio-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-audio-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-audio.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-audio.https.html.ini new file mode 100644 index 00000000000..4f7da11a713 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-audio.https.html.ini @@ -0,0 +1,3 @@ +[worklet-audio.https.html] + [Mixed-Content: Expects allowed for worklet-audio to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-layout-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-layout-import-data.https.html.ini new file mode 100644 index 00000000000..54f65f3c037 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-layout-import-data.https.html.ini @@ -0,0 +1,3 @@ +[worklet-layout-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-layout-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-layout.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-layout.https.html.ini new file mode 100644 index 00000000000..645a40dde8c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-layout.https.html.ini @@ -0,0 +1,3 @@ +[worklet-layout.https.html] + [Mixed-Content: Expects allowed for worklet-layout to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-paint-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-paint-import-data.https.html.ini new file mode 100644 index 00000000000..3be1f1bde8f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-paint-import-data.https.html.ini @@ -0,0 +1,3 @@ +[worklet-paint-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-paint-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-paint.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-paint.https.html.ini new file mode 100644 index 00000000000..3408958c873 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/worklet-paint.https.html.ini @@ -0,0 +1,3 @@ +[worklet-paint.https.html] + [Mixed-Content: Expects allowed for worklet-paint to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..ea11f370b4d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/opt-in/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects blocked for xhr to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/audio-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/audio-tag.https.html.ini new file mode 100644 index 00000000000..a9ab0322c26 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/audio-tag.https.html.ini @@ -0,0 +1,2 @@ +[audio-tag.https.html] + expected: CRASH diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/beacon.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/beacon.https.html.ini new file mode 100644 index 00000000000..a910190f49d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/beacon.https.html.ini @@ -0,0 +1,6 @@ +[beacon.https.html] + [Mixed-Content: Expects allowed for beacon to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for beacon to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/fetch.https.html.ini new file mode 100644 index 00000000000..c52c579cef2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Mixed-Content: Expects blocked for fetch to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/link-css-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/link-css-tag.https.html.ini new file mode 100644 index 00000000000..ef780404771 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/link-css-tag.https.html.ini @@ -0,0 +1,18 @@ +[link-css-tag.https.html] + [Mixed-Content: Expects blocked for link-css-tag to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-css-tag to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/link-prefetch-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/link-prefetch-tag.https.html.ini new file mode 100644 index 00000000000..b01983b7c15 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/link-prefetch-tag.https.html.ini @@ -0,0 +1,18 @@ +[link-prefetch-tag.https.html] + [Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for link-prefetch-tag to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/object-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/object-tag.https.html.ini new file mode 100644 index 00000000000..6037098d92e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/object-tag.https.html.ini @@ -0,0 +1,25 @@ +[object-tag.https.html] + expected: TIMEOUT + [Mixed-Content: Expects allowed for object-tag to same-https origin and keep-scheme redirection from https context.] + expected: TIMEOUT + + [Mixed-Content: Expects allowed for object-tag to same-https origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to cross-http origin and keep-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to cross-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to cross-http origin and swap-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to same-http origin and keep-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to same-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects blocked for object-tag to same-http origin and swap-scheme redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/picture-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/picture-tag.https.html.ini new file mode 100644 index 00000000000..c18678390c1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/picture-tag.https.html.ini @@ -0,0 +1,18 @@ +[picture-tag.https.html] + [Mixed-Content: Expects blocked for picture-tag to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for picture-tag to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/script-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/script-tag.https.html.ini new file mode 100644 index 00000000000..efc5f8a60b7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/script-tag.https.html.ini @@ -0,0 +1,18 @@ +[script-tag.https.html] + [Mixed-Content: Expects blocked for script-tag to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for script-tag to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-classic.https.html.ini new file mode 100644 index 00000000000..ad6e0fe3f1e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-classic.https.html.ini @@ -0,0 +1,6 @@ +[sharedworker-classic.https.html] + [Mixed-Content: Expects allowed for sharedworker-classic to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for sharedworker-classic to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-import-data.https.html.ini new file mode 100644 index 00000000000..c07509690c3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-import-data.https.html.ini @@ -0,0 +1,6 @@ +[sharedworker-import-data.https.html] + [Mixed-Content: Expects allowed for sharedworker-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for sharedworker-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-import.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-import.https.html.ini new file mode 100644 index 00000000000..b46d6958b60 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-import.https.html.ini @@ -0,0 +1,6 @@ +[sharedworker-import.https.html] + [Mixed-Content: Expects allowed for sharedworker-import to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for sharedworker-import to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-module.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-module.https.html.ini new file mode 100644 index 00000000000..6569676c7df --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/sharedworker-module.https.html.ini @@ -0,0 +1,6 @@ +[sharedworker-module.https.html] + [Mixed-Content: Expects allowed for sharedworker-module to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for sharedworker-module to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/video-tag.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/video-tag.https.html.ini new file mode 100644 index 00000000000..34eb1c5c1fa --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/video-tag.https.html.ini @@ -0,0 +1,25 @@ +[video-tag.https.html] + expected: TIMEOUT + [Mixed-Content: Expects allowed for video-tag to cross-http origin and keep-scheme redirection from https context.] + expected: TIMEOUT + + [Mixed-Content: Expects allowed for video-tag to cross-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects allowed for video-tag to cross-http origin and swap-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects allowed for video-tag to same-http origin and keep-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects allowed for video-tag to same-http origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects allowed for video-tag to same-http origin and swap-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects allowed for video-tag to same-https origin and keep-scheme redirection from https context.] + expected: NOTRUN + + [Mixed-Content: Expects allowed for video-tag to same-https origin and no-redirect redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/websocket.https.html.ini new file mode 100644 index 00000000000..c99cc00b7e5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Mixed-Content: Expects blocked for websocket to cross-ws origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for websocket to same-ws origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worker-import-data.https.html.ini new file mode 100644 index 00000000000..e427cb8c174 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worker-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worker-import-data.https.html] + [Mixed-Content: Expects allowed for worker-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worker-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worker-import.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worker-import.https.html.ini new file mode 100644 index 00000000000..a4a08ad0465 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worker-import.https.html.ini @@ -0,0 +1,6 @@ +[worker-import.https.html] + [Mixed-Content: Expects allowed for worker-import to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worker-import to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-animation-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-animation-import-data.https.html.ini new file mode 100644 index 00000000000..a3b30621954 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-animation-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worklet-animation-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-animation-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-animation-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-animation.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-animation.https.html.ini new file mode 100644 index 00000000000..ef66d3ee75b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-animation.https.html.ini @@ -0,0 +1,6 @@ +[worklet-animation.https.html] + [Mixed-Content: Expects allowed for worklet-animation to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-animation to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-audio-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-audio-import-data.https.html.ini new file mode 100644 index 00000000000..7705335f336 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-audio-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worklet-audio-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-audio-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-audio-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-audio.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-audio.https.html.ini new file mode 100644 index 00000000000..7b35312875d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-audio.https.html.ini @@ -0,0 +1,6 @@ +[worklet-audio.https.html] + [Mixed-Content: Expects allowed for worklet-audio to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-audio to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-layout-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-layout-import-data.https.html.ini new file mode 100644 index 00000000000..52d857e4aa0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-layout-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worklet-layout-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-layout-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-layout-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-layout.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-layout.https.html.ini new file mode 100644 index 00000000000..41431656cea --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-layout.https.html.ini @@ -0,0 +1,6 @@ +[worklet-layout.https.html] + [Mixed-Content: Expects allowed for worklet-layout to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-layout to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-paint-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-paint-import-data.https.html.ini new file mode 100644 index 00000000000..1dd40f7b8bd --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-paint-import-data.https.html.ini @@ -0,0 +1,6 @@ +[worklet-paint-import-data.https.html] + [Mixed-Content: Expects allowed for worklet-paint-import-data to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-paint-import-data to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-paint.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-paint.https.html.ini new file mode 100644 index 00000000000..52e5f390e6f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/worklet-paint.https.html.ini @@ -0,0 +1,6 @@ +[worklet-paint.https.html] + [Mixed-Content: Expects allowed for worklet-paint to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worklet-paint to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/xhr.https.html.ini new file mode 100644 index 00000000000..4f747045a94 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/top.meta/unset/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Mixed-Content: Expects blocked for xhr to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..c55cf7260f1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/fetch.https.html.ini @@ -0,0 +1,24 @@ +[fetch.https.html] + [Mixed-Content: Expects blocked for fetch to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..c99cc00b7e5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Mixed-Content: Expects blocked for websocket to cross-ws origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for websocket to same-ws origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..5fdedfb77f9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.http-rp/opt-in/xhr.https.html.ini @@ -0,0 +1,24 @@ +[xhr.https.html] + [Mixed-Content: Expects blocked for xhr to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..1c9b927041e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects blocked for fetch to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..c99cc00b7e5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Mixed-Content: Expects blocked for websocket to cross-ws origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for websocket to same-ws origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..ea11f370b4d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/opt-in/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects blocked for xhr to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/fetch.https.html.ini new file mode 100644 index 00000000000..c52c579cef2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Mixed-Content: Expects blocked for fetch to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/websocket.https.html.ini new file mode 100644 index 00000000000..c99cc00b7e5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Mixed-Content: Expects blocked for websocket to cross-ws origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for websocket to same-ws origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/xhr.https.html.ini new file mode 100644 index 00000000000..4f747045a94 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic-data.meta/unset/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Mixed-Content: Expects blocked for xhr to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..c55cf7260f1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/fetch.https.html.ini @@ -0,0 +1,24 @@ +[fetch.https.html] + [Mixed-Content: Expects blocked for fetch to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..c99cc00b7e5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Mixed-Content: Expects blocked for websocket to cross-ws origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for websocket to same-ws origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..5fdedfb77f9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/opt-in/xhr.https.html.ini @@ -0,0 +1,24 @@ +[xhr.https.html] + [Mixed-Content: Expects blocked for xhr to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-https origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-https origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/fetch.https.html.ini new file mode 100644 index 00000000000..c52c579cef2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Mixed-Content: Expects blocked for fetch to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for fetch to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/websocket.https.html.ini new file mode 100644 index 00000000000..c99cc00b7e5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Mixed-Content: Expects blocked for websocket to cross-ws origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for websocket to same-ws origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/xhr.https.html.ini new file mode 100644 index 00000000000..4f747045a94 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-classic.http-rp/unset/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Mixed-Content: Expects blocked for xhr to cross-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to cross-http origin and swap-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and no-redirect redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects blocked for xhr to same-http origin and swap-scheme redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.http-rp/opt-in/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..c069fd74d83 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/fetch.https.html.ini @@ -0,0 +1,3 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..9108efe5a75 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/opt-in/xhr.https.html.ini @@ -0,0 +1,3 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module-data.meta/unset/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/worker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/worker-classic.https.html.ini new file mode 100644 index 00000000000..a820d31f612 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/worker-classic.https.html.ini @@ -0,0 +1,6 @@ +[worker-classic.https.html] + [Mixed-Content: Expects allowed for worker-classic to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worker-classic to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/worker-module.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/worker-module.https.html.ini new file mode 100644 index 00000000000..b8fd55502c6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/worker-module.https.html.ini @@ -0,0 +1,6 @@ +[worker-module.https.html] + [Mixed-Content: Expects allowed for worker-module to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worker-module to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/opt-in/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/fetch.https.html.ini new file mode 100644 index 00000000000..3035f46faff --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/fetch.https.html.ini @@ -0,0 +1,6 @@ +[fetch.https.html] + [Mixed-Content: Expects allowed for fetch to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for fetch to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/websocket.https.html.ini new file mode 100644 index 00000000000..3b327b213f3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/websocket.https.html.ini @@ -0,0 +1,3 @@ +[websocket.https.html] + [Mixed-Content: Expects allowed for websocket to same-wss origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/worker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/worker-classic.https.html.ini new file mode 100644 index 00000000000..a820d31f612 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/worker-classic.https.html.ini @@ -0,0 +1,6 @@ +[worker-classic.https.html] + [Mixed-Content: Expects allowed for worker-classic to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worker-classic to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/worker-module.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/worker-module.https.html.ini new file mode 100644 index 00000000000..b8fd55502c6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/worker-module.https.html.ini @@ -0,0 +1,6 @@ +[worker-module.https.html] + [Mixed-Content: Expects allowed for worker-module to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for worker-module to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/xhr.https.html.ini new file mode 100644 index 00000000000..36dbdf49358 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/gen/worker-module.http-rp/unset/xhr.https.html.ini @@ -0,0 +1,6 @@ +[xhr.https.html] + [Mixed-Content: Expects allowed for xhr to same-https origin and keep-scheme redirection from https context.] + expected: FAIL + + [Mixed-Content: Expects allowed for xhr to same-https origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/imageset.https.sub.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/imageset.https.sub.html.ini new file mode 100644 index 00000000000..d2a8d2414ce --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/imageset.https.sub.html.ini @@ -0,0 +1,3 @@ +[imageset.https.sub.html] + [Makes sure imageset blockable resources are not downloaded] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/nested-iframes.window.js.ini b/tests/wpt/meta-legacy-layout/mixed-content/nested-iframes.window.js.ini new file mode 100644 index 00000000000..3f580055707 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/nested-iframes.window.js.ini @@ -0,0 +1,3 @@ +[nested-iframes.window.html] + [HTTP fetch] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html.ini new file mode 100644 index 00000000000..4fd74c351e1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/audio-upgrade.https.sub.html.ini @@ -0,0 +1,6 @@ +[audio-upgrade.https.sub.html] + [Audio autoupgraded] + expected: FAIL + + [Audio of other host autoupgraded] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/image-upgrade.https.sub.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/image-upgrade.https.sub.html.ini new file mode 100644 index 00000000000..1ef1ffb348b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/image-upgrade.https.sub.html.ini @@ -0,0 +1,6 @@ +[image-upgrade.https.sub.html] + [Image autoupgraded] + expected: FAIL + + [Image of other host autoupgraded] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html.ini new file mode 100644 index 00000000000..11f8aa7ebb0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/mixed-content-cors.https.sub.html.ini @@ -0,0 +1,9 @@ +[mixed-content-cors.https.sub.html] + [Cross-Origin audio should get upgraded even if CORS is set] + expected: FAIL + + [Cross-Origin image should get upgraded even if CORS is set] + expected: FAIL + + [Cross-Origin video should get upgraded even if CORS is set] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/video-upgrade.https.sub.html.ini b/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/video-upgrade.https.sub.html.ini new file mode 100644 index 00000000000..1a55d2c24f9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/mixed-content/tentative/autoupgrades/video-upgrade.https.sub.html.ini @@ -0,0 +1,6 @@ +[video-upgrade.https.sub.html] + [Video autoupgraded] + expected: FAIL + + [Video of other host autoupgraded] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/navigation-timing/test-navigation-type-reload.html.ini b/tests/wpt/meta-legacy-layout/navigation-timing/test-navigation-type-reload.html.ini index f1ae57b08ae..aa4b583f3d9 100644 --- a/tests/wpt/meta-legacy-layout/navigation-timing/test-navigation-type-reload.html.ini +++ b/tests/wpt/meta-legacy-layout/navigation-timing/test-navigation-type-reload.html.ini @@ -17,14 +17,5 @@ [Reload fetchStart > Original fetchStart] expected: FAIL - [Reload domComplete > Original domComplete] - expected: FAIL - [Reload domContentLoadedEventEnd > Original domContentLoadedEventEnd] expected: FAIL - - [Reload loadEventEnd > Original loadEventEnd] - expected: FAIL - - [Reload loadEventStart > Original loadEventStart] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/navigation-id-detached-frame.tentative.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/navigation-id-detached-frame.tentative.html.ini deleted file mode 100644 index 6764c93df51..00000000000 --- a/tests/wpt/meta-legacy-layout/performance-timeline/navigation-id-detached-frame.tentative.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[navigation-id-detached-frame.tentative.html] - expected: TIMEOUT - [The navigation_id getter does not crash a window of detached frame] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/detached-frame.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/detached-frame.html.ini new file mode 100644 index 00000000000..c5aac72fad4 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/detached-frame.html.ini @@ -0,0 +1,2 @@ +[detached-frame.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A-A.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A-A.html.ini new file mode 100644 index 00000000000..3a52ab8c6bb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A-A.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-A-A.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A.html.ini new file mode 100644 index 00000000000..be55d35736e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-A.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-A.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AA.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AA.html.ini new file mode 100644 index 00000000000..53d60ea5e29 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AA.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-AA.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AB.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AB.html.ini new file mode 100644 index 00000000000..f2edd3bd1d8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-AB.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-AB.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-A.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-A.html.ini new file mode 100644 index 00000000000..f9edb91a6d9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-A.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-B-A.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-B.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-B.html.ini new file mode 100644 index 00000000000..fe446b62c4c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B-B.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-B-B.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B.html.ini new file mode 100644 index 00000000000..c37ba79c265 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/include-frames-originA-B.html.ini @@ -0,0 +1,2 @@ +[include-frames-originA-B.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/performance-entry-source.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/performance-entry-source.html.ini new file mode 100644 index 00000000000..9590b722a6d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/performance-entry-source.html.ini @@ -0,0 +1,2 @@ +[performance-entry-source.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/performance-timeline/tentative/with-filter-options-originA.html.ini b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/with-filter-options-originA.html.ini new file mode 100644 index 00000000000..8f143701190 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/performance-timeline/tentative/with-filter-options-originA.html.ini @@ -0,0 +1,2 @@ +[with-filter-options-originA.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/png/apng/acTL-plays-one.html.ini b/tests/wpt/meta-legacy-layout/png/apng/acTL-plays-one.html.ini new file mode 100644 index 00000000000..df4fc37d961 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/acTL-plays-one.html.ini @@ -0,0 +1,2 @@ +[acTL-plays-one.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/acTL-plays-two.html.ini b/tests/wpt/meta-legacy-layout/png/apng/acTL-plays-two.html.ini new file mode 100644 index 00000000000..acde6005d98 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/acTL-plays-two.html.ini @@ -0,0 +1,2 @@ +[acTL-plays-two.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fDAT-inherits-cICP.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fDAT-inherits-cICP.html.ini new file mode 100644 index 00000000000..968f5623efa --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fDAT-inherits-cICP.html.ini @@ -0,0 +1,2 @@ +[fDAT-inherits-cICP.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-acTL-ordering.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-acTL-ordering.html.ini new file mode 100644 index 00000000000..ce1f18676be --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-acTL-ordering.html.ini @@ -0,0 +1,2 @@ +[fcTL-acTL-ordering.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-over-repeatedly.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-over-repeatedly.html.ini new file mode 100644 index 00000000000..0a78ec8a1f6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-over-repeatedly.html.ini @@ -0,0 +1,2 @@ +[fcTL-blend-over-repeatedly.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-over-solid.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-over-solid.html.ini new file mode 100644 index 00000000000..60baf16c0e6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-over-solid.html.ini @@ -0,0 +1,2 @@ +[fcTL-blend-over-solid.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-nearly-transparent.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-nearly-transparent.html.ini new file mode 100644 index 00000000000..a8cac47de86 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-nearly-transparent.html.ini @@ -0,0 +1,2 @@ +[fcTL-blend-source-nearly-transparent.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-solid.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-solid.html.ini new file mode 100644 index 00000000000..09a4db8843e --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-solid.html.ini @@ -0,0 +1,2 @@ +[fcTL-blend-source-solid.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-transparent.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-transparent.html.ini new file mode 100644 index 00000000000..617b4d394d6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-blend-source-transparent.html.ini @@ -0,0 +1,2 @@ +[fcTL-blend-source-transparent.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-background-final.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-background-final.html.ini new file mode 100644 index 00000000000..1f43155d865 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-background-final.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-background-final.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-background.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-background.html.ini new file mode 100644 index 00000000000..fbb8db60168 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-background.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-background.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-before-region-background.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-before-region-background.html.ini new file mode 100644 index 00000000000..b6bf751063a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-before-region-background.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-before-region-background.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-background.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-background.html.ini new file mode 100644 index 00000000000..bf233007b31 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-background.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-in-region-background.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-none.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-none.html.ini new file mode 100644 index 00000000000..d6c0047d3d6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-none.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-in-region-none.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-previous.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-previous.html.ini new file mode 100644 index 00000000000..78faf0b3d95 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-in-region-previous.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-in-region-previous.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-none.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-none.html.ini new file mode 100644 index 00000000000..825d663cc68 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-none.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-none.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous-final.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous-final.html.ini new file mode 100644 index 00000000000..feb5b773165 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous-final.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-previous-final.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous-first.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous-first.html.ini new file mode 100644 index 00000000000..9fcf8c059f2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous-first.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-previous-first.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous.html.ini new file mode 100644 index 00000000000..7cfea0bb9f9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fcTL-dispose-previous.html.ini @@ -0,0 +1,2 @@ +[fcTL-dispose-previous.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fdAT-16bit.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fdAT-16bit.html.ini new file mode 100644 index 00000000000..c61a6fe94d0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fdAT-16bit.html.ini @@ -0,0 +1,2 @@ +[fdAT-16bit.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fdAT-1bit-PLTE-tRNS.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fdAT-1bit-PLTE-tRNS.html.ini new file mode 100644 index 00000000000..9752f047ef7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fdAT-1bit-PLTE-tRNS.html.ini @@ -0,0 +1,2 @@ +[fdAT-1bit-PLTE-tRNS.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fdAT-1bit-PLTE.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fdAT-1bit-PLTE.html.ini new file mode 100644 index 00000000000..ef7e7278ea9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fdAT-1bit-PLTE.html.ini @@ -0,0 +1,2 @@ +[fdAT-1bit-PLTE.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fdAT-2bit-PLTE-tRNS.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fdAT-2bit-PLTE-tRNS.html.ini new file mode 100644 index 00000000000..6a13abde944 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fdAT-2bit-PLTE-tRNS.html.ini @@ -0,0 +1,2 @@ +[fdAT-2bit-PLTE-tRNS.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fdAT-8bit-gray-alpha.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fdAT-8bit-gray-alpha.html.ini new file mode 100644 index 00000000000..5f6084489bb --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fdAT-8bit-gray-alpha.html.ini @@ -0,0 +1,2 @@ +[fdAT-8bit-gray-alpha.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fdAT-8bit-gray.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fdAT-8bit-gray.html.ini new file mode 100644 index 00000000000..2cbf3d50e06 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fdAT-8bit-gray.html.ini @@ -0,0 +1,2 @@ +[fdAT-8bit-gray.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fdAT-split-basic.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fdAT-split-basic.html.ini new file mode 100644 index 00000000000..454d7b5a91a --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fdAT-split-basic.html.ini @@ -0,0 +1,2 @@ +[fdAT-split-basic.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/fdAT-split-zero-length.html.ini b/tests/wpt/meta-legacy-layout/png/apng/fdAT-split-zero-length.html.ini new file mode 100644 index 00000000000..e60f49f6564 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/fdAT-split-zero-length.html.ini @@ -0,0 +1,2 @@ +[fdAT-split-zero-length.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/apng/first-frame-not-IDAT.html.ini b/tests/wpt/meta-legacy-layout/png/apng/first-frame-not-IDAT.html.ini new file mode 100644 index 00000000000..cc776779f30 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/apng/first-frame-not-IDAT.html.ini @@ -0,0 +1,2 @@ +[first-frame-not-IDAT.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/cICP-wins.html.ini b/tests/wpt/meta-legacy-layout/png/cICP-wins.html.ini new file mode 100644 index 00000000000..ff60c4f48d8 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/cICP-wins.html.ini @@ -0,0 +1,2 @@ +[cICP-wins.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/cicp-chunk.html.ini b/tests/wpt/meta-legacy-layout/png/cicp-chunk.html.ini new file mode 100644 index 00000000000..cbf99c1b030 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/cicp-chunk.html.ini @@ -0,0 +1,3 @@ +[cicp-chunk.html] + [test pixel values of a display-p3 PNG] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/png/exif-chunk.html.ini b/tests/wpt/meta-legacy-layout/png/exif-chunk.html.ini new file mode 100644 index 00000000000..327e7c9f4e6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/png/exif-chunk.html.ini @@ -0,0 +1,3 @@ +[exif-chunk.html] + [test pixel values of a rotated PNG] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/secure-contexts/basic-shared-worker.html.ini b/tests/wpt/meta-legacy-layout/secure-contexts/basic-shared-worker.html.ini index b53efb6cd6f..a14bab3e6d1 100644 --- a/tests/wpt/meta-legacy-layout/secure-contexts/basic-shared-worker.html.ini +++ b/tests/wpt/meta-legacy-layout/secure-contexts/basic-shared-worker.html.ini @@ -11,3 +11,5 @@ [Nested worker from shared worker from https subframe] expected: FAIL + [Shared worker from data URL] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/secure-contexts/basic-shared-worker.https.html.ini b/tests/wpt/meta-legacy-layout/secure-contexts/basic-shared-worker.https.html.ini index d46303a086c..ffc0f5b06cc 100644 --- a/tests/wpt/meta-legacy-layout/secure-contexts/basic-shared-worker.https.html.ini +++ b/tests/wpt/meta-legacy-layout/secure-contexts/basic-shared-worker.https.html.ini @@ -11,3 +11,5 @@ [Nested worker from shared worker from https subframe] expected: FAIL + [Shared worker from data URL] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag.https.html.ini new file mode 100644 index 00000000000..97edeaf0942 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/unset/iframe-tag.https.html.ini @@ -0,0 +1,19 @@ +[iframe-tag.https.html] + expected: TIMEOUT + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: TIMEOUT + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-https origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-https origin and downgrade redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag.https.html.ini new file mode 100644 index 00000000000..1c3bc12c5e0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/iframe-tag.https.html.ini @@ -0,0 +1,19 @@ +[iframe-tag.https.html] + expected: TIMEOUT + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: TIMEOUT + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-https origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-https origin and downgrade redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag.https.html.ini new file mode 100644 index 00000000000..cb6dbd84767 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/img-tag.https.html.ini @@ -0,0 +1,18 @@ +[img-tag.https.html] + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic.https.html.ini new file mode 100644 index 00000000000..783e6204039 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-classic.https.html.ini @@ -0,0 +1,9 @@ +[sharedworker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import-data.https.html.ini new file mode 100644 index 00000000000..1774b2dedb1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import-data.https.html.ini @@ -0,0 +1,18 @@ +[sharedworker-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import.https.html.ini new file mode 100644 index 00000000000..571345c528f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import.https.html.ini @@ -0,0 +1,18 @@ +[sharedworker-import.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-module.https.html.ini new file mode 100644 index 00000000000..baf73d6089d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-module.https.html.ini @@ -0,0 +1,9 @@ +[sharedworker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic.https.html.ini new file mode 100644 index 00000000000..4eb59410318 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-classic.https.html.ini @@ -0,0 +1,9 @@ +[worker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data.https.html.ini new file mode 100644 index 00000000000..80f7174a68c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worker-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import.https.html.ini new file mode 100644 index 00000000000..a5678024960 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-import.https.html.ini @@ -0,0 +1,18 @@ +[worker-import.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module.https.html.ini new file mode 100644 index 00000000000..ea11bb56f99 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worker-module.https.html.ini @@ -0,0 +1,9 @@ +[worker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data.https.html.ini new file mode 100644 index 00000000000..848048dd503 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-animation-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation.https.html.ini new file mode 100644 index 00000000000..0712a2bfdc7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-animation.https.html.ini @@ -0,0 +1,18 @@ +[worklet-animation.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data.https.html.ini new file mode 100644 index 00000000000..6502237e722 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-audio-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio.https.html.ini new file mode 100644 index 00000000000..be3a7d30f4f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-audio.https.html.ini @@ -0,0 +1,18 @@ +[worklet-audio.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data.https.html.ini new file mode 100644 index 00000000000..39c9aa365f5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-layout-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout.https.html.ini new file mode 100644 index 00000000000..6d3b043a071 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-layout.https.html.ini @@ -0,0 +1,18 @@ +[worklet-layout.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data.https.html.ini new file mode 100644 index 00000000000..bce2826168b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-paint-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint.https.html.ini new file mode 100644 index 00000000000..c9ad05b70da --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/worklet-paint.https.html.ini @@ -0,0 +1,18 @@ +[worklet-paint.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-classic.http-rp/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/sharedworker-module.http-rp/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag.https.html.ini new file mode 100644 index 00000000000..97edeaf0942 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/unset/iframe-tag.https.html.ini @@ -0,0 +1,19 @@ +[iframe-tag.https.html] + expected: TIMEOUT + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: TIMEOUT + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-https origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-https origin and downgrade redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag.https.html.ini new file mode 100644 index 00000000000..1c3bc12c5e0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/iframe-tag.https.html.ini @@ -0,0 +1,19 @@ +[iframe-tag.https.html] + expected: TIMEOUT + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: TIMEOUT + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-https origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-https origin and downgrade redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag.https.html.ini new file mode 100644 index 00000000000..cb6dbd84767 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/img-tag.https.html.ini @@ -0,0 +1,18 @@ +[img-tag.https.html] + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic.https.html.ini new file mode 100644 index 00000000000..783e6204039 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-classic.https.html.ini @@ -0,0 +1,9 @@ +[sharedworker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-import-data.https.html.ini new file mode 100644 index 00000000000..1774b2dedb1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-import-data.https.html.ini @@ -0,0 +1,18 @@ +[sharedworker-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-import.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-import.https.html.ini new file mode 100644 index 00000000000..571345c528f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-import.https.html.ini @@ -0,0 +1,18 @@ +[sharedworker-import.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-module.https.html.ini new file mode 100644 index 00000000000..baf73d6089d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-module.https.html.ini @@ -0,0 +1,9 @@ +[sharedworker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic.https.html.ini new file mode 100644 index 00000000000..4eb59410318 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-classic.https.html.ini @@ -0,0 +1,9 @@ +[worker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data.https.html.ini new file mode 100644 index 00000000000..80f7174a68c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worker-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import.https.html.ini new file mode 100644 index 00000000000..a5678024960 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-import.https.html.ini @@ -0,0 +1,18 @@ +[worker-import.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module.https.html.ini new file mode 100644 index 00000000000..ea11bb56f99 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worker-module.https.html.ini @@ -0,0 +1,9 @@ +[worker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data.https.html.ini new file mode 100644 index 00000000000..848048dd503 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-animation-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation.https.html.ini new file mode 100644 index 00000000000..0712a2bfdc7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-animation.https.html.ini @@ -0,0 +1,18 @@ +[worklet-animation.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data.https.html.ini new file mode 100644 index 00000000000..6502237e722 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-audio-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio.https.html.ini new file mode 100644 index 00000000000..be3a7d30f4f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-audio.https.html.ini @@ -0,0 +1,18 @@ +[worklet-audio.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data.https.html.ini new file mode 100644 index 00000000000..39c9aa365f5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-layout-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout.https.html.ini new file mode 100644 index 00000000000..6d3b043a071 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-layout.https.html.ini @@ -0,0 +1,18 @@ +[worklet-layout.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data.https.html.ini new file mode 100644 index 00000000000..bce2826168b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-paint-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint.https.html.ini new file mode 100644 index 00000000000..c9ad05b70da --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/worklet-paint.https.html.ini @@ -0,0 +1,18 @@ +[worklet-paint.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag.https.html.ini new file mode 100644 index 00000000000..1c3bc12c5e0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/iframe-tag.https.html.ini @@ -0,0 +1,19 @@ +[iframe-tag.https.html] + expected: TIMEOUT + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: TIMEOUT + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-https origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-https origin and downgrade redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag.https.html.ini new file mode 100644 index 00000000000..cb6dbd84767 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/img-tag.https.html.ini @@ -0,0 +1,18 @@ +[img-tag.https.html] + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic.https.html.ini new file mode 100644 index 00000000000..783e6204039 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-classic.https.html.ini @@ -0,0 +1,9 @@ +[sharedworker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-import-data.https.html.ini new file mode 100644 index 00000000000..1774b2dedb1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-import-data.https.html.ini @@ -0,0 +1,18 @@ +[sharedworker-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-import.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-import.https.html.ini new file mode 100644 index 00000000000..571345c528f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-import.https.html.ini @@ -0,0 +1,18 @@ +[sharedworker-import.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-module.https.html.ini new file mode 100644 index 00000000000..baf73d6089d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-module.https.html.ini @@ -0,0 +1,9 @@ +[sharedworker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic.https.html.ini new file mode 100644 index 00000000000..4eb59410318 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-classic.https.html.ini @@ -0,0 +1,9 @@ +[worker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data.https.html.ini new file mode 100644 index 00000000000..80f7174a68c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worker-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import.https.html.ini new file mode 100644 index 00000000000..a5678024960 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-import.https.html.ini @@ -0,0 +1,18 @@ +[worker-import.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module.https.html.ini new file mode 100644 index 00000000000..ea11bb56f99 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worker-module.https.html.ini @@ -0,0 +1,9 @@ +[worker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data.https.html.ini new file mode 100644 index 00000000000..848048dd503 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-animation-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation.https.html.ini new file mode 100644 index 00000000000..0712a2bfdc7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-animation.https.html.ini @@ -0,0 +1,18 @@ +[worklet-animation.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data.https.html.ini new file mode 100644 index 00000000000..6502237e722 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-audio-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio.https.html.ini new file mode 100644 index 00000000000..be3a7d30f4f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-audio.https.html.ini @@ -0,0 +1,18 @@ +[worklet-audio.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data.https.html.ini new file mode 100644 index 00000000000..39c9aa365f5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-layout-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout.https.html.ini new file mode 100644 index 00000000000..6d3b043a071 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-layout.https.html.ini @@ -0,0 +1,18 @@ +[worklet-layout.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data.https.html.ini new file mode 100644 index 00000000000..bce2826168b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-paint-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint.https.html.ini new file mode 100644 index 00000000000..c9ad05b70da --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/worklet-paint.https.html.ini @@ -0,0 +1,18 @@ +[worklet-paint.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.http-rp/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag.https.html.ini new file mode 100644 index 00000000000..97edeaf0942 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/unset/iframe-tag.https.html.ini @@ -0,0 +1,19 @@ +[iframe-tag.https.html] + expected: TIMEOUT + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: TIMEOUT + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to cross-https origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects blocked for iframe-tag to same-https origin and downgrade redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag.https.html.ini new file mode 100644 index 00000000000..1c3bc12c5e0 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/iframe-tag.https.html.ini @@ -0,0 +1,19 @@ +[iframe-tag.https.html] + expected: TIMEOUT + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: TIMEOUT + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to cross-https origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: NOTRUN + + [Upgrade-Insecure-Requests: Expects allowed for iframe-tag to same-https origin and downgrade redirection from https context.] + expected: NOTRUN diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag.https.html.ini new file mode 100644 index 00000000000..cb6dbd84767 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/img-tag.https.html.ini @@ -0,0 +1,18 @@ +[img-tag.https.html] + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for img-tag to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic.https.html.ini new file mode 100644 index 00000000000..783e6204039 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-classic.https.html.ini @@ -0,0 +1,9 @@ +[sharedworker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-import-data.https.html.ini new file mode 100644 index 00000000000..1774b2dedb1 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-import-data.https.html.ini @@ -0,0 +1,18 @@ +[sharedworker-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-import.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-import.https.html.ini new file mode 100644 index 00000000000..571345c528f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-import.https.html.ini @@ -0,0 +1,18 @@ +[sharedworker-import.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-import to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-module.https.html.ini new file mode 100644 index 00000000000..baf73d6089d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-module.https.html.ini @@ -0,0 +1,9 @@ +[sharedworker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for sharedworker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic.https.html.ini new file mode 100644 index 00000000000..4eb59410318 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-classic.https.html.ini @@ -0,0 +1,9 @@ +[worker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data.https.html.ini new file mode 100644 index 00000000000..80f7174a68c --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worker-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import.https.html.ini new file mode 100644 index 00000000000..a5678024960 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-import.https.html.ini @@ -0,0 +1,18 @@ +[worker-import.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-import to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module.https.html.ini new file mode 100644 index 00000000000..ea11bb56f99 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worker-module.https.html.ini @@ -0,0 +1,9 @@ +[worker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data.https.html.ini new file mode 100644 index 00000000000..848048dd503 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-animation-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation.https.html.ini new file mode 100644 index 00000000000..0712a2bfdc7 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-animation.https.html.ini @@ -0,0 +1,18 @@ +[worklet-animation.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-animation to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data.https.html.ini new file mode 100644 index 00000000000..6502237e722 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-audio-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio.https.html.ini new file mode 100644 index 00000000000..be3a7d30f4f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-audio.https.html.ini @@ -0,0 +1,18 @@ +[worklet-audio.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-audio to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data.https.html.ini new file mode 100644 index 00000000000..39c9aa365f5 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-layout-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout.https.html.ini new file mode 100644 index 00000000000..6d3b043a071 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-layout.https.html.ini @@ -0,0 +1,18 @@ +[worklet-layout.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-layout to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data.https.html.ini new file mode 100644 index 00000000000..bce2826168b --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint-import-data.https.html.ini @@ -0,0 +1,18 @@ +[worklet-paint-import-data.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint-import-data to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint.https.html.ini new file mode 100644 index 00000000000..c9ad05b70da --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/worklet-paint.https.html.ini @@ -0,0 +1,18 @@ +[worklet-paint.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worklet-paint to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/top.meta/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic-data.meta/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-classic.https.html.ini new file mode 100644 index 00000000000..4eb59410318 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-classic.https.html.ini @@ -0,0 +1,9 @@ +[worker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-module.https.html.ini new file mode 100644 index 00000000000..ea11bb56f99 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/worker-module.https.html.ini @@ -0,0 +1,9 @@ +[worker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-classic.http-rp/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.http-rp/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module-data.meta/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/fetch.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/fetch.https.html.ini new file mode 100644 index 00000000000..fc6faad77d2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/fetch.https.html.ini @@ -0,0 +1,18 @@ +[fetch.https.html] + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for fetch to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/websocket.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/websocket.https.html.ini new file mode 100644 index 00000000000..4f1c9429f38 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/websocket.https.html.ini @@ -0,0 +1,6 @@ +[websocket.https.html] + [Upgrade-Insecure-Requests: Expects allowed for websocket to cross-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for websocket to same-ws-downgrade origin and no-redirect redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-classic.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-classic.https.html.ini new file mode 100644 index 00000000000..4eb59410318 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-classic.https.html.ini @@ -0,0 +1,9 @@ +[worker-classic.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-classic to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-module.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-module.https.html.ini new file mode 100644 index 00000000000..ea11bb56f99 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/worker-module.https.html.ini @@ -0,0 +1,9 @@ +[worker-module.https.html] + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for worker-module to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/xhr.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/xhr.https.html.ini new file mode 100644 index 00000000000..8e7eac1f2a6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/gen/worker-module.http-rp/upgrade/xhr.https.html.ini @@ -0,0 +1,18 @@ +[xhr.https.html] + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to cross-https origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and downgrade redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-http-downgrade origin and no-redirect redirection from https context.] + expected: FAIL + + [Upgrade-Insecure-Requests: Expects allowed for xhr to same-https origin and downgrade redirection from https context.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/link-upgrade.sub.https.html.ini b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/link-upgrade.sub.https.html.ini new file mode 100644 index 00000000000..32a918e7f49 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/upgrade-insecure-requests/link-upgrade.sub.https.html.ini @@ -0,0 +1,21 @@ +[link-upgrade.sub.https.html] + [./link-upgrade/basic-link-upgrade.sub.html] + expected: TIMEOUT + + [./link-upgrade/iframe-link-upgrade.sub.html] + expected: TIMEOUT + + [./link-upgrade/iframe-top-navigation-no-upgrade-1.sub.html] + expected: TIMEOUT + + [./link-upgrade/iframe-top-navigation-no-upgrade-2.sub.html] + expected: TIMEOUT + + [./link-upgrade/iframe-top-navigation-upgrade-1.sub.html] + expected: TIMEOUT + + [./link-upgrade/iframe-top-navigation-upgrade-2.sub.html] + expected: TIMEOUT + + [./link-upgrade/iframe-top-navigation-upgrade-meta.sub.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini b/tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini deleted file mode 100644 index 80f9a4f15b8..00000000000 --- a/tests/wpt/meta-legacy-layout/workers/constructors/Worker/Worker-constructor.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[Worker-constructor.html] - expected: ERROR diff --git a/tests/wpt/meta-legacy-layout/xhr/blob-range.any.js.ini b/tests/wpt/meta-legacy-layout/xhr/blob-range.any.js.ini index e743d94658e..070b457631a 100644 --- a/tests/wpt/meta-legacy-layout/xhr/blob-range.any.js.ini +++ b/tests/wpt/meta-legacy-layout/xhr/blob-range.any.js.ini @@ -1,25 +1,10 @@ [blob-range.any.worker.html] - [A simple blob range request.] - expected: FAIL - [A blob range request with no type.] expected: FAIL - [A blob range request with no end.] - expected: FAIL - - [A blob range request with no start.] - expected: FAIL - [A simple blob range request with whitespace.] expected: FAIL - [Blob content with short content and a large range end] - expected: FAIL - - [Blob content with short content and a range end matching content length] - expected: FAIL - [Blob range with whitespace before and after hyphen] expected: FAIL @@ -82,27 +67,12 @@ [blob-range.any.html] - [A simple blob range request.] - expected: FAIL - [A blob range request with no type.] expected: FAIL - [A blob range request with no end.] - expected: FAIL - - [A blob range request with no start.] - expected: FAIL - [A simple blob range request with whitespace.] expected: FAIL - [Blob content with short content and a large range end] - expected: FAIL - - [Blob content with short content and a range end matching content length] - expected: FAIL - [Blob range with whitespace before and after hyphen] expected: FAIL diff --git a/tests/wpt/meta/FileAPI/BlobURL/cross-partition-navigation.https.html.ini b/tests/wpt/meta/FileAPI/BlobURL/cross-partition-navigation.https.html.ini index 3c7c17746a5..05afc6a3f56 100644 --- a/tests/wpt/meta/FileAPI/BlobURL/cross-partition-navigation.https.html.ini +++ b/tests/wpt/meta/FileAPI/BlobURL/cross-partition-navigation.https.html.ini @@ -8,3 +8,6 @@ [Blob URL area element click should enforce noopener for a cross-top-level-site navigation] expected: TIMEOUT + + [Blob URL should partition subframe navigation.] + expected: FAIL diff --git a/tests/wpt/meta/FileAPI/url/url-in-tags-revoke.window.js.ini b/tests/wpt/meta/FileAPI/url/url-in-tags-revoke.window.js.ini index 62c2d998e8f..745f3e84edb 100644 --- a/tests/wpt/meta/FileAPI/url/url-in-tags-revoke.window.js.ini +++ b/tests/wpt/meta/FileAPI/url/url-in-tags-revoke.window.js.ini @@ -14,3 +14,6 @@ [Opening a blob URL in a new window by clicking an tag works immediately before revoking the URL.] expected: TIMEOUT + + [Fetching a blob URL immediately before revoking it works in - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore.any.js b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore.any.js new file mode 100644 index 00000000000..ea65e2e53a3 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore.any.js @@ -0,0 +1,305 @@ +// META: title=IDBDatabase.createObjectStore() +// META: global=window,worker +// META: script=resources/support.js + +// Spec: https://w3c.github.io/IndexedDB/#dom-idbdatabase-createobjectstore + +'use strict'; + +async_test(t => { + let db; + let open_rq = createdb(t); + open_rq.onupgradeneeded = function(e) { + db = e.target.result; + let store = db.createObjectStore(''); + + for (let i = 0; i < 5; i++) + store.add({idx: 'object_' + i}, i); + + store.createIndex('', 'idx'); + + store.get(4).onsuccess = t.step_func(function(e) { + assert_equals(e.target.result.idx, 'object_4', 'result'); + }); + assert_equals(store.indexNames[0], '', 'indexNames[0]'); + assert_equals(store.indexNames.length, 1, 'indexNames.length'); + }; + + open_rq.onsuccess = function() { + let store = db.transaction('').objectStore(''); + + assert_equals(store.indexNames[0], '', 'indexNames[0]'); + assert_equals(store.indexNames.length, 1, 'indexNames.length'); + + store.index('').get('object_4').onsuccess = t.step_func(function(e) { + assert_equals(e.target.result.idx, 'object_4', 'result'); + t.done(); + }); + }; +}, 'Both with empty name'); + +async_test(t => { + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + let db = e.target.result; + let objStore = db.createObjectStore('instancetest'); + + assert_true( + objStore instanceof IDBObjectStore, 'instanceof IDBObjectStore'); + }; + + open_rq.onsuccess = function(e) { + let db = e.target.result; + let objStore = + db.transaction('instancetest', 'readonly').objectStore('instancetest'); + + assert_true( + objStore instanceof IDBObjectStore, 'instanceof IDBObjectStore'); + t.done(); + }; +}, 'Returns an instance of IDBObjectStore'); + +async_test(t => { + let db; + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + db = e.target.result; + let store; + let i; + for (i = 0; i < 1000; i++) { + store = db.createObjectStore('object_store_' + i); + store.add('test', 1); + } + + store.get(1).onsuccess = t.step_func(function(e) { + assert_equals(e.target.result, 'test'); + }); + }; + open_rq.onsuccess = function(e) { + db.close(); + self.indexedDB.deleteDatabase(db.name).onsuccess = function(e) { + t.done(); + } + }; +}, 'Create 1000 object stores, add one item and delete'); + +async_test(t => { + let db; + let open_rq = createdb(t); + open_rq.onupgradeneeded = function(e) { + db = e.target.result; + let store = db.createObjectStore(''); + + for (let i = 0; i < 5; i++) + store.add('object_' + i, i); + + assert_equals(db.objectStoreNames[0], '', 'db.objectStoreNames[0]'); + assert_equals(db.objectStoreNames.length, 1, 'objectStoreNames.length'); + }; + + open_rq.onsuccess = function() { + let store = db.transaction('').objectStore(''); + + store.get(2).onsuccess = t.step_func(function(e) { + assert_equals(e.target.result, 'object_2'); + }) + + assert_equals(db.objectStoreNames[0], '', 'db.objectStoreNames[0]'); + assert_equals(db.objectStoreNames.length, 1, 'objectStoreNames.length'); + + t.done(); + }; +}, 'Empty name'); + +async_test(t => { + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + let db = e.target.result; + db.createObjectStore('store'); + assert_throws_dom('ConstraintError', function() { + db.createObjectStore('store', { + keyPath: 'key1', + }); + }); + t.done(); + }; +}, 'Attempting to create an existing object store with a different keyPath throw ConstraintError '); + +async_test(t => { + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + let db = e.target.result; + let objStore = db.createObjectStore('prop', {keyPath: 'mykeypath'}); + + assert_equals(objStore.name, 'prop', 'object store name'); + assert_equals(objStore.keyPath, 'mykeypath', 'key path'); + assert_equals(objStore.autoIncrement, false, 'auto increment'); + }; + + open_rq.onsuccess = function(e) { + let db = e.target.result; + let objStore = db.transaction('prop', 'readonly').objectStore('prop'); + + assert_equals(objStore.name, 'prop', 'object store name'); + assert_equals(objStore.keyPath, 'mykeypath', 'key path'); + assert_equals(objStore.autoIncrement, false, 'auto increment'); + t.done(); + }; +}, 'Object store \'name\' and \'keyPath\' properties are correctly set '); + +async_test(t => { + let open_rq = createdb(t); + open_rq.onupgradeneeded = function() {}; + open_rq.onsuccess = function(e) { + let db = e.target.result; + assert_throws_dom('InvalidStateError', function() { + db.createObjectStore('fails') + }); + t.done(); + }; +}, 'Attempt to create an object store outside of a version change transaction '); + +async_test(t => { + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + let db = e.target.result; + db.createObjectStore('dupe'); + assert_throws_dom('ConstraintError', function() { + db.createObjectStore('dupe'); + }); + + // Bonus test creating a new objectstore after the exception + db.createObjectStore('dupe '); + t.done(); + }; +}, 'Attempt to create an object store that already exists '); + +async_test(t => { + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + let db = e.target.result; + + db.createObjectStore('My cool object store name'); + assert_true( + db.objectStoreNames.contains('My cool object store name'), + 'objectStoreNames.contains'); + }; + + open_rq.onsuccess = function(e) { + let db = e.target.result; + + assert_true( + db.objectStoreNames.contains('My cool object store name'), + 'objectStoreNames.contains (in success)'); + t.done(); + }; +}, 'Object store\'s name appears in database\'s list '); + +async_test(t => { + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + let db = e.target.result; + + assert_throws_dom('SyntaxError', function() { + db.createObjectStore('invalidkeypath', {keyPath: 'Invalid Keypath'}) + }); + + assert_throws_dom('SyntaxError', function() { + db.createObjectStore( + 'invalidkeypath', {autoIncrement: true, keyPath: 'Invalid Keypath'}) + }); + + t.done(); + }; +}, 'Attempt to create an object store with an invalid key path '); + +async_test(t => { + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + let db = e.target.result; + db.createObjectStore('with unknown param', {parameter: 0}); + + t.done(); + }; +}, 'Create an object store with an unknown optional parameter '); + +function optionalParameters(desc, params, t) { + promise_test(t => { + return new Promise((resolve, reject) => { + const request = createdb(t); + request.onupgradeneeded = t.step_func(function(e) { + e.target.result.createObjectStore('store', params); + resolve(); + }); + }); + }, desc); +} + +optionalParameters('autoInc true', {autoIncrement: true}); + +optionalParameters( + 'autoInc true, keyPath null', {autoIncrement: true, keyPath: null}); + +optionalParameters( + 'autoInc true, keyPath undefined', + {autoIncrement: true, keyPath: undefined}); + +optionalParameters( + 'autoInc true, keyPath string', {autoIncrement: true, keyPath: 'a'}); + +optionalParameters( + 'autoInc false, keyPath empty', {autoIncrement: false, keyPath: ''}); + +optionalParameters( + 'autoInc false, keyPath array', + {autoIncrement: false, keyPath: ['h', 'j']}); + +optionalParameters( + 'autoInc false, keyPath string', {autoIncrement: false, keyPath: 'abc'}); + +optionalParameters('keyPath empty', {keyPath: ''}); + +optionalParameters('keyPath array', {keyPath: ['a', 'b']}); + +optionalParameters('keyPath string', {keyPath: 'abc'}); + +optionalParameters('keyPath null', {keyPath: null}); + +optionalParameters('keyPath undefined', {keyPath: undefined}); + +function invalid_optionalParameters( + desc, params, exception = 'InvalidAccessError') { + promise_test(t => { + return new Promise((resolve, reject) => { + const request = createdb(t); + request.onupgradeneeded = t.step_func(function(e) { + assert_throws_dom(exception, function() { + e.target.result.createObjectStore('store', params); + }); + resolve(); + }); + }); + }, desc); +} + +invalid_optionalParameters( + 'autoInc and empty keyPath', {autoIncrement: true, keyPath: ''}); + +invalid_optionalParameters( + 'autoInc and keyPath array', {autoIncrement: true, keyPath: []}, + 'SyntaxError'); + +invalid_optionalParameters( + 'autoInc and keyPath array 2', {autoIncrement: true, keyPath: ['hey']}); + +invalid_optionalParameters( + 'autoInc and keyPath object', + {autoIncrement: true, keyPath: {a: 'hey', b: 2}}, 'SyntaxError'); diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore.htm deleted file mode 100644 index cf0651ceb50..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore.htm +++ /dev/null @@ -1,29 +0,0 @@ - -IDBDatabase.createObjectStore() - returns an instance of IDBObjectStore - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore10-1000ends.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore10-1000ends.htm deleted file mode 100644 index 6997562d3ae..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore10-1000ends.htm +++ /dev/null @@ -1,37 +0,0 @@ - -IDBDatabase.createObjectStore() - create 1000 object stores, add one item and delete - - - - - - - - -
- - diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore10-emptyname.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore10-emptyname.htm deleted file mode 100644 index 0ed28e9e7ee..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore10-emptyname.htm +++ /dev/null @@ -1,38 +0,0 @@ - - -IDBDatabase.createObjectStore() - empty name - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore11.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore11.htm deleted file mode 100644 index f1a9310c070..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore11.htm +++ /dev/null @@ -1,25 +0,0 @@ - - -IDBDatabase.createObjectStore() - attempting to create an existing object store with a different keyPath throw ConstraintError - - - - - -
- - diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore2.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore2.htm deleted file mode 100644 index d5a98ec8ed7..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore2.htm +++ /dev/null @@ -1,33 +0,0 @@ - -IDBDatabase.createObjectStore() - object store 'name' and 'keyPath' properties are correctly set - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore3.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore3.htm deleted file mode 100644 index d0006bfe1fa..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore3.htm +++ /dev/null @@ -1,24 +0,0 @@ - -IDBDatabase.createObjectStore() - attempt to create an object store outside of a version change transaction - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore4.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore4.htm deleted file mode 100644 index bd5989335a4..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore4.htm +++ /dev/null @@ -1,27 +0,0 @@ - -IDBDatabase.createObjectStore() - attempt to create an object store that already exists - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore5.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore5.htm deleted file mode 100644 index a30b73c5946..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore5.htm +++ /dev/null @@ -1,33 +0,0 @@ - -IDBDatabase.createObjectStore() - object store's name appears in database's list - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore6.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore6.htm deleted file mode 100644 index 54a2df81e9d..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore6.htm +++ /dev/null @@ -1,30 +0,0 @@ - -IDBDatabase.createObjectStore() - attempt to create an object store with an invalid key path - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore7.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore7.htm deleted file mode 100644 index b2a7a03b1c8..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore7.htm +++ /dev/null @@ -1,25 +0,0 @@ - -IDBDatabase.createObjectStore() - create an object store with an unknown optional parameter - - - - - - - - -
- - diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore8-parameters.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore8-parameters.htm deleted file mode 100644 index 99a473d4187..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore8-parameters.htm +++ /dev/null @@ -1,39 +0,0 @@ - - -IDBObjectStoreParameters - - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore9-invalidparameters.htm b/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore9-invalidparameters.htm deleted file mode 100644 index 65b7535abba..00000000000 --- a/tests/wpt/tests/IndexedDB/idbdatabase_createObjectStore9-invalidparameters.htm +++ /dev/null @@ -1,29 +0,0 @@ - - -createObjectStore: Invalid optionalParameters - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/idbindex-rename-abort.any.js b/tests/wpt/tests/IndexedDB/idbindex-rename-abort.any.js new file mode 100644 index 00000000000..31a23899249 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/idbindex-rename-abort.any.js @@ -0,0 +1,126 @@ +// META: title=IndexedDB: index renaming support in aborted transactions +// META: global=window,worker +// META: script=resources/support-promises.js + +// Spec: https://w3c.github.io/IndexedDB/#dom-idbindex-name + +'use strict'; + +promise_test(testCase => { + const dbName = databaseName(testCase); + let authorIndex = null; + let authorIndex2 = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + authorIndex = store.index('by_author'); + authorIndex.name = 'renamed_by_author'; + + transaction.abort(); + + assert_equals( + authorIndex.name, 'by_author', + 'IDBIndex.name should not reflect the rename any more ' + + 'immediately after transaction.abort() returns'); + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'IDBObjectStore.indexNames should not reflect the rename any ' + + 'more immediately after transaction.abort() returns'); + })) + .then(event => { + assert_equals( + authorIndex.name, 'by_author', + 'IDBIndex.name should not reflect the rename any more after the ' + + 'versionchange transaction is aborted'); + + const request = indexedDB.open(dbName, 1); + return promiseForRequest(testCase, request); + }) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'IDBDatabase.objectStoreNames should not reflect the rename ' + + 'after the versionchange transaction is aborted'); + + authorIndex2 = store.index('by_author'); + return checkAuthorIndexContents( + testCase, authorIndex2, + 'Aborting an index rename transaction should not change the ' + + 'index\'s records') + .then(() => database.close()); + }) + .then(() => { + assert_equals( + authorIndex.name, 'by_author', + 'IDBIndex used in aborted rename transaction should not reflect ' + + 'the rename after the transaction is aborted'); + assert_equals( + authorIndex2.name, 'by_author', + 'IDBIndex obtained after an aborted rename transaction should ' + + 'not reflect the rename'); + }); +}, 'IndexedDB index rename in aborted transaction'); + +promise_test(testCase => { + const dbName = databaseName(testCase); + let authorIndex = null; + return createDatabase( + testCase, + (database, transaction) => { + createNotBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('not_books'); + authorIndex = store.createIndex('by_author', 'author'); + authorIndex.name = 'by_author_renamed'; + authorIndex.name = 'by_author_renamed_again'; + + transaction.abort(); + + assert_equals( + authorIndex.name, 'by_author_renamed_again', + 'IDBIndex.name should reflect the last rename immediately after ' + + 'transaction.abort() returns'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should not reflect the creation or ' + + 'the rename immediately after transaction.abort() returns'); + })) + .then(event => { + assert_equals( + authorIndex.name, 'by_author_renamed_again', + 'IDBIndex.name should reflect the last rename after the ' + + 'versionchange transaction is aborted'); + + const request = indexedDB.open(dbName, 1); + return promiseForRequest(testCase, request); + }) + .then(database => { + const transaction = database.transaction('not_books', 'readonly'); + const store = transaction.objectStore('not_books'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBDatabase.objectStoreNames should not reflect the creation or ' + + 'the rename after the versionchange transaction is aborted'); + + database.close(); + }); +}, 'IndexedDB index creation and rename in an aborted transaction'); diff --git a/tests/wpt/tests/IndexedDB/idbindex-rename-abort.html b/tests/wpt/tests/IndexedDB/idbindex-rename-abort.html deleted file mode 100644 index 00e6e36de87..00000000000 --- a/tests/wpt/tests/IndexedDB/idbindex-rename-abort.html +++ /dev/null @@ -1,110 +0,0 @@ - - -IndexedDB: index renaming support in aborted transactions - - - - - - diff --git a/tests/wpt/tests/IndexedDB/idbindex-rename-errors.any.js b/tests/wpt/tests/IndexedDB/idbindex-rename-errors.any.js new file mode 100644 index 00000000000..92227112af8 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/idbindex-rename-errors.any.js @@ -0,0 +1,154 @@ +// META: title=IndexedDB: index renaming error handling +// META: global=window,worker +// META: script=resources/support-promises.js + +// Spec: "https://w3c.github.io/IndexedDB/#dom-idbindex-name" + +'use strict'; + +promise_test(testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + const index = store.index('by_author'); + store.deleteIndex('by_author'); + assert_throws_dom( + 'InvalidStateError', + () => index.name = 'renamed_by_author'); + })) + .then(database => database.close()); +}, 'IndexedDB deleted index rename throws'); + +promise_test(testCase => { + return createDatabase(testCase, (database, transaction) => { + createBooksStore(testCase, database); + }).then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + const index = store.index('by_author'); + + assert_throws_dom( + 'InvalidStateError', () => index.name = 'renamed_by_author'); + database.close(); + }); +}, 'IndexedDB index rename throws in a readonly transaction'); + +promise_test(testCase => { + return createDatabase(testCase, (database, transaction) => { + createBooksStore(testCase, database); + }).then(database => { + const transaction = database.transaction('books', 'readwrite'); + const store = transaction.objectStore('books'); + const index = store.index('by_author'); + + assert_throws_dom( + 'InvalidStateError', () => index.name = 'renamed_by_author'); + database.close(); + }); +}, 'IndexedDB index rename throws in a readwrite transaction'); + +promise_test(testCase => { + let authorIndex = null; + return createDatabase(testCase, (database, transaction) => { + const store = createBooksStore(testCase, database); + authorIndex = store.index('by_author'); + }).then(database => { + assert_throws_dom( + 'TransactionInactiveError', + () => authorIndex.name = 'renamed_by_author'); + database.close(); + }); +}, 'IndexedDB index rename throws in an inactive transaction'); + +promise_test(testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + const index = store.index('by_author'); + + assert_throws_dom( + 'ConstraintError', () => index.name = 'by_title'); + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'An index rename that throws an exception should not change the ' + + 'index\'s IDBObjectStore.indexNames'); + })) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'Committing a transaction with a failed store rename attempt ' + + 'should not change the index\'s IDBObjectStore.indexNames'); + const index = store.index('by_author'); + return checkAuthorIndexContents( + testCase, index, + 'Committing a transaction with a failed rename attempt should ' + + 'not change the index\'s contents') + .then(() => database.close()); + }); +}, 'IndexedDB index rename to the name of another index throws'); + +promise_test(testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + const index = store.index('by_author'); + const exception = {name: 'Custom stringifying error'}; + assert_throws_exactly(exception, () => { + index.name = { + toString: () => { + throw exception; + } + }; + }, 'IDBObjectStore rename should re-raise toString() exception'); + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'An index rename that throws an exception should not change the ' + + 'index\'s IDBObjectStore.indexNames'); + })) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'Committing a transaction with a failed store rename attempt ' + + 'should not change the index\'s IDBObjectStore.indexNames'); + const index = store.index('by_author'); + return checkAuthorIndexContents( + testCase, index, + 'Committing a transaction with a failed rename attempt should ' + + 'not change the index\'s contents') + .then(() => database.close()); + }); +}, 'IndexedDB index rename handles exceptions when stringifying names'); diff --git a/tests/wpt/tests/IndexedDB/idbindex-rename-errors.html b/tests/wpt/tests/IndexedDB/idbindex-rename-errors.html deleted file mode 100644 index 7b6b0f17edf..00000000000 --- a/tests/wpt/tests/IndexedDB/idbindex-rename-errors.html +++ /dev/null @@ -1,132 +0,0 @@ - - -IndexedDB: index renaming error handling - - - - - - diff --git a/tests/wpt/tests/IndexedDB/idbindex-rename.any.js b/tests/wpt/tests/IndexedDB/idbindex-rename.any.js new file mode 100644 index 00000000000..3d2e58f6f71 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/idbindex-rename.any.js @@ -0,0 +1,358 @@ +// META: title=IndexedDB: index renaming support +// META: global=window,worker +// META: script=resources/support-promises.js +// META: timeout=long + +// Spec: https://w3c.github.io/IndexedDB/#dom-idbindex-name + +'use strict'; + +promise_test(testCase => { + let authorIndex = null; + let authorIndex2 = null; + let renamedAuthorIndex = null; + let renamedAuthorIndex2 = null; + return createDatabase( + testCase, + (database, transaction) => { + const store = createBooksStore(testCase, database); + authorIndex = store.index('by_author'); + }) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'Test setup should have created two indexes'); + authorIndex2 = store.index('by_author'); + return checkAuthorIndexContents( + testCase, authorIndex2, + 'The index should have the expected contents before any renaming') + .then(() => database.close()); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + renamedAuthorIndex = store.index('by_author'); + renamedAuthorIndex.name = 'renamed_by_author'; + + assert_equals( + renamedAuthorIndex.name, 'renamed_by_author', + 'IDBIndex name should change immediately after a rename'); + assert_array_equals( + store.indexNames, ['by_title', 'renamed_by_author'], + 'IDBObjectStore.indexNames should immediately reflect the rename'); + assert_equals( + store.index('renamed_by_author'), renamedAuthorIndex, + 'IDBObjectStore.index should return the renamed index store when ' + + 'queried using the new name immediately after the rename'); + assert_throws_dom( + 'NotFoundError', () => store.index('by_author'), + 'IDBObjectStore.index should throw when queried using the ' + + 'renamed index\'s old name immediately after the rename'); + })) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_title', 'renamed_by_author'], + 'IDBObjectStore.indexNames should still reflect the rename after ' + + 'the versionchange transaction commits'); + renamedAuthorIndex2 = store.index('renamed_by_author'); + return checkAuthorIndexContents( + testCase, renamedAuthorIndex2, + 'Renaming an index should not change its contents') + .then(() => database.close()); + }) + .then(() => { + assert_equals( + authorIndex.name, 'by_author', + 'IDBIndex obtained before the rename transaction should not ' + + 'reflect the rename'); + assert_equals( + authorIndex2.name, 'by_author', + 'IDBIndex obtained before the rename transaction should not ' + + 'reflect the rename'); + assert_equals( + renamedAuthorIndex.name, 'renamed_by_author', + 'IDBIndex used in the rename transaction should keep reflecting ' + + 'the new name after the transaction is committed'); + assert_equals( + renamedAuthorIndex2.name, 'renamed_by_author', + 'IDBIndex obtained after the rename transaction should reflect ' + + 'the new name'); + }); +}, 'IndexedDB index rename in new transaction'); + +promise_test(testCase => { + let renamedAuthorIndex = null; + let renamedAuthorIndex2 = null; + return createDatabase( + testCase, + (database, transaction) => { + const store = createBooksStore(testCase, database); + renamedAuthorIndex = store.index('by_author'); + renamedAuthorIndex.name = 'renamed_by_author'; + + assert_equals( + renamedAuthorIndex.name, 'renamed_by_author', + 'IDBIndex name should change immediately after a rename'); + assert_array_equals( + store.indexNames, ['by_title', 'renamed_by_author'], + 'IDBObjectStore.indexNames should immediately reflect the rename'); + assert_equals( + store.index('renamed_by_author'), renamedAuthorIndex, + 'IDBObjectStore.index should return the renamed index store when ' + + 'queried using the new name immediately after the rename'); + assert_throws_dom( + 'NotFoundError', () => store.index('by_author'), + 'IDBObjectStore.index should throw when queried using the ' + + 'renamed index\'s old name immediately after the rename'); + }) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_title', 'renamed_by_author'], + 'IDBObjectStore.indexNames should still reflect the rename after ' + + 'the versionchange transaction commits'); + renamedAuthorIndex2 = store.index('renamed_by_author'); + return checkAuthorIndexContents( + testCase, renamedAuthorIndex2, + 'Renaming an index should not change its contents') + .then(() => database.close()); + }) + .then(() => { + assert_equals( + renamedAuthorIndex.name, 'renamed_by_author', + 'IDBIndex used in the rename transaction should keep reflecting ' + + 'the new name after the transaction is committed'); + assert_equals( + renamedAuthorIndex2.name, 'renamed_by_author', + 'IDBIndex obtained after the rename transaction should reflect ' + + 'the new name'); + }); +}, 'IndexedDB index rename in the transaction where it is created'); + +promise_test(testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + const index = store.index('by_author'); + index.name = 'by_author'; + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'Renaming an index to the same name should not change the ' + + 'index\'s IDBObjectStore.indexNames'); + })) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'Committing a transaction that renames a store to the same name ' + + 'should not change the index\'s IDBObjectStore.indexNames'); + const index = store.index('by_author'); + return checkAuthorIndexContents( + testCase, index, + 'Committing a transaction that renames an index to the same name ' + + 'should not change the index\'s contents') + .then(() => database.close()); + }); +}, 'IndexedDB index rename to the same name succeeds'); + +promise_test(testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + const index = store.index('by_author'); + store.deleteIndex('by_title'); + index.name = 'by_title'; + assert_array_equals( + store.indexNames, ['by_title'], + 'IDBObjectStore.indexNames should immediately reflect the rename'); + })) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_title'], + 'IDBObjectStore.indexNames should still reflect the rename after ' + + 'the versionchange transaction commits'); + const index = store.index('by_title'); + return checkAuthorIndexContents( + testCase, index, + 'Renaming an index should not change its contents') + .then(() => database.close()); + }); +}, 'IndexedDB index rename to the name of a deleted index succeeds'); + +promise_test(testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + store.index('by_author').name = 'tmp'; + store.index('by_title').name = 'by_author'; + store.index('tmp').name = 'by_title'; + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'IDBObjectStore.indexNames should reflect the swap immediately ' + + 'after the renames'); + return checkTitleIndexContents( + testCase, store.index('by_author'), + 'Renaming an index should not change its contents'); + })) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_author', 'by_title'], + 'IDBObjectStore.indexNames should still reflect the swap after ' + + 'the versionchange transaction commits'); + const index = store.index('by_title'); + return checkAuthorIndexContents( + testCase, index, + 'Renaming an index should not change its contents') + .then(() => database.close()); + }); +}, 'IndexedDB index swapping via renames succeeds'); + +promise_test(testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + const index = store.index('by_author'); + + index.name = 42; + assert_equals( + index.name, '42', + 'IDBIndex name should change immediately after a rename to a ' + + 'number'); + assert_array_equals( + store.indexNames, ['42', 'by_title'], + 'IDBObjectStore.indexNames should immediately reflect the ' + + 'stringifying rename'); + + index.name = true; + assert_equals( + index.name, 'true', + 'IDBIndex name should change immediately after a rename to a ' + + 'boolean'); + + index.name = {}; + assert_equals( + index.name, '[object Object]', + 'IDBIndex name should change immediately after a rename to an ' + + 'object'); + + index.name = () => null; + assert_equals( + index.name, '() => null', + 'IDBIndex name should change immediately after a rename to a ' + + 'function'); + + index.name = undefined; + assert_equals( + index.name, 'undefined', + 'IDBIndex name should change immediately after a rename to ' + + 'undefined'); + })) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, ['by_title', 'undefined'], + 'IDBObjectStore.indexNames should reflect the last rename ' + + 'after the versionchange transaction commits'); + const index = store.index('undefined'); + return checkAuthorIndexContents( + testCase, index, + 'Renaming an index should not change its contents') + .then(() => database.close()); + }); +}, 'IndexedDB index rename stringifies non-string names'); + +for (let escapedName of ['', '\\u0000', '\\uDC00\\uD800']) + ((escapedName) => { + const name = JSON.parse('"' + escapedName + '"'); + promise_test(testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + const store = transaction.objectStore('books'); + const index = store.index('by_author'); + + index.name = name; + assert_equals( + index.name, name, + 'IDBIndex name should change immediately after the rename'); + assert_array_equals( + store.indexNames, [name, 'by_title'].sort(), + 'IDBObjectStore.indexNames should immediately reflect the rename'); + })) + .then(database => { + const transaction = database.transaction('books', 'readonly'); + const store = transaction.objectStore('books'); + assert_array_equals( + store.indexNames, [name, 'by_title'].sort(), + 'IDBObjectStore.indexNames should reflect the rename ' + + 'after the versionchange transaction commits'); + const index = store.index(name); + return checkAuthorIndexContents( + testCase, index, + 'Renaming an index should not change its contents') + .then(() => database.close()); + }); + }, 'IndexedDB index can be renamed to "' + escapedName + '"'); + })(escapedName); diff --git a/tests/wpt/tests/IndexedDB/idbindex-rename.html b/tests/wpt/tests/IndexedDB/idbindex-rename.html deleted file mode 100644 index b6d97e6ae92..00000000000 --- a/tests/wpt/tests/IndexedDB/idbindex-rename.html +++ /dev/null @@ -1,301 +0,0 @@ - - - -IndexedDB: index renaming support - - - - - - diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-generator-revert.any.js b/tests/wpt/tests/IndexedDB/transaction-abort-generator-revert.any.js new file mode 100644 index 00000000000..0c6ffa52d27 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/transaction-abort-generator-revert.any.js @@ -0,0 +1,124 @@ +// META: title=IndexedDB: aborting transactions reverts an object store's key generator state +// META: global=window,worker +// META: script=resources/support-promises.js +// META: script=resources/support.js + +// Spec: https://w3c.github.io/IndexedDB/#abort-transaction + +'use strict'; + +promise_test( + testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then(() => { + return new Promise((resolve, reject) => { + const request = indexedDB.open(databaseName(testCase), 2); + request.onupgradeneeded = testCase.step_func(event => { + const database = event.target.result; + const transaction = event.target.transaction; + const store = transaction.objectStore('books'); + const request2 = + store.put({title: 'Bedrock Nights II', author: 'Barney'}); + request2.onerror = testCase.unreached_func( + 'IDBObjectStore.put() should not receive an error request'); + request2.onsuccess = testCase.step_func(event => { + assert_equals( + event.target.result, 345679, + 'The key generator\'s current number should be set by ' + + 'the last put operation in the database creation ' + + 'transaction'); + + request.onerror = event => { + event.preventDefault(); + resolve(event); + }; + request.onsuccess = () => reject(new Error( + 'indexedDB.open should not succeed after the ' + + 'versionchange transaction is aborted')); + + transaction.abort(); + }); + }); + request.onerror = event => reject(event.target.error); + request.onsuccess = () => reject(new Error( + 'indexedDB.open should not succeed without creating a ' + + 'versionchange transaction')); + }); + }) + .then(() => { + return openDatabase(testCase, 1); + }) + .then(database => { + const transaction = database.transaction(['books'], 'readwrite'); + const store = transaction.objectStore('books'); + + return checkStoreGenerator( + testCase, store, 345679, + 'The key generator\'s current number should be reverted after the ' + + 'transaction modifying it is aborted') + .then(() => database.close()); + }); + }, + 'The current number of a key generator is reverted when a versionchange ' + + 'transaction aborts'); + +promise_test( + testCase => { + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + return new Promise((resolve, reject) => { + const transaction = + database.transaction(['books'], 'readwrite'); + const store = transaction.objectStore('books'); + const request = store.put( + {title: 'Bedrock Nights II', author: 'Barney'}); + request.onerror = testCase.unreached_func( + 'IDBObjectStore.put() should not receive an error request'); + request.onsuccess = testCase.step_func(event => { + assert_equals( + event.target.result, 345679, + 'The key generator\'s current number should be set by the ' + + 'last put operation in the database creation transaction'); + + transaction.onabort = event => { + event.preventDefault(); + resolve(event); + }; + transaction.abort(); + }); + transaction.onabort = () => reject(new Error( + 'The aborted readwrite transaction should not receive an ' + + 'abort event before IDBTransaction.abort() is called')); + transaction.oncomplete = () => reject(new Error( + 'The aborted readwrite transaction should not receive a ' + + 'completed event')); + transaction.onerror = () => reject(new Error( + 'The aborted readwrite transaction should not receive an ' + + 'error event')); + }) + .then(() => database); + }) + .then(database => { + const transaction = database.transaction(['books'], 'readwrite'); + const store = transaction.objectStore('books'); + + return checkStoreGenerator( + testCase, store, 345679, + 'The key generator\'s current number should be reverted after the ' + + 'transaction modifying it is aborted') + .then(() => database.close()); + }); + }, + 'The current number of a key generator is reverted when a readwrite ' + + 'transaction aborts'); diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-generator-revert.html b/tests/wpt/tests/IndexedDB/transaction-abort-generator-revert.html deleted file mode 100644 index bbe0338c3ac..00000000000 --- a/tests/wpt/tests/IndexedDB/transaction-abort-generator-revert.html +++ /dev/null @@ -1,110 +0,0 @@ - - -IndexedDB: aborting transactions reverts an object store's key generator state - - - - - - diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-index-metadata-revert.any.js b/tests/wpt/tests/IndexedDB/transaction-abort-index-metadata-revert.any.js new file mode 100644 index 00000000000..9b429795c48 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/transaction-abort-index-metadata-revert.any.js @@ -0,0 +1,338 @@ +// META: title=IndexedDB: aborting transactions reverts index metadata +// META: global=window,worker +// META: script=resources/support-promises.js +// META: script=resources/support.js + +// Spec: https://w3c.github.io/IndexedDB/#abort-transaction + +'use strict'; + +promise_test( + testCase => { + let store = null; + let index = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = createNotBooksStore(testCase, database); + index = store.index('not_by_author'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should include newly created indexes ' + + 'before the transaction is aborted'); + + transaction.abort(); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames should stop including the newly ' + + 'created indexes immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, after the transaction is ' + + 'aborted'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames should stop including the newly ' + + 'created indexes after the transaction is aborted'); + }); + }, + 'Created stores get their indexes marked as deleted after the transaction ' + + 'that created them aborts'); + +promise_test( + testCase => { + let store = null; + let index = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + createNotBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = transaction.objectStore('not_books'); + index = store.index('not_by_author'); + + database.deleteObjectStore('not_books'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames should be empty immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + + transaction.abort(); + assert_throws_dom( + 'TransactionInactiveError', () => index.get('query'), + 'IDBIndex.get should throw TransactionInactiveError, indicating ' + + 'that the index is no longer marked for deletion, immediately ' + + 'after IDBTransaction.abort() returns'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should include the deleted indexes ' + + 'immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'TransactionInactiveError', () => index.get('query'), + 'IDBIndex.get should throw TransactionInactiveError, indicating ' + + 'that the index is no longer marked for deletion, after the ' + + 'transaction is aborted'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should include the deleted indexes ' + + 'after the transaction is aborted'); + }); + }, + 'Deleted stores get their indexes marked as not-deleted after the ' + + 'transaction that deleted them aborts'); + +promise_test( + testCase => { + let store = null; + let index = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = createNotBooksStore(testCase, database); + index = store.index('not_by_author'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should include newly created indexes ' + + 'before the transaction is aborted'); + + database.deleteObjectStore('not_books'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames should be empty immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + + transaction.abort(); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is still marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames should not include the newly ' + + 'created indexes immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is still marked for deletion, after the transaction ' + + 'is aborted'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames should not include the newly ' + + 'created indexes after the transaction is aborted'); + }); + }, + 'Created+deleted stores still have their indexes marked as deleted after ' + + 'the transaction aborts'); + +promise_test(testCase => { + let store = null; + let index = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + createNotBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = transaction.objectStore('not_books'); + index = store.createIndex('not_by_isbn', 'isbn'); + assert_array_equals( + store.indexNames, + ['not_by_author', 'not_by_isbn', 'not_by_title'], + 'IDBObjectStore.indexNames should include newly created indexes ' + + 'before the transaction is aborted'); + + transaction.abort(); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should stop including the newly ' + + 'created index immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, after the transaction is ' + + 'aborted'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should stop including the newly ' + + 'created index after the transaction is aborted'); + }); +}, 'Created indexes get marked as deleted after their transaction aborts'); + +promise_test(testCase => { + let store = null; + let index = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + createNotBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = transaction.objectStore('not_books'); + index = store.index('not_by_author'); + + store.deleteIndex('not_by_author'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, immediately after ' + + 'IDBObjectStore.deleteIndex() returns'); + assert_array_equals( + store.indexNames, ['not_by_title'], + 'IDBObjectStore.indexNames should not include the deleted index ' + + 'immediately after IDBObjectStore.deleteIndex() returns'); + + transaction.abort(); + assert_throws_dom( + 'TransactionInactiveError', () => index.get('query'), + 'IDBIndex.get should throw TransactionInactiveError, indicating ' + + 'that the index is no longer marked for deletion, immediately ' + + 'after IDBTransaction.abort() returns'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should include the deleted indexes ' + + 'immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'TransactionInactiveError', () => index.get('query'), + 'IDBIndex.get should throw TransactionInactiveError, indicating ' + + 'that the index is no longer marked for deletion, after the ' + + 'transaction is aborted'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should include the deleted indexes ' + + 'after the transaction is aborted'); + }); +}, 'Deleted indexes get marked as not-deleted after the transaction aborts'); + +promise_test( + testCase => { + let store = null; + let index = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + createNotBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = transaction.objectStore('not_books'); + index = store.createIndex('not_by_isbn', 'isbn'); + assert_array_equals( + store.indexNames, + ['not_by_author', 'not_by_isbn', 'not_by_title'], + 'IDBObjectStore.indexNames should include newly created indexes ' + + 'before the transaction is aborted'); + + store.deleteIndex('not_by_isbn'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, immediately after ' + + 'IDBObjectStore.deleteIndex() returns'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should not include the deleted index ' + + 'immediately after IDBObjectStore.deleteIndex() returns'); + + transaction.abort(); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is still marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should stop including the newly ' + + 'created index immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, after the transaction is ' + + 'aborted'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames should stop including the newly ' + + 'created index after the transaction is aborted'); + }); + }, + 'Created+deleted indexes are still marked as deleted after their ' + + 'transaction aborts'); diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-index-metadata-revert.html b/tests/wpt/tests/IndexedDB/transaction-abort-index-metadata-revert.html deleted file mode 100644 index 54a873d8758..00000000000 --- a/tests/wpt/tests/IndexedDB/transaction-abort-index-metadata-revert.html +++ /dev/null @@ -1,278 +0,0 @@ - - -IndexedDB: aborting transactions reverts index metadata - - - - - - diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-multiple-metadata-revert.any.js b/tests/wpt/tests/IndexedDB/transaction-abort-multiple-metadata-revert.any.js new file mode 100644 index 00000000000..9161af8e2ba --- /dev/null +++ b/tests/wpt/tests/IndexedDB/transaction-abort-multiple-metadata-revert.any.js @@ -0,0 +1,325 @@ +// META: title=IndexedDB: aborting transactions reverts multiple operations on the same metadata +// META: global=window,worker +// META: script=resources/support-promises.js +// META: script=resources/support.js + +// Spec: https://w3c.github.io/IndexedDB/#abort-transaction + +'use strict'; + +promise_test( + testCase => { + let store = null; + let index = null; + let migrationTransaction = null; + let migrationDatabase = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = createNotBooksStore(testCase, database); + migrationDatabase = database; + migrationTransaction = transaction; + assert_array_equals( + database.objectStoreNames, ['books', 'not_books'], + 'IDBDatabase.objectStoreNames should include a newly created ' + + 'store before the transaction is aborted'); + assert_array_equals( + transaction.objectStoreNames, ['books', 'not_books'], + 'IDBTransaction.objectStoreNames should include a newly created ' + + 'store before the transaction is aborted'); + + index = store.index('not_by_author'); + store.deleteIndex('not_by_author'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, immediately after ' + + 'IDBObjectStore.deleteIndex() returns'); + assert_array_equals( + store.indexNames, ['not_by_title'], + 'IDBObjectStore.indexNames should not include the deleted index ' + + 'immediately after IDBObjectStore.deleteIndex() returns'); + + transaction.abort(); + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is still marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should stop including the newly ' + + 'created store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + database.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should stop including the newly ' + + 'created store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames for the newly created store should be ' + + 'empty immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is marked for deletion, after the transaction is ' + + 'aborted'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is still marked for deletion, after the transaction ' + + 'is aborted'); + assert_array_equals( + migrationDatabase.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should stop including the newly ' + + 'created store after the transaction is aborted'); + assert_array_equals( + migrationTransaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should stop including the newly ' + + 'created store after the transaction is aborted'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames for the newly created store should be ' + + 'empty after the transaction is aborted'); + }); + }, + 'Deleted indexes in newly created stores are still marked as deleted ' + + 'after the transaction aborts'); + +promise_test( + testCase => { + let store = null; + let index = null; + let migrationTransaction = null; + let migrationDatabase = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + createNotBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + migrationDatabase = database; + migrationTransaction = transaction; + store = transaction.objectStore('not_books'); + index = store.index('not_by_author'); + store.deleteIndex('not_by_author'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, immediately after ' + + 'IDBObjectStore.deleteIndex() returns'); + assert_array_equals( + store.indexNames, ['not_by_title'], + 'IDBObjectStore.indexNames should not include the deleted index ' + + 'immediately after IDBObjectStore.deleteIndex() returns'); + + database.deleteObjectStore('not_books'); + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is marked for deletion, immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is still marked for deletion, immediately after ' + + 'IDBObjectStore.deleteIndex() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should stop including the ' + + 'deleted store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + assert_array_equals( + database.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should stop including the newly ' + + 'created store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames for the deleted store should be empty ' + + 'immediately after IDBDatabase.deleteObjectStore() returns'); + + transaction.abort(); + assert_throws_dom( + 'TransactionInactiveError', () => store.get('query'), + 'IDBObjectStore.get should throw TransactionInactiveError, ' + + 'indicating that the store is no longer marked for deletion, ' + + 'immediately after IDBTransaction.abort() returns'); + assert_throws_dom( + 'TransactionInactiveError', () => index.get('query'), + 'IDBIndex.get should throw TransactionInactiveError, indicating ' + + 'that the index is no longer marked for deletion, immediately ' + + 'after IDBObjectStore.deleteIndex() returns'); + assert_array_equals( + database.objectStoreNames, ['books', 'not_books'], + 'IDBDatabase.objectStoreNames should include the deleted store ' + + 'store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books', 'not_books'], + 'IDBTransaction.objectStoreNames should include the deleted ' + + 'store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames for the deleted store should not be ' + + 'empty any more immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'TransactionInactiveError', () => store.get('query'), + 'IDBObjectStore.get should throw TransactionInactiveError, ' + + 'indicating that the store is no longer marked for deletion, ' + + 'after the transaction is aborted'); + assert_throws_dom( + 'TransactionInactiveError', () => index.get('query'), + 'IDBIndex.get should throw TransactionInactiveError, indicating ' + + 'that the index is no longer marked for deletion, after the ' + + 'transaction is aborted'); + assert_array_equals( + migrationDatabase.objectStoreNames, ['books', 'not_books'], + 'IDBDatabase.objectStoreNames should include the previously ' + + 'deleted store after the transaction is aborted'); + assert_array_equals( + migrationTransaction.objectStoreNames, ['books', 'not_books'], + 'IDBTransaction.objectStoreNames should include the previously ' + + 'deleted store after the transaction is aborted'); + assert_array_equals( + store.indexNames, ['not_by_author', 'not_by_title'], + 'IDBObjectStore.indexNames for the deleted store should not be ' + + 'empty after the transaction is aborted'); + }); + }, + 'Deleted indexes in deleted stores are still marked as not-deleted after ' + + 'the transaction aborts'); + +promise_test( + testCase => { + let store = null; + let index = null; + let migrationTransaction = null; + let migrationDatabase = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = createNotBooksStore(testCase, database); + migrationDatabase = database; + migrationTransaction = transaction; + index = store.index('not_by_author'); + store.deleteIndex('not_by_author'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is marked for deletion, immediately after ' + + 'IDBObjectStore.deleteIndex() returns'); + assert_array_equals( + store.indexNames, ['not_by_title'], + 'IDBObjectStore.indexNames should not include the deleted index ' + + 'immediately after IDBObjectStore.deleteIndex() returns'); + + database.deleteObjectStore('not_books'); + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is marked for deletion, immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is still marked for deletion, immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should stop including the ' + + 'deleted store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + assert_array_equals( + database.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should stop including the newly ' + + 'created store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames should be empty immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + + transaction.abort(); + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is still marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is still marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should not include the newly ' + + 'created store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + database.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should not include the newly ' + + 'created store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames should be empty immediately after ' + + 'IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is still marked for deletion, after the ' + + 'transaction is aborted'); + assert_throws_dom( + 'InvalidStateError', () => index.get('query'), + 'IDBIndex.get should throw InvalidStateError, indicating that ' + + 'the index is still marked for deletion, after the transaction ' + + 'is aborted'); + assert_array_equals( + migrationDatabase.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should not include the newly ' + + 'created store after the transaction is aborted'); + assert_array_equals( + migrationTransaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should not include the newly ' + + 'created store after the transaction is aborted'); + assert_array_equals( + store.indexNames, [], + 'IDBObjectStore.indexNames should be empty after the transaction ' + + 'is aborted'); + }); + }, + 'Deleted indexes in created+deleted stores are still marked as deleted ' + + 'after their transaction aborts'); diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-multiple-metadata-revert.html b/tests/wpt/tests/IndexedDB/transaction-abort-multiple-metadata-revert.html deleted file mode 100644 index 18abd0588c4..00000000000 --- a/tests/wpt/tests/IndexedDB/transaction-abort-multiple-metadata-revert.html +++ /dev/null @@ -1,293 +0,0 @@ - - -IndexedDB: aborting transactions reverts multiple operations on the same metadata - - - - - - diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-object-store-metadata-revert.any.js b/tests/wpt/tests/IndexedDB/transaction-abort-object-store-metadata-revert.any.js new file mode 100644 index 00000000000..d5f14b54de4 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/transaction-abort-object-store-metadata-revert.any.js @@ -0,0 +1,274 @@ +// META: title=IndexedDB: aborting transactions reverts object store metadata +// META: global=window,worker +// META: script=resources/support-promises.js +// META: script=resources/support.js + +// Spec: https://w3c.github.io/IndexedDB/#abort-transaction + +'use strict'; + +promise_test(testCase => { + let store = null; + let migrationTransaction = null; + let migrationDatabase = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = createNotBooksStore(testCase, database); + migrationDatabase = database; + migrationTransaction = transaction; + assert_array_equals( + database.objectStoreNames, ['books', 'not_books'], + 'IDBDatabase.objectStoreNames should include a newly created ' + + 'store before the transaction is aborted'); + assert_array_equals( + transaction.objectStoreNames, ['books', 'not_books'], + 'IDBTransaction.objectStoreNames should include a newly created ' + + 'store before the transaction is aborted'); + + transaction.abort(); + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should stop including the newly ' + + 'created store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + database.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should stop including the newly ' + + 'created store immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is marked for deletion, after the transaction is ' + + 'aborted'); + assert_array_equals( + migrationDatabase.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should stop including the newly ' + + 'created store after the transaction is aborted'); + assert_array_equals( + migrationTransaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should stop including the newly ' + + 'created store after the transaction is aborted'); + }); +}, 'Created stores get marked as deleted after their transaction aborts'); + +promise_test(testCase => { + let store = null; + let migrationTransaction = null; + let migrationDatabase = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + createNotBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + migrationDatabase = database; + migrationTransaction = transaction; + store = transaction.objectStore('not_books'); + + database.deleteObjectStore('not_books'); + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is marked for deletion, immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should stop including the ' + + 'deleted store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + assert_array_equals( + database.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should stop including the newly ' + + 'created store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + + transaction.abort(); + assert_throws_dom( + 'TransactionInactiveError', () => store.get('query'), + 'IDBObjectStore.get should throw TransactionInactiveError, ' + + 'indicating that the store is no longer marked for deletion, ' + + 'immediately after IDBTransaction.abort() returns'); + assert_array_equals( + database.objectStoreNames, ['books', 'not_books'], + 'IDBDatabase.objectStoreNames should include the deleted store ' + + 'store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books', 'not_books'], + 'IDBTransaction.objectStoreNames should include the deleted ' + + 'store immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'TransactionInactiveError', () => store.get('query'), + 'IDBObjectStore.get should throw TransactionInactiveError, ' + + 'indicating that the store is no longer marked for deletion, ' + + 'after the transaction is aborted'); + assert_array_equals( + migrationDatabase.objectStoreNames, ['books', 'not_books'], + 'IDBDatabase.objectStoreNames should include the previously ' + + 'deleted store after the transaction is aborted'); + assert_array_equals( + migrationTransaction.objectStoreNames, ['books', 'not_books'], + 'IDBTransaction.objectStoreNames should include the previously ' + + 'deleted store after the transaction is aborted'); + }); +}, 'Deleted stores get marked as not-deleted after the transaction aborts'); + +promise_test( + testCase => { + let store = null; + let migrationTransaction = null; + let migrationDatabase = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + store = createNotBooksStore(testCase, database); + migrationDatabase = database; + migrationTransaction = transaction; + assert_array_equals( + database.objectStoreNames, ['books', 'not_books'], + 'IDBDatabase.objectStoreNames should include a newly created ' + + 'store before the transaction is aborted'); + assert_array_equals( + transaction.objectStoreNames, ['books', 'not_books'], + 'IDBTransaction.objectStoreNames should include a newly created ' + + 'store before the transaction is aborted'); + + database.deleteObjectStore('not_books'); + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is marked for deletion, immediately after ' + + 'IDBDatabase.deleteObjectStore() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should stop including the ' + + 'deleted store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + assert_array_equals( + database.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should stop including the newly ' + + 'created store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + + transaction.abort(); + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is still marked for deletion, immediately after ' + + 'IDBTransaction.abort() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should not include the newly ' + + 'created store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + database.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should not include the newly ' + + 'created store immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_throws_dom( + 'InvalidStateError', () => store.get('query'), + 'IDBObjectStore.get should throw InvalidStateError, indicating ' + + 'that the store is still marked for deletion, after the ' + + 'transaction is aborted'); + assert_array_equals( + migrationDatabase.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should not include the newly ' + + 'created store after the transaction is aborted'); + assert_array_equals( + migrationTransaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should not include the newly ' + + 'created store after the transaction is aborted'); + }); + }, + 'Created+deleted stores are still marked as deleted after their ' + + 'transaction aborts'); + +promise_test( + testCase => { + let migrationTransaction = null; + let migrationDatabase = null; + return createDatabase( + testCase, + (database, transaction) => { + createBooksStore(testCase, database); + createNotBooksStore(testCase, database); + }) + .then(database => { + database.close(); + }) + .then( + () => migrateDatabase( + testCase, 2, + (database, transaction) => { + migrationDatabase = database; + migrationTransaction = transaction; + + database.deleteObjectStore('not_books'); + assert_array_equals( + transaction.objectStoreNames, ['books'], + 'IDBTransaction.objectStoreNames should stop including the ' + + 'deleted store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + assert_array_equals( + database.objectStoreNames, ['books'], + 'IDBDatabase.objectStoreNames should stop including the newly ' + + 'created store immediately after IDBDatabase.deleteObjectStore() ' + + 'returns'); + + transaction.abort(); + assert_array_equals( + database.objectStoreNames, ['books', 'not_books'], + 'IDBDatabase.objectStoreNames should include the deleted store ' + + 'store immediately after IDBTransaction.abort() returns'); + assert_array_equals( + transaction.objectStoreNames, ['books', 'not_books'], + 'IDBTransaction.objectStoreNames should include the deleted ' + + 'store immediately after IDBTransaction.abort() returns'); + })) + .then(() => { + assert_array_equals( + migrationDatabase.objectStoreNames, ['books', 'not_books'], + 'IDBDatabase.objectStoreNames should include the previously ' + + 'deleted store after the transaction is aborted'); + assert_array_equals( + migrationTransaction.objectStoreNames, ['books', 'not_books'], + 'IDBTransaction.objectStoreNames should include the previously ' + + 'deleted store after the transaction is aborted'); + }); + }, + 'Un-instantiated deleted stores get marked as not-deleted after the ' + + 'transaction aborts'); diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-object-store-metadata-revert.html b/tests/wpt/tests/IndexedDB/transaction-abort-object-store-metadata-revert.html deleted file mode 100644 index c31537bc5cd..00000000000 --- a/tests/wpt/tests/IndexedDB/transaction-abort-object-store-metadata-revert.html +++ /dev/null @@ -1,235 +0,0 @@ - - -IndexedDB: aborting transactions reverts object store metadata - - - - - - diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-request-error.any.js b/tests/wpt/tests/IndexedDB/transaction-abort-request-error.any.js new file mode 100644 index 00000000000..a7ddd02f1d2 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/transaction-abort-request-error.any.js @@ -0,0 +1,69 @@ +// META: title=IndexedDB: Test error events fired at requests from aborted transaction +// META: global=window,worker +// META: script=resources/support-promises.js +// META: script=resources/support.js + +// Spec: https://w3c.github.io/IndexedDB/#abort-transaction + +'use strict'; + +indexeddb_test( + (t, db) => { + db.createObjectStore('store'); + }, + (t, db) => { + const tx = db.transaction('store', 'readonly'); + const request = tx.objectStore('store').get(0); + tx.abort(); + request.onsuccess = t.unreached_func('request should not succeed'); + + let connection_saw_error = false; + let transaction_saw_error = false; + + request.onerror = t.step_func(e => { + assert_equals( + request.readyState, 'done', 'Request\'s done flag should be set'); + assert_equals( + request.result, undefined, 'Request\'s result should be undefined'); + assert_equals( + request.error.name, 'AbortError', + 'Request\'s error should be AbortError'); + + assert_equals(e.target, request, 'event target should be request'); + assert_equals(e.type, 'error', 'Event type should be error'); + assert_true(e.bubbles, 'Event should bubble'); + assert_true(e.cancelable, 'Event should cancelable'); + + assert_true( + connection_saw_error, 'Event propagated through connection'); + assert_true( + transaction_saw_error, 'Event propagated through transaction'); + t.done(); + }); + + // Event propagates via "get the parent" on request and transaction. + + db.addEventListener( + 'error', t.step_func(e => { + connection_saw_error = true; + assert_equals(e.target, request, 'event target should be request'); + assert_equals(e.type, 'error', 'Event type should be error'); + assert_true(e.bubbles, 'Event should bubble'); + assert_true(e.cancelable, 'Event should cancelable'); + }), + true); + + tx.addEventListener( + 'error', t.step_func(e => { + transaction_saw_error = true; + assert_equals(e.target, request, 'event target should be request'); + assert_equals(e.type, 'error', 'Event type should be error'); + assert_true(e.bubbles, 'Event should bubble'); + assert_true(e.cancelable, 'Event should cancelable'); + + assert_true( + connection_saw_error, 'Event propagated through connection'); + }), + true); + }, + 'Properties of error events fired at requests when aborting a transaction'); diff --git a/tests/wpt/tests/IndexedDB/transaction-abort-request-error.html b/tests/wpt/tests/IndexedDB/transaction-abort-request-error.html deleted file mode 100644 index fa828286f4d..00000000000 --- a/tests/wpt/tests/IndexedDB/transaction-abort-request-error.html +++ /dev/null @@ -1,68 +0,0 @@ - - -IndexedDB: Test error events fired at requests from aborted transaction - - - - - - - diff --git a/tests/wpt/tests/IndexedDB/transaction-create_in_versionchange.any.js b/tests/wpt/tests/IndexedDB/transaction-create_in_versionchange.any.js new file mode 100644 index 00000000000..777439e78af --- /dev/null +++ b/tests/wpt/tests/IndexedDB/transaction-create_in_versionchange.any.js @@ -0,0 +1,78 @@ +// META: title=IndexedDB Transaction Creation During Version Change +// META: global=window,worker +// META: script=resources/support.js + +'use strict'; + +async_test(t => { + let db; + let events = []; + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + db = e.target.result + + db.createObjectStore('store') + .add('versionchange1', 1) + .addEventListener('success', log('versionchange_add.success')) + + assert_throws_dom('InvalidStateError', function() { + db.transaction('store', 'readonly') + }) + + e.target.transaction.objectStore('store').count(2).addEventListener( + 'success', log('versionchange_count.success')) + + assert_throws_dom('InvalidStateError', function() { + db.transaction('store', 'readwrite') + }) + + open_rq.transaction.objectStore('store') + .add('versionchange2', 2) + .addEventListener('success', log('versionchange_add2.success')) + + open_rq.transaction.oncomplete = function(e) { + log('versionchange_txn.complete')(e) + + db.transaction('store', 'readonly') + .objectStore('store') + .count() + .addEventListener('success', log('complete_count.success')) + } + }; + + open_rq.onsuccess = function(e) { + log('open_rq.success')(e) + + let txn = db.transaction('store', 'readwrite') + txn.objectStore('store').put('woo', 1).addEventListener( + 'success', log('complete2_get.success')) + + txn.oncomplete = t.step_func(function(e) { + assert_array_equals( + events, + [ + 'versionchange_add.success: 1', + 'versionchange_count.success: 0', + 'versionchange_add2.success: 2', + 'versionchange_txn.complete', + 'open_rq.success: [object IDBDatabase]', + 'complete_count.success: 2', + 'complete2_get.success: 1', + ], + 'events') + t.done() + }) + }; + + + function log(msg) { + return function(e) { + if (e && e.target && e.target.error) + events.push(msg + ': ' + e.target.error.name) + else if (e && e.target && e.target.result !== undefined) + events.push(msg + ': ' + e.target.result) + else events.push(msg) + }; + } +}, 'Attempt to create new transactions inside a versionchange transaction'); diff --git a/tests/wpt/tests/IndexedDB/transaction-create_in_versionchange.htm b/tests/wpt/tests/IndexedDB/transaction-create_in_versionchange.htm deleted file mode 100644 index 4659b1593fd..00000000000 --- a/tests/wpt/tests/IndexedDB/transaction-create_in_versionchange.htm +++ /dev/null @@ -1,82 +0,0 @@ - - -Attempt to create new transactions inside a versionchange transaction - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/transaction-deactivation-timing.any.js b/tests/wpt/tests/IndexedDB/transaction-deactivation-timing.any.js new file mode 100644 index 00000000000..668e47d05b3 --- /dev/null +++ b/tests/wpt/tests/IndexedDB/transaction-deactivation-timing.any.js @@ -0,0 +1,159 @@ +// META: title=IndexedDB Transaction Deactivation Timing +// META: global=window,worker +// META: script=resources/support.js + +// Spec: https://w3c.github.io/IndexedDB/#dom-idbdatabase-transaction + +'use strict'; + +indexeddb_test( + (t, db, tx) => { + db.createObjectStore('store'); + }, + (t, db) => { + const tx = db.transaction('store', 'readonly'); + const release_tx = keep_alive(tx, 'store'); + assert_true( + is_transaction_active(tx, 'store'), + 'Transaction should be active after creation'); + + setTimeout( + t.step_func(() => { + assert_false( + is_transaction_active(tx, 'store'), + 'Transaction should be inactive in next task'); + release_tx(); + t.done(); + }), + 0); + }, + 'New transactions are deactivated before next task'); + +indexeddb_test( + (t, db, tx) => { + db.createObjectStore('store'); + }, + (t, db) => { + const tx = db.transaction('store', 'readonly'); + const release_tx = keep_alive(tx, 'store'); + assert_true( + is_transaction_active(tx, 'store'), + 'Transaction should be active after creation'); + + Promise.resolve().then(t.step_func(() => { + assert_true( + is_transaction_active(tx, 'store'), + 'Transaction should be active in microtask checkpoint'); + release_tx(); + t.done(); + })); + }, + 'New transactions are not deactivated until after the microtask checkpoint'); + +indexeddb_test( + (t, db, tx) => { + db.createObjectStore('store'); + }, + (t, db) => { + let tx; + let release_tx; + + Promise.resolve().then(t.step_func(() => { + tx = db.transaction('store', 'readonly'); + release_tx = keep_alive(tx, 'store'); + assert_true( + is_transaction_active(tx, 'store'), + 'Transaction should be active after creation'); + })); + + setTimeout( + t.step_func(() => { + assert_false( + is_transaction_active(tx, 'store'), + 'Transaction should be inactive in next task'); + release_tx(); + t.done(); + }), + 0); + }, + 'New transactions from microtask are deactivated before next task'); + +indexeddb_test( + (t, db, tx) => { + db.createObjectStore('store'); + }, + (t, db) => { + let tx; + let release_tx; + + Promise.resolve().then(t.step_func(() => { + tx = db.transaction('store', 'readonly'); + release_tx = keep_alive(tx, 'store'); + assert_true( + is_transaction_active(tx, 'store'), + 'Transaction should be active after creation'); + })); + + Promise.resolve().then(t.step_func(() => { + assert_true( + is_transaction_active(tx, 'store'), + 'Transaction should be active in microtask checkpoint'); + release_tx(); + t.done(); + })); + }, + 'New transactions from microtask are still active through the ' + + 'microtask checkpoint'); + + +indexeddb_test( + (t, db, tx) => { + db.createObjectStore('store'); + }, + (t, db) => { + // This transaction serves as the source of an event seen by multiple + // listeners. A DOM event with multiple listeners could be used instead, + // but not via dispatchEvent() because (drumroll...) that happens + // synchronously so microtasks don't run between steps. + const tx = db.transaction('store', 'readonly'); + assert_true( + is_transaction_active(tx, 'store'), + 'Transaction should be active after creation'); + + const request = tx.objectStore('store').get(0); + let new_tx; + let first_listener_ran = false; + let microtasks_ran = false; + request.addEventListener('success', t.step_func(() => { + first_listener_ran = true; + assert_true( + is_transaction_active(tx, 'store'), + 'Transaction should be active in callback'); + + // We check to see if t transaction is active across unrelated event + // dispatch steps. + new_tx = db.transaction('store', 'readonly'); + assert_true( + is_transaction_active(new_tx, 'store'), + 'New transaction should be active after creation'); + + Promise.resolve().then(t.step_func(() => { + microtasks_ran = true; + assert_true( + is_transaction_active(new_tx, 'store'), + 'New transaction is still active in microtask checkpoint'); + })); + })); + request.addEventListener('success', t.step_func(() => { + assert_true(first_listener_ran, 'first listener ran first'); + assert_true(microtasks_ran, 'microtasks ran before second listener'); + assert_true( + is_transaction_active(tx, 'store'), + 'Transaction should be active in callback'); + assert_false( + is_transaction_active(new_tx, 'store'), + 'New transaction should be inactive in unrelated callback'); + t.done(); + })); + }, + 'Deactivation of new transactions happens at end of invocation'); diff --git a/tests/wpt/tests/IndexedDB/transaction-deactivation-timing.html b/tests/wpt/tests/IndexedDB/transaction-deactivation-timing.html deleted file mode 100644 index 4b826f121c0..00000000000 --- a/tests/wpt/tests/IndexedDB/transaction-deactivation-timing.html +++ /dev/null @@ -1,143 +0,0 @@ - - -Transactions deactivation timing - - - - - diff --git a/tests/wpt/tests/IndexedDB/transaction-requestqueue.any.js b/tests/wpt/tests/IndexedDB/transaction-requestqueue.any.js new file mode 100644 index 00000000000..ac75171474c --- /dev/null +++ b/tests/wpt/tests/IndexedDB/transaction-requestqueue.any.js @@ -0,0 +1,102 @@ +// META: title=IndexedDB Transaction Request Queue Handling +// META: global=window,worker +// META: script=resources/support.js + +'use strict'; + +async_test(t => { + let db; + let keys = {txn: [], txn2: []}; + let open_rq = createdb(t); + + open_rq.onupgradeneeded = function(e) { + let i; + let os; + db = e.target.result; + + for (i = 1; i < 6; i++) { + os = db.createObjectStore('os' + i, {autoIncrement: true, keyPath: 'k'}); + os.add({os: 'os' + i}); + os.put({os: 'os' + i, k: i}); + os.add({os: 'os' + i}); + } + }; + + open_rq.onsuccess = function(e) { + let txn = db.transaction(['os2', 'os1', 'os3', 'os5']) + txn.objectStore('os1').openCursor().onsuccess = reg('txn') + txn.objectStore('os3').openCursor().onsuccess = reg('txn') + txn.objectStore('os1').get(2).onsuccess = reg('txn') + txn.objectStore('os2').get(3).onsuccess = reg('txn') + + let txn2 = db.transaction(['os4', 'os3', 'os1', 'os5']) + let os4 = txn2.objectStore('os4') + + for (let i = 0; i < 3; i++) { + os4.openCursor().onsuccess = reg('txn2') + os4.get(5).onsuccess = reg('txn2') + os4.get(4).onsuccess = reg('txn2') + txn.objectStore('os2').get(1).onsuccess = reg('txn') + txn2.objectStore('os3').get(1).onsuccess = reg('txn2') + } + + txn2.objectStore('os1').get(2).onsuccess = reg('txn2') + txn.objectStore('os1').openCursor(null, 'prev').onsuccess = reg('txn') + os4.openCursor(null, 'prev').onsuccess = reg('txn2') + + txn.oncomplete = t.step_func(finish); + txn2.oncomplete = t.step_func(finish); + }; + + + function reg(n) { + return t.step_func(function(e) { + let v = e.target.result; + if (v.value) + v = v.value; + keys[n].push(v.os + ': ' + v.k); + }); + } + + let finish_to_go = 2; + function finish() { + if (--finish_to_go) + return; + + assert_array_equals( + keys['txn'], + [ + 'os1: 1', + 'os3: 1', + 'os1: 2', + 'os2: 3', + 'os2: 1', + 'os2: 1', + 'os2: 1', + 'os1: 2', + ], + 'transaction keys'); + + assert_array_equals( + keys['txn2'], + [ + 'os4: 1', + 'os4: 5', + 'os4: 4', + 'os3: 1', + 'os4: 1', + 'os4: 5', + 'os4: 4', + 'os3: 1', + 'os4: 1', + 'os4: 5', + 'os4: 4', + 'os3: 1', + 'os1: 2', + 'os4: 5', + ], + 'transaction 2 keys'); + + t.done(); + } +}, 'Transactions have a request queue'); diff --git a/tests/wpt/tests/IndexedDB/transaction-requestqueue.htm b/tests/wpt/tests/IndexedDB/transaction-requestqueue.htm deleted file mode 100644 index cef8699df42..00000000000 --- a/tests/wpt/tests/IndexedDB/transaction-requestqueue.htm +++ /dev/null @@ -1,89 +0,0 @@ - - -Transactions have a request queue - - - - - - - -
diff --git a/tests/wpt/tests/IndexedDB/transaction_bubble-and-capture.any.js b/tests/wpt/tests/IndexedDB/transaction_bubble-and-capture.any.js new file mode 100644 index 00000000000..9449a756daa --- /dev/null +++ b/tests/wpt/tests/IndexedDB/transaction_bubble-and-capture.any.js @@ -0,0 +1,73 @@ +// META: title=IndexedDB Transaction Event Bubbling and Capturing +// META: global=window,worker +// META: script=resources/support.js + +'use strict'; + +async_test(t => { + let events = []; + let open_rq = createdb(t); + open_rq.onupgradeneeded = function(e) { + let db = e.target.result; + let txn = e.target.transaction; + let store = db.createObjectStore('store'); + let rq1 = store.add('', 1); + let rq2 = store.add('', 1); + + // We will run db.error, but don't let that fail the test + db.onerror = undefined; + + log_events('db', db, 'success'); + log_events('db', db, 'error'); + + log_events('txn', txn, 'success'); + log_events('txn', txn, 'error'); + + log_events('rq1', rq1, 'success'); + log_events('rq1', rq1, 'error'); + + log_events('rq2', rq2, 'success'); + log_events('rq2', rq2, 'error'); + + // Don't let it get to abort + db.addEventListener('error', function(e) { + e.preventDefault(); + }, false); + }; + + open_rq.onsuccess = function(e) { + log('open_rq.success')(e); + assert_array_equals( + events, + [ + 'capture db.success', + 'capture txn.success', + 'capture rq1.success', + 'bubble rq1.success', + + 'capture db.error: ConstraintError', + 'capture txn.error: ConstraintError', + 'capture rq2.error: ConstraintError', + 'bubble rq2.error: ConstraintError', + 'bubble txn.error: ConstraintError', + 'bubble db.error: ConstraintError', + + 'open_rq.success', + ], + 'events'); + t.done(); + }; + function log_events(type, obj, evt) { + obj.addEventListener(evt, log('capture ' + type + '.' + evt), true); + obj.addEventListener(evt, log('bubble ' + type + '.' + evt), false); + } + + function log(msg) { + return function(e) { + if (e && e.target && e.target.error) + events.push(msg + ': ' + e.target.error.name); + else + events.push(msg); + }; + } +}, 'Capture and bubble'); diff --git a/tests/wpt/tests/IndexedDB/transaction_bubble-and-capture.htm b/tests/wpt/tests/IndexedDB/transaction_bubble-and-capture.htm deleted file mode 100644 index 9b6694b980c..00000000000 --- a/tests/wpt/tests/IndexedDB/transaction_bubble-and-capture.htm +++ /dev/null @@ -1,75 +0,0 @@ - - -Capture and bubble - - - - - - - -
diff --git a/tests/wpt/tests/bluetooth/adapter/adapter-absent-getAvailability.https.window.js b/tests/wpt/tests/bluetooth/legacy/adapter/adapter-absent-getAvailability.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/adapter/adapter-absent-getAvailability.https.window.js rename to tests/wpt/tests/bluetooth/legacy/adapter/adapter-absent-getAvailability.https.window.js diff --git a/tests/wpt/tests/bluetooth/adapter/adapter-added-getAvailability.https.window.js b/tests/wpt/tests/bluetooth/legacy/adapter/adapter-added-getAvailability.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/adapter/adapter-added-getAvailability.https.window.js rename to tests/wpt/tests/bluetooth/legacy/adapter/adapter-added-getAvailability.https.window.js diff --git a/tests/wpt/tests/bluetooth/adapter/adapter-powered-off-getAvailability.https.window.js b/tests/wpt/tests/bluetooth/legacy/adapter/adapter-powered-off-getAvailability.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/adapter/adapter-powered-off-getAvailability.https.window.js rename to tests/wpt/tests/bluetooth/legacy/adapter/adapter-powered-off-getAvailability.https.window.js diff --git a/tests/wpt/tests/bluetooth/adapter/adapter-powered-on-getAvailability.https.window.js b/tests/wpt/tests/bluetooth/legacy/adapter/adapter-powered-on-getAvailability.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/adapter/adapter-powered-on-getAvailability.https.window.js rename to tests/wpt/tests/bluetooth/legacy/adapter/adapter-powered-on-getAvailability.https.window.js diff --git a/tests/wpt/tests/bluetooth/adapter/adapter-powered-on-off-on-getAvailability.https.window.js b/tests/wpt/tests/bluetooth/legacy/adapter/adapter-powered-on-off-on-getAvailability.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/adapter/adapter-powered-on-off-on-getAvailability.https.window.js rename to tests/wpt/tests/bluetooth/legacy/adapter/adapter-powered-on-off-on-getAvailability.https.window.js diff --git a/tests/wpt/tests/bluetooth/adapter/adapter-removed-getAvailability.https.window.js b/tests/wpt/tests/bluetooth/legacy/adapter/adapter-removed-getAvailability.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/adapter/adapter-removed-getAvailability.https.window.js rename to tests/wpt/tests/bluetooth/legacy/adapter/adapter-removed-getAvailability.https.window.js diff --git a/tests/wpt/tests/bluetooth/adapter/cross-origin-iframe-getAvailability.sub.https.window.js b/tests/wpt/tests/bluetooth/legacy/adapter/cross-origin-iframe-getAvailability.sub.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/adapter/cross-origin-iframe-getAvailability.sub.https.window.js rename to tests/wpt/tests/bluetooth/legacy/adapter/cross-origin-iframe-getAvailability.sub.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/characteristicProperties.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/characteristicProperties.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/characteristicProperties.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/characteristicProperties.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptor/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptor/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptor/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptor/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptor/gen-characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptor/gen-characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptor/gen-descriptor-get-same-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptor/gen-descriptor-get-same-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptor/gen-service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptor/gen-service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptor/gen-service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptor/gen-service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptors/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptors/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-descriptor-get-same-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-descriptor-get-same-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/getDescriptors/gen-service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/getDescriptors/gen-service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/notifications/characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/notifications/characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/notifications/characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/notifications/characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/notifications/service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/notifications/service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/notifications/service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/notifications/service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/readValue/add-multiple-event-listeners.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/readValue/add-multiple-event-listeners.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/readValue/characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/readValue/characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/readValue/characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/readValue/characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/readValue/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/readValue/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/readValue/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/readValue/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/readValue/event-is-fired.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/readValue/event-is-fired.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/readValue/event-is-fired.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/readValue/event-is-fired.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/readValue/gen-characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/readValue/gen-characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/readValue/read-succeeds.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/readValue/read-succeeds.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/readValue/read-succeeds.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/readValue/read-succeeds.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/readValue/read-updates-value.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/readValue/read-updates-value.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/readValue/read-updates-value.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/readValue/read-updates-value.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/readValue/service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/readValue/service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/readValue/service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/readValue/service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/service-same-from-2-characteristics.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/service-same-from-2-characteristics.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/service-same-from-2-characteristics.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/service-same-from-2-characteristics.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/service-same-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/service-same-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/service-same-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/service-same-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/startNotifications/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/startNotifications/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/startNotifications/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/startNotifications/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/startNotifications/gen-characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/startNotifications/gen-characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/stopNotifications/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/stopNotifications/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/stopNotifications/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/stopNotifications/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValue/buffer-is-detached.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/buffer-is-detached.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValue/buffer-is-detached.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/buffer-is-detached.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValue/characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValue/characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValue/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValue/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/gen-characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/gen-characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValue/service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValue/service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValue/write-succeeds.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/write-succeeds.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValue/write-succeeds.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValue/write-succeeds.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/buffer-is-detached.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/gen-characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/write-succeeds.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/write-succeeds.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithResponse/write-succeeds.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithResponse/write-succeeds.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/buffer-is-detached.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/gen-characteristic-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js b/tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js rename to tests/wpt/tests/bluetooth/legacy/characteristic/writeValueWithoutResponse/write-succeeds.https.window.js diff --git a/tests/wpt/tests/bluetooth/descriptor/readValue/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/descriptor/readValue/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/descriptor/readValue/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/descriptor/readValue/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/descriptor/readValue/gen-service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/descriptor/readValue/gen-service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/descriptor/readValue/gen-service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/descriptor/readValue/gen-service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/descriptor/readValue/read-succeeds.https.window.js b/tests/wpt/tests/bluetooth/legacy/descriptor/readValue/read-succeeds.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/descriptor/readValue/read-succeeds.https.window.js rename to tests/wpt/tests/bluetooth/legacy/descriptor/readValue/read-succeeds.https.window.js diff --git a/tests/wpt/tests/bluetooth/descriptor/writeValue/buffer-is-detached.https.window.js b/tests/wpt/tests/bluetooth/legacy/descriptor/writeValue/buffer-is-detached.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/descriptor/writeValue/buffer-is-detached.https.window.js rename to tests/wpt/tests/bluetooth/legacy/descriptor/writeValue/buffer-is-detached.https.window.js diff --git a/tests/wpt/tests/bluetooth/descriptor/writeValue/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/descriptor/writeValue/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/descriptor/writeValue/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/descriptor/writeValue/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/descriptor/writeValue/gen-service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/descriptor/writeValue/gen-service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/descriptor/writeValue/gen-service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/descriptor/writeValue/gen-service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/forget/connect-after-forget.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/forget/connect-after-forget.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/forget/connect-after-forget.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/forget/connect-after-forget.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/forget/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/forget/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/forget/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/forget/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/forget/getDevices.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/forget/getDevices.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/forget/getDevices.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/forget/getDevices.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/gattserverdisconnected-event/disconnected.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/gattserverdisconnected-event/disconnected.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/gattserverdisconnected-event/disconnected.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/gattserverdisconnected-event/disconnected.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/gattserverdisconnected-event/disconnected_gc.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/gattserverdisconnected-event/disconnected_gc.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/gattserverdisconnected-event/one-event-per-disconnection.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/gattserverdisconnected-event/one-event-per-disconnection.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/abort-before-watchAdvertisements.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/abort-pending-operation.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/abort-pending-operation.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/abort-pending-operation.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/abort-pending-operation.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/abort-signal-stops-events.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/abort-signal-stops-events.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/abort-signal-stops-events.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/abort-signal-stops-events.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/abort-subsequent-watchAdvertisements-call-stops-events.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/advertisementreceived-event-fired.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/blocklisted-manufacturer-data-filtered-from-event.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/blocklisted-manufacturer-data-filtered-from-event.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/blocklisted-manufacturer-data-filtered-from-event.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/blocklisted-manufacturer-data-filtered-from-event.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/concurrent-watchAdvertisements-calls.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/service-and-manufacturer-data-filtered-from-event.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/subsequent-watchAdvertisements-call.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/watching-two-devices-abort-one-watchAdvertisements.https.window.js diff --git a/tests/wpt/tests/bluetooth/device/watchAdvertisements/watching-two-devices.https.window.js b/tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/watching-two-devices.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/device/watchAdvertisements/watching-two-devices.https.window.js rename to tests/wpt/tests/bluetooth/legacy/device/watchAdvertisements/watching-two-devices.https.window.js diff --git a/tests/wpt/tests/bluetooth/generate.py b/tests/wpt/tests/bluetooth/legacy/generate.py similarity index 100% rename from tests/wpt/tests/bluetooth/generate.py rename to tests/wpt/tests/bluetooth/legacy/generate.py diff --git a/tests/wpt/tests/bluetooth/generate_test.py b/tests/wpt/tests/bluetooth/legacy/generate_test.py similarity index 100% rename from tests/wpt/tests/bluetooth/generate_test.py rename to tests/wpt/tests/bluetooth/legacy/generate_test.py diff --git a/tests/wpt/tests/bluetooth/getAvailability/reject_opaque_origin.https.html b/tests/wpt/tests/bluetooth/legacy/getAvailability/reject_opaque_origin.https.html similarity index 100% rename from tests/wpt/tests/bluetooth/getAvailability/reject_opaque_origin.https.html rename to tests/wpt/tests/bluetooth/legacy/getAvailability/reject_opaque_origin.https.html diff --git a/tests/wpt/tests/bluetooth/getAvailability/reject_opaque_origin.https.html.headers b/tests/wpt/tests/bluetooth/legacy/getAvailability/reject_opaque_origin.https.html.headers similarity index 100% rename from tests/wpt/tests/bluetooth/getAvailability/reject_opaque_origin.https.html.headers rename to tests/wpt/tests/bluetooth/legacy/getAvailability/reject_opaque_origin.https.html.headers diff --git a/tests/wpt/tests/bluetooth/getAvailability/sandboxed_iframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/getAvailability/sandboxed_iframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/getAvailability/sandboxed_iframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/getAvailability/sandboxed_iframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/getDevices/granted-devices-with-services.https.window.js b/tests/wpt/tests/bluetooth/legacy/getDevices/granted-devices-with-services.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/getDevices/granted-devices-with-services.https.window.js rename to tests/wpt/tests/bluetooth/legacy/getDevices/granted-devices-with-services.https.window.js diff --git a/tests/wpt/tests/bluetooth/getDevices/no-granted-devices.https.window.js b/tests/wpt/tests/bluetooth/legacy/getDevices/no-granted-devices.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/getDevices/no-granted-devices.https.window.js rename to tests/wpt/tests/bluetooth/legacy/getDevices/no-granted-devices.https.window.js diff --git a/tests/wpt/tests/bluetooth/getDevices/reject_opaque_origin.https.html b/tests/wpt/tests/bluetooth/legacy/getDevices/reject_opaque_origin.https.html similarity index 100% rename from tests/wpt/tests/bluetooth/getDevices/reject_opaque_origin.https.html rename to tests/wpt/tests/bluetooth/legacy/getDevices/reject_opaque_origin.https.html diff --git a/tests/wpt/tests/bluetooth/getDevices/reject_opaque_origin.https.html.headers b/tests/wpt/tests/bluetooth/legacy/getDevices/reject_opaque_origin.https.html.headers similarity index 100% rename from tests/wpt/tests/bluetooth/getDevices/reject_opaque_origin.https.html.headers rename to tests/wpt/tests/bluetooth/legacy/getDevices/reject_opaque_origin.https.html.headers diff --git a/tests/wpt/tests/bluetooth/getDevices/returns-same-bluetooth-device-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/getDevices/returns-same-bluetooth-device-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/getDevices/returns-same-bluetooth-device-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/getDevices/returns-same-bluetooth-device-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/getDevices/sandboxed_iframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/getDevices/sandboxed_iframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/getDevices/sandboxed_iframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/getDevices/sandboxed_iframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/idl/idl-Bluetooth.https.window.js b/tests/wpt/tests/bluetooth/legacy/idl/idl-Bluetooth.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/idl/idl-Bluetooth.https.window.js rename to tests/wpt/tests/bluetooth/legacy/idl/idl-Bluetooth.https.window.js diff --git a/tests/wpt/tests/bluetooth/idl/idl-BluetoothDevice.https.window.js b/tests/wpt/tests/bluetooth/legacy/idl/idl-BluetoothDevice.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/idl/idl-BluetoothDevice.https.window.js rename to tests/wpt/tests/bluetooth/legacy/idl/idl-BluetoothDevice.https.window.js diff --git a/tests/wpt/tests/bluetooth/idl/idl-BluetoothUUID.window.js b/tests/wpt/tests/bluetooth/legacy/idl/idl-BluetoothUUID.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/idl/idl-BluetoothUUID.window.js rename to tests/wpt/tests/bluetooth/legacy/idl/idl-BluetoothUUID.window.js diff --git a/tests/wpt/tests/bluetooth/idl/idl-NavigatorBluetooth.https.window.js b/tests/wpt/tests/bluetooth/legacy/idl/idl-NavigatorBluetooth.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/idl/idl-NavigatorBluetooth.https.window.js rename to tests/wpt/tests/bluetooth/legacy/idl/idl-NavigatorBluetooth.https.window.js diff --git a/tests/wpt/tests/bluetooth/idl/idl-NavigatorBluetooth.window.js b/tests/wpt/tests/bluetooth/legacy/idl/idl-NavigatorBluetooth.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/idl/idl-NavigatorBluetooth.window.js rename to tests/wpt/tests/bluetooth/legacy/idl/idl-NavigatorBluetooth.window.js diff --git a/tests/wpt/tests/bluetooth/idl/idlharness.tentative.https.window.js b/tests/wpt/tests/bluetooth/legacy/idl/idlharness.tentative.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/idl/idlharness.tentative.https.window.js rename to tests/wpt/tests/bluetooth/legacy/idl/idlharness.tentative.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/acceptAllDevices/device-with-empty-name.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/acceptAllDevices/device-with-empty-name.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/acceptAllDevices/device-with-name.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/acceptAllDevices/device-with-name.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/acceptAllDevices/optional-services-missing.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/acceptAllDevices/optional-services-missing.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/acceptAllDevices/optional-services-present.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/acceptAllDevices/optional-services-present.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/blocklisted-manufacturer-data-in-filter.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/blocklisted-manufacturer-data-in-filter.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/blocklisted-manufacturer-data-in-filter.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/blocklisted-manufacturer-data-in-filter.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/blocklisted-service-in-filter.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/blocklisted-service-in-filter.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/blocklisted-service-in-filter.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/blocklisted-service-in-filter.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/blocklisted-service-in-optionalServices.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/blocklisted-service-in-optionalServices.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/blocklisted-service-in-optionalServices.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/blocklisted-service-in-optionalServices.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/data-prefix-and-mask-size.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/data-prefix-and-mask-size.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/data-prefix-and-mask-size.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/data-prefix-and-mask-size.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/dataPrefix-buffer-is-detached.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/dataPrefix-buffer-is-detached.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/dataPrefix-buffer-is-detached.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/dataPrefix-buffer-is-detached.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-dataPrefix.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-dataPrefix.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-dataPrefix.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-dataPrefix.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-exclusion-filter.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-exclusion-filter.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-exclusion-filter.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-exclusion-filter.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-exclusion-filters-member.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-exclusion-filters-member.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-exclusion-filters-member.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-exclusion-filters-member.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-filter.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-filter.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-filters-member.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-filters-member.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-manufacturerData-member.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-manufacturerData-member.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-manufacturerData-member.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-manufacturerData-member.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-namePrefix.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-namePrefix.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-services-member.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/empty-services-member.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/exclusion-filters-require-filters.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/exclusion-filters-require-filters.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/exclusion-filters-require-filters.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/exclusion-filters-require-filters.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/invalid-companyIdentifier.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/invalid-companyIdentifier.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/invalid-companyIdentifier.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/invalid-companyIdentifier.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/mask-buffer-is-detached.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/mask-buffer-is-detached.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/mask-buffer-is-detached.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/mask-buffer-is-detached.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-name-unicode.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-name-unicode.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-name.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-name.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-namePrefix.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/max-length-namePrefix.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/no-arguments.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/no-arguments.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/same-company-identifier.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/same-company-identifier.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/same-company-identifier.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/same-company-identifier.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/cross-origin-iframe.sub.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/cross-origin-iframe.sub.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/cross-origin-iframe.sub.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/cross-origin-iframe.sub.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/discovery-succeeds.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/discovery-succeeds.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/discovery-succeeds.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/discovery-succeeds.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/doesnt-consume-user-gesture.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/doesnt-consume-user-gesture.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/doesnt-consume-user-gesture.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/doesnt-consume-user-gesture.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/filter-matches.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/filter-matches.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/filter-matches.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/filter-matches.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/le-not-supported.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/le-not-supported.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/le-not-supported.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/le-not-supported.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/manufacturer-data-filter-matches.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/manufacturer-data-filter-matches.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/manufacturer-data-filter-matches.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/manufacturer-data-filter-matches.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/name-empty-device-from-name-empty-filter.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/name-empty-device-from-name-empty-filter.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/not-processing-user-gesture.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/not-processing-user-gesture.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/not-processing-user-gesture.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/not-processing-user-gesture.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/radio-not-present.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/radio-not-present.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/radio-not-present.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/radio-not-present.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/reject_opaque_origin.https.html b/tests/wpt/tests/bluetooth/legacy/requestDevice/reject_opaque_origin.https.html similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/reject_opaque_origin.https.html rename to tests/wpt/tests/bluetooth/legacy/requestDevice/reject_opaque_origin.https.html diff --git a/tests/wpt/tests/bluetooth/requestDevice/reject_opaque_origin.https.html.headers b/tests/wpt/tests/bluetooth/legacy/requestDevice/reject_opaque_origin.https.html.headers similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/reject_opaque_origin.https.html.headers rename to tests/wpt/tests/bluetooth/legacy/requestDevice/reject_opaque_origin.https.html.headers diff --git a/tests/wpt/tests/bluetooth/requestDevice/request-from-iframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/request-from-iframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/request-from-iframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/request-from-iframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/request-from-sandboxed-iframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/request-from-sandboxed-iframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/request-from-sandboxed-iframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/request-from-sandboxed-iframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/same-device.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/same-device.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/same-device.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/same-device.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/sandboxed_iframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/sandboxed_iframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/sandboxed_iframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/sandboxed_iframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestDevice/single-filter-single-service.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestDevice/single-filter-single-service.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestDevice/single-filter-single-service.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestDevice/single-filter-single-service.https.window.js diff --git a/tests/wpt/tests/bluetooth/requestLEScan/reject_opaque_origin.https.html b/tests/wpt/tests/bluetooth/legacy/requestLEScan/reject_opaque_origin.https.html similarity index 100% rename from tests/wpt/tests/bluetooth/requestLEScan/reject_opaque_origin.https.html rename to tests/wpt/tests/bluetooth/legacy/requestLEScan/reject_opaque_origin.https.html diff --git a/tests/wpt/tests/bluetooth/requestLEScan/reject_opaque_origin.https.html.headers b/tests/wpt/tests/bluetooth/legacy/requestLEScan/reject_opaque_origin.https.html.headers similarity index 100% rename from tests/wpt/tests/bluetooth/requestLEScan/reject_opaque_origin.https.html.headers rename to tests/wpt/tests/bluetooth/legacy/requestLEScan/reject_opaque_origin.https.html.headers diff --git a/tests/wpt/tests/bluetooth/requestLEScan/sandboxed_iframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/requestLEScan/sandboxed_iframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/requestLEScan/sandboxed_iframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/requestLEScan/sandboxed_iframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/script-tests/base_test_js.template b/tests/wpt/tests/bluetooth/legacy/script-tests/base_test_js.template similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/base_test_js.template rename to tests/wpt/tests/bluetooth/legacy/script-tests/base_test_js.template diff --git a/tests/wpt/tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js b/tests/wpt/tests/bluetooth/legacy/script-tests/characteristic/characteristic-is-removed.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/characteristic/characteristic-is-removed.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/characteristic/characteristic-is-removed.js diff --git a/tests/wpt/tests/bluetooth/script-tests/characteristic/descriptor-get-same-object.js b/tests/wpt/tests/bluetooth/legacy/script-tests/characteristic/descriptor-get-same-object.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/characteristic/descriptor-get-same-object.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/characteristic/descriptor-get-same-object.js diff --git a/tests/wpt/tests/bluetooth/script-tests/characteristic/service-is-removed.js b/tests/wpt/tests/bluetooth/legacy/script-tests/characteristic/service-is-removed.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/characteristic/service-is-removed.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/characteristic/service-is-removed.js diff --git a/tests/wpt/tests/bluetooth/script-tests/descriptor/service-is-removed.js b/tests/wpt/tests/bluetooth/legacy/script-tests/descriptor/service-is-removed.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/descriptor/service-is-removed.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/descriptor/service-is-removed.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/disconnect-called-before.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-called-before.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/disconnect-called-before.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-called-before.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/disconnect-called-during-error.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-called-during-error.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/disconnect-called-during-error.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-called-during-error.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/disconnect-called-during-success.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-called-during-success.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/disconnect-called-during-success.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-called-during-success.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/disconnect-discovery-timeout.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-discovery-timeout.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/disconnect-discovery-timeout.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-discovery-timeout.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/disconnect-invalidates-objects.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-invalidates-objects.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/disconnect-invalidates-objects.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnect-invalidates-objects.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/disconnected-device.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnected-device.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/disconnected-device.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/disconnected-device.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/discovery-complete-no-permission-absent-service.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/discovery-complete-no-permission-absent-service.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/discovery-complete-no-permission-absent-service.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/discovery-complete-service-not-found.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/discovery-complete-service-not-found.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/discovery-complete-service-not-found.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/discovery-complete-service-not-found.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/garbage-collection-ran-during-error.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/garbage-collection-ran-during-error.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/garbage-collection-ran-during-error.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/garbage-collection-ran-during-error.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/garbage-collection-ran-during-success.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/garbage-collection-ran-during-success.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/garbage-collection-ran-during-success.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/garbage-collection-ran-during-success.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/get-different-service-after-reconnection.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/get-different-service-after-reconnection.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/get-different-service-after-reconnection.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/get-different-service-after-reconnection.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/get-same-object.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/get-same-object.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/get-same-object.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/get-same-object.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/invalid-service-name.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/invalid-service-name.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/invalid-service-name.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/invalid-service-name.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/no-permission-absent-service.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/no-permission-absent-service.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/no-permission-absent-service.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/no-permission-absent-service.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/no-permission-for-any-service.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/no-permission-for-any-service.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/no-permission-for-any-service.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/no-permission-for-any-service.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/no-permission-present-service.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/no-permission-present-service.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/no-permission-present-service.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/no-permission-present-service.js diff --git a/tests/wpt/tests/bluetooth/script-tests/server/service-not-found.js b/tests/wpt/tests/bluetooth/legacy/script-tests/server/service-not-found.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/server/service-not-found.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/server/service-not-found.js diff --git a/tests/wpt/tests/bluetooth/script-tests/service/blocklisted-characteristic.js b/tests/wpt/tests/bluetooth/legacy/script-tests/service/blocklisted-characteristic.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/service/blocklisted-characteristic.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/service/blocklisted-characteristic.js diff --git a/tests/wpt/tests/bluetooth/script-tests/service/characteristic-not-found.js b/tests/wpt/tests/bluetooth/legacy/script-tests/service/characteristic-not-found.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/service/characteristic-not-found.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/service/characteristic-not-found.js diff --git a/tests/wpt/tests/bluetooth/script-tests/service/garbage-collection-ran-during-error.js b/tests/wpt/tests/bluetooth/legacy/script-tests/service/garbage-collection-ran-during-error.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/service/garbage-collection-ran-during-error.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/service/garbage-collection-ran-during-error.js diff --git a/tests/wpt/tests/bluetooth/script-tests/service/get-same-object.js b/tests/wpt/tests/bluetooth/legacy/script-tests/service/get-same-object.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/service/get-same-object.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/service/get-same-object.js diff --git a/tests/wpt/tests/bluetooth/script-tests/service/invalid-characteristic-name.js b/tests/wpt/tests/bluetooth/legacy/script-tests/service/invalid-characteristic-name.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/service/invalid-characteristic-name.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/service/invalid-characteristic-name.js diff --git a/tests/wpt/tests/bluetooth/script-tests/service/reconnect-during.js b/tests/wpt/tests/bluetooth/legacy/script-tests/service/reconnect-during.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/service/reconnect-during.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/service/reconnect-during.js diff --git a/tests/wpt/tests/bluetooth/script-tests/service/service-is-removed.js b/tests/wpt/tests/bluetooth/legacy/script-tests/service/service-is-removed.js similarity index 100% rename from tests/wpt/tests/bluetooth/script-tests/service/service-is-removed.js rename to tests/wpt/tests/bluetooth/legacy/script-tests/service/service-is-removed.js diff --git a/tests/wpt/tests/bluetooth/server/connect/connection-succeeds.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/connect/connection-succeeds.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/connect/connection-succeeds.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/connect/connection-succeeds.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/connect/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/connect/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/connect/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/connect/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/connect/garbage-collection-ran-during-success.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/connect/garbage-collection-ran-during-success.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/connect/garbage-collection-ran-during-success.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/connect/get-same-gatt-server.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/connect/get-same-gatt-server.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/connect/get-same-gatt-server.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/connect/get-same-gatt-server.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/device-same-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/device-same-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/device-same-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/device-same-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/disconnect/connect-disconnect-twice.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/disconnect/connect-disconnect-twice.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/disconnect/connect-disconnect-twice.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/disconnect/connect-disconnect-twice.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/disconnect/detach-gc.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/disconnect/detach-gc.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/disconnect/detach-gc.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/disconnect/detach-gc.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/disconnect/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/disconnect/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/disconnect/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/disconnect/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/disconnect/disconnect-twice-in-a-row.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/disconnect/disconnect-twice-in-a-row.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/disconnect/gc-detach.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/disconnect/gc-detach.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/disconnect/gc-detach.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/disconnect/gc-detach.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-called-before.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-called-before.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-called-during-error.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-called-during-error.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-called-during-success.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-called-during-success.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-discovery-timeout.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-discovery-timeout.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-discovery-timeout.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-discovery-timeout.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-invalidates-objects.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnect-invalidates-objects.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnected-device.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnected-device.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-disconnected-device.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-disconnected-device.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-discovery-complete-service-not-found.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-discovery-complete-service-not-found.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-get-different-service-after-reconnection.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-get-different-service-after-reconnection.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-get-same-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-get-same-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-get-same-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-get-same-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-invalid-service-name.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-invalid-service-name.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-no-permission-absent-service.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-no-permission-absent-service.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-no-permission-for-any-service.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-no-permission-for-any-service.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-no-permission-present-service.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-no-permission-present-service.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/gen-service-not-found.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-service-not-found.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/gen-service-not-found.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/gen-service-not-found.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/service-found.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/service-found.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/service-found.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/service-found.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryService/two-iframes-from-same-origin.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/two-iframes-from-same-origin.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryService/two-iframes-from-same-origin.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryService/two-iframes-from-same-origin.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/blocklisted-services-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/blocklisted-services-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/blocklisted-services-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/blocklisted-services-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/blocklisted-services.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/blocklisted-services.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/blocklisted-services.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/blocklisted-services.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/correct-services.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/correct-services.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/correct-services.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/correct-services.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-before.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-before.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-during-error.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-during-error.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-during-success.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-called-during-success.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-discovery-timeout-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-discovery-timeout-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-discovery-timeout-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-discovery-timeout-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-discovery-timeout.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-discovery-timeout.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-discovery-timeout.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-discovery-timeout.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnected-device.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-disconnected-device.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-get-same-object-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-get-same-object-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-get-same-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-get-same-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-get-same-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-get-same-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-invalid-service-name.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-invalid-service-name.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-no-permission-for-any-service.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-no-permission-for-any-service.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-service-not-found-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/gen-service-not-found-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/services-found-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/services-found-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/services-found-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/services-found-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/services-found.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/services-found.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/services-found.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/services-found.https.window.js diff --git a/tests/wpt/tests/bluetooth/server/getPrimaryServices/services-not-found.https.window.js b/tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/services-not-found.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/server/getPrimaryServices/services-not-found.https.window.js rename to tests/wpt/tests/bluetooth/legacy/server/getPrimaryServices/services-not-found.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/device-same-from-2-services.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/device-same-from-2-services.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/device-same-from-2-services.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/device-same-from-2-services.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/device-same-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/device-same-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/device-same-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/device-same-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristic/characteristic-found.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/characteristic-found.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristic/characteristic-found.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/characteristic-found.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristic/detachedIframe.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/detachedIframe.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristic/detachedIframe.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/detachedIframe.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristic/gen-blocklisted-characteristic.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-blocklisted-characteristic.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristic/gen-blocklisted-characteristic.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-blocklisted-characteristic.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristic/gen-characteristic-not-found.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-characteristic-not-found.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristic/gen-characteristic-not-found.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-characteristic-not-found.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristic/gen-get-same-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-get-same-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristic/gen-get-same-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-get-same-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristic/gen-invalid-characteristic-name.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-invalid-characteristic-name.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristic/gen-invalid-characteristic-name.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-invalid-characteristic-name.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristic/gen-reconnect-during.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-reconnect-during.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristic/gen-reconnect-during.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-reconnect-during.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristic/gen-service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristic/gen-service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristic/gen-service-is-removed.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/blocklisted-characteristics.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/blocklisted-characteristics.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/characteristics-found-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/characteristics-found-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/characteristics-found.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/characteristics-found.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/characteristics-found.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/characteristics-found.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/characteristics-not-found.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/characteristics-not-found.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/characteristics-not-found.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-get-same-object-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-get-same-object-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-get-same-object-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-get-same-object-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-get-same-object.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-get-same-object.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-get-same-object.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-get-same-object.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-invalid-characteristic-name.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-invalid-characteristic-name.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-invalid-characteristic-name.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-invalid-characteristic-name.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-reconnect-during-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-reconnect-during-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-reconnect-during-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-reconnect-during-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-reconnect-during.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-reconnect-during.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-reconnect-during.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-reconnect-during.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-service-is-removed-with-uuid.https.window.js diff --git a/tests/wpt/tests/bluetooth/service/getCharacteristics/gen-service-is-removed.https.window.js b/tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-service-is-removed.https.window.js similarity index 100% rename from tests/wpt/tests/bluetooth/service/getCharacteristics/gen-service-is-removed.https.window.js rename to tests/wpt/tests/bluetooth/legacy/service/getCharacteristics/gen-service-is-removed.https.window.js diff --git a/tests/wpt/tests/clear-site-data/clear-cache.https.html b/tests/wpt/tests/clear-site-data/clear-cache.https.html new file mode 100644 index 00000000000..8cdaf2a5527 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/clear-cache.https.html @@ -0,0 +1,110 @@ + + + + + + + + + diff --git a/tests/wpt/tests/clear-site-data/support/clear-site-data-cache.py b/tests/wpt/tests/clear-site-data/support/clear-site-data-cache.py new file mode 100644 index 00000000000..87107693b46 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/support/clear-site-data-cache.py @@ -0,0 +1,69 @@ +""" +Loaded in Step 2/4/Optional 6 (/clear-site-data/clear-cache.https.html) +Sending Message for Step 3/5/Optional 7 (/clear-site-data/clear-cache.https.html) +""" +import uuid + +def main(request, response): + # type of response: + # - "single_html": Main page html file with a different postMessage uuid on each response + # - "json": Json that always responds with a different uuid in a single-element array + # - "html_embed_json": Main page html that embeds a cachable version of the above json + response_type = request.GET.first(b"response") + + cache_helper = request.GET.first(b"cache_helper") + + # force enable caching when present or force disable if not + cache = b"cache" in request.GET + clear = None + if b"clear" in request.GET: + clear = request.GET.first(b"clear") + if b"clear_first" in request.GET: + if request.server.stash.take(cache_helper) is None: + clear = request.GET.first(b"clear_first") + request.server.stash.put(cache_helper, ()) + + headers = [] + if response_type == b"json": + headers += [(b"Content-Type", b"application/json")] + else: + headers += [(b"Content-Type", b"text/html")] + + if cache: + headers += [(b"cache-control", b"public, max-age=31536000, immutable")] + else: + headers += [(b"cache-control", b"no-store")] + + if clear is not None: + if clear == b"all": + headers += [(b"Clear-Site-Data", b'"*"')] + else: + headers += [(b"Clear-Site-Data", b'"' + clear + b'"')] + + if response_type == b"single_html": + # send unique UUID. Cache got cleared when uuids don't match. + content = f''' + + + {request.url} + ''' + elif response_type == b"json": + # send unique UUID. helper for below "html_embed_json" + content = f'''["{uuid.uuid4()}"]''' + elif response_type == b"html_embed_json": + url = request.url_parts.path + "?response=json&cache&cache_helper=" + cache_helper.decode() + content = f''' + + + {request.url}
+ {url} + ''' + + + return 200, headers, content diff --git a/tests/wpt/tests/cookie-store/cookieListItem_attributes.https.any.js b/tests/wpt/tests/cookie-store/cookieListItem_attributes.https.any.js index 200cbd06928..6716d91788d 100644 --- a/tests/wpt/tests/cookie-store/cookieListItem_attributes.https.any.js +++ b/tests/wpt/tests/cookie-store/cookieListItem_attributes.https.any.js @@ -195,3 +195,15 @@ promise_test(async testCase => { }, `CookieListItem - cookieStore.set with sameSite set to ${sameSiteValue}`); }); + +promise_test(async testCase => { + await cookieStore.delete('cookie-name'); + + await cookieStore.set('cookie-name', 'cookie-value'); + testCase.add_cleanup(async () => { + await cookieStore.delete('cookie-name'); + }); + + const cookie = await cookieStore.get('cookie-name'); + assert_equals(cookie.secure, true); +}, 'CookieListItem - secure defaults to true'); diff --git a/tests/wpt/tests/cookie-store/cookieStore_delete_arguments.https.any.js b/tests/wpt/tests/cookie-store/cookieStore_delete_arguments.https.any.js index ddae23888f4..37a551b3a9f 100644 --- a/tests/wpt/tests/cookie-store/cookieStore_delete_arguments.https.any.js +++ b/tests/wpt/tests/cookie-store/cookieStore_delete_arguments.https.any.js @@ -143,7 +143,7 @@ promise_test(async testCase => { assert_equals(cookie_attributes.name, 'cookie-name'); assert_equals(cookie_attributes.value, 'cookie-value'); - await cookieStore.delete(cookie_attributes); + await cookieStore.delete(cookie_attributes.name); const cookie = await cookieStore.get('cookie-name'); assert_equals(cookie, null); }, 'cookieStore.delete with get result'); diff --git a/tests/wpt/tests/cookie-store/cookieStore_getAll_set_creation_url.https.any.js b/tests/wpt/tests/cookie-store/cookieStore_getAll_set_creation_url.https.any.js new file mode 100644 index 00000000000..d09c4aad4f8 --- /dev/null +++ b/tests/wpt/tests/cookie-store/cookieStore_getAll_set_creation_url.https.any.js @@ -0,0 +1,33 @@ +// META: title=Cookie Store API: cookieStore.set()/getAll() with Document URL changing +// META: global=window + +'use strict'; + +promise_test(async testCase => { + const currentUrl = new URL(self.location.href); + const currentPath = currentUrl.pathname; + const currentDirectory = + currentPath.substr(0, currentPath.lastIndexOf('/') + 1); + + await cookieStore.delete({ name: 'cookie-name', path: currentDirectory }); + + await cookieStore.set( + { name: 'cookie-name', value: 'cookie-value', path: currentDirectory }); + testCase.add_cleanup(async () => { + await cookieStore.delete({ name: 'cookie-name', path: currentDirectory }); + }); + + // This changes the Document's current URL to this different URL. + // The Document's creation URL does not change. + // If set() and getAll() use Document's current URL, the cookie will be set + // using the original URL above, and the get below will fail since it looks + // for cookies with this different URL. If they both use the creation URL, + // the get will succeed since it won't use this different URL to search. + let different_url = `${self.location.protocol}//${self.location.host}/different/path`; + history.pushState({}, "", different_url); + + const cookies = await cookieStore.getAll(); + assert_equals(cookies.length, 1); + assert_equals(cookies[0].name, 'cookie-name'); + assert_equals(cookies[0].value, 'cookie-value'); +}, 'cookieStore.set and cookieStore.getAll use the creation url'); diff --git a/tests/wpt/tests/cookie-store/cookieStore_get_set_creation_url.https.any.js b/tests/wpt/tests/cookie-store/cookieStore_get_set_creation_url.https.any.js new file mode 100644 index 00000000000..71f8108095f --- /dev/null +++ b/tests/wpt/tests/cookie-store/cookieStore_get_set_creation_url.https.any.js @@ -0,0 +1,32 @@ +// META: title=Cookie Store API: cookieStore.set()/get() with Document URL changing +// META: global=window + +'use strict'; + +promise_test(async testCase => { + const currentUrl = new URL(self.location.href); + const currentPath = currentUrl.pathname; + const currentDirectory = + currentPath.substr(0, currentPath.lastIndexOf('/') + 1); + + await cookieStore.delete({ name: 'cookie-name', path: currentDirectory }); + + await cookieStore.set( + { name: 'cookie-name', value: 'cookie-value', path: currentDirectory }); + testCase.add_cleanup(async () => { + await cookieStore.delete({ name: 'cookie-name', path: currentDirectory }); + }); + + // This changes the Document's current URL to this different URL. + // The Document's creation URL does not change. + // If set() and get() use Document's current URL, the cookie will be set + // using the original URL above, and the get below will fail since it looks + // for cookies with this different URL. If they both use the creation URL, + // the get will succeed since it won't use this different URL to search. + let different_url = `${self.location.protocol}//${self.location.host}/different/path`; + history.pushState({}, "", different_url); + + const cookie = await cookieStore.get('cookie-name'); + assert_equals(cookie.name, 'cookie-name'); + assert_equals(cookie.value, 'cookie-value'); +}, 'cookieStore.set and cookieStore.get use the creation url'); diff --git a/tests/wpt/tests/cookie-store/cookieStore_set_arguments.https.any.js b/tests/wpt/tests/cookie-store/cookieStore_set_arguments.https.any.js index 8ff66bf7772..064fcc5de52 100644 --- a/tests/wpt/tests/cookie-store/cookieStore_set_arguments.https.any.js +++ b/tests/wpt/tests/cookie-store/cookieStore_set_arguments.https.any.js @@ -28,6 +28,11 @@ promise_test(async testCase => { assert_equals(cookie.value, 'cookie-value'); }, 'cookieStore.set with name and value in options'); +promise_test(async testCase => { + await promise_rejects_js(testCase, TypeError, + cookieStore.set('', '')); +}, "cookieStore.set fails with empty name and empty value"); + promise_test(async testCase => { await promise_rejects_js(testCase, TypeError, cookieStore.set('', 'suspicious-value=resembles-name-and-value')); @@ -44,6 +49,28 @@ promise_test(async testCase => { assert_equals(cookie.value, 'suspicious-value=resembles-name-and-value'); }, "cookieStore.set with normal name and an '=' in value"); +let invalidCharacters = [ '\u0000', '\u0001', '\u0002' + , '\u0003', '\u0004', '\u0005' + , '\u0006', '\u0007', '\u0008' + , '\u0010', '\u0011' + , '\u0012', '\u0013', '\u0014' + , '\u0015', '\u0016', '\u0017' + , '\u0018', '\u0019', '\u001A' + , '\u001B', '\u001C', '\u001D' + , '\u001E', '\u001F' + , '\u003B', '\u007F']; + +invalidCharacters.forEach(invalidCharacter => { + let invalidCookieName = 'cookie' + invalidCharacter + 'name'; + let invalidCookieValue = 'cookie' + invalidCharacter + 'value'; + promise_test(async testCase => { + await promise_rejects_js(testCase, TypeError, + cookieStore.set(invalidCookieName, 'cookie-value')); + await promise_rejects_js(testCase, TypeError, + cookieStore.set('cookie-name', invalidCookieValue)); + }, `cookieStore.set checks if name or value contain invalid character U+${invalidCharacter.charCodeAt(0).toString(16).padStart(4, "0").toUpperCase()}`); +}); + promise_test(async testCase => { const tenYears = 10 * 365 * 24 * 60 * 60 * 1000; const tenYearsFromNow = Date.now() + tenYears; @@ -280,7 +307,7 @@ promise_test(async testCase => { assert_equals(cookie_attributes.value, 'old-cookie-value'); cookie_attributes.value = 'new-cookie-value'; - await cookieStore.set(cookie_attributes); + await cookieStore.set(cookie_attributes.name, cookie_attributes.value); const cookie = await cookieStore.get('cookie-name'); assert_equals(cookie.name, 'cookie-name'); assert_equals(cookie.value, 'new-cookie-value'); diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html index 79250dfde06..f76e7988a3d 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-parsing.html @@ -101,9 +101,11 @@ test_cq_rule_valid('(width), name (height)'); test_cq_rule_valid('--foo'); test_cq_rule_valid('container'); + test_cq_rule_valid('container, container2'); test_cq_rule_invalid(''); test_cq_rule_invalid('(width),'); + test_cq_rule_invalid(',(width)'); test_cq_rule_invalid('(width),,(height)'); test_container_name_valid('foo'); diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html index dbe9ea023e8..b0c9746e0cc 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-serialization.html @@ -12,27 +12,15 @@ } #id { color: green } } - @container ( wiDTh ) { } - @container (width:100px) { } - @container (min-width: 100px) { } - @container ( MAX-WIDTH:100px ) { } - @container (width > 100px) { } - @container (width < 100px) { } - @container (widTH >= 100px) { } - @container (width <= 100px) { } - @container (10px < width < 100px) { } - @container (10px <= width <= 100px) { } - @container (100px>WIDTH>10px) { } - @container ( 100px >= width >= 10px ) { } - @container (calc(1em + 1px) >= width >= max(10em, 10px)) { } +
diff --git a/tests/wpt/tests/css/css-conditional/container-queries/support/cq-testcommon.js b/tests/wpt/tests/css/css-conditional/container-queries/support/cq-testcommon.js index 357657870e6..8d1e03f2073 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/support/cq-testcommon.js +++ b/tests/wpt/tests/css/css-conditional/container-queries/support/cq-testcommon.js @@ -99,3 +99,12 @@ function test_container_name_valid(container_name) { assert_equals(style.sheet.rules.length, 1); }, `Container name: ${container_name}`); } + +function test_cq_condition_serialization(query, expected) { + test(t => { + t.add_cleanup(cleanup_container_query_main); + let style = set_container_query_style(`@container ${query} {}`); + assert_equals(style.sheet.rules.length, 1); + assert_equals(style.sheet.rules[0].conditionText, expected); + }, `@container conditionText serialization: ${query}`); +} diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-auto-svg-text.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-auto-svg-text.html index 93b570999fc..60aac70f55c 100644 --- a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-auto-svg-text.html +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-auto-svg-text.html @@ -12,7 +12,7 @@ text { -

Test passes if there is a filled green square.

+

Test passes if there is a filled green square and no red.

x diff --git a/tests/wpt/tests/css/css-fonts/font-face-local-not-family-ref.html b/tests/wpt/tests/css/css-fonts/font-face-local-not-family-ref.html new file mode 100644 index 00000000000..e51cb80a440 --- /dev/null +++ b/tests/wpt/tests/css/css-fonts/font-face-local-not-family-ref.html @@ -0,0 +1,19 @@ + + +@font-face src:local() reference + + + +

These two lines should look the same

+ +

These two lines should look the same

diff --git a/tests/wpt/tests/css/css-fonts/font-face-local-not-family.html b/tests/wpt/tests/css/css-fonts/font-face-local-not-family.html new file mode 100644 index 00000000000..6b6d5c9a368 --- /dev/null +++ b/tests/wpt/tests/css/css-fonts/font-face-local-not-family.html @@ -0,0 +1,25 @@ + + +@font-face src:local() test + + + + + + +

These two lines should look the same

+ + +

These two lines should look the same

diff --git a/tests/wpt/tests/css/css-masking/clip-path/clip-path-shape-winding.html b/tests/wpt/tests/css/css-masking/clip-path/clip-path-shape-winding.html new file mode 100644 index 00000000000..8949fb70033 --- /dev/null +++ b/tests/wpt/tests/css/css-masking/clip-path/clip-path-shape-winding.html @@ -0,0 +1,25 @@ + + + + CSS Masking: Test clip-path property and shape function with nonzero fill + + + + + + +

The test passes if there is a green rect with an empty white rect inside it.

+
+ + diff --git a/tests/wpt/tests/css/css-masking/clip-path/reference/clip-path-path-winding-ref.html b/tests/wpt/tests/css/css-masking/clip-path/reference/clip-path-path-winding-ref.html new file mode 100644 index 00000000000..34c189f7b43 --- /dev/null +++ b/tests/wpt/tests/css/css-masking/clip-path/reference/clip-path-path-winding-ref.html @@ -0,0 +1,29 @@ + + + + + CSS Masking: Reference for clip-path's path function with evenodd + + + +

The test passes if there is a green rect with an empty white rect inside it.

+
+ + + + + + + + + diff --git a/tests/wpt/tests/css/css-masking/parsing/clip-path-shape-parsing.html b/tests/wpt/tests/css/css-masking/parsing/clip-path-shape-parsing.html index 5f610155058..5a4c7415bb4 100644 --- a/tests/wpt/tests/css/css-masking/parsing/clip-path-shape-parsing.html +++ b/tests/wpt/tests/css/css-masking/parsing/clip-path-shape-parsing.html @@ -34,6 +34,11 @@ test_valid_value("clip-path", "shape(from 10px 10px, arc to 50px 1pt of 10px 10p test_valid_value("clip-path", "shape(from 10% 1rem, arc to 50px 1pt of 20% cw large rotate 25deg)", "shape(from 10% 1rem, arc to 50px 1pt of 20% cw large rotate 25deg)"); test_valid_value("clip-path", "shape(evenodd from 0px 0px, close)"); +// arc with wrong order +test_invalid_value("clip-path", "shape(from 10% 1rem, arc of 20% 1pt to 50px cw large rotate 25deg)"); +test_invalid_value("clip-path", "shape(from 10% 1rem, arc cw to 50px of 20% 1pt large rotate 25deg)"); +test_invalid_value("clip-path", "shape(from 10% 1rem, arc rotate 25deg to 50px 1pt of 20% cw large )"); + // nonsense test_invalid_value("clip-path", "shape(evenodd from 0px 0px, close path)"); test_invalid_value("clip-path", "shape(nonzero, from 0px 0px, line to 10px 10px)"); diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-computed.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-computed.html index 89854a6dece..abe20d543c7 100644 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-computed.html +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-computed.html @@ -3,7 +3,7 @@ CSS Masonry: masonry-slack getComputedStyle() - + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-invalid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-invalid.html index feb90fddca0..75bae04011a 100644 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-invalid.html +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-invalid.html @@ -3,7 +3,7 @@ CSS Masonry: masonry-slack parsing - + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-valid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-valid.html index 9447b9b78ca..55044a98f6b 100644 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-valid.html +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-slack-valid.html @@ -3,7 +3,7 @@ CSS Masonry: masonry-slack parsing - + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-invalid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-invalid.html index df690851b14..7fed500c28e 100644 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-invalid.html +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-invalid.html @@ -1,7 +1,7 @@ CSS Masonry: Parsing masonry-template-tracks with invalid values - + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-valid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-valid.html index 7397760e7be..45550cbb112 100644 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-valid.html +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-valid.html @@ -1,7 +1,7 @@ CSS Masonry: Parsing masonry-template-tracks with valid values - + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-computed.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-computed.html index a8239bf295b..771626ca94d 100644 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-computed.html +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-computed.html @@ -1,7 +1,7 @@ CSS Masonry: masonry-track-* getComputedStyle() - + @@ -44,4 +44,4 @@ test_computed_value("masonry-track", "span first", "span first"); test_computed_value("masonry-track", "span 2 first / auto", "span 2 first"); test_computed_value("masonry-track", "span 2 first", "span 2 first"); - \ No newline at end of file + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-invalid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-invalid.html index 65887008db1..ba03c8426cb 100644 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-invalid.html +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-invalid.html @@ -1,7 +1,7 @@ CSS Masonry: masonry-track-* parsing - + @@ -53,4 +53,4 @@ test_invalid_value("masonry-track", "first span 1 / last"); test_invalid_value("masonry-track", "3 first / 2 span last"); test_invalid_value("masonry-track", "3 / 1 span 2"); - \ No newline at end of file + diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-valid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-valid.html index 5f98422f02e..2625c2629e5 100644 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-valid.html +++ b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-valid.html @@ -1,7 +1,7 @@ CSS Masonry: masonry-track-* parsing - + @@ -95,4 +95,4 @@ "masonry-track-start": "last", "masonry-track-end": "last" }); - \ No newline at end of file + diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-001.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-001.html new file mode 100644 index 00000000000..1818f3de830 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-001.html @@ -0,0 +1,22 @@ + + +CSS Overflow: the line-clamp ellipsis is placed after a break opportunity + + + + + +
+ This time, Mark, who had always been the center of attention in + + any social gathering, walked into the room uncharacteristically + + quietly, barely speaking as he settled into a chair. +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-002.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-002.html new file mode 100644 index 00000000000..5859fb2b94d --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-002.html @@ -0,0 +1,21 @@ + + +CSS Overflow: block-ellipsis styling + + + + + +
+ Line 1
+ Line 2
+ Line 3
+ Line 4 +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-003.tentative.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-003.tentative.html new file mode 100644 index 00000000000..5911022ffbc --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-003.tentative.html @@ -0,0 +1,27 @@ + + +CSS Overflow: block-ellipsis styling + + + + + +
+ Line 1 +
+ Line 2
+ Line 3 +
+ Line 4 +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-004.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-004.html new file mode 100644 index 00000000000..7eadab160a6 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-004.html @@ -0,0 +1,28 @@ + + +CSS Overflow: block-ellipsis styling + + + + + +
+ Line 1
+ Line 2
+ + Line 3
+ Line 4 +
+
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-005.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-005.html new file mode 100644 index 00000000000..84786d72452 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-005.html @@ -0,0 +1,26 @@ + + +CSS Overflow: block-ellipsis styling + + + + + +
+ Line 1
+ Line 2
+ Line 3
+ Line 4 +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-006.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-006.html new file mode 100644 index 00000000000..bb884274288 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-006.html @@ -0,0 +1,27 @@ + + +CSS Overflow: block-ellipsis styling + + + + + +
+ Line 1
+ Line 2
+ Line 3
+ Line 4 +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-007.tentative.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-007.tentative.html new file mode 100644 index 00000000000..86c701bb210 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-007.tentative.html @@ -0,0 +1,23 @@ + + +CSS Overflow: block-ellipsis and ::first-line + + + + + +
+ Line 1
+ Line 2 +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-008.tentative.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-008.tentative.html new file mode 100644 index 00000000000..e844d2dfb2b --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-008.tentative.html @@ -0,0 +1,25 @@ + + +CSS Overflow: block-ellipsis and ::first-line + + + + + +
+
+ Line 1
+ Line 2 +
+
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-009.tentative.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-009.tentative.html new file mode 100644 index 00000000000..7517f5d1456 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-009.tentative.html @@ -0,0 +1,27 @@ + + +CSS Overflow: block-ellipsis and ::first-line + + + + + +
+ Line 1
+ Line 2 +
+ Line 3
+ Line 4 +
+
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-001-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-001-ref.html new file mode 100644 index 00000000000..23436438822 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-001-ref.html @@ -0,0 +1,15 @@ + + +CSS Reference + +
+ This time, Mark, who had always been the center of attention in + + any social gathering, walked into the room… +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-002-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-002-ref.html new file mode 100644 index 00000000000..7ba1ae430ef --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-002-ref.html @@ -0,0 +1,15 @@ + + +CSS Reference + +
+ Line 1
+ Line 2
+ Line 3… +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-003-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-003-ref.html new file mode 100644 index 00000000000..b490d79a87a --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-003-ref.html @@ -0,0 +1,21 @@ + + +CSS Reference + +
+ Line 1 +
+ Line 2
+ Line 3… +
+
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-004-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-004-ref.html new file mode 100644 index 00000000000..acb8d0e72fc --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-004-ref.html @@ -0,0 +1,21 @@ + + +CSS Reference + +
+ Line 1
+ Line 2
+ Line 3… +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-005-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-005-ref.html new file mode 100644 index 00000000000..92dbdda6f57 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-005-ref.html @@ -0,0 +1,20 @@ + + +CSS Reference + +
+ Line 1
+ Line 2
+ Line 3… +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-007-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-007-ref.html new file mode 100644 index 00000000000..d9a39c4a796 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-007-ref.html @@ -0,0 +1,17 @@ + + +CSS Reference + +
+ Line 1… +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-009-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-009-ref.html new file mode 100644 index 00000000000..949ba2f6032 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-009-ref.html @@ -0,0 +1,21 @@ + + +CSS Reference + +
+ Line 1
+ Line 2 +
+ Line 3… +
+
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-051-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-051-ref.html new file mode 100644 index 00000000000..8951ff9afa8 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-051-ref.html @@ -0,0 +1,13 @@ + + + +
+ Line 1
+ Line 2… +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-052-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-052-ref.html new file mode 100644 index 00000000000..1f89d6c1db0 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-052-ref.html @@ -0,0 +1,13 @@ + + + +
+ Line 1
+ Line 2… +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-053-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-053-ref.html new file mode 100644 index 00000000000..42b42c29ee2 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/webkit-line-clamp-053-ref.html @@ -0,0 +1,14 @@ + + + +
+ XXX XXX XX XX… +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-051.html b/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-051.html new file mode 100644 index 00000000000..2667da939f0 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-051.html @@ -0,0 +1,23 @@ + + +CSS Overflow: right-aligned -webkit-line-clamp ellipsis + + + + +
+ Line 1
+ Line 2
+ Line 3 +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-052.html b/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-052.html new file mode 100644 index 00000000000..cd4c26d8c49 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-052.html @@ -0,0 +1,23 @@ + + +CSS Overflow: center-aligned -webkit-line-clamp ellipsis + + + + +
+ Line 1
+ Line 2
+ Line 3 +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-053.html b/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-053.html new file mode 100644 index 00000000000..404188ba318 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/webkit-line-clamp-053.html @@ -0,0 +1,23 @@ + + +CSS Overflow: justified -webkit-line-clamp ellipsis + + + + +
+ XXX XXX XX XX XXXXX +
diff --git a/tests/wpt/tests/css/css-overflow/scrollable-overflow-empty-newline-span.html b/tests/wpt/tests/css/css-overflow/scrollable-overflow-empty-newline-span.html new file mode 100644 index 00000000000..39f72d9fbff --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scrollable-overflow-empty-newline-span.html @@ -0,0 +1,18 @@ + + + + + +

Test passes if there is a filled green square.

+
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.high-ref.html b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.high-ref.html new file mode 100644 index 00000000000..4a1a62b0731 --- /dev/null +++ b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.high-ref.html @@ -0,0 +1,14 @@ + + + diff --git a/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.high.https.html b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.high.https.html new file mode 100644 index 00000000000..9e4494e02f4 --- /dev/null +++ b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.high.https.html @@ -0,0 +1,33 @@ + + + + + + + +
+ + + + + diff --git a/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.low-ref.html b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.low-ref.html new file mode 100644 index 00000000000..511da3f07e1 --- /dev/null +++ b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.low-ref.html @@ -0,0 +1,14 @@ + + + diff --git a/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.low.https.html b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.low.https.html new file mode 100644 index 00000000000..85338aeb998 --- /dev/null +++ b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.low.https.html @@ -0,0 +1,33 @@ + + + + + + + +
+ + + + + diff --git a/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.med-ref.html b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.med-ref.html new file mode 100644 index 00000000000..801c512cd93 --- /dev/null +++ b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.med-ref.html @@ -0,0 +1,14 @@ + + + diff --git a/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.med.https.html b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.med.https.html new file mode 100644 index 00000000000..4d5008a6836 --- /dev/null +++ b/tests/wpt/tests/css/css-paint-api/paint2d-imageSmoothingQuality.med.https.html @@ -0,0 +1,33 @@ + + + + + + + +
+ + + + + diff --git a/tests/wpt/tests/css/css-position/sticky/position-sticky-rtl-ref.html b/tests/wpt/tests/css/css-position/sticky/position-sticky-rtl-ref.html new file mode 100644 index 00000000000..b114a3a32f9 --- /dev/null +++ b/tests/wpt/tests/css/css-position/sticky/position-sticky-rtl-ref.html @@ -0,0 +1,32 @@ + + +
+
1
+
20
+
diff --git a/tests/wpt/tests/css/css-position/sticky/position-sticky-rtl.html b/tests/wpt/tests/css/css-position/sticky/position-sticky-rtl.html new file mode 100644 index 00000000000..df1a636396f --- /dev/null +++ b/tests/wpt/tests/css/css-position/sticky/position-sticky-rtl.html @@ -0,0 +1,35 @@ + + + + + +
+
1
+
20
+
diff --git a/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-shadow-dom.tentative.html b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-shadow-dom.tentative.html new file mode 100644 index 00000000000..56053bc719e --- /dev/null +++ b/tests/wpt/tests/css/css-scroll-snap-2/scroll-initial-target/scroll-initial-target-shadow-dom.tentative.html @@ -0,0 +1,136 @@ + + + + CSS Scroll Snap 2 Test: scroll-initial-target for scroller in shadow DOM + + + + + + +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + diff --git a/tests/wpt/tests/css/css-shapes/shape-functions/shape-function-computed.tentative.html b/tests/wpt/tests/css/css-shapes/shape-functions/shape-function-computed.tentative.html index cd2bd6d531b..a87bc2391a8 100644 --- a/tests/wpt/tests/css/css-shapes/shape-functions/shape-function-computed.tentative.html +++ b/tests/wpt/tests/css/css-shapes/shape-functions/shape-function-computed.tentative.html @@ -29,13 +29,13 @@ test_computed_value("clip-path", "shape(from center, curve to center bottom with "shape(from 50% 50%, curve to 50% 100% with 100% 0% / 100% 100%)"); test_computed_value("clip-path", "shape(from center, curve by 20px 20px with 10px 30px from end / 12px 32px from start)", - "shape(from 50% 50%, curve by 20px 20px with 10px 30px from end / 12px 32px from start)"); + "shape(from 50% 50%, curve by 20px 20px with 10px 30px from end / 12px 32px)"); test_computed_value("clip-path", "shape(from center right, curve by 20px 20px with 10px 30px from origin / 12px 32px from origin)", "shape(from 100% 50%, curve by 20px 20px with 10px 30px from origin / 12px 32px from origin)"); test_computed_value("clip-path", "shape(from 20px 40px, curve to top right with 10px 30px from origin / 12px 32px from origin)", - "shape(from 20px 40px, curve to 100% 0% with 10px 30px from origin / 12px 32px from origin)"); + "shape(from 20px 40px, curve to 100% 0% with 10px 30px / 12px 32px)"); test_computed_value("clip-path", "shape(from 20px 40px, smooth by 20px 20px)"); test_computed_value("clip-path", "shape(from 20px 40px, smooth by 20px 20px with 12px 32px)"); diff --git a/tests/wpt/tests/css/css-shapes/shape-functions/shape-function-valid.tentative.html b/tests/wpt/tests/css/css-shapes/shape-functions/shape-function-valid.tentative.html index 5eef0f0c3d4..2372290cb69 100644 --- a/tests/wpt/tests/css/css-shapes/shape-functions/shape-function-valid.tentative.html +++ b/tests/wpt/tests/css/css-shapes/shape-functions/shape-function-valid.tentative.html @@ -22,7 +22,7 @@ test_valid_value("clip-path", "shape(from 20px 40px, move to 20px 30px, vline to test_valid_value("clip-path", "shape(from 20px 40px, move to 20px 30px, vline by 100%)"); test_valid_value("clip-path", "shape(from 20px 40px, move to 20px 30px, hline to left, hline to center, hline to right)"); -test_valid_value("clip-path", "shape(from 20px 40px, move to 20px 30px, hline to x-start, hline to y-start)"); +test_valid_value("clip-path", "shape(from 20px 40px, move to 20px 30px, hline to x-start, vline to y-start)"); test_valid_value("clip-path", "shape(from 20px 40px, move to 20px 30px, vline to top, vline to center, vline to bottom)"); test_valid_value("clip-path", "shape(from 20px 40px, move to 20px 30px, vline to y-start, vline to y-end)"); @@ -46,15 +46,18 @@ test_valid_value("clip-path", "shape(from 20px 40px, curve to right center with , "shape(from 20px 40px, curve to right center with 10px 30px from start / 12px 32px from end)"); test_valid_value("clip-path", "shape(from 20px 40px, curve to right center with 10px 30px from end / 12px 32px from origin)", - "shape(from 20px 40px, curve to right center with 10px 30px from end / 12px 32px from origin)"); + "shape(from 20px 40px, curve to right center with 10px 30px from end / 12px 32px)"); -test_valid_value("clip-path", "shape(from 20px 40px, curve to right center with 10px 30px from origin / 12px 32px from start)"); +test_valid_value("clip-path", "shape(from 20px 40px, curve to right center with 10px 30px from origin / 12px 32px from start)", + "shape(from 20px 40px, curve to right center with 10px 30px / 12px 32px from start)"); test_valid_value("clip-path", "shape(from 20px 40px, curve by 20px 20px with 10px 30px)"); test_valid_value("clip-path", "shape(from 20px 40px, curve by 20px 20px with 10px 30px from origin)"); test_valid_value("clip-path", "shape(from 20px 40px, curve by 20px 20px with 10px 30px / 12px 32px)"); -test_valid_value("clip-path", "shape(from 20px 40px, curve by 20% 20em with 10px 30px from start / 12px 32px from end)"); -test_valid_value("clip-path", "shape(from 20px 40px, curve by 20% 20em with 10.3% 30px from origin / 12pt 5.4% from start)"); +test_valid_value("clip-path", "shape(from 20px 40px, curve by 20% 20em with 10px 30px from start / 12px 32px from end)", + "shape(from 20px 40px, curve by 20% 20em with 10px 30px / 12px 32px from end)"); +test_valid_value("clip-path", "shape(from 20px 40px, curve by 20% 20em with 10.3% 30px from origin / 12pt 5.4% from start)", + "shape(from 20px 40px, curve by 20% 20em with 10.3% 30px from origin / 12pt 5.4%)"); test_valid_value("clip-path", "shape(from top left, smooth to top right)", "shape(from left top, smooth to right top)"); @@ -65,7 +68,8 @@ test_valid_value("clip-path", "shape(from 20px 40px, smooth by 20px 20px)"); test_valid_value("clip-path", "shape(from right bottom, smooth by 20px 20px with 12px 32px)"); -test_valid_value("clip-path", "shape(from 20px 40px, smooth by 20pt 20px with 12px 32px from start)"); +test_valid_value("clip-path", "shape(from 20px 40px, smooth by 20pt 20px with 12px 32px from start)", + "shape(from 20px 40px, smooth by 20pt 20px with 12px 32px)"); test_valid_value("clip-path", "shape(from center 40px, smooth by 20% 20% with 12px 32px from end)"); test_valid_value("clip-path", "shape(from center, smooth by 20px 20px with 12px 32px from origin)", "shape(from center center, smooth by 20px 20px with 12px 32px from origin)"); diff --git a/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-before-after-001-ref.html b/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-before-after-001-ref.html new file mode 100644 index 00000000000..9bf7820c6ab --- /dev/null +++ b/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-before-after-001-ref.html @@ -0,0 +1,25 @@ + + + +

The two paragraphs should look identical, both having balanced lines:

+ +
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +
+
diff --git a/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-before-after-002-ref.html b/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-before-after-002-ref.html new file mode 100644 index 00000000000..6fbfe89c7d3 --- /dev/null +++ b/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-before-after-002-ref.html @@ -0,0 +1,38 @@ + + + +

The first two paragraphs should be separately balanced; the third should not use balancing:

+ +
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +
+
diff --git a/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-001.html b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-001.html new file mode 100644 index 00000000000..9f5741e2349 --- /dev/null +++ b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-001.html @@ -0,0 +1,34 @@ + + + + + +

The two paragraphs should look identical, both having balanced lines:

+ +
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +
+
diff --git a/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-002.html b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-002.html new file mode 100644 index 00000000000..e9d08953fac --- /dev/null +++ b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-before-after-002.html @@ -0,0 +1,37 @@ + + + + + +

The first two paragraphs should be separately balanced; the third should not use balancing:

+ +
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. +
+
diff --git a/tests/wpt/tests/css/css-transitions/after-change-style-inherited.html b/tests/wpt/tests/css/css-transitions/after-change-style-inherited.html new file mode 100644 index 00000000000..75570a90a19 --- /dev/null +++ b/tests/wpt/tests/css/css-transitions/after-change-style-inherited.html @@ -0,0 +1,110 @@ + +CSS Transitions Test: trigger transitions on inherited after-change styles + + + + +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+ + + +
+
+
+
+
+
+
+
+
+
+ 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 47378b4cf43..85fa172f39a 100644 --- a/tests/wpt/tests/css/css-values/attr-all-types.html +++ b/tests/wpt/tests/css/css-values/attr-all-types.html @@ -6,6 +6,11 @@ -
+
\ No newline at end of file + diff --git a/tests/wpt/tests/css/css-values/attr-cycle.tentative.html b/tests/wpt/tests/css/css-values/attr-cycle.tentative.html new file mode 100644 index 00000000000..1db82c4cad2 --- /dev/null +++ b/tests/wpt/tests/css/css-values/attr-cycle.tentative.html @@ -0,0 +1,121 @@ + +CSS Values and Units Test: attr + + + + + +
+
+ + diff --git a/tests/wpt/tests/css/css-values/random-computed.tentative.html b/tests/wpt/tests/css/css-values/random-computed.tentative.html new file mode 100644 index 00000000000..c6a408040ce --- /dev/null +++ b/tests/wpt/tests/css/css-values/random-computed.tentative.html @@ -0,0 +1,303 @@ + + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-values/random-invalid.tentative.html b/tests/wpt/tests/css/css-values/random-invalid.tentative.html new file mode 100644 index 00000000000..f21d36077dc --- /dev/null +++ b/tests/wpt/tests/css/css-values/random-invalid.tentative.html @@ -0,0 +1,29 @@ + + + + + + + diff --git a/tests/wpt/tests/css/css-values/random-serialize.tentative.html b/tests/wpt/tests/css/css-values/random-serialize.tentative.html new file mode 100644 index 00000000000..43dc3a3f677 --- /dev/null +++ b/tests/wpt/tests/css/css-values/random-serialize.tentative.html @@ -0,0 +1,44 @@ + + + + + + +
+ diff --git a/tests/wpt/tests/css/css-values/rlh-on-root-lengths.html b/tests/wpt/tests/css/css-values/rlh-on-root-lengths.html new file mode 100644 index 00000000000..4212749005d --- /dev/null +++ b/tests/wpt/tests/css/css-values/rlh-on-root-lengths.html @@ -0,0 +1,16 @@ + +CSS Values and Units Test: Using rlh units in lengths on the root element + + + + + diff --git a/tests/wpt/tests/css/css-view-transitions/auto-name-get-animations.html b/tests/wpt/tests/css/css-view-transitions/auto-name-get-animations.html new file mode 100644 index 00000000000..0442255542c --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/auto-name-get-animations.html @@ -0,0 +1,68 @@ + + +View transitions: generated names should not be visible from script + + + + + +
+
+
+
+ + + + \ No newline at end of file diff --git a/tests/wpt/tests/css/css-view-transitions/navigation/pageswap-in-hidden-doc-should-skip-transition.html b/tests/wpt/tests/css/css-view-transitions/navigation/pageswap-in-hidden-doc-should-skip-transition.html index d8a903aab02..aceced0dded 100644 --- a/tests/wpt/tests/css/css-view-transitions/navigation/pageswap-in-hidden-doc-should-skip-transition.html +++ b/tests/wpt/tests/css/css-view-transitions/navigation/pageswap-in-hidden-doc-should-skip-transition.html @@ -6,42 +6,17 @@ diff --git a/tests/wpt/tests/css/css-view-transitions/navigation/resources/navigate-after-hide.html b/tests/wpt/tests/css/css-view-transitions/navigation/resources/navigate-after-hide.html new file mode 100644 index 00000000000..0b6a3d669e8 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/navigation/resources/navigate-after-hide.html @@ -0,0 +1,18 @@ + + + + diff --git a/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-001-ref.html b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-001-ref.html new file mode 100644 index 00000000000..21d6ebff7b9 --- /dev/null +++ b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-001-ref.html @@ -0,0 +1,17 @@ + + +reference for details:open pseudoclass + + + +

The details element should be open, green, and indented:

+ +
+ Summary +

Detailed content

+
diff --git a/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-001.html b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-001.html new file mode 100644 index 00000000000..1b110e3ccc9 --- /dev/null +++ b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-001.html @@ -0,0 +1,22 @@ + + +test for details:open pseudoclass + + + + + +

The details element should be open, green, and indented:

+ +
+ Summary +

Detailed content

+
diff --git a/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-002.html b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-002.html new file mode 100644 index 00000000000..c9822453bb6 --- /dev/null +++ b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-002.html @@ -0,0 +1,32 @@ + + + +test for details:open pseudoclass + + + + + + + + + +

The details element should be open, green, and indented:

+ +
+ Summary +

Detailed content

+
diff --git a/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-003-ref.html b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-003-ref.html new file mode 100644 index 00000000000..44369749f43 --- /dev/null +++ b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-003-ref.html @@ -0,0 +1,15 @@ + + +reference for details:open pseudoclass + + + +

The details element should be closed and blue:

+ +
+ Summary +
diff --git a/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-003.html b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-003.html new file mode 100644 index 00000000000..0eb1a028d71 --- /dev/null +++ b/tests/wpt/tests/css/selectors/selectors-4/details-open-pseudo-003.html @@ -0,0 +1,32 @@ + + + +test for details:open pseudoclass + + + + + + + + + +

The details element should be closed and blue:

+ +
+ Summary +

Detailed content

+
diff --git a/tests/wpt/tests/dom/nodes/moveBefore/tentative/Node-moveBefore.html b/tests/wpt/tests/dom/nodes/moveBefore/tentative/Node-moveBefore.html index 64a76602d26..a1147c4c1d1 100644 --- a/tests/wpt/tests/dom/nodes/moveBefore/tentative/Node-moveBefore.html +++ b/tests/wpt/tests/dom/nodes/moveBefore/tentative/Node-moveBefore.html @@ -151,16 +151,27 @@ test(t => { document.body.moveBefore(doc, null); }); }, "moveBefore() with a non-{Element, CharacterData} throws a HierarchyRequestError"); -test(t => { +promise_test(async t => { const text = new Text("child text"); document.body.prepend(text); const childElement = document.createElement('p'); document.body.prepend(childElement); + const comment = new Comment("comment"); + document.body.prepend(comment); + t.add_cleanup(() => { text.remove(); childElement.remove(); + comment.remove(); + }); + + // Wait until style is computed once, then continue after. This is necessary + // to reproduce a Chromium crash regression with moving Comment nodes in the + // DOM. + await new Promise(r => { + requestAnimationFrame(() => requestAnimationFrame(() => r())); }); document.body.moveBefore(text, null); @@ -171,6 +182,9 @@ test(t => { document.body.moveBefore(text, null); assert_equals(document.body.lastChild, text); + + document.body.moveBefore(comment, null); + assert_equals(document.body.lastChild, comment); }, "moveBefore with an Element or CharacterData succeeds"); test(t => { const p = document.createElement('p'); @@ -315,4 +329,21 @@ promise_test(async t => { await Promise.resolve(); assert_array_equals(reactions, []); }, "No custom element callbacks are run during disconnected moveBefore()"); + +// This is a regression test for a Chromium crash: https://crbug.com/388934346. +test(t => { + // This test caused a crash in Chromium because after the detection of invalid + // /node hierarchy, and throwing the JS error, we did not return from native + // code, and continued to operate on the node tree on bad assumptions. + const outer = document.createElement('div'); + const div = outer.appendChild(document.createElement('div')); + assert_throws_dom("HIERARCHY_REQUEST_ERR", () => div.moveBefore(outer, null)); +}, "Invalid node hierarchy with null old parent does not crash"); + +test(t => { + const outerDiv = document.createElement('div'); + const innerDiv = outerDiv.appendChild(document.createElement('div')); + const iframe = innerDiv.appendChild(document.createElement('iframe')); + outerDiv.moveBefore(iframe, null); +}, "Move disconnected iframe does not crash"); diff --git a/tests/wpt/tests/editing/crashtests/remove-all-children-of-documentElement-in-designMode-when-no-body.html b/tests/wpt/tests/editing/crashtests/remove-all-children-of-documentElement-in-designMode-when-no-body.html new file mode 100644 index 00000000000..28984449ea3 --- /dev/null +++ b/tests/wpt/tests/editing/crashtests/remove-all-children-of-documentElement-in-designMode-when-no-body.html @@ -0,0 +1,16 @@ + + + + + + + diff --git a/tests/wpt/tests/editing/other/copy-paste-before-non-editable.html b/tests/wpt/tests/editing/other/copy-paste-before-non-editable.html new file mode 100644 index 00000000000..14bd40bc182 --- /dev/null +++ b/tests/wpt/tests/editing/other/copy-paste-before-non-editable.html @@ -0,0 +1,54 @@ + + + + + Copy pasting in editable area should not lose data in non-editable area + + + + + + + + + +
+

Select and paste something (like plain text) into the middle of this text node. + This is a contentEditable=false + after the paste, the contentEditable=false and everything after it, should not get lost. +

+
+ + + diff --git a/tests/wpt/tests/editing/other/fire-selection-change-on-deleting-empty-element.html b/tests/wpt/tests/editing/other/fire-selection-change-on-deleting-empty-element.html index 74770053066..b7fb6d8f147 100644 --- a/tests/wpt/tests/editing/other/fire-selection-change-on-deleting-empty-element.html +++ b/tests/wpt/tests/editing/other/fire-selection-change-on-deleting-empty-element.html @@ -5,21 +5,28 @@ -
-


-
+
\ No newline at end of file diff --git a/tests/wpt/tests/editing/other/paste-text-after-collapsible-white-space-whose-container-remove-non-first-children.html b/tests/wpt/tests/editing/other/paste-text-after-collapsible-white-space-whose-container-remove-non-first-children.html new file mode 100644 index 00000000000..296c40c54b5 --- /dev/null +++ b/tests/wpt/tests/editing/other/paste-text-after-collapsible-white-space-whose-container-remove-non-first-children.html @@ -0,0 +1,59 @@ + + + + +Pasting text to editing host which tries to remove all inserted nodes shouldn't cause hangup + + + + + + + + + +

+
+ + diff --git a/tests/wpt/tests/fenced-frame/automatic-beacon-component-ad.https.html b/tests/wpt/tests/fenced-frame/automatic-beacon-component-ad.https.html index 55711c4f08b..175736fd838 100644 --- a/tests/wpt/tests/fenced-frame/automatic-beacon-component-ad.https.html +++ b/tests/wpt/tests/fenced-frame/automatic-beacon-component-ad.https.html @@ -24,34 +24,40 @@ promise_test(async(t) => { headers: [["Allow-Fenced-Frame-Automatic-Beacons", "true"]] }); const new_url = new URL("resources/close.html", location.href); - const beacon_event = { - eventType: "reserved.top_navigation_start", - eventData: "this is the beacon data", - destination: ["buyer"], - crossOriginExposed: true, - } - await fencedframe.execute(async (new_url, beacon_event) => { - window.fence.setReportEventDataForAutomaticBeacons(beacon_event); + await fencedframe.execute(async (new_url) => { + window.fence.setReportEventDataForAutomaticBeacons({ + eventType: "reserved.top_navigation_start", + eventData: "this is the beacon data from the root fenced frame", + destination: ["buyer"], + crossOriginExposed: true, + }); // Add an ad component that will perform the top-level navigation. // The headers are the same as the ones given to `fencedframe`. const ad_component = await attachComponentFencedFrameContext(); await ad_component.execute(async (new_url) => { + window.fence.setReportEventDataForAutomaticBeacons({ + eventType: "reserved.top_navigation_start", + eventData: "this is the beacon data from the ad component", + destination: ["buyer"], + crossOriginExposed: true, + }); addEventListener("click", (event) => { window.open(new_url); }); }, [new_url]); - }, [new_url, beacon_event]); + }, [new_url]); await actions.pointerMove(0, 0, {origin: fencedframe.element}) .pointerDown() .pointerUp() .send(); - // The component frame should not use the data set in its parent. + // The component frame should not use its parent's data. + // The component frame's data should not have been set. // The referrer header should be set to the root ad frame's origin. - await verifyBeaconData(beacon_event.eventType, ""); + await verifyBeaconData("reserved.top_navigation_start", ""); }, 'Automatic beacon in an ad component should send without data with a ' + 'header opt-in.'); diff --git a/tests/wpt/tests/fetch/api/basic/gc.any.js b/tests/wpt/tests/fetch/api/basic/gc.any.js new file mode 100644 index 00000000000..70362ff39ce --- /dev/null +++ b/tests/wpt/tests/fetch/api/basic/gc.any.js @@ -0,0 +1,19 @@ +// META: global=window,worker +// META: script=/common/gc.js + +promise_test(async () => { + let i = 0; + const repeat = 5; + const buffer = await new Response(new ReadableStream({ + pull(c) { + if (i >= repeat) { + c.close(); + return; + } + ++i; + c.enqueue(new Uint8Array([0])) + garbageCollect(); + } + })).arrayBuffer(); + assert_equals(buffer.byteLength, repeat, `The buffer should be ${repeat}-byte long`); +}, "GC/CC should not abruptly close the stream while being consumed by Response"); diff --git a/tests/wpt/tests/fledge/tentative/additional-bids.https.window.js b/tests/wpt/tests/fledge/tentative/additional-bids.https.window.js index 9cddbaf065d..edacb05512e 100644 --- a/tests/wpt/tests/fledge/tentative/additional-bids.https.window.js +++ b/tests/wpt/tests/fledge/tentative/additional-bids.https.window.js @@ -19,7 +19,7 @@ // - test that additional bids are not fetched using a Fetch request for which // `adAuctionHeaders: true` is not specified. // - test that an additional bid with an incorrect seller and / or top-level -// seller is not used included in an auction. +// seller is not included in an auction. // - lots of tests for different types of malformed additional bids, e.g. // missing fields, malformed signature, invalid currency code, // missing joining origin for multiple negative interest groups, etc. @@ -60,9 +60,6 @@ // lose. // - test that an additional bid can compete against an interest group bid and // win. -// - test that a malformed additional bid causes that one additional bid to be -// ignored, but the rest of the auction (and other additional bids, even -// from the same fetch) continue on. // - test (in join-leave-ad-interest-group.https.window.js) that an IG that // provides `additionalBidKey` fails if the key fails to decode, or if // that IG also provides `ads`, or if it provides `updateURL`. @@ -93,7 +90,9 @@ subsetTest(promise_test, async test => { const buyer = OTHER_ORIGIN1; const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99); + uuid, seller, buyer, 'horses', 1.99); + additionalBid.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); await runAdditionalBidTest( test, uuid, [buyer], auctionNonce, @@ -110,11 +109,15 @@ subsetTest(promise_test, async test => { const buyer1 = OTHER_ORIGIN1; const additionalBid1 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer1, 'horses', 1.99); + uuid, seller, buyer1, 'horses', 1.99); + additionalBid1.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid1, auctionNonce); const buyer2 = OTHER_ORIGIN2; const additionalBid2 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer2, 'planes', 2.99); + uuid, seller, buyer2, 'planes', 2.99); + additionalBid2.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid2, auctionNonce); await runAdditionalBidTest( test, uuid, [buyer1, buyer2], auctionNonce, @@ -133,11 +136,15 @@ subsetTest(promise_test, async test => { const buyer1 = OTHER_ORIGIN1; const additionalBid1 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer1, 'horses', 1.99); + uuid, seller, buyer1, 'horses', 1.99); + additionalBid1.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid1, auctionNonce); const buyer2 = OTHER_ORIGIN2; const additionalBid2 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer2, 'planes', 2.99); + uuid, seller, buyer2, 'planes', 2.99); + additionalBid2.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid2, auctionNonce); await runAdditionalBidTest( test, uuid, [buyer1, buyer2], auctionNonce, @@ -150,27 +157,26 @@ subsetTest(promise_test, async test => { }, 'two valid additional bids from two distinct Fetch requests'); // Single-seller auction with a single buyer who places a single additional -// bid with the wrong auctionNonce in the bid, causing the bid to fail. +// bid with the wrong `auctionNonce` in the bid, causing the bid to fail. subsetTest(promise_test, async test => { const uuid = generateUuid(test); - const auctionNonce = await navigator.createAuctionNonce(); + const auctionNonceInHeader = await navigator.createAuctionNonce(); const auctionNonceInBid = crypto.randomUUID(); const seller = SINGLE_SELLER_AUCTION_SELLER; const buyer = OTHER_ORIGIN1; const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99); - additionalBidHelper.setBidAuctionNonceOverride( - additionalBid, auctionNonceInBid); + uuid, seller, buyer, 'horses', 1.99); + additionalBid.additionalBid = auctionNonceInBid; + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonceInHeader); await runAdditionalBidTestNoWinner( - test, uuid, [buyer], auctionNonce, - additionalBidHelper.fetchAdditionalBids(seller, [additionalBid]), - /*highestScoringOtherBid=*/0); + test, uuid, [buyer], auctionNonceInHeader, + additionalBidHelper.fetchAdditionalBids(seller, [additionalBid])); }, 'single valid additional bid with wrong auctionNonce in bid'); // Single-seller auction with a single buyer who places a single additional -// bid with no auctionNonce in the bid, causing the bid to fail. +// bid with no `auctionNonce` in the bid, causing the bid to fail. subsetTest(promise_test, async test => { const uuid = generateUuid(test); const auctionNonce = await navigator.createAuctionNonce(); @@ -178,167 +184,181 @@ subsetTest(promise_test, async test => { const buyer = OTHER_ORIGIN1; const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99); - additionalBidHelper.removeAuctionNonceFromBid(additionalBid); + uuid, seller, buyer, 'horses', 1.99); + // Notably missing: `additionalBid.auctionNonce` + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); await runAdditionalBidTestNoWinner( test, uuid, [buyer], auctionNonce, - additionalBidHelper.fetchAdditionalBids(seller, [additionalBid]), - /*highestScoringOtherBid=*/0); + additionalBidHelper.fetchAdditionalBids(seller, [additionalBid])); }, 'single valid additional bid with no auctionNonce in bid'); // Single-seller auction with a single buyer who places a single additional -// bid with auctionNonce and bidNonce in the bid (but no seller nonce), causing -// the bid to fail. +// bid that elides `auctionNonce` in favor of a `bidNonce`, which is correctly +// computed from the combination of `auctionNonce` and `sellerNonce`. However, +// this test fails to include the `sellerNonce` in the header, +// causing the bid to fail. `bidNonce` in an additional bid is only valid with +// a `sellerNonce` on the response header. subsetTest(promise_test, async test => { const uuid = generateUuid(test); const auctionNonce = await navigator.createAuctionNonce(); const sellerNonce = crypto.randomUUID(); - const bidNonce = - await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce); const seller = SINGLE_SELLER_AUCTION_SELLER; - const additionalBidOverrides = { - bidNonce: bidNonce, - }; const buyer = OTHER_ORIGIN1; const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99, - /*additionalBidOverrides=*/ additionalBidOverrides); + uuid, seller, buyer, 'horses', 1.99); + additionalBid.bidNonce = + await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce); + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); + // Notably missing: `additionalBidHelper.setSellerNonceInHeader` await runAdditionalBidTestNoWinner( test, uuid, [buyer], auctionNonce, - additionalBidHelper.fetchAdditionalBids(seller, [additionalBid]), - /*highestScoringOtherBid=*/0); -}, 'single valid additional bid with auctionNonce and bidNonce in bid (but no seller nonce)'); + additionalBidHelper.fetchAdditionalBids(seller, [additionalBid])); +}, 'single valid additional bid with bidNonce in bid but no sellerNonce in header'); // Single-seller auction with a single buyer who places a single additional -// bid that uses seller nonce / bidNonce. As the only bid, this wins. +// bid that uses `sellerNonce` / `bidNonce`. As the only bid, this wins. subsetTest(promise_test, async test => { const uuid = generateUuid(test); const auctionNonce = await navigator.createAuctionNonce(); const sellerNonce = crypto.randomUUID(); - const bidNonce = - await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce); const seller = SINGLE_SELLER_AUCTION_SELLER; - const additionalBidOverrides = { - bidNonce: bidNonce, - }; const buyer = OTHER_ORIGIN1; const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99, - /*additionalBidOverrides=*/ additionalBidOverrides); - additionalBidHelper.setSellerNonce(additionalBid, sellerNonce); - additionalBidHelper.removeAuctionNonceFromBid(additionalBid); + uuid, seller, buyer, 'horses', 1.99); + additionalBid.bidNonce = + await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce); + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); + additionalBidHelper.setSellerNonceInHeader(additionalBid, sellerNonce); await runAdditionalBidTest( test, uuid, [buyer], auctionNonce, additionalBidHelper.fetchAdditionalBids(seller, [additionalBid]), /*highestScoringOtherBid=*/0, /*winningAdditionalBidId=*/'horses'); -}, 'single valid additional bid with seller nonce'); +}, 'single valid additional bid with bidNonce and sellerNonce'); // Single-seller auction with a single buyer who places a single additional bid -// that uses seller nonce, but no bidNonce. Since the bidNonce is missing, there -// is no winner. -subsetTest(promise_test, async test => { - const uuid = generateUuid(test); - const auctionNonce = await navigator.createAuctionNonce(); - const sellerNonce = crypto.randomUUID(); - const seller = SINGLE_SELLER_AUCTION_SELLER; - - const buyer = OTHER_ORIGIN1; - const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99); - additionalBidHelper.setSellerNonce(additionalBid, sellerNonce); - - await runAdditionalBidTestNoWinner( - test, uuid, [buyer], auctionNonce, - additionalBidHelper.fetchAdditionalBids(seller, [additionalBid]), - /*highestScoringOtherBid=*/0); -}, 'single additional bid with seller nonce with no bidNonce'); - -// Single-seller auction with a single buyer who places a single additional bid -// that uses seller nonce, but no bidNonce or auctionNonce. Since the bidNonce -// is missing, there is no winner. -subsetTest(promise_test, async test => { - const uuid = generateUuid(test); - const auctionNonce = await navigator.createAuctionNonce(); - const sellerNonce = crypto.randomUUID(); - const seller = SINGLE_SELLER_AUCTION_SELLER; - - const buyer = OTHER_ORIGIN1; - const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99); - additionalBidHelper.setSellerNonce(additionalBid, sellerNonce); - additionalBidHelper.removeAuctionNonceFromBid(additionalBid); - - await runAdditionalBidTestNoWinner( - test, uuid, [buyer], auctionNonce, - additionalBidHelper.fetchAdditionalBids(seller, [additionalBid]), - /*highestScoringOtherBid=*/0); -}, 'single additional bid with seller nonce with no bidNonce or auctionNonce'); - -// Single-seller auction with a single buyer who places a single additional -// bid that uses seller nonce / bidNonce. Since the bidNonce is invalid there is +// that uses `sellerNonce`, but with an `auctionNonce` on the bid instead of a +// `bidNonce`. Since `sellerNonce` is only compatible with `bidNonce`, there is // no winner. subsetTest(promise_test, async test => { const uuid = generateUuid(test); const auctionNonce = await navigator.createAuctionNonce(); const sellerNonce = crypto.randomUUID(); - // Intentionally use the wrong bidNonce, base64(sha256("incorrect")). - const bidNonce = 'ID01Nr1irTOscLfqPU9eELbVLr0Mt1goQaBTrrtxhqM='; const seller = SINGLE_SELLER_AUCTION_SELLER; - const additionalBidOverrides = { - bidNonce: bidNonce, - }; const buyer = OTHER_ORIGIN1; const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99, - /*additionalBidOverrides=*/ additionalBidOverrides); - additionalBidHelper.setSellerNonce(additionalBid, sellerNonce); - additionalBidHelper.removeAuctionNonceFromBid(additionalBid); + uuid, seller, buyer, 'horses', 1.99); + additionalBid.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); + additionalBidHelper.setSellerNonceInHeader(additionalBid, sellerNonce); await runAdditionalBidTestNoWinner( test, uuid, [buyer], auctionNonce, - additionalBidHelper.fetchAdditionalBids(seller, [additionalBid]), - /*highestScoringOtherBid=*/0); -}, 'single invalid additional bid with seller nonce'); + additionalBidHelper.fetchAdditionalBids(seller, [additionalBid])); +}, 'single additional bid with sellerNonce in the header but auctionNonce in the bid'); -// Single-seller auction with a two buyers competing with additional bids, using -// seller nonce. +// Single-seller auction with a single buyer who places a single additional bid +// that uses `sellerNonce`, but no `bidNonce` or `auctionNonce`. Since the +// `bidNonce` is missing, there is no winner. Related to 'single valid +// additional bid with no auctionNonce in bid', except with `sellerNonce`. +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + const auctionNonce = await navigator.createAuctionNonce(); + const sellerNonce = crypto.randomUUID(); + const seller = SINGLE_SELLER_AUCTION_SELLER; + + const buyer = OTHER_ORIGIN1; + const additionalBid = additionalBidHelper.createAdditionalBid( + uuid, seller, buyer, 'horses', 1.99); + // Notably missing: `additionalBid.bidNonce`. + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); + additionalBidHelper.setSellerNonceInHeader(additionalBid, sellerNonce); + + await runAdditionalBidTestNoWinner( + test, uuid, [buyer], auctionNonce, + additionalBidHelper.fetchAdditionalBids(seller, [additionalBid])); +}, 'single additional bid with sellerNonce in the header but no bidNonce or ' + + 'auctionNonce in the bid'); + +// Single-seller auction with a single buyer who places a single additional +// bid that uses `sellerNonce` / `bidNonce`, but also `auctionNonce` in the bid. +// As exactly one of `bidNonce` / `auctionNonce` is allowed in the bid, this +// fails. +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + const auctionNonce = await navigator.createAuctionNonce(); + const sellerNonce = crypto.randomUUID(); + const seller = SINGLE_SELLER_AUCTION_SELLER; + + const buyer = OTHER_ORIGIN1; + const additionalBid = additionalBidHelper.createAdditionalBid( + uuid, seller, buyer, 'horses', 1.99); + additionalBid.auctionNonce = auctionNonce; + additionalBid.bidNonce = + await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce); + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); + additionalBidHelper.setSellerNonceInHeader(additionalBid, sellerNonce); + + await runAdditionalBidTestNoWinner( + test, uuid, [buyer], auctionNonce, + additionalBidHelper.fetchAdditionalBids(seller, [additionalBid])); +}, 'single additional bid with sellerNonce in the header but with both ' + + ' bidNonce and auctionNonce in the bid'); + +// Single-seller auction with a single buyer who places a single additional +// bid that uses `sellerNonce` / `bidNonce`. Since the `bidNonce` is invalid +// there is no winner. +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + const auctionNonce = await navigator.createAuctionNonce(); + const sellerNonce = crypto.randomUUID(); + const seller = SINGLE_SELLER_AUCTION_SELLER; + + const buyer = OTHER_ORIGIN1; + const additionalBid = additionalBidHelper.createAdditionalBid( + uuid, seller, buyer, 'horses', 1.99); + // Computes a `bidNonce` using a randomly generated `sellerNonce`, not the + // one used in the header. + additionalBid.bidNonce = await additionalBidHelper.computeBidNonce( + auctionNonce, crypto.randomUUID()); + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); + additionalBidHelper.setSellerNonceInHeader(additionalBid, sellerNonce); + + await runAdditionalBidTestNoWinner( + test, uuid, [buyer], auctionNonce, + additionalBidHelper.fetchAdditionalBids(seller, [additionalBid])); +}, 'single additional bid with invalid bidNonce'); + +// Single-seller auction with a two buyers competing with additional bids, each +// using a distinct `sellerNonce` / `bidNonce`. subsetTest(promise_test, async test => { const uuid = generateUuid(test); const auctionNonce = await navigator.createAuctionNonce(); const sellerNonce1 = crypto.randomUUID(); const sellerNonce2 = crypto.randomUUID(); - const bidNonce1 = - await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce1); - const bidNonce2 = - await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce2); const seller = SINGLE_SELLER_AUCTION_SELLER; - const additionalBidOverrides1 = { - bidNonce: bidNonce1, - }; - const additionalBidOverrides2 = { - bidNonce: bidNonce2, - }; const buyer1 = OTHER_ORIGIN1; const additionalBid1 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer1, 'horses', 1.99, - /*additionalBidOverrides=*/ additionalBidOverrides1); - additionalBidHelper.setSellerNonce(additionalBid1, sellerNonce1); - additionalBidHelper.removeAuctionNonceFromBid(additionalBid1); + uuid, seller, buyer1, 'horses', 1.99); + additionalBid1.bidNonce = + await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce1); + additionalBidHelper.setAuctionNonceInHeader(additionalBid1, auctionNonce); + additionalBidHelper.setSellerNonceInHeader(additionalBid1, sellerNonce1); const buyer2 = OTHER_ORIGIN2; const additionalBid2 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer2, 'planes', 2.99, - /*additionalBidOverrides=*/ additionalBidOverrides2); - additionalBidHelper.setSellerNonce(additionalBid2, sellerNonce2); - additionalBidHelper.removeAuctionNonceFromBid(additionalBid2); + uuid, seller, buyer2, 'planes', 2.99); + additionalBid2.bidNonce = + await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce2); + additionalBidHelper.setAuctionNonceInHeader(additionalBid2, auctionNonce); + additionalBidHelper.setSellerNonceInHeader(additionalBid2, sellerNonce2); await runAdditionalBidTest( test, uuid, [buyer1, buyer2], auctionNonce, @@ -346,60 +366,7 @@ subsetTest(promise_test, async test => { seller, [additionalBid1, additionalBid2]), /*highestScoringOtherBid=*/1.99, /*winningAdditionalBidId=*/'planes'); -}, 'two valid additional bids using seller nonce'); - -// Single-seller auction with a single buyer who places a single additional -// bid that uses seller nonce / bidNonce, but also auctionNonce in the bid. As -// exactly one of bidNonce / auctionNonce is allowed in the bid, this fails. -subsetTest(promise_test, async test => { - const uuid = generateUuid(test); - const auctionNonce = await navigator.createAuctionNonce(); - const sellerNonce = crypto.randomUUID(); - const bidNonce = - await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce); - const seller = SINGLE_SELLER_AUCTION_SELLER; - const additionalBidOverrides = { - bidNonce: bidNonce, - }; - - const buyer = OTHER_ORIGIN1; - const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99, - /*additionalBidOverrides=*/ additionalBidOverrides); - additionalBidHelper.setSellerNonce(additionalBid, sellerNonce); - // Don't remove the auctionNonce from the bid. - - await runAdditionalBidTestNoWinner( - test, uuid, [buyer], auctionNonce, - additionalBidHelper.fetchAdditionalBids(seller, [additionalBid]), - /*highestScoringOtherBid=*/0); -}, 'single additional bid with seller nonce, but also with auctionNonce in bid'); - -// Single-seller auction with a single buyer who places a single additional -// bid with auctionNonce and bidNonce in the bid (with seller nonce), causing -// the bid to fail. -subsetTest(promise_test, async test => { - const uuid = generateUuid(test); - const auctionNonce = await navigator.createAuctionNonce(); - const sellerNonce = crypto.randomUUID(); - const bidNonce = - await additionalBidHelper.computeBidNonce(auctionNonce, sellerNonce); - const seller = SINGLE_SELLER_AUCTION_SELLER; - const additionalBidOverrides = { - bidNonce: bidNonce, - }; - - const buyer = OTHER_ORIGIN1; - const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99, - /*additionalBidOverrides=*/ additionalBidOverrides); - additionalBidHelper.setSellerNonce(additionalBid, sellerNonce); - - await runAdditionalBidTestNoWinner( - test, uuid, [buyer], auctionNonce, - additionalBidHelper.fetchAdditionalBids(seller, [additionalBid]), - /*highestScoringOtherBid=*/0); -}, 'single valid additional bid with auctionNonce and bidNonce in bid (with seller nonce)'); +}, 'two valid additional bids using distinct bidNonces and sellerNonces'); // Single-seller auction with a single additional bid. Because this additional // bid is filtered by negative targeting, this auction has no winner. @@ -412,7 +379,9 @@ subsetTest(promise_test, async test => { const buyer = OTHER_ORIGIN1; const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'planes', 2.99); + uuid, seller, buyer, 'planes', 2.99); + additionalBid.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); additionalBidHelper.addNegativeInterestGroup( additionalBid, negativeInterestGroupName); additionalBidHelper.signWithSecretKeys( @@ -442,11 +411,15 @@ subsetTest(promise_test, async test => { const buyer1 = OTHER_ORIGIN1; const additionalBid1 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer1, 'horses', 1.99); + uuid, seller, buyer1, 'horses', 1.99); + additionalBid1.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid1, auctionNonce); const buyer2 = OTHER_ORIGIN2; const additionalBid2 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer2, 'planes', 2.99); + uuid, seller, buyer2, 'planes', 2.99); + additionalBid2.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid2, auctionNonce); additionalBidHelper.addNegativeInterestGroup( additionalBid2, negativeInterestGroupName); additionalBidHelper.signWithSecretKeys( @@ -462,7 +435,7 @@ subsetTest(promise_test, async test => { /*highestScoringOtherBid=*/0, /*winningAdditionalBidId=*/'horses'); }, 'higher additional bid is filtered by negative targeting, so ' + - 'lower additional bid win'); + 'lower additional bid wins'); // Same as above, except that the bid is missing a signature, so that the // negative targeting interest group is ignored, and the higher bid, which @@ -476,11 +449,15 @@ subsetTest(promise_test, async test => { const buyer1 = OTHER_ORIGIN1; const additionalBid1 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer1, 'horses', 1.99); + uuid, seller, buyer1, 'horses', 1.99); + additionalBid1.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid1, auctionNonce); const buyer2 = OTHER_ORIGIN2; const additionalBid2 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer2, 'planes', 2.99); + uuid, seller, buyer2, 'planes', 2.99); + additionalBid2.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid2, auctionNonce); additionalBidHelper.addNegativeInterestGroup( additionalBid2, negativeInterestGroupName); @@ -508,11 +485,15 @@ subsetTest(promise_test, async test => { const buyer1 = OTHER_ORIGIN1; const additionalBid1 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer1, 'horses', 1.99); + uuid, seller, buyer1, 'horses', 1.99); + additionalBid1.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid1, auctionNonce); const buyer2 = OTHER_ORIGIN2; const additionalBid2 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer2, 'planes', 2.99); + uuid, seller, buyer2, 'planes', 2.99); + additionalBid2.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid2, auctionNonce); additionalBidHelper.addNegativeInterestGroup( additionalBid2, negativeInterestGroupName); additionalBidHelper.incorrectlySignWithSecretKeys( @@ -541,11 +522,15 @@ subsetTest(promise_test, async test => { const buyer1 = OTHER_ORIGIN1; const additionalBid1 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer1, 'horses', 1.99); + uuid, seller, buyer1, 'horses', 1.99); + additionalBid1.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid1, auctionNonce); const buyer2 = OTHER_ORIGIN2; const additionalBid2 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer2, 'planes', 2.99); + uuid, seller, buyer2, 'planes', 2.99); + additionalBid2.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid2, auctionNonce); additionalBidHelper.addNegativeInterestGroups( additionalBid2, [negativeInterestGroupName1, negativeInterestGroupName2], /*joiningOrigin=*/window.location.origin); @@ -575,11 +560,15 @@ subsetTest(promise_test, async test => { const buyer1 = OTHER_ORIGIN1; const additionalBid1 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer1, 'horses', 1.99); + uuid, seller, buyer1, 'horses', 1.99); + additionalBid1.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid1, auctionNonce); const buyer2 = OTHER_ORIGIN2; const additionalBid2 = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer2, 'planes', 2.99); + uuid, seller, buyer2, 'planes', 2.99); + additionalBid2.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid2, auctionNonce); additionalBidHelper.addNegativeInterestGroups( additionalBid2, [negativeInterestGroupName1, negativeInterestGroupName2], /*joiningOrigin=*/OTHER_ORIGIN1); @@ -606,7 +595,9 @@ subsetTest(promise_test, async test => { const buyer = OTHER_ORIGIN1; const additionalBid = additionalBidHelper.createAdditionalBid( - uuid, auctionNonce, seller, buyer, 'horses', 1.99); + uuid, seller, buyer, 'horses', 1.99); + additionalBid.auctionNonce = auctionNonce; + additionalBidHelper.setAuctionNonceInHeader(additionalBid, auctionNonce); let renderURL = createRenderURL(uuid); await runBasicFledgeTestExpectingWinner( diff --git a/tests/wpt/tests/fledge/tentative/resources/additional-bids.py b/tests/wpt/tests/fledge/tentative/resources/additional-bids.py index 6c51d38a464..8a947533307 100644 --- a/tests/wpt/tests/fledge/tentative/resources/additional-bids.py +++ b/tests/wpt/tests/fledge/tentative/resources/additional-bids.py @@ -1,19 +1,19 @@ -"""Endpoint to return additional bids in the appropriate response header. +"""Endpoint to return signed additional bids in the appropriate response header. Additional bids are returned using the "Ad-Auction-Additional-Bid" response header, as described at https://github.com/WICG/turtledove/blob/main/FLEDGE.md#63-http-response-headers. -This script generates one of "Ad-Auction-Additional-Bid" response header for -each additional bid provided in a url-encoded `additionalBids` query parameter. +This script generates an "Ad-Auction-Additional-Bid" response header for each of +the pre-formatted additional bid header values provided in a JSON list-valued +`additionalBidHeaderValues` query parameter. All requests to this endpoint requires a "Sec-Ad-Auction-Fetch" request header with a value of b"?1"; this entrypoint otherwise returns a 400 response. """ -import json -import base64 -import fledge.tentative.resources.ed25519 as ed25519 +import json + import fledge.tentative.resources.fledge_http_server_util as fledge_http_server_util @@ -21,97 +21,22 @@ class BadRequestError(Exception): pass -def _generate_signature(message, base64_encoded_secret_key): - """Returns a signature entry for a signed additional bid. - - Args: - base64_encoded_secret_key: base64-encoded Ed25519 key with which to sign - the message. From this secret key, the public key can be deduced, which - becomes part of the signature entry. - message: The additional bid text (or other text if generating an invalid - signature) to sign. - """ - secret_key = base64.b64decode(base64_encoded_secret_key.encode("utf-8")) - public_key = ed25519.publickey_unsafe(secret_key) - signature = ed25519.signature_unsafe( - message.encode("utf-8"), secret_key, public_key) - return { - "key": base64.b64encode(public_key).decode("utf-8"), - "signature": base64.b64encode(signature).decode("utf-8") - } - - -def _sign_additional_bid(additional_bid_string, - secret_keys_for_valid_signatures, - secret_keys_for_invalid_signatures): - """Returns a signed additional bid given an additional bid and secret keys. - - Args: - additional_bid_string: string representation of the additional bid - secret_keys_for_valid_signatures: a list of strings, each a base64-encoded - Ed25519 secret key with which to sign the additional bid - secret_keys_for_invalid_signatures: a list of strings, each a base64-encoded - Ed25519 secret key with which to incorrectly sign the additional bid - """ - signatures = [] - signatures.extend( - _generate_signature(additional_bid_string, secret_key) - for secret_key in secret_keys_for_valid_signatures) - - # For invalid signatures, we use the correct secret key to sign a different - # message - the additional bid prepended by 'invalid' - so that the signature - # is a structually valid signature but can't be used to verify the additional - # bid. - signatures.extend( - _generate_signature("invalid" + additional_bid_string, secret_key) - for secret_key in secret_keys_for_invalid_signatures) - - return json.dumps({ - "bid": additional_bid_string, - "signatures": signatures - }) - - def main(request, response): try: if fledge_http_server_util.handle_cors_headers_and_preflight(request, response): return # Verify that Sec-Ad-Auction-Fetch is present - if (request.headers.get("Sec-Ad-Auction-Fetch", default=b"").decode("utf-8") != "?1"): + if request.headers.get("Sec-Ad-Auction-Fetch", default=b"").decode("utf-8") != "?1": raise BadRequestError("Sec-Ad-Auction-Fetch missing or unexpected value; expected '?1'") - # Return each signed additional bid in its own header - additional_bids = request.GET.get(b"additionalBids", default=b"").decode("utf-8") - if not additional_bids: - raise BadRequestError("Missing 'additionalBids' parameter") - for additional_bid in json.loads(additional_bids): - # Each additional bid may have associated testMetadata. Remove this from - # the additional bid and use it to adjust the behavior of this handler. - test_metadata = additional_bid.pop("testMetadata", {}) - seller_nonce = test_metadata.get("sellerNonce", None) - remove_auction_nonce_from_bid = test_metadata.get("removeAuctionNonceFromBid", False) - bid_auction_nonce_override = test_metadata.get("bidAuctionNonceOverride", None) - if remove_auction_nonce_from_bid: - auction_nonce = additional_bid.pop("auctionNonce", None) - else: - auction_nonce = additional_bid.get("auctionNonce", None) - if bid_auction_nonce_override: - additional_bid["auctionNonce"] = bid_auction_nonce_override - if not auction_nonce: - raise BadRequestError("Additional bid missing required 'auctionNonce' field") - signed_additional_bid = _sign_additional_bid( - json.dumps(additional_bid), - test_metadata.get("secretKeysForValidSignatures", []), - test_metadata.get("secretKeysForInvalidSignatures", [])) - if seller_nonce: - additional_bid_header_value = (auction_nonce.encode("utf-8") + b":" + - seller_nonce.encode("utf-8") + b":" + - base64.b64encode(signed_additional_bid.encode("utf-8"))) - else: - additional_bid_header_value = (auction_nonce.encode("utf-8") + b":" + - base64.b64encode(signed_additional_bid.encode("utf-8"))) - response.headers.append(b"Ad-Auction-Additional-Bid", additional_bid_header_value) + # Return each additional bid in its own header + additional_bid_header_values = request.GET.get(b"additionalBidHeaderValues", default=b"").decode("utf-8") + if not additional_bid_header_values: + raise BadRequestError("Missing 'additionalBidHeaderValues' parameter") + for additional_bid_header_value in json.loads(additional_bid_header_values): + response.headers.append( + b"Ad-Auction-Additional-Bid", additional_bid_header_value.encode("utf-8")) response.status = (200, b"OK") response.headers.set(b"Content-Type", b"text/plain") diff --git a/tests/wpt/tests/fledge/tentative/resources/ba-fledge-util.sub.js b/tests/wpt/tests/fledge/tentative/resources/ba-fledge-util.sub.js index 4e78a04c8d5..3371813feee 100644 --- a/tests/wpt/tests/fledge/tentative/resources/ba-fledge-util.sub.js +++ b/tests/wpt/tests/fledge/tentative/resources/ba-fledge-util.sub.js @@ -372,6 +372,66 @@ BA.authorizeServerResponseNonces = async function(nonces) { BA.configureCoordinator = async function() { // This is async in hope it can eventually use testdriver to configure this. return 'https://{{hosts[][]}}'; -} +}; + +// Runs responseMutator on a minimal correct server response, and expects +// either success/failure based on expectWin. +BA.testWithMutatedServerResponse = async function( + test, expectWin, responseMutator, igMutator = undefined, + ownerOverride = null) { + let finalIgOwner = ownerOverride ? ownerOverride : window.location.origin; + const uuid = generateUuid(test); + const adA = createTrackerURL(finalIgOwner, uuid, 'track_get', 'a'); + const adB = createTrackerURL(finalIgOwner, uuid, 'track_get', 'b'); + const adsArray = + [{renderURL: adA, adRenderId: 'a'}, {renderURL: adB, adRenderId: 'b'}]; + let ig = {ads: adsArray}; + if (igMutator) { + igMutator(ig, uuid); + } + if (ownerOverride !== null) { + await joinCrossOriginInterestGroup(test, uuid, ownerOverride, ig); + } else { + await joinInterestGroup(test, uuid, ig); + } + + const result = await navigator.getInterestGroupAdAuctionData({ + coordinatorOrigin: await BA.configureCoordinator(), + seller: window.location.origin + }); + assert_true(result.requestId !== null); + assert_true(result.request.length > 0); + + let decoded = await BA.decodeInterestGroupData(result.request); + + let serverResponseMsg = { + 'biddingGroups': {}, + 'adRenderURL': ig.ads[0].renderURL, + 'interestGroupName': DEFAULT_INTEREST_GROUP_NAME, + 'interestGroupOwner': finalIgOwner, + }; + serverResponseMsg.biddingGroups[finalIgOwner] = [0]; + await responseMutator(serverResponseMsg, uuid); + + let serverResponse = + await BA.encodeServerResponse(serverResponseMsg, decoded); + + let hashString = await BA.payloadHash(serverResponse); + await BA.authorizeServerResponseHashes([hashString]); + + let auctionResult = await navigator.runAdAuction({ + 'seller': window.location.origin, + 'interestGroupBuyers': [finalIgOwner], + 'requestId': result.requestId, + 'serverResponse': serverResponse, + 'resolveToConfig': true, + }); + if (expectWin) { + expectSuccess(auctionResult); + return auctionResult; + } else { + expectNoWinner(auctionResult); + } +}; })(BA); diff --git a/tests/wpt/tests/fledge/tentative/resources/ed25519.py b/tests/wpt/tests/fledge/tentative/resources/ed25519.py deleted file mode 100644 index 53e548ab8e6..00000000000 --- a/tests/wpt/tests/fledge/tentative/resources/ed25519.py +++ /dev/null @@ -1,289 +0,0 @@ -# ed25519.py - Optimized version of the reference implementation of Ed25519 -# -# Written in 2011? by Daniel J. Bernstein -# 2013 by Donald Stufft -# 2013 by Alex Gaynor -# 2013 by Greg Price -# -# To the extent possible under law, the author(s) have dedicated all copyright -# and related and neighboring rights to this software to the public domain -# worldwide. This software is distributed without any warranty. -# -# You should have received a copy of the CC0 Public Domain Dedication along -# with this software. If not, see -# . -# -# Downloaded from https://raw.githubusercontent.com/pyca/ed25519/main/ed25519.py -# on April 1, 2024. - -""" -NB: This code is not safe for use with secret keys or secret data. -The only safe use of this code is for verifying signatures on public messages. - -Functions for computing the public key of a secret key and for signing -a message are included, namely publickey_unsafe and signature_unsafe, -for testing purposes only. - -The root of the problem is that Python's long-integer arithmetic is -not designed for use in cryptography. Specifically, it may take more -or less time to execute an operation depending on the values of the -inputs, and its memory access patterns may also depend on the inputs. -This opens it to timing and cache side-channel attacks which can -disclose data to an attacker. We rely on Python's long-integer -arithmetic, so we cannot handle secrets without risking their disclosure. -""" - -import hashlib - - -__version__ = "1.0.dev0" - - -b = 256 -q = 2**255 - 19 -l = 2**252 + 27742317777372353535851937790883648493 - - -def H(m): - return hashlib.sha512(m).digest() - - -def pow2(x, p): - """== pow(x, 2**p, q)""" - while p > 0: - x = x * x % q - p -= 1 - return x - - -def inv(z): - r"""$= z^{-1} \mod q$, for z != 0""" - # Adapted from curve25519_athlon.c in djb's Curve25519. - z2 = z * z % q # 2 - z9 = pow2(z2, 2) * z % q # 9 - z11 = z9 * z2 % q # 11 - z2_5_0 = (z11 * z11) % q * z9 % q # 31 == 2^5 - 2^0 - z2_10_0 = pow2(z2_5_0, 5) * z2_5_0 % q # 2^10 - 2^0 - z2_20_0 = pow2(z2_10_0, 10) * z2_10_0 % q # ... - z2_40_0 = pow2(z2_20_0, 20) * z2_20_0 % q - z2_50_0 = pow2(z2_40_0, 10) * z2_10_0 % q - z2_100_0 = pow2(z2_50_0, 50) * z2_50_0 % q - z2_200_0 = pow2(z2_100_0, 100) * z2_100_0 % q - z2_250_0 = pow2(z2_200_0, 50) * z2_50_0 % q # 2^250 - 2^0 - return pow2(z2_250_0, 5) * z11 % q # 2^255 - 2^5 + 11 = q - 2 - - -d = -121665 * inv(121666) % q -I = pow(2, (q - 1) // 4, q) - - -def xrecover(y): - xx = (y * y - 1) * inv(d * y * y + 1) - x = pow(xx, (q + 3) // 8, q) - - if (x * x - xx) % q != 0: - x = (x * I) % q - - if x % 2 != 0: - x = q - x - - return x - - -By = 4 * inv(5) -Bx = xrecover(By) -B = (Bx % q, By % q, 1, (Bx * By) % q) -ident = (0, 1, 1, 0) - - -def edwards_add(P, Q): - # This is formula sequence 'addition-add-2008-hwcd-3' from - # http://www.hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html - (x1, y1, z1, t1) = P - (x2, y2, z2, t2) = Q - - a = (y1 - x1) * (y2 - x2) % q - b = (y1 + x1) * (y2 + x2) % q - c = t1 * 2 * d * t2 % q - dd = z1 * 2 * z2 % q - e = b - a - f = dd - c - g = dd + c - h = b + a - x3 = e * f - y3 = g * h - t3 = e * h - z3 = f * g - - return (x3 % q, y3 % q, z3 % q, t3 % q) - - -def edwards_double(P): - # This is formula sequence 'dbl-2008-hwcd' from - # http://www.hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html - (x1, y1, z1, t1) = P - - a = x1 * x1 % q - b = y1 * y1 % q - c = 2 * z1 * z1 % q - # dd = -a - e = ((x1 + y1) * (x1 + y1) - a - b) % q - g = -a + b # dd + b - f = g - c - h = -a - b # dd - b - x3 = e * f - y3 = g * h - t3 = e * h - z3 = f * g - - return (x3 % q, y3 % q, z3 % q, t3 % q) - - -def scalarmult(P, e): - if e == 0: - return ident - Q = scalarmult(P, e // 2) - Q = edwards_double(Q) - if e & 1: - Q = edwards_add(Q, P) - return Q - - -# Bpow[i] == scalarmult(B, 2**i) -Bpow = [] - - -def make_Bpow(): - P = B - for i in range(253): - Bpow.append(P) - P = edwards_double(P) - - -make_Bpow() - - -def scalarmult_B(e): - """ - Implements scalarmult(B, e) more efficiently. - """ - # scalarmult(B, l) is the identity - e = e % l - P = ident - for i in range(253): - if e & 1: - P = edwards_add(P, Bpow[i]) - e = e // 2 - assert e == 0, e - return P - - -def encodeint(y): - bits = [(y >> i) & 1 for i in range(b)] - return bytes( - [sum([bits[i * 8 + j] << j for j in range(8)]) for i in range(b // 8)] - ) - - -def encodepoint(P): - (x, y, z, t) = P - zi = inv(z) - x = (x * zi) % q - y = (y * zi) % q - bits = [(y >> i) & 1 for i in range(b - 1)] + [x & 1] - return bytes( - [sum([bits[i * 8 + j] << j for j in range(8)]) for i in range(b // 8)] - ) - - -def bit(h, i): - return (h[i // 8] >> (i % 8)) & 1 - - -def publickey_unsafe(sk): - """ - Not safe to use with secret keys or secret data. - - See module docstring. This function should be used for testing only. - """ - h = H(sk) - a = 2 ** (b - 2) + sum(2**i * bit(h, i) for i in range(3, b - 2)) - A = scalarmult_B(a) - return encodepoint(A) - - -def Hint(m): - h = H(m) - return sum(2**i * bit(h, i) for i in range(2 * b)) - - -def signature_unsafe(m, sk, pk): - """ - Not safe to use with secret keys or secret data. - - See module docstring. This function should be used for testing only. - """ - h = H(sk) - a = 2 ** (b - 2) + sum(2**i * bit(h, i) for i in range(3, b - 2)) - r = Hint(bytes([h[j] for j in range(b // 8, b // 4)]) + m) - R = scalarmult_B(r) - S = (r + Hint(encodepoint(R) + pk + m) * a) % l - return encodepoint(R) + encodeint(S) - - -def isoncurve(P): - (x, y, z, t) = P - return ( - z % q != 0 - and x * y % q == z * t % q - and (y * y - x * x - z * z - d * t * t) % q == 0 - ) - - -def decodeint(s): - return sum(2**i * bit(s, i) for i in range(0, b)) - - -def decodepoint(s): - y = sum(2**i * bit(s, i) for i in range(0, b - 1)) - x = xrecover(y) - if x & 1 != bit(s, b - 1): - x = q - x - P = (x, y, 1, (x * y) % q) - if not isoncurve(P): - raise ValueError("decoding point that is not on curve") - return P - - -class SignatureMismatch(Exception): - pass - - -def checkvalid(s, m, pk): - """ - Not safe to use when any argument is secret. - - See module docstring. This function should be used only for - verifying public signatures of public messages. - """ - if len(s) != b // 4: - raise ValueError("signature length is wrong") - - if len(pk) != b // 8: - raise ValueError("public-key length is wrong") - - R = decodepoint(s[: b // 8]) - A = decodepoint(pk) - S = decodeint(s[b // 8 : b // 4]) - h = Hint(encodepoint(R) + pk + m) - - (x1, y1, z1, t1) = P = scalarmult_B(S) - (x2, y2, z2, t2) = Q = edwards_add(R, scalarmult(A, h)) - - if ( - not isoncurve(P) - or not isoncurve(Q) - or (x1 * z2 - x2 * z1) % q != 0 - or (y1 * z2 - y2 * z1) % q != 0 - ): - raise SignatureMismatch("signature does not pass verification") diff --git a/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js b/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js index a209adbf2f3..ebd2b44b992 100644 --- a/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js +++ b/tests/wpt/tests/fledge/tentative/resources/fledge-util.sub.js @@ -782,78 +782,65 @@ function directFromSellerSignalsValidatorCode(uuid, expectedSellerSignals, } let additionalBidHelper = function() { + // Creates an additional bid with the given parameters. This additional bid // specifies a biddingLogicURL that provides an implementation of // reportAdditionalBidWin that triggers a sendReportTo() to the bidder report // URL of the winning additional bid. Additional bids are described in more // detail at // https://github.com/WICG/turtledove/blob/main/FLEDGE.md#6-additional-bids. - function createAdditionalBid(uuid, auctionNonce, seller, buyer, interestGroupName, bidAmount, - additionalBidOverrides = {}) { + // Returned bids have an additional `testMetadata` field that's modified by + // several of the other helper functions defined below and is consumed by + // `fetchAdditionalBids()`. Created additional bids must be used only once, + // as `fetchAdditionalBids()` consumes and discards the `testMetadata` field. + function createAdditionalBid(uuid, seller, buyer, interestGroupName, bidAmount) { return { interestGroup: { name: interestGroupName, - biddingLogicURL: createBiddingScriptURL( - { - origin: buyer, - reportAdditionalBidWin: `sendReportTo("${createBidderReportURL(uuid, interestGroupName)}");` - }), + biddingLogicURL: createBiddingScriptURL({ + origin: buyer, + reportAdditionalBidWin: `sendReportTo("${ + createBidderReportURL(uuid, interestGroupName)}");` + }), owner: buyer }, - bid: { - ad: ['metadata'], - bid: bidAmount, - render: createRenderURL(uuid) - }, - auctionNonce: auctionNonce, + bid: {ad: ['metadata'], bid: bidAmount, render: createRenderURL(uuid)}, seller: seller, - ...additionalBidOverrides + testMetadata: {} }; } - // Gets the testMetadata for an additional bid, initializing it if needed. - function getAndMaybeInitializeTestMetadata(additionalBid) { - if (additionalBid.testMetadata === undefined) { - additionalBid.testMetadata = {}; - } - return additionalBid.testMetadata; + // Sets the auction nonce that will be included by the server on the + // 'Ad-Auction-Additional-Bid' response header for this bid. All valid + // additional bids should have an auctionNonce in the header, so this + // should be called by most tests. + function setAuctionNonceInHeader(additionalBid, auctionNonce) { + additionalBid.testMetadata.auctionNonce = auctionNonce; } - // Tells the additional bid endpoint to correctly sign the additional bid with + // Sets the seller nonce that will be included by the server on the + // 'Ad-Auction-Additional-Bid' response header for this bid. + function setSellerNonceInHeader(additionalBid, sellerNonce) { + additionalBid.testMetadata.sellerNonce = sellerNonce; + } + + // Tells `fetchAdditionalBids` to correctly sign the additional bid with // the given secret keys before returning that as a signed additional bid. + // The signatures aren't computed yet because `additionalBid` - whose string + // representation is signed - may still change between when this is called + // and when `fetchAdditionalBids` is called. function signWithSecretKeys(additionalBid, secretKeys) { - getAndMaybeInitializeTestMetadata(additionalBid). - secretKeysForValidSignatures = secretKeys; + additionalBid.testMetadata.secretKeysForValidSignatures = secretKeys; } - // Tells the additional bid endpoint to incorrectly sign the additional bid with - // the given secret keys before returning that as a signed additional bid. This - // is used for testing the behavior when the auction encounters an invalid - // signature. + // Tells the additional bid endpoint to incorrectly sign the additional bid + // with the given secret keys before returning that as a signed additional + // bid. This is used for testing the behavior when the auction encounters an + // invalid signature. The signatures aren't computed yet because + // `additionalBid` - whose string representation is signed - may still change + // between when this is called and when `fetchAdditionalBids` is called. function incorrectlySignWithSecretKeys(additionalBid, secretKeys) { - getAndMaybeInitializeTestMetadata(additionalBid). - secretKeysForInvalidSignatures = secretKeys; - } - - // Sets the seller nonce that will be used in the server response. - function setSellerNonce(additionalBid, sellerNonce) { - getAndMaybeInitializeTestMetadata(additionalBid). - sellerNonce = sellerNonce; - } - - // Instructs the server to remove the auctionNonce from the bid, and only - // include it in the header. - function removeAuctionNonceFromBid(additionalBid) { - getAndMaybeInitializeTestMetadata(additionalBid). - removeAuctionNonceFromBid = true; - } - - // Instructs the server to use `bidAuctionNonceOverride` as the `auctionNonce` - // in the bid, even it doesn't match the auctionNonce in the header. Overrides - // the behavior of removeAuctionNonceFromBid(). - function setBidAuctionNonceOverride(additionalBid, bidAuctionNonceOverride) { - getAndMaybeInitializeTestMetadata(additionalBid). - bidAuctionNonceOverride = bidAuctionNonceOverride; + additionalBid.testMetadata.secretKeysForInvalidSignatures = secretKeys; } // Takes the auctionNonce and sellerNonce as strings, and combines them with @@ -870,25 +857,125 @@ let additionalBidHelper = function() { // Adds a single negative interest group to an additional bid, as described at: // https://github.com/WICG/turtledove/blob/main/FLEDGE.md#622-how-additional-bids-specify-their-negative-interest-groups function addNegativeInterestGroup(additionalBid, negativeInterestGroup) { - additionalBid["negativeInterestGroup"] = negativeInterestGroup; + additionalBid.negativeInterestGroup = negativeInterestGroup; } // Adds multiple negative interest groups to an additional bid, as described at: // https://github.com/WICG/turtledove/blob/main/FLEDGE.md#622-how-additional-bids-specify-their-negative-interest-groups - function addNegativeInterestGroups(additionalBid, negativeInterestGroups, - joiningOrigin) { - additionalBid["negativeInterestGroups"] = { + function addNegativeInterestGroups( + additionalBid, negativeInterestGroups, joiningOrigin) { + additionalBid.negativeInterestGroups = { joiningOrigin: joiningOrigin, interestGroupNames: negativeInterestGroups }; } - // Fetch some number of additional bid from a seller and verify that the - // 'Ad-Auction-Additional-Bid' header is not visible in this JavaScript context. - // The `additionalBids` parameter is a list of additional bids. + const _ed25519ModulePromise = + import('../third_party/noble-ed25519/noble-ed25519.js'); + + // Returns a signature entry for a signed additional bid. + // + // `message` is the additional bid text (or other text if generating an + // invalid signature) to sign. + // + // `base64EncodedSecretKey` is the base64-encoded Ed25519 key with which to + // sign the message. From this secret key, the public key can be deduced, + // which becomes part of the signature entry. + async function _generateSignature(message, base64EncodedSecretKey) { + const ed25519 = await _ed25519ModulePromise; + const secretKey = + Uint8Array.from(atob(base64EncodedSecretKey), c => c.charCodeAt(0)); + const [publicKey, signature] = await Promise.all([ + ed25519.getPublicKeyAsync(secretKey), + ed25519.signAsync(new TextEncoder().encode(message), secretKey) + ]); + + return { + 'key': btoa(String.fromCharCode(...publicKey)), + 'signature': btoa(String.fromCharCode(...signature)) + }; + } + + // Returns a signed additional bid given an additional bid and secret keys. + // `additionalBid` is the additional bid to sign. It must not contain a + // `testMetadata` - that should have been removed prior to calling this. + // + // `secretKeysForValidSignatures` is a list of strings, each a base64-encoded + // Ed25519 secret key with which to sign the additional bid, whereas + // `secretKeysForInvalidSignatures` is a list of strings, each a + // base64-encoded Ed25519 secret key with which to *incorrectly* sign the + // additional bid. + async function _signAdditionalBid( + additionalBid, secretKeysForValidSignatures, + secretKeysForInvalidSignatures) { + async function _signString(string, secretKeys) { + if (!secretKeys) { + return []; + } + return await Promise.all(secretKeys.map( + async secretKey => await _generateSignature( + string, secretKey))); + } + + assert_not_own_property( + additionalBid, 'testMetadata', + 'testMetadata should be removed from additionalBid before signing'); + const additionalBidString = JSON.stringify(additionalBid); + let [validSignatures, invalidSignatures] = await Promise.all([ + _signString(additionalBidString, secretKeysForValidSignatures), + + // For invalid signatures, we use the correct secret key to sign a + // different message - the additional bid prepended by 'invalid' - so + // that the signature is a structually valid signature with the correct + // (public) key, but can't be used to verify the additional bid. + _signString('invalid' + additionalBidString, secretKeysForInvalidSignatures) + ]); + return { + 'bid': additionalBidString, + 'signatures': validSignatures.concat(invalidSignatures) + }; + } + + // Given an additionalBid object, this returns a string to be used as the + // value of the `Ad-Auction-Additional-Bid` response header. To produce this + // header, this signs the signing the `additionalBid` with the signatures + // specified by prior calls to `signWithSecretKeys` and + // `incorrectlySignWithSecretKeys` above; base64-encodes the stringified + // `signedAdditionalBid`; and then prepends that with the `auctionNonce` and/or + // `sellerNonce` specified by prior calls to `setAuctionNonceInHeader` and + // `setSellerNonceInHeader` above, respectively. + async function _convertAdditionalBidToResponseHeader(additionalBid) { + const testMetadata = additionalBid.testMetadata; + delete additionalBid.testMetadata; + + const signedAdditionalBid = await _signAdditionalBid( + additionalBid, + testMetadata.secretKeysForValidSignatures, + testMetadata.secretKeysForInvalidSignatures); + + + return [ + testMetadata.auctionNonce, + testMetadata.sellerNonce, + btoa(JSON.stringify(signedAdditionalBid)) + ].filter(k => k !== undefined).join(':'); + } + + // Fetch some number of fully prepared additional bid from a seller and verify + // that the `Ad-Auction-Additional-Bid` header is not visible in this + // JavaScript context. The `additionalBids` parameter is a list of additional + // bids objects created by `createAdditionalBid` and modified by other + // functions on this helper. Once passed to this method, additional bids may + // not be reused in a future call to `fetchAdditionalBids()`, since this + // mothod consumes and destroys their `testMetadata` field. async function fetchAdditionalBids(seller, additionalBids) { + additionalBidHeaderValues = await Promise.all(additionalBids.map( + async additionalBid => + await _convertAdditionalBidToResponseHeader(additionalBid))); + const url = new URL(`${seller}${RESOURCE_PATH}additional-bids.py`); - url.searchParams.append('additionalBids', JSON.stringify(additionalBids)); + url.searchParams.append( + 'additionalBidHeaderValues', JSON.stringify(additionalBidHeaderValues)); const response = await fetch(url.href, {adAuctionHeaders: true}); assert_equals(response.status, 200, 'Failed to fetch additional bid: ' + await response.text()); @@ -899,11 +986,10 @@ let additionalBidHelper = function() { return { createAdditionalBid: createAdditionalBid, + setAuctionNonceInHeader: setAuctionNonceInHeader, + setSellerNonceInHeader: setSellerNonceInHeader, signWithSecretKeys: signWithSecretKeys, incorrectlySignWithSecretKeys: incorrectlySignWithSecretKeys, - setSellerNonce: setSellerNonce, - removeAuctionNonceFromBid: removeAuctionNonceFromBid, - setBidAuctionNonceOverride: setBidAuctionNonceOverride, computeBidNonce: computeBidNonce, addNegativeInterestGroup: addNegativeInterestGroup, addNegativeInterestGroups: addNegativeInterestGroups, diff --git a/tests/wpt/tests/fledge/tentative/server-response-for-debugging-only.https.window.js b/tests/wpt/tests/fledge/tentative/server-response-for-debugging-only.https.window.js new file mode 100644 index 00000000000..1b4edc66a89 --- /dev/null +++ b/tests/wpt/tests/fledge/tentative/server-response-for-debugging-only.https.window.js @@ -0,0 +1,192 @@ +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=resources/ba-fledge-util.sub.js +// META: script=resources/fledge-util.sub.js +// META: script=/common/subset-tests.js +// META: script=third_party/cbor-js/cbor.js +// META: timeout=long +// META: variant=?1-last + +// These tests focus on the debugReports field in AuctionConfig's +// serverResponse, i.e. auctions involving forDebuggingOnly reports. +// NOTE: Due to DB's fDO lockout/cooldown tables are not cleaned after each run +// of a test, fDO reports will not be sent after the first run of the test sent +// it, so we cannot reliably test fDO reports being sent when downsampling is +// enabled yet. + +function createDebugReport( + url, isWinReport = null, isSellerReport = null, componentWin = null) { + let report = {}; + if (url !== null) { + report.url = url; + } + if (isWinReport !== null) { + report.isWinReport = isWinReport; + } + if (isSellerReport !== null) { + report.isSellerReport = isSellerReport; + } + if (componentWin !== null) { + report.componentWin = componentWin; + } + return report; +} + +function createDebugReportsPerOrigin( + adTechOrigin = MAIN_ORIGIN, reports = null) { + let reportsPerOrigin = {}; + if (adTechOrigin !== null) { + reportsPerOrigin.adTechOrigin = adTechOrigin; + } + if (reports !== null) { + reportsPerOrigin.reports = reports; + } + return reportsPerOrigin; +} + +const delay = ms => new Promise(resolve => step_timeout(resolve, ms)); + +// No forDebuggingOnly requests are observed, until time out. +async function noRequestsObserved(uuid, timeout = 2000 /*ms*/) { + const endTime = performance.now() + timeout; + + do { + let trackedData = await fetchTrackedData(uuid); + // Replace UUID to print consistent errors on failure. + let trackedRequests = + trackedData.trackedRequests.map((url) => url.replace(uuid, '')) + .sort(); + + // No forDebuggingOnly requests should be observed. + for (const request of trackedRequests) { + assert_false( + request.includes('forDebuggingOnly'), + 'Unexpected forDebuggingOnly request: ' + request); + } + await delay(/*ms=*/ 100); + } while (performance.now() < endTime); +} + +async function testInvalidDebugReportsFields( + test, uuid, debugReports, ownerOverride = null) { + let result = await BA.testWithMutatedServerResponse( + test, /*expectWin=*/ true, + (msg) => { + msg.debugReports = debugReports; + }, + (ig, uuid) => { + ig.ads[0].renderURL = createRenderURL(uuid); + }, + ownerOverride); + createAndNavigateFencedFrame(test, result); + await noRequestsObserved(uuid); +} + +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + + let bidderDebugReportURL = + createBidderReportURL(uuid, /*id=*/ 'forDebuggingOnly'); + let debugReports = [createDebugReportsPerOrigin( + /*adTechOrigin=*/ null, + [createDebugReport(bidderDebugReportURL, /*isWinReport=*/ true)])]; + await testInvalidDebugReportsFields(test, uuid, debugReports); +}, `B&A forDebuggingOnly - missing required adTechOrigin`); + +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + let bidderDebugReportURL = + createBidderReportURL(uuid, /*id=*/ 'forDebuggingOnly'); + let debugReports = [createDebugReportsPerOrigin( + /*adTechOrigin=*/ 'http://nothttps.com', + [createDebugReport(bidderDebugReportURL, /*isWinReport=*/ true)])]; + await testInvalidDebugReportsFields(test, uuid, debugReports); +}, `B&A forDebuggingOnly - HTTP adTechOrigin`); + +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + let bidderDebugReportURL = + createBidderReportURL(uuid, /*id=*/ 'forDebuggingOnly'); + let debugReports = [createDebugReportsPerOrigin( + /*adTechOrigin=*/ window.location.origin, + [createDebugReport('http://nothttps.com', /*isWinReport=*/ true)])]; + await testInvalidDebugReportsFields(test, uuid, debugReports); +}, `B&A forDebuggingOnly - HTTP debug report url`); + +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + let bidderDebugReportURL = + createBidderReportURL(uuid, /*id=*/ 'forDebuggingOnly'); + let debugReports = [createDebugReportsPerOrigin( + /*adTechOrigin=*/ window.location.origin, + [createDebugReport('not a url', /*isWinReport=*/ true)])]; + await testInvalidDebugReportsFields(test, uuid, debugReports); +}, `B&A forDebuggingOnly - debug report url not a url`); + +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + const igOwner = OTHER_ORIGIN1; + + let bidderDebugReportURL = + createBidderReportURL(uuid, /*id=*/ 'forDebuggingOnly', igOwner); + let sellerDebugReportURL = + createSellerReportURL(uuid, /*id=*/ 'forDebuggingOnly'); + + let debugReports = [ + createDebugReportsPerOrigin( + igOwner, + [createDebugReport(bidderDebugReportURL, /*isWinReport=*/ true)]), + createDebugReportsPerOrigin( + window.location.origin, [createDebugReport( + sellerDebugReportURL, /*isWinReport=*/ true, + /*isSellerReport=*/ true)]) + ]; + + let result = await BA.testWithMutatedServerResponse( + test, /*expectWin=*/ true, + (msg) => { + msg.debugReports = debugReports; + }, + (ig, uuid) => { + ig.ads[0].renderURL = createRenderURL(uuid); + }, + igOwner); + createAndNavigateFencedFrame(test, result); + await waitForObservedRequests( + uuid, [bidderDebugReportURL, sellerDebugReportURL]); +}, `B&A forDebuggingOnly - debug reports sent`); + +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + const igOwner = OTHER_ORIGIN1; + + let bidderDebugReportURL = + createBidderReportURL(uuid, /*id=*/ 'forDebuggingOnly', igOwner); + let sellerDebugReportURL = + createSellerReportURL(uuid, /*id=*/ 'forDebuggingOnly'); + + let debugReports = [ + createDebugReportsPerOrigin( + igOwner, [createDebugReport('not a url', /*isWinReport=*/ true)]), + createDebugReportsPerOrigin( + window.location.origin, [createDebugReport( + sellerDebugReportURL, /*isWinReport=*/ true, + /*isSellerReport=*/ true)]) + ]; + + let result = await BA.testWithMutatedServerResponse( + test, /*expectWin=*/ true, + (msg) => { + msg.debugReports = debugReports; + }, + (ig, uuid) => { + ig.ads[0].renderURL = createRenderURL(uuid); + }, + igOwner); + createAndNavigateFencedFrame(test, result); + await waitForObservedRequests(uuid, [sellerDebugReportURL]); +}, `B&A forDebuggingOnly - invalid debug reports don't affect other debug reports`); + +// TODO(qingxinwu): multi seller auctions. diff --git a/tests/wpt/tests/fledge/tentative/server-response-private-aggregation.https.window.js b/tests/wpt/tests/fledge/tentative/server-response-private-aggregation.https.window.js new file mode 100644 index 00000000000..d7f21e16cf0 --- /dev/null +++ b/tests/wpt/tests/fledge/tentative/server-response-private-aggregation.https.window.js @@ -0,0 +1,239 @@ +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=resources/ba-fledge-util.sub.js +// META: script=resources/fledge-util.sub.js +// META: script=third_party/cbor-js/cbor.js +// META: script=/common/subset-tests.js +// META: timeout=long +// META: variant=?1-6 +// META: variant=?7-last + +// These tests focus on the paggResponse field in AuctionConfig's +// serverResponse, i.e. auctions involving private aggregation reporting. NOTE: +// Due to debug mode being disabled for B&A's Private Aggregation reports, these +// tests just exercise the code paths and ensure that correct number of reports +// are sent -- they don't otherwise verify report content. + +// To better isolate from private aggregation tests run in parallel, +// don't use the usual origin here. +const MAIN_ORIGIN = OTHER_ORIGIN1; +const MAIN_PATH = '/.well-known/private-aggregation/report-protected-audience'; + +const BUCKET_ONE = new Uint8Array([ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01 +]); + +function BigEndianInteger128ToUint8Array(val) { + let buffer = new Uint8Array(16); + for (let i = 15; i >= 0; i--) { + buffer[i] = Number(val & 0xFFn); + val >>= 8n; + } + return buffer; +} + +function createSimplePerOriginPAggResponse( + reportingOrigin = MAIN_ORIGIN, igIndex = 0, event = 'reserved.win', + bucket = BUCKET_ONE, value = 10, filteringId = null) { + let contribution = {}; + if (bucket !== null) { + contribution.bucket = bucket; + } + if (value !== null) { + contribution.value = value; + } + if (filteringId !== null) { + contribution.filteringId = filteringId; + } + return { + 'reportingOrigin': reportingOrigin, + 'igContributions': [{ + 'igIndex': igIndex, + 'eventContributions': [{'event': event, 'contributions': [contribution]}] + }] + }; +} + +async function privateAggregationTestWithMutatedServerResponse( + test, expectWin, paggResponse, timeout = 5000 /*ms*/, + ownerOverride = null) { + await resetReports(MAIN_ORIGIN + MAIN_PATH); + let result = await BA.testWithMutatedServerResponse( + test, expectWin, + (msg, uuid) => { + msg.paggResponse = paggResponse; + }, + (ig, uuid) => { + ig.ads[0].renderURL = createRenderURL(uuid); + }, + ownerOverride); + createAndNavigateFencedFrame(test, result); + const reports = await pollReports(MAIN_PATH, timeout); + return reports; +} + +async function testInvalidPAggResponseFields( + test, reportingOrigin = MAIN_ORIGIN, igIndex = 0, event = 'reserved.win', + bucket = '1', value = 10, filteringId = null) { + const paggResponse = [createSimplePerOriginPAggResponse( + reportingOrigin, igIndex, event, bucket, value, filteringId)]; + + let reports = await privateAggregationTestWithMutatedServerResponse( + test, + /*expectWin=*/ true, paggResponse, /*timeout=*/ 5000, MAIN_ORIGIN); + assert_equals(reports, null); +} + +// The next few methods are modified from Chrome-specific +// wpt_internal/private-aggregation/resources/utils.js + +const resetReports = url => { + url = `${url}?clear_stash=true`; + const options = { + method: 'POST', + mode: 'no-cors', + }; + return fetch(url, options); +}; + +const delay = ms => new Promise(resolve => step_timeout(resolve, ms)); + +async function pollReports(path, wait_for = 1, timeout = 5000 /*ms*/) { + const targetUrl = new URL(path, MAIN_ORIGIN); + const endTime = performance.now() + timeout; + const outReports = []; + + do { + const response = await fetch(targetUrl); + assert_true(response.ok, 'pollReports() fetch response should be OK.'); + const reports = await response.json(); + outReports.push(...reports); + if (outReports.length >= wait_for) { + break; + } + await delay(/*ms=*/ 100); + } while (performance.now() < endTime); + + return outReports.length ? outReports : null; +}; + +/** + * Verifies that a report's aggregation_service_payloads has the expected + * fields. Currently for B&A's PAgg reports, debug mode is disabled, so we + * cannot check contributions in payload. + */ +const verifyAggregationServicePayloads = (aggregation_service_payloads) => { + assert_equals(aggregation_service_payloads.length, 1); + const payload_obj = aggregation_service_payloads[0]; + + assert_own_property(payload_obj, 'key_id'); + assert_own_property(payload_obj, 'payload'); + // Check the payload is base64 encoded. We do not decrypt the payload to + // test its contents. + atob(payload_obj.payload); + + // Check there are no extra keys + assert_equals(Object.keys(payload_obj).length, expected_payload ? 3 : 2); +}; + +/** + * Verifies that a report has the expected fields. The `expected_payload` should + * be undefined. + */ +const verifyReport = (report, reporting_origin) => { + assert_own_property(report, 'shared_info'); + let shared_info = JSON.parse(report.shared_info); + assert_own_property(shared_info, 'reporting_origin'); + assert_equals(shared_info.reporting_origin, reporting_origin); + assert_own_property(report, 'aggregation_service_payloads'); + assert_own_property(report, 'aggregation_coordinator_origin'); + // TODO(qingxinwu): Maybe add tests for coordinator origin. + + assert_not_own_property(report, 'debug_key'); + + // Check there are no extra keys + let expected_length = 3; + assert_equals(Object.keys(report).length, expected_length); +}; + +subsetTest(promise_test, async test => { + await testInvalidPAggResponseFields(test, 'http://non-https.com'); +}, 'Private aggregation - invalid reporting origin'); + +subsetTest( + promise_test, + async test => {await testInvalidPAggResponseFields(test, MAIN_ORIGIN, 100)}, + 'Private aggregation - invalid index'); + +subsetTest(promise_test, async test => { + await testInvalidPAggResponseFields( + test, MAIN_ORIGIN, 0, 'reserved.not-supported'); +}, 'Private aggregation - invalid event'); + +subsetTest(promise_test, async test => { + await testInvalidPAggResponseFields( + test, MAIN_ORIGIN, 0, 'reserved.win', /*bucket=*/ null); +}, 'Private aggregation - missing required bucket'); + +subsetTest(promise_test, async test => { + await testInvalidPAggResponseFields( + test, MAIN_ORIGIN, 0, 'reserved.win', new Uint8Array([ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01 + ])); +}, 'Private aggregation - bucket is bigger than 128 bits'); + +subsetTest(promise_test, async test => { + await testInvalidPAggResponseFields( + test, MAIN_ORIGIN, 0, 'reserved.win', BUCKET_ONE, /*value=*/ null); +}, 'Private aggregation - missing required value'); + +subsetTest(promise_test, async test => { + await testInvalidPAggResponseFields( + test, MAIN_ORIGIN, 0, 'reserved.win', BUCKET_ONE, 10, 10000); +}, 'Private aggregation - invalid filteringId'); + +subsetTest(promise_test, async test => { + const paggResponse = [createSimplePerOriginPAggResponse()]; + + let reports = await privateAggregationTestWithMutatedServerResponse( + test, + /*expectWin=*/ true, paggResponse, /*timeout=*/ 6000, MAIN_ORIGIN); + assert_equals(reports.length, 1); + let report = JSON.parse(reports[0]); + verifyReport(report, MAIN_ORIGIN); +}, 'Private aggregation - successfully sent report'); + +// TODO(qingxinwu): may add a test for custom event type if possible. + +subsetTest(promise_test, async test => { + const paggResponse = [{ + 'reportingOrigin': MAIN_ORIGIN, + 'igContributions': [{ + 'igIndex': 0, + 'eventContributions': [ + { + 'event': 'reserved.win', + 'contributions': [{'value': 10}, {'bucket': BUCKET_ONE, 'value': 11}] + }, + { + 'event': 'reserved.not-supported', + 'contributions': + [{'bucket': BigEndianInteger128ToUint8Array(2n), 'value': 22}] + }, + ] + }] + }]; + + let reports = await privateAggregationTestWithMutatedServerResponse( + test, + /*expectWin=*/ true, paggResponse, /*timeout=*/ 6000, MAIN_ORIGIN); + assert_equals(reports.length, 1); + let report = JSON.parse(reports[0]); + verifyReport(report, MAIN_ORIGIN); +}, 'Private aggregation - invalid contributions do not affect valid ones'); + +// TODO(qingxinwu): privateAggregation multi-seller. diff --git a/tests/wpt/tests/fledge/tentative/server-response.https.window.js b/tests/wpt/tests/fledge/tentative/server-response.https.window.js index 9806b8d9b5d..5374adb164a 100644 --- a/tests/wpt/tests/fledge/tentative/server-response.https.window.js +++ b/tests/wpt/tests/fledge/tentative/server-response.https.window.js @@ -521,102 +521,50 @@ subsetTest(promise_test, async test => { expectNoWinner(auctionResult); }, 'Basic B&A auction - Wrong request Id'); -// Runs responseMutator on a minimal correct server response, and expects -// either success/failure based on expectWin. -async function testWithMutatedServerResponse( - test, expectWin, responseMutator, igMutator = undefined) { - const uuid = generateUuid(test); - const adA = createTrackerURL(window.location.origin, uuid, 'track_get', 'a'); - const adB = createTrackerURL(window.location.origin, uuid, 'track_get', 'b'); - const adsArray = - [{renderURL: adA, adRenderId: 'a'}, {renderURL: adB, adRenderId: 'b'}]; - let ig = {ads: adsArray}; - if (igMutator) { - igMutator(ig, uuid); - } - await joinInterestGroup(test, uuid, ig); - - const result = await navigator.getInterestGroupAdAuctionData({ - coordinatorOrigin: await BA.configureCoordinator(), - seller: window.location.origin - }); - assert_true(result.requestId !== null); - assert_true(result.request.length > 0); - - let decoded = await BA.decodeInterestGroupData(result.request); - - let serverResponseMsg = { - 'biddingGroups': {}, - 'adRenderURL': ig.ads[0].renderURL, - 'interestGroupName': DEFAULT_INTEREST_GROUP_NAME, - 'interestGroupOwner': window.location.origin, - }; - serverResponseMsg.biddingGroups[window.location.origin] = [0]; - await responseMutator(serverResponseMsg, uuid); - - let serverResponse = - await BA.encodeServerResponse(serverResponseMsg, decoded); - - let hashString = await BA.payloadHash(serverResponse); - await BA.authorizeServerResponseHashes([hashString]); - - let auctionResult = await navigator.runAdAuction({ - 'seller': window.location.origin, - 'interestGroupBuyers': [window.location.origin], - 'requestId': result.requestId, - 'serverResponse': serverResponse, - 'resolveToConfig': true, - }); - if (expectWin) { - expectSuccess(auctionResult); - return auctionResult; - } else { - expectNoWinner(auctionResult); - } -} - subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, msg => {msg.error = {}}); }, 'Basic B&A auction - response marked as error'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { + await BA.testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { msg.error = 4; }); }, 'Basic B&A auction - nonsense error field'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.error = {message: 'oh no'}; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, msg => { + msg.error = {message: 'oh no'}; + }); }, 'Basic B&A auction - response marked as error, with message'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.error = {message: {}}; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, msg => { + msg.error = {message: {}}; + }); }, 'Basic B&A auction - response marked as error, with bad message'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, msg => {msg.isChaff = true}); }, 'Basic B&A auction - response marked as chaff'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ true, msg => {msg.isChaff = false}); }, 'Basic B&A auction - response marked as non-chaff'); // Disabled while spec clarifying expected behavior is in-progress. // // subsetTest(promise_test, async test => { -// await testWithMutatedServerResponse( +// await BA.testWithMutatedServerResponse( // test, /*expectSuccess=*/ true, msg => {msg.isChaff = 'yes'}); // }, 'Basic B&A auction - response marked as chaff incorrectly'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, msg => {msg.topLevelSeller = 'https://example.org/'}); }, 'Basic B&A auction - incorrectly includes topLevelSeller'); @@ -624,12 +572,12 @@ subsetTest(promise_test, async test => { // Disabled while spec clarifying expected behavior is in-progress. // // subsetTest(promise_test, async test => { -// await testWithMutatedServerResponse( +// await BA.testWithMutatedServerResponse( // test, /*expectSuccess=*/ true, msg => {msg.topLevelSeller = 1}); // }, 'Basic B&A auction - non-string top-level seller ignored'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, msg => {msg.topLevelSeller = 'http://example.org/'}); }, 'Basic B&A auction - http:// topLevelSeller is bad, too'); @@ -637,118 +585,135 @@ subsetTest(promise_test, async test => { // Disabled while spec clarifying expected behavior is in-progress. // // subsetTest(promise_test, async test => { -// await testWithMutatedServerResponse( +// await BA.testWithMutatedServerResponse( // test, /*expectSuccess=*/ true, msg => {msg.bid = '10 cents'}); // }, 'Basic B&A auction - non-number bid is ignored'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ true, msg => {msg.bid = 50}); }, 'Basic B&A auction - positive bid is good'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, msg => {msg.bid = -50}); }, 'Basic B&A auction - negative bid is bad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, msg => {msg.bid = 0}); }, 'Basic B&A auction - zero bid is bad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, msg => {msg.biddingGroups[window.location.origin] = []}); }, 'Basic B&A auction - winning group did not bid'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, msg => {msg.biddingGroups[window.location.origin] = [-1, 0]}); }, 'Basic B&A auction - negative bidding group index'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, msg => {msg.biddingGroups[window.location.origin] = [0, 1]}); }, 'Basic B&A auction - too large bidding group index'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.interestGroupName += 'not'; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, msg => { + msg.interestGroupName += 'not'; + }); }, 'Basic B&A auction - wrong IG name'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ false, async msg => { await leaveInterestGroup(); }); }, 'Basic B&A auction - left IG in the middle'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.adRenderURL += 'not'; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, msg => { + msg.adRenderURL += 'not'; + }); }, 'Basic B&A auction - ad URL not in ad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.buyerReportingId = 'bid1'; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, msg => { + msg.buyerReportingId = 'bid1'; + }); }, 'Basic B&A auction - buyerReportingId not in ad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { - msg.buyerReportingId = 'bid1'; - }, ig => { - ig.ads[0].buyerReportingId = 'bid1'; - ig.ads[1].buyerReportingId = 'bid2'; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ true, + msg => { + msg.buyerReportingId = 'bid1'; + }, + ig => { + ig.ads[0].buyerReportingId = 'bid1'; + ig.ads[1].buyerReportingId = 'bid2'; + }); }, 'Basic B&A auction - buyerReportingId in ad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.buyerReportingId = 'bid2'; - }, ig => { - ig.ads[0].buyerReportingId = 'bid1'; - ig.ads[1].buyerReportingId = 'bid2'; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, + msg => { + msg.buyerReportingId = 'bid2'; + }, + ig => { + ig.ads[0].buyerReportingId = 'bid1'; + ig.ads[1].buyerReportingId = 'bid2'; + }); }, 'Basic B&A auction - buyerReportingId in wrong ad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.buyerAndSellerReportingId = 'bsid1'; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, msg => { + msg.buyerAndSellerReportingId = 'bsid1'; + }); }, 'Basic B&A auction - buyerAndSellerReportingId not in ad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { - msg.buyerAndSellerReportingId = 'bsid1'; - }, ig => { - ig.ads[0].buyerAndSellerReportingId = 'bsid1'; - ig.ads[1].buyerAndSellerReportingId = 'bsid2'; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ true, + msg => { + msg.buyerAndSellerReportingId = 'bsid1'; + }, + ig => { + ig.ads[0].buyerAndSellerReportingId = 'bsid1'; + ig.ads[1].buyerAndSellerReportingId = 'bsid2'; + }); }, 'Basic B&A auction - buyerAndSellerReportingId in ad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.buyerAndSellerReportingId = 'bsid2'; - }, ig => { - ig.ads[0].buyerAndSellerReportingId = 'bsid1'; - ig.ads[1].buyerAndSellerReportingId = 'bsid2'; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, + msg => { + msg.buyerAndSellerReportingId = 'bsid2'; + }, + ig => { + ig.ads[0].buyerAndSellerReportingId = 'bsid1'; + ig.ads[1].buyerAndSellerReportingId = 'bsid2'; + }); }, 'Basic B&A auction - buyerAndSellerReportingId in wrong ad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.components = ["https://example.org"]; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, msg => { + msg.components = ['https://example.org']; + }); }, 'Basic B&A auction - ad component URL not in ad'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse( + await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ true, msg => { msg.components = ['https://example.org']; @@ -761,7 +726,7 @@ subsetTest(promise_test, async test => { subsetTest(promise_test, async test => { let savedUuid; let savedExpectUrls; - let result = await testWithMutatedServerResponse( + let result = await BA.testWithMutatedServerResponse( test, /*expectSuccess=*/ true, (msg, uuid) => { savedUuid = uuid; @@ -808,7 +773,7 @@ subsetTest(promise_test, async test => { subsetTest(promise_test, async test => { let savedUuid; - let result = await testWithMutatedServerResponse( + let result = await BA.testWithMutatedServerResponse( test, /*expectWin=*/ true, (msg, uuid) => { savedUuid = uuid; @@ -851,13 +816,14 @@ subsetTest(promise_test, async test => { }, 'Basic B&A auction --- beacon reporting'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ false, msg => { - msg.bidCurrency = 'cents'; - }); + await BA.testWithMutatedServerResponse( + test, /*expectSuccess=*/ false, msg => { + msg.bidCurrency = 'cents'; + }); }, 'Basic B&A auction - invalid ad currency'); subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { + await BA.testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { msg.bidCurrency = 'USD'; }); }, 'Basic B&A auction - valid ad currency'); @@ -1138,13 +1104,13 @@ subsetTest(promise_test, async test => { ///////////////////////////////////////////////////////////////////////////// // updateIfOlderThanMs tests // -// NOTE: Due to the lack of mock time in wpt, these test just exercise the code +// NOTE: Due to the lack of mock time in wpt, these tests just exercise the code // paths and ensure that no crash occurs -- they don't otherwise verify // behavior. ///////////////////////////////////////////////////////////////////////////// subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { + await BA.testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { msg.updateGroups = {[window.location.origin]: [{index: 2048, updateIfOlderThanMs: 1000}]}; }); @@ -1152,7 +1118,7 @@ subsetTest(promise_test, async test => { subsetTest(promise_test, async test => { - await testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { + await BA.testWithMutatedServerResponse(test, /*expectSuccess=*/ true, msg => { msg.updateGroups = { [window.location.origin]: [ {index: 0, updateIfOlderThanMs: 1000}, @@ -1469,7 +1435,5 @@ subsetTest(promise_test, async test => { written: - forDebugOnly --- it will be straightforward now, but will break. - - privateAggregation --- currently no away to test it, may be doable with - proper key config. - Some of the parsing details that need to match the spec language exactly. */ diff --git a/tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/LICENSE b/tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/LICENSE new file mode 100644 index 00000000000..a5e0151f1f2 --- /dev/null +++ b/tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Paul Miller (https://paulmillr.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/README b/tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/README new file mode 100644 index 00000000000..1e134076107 --- /dev/null +++ b/tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/README @@ -0,0 +1,7 @@ +Downloaded from https://github.com/paulmillr/noble-ed25519, version 2.2.3. + +This module has no dependencies, and is provided as a single file, index.js. + +The async functions on this library require no additional dependencies. +For use by these tests, the async functions are entirely sufficient, +and should be consistently used instead of the sync functions. diff --git a/tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/noble-ed25519.js b/tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/noble-ed25519.js new file mode 100644 index 00000000000..544b808925d --- /dev/null +++ b/tests/wpt/tests/fledge/tentative/third_party/noble-ed25519/noble-ed25519.js @@ -0,0 +1,427 @@ +/*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) */ +/** + * 4KB JS implementation of ed25519 EDDSA signatures compliant with RFC8032, FIPS 186-5 & ZIP215. + * @module + */ +const P = 2n ** 255n - 19n; // ed25519 is twisted edwards curve +const N = 2n ** 252n + 27742317777372353535851937790883648493n; // curve's (group) order +const Gx = 0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an; // base point x +const Gy = 0x6666666666666666666666666666666666666666666666666666666666666658n; // base point y +const _d = 37095705934669439343138083508754565189542113879843219016388785533085940283555n; +/** + * ed25519 curve parameters. Equation is −x² + y² = -a + dx²y². + * Gx and Gy are generator coordinates. p is field order, n is group order. + * h is cofactor. + */ +const CURVE = { + a: -1n, // -1 mod p + d: _d, // -(121665/121666) mod p + p: P, n: N, h: 8, Gx: Gx, Gy: Gy // field prime, curve (group) order, cofactor +}; +const err = (m = '') => { throw new Error(m); }; // error helper, messes-up stack trace +const isS = (s) => typeof s === 'string'; // is string +const isu8 = (a) => (a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array')); +const au8 = (a, l) => // is Uint8Array (of specific length) + !isu8(a) || (typeof l === 'number' && l > 0 && a.length !== l) ? + err('Uint8Array of valid length expected') : a; +const u8n = (data) => new Uint8Array(data); // creates Uint8Array +const toU8 = (a, len) => au8(isS(a) ? h2b(a) : u8n(au8(a)), len); // norm(hex/u8a) to u8a +const M = (a, b = P) => { let r = a % b; return r >= 0n ? r : b + r; }; // mod division +const isPoint = (p) => (p instanceof Point ? p : err('Point expected')); // is xyzt point +/** Point in xyzt extended coordinates. */ +class Point { + constructor(ex, ey, ez, et) { + this.ex = ex; + this.ey = ey; + this.ez = ez; + this.et = et; + } + static fromAffine(p) { return new Point(p.x, p.y, 1n, M(p.x * p.y)); } + /** RFC8032 5.1.3: hex / Uint8Array to Point. */ + static fromHex(hex, zip215 = false) { + const { d } = CURVE; + hex = toU8(hex, 32); + const normed = hex.slice(); // copy the array to not mess it up + const lastByte = hex[31]; + normed[31] = lastByte & ~0x80; // adjust first LE byte = last BE byte + const y = b2n_LE(normed); // decode as little-endian, convert to num + if (zip215 && !(0n <= y && y < 2n ** 256n)) + err('bad y coord 1'); // zip215=true [1..2^256-1] + if (!zip215 && !(0n <= y && y < P)) + err('bad y coord 2'); // zip215=false [1..P-1] + const y2 = M(y * y); // y² + const u = M(y2 - 1n); // u=y²-1 + const v = M(d * y2 + 1n); // v=dy²+1 + let { isValid, value: x } = uvRatio(u, v); // (uv³)(uv⁷)^(p-5)/8; square root + if (!isValid) + err('bad y coordinate 3'); // not square root: bad point + const isXOdd = (x & 1n) === 1n; // adjust sign of x coordinate + const isLastByteOdd = (lastByte & 0x80) !== 0; // x_0, last bit + if (!zip215 && x === 0n && isLastByteOdd) + err('bad y coord 3'); // x=0 and x_0 = 1 + if (isLastByteOdd !== isXOdd) + x = M(-x); + return new Point(x, y, 1n, M(x * y)); // Z=1, T=xy + } + get x() { return this.toAffine().x; } // .x, .y will call expensive toAffine. + get y() { return this.toAffine().y; } // Should be used with care. + equals(other) { + const { ex: X1, ey: Y1, ez: Z1 } = this; + const { ex: X2, ey: Y2, ez: Z2 } = isPoint(other); // isPoint() checks class equality + const X1Z2 = M(X1 * Z2), X2Z1 = M(X2 * Z1); + const Y1Z2 = M(Y1 * Z2), Y2Z1 = M(Y2 * Z1); + return X1Z2 === X2Z1 && Y1Z2 === Y2Z1; + } + is0() { return this.equals(I); } + negate() { + return new Point(M(-this.ex), this.ey, this.ez, M(-this.et)); + } + /** Point doubling. Complete formula. */ + double() { + const { ex: X1, ey: Y1, ez: Z1 } = this; // Cost: 4M + 4S + 1*a + 6add + 1*2 + const { a } = CURVE; // https://hyperelliptic.org/EFD/g1p/auto-twisted-extended.html#doubling-dbl-2008-hwcd + const A = M(X1 * X1); + const B = M(Y1 * Y1); + const C = M(2n * M(Z1 * Z1)); + const D = M(a * A); + const x1y1 = X1 + Y1; + const E = M(M(x1y1 * x1y1) - A - B); + const G = D + B; + const F = G - C; + const H = D - B; + const X3 = M(E * F); + const Y3 = M(G * H); + const T3 = M(E * H); + const Z3 = M(F * G); + return new Point(X3, Y3, Z3, T3); + } + /** Point addition. Complete formula. */ + add(other) { + const { ex: X1, ey: Y1, ez: Z1, et: T1 } = this; // Cost: 8M + 1*k + 8add + 1*2. + const { ex: X2, ey: Y2, ez: Z2, et: T2 } = isPoint(other); // doesn't check if other on-curve + const { a, d } = CURVE; // http://hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html#addition-add-2008-hwcd-3 + const A = M(X1 * X2); + const B = M(Y1 * Y2); + const C = M(T1 * d * T2); + const D = M(Z1 * Z2); + const E = M((X1 + Y1) * (X2 + Y2) - A - B); + const F = M(D - C); + const G = M(D + C); + const H = M(B - a * A); + const X3 = M(E * F); + const Y3 = M(G * H); + const T3 = M(E * H); + const Z3 = M(F * G); + return new Point(X3, Y3, Z3, T3); + } + mul(n, safe = true) { + if (n === 0n) + return safe === true ? err('cannot multiply by 0') : I; + if (!(typeof n === 'bigint' && 0n < n && n < N)) + err('invalid scalar, must be < L'); + if (!safe && this.is0() || n === 1n) + return this; // safe=true bans 0. safe=false allows 0. + if (this.equals(G)) + return wNAF(n).p; // use wNAF precomputes for base points + let p = I, f = G; // init result point & fake point + for (let d = this; n > 0n; d = d.double(), n >>= 1n) { // double-and-add ladder + if (n & 1n) + p = p.add(d); // if bit is present, add to point + else if (safe) + f = f.add(d); // if not, add to fake for timing safety + } + return p; + } + multiply(scalar) { return this.mul(scalar); } // Aliases for compatibilty + clearCofactor() { return this.mul(BigInt(CURVE.h), false); } // multiply by cofactor + isSmallOrder() { return this.clearCofactor().is0(); } // check if P is small order + isTorsionFree() { + let p = this.mul(N / 2n, false).double(); // ensures the point is not "bad". + if (N % 2n) + p = p.add(this); // P^(N+1) // P*N == (P*(N/2))*2+P + return p.is0(); + } + /** converts point to 2d xy affine point. (x, y, z, t) ∋ (x=x/z, y=y/z, t=xy). */ + toAffine() { + const { ex: x, ey: y, ez: z } = this; + if (this.equals(I)) + return { x: 0n, y: 1n }; // fast-path for zero point + const iz = invert(z, P); // z^-1: invert z + if (M(z * iz) !== 1n) + err('invalid inverse'); // (z * z^-1) must be 1, otherwise bad math + return { x: M(x * iz), y: M(y * iz) }; // x = x*z^-1; y = y*z^-1 + } + toRawBytes() { + const { x, y } = this.toAffine(); // convert to affine 2d point + const b = n2b_32LE(y); // encode number to 32 bytes + b[31] |= x & 1n ? 0x80 : 0; // store sign in first LE byte + return b; + } + toHex() { return b2h(this.toRawBytes()); } // encode to hex string +} +/** Generator / Base point */ +Point.BASE = new Point(Gx, Gy, 1n, M(Gx * Gy)); +/** Identity / Zero point */ +Point.ZERO = new Point(0n, 1n, 1n, 0n); +const { BASE: G, ZERO: I } = Point; // Generator, identity points +const padh = (num, pad) => num.toString(16).padStart(pad, '0'); +const b2h = (b) => Array.from(au8(b)).map(e => padh(e, 2)).join(''); // bytes to hex +const C = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 }; // ASCII characters +const _ch = (ch) => { + if (ch >= C._0 && ch <= C._9) + return ch - C._0; // '2' => 50-48 + if (ch >= C.A && ch <= C.F) + return ch - (C.A - 10); // 'B' => 66-(65-10) + if (ch >= C.a && ch <= C.f) + return ch - (C.a - 10); // 'b' => 98-(97-10) + return; +}; +const h2b = (hex) => { + const e = 'hex invalid'; + if (!isS(hex)) + return err(e); + const hl = hex.length, al = hl / 2; + if (hl % 2) + return err(e); + const array = u8n(al); + for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) { // treat each char as ASCII + const n1 = _ch(hex.charCodeAt(hi)); // parse first char, multiply it by 16 + const n2 = _ch(hex.charCodeAt(hi + 1)); // parse second char + if (n1 === undefined || n2 === undefined) + return err(e); + array[ai] = n1 * 16 + n2; // example: 'A9' => 10*16 + 9 + } + return array; +}; +const n2b_32LE = (num) => h2b(padh(num, 32 * 2)).reverse(); // number to bytes LE +const b2n_LE = (b) => BigInt('0x' + b2h(u8n(au8(b)).reverse())); // bytes LE to num +const concatB = (...arrs) => { + const r = u8n(arrs.reduce((sum, a) => sum + au8(a).length, 0)); // create u8a of summed length + let pad = 0; // walk through each array, + arrs.forEach(a => { r.set(a, pad); pad += a.length; }); // ensure they have proper type + return r; +}; +const invert = (num, md) => { + if (num === 0n || md <= 0n) + err('no inverse n=' + num + ' mod=' + md); // no neg exponent for now + let a = M(num, md), b = md, x = 0n, y = 1n, u = 1n, v = 0n; + while (a !== 0n) { // uses euclidean gcd algorithm + const q = b / a, r = b % a; // not constant-time + const m = x - u * q, n = y - v * q; + b = a, a = r, x = u, y = v, u = m, v = n; + } + return b === 1n ? M(x, md) : err('no inverse'); // b is gcd at this point +}; +const pow2 = (x, power) => { + let r = x; + while (power-- > 0n) { + r *= r; + r %= P; + } + return r; +}; +const pow_2_252_3 = (x) => { + const x2 = (x * x) % P; // x^2, bits 1 + const b2 = (x2 * x) % P; // x^3, bits 11 + const b4 = (pow2(b2, 2n) * b2) % P; // x^(2^4-1), bits 1111 + const b5 = (pow2(b4, 1n) * x) % P; // x^(2^5-1), bits 11111 + const b10 = (pow2(b5, 5n) * b5) % P; // x^(2^10) + const b20 = (pow2(b10, 10n) * b10) % P; // x^(2^20) + const b40 = (pow2(b20, 20n) * b20) % P; // x^(2^40) + const b80 = (pow2(b40, 40n) * b40) % P; // x^(2^80) + const b160 = (pow2(b80, 80n) * b80) % P; // x^(2^160) + const b240 = (pow2(b160, 80n) * b80) % P; // x^(2^240) + const b250 = (pow2(b240, 10n) * b10) % P; // x^(2^250) + const pow_p_5_8 = (pow2(b250, 2n) * x) % P; // < To pow to (p+3)/8, multiply it by x. + return { pow_p_5_8, b2 }; +}; +const RM1 = 19681161376707505956807079304988542015446066515923890162744021073123829784752n; // √-1 +const uvRatio = (u, v) => { + const v3 = M(v * v * v); // v³ + const v7 = M(v3 * v3 * v); // v⁷ + const pow = pow_2_252_3(u * v7).pow_p_5_8; // (uv⁷)^(p-5)/8 + let x = M(u * v3 * pow); // (uv³)(uv⁷)^(p-5)/8 + const vx2 = M(v * x * x); // vx² + const root1 = x; // First root candidate + const root2 = M(x * RM1); // Second root candidate; RM1 is √-1 + const useRoot1 = vx2 === u; // If vx² = u (mod p), x is a square root + const useRoot2 = vx2 === M(-u); // If vx² = -u, set x <-- x * 2^((p-1)/4) + const noRoot = vx2 === M(-u * RM1); // There is no valid root, vx² = -u√-1 + if (useRoot1) + x = root1; + if (useRoot2 || noRoot) + x = root2; // We return root2 anyway, for const-time + if ((M(x) & 1n) === 1n) + x = M(-x); // edIsNegative + return { isValid: useRoot1 || useRoot2, value: x }; +}; +const modL_LE = (hash) => M(b2n_LE(hash), N); // modulo L; but little-endian +let _shaS; +const sha512a = (...m) => etc.sha512Async(...m); // Async SHA512 +const sha512s = (...m) => // Sync SHA512, not set by default + typeof _shaS === 'function' ? _shaS(...m) : err('etc.sha512Sync not set'); +const hash2extK = (hashed) => { + const head = hashed.slice(0, 32); // slice creates a copy, unlike subarray + head[0] &= 248; // Clamp bits: 0b1111_1000, + head[31] &= 127; // 0b0111_1111, + head[31] |= 64; // 0b0100_0000 + const prefix = hashed.slice(32, 64); // private key "prefix" + const scalar = modL_LE(head); // modular division over curve order + const point = G.mul(scalar); // public key point + const pointBytes = point.toRawBytes(); // point serialized to Uint8Array + return { head, prefix, scalar, point, pointBytes }; +}; +// RFC8032 5.1.5; getPublicKey async, sync. Hash priv key and extract point. +const getExtendedPublicKeyAsync = (priv) => sha512a(toU8(priv, 32)).then(hash2extK); +const getExtendedPublicKey = (priv) => hash2extK(sha512s(toU8(priv, 32))); +/** Creates 32-byte ed25519 public key from 32-byte private key. Async. */ +const getPublicKeyAsync = (priv) => getExtendedPublicKeyAsync(priv).then(p => p.pointBytes); +/** Creates 32-byte ed25519 public key from 32-byte private key. To use, set `etc.sha512Sync` first. */ +const getPublicKey = (priv) => getExtendedPublicKey(priv).pointBytes; +function hashFinish(asynchronous, res) { + if (asynchronous) + return sha512a(res.hashable).then(res.finish); + return res.finish(sha512s(res.hashable)); +} +const _sign = (e, rBytes, msg) => { + const { pointBytes: P, scalar: s } = e; + const r = modL_LE(rBytes); // r was created outside, reduce it modulo L + const R = G.mul(r).toRawBytes(); // R = [r]B + const hashable = concatB(R, P, msg); // dom2(F, C) || R || A || PH(M) + const finish = (hashed) => { + const S = M(r + modL_LE(hashed) * s, N); // S = (r + k * s) mod L; 0 <= s < l + return au8(concatB(R, n2b_32LE(S)), 64); // 64-byte sig: 32b R.x + 32b LE(S) + }; + return { hashable, finish }; +}; +/** Signs message (NOT message hash) using private key. Async. */ +const signAsync = async (msg, privKey) => { + const m = toU8(msg); // RFC8032 5.1.6: sign msg with key async + const e = await getExtendedPublicKeyAsync(privKey); // pub,prfx + const rBytes = await sha512a(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M)) + return hashFinish(true, _sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature +}; +/** Signs message (NOT message hash) using private key. To use, set `etc.sha512Sync` first. */ +const sign = (msg, privKey) => { + const m = toU8(msg); // RFC8032 5.1.6: sign msg with key sync + const e = getExtendedPublicKey(privKey); // pub,prfx + const rBytes = sha512s(e.prefix, m); // r = SHA512(dom2(F, C) || prefix || PH(M)) + return hashFinish(false, _sign(e, rBytes, m)); // gen R, k, S, then 64-byte signature +}; +const dvo = { zip215: true }; +const _verify = (sig, msg, pub, opts = dvo) => { + sig = toU8(sig, 64); // Signature hex str/Bytes, must be 64 bytes + msg = toU8(msg); // Message hex str/Bytes + pub = toU8(pub, 32); + const { zip215 } = opts; // switch between zip215 and rfc8032 verif + let A, R, s, SB, hashable = new Uint8Array(); + try { + A = Point.fromHex(pub, zip215); // public key A decoded + R = Point.fromHex(sig.slice(0, 32), zip215); // 0 <= R < 2^256: ZIP215 R can be >= P + s = b2n_LE(sig.slice(32, 64)); // Decode second half as an integer S + SB = G.mul(s, false); // in the range 0 <= s < L + hashable = concatB(R.toRawBytes(), A.toRawBytes(), msg); // dom2(F, C) || R || A || PH(M) + } + catch (error) { } + const finish = (hashed) => { + if (SB == null) + return false; // false if try-catch catched an error + if (!zip215 && A.isSmallOrder()) + return false; // false for SBS: Strongly Binding Signature + const k = modL_LE(hashed); // decode in little-endian, modulo L + const RkA = R.add(A.mul(k, false)); // [8]R + [8][k]A' + return RkA.add(SB.negate()).clearCofactor().is0(); // [8][S]B = [8]R + [8][k]A' + }; + return { hashable, finish }; +}; +// RFC8032 5.1.7: verification async, sync +/** Verifies signature on message and public key. Async. */ +const verifyAsync = async (s, m, p, opts = dvo) => hashFinish(true, _verify(s, m, p, opts)); +/** Verifies signature on message and public key. To use, set `etc.sha512Sync` first. */ +const verify = (s, m, p, opts = dvo) => hashFinish(false, _verify(s, m, p, opts)); +const cr = () => // We support: 1) browsers 2) node.js 19+ + typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined; +/** Math, hex, byte helpers. Not in `utils` because utils share API with noble-curves. */ +const etc = { + bytesToHex: b2h, + hexToBytes: h2b, + concatBytes: concatB, + mod: M, + invert: invert, + randomBytes: (len = 32) => { + const c = cr(); // Can be shimmed in node.js <= 18 to prevent error: + // import { webcrypto } from 'node:crypto'; + // if (!globalThis.crypto) globalThis.crypto = webcrypto; + if (!c || !c.getRandomValues) + err('crypto.getRandomValues must be defined'); + return c.getRandomValues(u8n(len)); + }, + sha512Async: async (...messages) => { + const c = cr(); + const s = c && c.subtle; + if (!s) + err('etc.sha512Async or crypto.subtle must be defined'); + const m = concatB(...messages); + return u8n(await s.digest('SHA-512', m.buffer)); + }, + sha512Sync: undefined, // Actual logic below +}; +Object.defineProperties(etc, { sha512Sync: { + configurable: false, get() { return _shaS; }, set(f) { if (!_shaS) + _shaS = f; }, + } }); +/** ed25519-specific key utilities. */ +const utils = { + getExtendedPublicKeyAsync: getExtendedPublicKeyAsync, + getExtendedPublicKey: getExtendedPublicKey, + randomPrivateKey: () => etc.randomBytes(32), + precompute: (w = 8, p = G) => { p.multiply(3n); w; return p; }, // no-op +}; +const W = 8; // Precomputes-related code. W = window size +const precompute = () => { + const points = []; // 10x sign(), 2x verify(). To achieve this, + const windows = 256 / W + 1; // app needs to spend 40ms+ to calculate + let p = G, b = p; // a lot of points related to base point G. + for (let w = 0; w < windows; w++) { // Points are stored in array and used + b = p; // any time Gx multiplication is done. + points.push(b); // They consume 16-32 MiB of RAM. + for (let i = 1; i < 2 ** (W - 1); i++) { + b = b.add(p); + points.push(b); + } + p = b.double(); // Precomputes don't speed-up getSharedKey, + } // which multiplies user point by scalar, + return points; // when precomputes are using base point +}; +let Gpows = undefined; // precomputes for base point G +const wNAF = (n) => { + // Compared to other point mult methods, + const comp = Gpows || (Gpows = precompute()); // stores 2x less points using subtraction + const neg = (cnd, p) => { let n = p.negate(); return cnd ? n : p; }; // negate + let p = I, f = G; // f must be G, or could become I in the end + const windows = 1 + 256 / W; // W=8 17 windows + const wsize = 2 ** (W - 1); // W=8 128 window size + const mask = BigInt(2 ** W - 1); // W=8 will create mask 0b11111111 + const maxNum = 2 ** W; // W=8 256 + const shiftBy = BigInt(W); // W=8 8 + for (let w = 0; w < windows; w++) { + const off = w * wsize; + let wbits = Number(n & mask); // extract W bits. + n >>= shiftBy; // shift number by W bits. + if (wbits > wsize) { + wbits -= maxNum; + n += 1n; + } // split if bits > max: +224 => 256-32 + const off1 = off, off2 = off + Math.abs(wbits) - 1; // offsets, evaluate both + const cnd1 = w % 2 !== 0, cnd2 = wbits < 0; // conditions, evaluate both + if (wbits === 0) { + f = f.add(neg(cnd1, comp[off1])); // bits are 0: add garbage to fake point + } + else { // ^ can't add off2, off2 = I + p = p.add(neg(cnd2, comp[off2])); // bits are 1: add to result point + } + } + return { p, f }; // return both real and fake points for JIT +}; // !! you can disable precomputes by commenting-out call of the wNAF() inside Point#mul() +export { getPublicKey, getPublicKeyAsync, sign, verify, // Remove the export to easily use in REPL +signAsync, verifyAsync, CURVE, etc, utils, Point as ExtendedPoint }; // envs like browser console diff --git a/tests/wpt/tests/fs/script-tests/FileSystemDirectoryHandle-removeEntry.js b/tests/wpt/tests/fs/script-tests/FileSystemDirectoryHandle-removeEntry.js index 4193839e2c1..f059ec313f9 100644 --- a/tests/wpt/tests/fs/script-tests/FileSystemDirectoryHandle-removeEntry.js +++ b/tests/wpt/tests/fs/script-tests/FileSystemDirectoryHandle-removeEntry.js @@ -128,3 +128,13 @@ directory_test(async (t, root) => { assert_array_equals(await getSortedDirectoryEntries(root), []); }, 'createWritable after removeEntry succeeds but doesnt recreate the file'); + +directory_test(async (t, root) => { + // root + // ├──file-to-keep + // ├──dir-to-keep + await createFileWithContents('file-to-keep', 'abc', root); + const dir_to_keep = await root.getDirectoryHandle('dir-to-keep', {create: true}); + await promise_rejects_dom( + t, 'NotFoundError', root.removeEntry('dir-to-remove', {recursive: true})); +}, 'removeEntry() on a non-existent directory recursively should throw NotFoundError'); diff --git a/tests/wpt/tests/geolocation/enabled-by-permission-policy-attribute-redirect-on-load.https.sub.html b/tests/wpt/tests/geolocation/enabled-by-permission-policy-attribute-redirect-on-load.https.sub.html index d25afa52bb7..f3cf0bc97e1 100644 --- a/tests/wpt/tests/geolocation/enabled-by-permission-policy-attribute-redirect-on-load.https.sub.html +++ b/tests/wpt/tests/geolocation/enabled-by-permission-policy-attribute-redirect-on-load.https.sub.html @@ -2,6 +2,8 @@ + + - - - + + + + + + promise_test(async (test) => { + await test_feature_availability( + "Geolocation", + test, + same_origin_src, + expect_feature_available_default, + "geolocation" + ); + }, 'Permissions policy "geolocation" can be enabled in same-origin iframe using allow="geolocation" attribute'); + + promise_test(async (test) => { + await test_feature_availability( + "Geolocation", + test, + cross_origin_src, + expect_feature_available_default, + "geolocation" + ); + }, 'Permissions policy "geolocation" can be enabled in cross-origin iframe using allow="geolocation" attribute'); + diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.decimal.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.decimal.html index 0de11e235dc..5e1bd8b57f5 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.decimal.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.decimal.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.decimal diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.em.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.em.html index 315c8323fa2..529837c756a 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.em.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.em.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.em diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.empty.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.empty.html index b9568712e71..e1d83b69951 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.empty.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.empty.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.empty diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.exp.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.exp.html index 208ddeceeb0..ddc929039f0 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.exp.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.exp.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.exp diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.hex.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.hex.html index 05f7030d47f..50f15542166 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.hex.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.hex.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.hex diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.junk.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.junk.html index 3a55fd13dd0..092c701a6cc 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.junk.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.junk.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.junk diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.minus.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.minus.html index da5f21ad045..beba35fd3b3 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.minus.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.minus.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.minus diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.octal.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.octal.html index ccc7efaafa9..c1dc1217ec2 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.octal.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.octal.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.octal diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.onlyspace.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.onlyspace.html index da14fa25c0f..ef8e1790c3e 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.onlyspace.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.onlyspace.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.onlyspace diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.percent.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.percent.html index d699288f73f..205a2fb8113 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.percent.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.percent.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.percent diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.plus.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.plus.html index 58fb07f1794..08e2f150186 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.plus.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.plus.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.plus diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.space.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.space.html index 52fadaad431..fe496f3f68a 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.space.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.space.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.space diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html index b18167c5991..15013d18e0b 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.trailingjunk diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.whitespace.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.whitespace.html index 79e81c1020a..d5726e0f06c 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.whitespace.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.whitespace.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.whitespace diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.zero.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.zero.html index b7fd499d1fb..b492ecb54a4 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.zero.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.parse.zero.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.parse.zero diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.decimal.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.decimal.html index b6c2130bf0a..76e5a733b70 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.decimal.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.decimal.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.decimal diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.em.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.em.html index f70713fd8f6..8048c092abf 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.em.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.em.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.em diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.empty.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.empty.html index fab2394fec2..674831707a6 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.empty.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.empty.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.empty diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.exp.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.exp.html index cfa11eb302f..6fc087fb91a 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.exp.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.exp.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.exp diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.hex.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.hex.html index 80a1fbda602..a7deb1f1473 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.hex.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.hex.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.hex diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.junk.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.junk.html index b583871f38a..be462e236db 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.junk.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.junk.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.junk diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.minus.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.minus.html index 90a31403e10..525b78a22e0 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.minus.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.minus.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.minus diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.octal.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.octal.html index c5b263bd5fa..71fb6cd79a8 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.octal.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.octal.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.octal diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.onlyspace.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.onlyspace.html index ac4cdb001b9..62724d95d03 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.onlyspace.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.onlyspace.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.onlyspace diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.percent.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.percent.html index 5aebf5a0b11..7781f412370 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.percent.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.percent.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.percent diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.plus.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.plus.html index 60da44daf32..d979cc9d866 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.plus.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.plus.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.plus diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.space.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.space.html index fbfd4c33c04..d15e666c3c9 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.space.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.space.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.space diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.trailingjunk.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.trailingjunk.html index 1d230bd654b..a40c20ac2a3 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.trailingjunk.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.trailingjunk.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.trailingjunk diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.whitespace.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.whitespace.html index 1aa86d6a9eb..646052cdc52 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.whitespace.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.whitespace.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.whitespace diff --git a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.zero.html b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.zero.html index 64b4811d79a..44b6ce37a09 100644 --- a/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.zero.html +++ b/tests/wpt/tests/html/canvas/element/canvas-host/2d.canvas.host.size.attributes.setAttribute.zero.html @@ -1,5 +1,6 @@ + Canvas test: 2d.canvas.host.size.attributes.setAttribute.zero diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.clear.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.clear.html index cb805b692e2..fbb7adbbb92 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.clear.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.clear.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.clear diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.copy.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.copy.html index d4e75b7bacf..a769d1fa61c 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.copy.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.copy.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.copy diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-atop.html index 6fded39e44f..c285bfe3893 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.destination-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-in.html index 7277286d8bf..7089c30a0d7 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.destination-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-out.html index 5860c3d5cb2..75db37c67f6 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.destination-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-over.html index 76bad843929..af0e0488a2a 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.destination-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.destination-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.lighter.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.lighter.html index 8d706df67e7..9dfb7592ab9 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.lighter.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.lighter.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.lighter diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-atop.html index cf3e449123b..120cd64ce7a 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.source-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-in.html index dabcced9dd3..342413686d6 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.source-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-out.html index 2fcf7087963..f82e45775cf 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.source-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-over.html index b9dca65744e..44b30c0fdd8 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.source-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.source-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.xor.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.xor.html index c252e17a7ed..b55a605ea4f 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.xor.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.canvas.xor.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.canvas.xor diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.clear.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.clear.html index 65cfd951e81..0c353f5d6b3 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.clear.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.clear.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.clear diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.copy.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.copy.html index b38397a2c7d..afc73376ccb 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.copy.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.copy.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.copy diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-atop.html index 79fb3af54c2..82e6e1a9ceb 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.destination-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-in.html index 63e8d3acfde..519dec749a4 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.destination-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-out.html index 839246427f7..95c6be78467 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.destination-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-over.html index fc7f1ab7286..f3b83e30f98 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.destination-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.destination-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.lighter.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.lighter.html index b3acab02315..87ddf286572 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.lighter.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.lighter.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.lighter diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-atop.html index 49c3eb0bb56..be9ccbdad4b 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.source-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-in.html index afe92ba4bf7..e1837904637 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.source-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-out.html index 43b352fb466..e943a7eb21d 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.source-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-over.html index 4973f8e6e60..fa5054311c2 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.source-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.source-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.xor.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.xor.html index 5239d6fd105..3464088c48e 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.xor.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.clip.xor.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.clip.xor diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.clear.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.clear.html index a44f8e35b02..1a562e27404 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.clear.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.clear.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.clear diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.copy.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.copy.html index d3c972b6d22..809b8e37bb4 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.copy.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.copy.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.copy diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-atop.html index 7c6f93448bb..b23f9fab42b 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.destination-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-in.html index a2bf972bb90..707d3e17536 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.destination-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-out.html index d0d08fa09ea..7bbc3c14c29 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.destination-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-over.html index 7ac98904f3b..88290edf8e9 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.destination-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.destination-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.lighter.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.lighter.html index 1df4c683dfa..c5f35859c77 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.lighter.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.lighter.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.lighter diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-atop.html index 86833df6b2b..204365b2453 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.source-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-in.html index 0b6ca4b52e3..c14a5d31b13 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.source-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-out.html index 31dfe471e53..ccc1b0b5b5e 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.source-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-over.html index e396faa5d7c..e9250a35149 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.source-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.source-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.xor.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.xor.html index d43742c272f..df435be55ab 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.xor.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.image.xor.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.image.xor diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.clear.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.clear.html index a9469895445..c396739b07c 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.clear.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.clear.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.clear diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.copy.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.copy.html index 14bee744524..ccc94ae9672 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.copy.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.copy.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.copy diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-atop.html index d82fb44cceb..eaff08aad55 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.destination-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-in.html index 6a491f57c74..08cde7a3291 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.destination-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-out.html index bcc7f24e7a5..db3fca47cad 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.destination-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-over.html index 6e634e6ae52..42d5dede7eb 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.destination-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.destination-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.lighter.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.lighter.html index fddbe924207..3efda4a2a73 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.lighter.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.lighter.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.lighter diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-atop.html index 4bb0e3d8b55..23297cf4329 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.source-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-in.html index f8fee40a931..1b240aa03d3 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.source-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-out.html index 2c9d0861820..758c5ec6310 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.source-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-over.html index 335987b12b2..b7b31905a8f 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.source-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.source-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.xor.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.xor.html index d9da43070e1..f4e6dfc467e 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.xor.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.solid.xor.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.solid.xor diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.clear.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.clear.html index de417eea34a..1297f7e02e7 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.clear.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.clear.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.clear diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.copy.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.copy.html index 2048975ec3d..437e9cae0dc 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.copy.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.copy.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.copy diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-atop.html index 1da1f1a4ee0..6c02a6202d9 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.destination-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-in.html index b0f8abe0efe..b052683526f 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.destination-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-out.html index badbfc4ad7a..8c9f95ff651 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.destination-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-over.html index e8e0051b2cb..fa8cf83b3fb 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.destination-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.destination-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.lighter.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.lighter.html index 6e4c42ab9a3..2670d9088e7 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.lighter.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.lighter.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.lighter diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-atop.html index d3d3fbda126..79a6f877d73 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.source-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-in.html index 27c66cb6737..58c87ce3ba3 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.source-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-out.html index 31bb6a24033..5f8317ea2b1 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.source-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-over.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-over.html index ee20f52b46d..625d9d047bd 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-over.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.source-over.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.source-over diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.xor.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.xor.html index d1818750dfc..f211f7dd3b4 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.xor.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.transparent.xor.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.transparent.xor diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.copy.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.copy.html index 9dfd650b98d..9f2e3152291 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.copy.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.copy.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.fill.copy diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-atop.html index 685a1395049..cc0fc611386 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.fill.destination-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-in.html index 9ca8021151f..408e80a882b 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.destination-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.fill.destination-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.source-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.source-in.html index 9f1a5f9d51f..259c8c9a1db 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.source-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.source-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.fill.source-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.source-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.source-out.html index 7653677fd5a..7cb73410fe8 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.source-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.fill.source-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.fill.source-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.copy.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.copy.html index 61dd0381eeb..4f8ade8a8ad 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.copy.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.copy.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.image.copy diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.destination-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.destination-atop.html index 440c832c710..d728a4f2fed 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.destination-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.destination-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.image.destination-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.destination-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.destination-in.html index 03e2e807ede..644be0bdb4c 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.destination-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.destination-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.image.destination-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.source-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.source-in.html index de2e5fad63c..8828c42fe20 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.source-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.source-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.image.source-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.source-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.source-out.html index 5cb9b072b90..7bb4734be41 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.source-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.image.source-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.image.source-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.copy.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.copy.html index cac66ade5ac..748ee28b47f 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.copy.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.copy.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.nocontext.copy diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-atop.html index c7cecc2e3db..c46ffbf5ee2 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.nocontext.destination-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-in.html index e090d7d4b4a..87a99786150 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.destination-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.nocontext.destination-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-in.html index 0436b408170..2787477dd05 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.nocontext.source-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-out.html index efbc8ab2f0a..f7047a7733b 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.nocontext.source-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.nocontext.source-out diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.copy.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.copy.html index aaee92022a7..9dd5d0bc6b0 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.copy.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.copy.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.pattern.copy diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-atop.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-atop.html index aded018f8ea..a0637ffb54d 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-atop.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-atop.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.pattern.destination-atop diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-in.html index e520e1ffa36..ed65ba9a057 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.destination-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.pattern.destination-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-in.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-in.html index bee654877bb..cc42f36d59f 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-in.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-in.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.pattern.source-in diff --git a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-out.html b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-out.html index 947893091e9..b192208e5fd 100644 --- a/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-out.html +++ b/tests/wpt/tests/html/canvas/element/compositing/2d.composite.uncovered.pattern.source-out.html @@ -1,5 +1,6 @@ + Canvas test: 2d.composite.uncovered.pattern.source-out diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html index 87b5bc9371a..bdb6b5286b3 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsl-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html index 746c358dbbc..badad04c904 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsl-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html index b8a9cd5a090..683f0c6cdb3 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsl-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html index d5e58b9321f..0576d514a69 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsl-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html index 85bbb802b53..d0e2b37891c 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsl-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html index 154bdcd49a6..aa703a33c17 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsl-6 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html index 5cf81e41a1a..4eeaa954cd9 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsl-7 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html index 17d0782df1b..8e702a6adf5 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsl-8 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html index 2f4b1e8e1a4..ea2c204aef0 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsl-9 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html index bc70e21d621..03d961b1707 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsla-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html index 7f774985319..d02a73077d8 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsla-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html index c33a50a9466..aadf27a9a74 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsla-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html index 3d0cafc66b4..262a4981bc3 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsla-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html index a70613b49fa..693050ae6e7 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsla-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html index 8c46d887ba9..37ad1933a56 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsla-6 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html index b6b4760086b..09ce0e4cc34 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsla-7 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html index 7933d47fd2b..d17be0537c4 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsla-8 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html index 8a4e29d40ea..4cbd8ec9c5e 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-hsla-9 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html index 632b7f57fb5..98a65afdbdd 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgb-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html index 1d3e683b35d..0f5b072ac39 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgb-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html index 8a6f3523509..c636a03a21d 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgb-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html index 1fdf9ecf92d..2cbb25b082c 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgb-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html index a1d99d5e240..c35df147acb 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgb-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html index ad2c5f5484f..d34ac6ffeb5 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgb-6 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html index f394dbfb2ff..1ac620812fc 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgba-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html index 5529bc14627..3f656a7861e 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgba-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html index 82047a5698c..9e2834b8fa6 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgba-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html index 5fea546f104..caaaf7d4c32 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgba-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html index d0485665221..f1221a559bd 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgba-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html index 28feb2eb178..e3471668b4f 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.css-color-4-rgba-6 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html index 017bfc88c25..ae33d37af3a 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hex3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html index c8704edbb26..7e0ad656649 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hex4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html index 9644a46a0c1..65c35e64849 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hex6 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html index b2dd06982d5..222d4fb7de4 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hex8 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html index ceb3da52e0b..f701b2b5069 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsl-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html index 22e67e33d43..c0989837e5a 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsl-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html index e182952fbf9..e8058ed5b3e 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsl-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html index b320c1c98be..e78cebb1846 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsl-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html index 1264f626de6..0f71bcd8bae 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsl-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html index e0fc7875596..84c7a70d7ed 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsl-6 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-negative-saturation.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-negative-saturation.html index 65440c6228e..c6b10917a05 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-negative-saturation.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-negative-saturation.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsl-clamp-negative-saturation diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html index dbc738ffa7e..24a314b3f63 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsla-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html index aa21789b028..e104c75a469 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsla-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-1.html index e5dc98d4e3a..e3d16212eef 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsla-clamp-alpha-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-2.html index 26139a562ee..984bb64758b 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsla-clamp-alpha-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-negative-saturation.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-negative-saturation.html index 2d9b9d3bdf9..3196c3afb20 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-negative-saturation.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-negative-saturation.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.hsla-clamp-negative-saturation diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.html4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.html4.html index 65d0d2020cf..8b86280980a 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.html4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.html4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.html4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html index 4046f825a11..e79888692ab 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html index 2075f8e4598..6318968c285 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html index 53bbf6c7eef..6be62830570 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html index e8be93b59d1..aea149a5891 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html index b8938adeb2e..3fa3ddf9449 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html index 7104ca6a848..9094ec664d6 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsla-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html index c340e7445dd..4fb51d20290 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsla-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html index 3f94ec16ff9..1097b4b9ffb 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-hsla-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html index 69503593fe0..ceb4860f355 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html index 96af643ee80..ad05d50decc 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html index a2691acaf1b..1b20ebe73dd 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html index eb5f56692a6..b9b7ec0e1e9 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html index 7de9dd4911e..ca9dcf83867 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html index 20b889c5ccc..e13d68fe9d8 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgba-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html index 908545cebe6..28e51f648e4 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgba-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html index 851314f6439..86450c08097 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.css-color-4-rgba-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html index 9aba3922760..e5e7bbf2713 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hex1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html index 361db1de43b..db859c9b4b6 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hex2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html index 7df089d840c..9cf0cb692fe 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hex3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html index 6089675b814..0aaeb50c590 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hex4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html index 488daf46902..fa2b14fcf95 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hex5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html index ec0def2e100..161ca0b9c27 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hex6 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html index 2b07b8dc9b9..cafd6ace5b6 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hex7 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html index f886d4a67cb..5b9a1388d17 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hex8 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html index 153f9cb513d..724859ed86e 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hsl-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html index 7a2bd4f930a..e1e4c196915 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hsl-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html index 8ad0f542647..c10c709ca3b 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hsl-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html index 780b83b383e..19170fae39e 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hsl-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html index ad5944f1c0a..b23ff44a6f2 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hsl-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html index 948a9d8a360..4338d04d8dd 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hsl-6 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html index 7a4bdb318f1..c9b330456b9 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hsla-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html index 4164de3bbdc..04bd69232fb 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hsla-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html index 109a22cdf98..23051d1091c 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.hsla-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html index acdd4d4c8ee..6ed9ac9f847 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.name-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html index 292f909bcd3..5836df7b979 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.name-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html index f47ec43f552..dd76fa46c4e 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.name-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html index d15d787f639..45a6c253bb9 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.name-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html index ce391d00696..bf880a87313 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.name-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html index 934f725dd3f..d8b7a125d4b 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.rgb-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html index f92a06b4504..8463bc786ce 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.rgb-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html index 8ebde1782a7..60444830e14 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.rgb-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html index 6e3d135f418..6751fe322c6 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.rgba-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html index a6a61002daf..3b6ea3d3daf 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.rgba-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html index 464d562b2f6..bfb613d7908 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.rgba-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html index 815ce2f8b6b..47f473da015 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.rgba-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html index 33c3e33dfce..50eb15ee1e8 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.invalid.rgba-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html index 0432a3bbd47..0b3268e9d60 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgb-clamp-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html index cf81e3c73f4..d4eda1bc26a 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgb-clamp-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html index b3c609fbee8..ad0d1431f57 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgb-clamp-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html index 60aa8563bdd..bc6ac310ddd 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgb-clamp-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html index 242ca3933db..7071282173e 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgb-clamp-5 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html index 201874c27d5..47845a1491f 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgb-eof diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html index 0ce1db836fc..56f3051c5d6 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgb-num diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html index 9b3de61672a..4e4c5912746 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgb-percent diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html index 587253ad69d..5310bd6738e 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-clamp-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html index 4e8156e60a5..a5e5858891f 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-clamp-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html index 5f07d38b682..fde5dbfe03a 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-eof diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html index 0c329c96ea3..18dc4525fc7 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-num-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html index 384a7f412a7..0d21dc0b4ad 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-num-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html index 60ee007577a..f1eb208365e 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-percent diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html index eaec0debcbb..cc734a59668 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-solid-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html index 947bbbce8d9..8d04a915341 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-solid-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html index 052a12beae5..34a32c99bb0 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-solid-3 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html index ee9cd4e34e1..7f180153328 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.rgba-solid-4 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html index 0ff839b8cb2..b8e3dc00ec4 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.svg-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html index 141f4bfe461..c425f10cdfe 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.svg-2 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.system.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.system.html index 3a56389973c..e286a0185bd 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.system.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.system.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.system diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html index 5b9a834c0b2..c765d2134ab 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.transparent-1 diff --git a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html index a077534c23e..497d0aee3e5 100644 --- a/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html +++ b/tests/wpt/tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html @@ -1,5 +1,6 @@ + Canvas test: 2d.fillStyle.parse.transparent-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.decimal.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.decimal.html index c3fa3b4ba66..c131a9d9a2f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.decimal.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.decimal.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.decimal diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.html index ea6f811b8ff..df6884a5c5e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.em.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.em diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.empty.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.empty.html index d38c159a6e3..7a3fcbc79c9 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.empty.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.empty.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.empty diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.exp.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.exp.html index 2aa8245a49c..5a5886e0456 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.exp.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.exp.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.exp diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.hex.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.hex.html index 4b0e47b53f5..6eb9226f592 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.hex.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.hex.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.hex diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.html index a619651f781..a05a180eb7f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.junk.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.junk diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html index c7f12fdb021..245ffd48d90 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.minus.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.minus diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.octal.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.octal.html index 7bfb7658d4d..8a2b7fc28d0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.octal.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.octal.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.octal diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.onlyspace.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.onlyspace.html index 16dace16ea9..e64771d6e3e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.onlyspace.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.onlyspace.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.onlyspace diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.html index 040a775ec7a..ea887975670 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.percent.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.percent diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.plus.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.plus.html index 50c8467e2cd..a00845dcbbf 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.plus.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.plus.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.plus diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.space.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.space.html index cb1f3ae840a..0f3037f5728 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.space.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.space.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.space diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html index 8d8d481aefa..ed1b3de11e2 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.trailingjunk.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.trailingjunk diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.whitespace.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.whitespace.html index f6e29d6cb61..413d81f7401 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.whitespace.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.whitespace.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.whitespace diff --git a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.zero.html b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.zero.html index 07e924a6030..0506f13d8d0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.zero.html +++ b/tests/wpt/tests/html/canvas/offscreen/canvas-host/2d.canvas.host.size.attributes.parse.zero.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.canvas.host.size.attributes.parse.zero diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.clear.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.clear.html index eac9dbdef9a..72dc4bb6947 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.clear.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.clear.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.clear diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.copy.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.copy.html index 7c9771c10f9..cfc5a33de1b 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.copy.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.copy.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.copy diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.html index d9c34ded0ba..3a1f86c8ed9 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.destination-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.html index 9c1a8dbf471..c8480a961dc 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.destination-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.html index 10c5baf4850..f35bc25e419 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.destination-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.html index 0e2ece9eabd..676b43608d9 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.destination-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.html index 392bb855f6f..4c913506faf 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.lighter.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.lighter diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.html index f7d4da4d841..f6e03874001 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.source-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.html index 69e57e2578f..ea7acd8bbbc 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.source-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.html index eb9dbd0810a..7b2de941de1 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.source-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.html index 98629de8a4d..fe833737eef 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.source-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.source-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.xor.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.xor.html index bc69c8a08b7..d89e6de267f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.xor.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.canvas.xor.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.canvas.xor diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.clear.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.clear.html index f0e9989cce4..ba555feeb94 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.clear.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.clear.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.clear diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.copy.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.copy.html index 2471cd7edd1..061a2560034 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.copy.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.copy.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.copy diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.html index efb5e7ab6d8..19b05ef098a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.destination-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.html index bc467a1d994..f57414616d5 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.destination-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.html index 674ec3aeb81..bdf8c7bc905 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.destination-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.html index 6abd0af788e..4c484b667df 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.destination-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.destination-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.lighter.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.lighter.html index 00782a683e1..8a1ed3f2149 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.lighter.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.lighter.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.lighter diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.html index a7dc6a3bc8a..0bc3e975e29 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.source-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-in.html index 3f24076161a..f91862bf707 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.source-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-out.html index 4033893b2b6..b93ebf368d0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.source-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-over.html index 5b48161c659..90125c003a1 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.source-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.source-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.xor.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.xor.html index 0156e4a2ef2..d35b53c9e44 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.xor.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.clip.xor.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.clip.xor diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.clear.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.clear.html index f001c4409c3..2582a6bfaf0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.clear.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.clear.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.clear diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.copy.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.copy.html index d472a0682d3..d0fe687a1df 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.copy.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.copy.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.copy diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.html index 753c460ec6a..78d352ea6e5 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.destination-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-in.html index df9f1ae786e..8f8e188a950 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.destination-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-out.html index 6981ca1d727..410a019ec7a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.destination-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-over.html index 33601151332..c9e33da8855 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.destination-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.destination-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.lighter.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.lighter.html index 25f2a7684a8..15176dc3666 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.lighter.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.lighter.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.lighter diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-atop.html index cfa386cfd1d..9d8b850972e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.source-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-in.html index cc44706b1c7..1d63fc17df1 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.source-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-out.html index bc2f7f26339..5ab29d018f0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.source-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-over.html index 88a8176f7e2..55ad292bf39 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.source-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.source-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.xor.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.xor.html index ef149b2f996..edc42d5b057 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.xor.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.image.xor.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.image.xor diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.clear.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.clear.html index 9bb03097fca..69f7b82e810 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.clear.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.clear.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.clear diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.copy.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.copy.html index a5bcda93370..f278e2fe8da 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.copy.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.copy.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.copy diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.html index c5554ff240b..ed04124ca5d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.destination-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.html index 8e620e2714e..4c605eac357 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.destination-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.html index 06da4d36500..7a940b0c8fb 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.destination-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.html index e62c3fea702..ff642c195a3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.destination-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.destination-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.lighter.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.lighter.html index 2e09805cc14..b8554d41125 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.lighter.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.lighter.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.lighter diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.html index dd36e0e6220..ec9da02c633 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.source-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-in.html index 83dcc8e523f..75a902485fb 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.source-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-out.html index 3067c44fcdf..ec039f1604a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.source-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-over.html index 059655334f3..4f219fd855e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.source-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.xor.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.xor.html index 822c9c70d13..dac3766d645 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.xor.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.solid.xor.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.solid.xor diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.clear.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.clear.html index 81d781acc75..1dcf7cb1b87 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.clear.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.clear.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.clear diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.copy.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.copy.html index ab3a97226f4..55b60df42ad 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.copy.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.copy.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.copy diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.html index 5e580f5a670..82740c37fe5 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.destination-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.html index 9f0ec56357d..019f1f8223d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.destination-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.html index a1abe3eed91..7c711886655 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.destination-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.html index 4f0305f27f3..b0d2af35c05 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.destination-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.destination-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.html index 6a2f5df71f6..61cf66d03ed 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.lighter.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.lighter diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.html index bac035cea3e..dacd508f180 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.source-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.html index 5dd67046ed4..db3b49d5558 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.source-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.html index 56b1d4ad463..226039c6b74 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.source-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.html index f038d44a543..02e0ace76c3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.source-over.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.source-over diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.xor.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.xor.html index bbab8a086c0..fcb1f779578 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.xor.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.transparent.xor.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.transparent.xor diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.html index 0ff9d851dd4..62d9b685c4f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.copy.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.fill.copy diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.html index 2d2f92edb5f..07c87f8dacb 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.fill.destination-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.html index 5670b321a66..badd413134f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.destination-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.fill.destination-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.html index 58347442bde..80c77bd45a8 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.fill.source-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.html index ea44ca4f044..05a3b9620ef 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.fill.source-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.fill.source-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.html index 0ecb5ed01df..4311bb39003 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.copy.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.image.copy diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.html index 00a4465d0b9..6453ff3c572 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.image.destination-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html index f5f8c68c51b..aebd6f86d81 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.image.destination-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.html index 2e1fe84b608..95d23038a8b 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.image.source-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.html index 1f5be066eec..573ab8acdb0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.source-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.image.source-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.html index 10a9960559b..50243ce401d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.copy.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.nocontext.copy diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.html index ead1299cf0d..0c4e8cbf3e2 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.nocontext.destination-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.html index 0322bfe2584..0258ed830ba 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.destination-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.nocontext.destination-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.html index 0d93a0362e6..1f081e433a2 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.nocontext.source-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.html index b6ab8cbda4b..93fdb52bded 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.nocontext.source-out diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.html index c698c2517c8..bf15282f873 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.copy.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.pattern.copy diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.html index 887570fad74..015d6b6c8d1 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-atop.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.pattern.destination-atop diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.html index 7aa9e662f66..2747f851a5b 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.destination-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.pattern.destination-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.html index 3830e92f69e..edcd6bf6a2b 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-in.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.pattern.source-in diff --git a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.html b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.html index 3c202dd5568..35e7b589ea9 100644 --- a/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.html +++ b/tests/wpt/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.pattern.source-out.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.composite.uncovered.pattern.source-out diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html index 222d7f6077a..a3f2d6407d0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsl-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html index b2c93c1e260..1a463fde015 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsl-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html index fc8726904ce..c8259c64a76 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsl-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html index 71cb327c5f8..76cdabe39cd 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsl-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html index 787d5e7644b..302a4d6eee3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsl-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html index 8acc67f968e..5aa69c4c1cd 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-6.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsl-6 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html index dc295d070a6..08d700b4023 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-7.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsl-7 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html index 50970585ca0..cb0d0f7873f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-8.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsl-8 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html index 47cd157c44d..4d8c741020b 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsl-9.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsl-9 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html index 2d1e46f1a94..e6ef6dbfa73 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsla-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html index f5531f68e1d..62e6435055f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsla-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html index fde2328c438..e0a860cde6f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsla-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html index 3b6e1f1347d..efc6760a83f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsla-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html index b0677c16dce..25ceb2fd00e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsla-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html index 809d11c4cd9..578e37e607a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-6.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsla-6 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html index 48c3c6927e7..728f90d224d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-7.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsla-7 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html index f49b313a1f1..714569f2d94 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-8.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsla-8 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html index 68c4e224a2d..5016f84a7bb 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-9.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-hsla-9 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html index c9d75ca5c60..ad28d26d31e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgb-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html index 0acc23ef950..0fc785eb96e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgb-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html index 85c2606c982..e06440a4d48 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgb-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html index e028260ee53..3368cecd9f5 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgb-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html index 51ace916b11..e23e7b98c2a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgb-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html index 6df2f914e83..2632706b8e1 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgb-6.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgb-6 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html index 19d726ee3b5..85cb76d8e59 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgba-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html index 1603ae93abe..981213a6e9a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgba-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html index 53ad71781af..87d19dafaf9 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgba-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html index 3dc9f9c7a77..1aec9f78073 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgba-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html index db0e891f22c..aa3cea6ca01 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgba-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html index c4ec4622a5a..0e02f2683e7 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-rgba-6.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.css-color-4-rgba-6 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html index 90c4d4f5d7a..a536ae57f4a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hex3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html index 8a6260fa891..3e788a73ad2 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hex4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html index 02f698ea30f..162ec89689c 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex6.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hex6 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html index 1563bab113b..7be693fea2a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex8.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hex8 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html index 96e6515a61d..c057f4f1c00 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsl-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html index b6f8f2bb76a..ff1258ac94d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsl-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html index 5ed3b96b9bd..2a6e4588f70 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsl-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html index f91edd75bf1..fffe940e931 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsl-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html index c4624da0c9d..49a274e5343 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsl-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html index 5baa5b3b006..76a42ad8556 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-6.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsl-6 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-negative-saturation.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-negative-saturation.html index 69277677b96..4165c09778c 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-negative-saturation.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsl-clamp-negative-saturation.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsl-clamp-negative-saturation diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html index 67a65da730e..0ce6677b497 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsla-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html index c63fac5dd60..6b0fbadcb4d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsla-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-1.html index 5d73d34c9c6..38baff217b3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsla-clamp-alpha-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-2.html index eaf7a6af89c..38c2b0158a7 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-alpha-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsla-clamp-alpha-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-negative-saturation.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-negative-saturation.html index 04749fb4a79..f3df5ae6c77 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-negative-saturation.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-negative-saturation.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.hsla-clamp-negative-saturation diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.html index fc1c1af18b4..66f439255f7 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.html4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.html4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html index 3edffc6d93a..2b6482a7db2 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html index 477b318f416..e112313e081 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html index e2092666c6b..1c4f25e5bad 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html index 5bcc1755b04..47e292fe2cc 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html index ba465408028..07dc1875cb4 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-hsl-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html index a5f8f3fe9ca..2d95b050fc1 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-hsla-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html index bd543220d0d..71e7c690dd5 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-hsla-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html index e33b9415b24..0ae09a5f273 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsla-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-hsla-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html index 8fbbc7ae513..0735285518a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html index adc82974889..f56e5e86772 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html index 4d385d56ccc..adf4bd002e9 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html index 6b855b4357e..481c96984f3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html index 13fadb9a245..5fcb82e9c1c 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgb-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-rgb-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html index 5353f77b8fd..02e1f8dfe28 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-rgba-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html index aaa555aa050..e4c909f2c88 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-rgba-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html index e8c05888519..d8e4d9547da 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.css-color-4-rgba-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html index 28a7ff47396..1dcb851a530 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hex1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html index 0dcf0f8282f..12116de2bef 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hex2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html index 8e1bd9fa0f3..0f3c01d6ba6 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hex3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html index f59991d3170..63d62250b3c 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hex4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html index 9567114a13d..416e9bfa5a3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hex5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html index b36d0c86545..4653e58524b 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex6.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hex6 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html index 5b38e7873f8..dc650566412 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex7.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hex7 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html index 1eda0c74a19..77f150d97f7 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex8.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hex8 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html index 9ff3c68fe2c..3b6a8ca1b35 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hsl-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html index 46fac5fd400..932626cbaa4 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hsl-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html index 1f05e8d9442..b721588d72f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hsl-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html index dd2cec79770..a02de5c04c8 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hsl-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html index 909e230b16d..1d00de2e93d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hsl-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html index 9bb652c0763..c36817f3b45 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsl-6.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hsl-6 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html index 9b553c669d3..5362f4726a3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hsla-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html index d894bc42fd7..86b77558563 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hsla-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html index 8901a112b22..8faaa595afb 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hsla-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.hsla-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html index ceb6c53a839..4b3877354e8 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.name-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html index 684a6655749..335b4da516b 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.name-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html index ebf508f464e..506e0ab5263 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.name-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html index ba1f71b123d..6df03a79e9a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.name-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html index a889a387af9..a4f393bcc7f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.name-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html index e1fb32a179f..4a2fb7c7e4b 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.rgb-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html index 54d7daf999f..fb40d0ed819 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.rgb-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html index 9874fc6f743..dff626a0676 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgb-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.rgb-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html index fbfa4baef26..b8cf07f7d94 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.rgba-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html index 43cd1763c1c..d828425650d 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.rgba-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html index 96955226a53..ea7332e5e37 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.rgba-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html index 9334d693abf..afdb2d8400f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.rgba-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html index 7b53652a945..a1206519541 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.rgba-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.invalid.rgba-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html index c9e9e4c4130..8f3a1e06445 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgb-clamp-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html index 98df8d67e4d..41d06f23ba6 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgb-clamp-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html index 70f5ed05f6f..60cddd6929e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgb-clamp-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html index 1f387998e0d..8d3a767191e 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgb-clamp-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html index c2ac0b94d2d..3b4f6294ca9 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-5.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgb-clamp-5 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html index 2979d7da987..7361ea9a8a9 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-eof.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgb-eof diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html index 67ba77f3e38..ac52aaf9b6a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-num.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgb-num diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html index 8fe3be55ed2..62cd80f2ecf 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-percent.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgb-percent diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html index af3acb95e94..636f00f01e5 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-clamp-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html index 32ee9798941..6409156634f 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-clamp-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-clamp-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html index baa42cde181..25e29f7dccb 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-eof.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-eof diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html index eaa83e18015..b71f403675a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-num-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html index 47bf3ddceda..9cc37efcac2 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-num-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-num-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html index 068befd9b43..8ea3f8f71c8 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-percent diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html index 0e58836e5df..7debab00d25 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-solid-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html index 8da29eeffbf..923bcc9c9d3 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-solid-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html index e67374c541e..a26c984fab2 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-3.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-solid-3 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html index 777aacea70f..eb10244fce0 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-solid-4.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.rgba-solid-4 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html index 8dc6844ae9f..94f8128c3f6 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.svg-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html index 28335650067..4eb996357af 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.svg-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.svg-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.html index 6e124062b1e..28d8f96e4c2 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.system.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.system diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html index a595d70bc06..d5dffedb177 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-1.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.transparent-1 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html index 0f2a7e06092..2d345a5ba2a 100644 --- a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html +++ b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.transparent-2.html @@ -1,5 +1,6 @@ + OffscreenCanvas test: 2d.fillStyle.parse.transparent-2 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.png b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.alpha.png deleted file mode 100644 index af5ac0f07d64e7598e0ea6a8e37cff2a5c4ea2a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LT6FglU zLoyoQURcO`z<`J0pxWK~CoZY1u9bJJ6HadOse5C4ZP)jC@Bgf6UvB^BTz7I3D{UeF Y@z2LoPWv7V1-gyF)78&qol`;+0HX3iT>t<8 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.png b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.color.png deleted file mode 100644 index af5ac0f07d64e7598e0ea6a8e37cff2a5c4ea2a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 219 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LT6FglU zLoyoQURcO`z<`J0pxWK~CoZY1u9bJJ6HadOse5C4ZP)jC@Bgf6UvB^BTz7I3D{UeF Y@z2LoPWv7V1-gyF)78&qol`;+0HX3iT>t<8 diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.png b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.coloralpha.png deleted file mode 100644 index 552e6ee44b1a3bed7d474e198e7cf1ed3a1be5cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!3HE(nbz$CQfx`y?k)`fL2$v|<&zm07#%%b z978JRyuG-w?~s8&OJeo0h7#GUd;fC>F$SG@_p6J6@ugfs*Uwo~=Vqk7d|$lnUQ}{6 z@9jTFpKkh8+iqq4vCR|EL{D^Cms+KJa{{If{lW3kHiWl#-zvtS_ysz!V%Y* zqhGIi)giHl$>`_2V!jl!b=sEd6Ft*}LVwIEE=v;C1=_Xh|>EE_Q*`gh>z~E)@boFyt=akR{0Od}hga7~l diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.png b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.multiple.png deleted file mode 100644 index 86122450d3a35ef2db3c2917dfdb919fdfb9c4ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^CxF<9g9%7ZGiKffq}Y|gW!U_%O?XxwtBia zhE&XXdr6zGA%KVBpxuuD6MtH;aBc3AytpLuRoUF@R%!O>)z7m3R{T2rJ|^2f&HDMw q^`lM` diff --git a/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.png b/tests/wpt/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.interpolate.overlap.png deleted file mode 100644 index 5c2bb964e0fd379309797343aa869c195f2f742a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^CxF<9g9%7ZGiKffq}Y|gW!U_%O?Xx)_S@) zhE&XXd&!ckAwYoDQT)np`RnT&)eUl7RwQlmjJxo;cK!9Od+$p8R=@w*X3ej!t5Ta9 iHh6G!x6q$B!W=%ir*yl`;)y_qGkCiCxvXswFx`1^?SnX_JE{`1llk@5UT3s7)Ha|gw2)cK@I*>Y7353?Pgg&e IbxsLQ0DnR-eEswFx`1^?SnX_JE{`1llk@5UT3s7)Ha|gw2)cK@I*>Y7353?Pgg&e IbxsLQ0DnR-eE&peS%)!_z4b?~Cm5XRKA>vbt=V{%yj?y?hVOPmpj<;^{P0IYxWNGbS@t W#>EqF|N0Dc9fPN(k diff --git a/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.2.png b/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.2.png deleted file mode 100644 index 8764e89b371d41428f0ba45d9c0391e41b0dd8a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LT&7Llf zAsLNtFF0~CC@>swFx`1^?SnX_JE{`1tKS@)`_<}!dKxQjA$wBRx^RlVeoYI Kb6Mw<&;$U*t~bH} diff --git a/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.3.png b/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.3.png deleted file mode 100644 index 8764e89b371d41428f0ba45d9c0391e41b0dd8a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LT&7Llf zAsLNtFF0~CC@>swFx`1^?SnX_JE{`1tKS@)`_<}!dKxQjA$wBRx^RlVeoYI Kb6Mw<&;$U*t~bH} diff --git a/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.4.png b/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.4.png deleted file mode 100644 index 8764e89b371d41428f0ba45d9c0391e41b0dd8a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LT&7Llf zAsLNtFF0~CC@>swFx`1^?SnX_JE{`1tKS@)`_<}!dKxQjA$wBRx^RlVeoYI Kb6Mw<&;$U*t~bH} diff --git a/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.5.png b/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.5.png deleted file mode 100644 index 8764e89b371d41428f0ba45d9c0391e41b0dd8a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LT&7Llf zAsLNtFF0~CC@>swFx`1^?SnX_JE{`1tKS@)`_<}!dKxQjA$wBRx^RlVeoYI Kb6Mw<&;$U*t~bH} diff --git a/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.blur.high.png b/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.blur.high.png deleted file mode 100644 index 743640b79f8810c193ae9ad86fdfaa76ee5f4943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 246 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LTt36#D zLoyoQUhw8>4iI2C82DcI$%CJ7nlvU}+1K5Ere}BDx4#>6&zIJ|jGp%W??>zTZI7$= z$XtJ2V|(t**Y_{~&GkQg_WN}!}2P)CBut!-uP0EJA2FU~GQz1f^W>4VWGCqGmUMUfW=Vqd{ArV72KWC^ND5SlHL3- zhsld2ndCB=FFe%j56xPZ@8Eyy;KX85Fk`Kfg-EzOlX1fHHceesTY?9Ro;ga%c{!F7 z0_)@s{$nP0hRKyIv?z)mXs}>jvNMM1QZ|Qk>x|mo6p~o9_Z3ACMzn|}D|zeS4-PAm zJ51VY)N<9rqD*L16#Zt?Q8EvfI!$$1!nZt+!N6jH0wY$SBOT*I{5qIqGK`WtEVT1@ zSy(8w*>pIoSg~6NkJP%$bp>5mD1}C4*)lT3Vz&-K8>*5~QcvFBXdA5sr(k8-2o`18 z!VFmGg&os~m7I*zGYY$XHs3rrj)j@3s!Lh6Rds;^v9KG`0ZYAIkYToUVzq4a2wsDa zW99h(Ms$8d_uY<8n#e%?UwI#NiEc}9#5IGh|ZMPpybJ}h{z>7-BOv!OdN~tul z#ufSec6K8c|6%3%P}k@E{(ZMQ?siAOf@HCwirrW-DK$rObr^D6%Fv7@^xA6Qv9fGz zn$z9g>+S7fzkhF<6G%a(oJ`UP>X^%#Qgnox zG(08GA8WPIA3gbY{*?K>IM(OSe}DP%*ZuuV)0{9z&il-m5fh=y*lLn*lHI!96PDRH zhHu~g`1*A++Iz>T`y>p!j+9<2q7E}w@*)x&(9BU zZ#Sn?b3WH?TXx+B;n*3fI<#PQY?HK;d@(877#jgpFXJEHg*A@Z@wj_^y*nIk-{1G( zb-7e+TVmFz+U%JLPRg1mU&+KRxd{ApHO%v&sxG_T@p#;Qd~Ct%a;ds*12cG0I4bC= zZ9x?-&j(zk^=z`)*8zT?m1QG*6Rhj=`CLPPgc-fqj2!kd3HSSxDR=Nt09jRCurpFG zLygsptSI`aL1ScSMC)JEG4=0;aIb)mXc!jtQq@#GWTIXw+(^bX5RuE6SBy`+0!$tL zt)~w7uoNF-A(l->SAm9k!AbUg0fi@JF)w($fiqim!Z~j;qR+FK9W1+U)3zlf4!q#} zQ3RM^Pc*_GgrKHN&+w0+su$H6hTMbY>5^(^w4Rh=&3-fl3;e=JbwGg@bjBmV*<#9) zUhwW{L6=6#R_T?rNIZk5tI`W3Di&5Tm~L@3Sysp8ajXsa_cw#aJUtr5Y}SY-+EZ@Rxtm3yv6DRbP&3 zbhYmbs0}Z5w!?)?a+setgw6bGWgufm#QT0jO=Uu$ojiCTjOOmaFB|9UHnA-m_Xoi&RhC$>@UKwJ^3iMZoA3FFMVqVM$ zuLg^fg{Lw8xELk9l7ULT7h?hu)}q2mHNz{2dn-z|=>HpLswFx`1^?SnX_JE{`1tKS@)`_<}!dKxQjA$wBRx^RlVeoYI Kb6Mw<&;$U*t~bH} diff --git a/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.png b/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.gradient.alpha.png deleted file mode 100644 index 8764e89b371d41428f0ba45d9c0391e41b0dd8a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LT&7Llf zAsLNtFF0~CC@>swFx`1^?SnX_JE{`1tKS@)`_<}!dKxQjA$wBRx^RlVeoYI Kb6Mw<&;$U*t~bH} diff --git a/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.image.alpha.png b/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.image.alpha.png deleted file mode 100644 index 8764e89b371d41428f0ba45d9c0391e41b0dd8a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LT&7Llf zAsLNtFF0~CC@>swFx`1^?SnX_JE{`1tKS@)`_<}!dKxQjA$wBRx^RlVeoYI Kb6Mw<&;$U*t~bH} diff --git a/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.png b/tests/wpt/tests/html/canvas/offscreen/shadows/2d.shadow.pattern.alpha.png deleted file mode 100644 index 8764e89b371d41428f0ba45d9c0391e41b0dd8a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^DL`z*!2~2#!(YAxQfx`y?k)`fL2$v|<&%LT&7Llf zAsLNtFF0~CC@>swFx`1^?SnX_JE{`1tKS@)`_<}!dKxQjA$wBRx^RlVeoYI Kb6Mw<&;$U*t~bH} diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.fill.basic.png b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.fill.basic.png deleted file mode 100644 index 70d7b046cb226cfcb2bfeebe3477d3b580d8270a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1137 zcmV-%1djWOP)hKeM$){!EL>!vrZ@gw8WVnw!yfNza=UYBcYP@jQYT@ z@)MLxYqK{gk3+XK%`^MYggf4S(2uYk%Ip`ch)n#kPnKS8yA0o~V=mE@y ztA4x3`%nj)V7A4!I}#Hgf|Jz`hC?ZA@D5+?XEjtU#!siUE>yE)cwk6FV6%7MnDR8k zI@xFD)FhSvaNIcuMSfOqD?vJi&@O_t7J(JOORyCh3}O5P)AC~SFQJmv0|(7BKe^<+ zXAtZV!KIM1U<6dae)!WH&rNtXpC%cT)egTvEqnk^nSCazF7D(E3PCfM^cVCXy%TPoX_f*$iJxS)Z#f zNTCRp*bVxG6j~xR2_pM9YarYfhvgRfH`Iuws{W!>{%Ss@Cz&DFWC`z{E)o+X*(d9D z_3{t2&<|3_5q;QRq9Xaho5vJN)D7P!-lj-QjAWmzucZ4?>n?|+%Pn<97gMLD1oT2J ztb`I63BzC_EQ7=9tJjrw6%~nzkt~xnTD{4Otb3KILElvMk3y~WdfEjG{mdgV@h8h< zRY~7Y!x_kzKJbThOgS6Hp%Pj%{m3r^cgT^L_>fJqV$dXg_l4|Rt;U^_)>;IMVHecF zCFp=IXqG#J7wm?J#KhrnI2;a#!{Kl^91e%W@jvl5XF~slY@&Fz00000NkvXXu0mjf Ddixa5 diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large.png b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large.png deleted file mode 100644 index 70d7b046cb226cfcb2bfeebe3477d3b580d8270a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1137 zcmV-%1djWOP)hKeM$){!EL>!vrZ@gw8WVnw!yfNza=UYBcYP@jQYT@ z@)MLxYqK{gk3+XK%`^MYggf4S(2uYk%Ip`ch)n#kPnKS8yA0o~V=mE@y ztA4x3`%nj)V7A4!I}#Hgf|Jz`hC?ZA@D5+?XEjtU#!siUE>yE)cwk6FV6%7MnDR8k zI@xFD)FhSvaNIcuMSfOqD?vJi&@O_t7J(JOORyCh3}O5P)AC~SFQJmv0|(7BKe^<+ zXAtZV!KIM1U<6dae)!WH&rNtXpC%cT)egTvEqnk^nSCazF7D(E3PCfM^cVCXy%TPoX_f*$iJxS)Z#f zNTCRp*bVxG6j~xR2_pM9YarYfhvgRfH`Iuws{W!>{%Ss@Cz&DFWC`z{E)o+X*(d9D z_3{t2&<|3_5q;QRq9Xaho5vJN)D7P!-lj-QjAWmzucZ4?>n?|+%Pn<97gMLD1oT2J ztb`I63BzC_EQ7=9tJjrw6%~nzkt~xnTD{4Otb3KILElvMk3y~WdfEjG{mdgV@h8h< zRY~7Y!x_kzKJbThOgS6Hp%Pj%{m3r^cgT^L_>fJqV$dXg_l4|Rt;U^_)>;IMVHecF zCFp=IXqG#J7wm?J#KhrnI2;a#!{Kl^91e%W@jvl5XF~slY@&Fz00000NkvXXu0mjf Ddixa5 diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.fill.rtl.png b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.fill.rtl.png deleted file mode 100644 index 70d7b046cb226cfcb2bfeebe3477d3b580d8270a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1137 zcmV-%1djWOP)hKeM$){!EL>!vrZ@gw8WVnw!yfNza=UYBcYP@jQYT@ z@)MLxYqK{gk3+XK%`^MYggf4S(2uYk%Ip`ch)n#kPnKS8yA0o~V=mE@y ztA4x3`%nj)V7A4!I}#Hgf|Jz`hC?ZA@D5+?XEjtU#!siUE>yE)cwk6FV6%7MnDR8k zI@xFD)FhSvaNIcuMSfOqD?vJi&@O_t7J(JOORyCh3}O5P)AC~SFQJmv0|(7BKe^<+ zXAtZV!KIM1U<6dae)!WH&rNtXpC%cT)egTvEqnk^nSCazF7D(E3PCfM^cVCXy%TPoX_f*$iJxS)Z#f zNTCRp*bVxG6j~xR2_pM9YarYfhvgRfH`Iuws{W!>{%Ss@Cz&DFWC`z{E)o+X*(d9D z_3{t2&<|3_5q;QRq9Xaho5vJN)D7P!-lj-QjAWmzucZ4?>n?|+%Pn<97gMLD1oT2J ztb`I63BzC_EQ7=9tJjrw6%~nzkt~xnTD{4Otb3KILElvMk3y~WdfEjG{mdgV@h8h< zRY~7Y!x_kzKJbThOgS6Hp%Pj%{m3r^cgT^L_>fJqV$dXg_l4|Rt;U^_)>;IMVHecF zCFp=IXqG#J7wm?J#KhrnI2;a#!{Kl^91e%W@jvl5XF~slY@&Fz00000NkvXXu0mjf Ddixa5 diff --git a/tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.stroke.basic.png b/tests/wpt/tests/html/canvas/offscreen/text/2d.text.draw.stroke.basic.png deleted file mode 100644 index fb3b5b830d345d2aa858e41673e08f99977baf08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1634 zcmV-o2A%ndP)#Uc!kXbHp+sbDQ}N@)WO1$oGbVgL&RRTxG(KufT(1pCKi z(+l^WJNGj8_OJ8J`D5R`*Z%Ew);{O#wf7|^CMG5(CMG5(9~7jnoTJVFl+I7wu~Shq#v(EaWDp zGKdGFyVNm;=eUPT(4Cvp&6n8A&DAQO*`dP|Sa5$3*tCm{#m!7%$O24;5AP3W3W6FqL{^U(3T_2pmCB-E0(a8tH6AImIskYG7MH7 zzheq$$thZ;vS~prB{Zg*>1+YF@L}Y~05)+uc%ENHn-#DwOhz}3>cPQKemhk*(20{Yr7_2X z2lw$O(1zN}=kR}QWGE=5iXLe_xr6?6`lRvD5Lkw`KRRsnzH`=Er{R13{M27ur4qlEh3FdLMzCqloF z-8>$Cw&Gz{Q_F7VF)U(9$+<`*83wC}g;ek*@B~YfZ2GYuVXbVN&@_O3pn!w)ix}k^ z_OqPggvuriHsu5`O|nxkx|7PRF}*71uZ4?dwp0Ku{8!uAA(6D#OlgK4xzL9RuWU6>NRpdv7 zC9fl&F`PRuy(Uo;rg2T$93qj{jAjW(ImFA1NXUZb^5?XP?v;vM(UaAjBCh5JdQr|i zDpKjJWeu+|oX4X5o?Lt(pHMf{6@E zbo4XAbWEvl8y#GS&jK59Cbg#+zh(R3j;ObSV(RQsS3++Q`WPML8FmHr;1X7RnnKozOIn8W!@+h`!Aj#U9=Y$3Dq4SR^_r-Nwh1@=lg{ z)+A=L2t3MQKFF+NNA~gp7)VnFC$zTV5ysJyN@_UC=d`CI{dk8(tVugW!$cy2HH}W8 zyfMo^*~cZE|NV=fXVdplI)?HEp5pT)o6hv29c{Ua8migOscZ(yiAYRLOiWBnOiWBn gOiWBnOiXV0FH)Ne)6~-9jQ{`u07*qoM6N<$f`u6Y-v9sr diff --git a/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py b/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py index 629b596b513..c9d4963d9e1 100644 --- a/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py +++ b/tests/wpt/tests/html/canvas/tools/gentestutilsunion.py @@ -30,7 +30,7 @@ # * Test the tests, add new ones to Git, remove deleted ones from Git, etc. from typing import Any, DefaultDict, FrozenSet, List, Mapping, MutableMapping -from typing import Optional, Set, Tuple +from typing import Set, Union import re import collections @@ -38,7 +38,6 @@ import copy import dataclasses import enum import importlib -import itertools import math import os import pathlib @@ -78,46 +77,6 @@ def _escape_js(string: str) -> str: return string -def _unroll(text: str) -> str: - """Unrolls text with all possible permutations of the parameter lists. - - Example: - >>> print _unroll('f = {
: <1 | 2 | 3>};') - // a - f = {a: 1}; - f = {a: 2}; - f = {a: 3}; - // b - f = {b: 1}; - f = {b: 2}; - f = {b: 3}; - """ - patterns = [] # type: List[Tuple[str, List[str]]] - while True: - match = re.search(r'<([^>]+)>', text) - if not match: - break - key = f'@unroll_pattern_{len(patterns)}' - values = text[match.start(1):match.end(1)] - text = text[:match.start(0)] + key + text[match.end(0):] - patterns.append((key, [value.strip() for value in values.split('|')])) - - def unroll_patterns(text: str, - patterns: List[Tuple[str, List[str]]], - label: Optional[str] = None) -> List[str]: - if not patterns: - return [text] - patterns = patterns.copy() - key, values = patterns.pop(0) - return (['// ' + label] if label else []) + list( - itertools.chain.from_iterable( - unroll_patterns(text.replace(key, value), patterns, value) - for value in values)) - - result = '\n'.join(unroll_patterns(text, patterns)) - return result - - def _expand_nonfinite(method: str, argstr: str, tail: str) -> str: """ >>> print _expand_nonfinite('f', '<0 a>, <0 b>', ';') @@ -196,11 +155,6 @@ def _expand_test_code(code: str) -> str: code = re.sub(r'@moz-UniversalBrowserRead;', '', code) - code = _remove_extra_newlines(code) - - # Unroll expressions with a cross-product-style parameter expansion. - code = re.sub(r'@unroll ([^;]*;)', lambda m: _unroll(m.group(1)), code) - code = re.sub(r'@nonfinite ([^(]+)\(([^)]+)\)(.*)', lambda m: _expand_nonfinite(m.group(1), m.group(2), m.group(3)), code) # Must come before '@assert throws'. @@ -326,11 +280,15 @@ def _render(jinja_env: jinja2.Environment, template_name: str, def _preprocess_code(jinja_env: jinja2.Environment, code: str, params: _TestParams) -> str: - code = _expand_test_code(code) + code = _remove_extra_newlines(code) + # Render the code on its own, as it could contain templates expanding # to multiple lines. This is needed to get proper indentation of the # code in the main template. code = _render_template(jinja_env, jinja_env.from_string(code), params) + + # Expand "@..." macros. + code = _expand_test_code(code) return code @@ -481,7 +439,7 @@ class _Variant(): variant_id: int) -> None: """Finalize this variant by adding computed param fields.""" self._params['id'] = variant_id - for param_name in ('name', 'desc', 'attributes'): + for param_name in ('attributes', 'desc', 'expected', 'name'): self._render_param(jinja_env, param_name) self._params['file_name'] = self._get_file_name() self._params['canvas_types'] = self._get_canvas_types() @@ -515,6 +473,10 @@ class _Variant(): def generate_expected_image(self, output_dirs: _OutputPaths) -> None: """Creates an expected image using Cairo and save filename in params.""" + # Expected images are only needed for HTML canvas tests. + if _CanvasType.HTML_CANVAS not in self.params['canvas_types']: + return + expected = self.params['expected'] if expected == 'green': @@ -530,7 +492,7 @@ class _Variant(): img_filename = f'{self.params["name"]}.png' _write_cairo_images(expected, output_dirs.sub_path(img_filename), - self.params['canvas_types']) + frozenset({_CanvasType.HTML_CANVAS})) self._params['expected_img'] = img_filename @@ -913,6 +875,29 @@ def _check_uniqueness(tested: DefaultDict[str, Set[_CanvasType]], name: str, tested[name].update(canvas_types) +def _indent_filter(s: str, width: Union[int, str] = 4, + first: bool = False, blank: bool = False) -> str: + """Returns a copy of the string with each line indented by the `width` str. + + If `width` is a number, `s` is indented by that number of whitespaces. The + first line and blank lines are not indented by default, unless `first` or + `blank` are `True`, respectively. + + This is a re-implementation of the default `indent` Jinja filter, preserving + line ending characters (\r, \n, \f, etc.) The default `indent` Jinja filter + incorrectly replaces all of these characters with newlines.""" + is_first_line = True + def indent_needed(line): + nonlocal first, blank, is_first_line + is_blank = not line.strip() + need_indent = (not is_first_line or first) and (not is_blank or blank) + is_first_line = False + return need_indent + + indentation = width if isinstance(width, str) else ' ' * width + return textwrap.indent(s, indentation, indent_needed) + + def generate_test_files(name_to_dir_file: str) -> None: """Generate Canvas tests from YAML file definition.""" output_dirs = _OutputPaths(element=pathlib.Path('..') / 'element', @@ -925,6 +910,7 @@ def generate_test_files(name_to_dir_file: str) -> None: lstrip_blocks=True) jinja_env.filters['double_quote_escape'] = _double_quote_escape + jinja_env.filters['indent'] = _indent_filter # Run with --test argument to run unit tests. if len(sys.argv) > 1 and sys.argv[1] == '--test': diff --git a/tests/wpt/tests/html/canvas/tools/templates.yaml b/tests/wpt/tests/html/canvas/tools/templates.yaml index 0806872cbd1..4ca690e2b42 100644 --- a/tests/wpt/tests/html/canvas/tools/templates.yaml +++ b/tests/wpt/tests/html/canvas/tools/templates.yaml @@ -1,6 +1,7 @@ offscreen: | + OffscreenCanvas test: %(name)s%(timeout)s @@ -54,6 +55,7 @@ worker: | element: | + Canvas test: %(name)s diff --git a/tests/wpt/tests/html/canvas/tools/yaml-new/filters.yaml b/tests/wpt/tests/html/canvas/tools/yaml-new/filters.yaml index 68c9dab7afd..1ded0610e1f 100644 --- a/tests/wpt/tests/html/canvas/tools/yaml-new/filters.yaml +++ b/tests/wpt/tests/html/canvas/tools/yaml-new/filters.yaml @@ -834,37 +834,55 @@ desc: Test exceptions on CanvasFilter() dropShadow object code: | // Should not throw an error. - @unroll {{ filter_declaration | replace("param", "{\- - name: 'dropShadow', \- - : \- - <10 | -1 | 0.5 | null | true | false | [] | [20] | '30'>}") }}; - @unroll {{ filter_declaration | replace("param", "{\- - name: 'dropShadow', \- - : \- - <10 | -1 | 0.5 | null | true | false | [] | [20] | '30' | \- - [10, -1] | [0.5, null] | [true, false] | [[], [20]] | \- - ['30', ['40']]>}") }}; - @unroll {{ filter_declaration | replace("param", "{\- - name: 'dropShadow', \- - : \- - <'red' | 'canvas' | 'rgba(4, -3, 0.5, 1)' | '#aabbccdd' | - '#abcd'>}") }}; + {% for param_name in ['dx', 'dy', 'floodOpacity'] -%} + // {{ param_name }} + {% for value in [10, -1, 0.5, 'null', 'true', 'false', [], [20], + "'30'"] -%} + {{ filter_declaration | replace("param", + "{name: 'dropShadow', %s: %s}" | format(param_name, value)) }}; + {% endfor %} + {% endfor -%} + + // stdDeviation + {% for value in [10, -1, 0.5, 'null', 'true', 'false', [], [20], + "'30'", [10, -1], '[0.5, null]', '[true, false]', + [[], [20]], "['30', ['40']]"] -%} + {{ filter_declaration | replace("param", + "{name: 'dropShadow', stdDeviation: %s}" | format(value)) }}; + {% endfor -%} + + // floodColor + {% for value in ['red', 'canvas', 'rgba(4, -3, 0.5, 1)', '#aabbccdd', + '#abcd'] -%} + {{ filter_declaration | replace("param", + "{name: 'dropShadow', floodColor: '%s'}" | format(value)) }}; + {% endfor %} // Should throw a TypeError. - @unroll @assert throws TypeError {{ filter_declaration | replace("param", \- - "{name: 'dropShadow', \- - : \- - }") }}; - @unroll @assert throws TypeError {{ filter_declaration | replace("param", \- - "{name: 'dropShadow', \- - : \- - }") }}; - @unroll @assert throws TypeError {{ filter_declaration | replace("param", \- - "{name: 'dropShadow', \- - : \- - <'test' | 'rgba(NaN, 3, 2, 1)' | 10 | undefined | null | NaN>}") }}; + {% for param_name in ['dx', 'dy', 'floodOpacity'] -%} + // {{ param_name }} + {% for value in ['NaN', 'Infinity', '-Infinity', 'undefined', "'test'", + {}, [1, 2]] -%} + @assert throws TypeError {{ filter_declaration | replace("param", + "{name: 'dropShadow', %s: %s}" | format(param_name, value)) }}; + {% endfor %} + {% endfor -%} + + // stdDeviation + {% for value in ['NaN', 'Infinity', '-Infinity', 'undefined', "'test'", {}, + [1, 2, 3], '[1, NaN]', '[1, Infinity]', '[1, -Infinity]', + '[1, undefined]', "[1, 'test']", '[1, {}]', + '[1, [2, 3]]'] -%} + @assert throws TypeError {{ filter_declaration | replace("param", + "{name: 'dropShadow', stdDeviation: %s}" | format(value)) }}; + {% endfor -%} + + // floodColor + {% for value in ["'test'", "'rgba(NaN, 3, 2, 1)'", 10, 'undefined', 'null', + 'NaN'] -%} + @assert throws TypeError {{ filter_declaration | replace("param", + "{name: 'dropShadow', floodColor: %s}" | format(value)) }}; + {% endfor -%} append_variants_to_name: false variants: - layers: diff --git a/tests/wpt/tests/html/canvas/tools/yaml-new/the-canvas.yaml b/tests/wpt/tests/html/canvas/tools/yaml-new/the-canvas.yaml index 4153b8e2dfb..2058adcb3b7 100644 --- a/tests/wpt/tests/html/canvas/tools/yaml-new/the-canvas.yaml +++ b/tests/wpt/tests/html/canvas/tools/yaml-new/the-canvas.yaml @@ -23,6 +23,142 @@ new_canvas: |- new OffscreenCanvas(100, 50) +- name: 2d.canvas.host.size.attributes + canvas_types: ['HtmlCanvas'] + code: | + {{ set_attributes -}} + @assert canvas.width === {{ result_size[0] }}; + @assert canvas.height === {{ result_size[1] }}; + {% if result_size[0] != 300 %} + {# With "100%", Opera gets canvas.width = 100 but renders at 100% of the + frame width, so check the CSS display width -#} + @assert window.getComputedStyle(canvas, null)\- + .getPropertyValue("width") === "{{ result_size[0] }}px"; + {% endif -%} + + {% set attrib_size = escaped_size or input_size %} + @assert canvas.getAttribute('width') === '{{ attrib_size }}'; + @assert canvas.getAttribute('height') === '{{ attrib_size }}'; + expected: | + {% if result_size[0] != 0 -%} + size {{ result_size[0] }} {{ result_size[1] }} + {% endif %} + variants: + - parse: + desc: Parsing of non-negative integers + size: ['{{ input_size }}', '{{ input_size }}'] + setAttribute: + desc: Parsing of non-negative integers in setAttribute + size: [ 50, 50 ] + set_attributes: | + canvas.setAttribute('width', '{{ escaped_size or input_size }}'); + canvas.setAttribute('height', '{{ escaped_size or input_size }}'); + - zero: + input_size: '0' + result_size: [0, 0] + empty: + input_size: '' + result_size: [300, 150] + onlyspace: + input_size: ' ' + result_size: [300, 150] + space: + input_size: ' 100' + result_size: [100, 100] + whitespace: + input_size: " \n\t\x0c100" + escaped_size: "\\r\\n\\t\\x0c100" + result_size: [100, 100] + plus: + input_size: '+100' + result_size: [100, 100] + minus: + input_size: '-100' + result_size: [300, 150] + octal: + input_size: '0100' + result_size: [100, 100] + hex: + input_size: '0x100' + result_size: [0, 0] + exp: + input_size: '100e1' + result_size: [100, 100] + decimal: + input_size: '100.999' + result_size: [100, 100] + percent: + input_size: '100%' + result_size: [100, 100] + em: + input_size: '100em' + result_size: [100, 100] + junk: + input_size: '#!?' + result_size: [300, 150] + trailingjunk: + input_size: '100#!?' + result_size: [100, 100] + +- name: 2d.canvas.host.size.attributes.parse + desc: Parsing of non-negative integers + canvas_types: ['OffscreenCanvas', 'Worker'] + code: | + {% if result_size == 'exception' %} + @assert throws TypeError canvas.width = '{{ input_size }}'; + {% else %} + canvas.width = '{{ input_size }}'; + canvas.height = '{{ input_size }}'; + @assert canvas.width === {{ result_size }}; + @assert canvas.height === {{ result_size }}; + {% endif %} + variants: + - zero: + input_size: '0' + result_size: 0 + empty: + input_size: '' + result_size: 0 + onlyspace: + input_size: ' ' + result_size: 0 + space: + input_size: ' 100' + result_size: 100 + whitespace: + input_size: "\t\f100" + result_size: 100 + plus: + input_size: '+100' + result_size: 100 + minus: + input_size: '-100' + result_size: 'exception' + octal: + input_size: '0100' + result_size: 100 + hex: + input_size: '0x100' + result_size: 0x100 + exp: + input_size: '100e1' + result_size: 1000.0 + decimal: + input_size: '100.999' + result_size: 100 + percent: + input_size: '100%' + result_size: 'exception' + em: + input_size: '100em' + result_size: 'exception' + junk: + input_size: '#!?' + result_size: 'exception' + trailingjunk: + input_size: '100#!?' + result_size: 'exception' + - name: 2d.canvas.host.type.delete canvas_types: ['HtmlCanvas'] desc: window.HTMLCanvasElement interface object is [[Configurable]] diff --git a/tests/wpt/tests/html/canvas/tools/yaml/element/meta.yaml b/tests/wpt/tests/html/canvas/tools/yaml/element/meta.yaml index 358333d96e0..65ef32cb31b 100644 --- a/tests/wpt/tests/html/canvas/tools/yaml/element/meta.yaml +++ b/tests/wpt/tests/html/canvas/tools/yaml/element/meta.yaml @@ -1,65 +1,3 @@ -- meta: | - cases = [ - ("zero", "0", 0), - ("empty", "", None), - ("onlyspace", " ", None), - ("space", " 100", 100), - ("whitespace", "\r\n\t\f100", 100), - ("plus", "+100", 100), - ("minus", "-100", None), - ("octal", "0100", 100), - ("hex", "0x100", 0), - ("exp", "100e1", 100), - ("decimal", "100.999", 100), - ("percent", "100%", 100), - ("em", "100em", 100), - ("junk", "#!?", None), - ("trailingjunk", "100#!?", 100), - ] - def gen(name, string, exp, code): - if exp is None: - code += "@assert canvas.width === 300;\n@assert canvas.height === 150;\n" - expected = "size 300 150" - else: - code += "@assert canvas.width === %s;\n@assert canvas.height === %s;\n" % (exp, exp) - expected = "size %s %s" % (exp, exp) - - # With "100%", Opera gets canvas.width = 100 but renders at 100% of the frame width, - # so check the CSS display width - code += '@assert window.getComputedStyle(canvas, null).getPropertyValue("width") === "%spx";\n' % (exp, ) - - code += "@assert canvas.getAttribute('width') === %r;\n" % string - code += "@assert canvas.getAttribute('height') === %r;\n" % string - - if exp == 0: - expected = None # can't generate zero-sized PNGs for the expected image - - return code, expected - - for name, string, exp in cases: - code = "" - code, expected = gen(name, string, exp, code) - # We need to replace \r with because \r\n gets converted to \n in the HTML parser. - htmlString = string.replace('\r', ' ') - tests.append( { - "name": "2d.canvas.host.size.attributes.parse.%s" % name, - "desc": "Parsing of non-negative integers", - "size": '%s, %s' % (htmlString, htmlString), - "code": code, - "expected": expected - } ) - - for name, string, exp in cases: - code = "canvas.setAttribute('width', %r);\ncanvas.setAttribute('height', %r);\n" % (string, string) - code, expected = gen(name, string, exp, code) - tests.append( { - "name": "2d.canvas.host.size.attributes.setAttribute.%s" % name, - "desc": "Parsing of non-negative integers in setAttribute", - "size": '50, 50', - "code": code, - "expected": expected - } ) - - meta: | # Composite operation tests # diff --git a/tests/wpt/tests/html/canvas/tools/yaml/offscreen/meta.yaml b/tests/wpt/tests/html/canvas/tools/yaml/offscreen/meta.yaml index 9c1cfbfd0fc..302660959a2 100644 --- a/tests/wpt/tests/html/canvas/tools/yaml/offscreen/meta.yaml +++ b/tests/wpt/tests/html/canvas/tools/yaml/offscreen/meta.yaml @@ -429,50 +429,3 @@ """ % (string,), } tests.append(test) - -- meta: | - cases = [ - ("zero", "0", 0), - ("empty", "", 0), - ("onlyspace", " ", 0), - ("space", " 100", 100), - ("whitespace", "\t\f100", 100), - ("plus", "+100", 100), - ("minus", "-100", "exception"), - ("octal", "0100", 100), - ("hex", "0x100", 0x100), - ("exp", "100e1", 100e1), - ("decimal", "100.999", 100), - ("percent", "100%", "exception"), - ("em", "100em", "exception"), - ("junk", "#!?", "exception"), - ("trailingjunk", "100#!?", "exception"), - ] - def gen(name, string, exp, code): - if exp is None: - code += "canvas.width = '%s';\ncanvas.height = '%s';\n" % (string, string) - code += "@assert canvas.width === 100;\n@assert canvas.height === 50;\n" - expected = None - elif exp == "exception": - code += "@assert throws TypeError canvas.width = '%s';\n" % string - expected = None - else: - code += "canvas.width = '%s';\ncanvas.height = '%s';\n" % (string, string) - code += "@assert canvas.width === %s;\n@assert canvas.height === %s;\n" % (exp, exp) - expected = None - - code += "t.done();\n" - - if exp == 0: - expected = None # can't generate zero-sized PNGs for the expected image - - return code, expected - - for name, string, exp in cases: - code = "" - code, expected = gen(name, string, exp, code) - tests.append( { - "name": "2d.canvas.host.size.attributes.parse.%s" % name, - "desc": "Parsing of non-negative integers", - "code": code, - } ) diff --git a/tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html b/tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html new file mode 100644 index 00000000000..0530956080b --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html @@ -0,0 +1,162 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.headers b/tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.headers new file mode 100644 index 00000000000..bcc6f0734d5 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.headers @@ -0,0 +1 @@ +Document-Isolation-Policy: isolate-and-require-corp diff --git a/tests/wpt/tests/html/document-isolation-policy/resources/reporting-empty-frame-multiple-headers.html.asis b/tests/wpt/tests/html/document-isolation-policy/resources/reporting-empty-frame-multiple-headers.html.asis new file mode 100644 index 00000000000..5020ad39fee --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/resources/reporting-empty-frame-multiple-headers.html.asis @@ -0,0 +1,10 @@ +HTTP/1.1 200 OK +Content-Type: text/html +document-isolation-policy: isolate-and-require-corp; foo=" +document-isolation-policy: "; report-to="endpoint" +document-isolation-policy-report-only: isolate-and-require-corp; foo=" +document-isolation-policy-report-only: "; report-to="report-only-endpoint" +Reporting-Endpoints: endpoint="https://{{host}}:{{ports[https][0]}}//html/document-isolation-policy/resources/report.py?key=4d8b6d86-c9a8-47c1-871b-111169a8f79c", report-only-endpoint="/html/document-isolation-policy/resources/report.py?key=5d7c1e33-ef88-43c2-9ca3-c67ff300b8c2" + + + diff --git a/tests/wpt/tests/html/document-isolation-policy/resources/reporting-empty-frame.html b/tests/wpt/tests/html/document-isolation-policy/resources/reporting-empty-frame.html new file mode 100644 index 00000000000..b1579add2e0 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/resources/reporting-empty-frame.html @@ -0,0 +1,5 @@ + + + + + diff --git a/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-039.html b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-039.html new file mode 100644 index 00000000000..d57b448e440 --- /dev/null +++ b/tests/wpt/tests/html/dom/render-blocking/element-render-blocking-039.html @@ -0,0 +1,23 @@ + + + + + +link rel=expect: render blocking stops waiting when the document finishes loading + + + + + +
+
+ diff --git a/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-001-ref.html b/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-001-ref.html new file mode 100644 index 00000000000..546075fcfeb --- /dev/null +++ b/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-001-ref.html @@ -0,0 +1,114 @@ + + +CSS Reference Case + + + + + +
+
+ X +
+
XX XX XX
+ XX XXXX +
+
+
+ X +
+
XX XX XX
+ XX XXXX +
+
+
+ X +
+
XX XX XX
+ XX XXXX +
+
+
+ + +
+
+ X +
+
XX XX XX
+ XX XXXX +
+
+
+ X +
+
XX XX XX
+ XX XXXX +
+
+
+ X +
+
XX XX XX
+ XX XXXX +
+
+
+ + +
+
+ X +
+
XX XX XX
+ XX XXXX +
+
+
+ X +
+
XX XX XX
+ XX XXXX +
+
+
+ X +
+
XX XX XX
+ XX XXXX +
+
+
diff --git a/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-001.html b/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-001.html new file mode 100644 index 00000000000..f6714a5e076 --- /dev/null +++ b/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-001.html @@ -0,0 +1,125 @@ + + +CSS Test: details and summary with all pairwise combinations of 'display: {inline, inline-block, block}' + + + + + + + + +
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ + +
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ + +
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
diff --git a/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-002-ref.html b/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-002-ref.html new file mode 100644 index 00000000000..aa31ff76415 --- /dev/null +++ b/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-002-ref.html @@ -0,0 +1,114 @@ + + +CSS Reference Case + + + + + +
+
+ X +
+
XX XX XX
+
XX XXXX
+
+
+
+ X +
+
XX XX XX
+
XX XXXX
+
+
+
+ X +
+
XX XX XX
+
XX XXXX
+
+
+
+ + +
+
+ X +
+
XX XX XX
+
XX XXXX
+
+
+
+ X +
+
XX XX XX
+
XX XXXX
+
+
+
+ X +
+
XX XX XX
+
XX XXXX
+
+
+
+ + +
+
+ X +
+
XX XX XX
+
XX XXXX
+
+
+
+ X +
+
XX XX XX
+
XX XXXX
+
+
+
+ X +
+
XX XX XX
+
XX XXXX
+
+
+
diff --git a/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-002.html b/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-002.html new file mode 100644 index 00000000000..6fc6e6ad605 --- /dev/null +++ b/tests/wpt/tests/html/rendering/the-details-element/details-summary-display-inline-002.html @@ -0,0 +1,119 @@ + + +CSS Test: details and summary with all pairwise combinations of 'display: {inline, inline-block, block}' + + + + + + + + +
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ + +
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ + +
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
+ X +
+ XX XX XX + XX XXXX +
+
+
diff --git a/tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-1.html b/tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-1.html new file mode 100644 index 00000000000..61189876171 --- /dev/null +++ b/tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-1.html @@ -0,0 +1,10 @@ + + + +input type=date test + + + + + + diff --git a/tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-2.html b/tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-2.html new file mode 100644 index 00000000000..f4b6ebaac97 --- /dev/null +++ b/tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-2.html @@ -0,0 +1,9 @@ + + + +input type=date test + + + + + diff --git a/tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-ref.html b/tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-ref.html new file mode 100644 index 00000000000..64f0162e2df --- /dev/null +++ b/tests/wpt/tests/html/rendering/widgets/input-date-whitespace-pre-ref.html @@ -0,0 +1,7 @@ + + + +input type=date reference + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html b/tests/wpt/tests/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html index 60feb2b0ba9..8e2c988403d 100644 --- a/tests/wpt/tests/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html +++ b/tests/wpt/tests/html/semantics/forms/the-input-element/radio-disconnected-group-owner.html @@ -162,6 +162,50 @@ radio1.checked = true; assert_false(radio2.checked, "Element should no longer be checked"); }, "Disconnected document fragments can serve as radio group containers."); + + test(() => { + const container = document.createElement("div"); + const radio1 = document.createElement("input"); + radio1.type = "radio"; + radio1.name = "group"; + radio1.checked = true; + const radio2 = document.createElement("input"); + radio2.type = "radio"; + radio2.name = "group"; + radio2.checked = true; + + container.appendChild(radio1); + assert_true(radio1.checked, "radio1 should be checked"); + container.appendChild(radio2); + assert_true(radio1.checked, "radio1 should still be checked"); + assert_true(radio2.checked, "radio2 should be checked, too"); + + container.innerHTML = ``; + assert_true(container.children[0].checked, "first radio child should be checked"); + assert_true(container.children[1].checked, "second radio child should be checked"); + }, "Appending input radio input into a disconnect tree don't update the other radio inputs in the same radio group."); + + test(() => { + const form = document.createElement("form"); + const radio1 = document.createElement("input"); + radio1.type = "radio"; + radio1.name = "group"; + radio1.checked = true; + const radio2 = document.createElement("input"); + radio2.type = "radio"; + radio2.name = "group"; + radio2.checked = true; + + form.appendChild(radio1); + assert_true(radio1.checked, "radio1 should be checked"); + form.appendChild(radio2); + assert_false(radio1.checked, "radio1 should no longer be checked"); + assert_true(radio2.checked, "radio2 should be checked"); + + form.innerHTML = ``; + assert_false(form.children[0].checked, "first radio child should no longer be checked"); + assert_true(form.children[1].checked, "second radio child should be checked"); + }, "Appending input radio input into a disconnect form should update the other radio inputs in the same radio group."); diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-and-label.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-and-label.tentative.html index 666dde2f60e..e8400ed95c3 100644 --- a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-and-label.tentative.html +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-appearance-optgroup-legend-and-label.tentative.html @@ -1,9 +1,9 @@ - - - + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-click-drag-option.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-click-drag-option.tentative.html new file mode 100644 index 00000000000..748c4a92304 --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-click-drag-option.tentative.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-innertext.tentative.html b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-innertext.tentative.html new file mode 100644 index 00000000000..a3e0482d3ed --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-select-element/customizable-select/select-innertext.tentative.html @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-closedby.tentative.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-closedby.html similarity index 100% rename from tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-closedby.tentative.html rename to tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-closedby.html diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-popover-closedby-complex.tentative.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-popover-closedby-complex.html similarity index 100% rename from tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-popover-closedby-complex.tentative.html rename to tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-popover-closedby-complex.html diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-popover-closedby-simple.tentative.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-popover-closedby-simple.html similarity index 100% rename from tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-popover-closedby-simple.tentative.html rename to tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-popover-closedby-simple.html diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.tentative.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html similarity index 100% rename from tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.tentative.html rename to tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-requestclose.html diff --git a/tests/wpt/tests/html/semantics/popovers/button-type-reset-popovertarget.tentative.html b/tests/wpt/tests/html/semantics/popovers/button-type-reset-popovertarget.html similarity index 100% rename from tests/wpt/tests/html/semantics/popovers/button-type-reset-popovertarget.tentative.html rename to tests/wpt/tests/html/semantics/popovers/button-type-reset-popovertarget.html diff --git a/tests/wpt/tests/html/semantics/popovers/popover-attribute-basic.html b/tests/wpt/tests/html/semantics/popovers/popover-attribute-basic.html index f13a05288c3..067ce18f6a0 100644 --- a/tests/wpt/tests/html/semantics/popovers/popover-attribute-basic.html +++ b/tests/wpt/tests/html/semantics/popovers/popover-attribute-basic.html @@ -92,10 +92,8 @@ window.onload = () => { assert_equals(popover.popover,'manual','Invalid values should reflect as "manual"'); popover.removeAttribute('popover'); assert_equals(popover.popover,null,'No value should reflect as null'); - if (popoverHintSupported()) { - popover.popover='hint'; - assert_equals(popover.getAttribute('popover'),'hint'); - } + popover.popover='hint'; + assert_equals(popover.getAttribute('popover'),'hint'); popover.popover='auto'; assert_equals(popover.getAttribute('popover'),'auto'); popover.popover=''; @@ -156,12 +154,10 @@ window.onload = () => { const popover = createPopover(t); popover.showPopover(); assert_true(popover.matches(':popover-open')); - if (popoverHintSupported()) { - popover.setAttribute('popover','hint'); // Change popover type - assert_false(popover.matches(':popover-open')); - popover.showPopover(); - assert_true(popover.matches(':popover-open')); - } + popover.setAttribute('popover','hint'); // Change popover type + assert_false(popover.matches(':popover-open')); + popover.showPopover(); + assert_true(popover.matches(':popover-open')); popover.setAttribute('popover','manual'); assert_false(popover.matches(':popover-open')); popover.showPopover(); @@ -176,7 +172,7 @@ window.onload = () => { assert_false(popover.matches(':popover-open'),'From "auto" to "invalid" (which is interpreted as "manual") should close the popover'); },'Changing attribute values should close open popovers'); - const validTypes = popoverHintSupported() ? ["auto","hint","manual"] : ["auto","manual"]; + const validTypes = ["auto","hint","manual"]; validTypes.forEach(type => { test((t) => { const popover = createPopover(t); diff --git a/tests/wpt/tests/html/semantics/popovers/popover-hint-crash.tentative.html b/tests/wpt/tests/html/semantics/popovers/popover-hint-crash.html similarity index 100% rename from tests/wpt/tests/html/semantics/popovers/popover-hint-crash.tentative.html rename to tests/wpt/tests/html/semantics/popovers/popover-hint-crash.html diff --git a/tests/wpt/tests/html/semantics/popovers/popover-invoking-attribute-hint.tentative.html b/tests/wpt/tests/html/semantics/popovers/popover-invoking-attribute-hint.html similarity index 100% rename from tests/wpt/tests/html/semantics/popovers/popover-invoking-attribute-hint.tentative.html rename to tests/wpt/tests/html/semantics/popovers/popover-invoking-attribute-hint.html diff --git a/tests/wpt/tests/html/semantics/popovers/popover-light-dismiss-hint.tentative.html b/tests/wpt/tests/html/semantics/popovers/popover-light-dismiss-hint.html similarity index 100% rename from tests/wpt/tests/html/semantics/popovers/popover-light-dismiss-hint.tentative.html rename to tests/wpt/tests/html/semantics/popovers/popover-light-dismiss-hint.html diff --git a/tests/wpt/tests/html/semantics/popovers/popover-top-layer-nesting-hints.tentative.html b/tests/wpt/tests/html/semantics/popovers/popover-top-layer-nesting-hints.html similarity index 100% rename from tests/wpt/tests/html/semantics/popovers/popover-top-layer-nesting-hints.tentative.html rename to tests/wpt/tests/html/semantics/popovers/popover-top-layer-nesting-hints.html diff --git a/tests/wpt/tests/html/semantics/popovers/popover-types-with-hints.tentative.html b/tests/wpt/tests/html/semantics/popovers/popover-types-with-hints.html similarity index 100% rename from tests/wpt/tests/html/semantics/popovers/popover-types-with-hints.tentative.html rename to tests/wpt/tests/html/semantics/popovers/popover-types-with-hints.html diff --git a/tests/wpt/tests/html/semantics/popovers/resources/popover-top-layer-nesting.js b/tests/wpt/tests/html/semantics/popovers/resources/popover-top-layer-nesting.js index ace10b3f7bc..affb08ca726 100644 --- a/tests/wpt/tests/html/semantics/popovers/resources/popover-top-layer-nesting.js +++ b/tests/wpt/tests/html/semantics/popovers/resources/popover-top-layer-nesting.js @@ -48,7 +48,7 @@ function runTopLayerTests(testCases, testAnchorAttribute) { // Add another popover within the top layer element and make sure entire stack stays open. const newPopover = document.createElement('div'); t.add_cleanup(() => newPopover.remove()); - newPopover.popover = popoverHintSupported() ? 'hint' : 'auto'; + newPopover.popover = 'hint'; element.appendChild(newPopover); popovers.forEach(popover => assert_equals(popover.matches(':popover-open'),popover.dataset.stayOpen==='true','Adding another popover shouldn\'t change anything')); assert_true(showing(),'top layer element should still be top layer'); @@ -60,7 +60,7 @@ function runTopLayerTests(testCases, testAnchorAttribute) { promise_test(async t => { const {element,show,showing} = createTopLayerElement(t,topLayerType); - element.popover = popoverHintSupported() ? 'hint' : 'auto'; + element.popover = 'hint'; target.appendChild(element); // Show the popovers. diff --git a/tests/wpt/tests/html/semantics/popovers/resources/popover-utils.js b/tests/wpt/tests/html/semantics/popovers/resources/popover-utils.js index 96ac7e03f0e..eb5dab38245 100644 --- a/tests/wpt/tests/html/semantics/popovers/resources/popover-utils.js +++ b/tests/wpt/tests/html/semantics/popovers/resources/popover-utils.js @@ -117,13 +117,6 @@ function showDefaultopenPopoversOnLoad() { window.addEventListener('load',show,{once:true}); } } -function popoverHintSupported() { - // TODO(crbug.com/1416284): This function should be removed, and - // any calls replaced with `true`, once popover=hint ships. - const testElement = document.createElement('div'); - testElement.popover = 'hint'; - return testElement.popover === 'hint'; -} function assertPopoverVisibility(popover, isPopover, expectedVisibility, message) { const isVisible = isElementVisible(popover); diff --git a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestelement-interface.tentative.html b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestelement-interface.tentative.html index 8b1e3756955..bc68dc54577 100644 --- a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestelement-interface.tentative.html +++ b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestelement-interface.tentative.html @@ -84,82 +84,4 @@ "interestTargetElement attribute value must be an instance of Element", ); }, "interestTargetElement throws error on assignment of non Element"); - - test(function () { - assert_false(buttonInvoker.hasAttribute("interestaction")); - assert_equals(buttonInvoker.interestAction, ""); - assert_false(aInvoker.hasAttribute("interestaction")); - assert_equals(aInvoker.interestAction, ""); - assert_false(inputInvoker.hasAttribute("interestaction")); - assert_equals(inputInvoker.interestAction, ""); - }, "interestAction reflects '' when attribute not present"); - - test(function () { - buttonInvoker.setAttribute("interestaction", ""); - assert_equals(buttonInvoker.getAttribute("interestaction"), ""); - assert_equals(buttonInvoker.interestAction, ""); - aInvoker.setAttribute("interestaction", ""); - assert_equals(aInvoker.getAttribute("interestaction"), ""); - assert_equals(aInvoker.interestAction, ""); - inputInvoker.setAttribute("interestaction", ""); - assert_equals(inputInvoker.getAttribute("interestaction"), ""); - assert_equals(inputInvoker.interestAction, ""); - }, "interestAction reflects '' when attribute empty, setAttribute version"); - - test(function () { - buttonInvoker.interestAction = ""; - assert_equals(buttonInvoker.getAttribute("interestaction"), ""); - assert_equals(buttonInvoker.interestAction, ""); - aInvoker.interestAction = ""; - assert_equals(aInvoker.getAttribute("interestaction"), ""); - assert_equals(aInvoker.interestAction, ""); - inputInvoker.interestAction = ""; - assert_equals(inputInvoker.getAttribute("interestaction"), ""); - assert_equals(inputInvoker.interestAction, ""); - }, "interestAction reflects '' when attribute empty, IDL setter version"); - - test(function () { - buttonInvoker.interestAction = "fooBarBaz"; - assert_equals(buttonInvoker.getAttribute("interestaction"), "fooBarBaz"); - assert_equals(buttonInvoker.interestAction, "fooBarBaz"); - aInvoker.interestAction = "fooBarBaz"; - assert_equals(aInvoker.getAttribute("interestaction"), "fooBarBaz"); - assert_equals(aInvoker.interestAction, "fooBarBaz"); - inputInvoker.interestAction = "fooBarBaz"; - assert_equals(inputInvoker.getAttribute("interestaction"), "fooBarBaz"); - assert_equals(inputInvoker.interestAction, "fooBarBaz"); - }, "interestAction reflects same casing"); - - test(function () { - buttonInvoker.interestAction = []; - assert_equals(buttonInvoker.getAttribute("interestaction"), ""); - assert_equals(buttonInvoker.interestAction, ""); - aInvoker.interestAction = []; - assert_equals(aInvoker.getAttribute("interestaction"), ""); - assert_equals(aInvoker.interestAction, ""); - inputInvoker.interestAction = []; - assert_equals(inputInvoker.getAttribute("interestaction"), ""); - assert_equals(inputInvoker.interestAction, ""); - }, "interestAction reflects '' when attribute set to []"); - - test(function () { - buttonInvoker.interestAction = [1, 2, 3]; - assert_equals(buttonInvoker.getAttribute("interestaction"), "1,2,3"); - assert_equals(buttonInvoker.interestAction, "1,2,3"); - aInvoker.interestAction = [1, 2, 3]; - assert_equals(aInvoker.getAttribute("interestaction"), "1,2,3"); - assert_equals(aInvoker.interestAction, "1,2,3"); - inputInvoker.interestAction = [1, 2, 3]; - assert_equals(inputInvoker.getAttribute("interestaction"), "1,2,3"); - assert_equals(inputInvoker.interestAction, "1,2,3"); - }, "interestAction reflects tostring value"); - - test(function () { - buttonInvoker.interestAction = {}; - assert_equals(buttonInvoker.interestAction, "[object Object]"); - aInvoker.interestAction = {}; - assert_equals(aInvoker.interestAction, "[object Object]"); - inputInvoker.interestAction = {}; - assert_equals(inputInvoker.interestAction, "[object Object]"); - }, "interestAction reflects tostring value 2"); diff --git a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestevent-dispatch-shadow.tentative.html b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestevent-dispatch-shadow.tentative.html index d96907ec84a..9911357e94d 100644 --- a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestevent-dispatch-shadow.tentative.html +++ b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestevent-dispatch-shadow.tentative.html @@ -1,8 +1,11 @@ - + - + @@ -20,63 +23,35 @@ const slot = shadow.appendChild(document.createElement("slot")); let childEvent = null; let childEventTarget = null; - let childEventInvoker = null; + let childEventSource = null; let hostEvent = null; let hostEventTarget = null; - let hostEventInvoker = null; - slot.addEventListener( - "interest", - (e) => { + let hostEventSource = null; + slot.addEventListener("interest", (e) => { childEvent = e; childEventTarget = e.target; - childEventInvoker = e.invoker; - }, - { once: true }, - ); - host.addEventListener( - "interest", - (e) => { + childEventSource = e.source; + }, { once: true }); + host.addEventListener("interest", (e) => { hostEvent = e; hostEventTarget = e.target; - hostEventInvoker = e.invoker; - }, - { once: true }, - ); + hostEventSource = e.source; + }, { once: true }); const event = new InterestEvent("interest", { bubbles: true, - invoker: slot, + source: slot, composed: true, }); slot.dispatchEvent(event); assert_true(childEvent instanceof InterestEvent, "slot saw interest event"); - assert_equals( - childEventTarget, - slot, - "target is child inside shadow boundary", - ); - assert_equals( - childEventInvoker, - slot, - "invoker is child inside shadow boundary", - ); - assert_equals( - hostEvent, - childEvent, - "event dispatch propagates across shadow boundary", - ); - assert_equals( - hostEventTarget, - host, - "target is retargeted to shadowroot host", - ); - assert_equals( - hostEventInvoker, - host, - "invoker is retargeted to shadowroot host", - ); - }, "InterestEvent propagates across shadow boundaries retargeting invoker"); + assert_equals(childEventTarget, slot, "target is child inside shadow boundary"); + assert_equals(childEventSource, slot, "source is child inside shadow boundary"); + assert_equals(hostEvent, childEvent, "event dispatch propagates across shadow boundary"); + assert_equals(hostEventTarget, host, "target is retargeted to shadowroot host"); + assert_equals(hostEventSource, host, "source is retargeted to shadowroot host"); + }, "InterestEvent propagates across shadow boundaries retargeting invoker source"); - test(function (t) { + promise_test(async (t) => { const host = document.createElement("div"); document.body.append(host); t.add_cleanup(() => host.remove()); @@ -86,19 +61,16 @@ button.interestTargetElement = interestee; let event = null; let eventTarget = null; - let eventInvoker = null; - interestee.addEventListener( - "interest", - (e) => { + let eventSource = null; + interestee.addEventListener("interest", (e) => { event = e; eventTarget = e.target; - eventInvoker = e.invoker; - }, - { once: true }, - ); - button.focus(); + eventSource = e.source; + },{ once: true }); + await hoverOver(button); + assert_true(!!event,"InterestEvent gets fired"); assert_true(event instanceof InterestEvent); assert_equals(eventTarget, interestee, "target is interestee"); - assert_equals(eventInvoker, host, "interestee is host"); + assert_equals(eventSource, host, "interestee is host"); }, "cross shadow InterestEvent retargets interestee to host element"); diff --git a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestevent-interface.tentative.html b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestevent-interface.tentative.html index ed7d82f1fb7..9ed95a6a028 100644 --- a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestevent-interface.tentative.html +++ b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interestevent-interface.tentative.html @@ -16,152 +16,80 @@ diff --git a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-anchor-event-dispatch.tentative.html b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-anchor-event-dispatch.tentative.html index b5a481ae08f..88a54c21f83 100644 --- a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-anchor-event-dispatch.tentative.html +++ b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-anchor-event-dispatch.tentative.html @@ -15,33 +15,18 @@ diff --git a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-area-event-dispatch.tentative.html b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-area-event-dispatch.tentative.html index 358acbb73ac..55732350826 100644 --- a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-area-event-dispatch.tentative.html +++ b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-area-event-dispatch.tentative.html @@ -18,33 +18,18 @@ diff --git a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-button-event-dispatch.tentative.html b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-button-event-dispatch.tentative.html index 69126dbe14b..a9d68bb03fd 100644 --- a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-button-event-dispatch.tentative.html +++ b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-button-event-dispatch.tentative.html @@ -16,71 +16,23 @@ diff --git a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-on-popover-behavior.tentative.html b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-on-popover-behavior.tentative.html index fd0a77b9359..cbb5e4014ee 100644 --- a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-on-popover-behavior.tentative.html +++ b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-on-popover-behavior.tentative.html @@ -17,44 +17,17 @@ diff --git a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-svg-a-event-dispatch.tentative.html b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-svg-a-event-dispatch.tentative.html index 7fb4b1c19d6..8208c8d56af 100644 --- a/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-svg-a-event-dispatch.tentative.html +++ b/tests/wpt/tests/html/semantics/the-button-element/interest-target/interesttarget-svg-a-event-dispatch.tentative.html @@ -20,32 +20,19 @@ diff --git a/tests/wpt/tests/interfaces/css-fonts-5.idl b/tests/wpt/tests/interfaces/css-fonts-5.idl new file mode 100644 index 00000000000..06461b0366c --- /dev/null +++ b/tests/wpt/tests/interfaces/css-fonts-5.idl @@ -0,0 +1,54 @@ +// GENERATED CONTENT - DO NOT EDIT +// Content was automatically extracted by Reffy into webref +// (https://github.com/w3c/webref) +// Source: CSS Fonts Module Level 5 (https://drafts.csswg.org/css-fonts-5/) + +[Exposed=Window] +interface CSSFontFaceDescriptors : CSSStyleDeclaration { + attribute [LegacyNullToEmptyString] CSSOMString src; + attribute [LegacyNullToEmptyString] CSSOMString fontFamily; + attribute [LegacyNullToEmptyString] CSSOMString font-family; + attribute [LegacyNullToEmptyString] CSSOMString fontStyle; + attribute [LegacyNullToEmptyString] CSSOMString font-style; + attribute [LegacyNullToEmptyString] CSSOMString fontWeight; + attribute [LegacyNullToEmptyString] CSSOMString font-weight; + attribute [LegacyNullToEmptyString] CSSOMString fontStretch; + attribute [LegacyNullToEmptyString] CSSOMString font-stretch; + attribute [LegacyNullToEmptyString] CSSOMString fontWidth; + attribute [LegacyNullToEmptyString] CSSOMString font-width; + attribute [LegacyNullToEmptyString] CSSOMString fontSize; + attribute [LegacyNullToEmptyString] CSSOMString font-size; + attribute [LegacyNullToEmptyString] CSSOMString sizeAdjust; + attribute [LegacyNullToEmptyString] CSSOMString size-adjust; + attribute [LegacyNullToEmptyString] CSSOMString unicodeRange; + attribute [LegacyNullToEmptyString] CSSOMString unicode-range; + attribute [LegacyNullToEmptyString] CSSOMString fontFeatureSettings; + attribute [LegacyNullToEmptyString] CSSOMString font-feature-settings; + attribute [LegacyNullToEmptyString] CSSOMString fontVariationSettings; + attribute [LegacyNullToEmptyString] CSSOMString font-variation-settings; + attribute [LegacyNullToEmptyString] CSSOMString fontNamedInstance; + attribute [LegacyNullToEmptyString] CSSOMString font-named-instance; + attribute [LegacyNullToEmptyString] CSSOMString fontDisplay; + attribute [LegacyNullToEmptyString] CSSOMString font-display; + attribute [LegacyNullToEmptyString] CSSOMString fontLanguageOverride; + attribute [LegacyNullToEmptyString] CSSOMString font-language-override; + attribute [LegacyNullToEmptyString] CSSOMString ascentOverride; + attribute [LegacyNullToEmptyString] CSSOMString ascent-override; + attribute [LegacyNullToEmptyString] CSSOMString descentOverride; + attribute [LegacyNullToEmptyString] CSSOMString descent-override; + attribute [LegacyNullToEmptyString] CSSOMString lineGapOverride; + attribute [LegacyNullToEmptyString] CSSOMString line-gap-override; + attribute [LegacyNullToEmptyString] CSSOMString superscriptPositionOverride; + attribute [LegacyNullToEmptyString] CSSOMString superscript-position-override; + attribute [LegacyNullToEmptyString] CSSOMString subscriptPositionOverride; + attribute [LegacyNullToEmptyString] CSSOMString subscript-position-override; + attribute [LegacyNullToEmptyString] CSSOMString superscriptSizeOverride; + attribute [LegacyNullToEmptyString] CSSOMString superscript-size-override; + attribute [LegacyNullToEmptyString] CSSOMString subscriptSizeOverride; + attribute [LegacyNullToEmptyString] CSSOMString subscript-size-override; +}; + +[Exposed=Window] +interface CSSFontFaceRule : CSSRule { + [SameObject, PutForwards=cssText] readonly attribute CSSFontFaceDescriptors style; +}; diff --git a/tests/wpt/tests/interfaces/css-fonts.idl b/tests/wpt/tests/interfaces/css-fonts.idl index d5c9dc86705..9b8034bc6d7 100644 --- a/tests/wpt/tests/interfaces/css-fonts.idl +++ b/tests/wpt/tests/interfaces/css-fonts.idl @@ -3,44 +3,6 @@ // (https://github.com/w3c/webref) // Source: CSS Fonts Module Level 4 (https://drafts.csswg.org/css-fonts-4/) -[Exposed=Window] -interface CSSFontFaceDescriptors : CSSStyleDeclaration { - attribute [LegacyNullToEmptyString] CSSOMString src; - attribute [LegacyNullToEmptyString] CSSOMString fontFamily; - attribute [LegacyNullToEmptyString] CSSOMString font-family; - attribute [LegacyNullToEmptyString] CSSOMString fontStyle; - attribute [LegacyNullToEmptyString] CSSOMString font-style; - attribute [LegacyNullToEmptyString] CSSOMString fontWeight; - attribute [LegacyNullToEmptyString] CSSOMString font-weight; - attribute [LegacyNullToEmptyString] CSSOMString fontStretch; - attribute [LegacyNullToEmptyString] CSSOMString font-stretch; - attribute [LegacyNullToEmptyString] CSSOMString fontWidth; - attribute [LegacyNullToEmptyString] CSSOMString font-width; - attribute [LegacyNullToEmptyString] CSSOMString unicodeRange; - attribute [LegacyNullToEmptyString] CSSOMString unicode-range; - attribute [LegacyNullToEmptyString] CSSOMString fontFeatureSettings; - attribute [LegacyNullToEmptyString] CSSOMString font-feature-settings; - attribute [LegacyNullToEmptyString] CSSOMString fontVariationSettings; - attribute [LegacyNullToEmptyString] CSSOMString font-variation-settings; - attribute [LegacyNullToEmptyString] CSSOMString fontNamedInstance; - attribute [LegacyNullToEmptyString] CSSOMString font-named-instance; - attribute [LegacyNullToEmptyString] CSSOMString fontDisplay; - attribute [LegacyNullToEmptyString] CSSOMString font-display; - attribute [LegacyNullToEmptyString] CSSOMString fontLanguageOverride; - attribute [LegacyNullToEmptyString] CSSOMString font-language-override; - attribute [LegacyNullToEmptyString] CSSOMString ascentOverride; - attribute [LegacyNullToEmptyString] CSSOMString ascent-override; - attribute [LegacyNullToEmptyString] CSSOMString descentOverride; - attribute [LegacyNullToEmptyString] CSSOMString descent-override; - attribute [LegacyNullToEmptyString] CSSOMString lineGapOverride; - attribute [LegacyNullToEmptyString] CSSOMString line-gap-override; -}; - -[Exposed=Window] -interface CSSFontFaceRule : CSSRule { - [SameObject, PutForwards=cssText] readonly attribute CSSFontFaceDescriptors style; -}; - partial interface CSSRule { const unsigned short FONT_FEATURE_VALUES_RULE = 14; }; [Exposed=Window] diff --git a/tests/wpt/tests/interfaces/css-mixins.idl b/tests/wpt/tests/interfaces/css-mixins.idl index 49806ab5470..6629b3861f6 100644 --- a/tests/wpt/tests/interfaces/css-mixins.idl +++ b/tests/wpt/tests/interfaces/css-mixins.idl @@ -5,3 +5,13 @@ [Exposed=Window] interface CSSFunctionRule : CSSGroupingRule { }; + +[Exposed=Window] +interface CSSFunctionDescriptors : CSSStyleDeclaration { + attribute [LegacyNullToEmptyString] CSSOMString result; +}; + +[Exposed=Window] +interface CSSFunctionDeclarations : CSSRule { + [SameObject, PutForwards=cssText] readonly attribute CSSFunctionDescriptors style; +}; diff --git a/tests/wpt/tests/interfaces/digital-credentials.idl b/tests/wpt/tests/interfaces/digital-credentials.idl index e20079efa14..e4ebb3b3e86 100644 --- a/tests/wpt/tests/interfaces/digital-credentials.idl +++ b/tests/wpt/tests/interfaces/digital-credentials.idl @@ -19,5 +19,5 @@ dictionary DigitalCredentialRequest { [Exposed=Window, SecureContext] interface DigitalCredential : Credential { readonly attribute DOMString protocol; - readonly attribute object data; + [SameObject] readonly attribute object data; }; diff --git a/tests/wpt/tests/interfaces/fedcm.idl b/tests/wpt/tests/interfaces/fedcm.idl index 16b5b2faf10..07f7955ff64 100644 --- a/tests/wpt/tests/interfaces/fedcm.idl +++ b/tests/wpt/tests/interfaces/fedcm.idl @@ -49,6 +49,7 @@ dictionary IdentityProviderRequestOptions : IdentityProviderConfig { USVString nonce; DOMString loginHint; DOMString domainHint; + sequence fields; any params; }; diff --git a/tests/wpt/tests/interfaces/html.idl b/tests/wpt/tests/interfaces/html.idl index d4f8b9a7680..3832a6f9b71 100644 --- a/tests/wpt/tests/interfaces/html.idl +++ b/tests/wpt/tests/interfaces/html.idl @@ -1222,9 +1222,11 @@ interface HTMLDialogElement : HTMLElement { [CEReactions] attribute boolean open; attribute DOMString returnValue; + [CEReactions] attribute DOMString closedBy; [CEReactions] undefined show(); [CEReactions] undefined showModal(); [CEReactions] undefined close(optional DOMString returnValue); + [CEReactions] undefined requestClose(optional DOMString returnValue); }; [Exposed=Window] diff --git a/tests/wpt/tests/interfaces/mediacapture-surface-control.idl b/tests/wpt/tests/interfaces/mediacapture-surface-control.idl index b0bbd22304f..964f662da7f 100644 --- a/tests/wpt/tests/interfaces/mediacapture-surface-control.idl +++ b/tests/wpt/tests/interfaces/mediacapture-surface-control.idl @@ -12,5 +12,5 @@ partial interface CaptureController { partial interface CaptureController { constructor(); - Promise forwardWheel(HTMLElement element); + Promise forwardWheel(HTMLElement? element); }; diff --git a/tests/wpt/tests/interfaces/permissions-policy.idl b/tests/wpt/tests/interfaces/permissions-policy.idl index 5878d8d150a..806d2eb80f6 100644 --- a/tests/wpt/tests/interfaces/permissions-policy.idl +++ b/tests/wpt/tests/interfaces/permissions-policy.idl @@ -27,4 +27,5 @@ interface PermissionsPolicyViolationReportBody : ReportBody { readonly attribute long? lineNumber; readonly attribute long? columnNumber; readonly attribute DOMString disposition; + readonly attribute DOMString? allowAttribute; }; diff --git a/tests/wpt/tests/interfaces/shared-storage.idl b/tests/wpt/tests/interfaces/shared-storage.idl index b6863eff8ee..6f38d673952 100644 --- a/tests/wpt/tests/interfaces/shared-storage.idl +++ b/tests/wpt/tests/interfaces/shared-storage.idl @@ -38,15 +38,49 @@ partial interface Window { [SecureContext] readonly attribute SharedStorage? sharedStorage; }; +[Exposed=(Window,SharedStorageWorklet)] +interface SharedStorageModifierMethod {}; + +[Exposed=(Window, SharedStorageWorklet)] +interface SharedStorageSetMethod : SharedStorageModifierMethod { + constructor(DOMString key, DOMString value, optional SharedStorageSetMethodOptions options = {}); +}; + +[Exposed=(Window, SharedStorageWorklet)] +interface SharedStorageAppendMethod : SharedStorageModifierMethod { + constructor(DOMString key, DOMString value, optional SharedStorageModifierMethodOptions options = {}); +}; + +[Exposed=(Window, SharedStorageWorklet)] +interface SharedStorageDeleteMethod : SharedStorageModifierMethod { + constructor(DOMString key, optional SharedStorageModifierMethodOptions options = {}); +}; + +[Exposed=(Window, SharedStorageWorklet)] +interface SharedStorageClearMethod : SharedStorageModifierMethod { + constructor(optional SharedStorageModifierMethodOptions options = {}); +}; + +dictionary SharedStorageModifierMethodOptions { + DOMString withLock; +}; + +dictionary SharedStorageSetMethodOptions : SharedStorageModifierMethodOptions { + boolean ignoreIfPresent; +}; + [Exposed=(Window,SharedStorageWorklet)] interface SharedStorage { Promise set(DOMString key, DOMString value, optional SharedStorageSetMethodOptions options = {}); Promise append(DOMString key, - DOMString value); - Promise delete(DOMString key); - Promise clear(); + DOMString value, + optional SharedStorageModifierMethodOptions options = {}); + Promise delete(DOMString key, optional SharedStorageModifierMethodOptions options = {}); + Promise clear(optional SharedStorageModifierMethodOptions options = {}); + Promise batchUpdate(sequence methods, + optional SharedStorageModifierMethodOptions options = {}); [Exposed=Window] Promise selectURL(DOMString name, @@ -76,10 +110,6 @@ interface SharedStorage { async iterable; }; -dictionary SharedStorageSetMethodOptions { - boolean ignoreIfPresent = false; -}; - dictionary SharedStoragePrivateAggregationConfig { USVString aggregationCoordinatorOrigin; USVString contextId; diff --git a/tests/wpt/tests/interfaces/webnn.idl b/tests/wpt/tests/interfaces/webnn.idl index 132280b05f8..3e1d9a9f440 100644 --- a/tests/wpt/tests/interfaces/webnn.idl +++ b/tests/wpt/tests/interfaces/webnn.idl @@ -34,6 +34,10 @@ interface ML { typedef record MLNamedTensors; +dictionary MLContextLostInfo { + DOMString message; +}; + [SecureContext, Exposed=(Window, DedicatedWorker)] interface MLContext { undefined dispatch(MLGraph graph, MLNamedTensors inputs, MLNamedTensors outputs); @@ -46,6 +50,10 @@ interface MLContext { undefined writeTensor(MLTensor tensor, AllowSharedBufferSource inputData); MLOpSupportLimits opSupportLimits(); + + undefined destroy(); + + readonly attribute Promise lost; }; dictionary MLOpSupportLimits { @@ -71,7 +79,9 @@ dictionary MLSingleInputSupportLimits { }; [SecureContext, Exposed=(Window, DedicatedWorker)] -interface MLGraph {}; +interface MLGraph { + undefined destroy(); +}; enum MLInputOperandLayout { "nchw", diff --git a/tests/wpt/tests/lint.ignore b/tests/wpt/tests/lint.ignore index 6ee7bfa9b70..27728b07fc2 100644 --- a/tests/wpt/tests/lint.ignore +++ b/tests/wpt/tests/lint.ignore @@ -302,7 +302,6 @@ SET TIMEOUT: workers/* SET TIMEOUT: xhr/resources/init.htm SET TIMEOUT: xhr/resources/xmlhttprequest-timeout.js SET TIMEOUT: fenced-frame/resolve-to-config-promise.https.html -SET TIMEOUT: partitioned-popins/partitioned-popins.partitions.tentative.https.window.js # generate_tests implementation and sample usage GENERATE_TESTS: resources/test/tests/functional/generate-callback.html @@ -471,7 +470,7 @@ CONSOLE: css/css-shapes/shape-outside/supported-shapes/support/test-utils.js CONSOLE: css/css-values/viewport-units-css2-001.html CONSOLE: css/css-writing-modes/orthogonal-parent-shrink-to-fit-001*.html CONSOLE: css/css-writing-modes/tools/generators/template.html -CONSOLE: bluetooth/characteristic/readValue/characteristic-is-removed.https.window.js +CONSOLE: bluetooth/legacy/characteristic/readValue/characteristic-is-removed.https.window.js TRAILING WHITESPACE: css/css-fonts/support/fonts/gsubtest-lookup3.ufo/features.fea diff --git a/tests/wpt/tests/navigation-timing/content-encoding.https.html b/tests/wpt/tests/navigation-timing/content-encoding.https.html new file mode 100644 index 00000000000..5450b5913bd --- /dev/null +++ b/tests/wpt/tests/navigation-timing/content-encoding.https.html @@ -0,0 +1,36 @@ + + + + + + + contentEncoding in navigation timing + + + + + + + + + +

+ Description

+

+ This test validates that when a html is compressed with gzip, navigation timing reports contentEncoding as gzip

+ + + diff --git a/tests/wpt/tests/partitioned-popins/partitioned-popins.partitions.tentative.https.window.js b/tests/wpt/tests/partitioned-popins/partitioned-popins.partitions.tentative.https.window.js index 0f1a7c0a6e0..ed664f71e10 100644 --- a/tests/wpt/tests/partitioned-popins/partitioned-popins.partitions.tentative.https.window.js +++ b/tests/wpt/tests/partitioned-popins/partitioned-popins.partitions.tentative.https.window.js @@ -3,7 +3,19 @@ // META: script=/common/dispatcher/dispatcher.js // META: script=/common/get-host-info.sub.js // META: script=/common/utils.js +// META: script=/common/subset-tests-by-key.js // META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js +// META: variant=?include=variant-1-test +// META: variant=?include=variant-2-test +// META: variant=?include=variant-3-test +// META: variant=?include=variant-4-test +// META: variant=?include=variant-5-test +// META: variant=?include=variant-6-test +// META: variant=?include=variant-7-test +// META: variant=?include=variant-8-test +// META: variant=?include=variant-9-test +// META: variant=?include=variant-10-test +// META: variant=?include=variant-11-test // META: timeout=long 'use strict'; @@ -26,13 +38,9 @@ async function openPopin(test, remoteContextWrapper, origin) { const popin = await remoteContextWrapper.addWindow( /*extraConfig=*/ origin ? { origin } : null, /*options=*/ { features: "popin" }); - assert_equals(await popin.executeScript(() => { return window.popinContextType(); }), "partitioned"); + assert_equals(await popin.executeScript(() => window.popinContextType()), "partitioned"); test.add_cleanup(async () => { - await popin.executeScript(() => { - // We need to delay the window closing until the next event cycle to - // ensure the execution of the script via remote context returns properly. - setTimeout(() => window.close(), 0); - }); + await popin.executeScript(() => window.close()); }); return popin; } @@ -106,7 +114,7 @@ promise_setup(async () => { await seedPartition(handles.crossSiteFrameSameSite, "crossSiteFrameSameSite"); }); -promise_test(async t => { +subsetTestByKey("variant-1-test", promise_test, async t => { const popin = await openPopin(t, handles.main); // The popin, it's opener and all their ancestors are same-site, so the popin @@ -134,7 +142,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Main site opens same-site popin."); -promise_test(async t => { +subsetTestByKey("variant-2-test", promise_test, async t => { const popin = await openPopin(t, handles.main, "HTTPS_NOTSAMESITE_ORIGIN"); // The popin is cross-site to its opener, so the popin should only have access @@ -146,7 +154,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Main site opens cross-site popin."); -promise_test(async t => { +subsetTestByKey("variant-3-test", promise_test, async t => { const popin = await openPopin(t, handles.frameSameSite); // The popin, it's opener and all their ancestors are same-site, so the popin @@ -174,7 +182,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Same-site frame opens same-site popin."); -promise_test(async t => { +subsetTestByKey("variant-4-test", promise_test, async t => { const popin = await openPopin(t, handles.frameCrossSite); // The main-host popin has a cross-site ancestor, so it should only have @@ -194,7 +202,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Cross-site frame opens main-host popin."); -promise_test(async t => { +subsetTestByKey("variant-5-test", promise_test, async t => { const popin = await openPopin(t, handles.frameCrossSite, "HTTPS_NOTSAMESITE_ORIGIN"); // The popin and its opener is cross-site to the main frame, so the popin @@ -207,7 +215,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Cross-site frame opens alternative-host popin."); -promise_test(async t => { +subsetTestByKey("variant-6-test", promise_test, async t => { const popin = await openPopin(t, handles.frameSameSiteWithCrossSiteAncestor); // The main-host popin has a cross-site ancestor, so it should only have @@ -227,7 +235,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Same-site frame with cross-site ancestor opens main-host popin."); -promise_test(async t => { +subsetTestByKey("variant-7-test", promise_test, async t => { const popin = await openPopin(t, handles.main); // The frame in the popin, the popin, it's opener and all their ancestors are @@ -257,7 +265,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Main site opens same-site popin with same-site frame."); -promise_test(async t => { +subsetTestByKey("variant-8-test", promise_test, async t => { const popin = await openPopin(t, handles.main); const popinFrame = await popin.addIframe( @@ -279,7 +287,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Main site opens same-site popin with cross-site frame."); -promise_test(async t => { +subsetTestByKey("variant-9-test", promise_test, async t => { const popin = await openPopin(t, handles.main, "HTTPS_NOTSAMESITE_ORIGIN"); const popinFrame = await popin.addIframe(); @@ -301,7 +309,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Main site opens cross-site popin with main-host frame."); -promise_test(async t => { +subsetTestByKey("variant-10-test", promise_test, async t => { const popin = await openPopin(t, handles.frameCrossSite); const popinFrame = await popin.addIframe( @@ -323,7 +331,7 @@ promise_test(async t => { t.done(); }, "Verify Partitioned Popins have access to the proper cookie/storage partitions - Cross-site frame opens main-host popin with cross-site frame."); -promise_test(async t => { +subsetTestByKey("variant-11-test", promise_test, async t => { const popin = await openPopin(t, handles.frameCrossSite, "HTTPS_NOTSAMESITE_ORIGIN"); const popinFrame = await popin.addIframe(); diff --git a/tests/wpt/tests/permissions-policy/experimental-features/resources/unload-helper.js b/tests/wpt/tests/permissions-policy/experimental-features/resources/unload-helper.js index 9739ead69d6..d1bf0105ce5 100644 --- a/tests/wpt/tests/permissions-policy/experimental-features/resources/unload-helper.js +++ b/tests/wpt/tests/permissions-policy/experimental-features/resources/unload-helper.js @@ -9,15 +9,22 @@ async function isUnloadAllowed(remoteContextWrapper) { }); } -// Checks whether a frame runs unload handlers. -// This checks the policy directly and also installs an unload handler and -// navigates the frame checking that the handler ran. -async function assertWindowRunsUnload( +// Checks whether a frame allows running unload handlers by checking the policy. +async function assertWindowAllowsUnload( remoteContextWrapper, name, {shouldRunUnload}) { const maybeNot = shouldRunUnload ? '' : 'not '; assert_equals( await isUnloadAllowed(remoteContextWrapper), shouldRunUnload, `${name}: unload in ${name} should ${maybeNot}be allowed`); +} + +// Checks whether a frame runs unload handlers. +// This checks the policy directly and also installs an unload handler and +// navigates the frame checking that the handler ran. +async function assertWindowRunsUnload( + remoteContextWrapper, name, {shouldRunUnload}) { + await assertWindowAllowsUnload(remoteContextWrapper, name, {shouldRunUnload}); + const maybeNot = shouldRunUnload ? '' : 'not '; // Set up recording of whether unload handler ran. await remoteContextWrapper.executeScript((name) => { diff --git a/tests/wpt/tests/permissions-policy/experimental-features/unload-allowed-headerless.tentative.window.js b/tests/wpt/tests/permissions-policy/experimental-features/unload-allowed-headerless.tentative.window.js new file mode 100644 index 00000000000..12c9e1ee79a --- /dev/null +++ b/tests/wpt/tests/permissions-policy/experimental-features/unload-allowed-headerless.tentative.window.js @@ -0,0 +1,41 @@ +// META: title='unload' Policy : allowed in headerless doc when allowed in main frame. +// META: script=/common/dispatcher/dispatcher.js +// META: script=/common/utils.js +// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js +// META: script=./resources/unload-helper.js +// META: variant=?urlType=srcdoc +// META: variant=?urlType=data +// META: variant=?urlType=blob +// META: variant=?urlType=blank + +'use strict'; + +promise_test(async t => { + const rcHelper = new RemoteContextHelper({ + scripts: ['./resources/unload-helper.js'], + }); + // In the same browsing context group to ensure BFCache is not used. + const main = await rcHelper.addWindow( + {headers: [['Permissions-Policy', 'unload=*']]}, + ); + + const url = new URL(location); + const urlType = url.searchParams.get('urlType'); + + if (urlType == 'srcdoc') { + const subframe = await main.addIframeSrcdoc( + /*extraConfig=*/ {}, /*attributes=*/ {allow: 'unload'}); + await assertWindowRunsUnload(subframe, 'subframe', {shouldRunUnload: true}); + } else { + const subframe = await main.addIframe( + /*extraConfig=*/ {urlType: urlType}, /*attributes=*/ {allow: 'unload'}); + // The other URL types cannot easily test unload directly. `data: and + // `blob:` documents cannot access storage. `about:blank` loses the content + // that was written into it when reloaded on going back and so stops + // functioning as a remote execution context. + await assertWindowAllowsUnload( + subframe, 'subframe', {shouldRunUnload: true}); + } + + await assertWindowRunsUnload(main, 'main', {shouldRunUnload: true}); +}); diff --git a/tests/wpt/tests/permissions-policy/experimental-features/unload-disallowed-headerless.tentative.window.js b/tests/wpt/tests/permissions-policy/experimental-features/unload-disallowed-headerless.tentative.window.js new file mode 100644 index 00000000000..76af95f4257 --- /dev/null +++ b/tests/wpt/tests/permissions-policy/experimental-features/unload-disallowed-headerless.tentative.window.js @@ -0,0 +1,43 @@ +// META: title='unload' Policy : disallowed in headerless doc when disallowed in main frame. +// META: script=/common/dispatcher/dispatcher.js +// META: script=/common/utils.js +// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js +// META: script=./resources/unload-helper.js +// META: variant=?urlType=srcdoc +// META: variant=?urlType=data +// META: variant=?urlType=blob +// META: variant=?urlType=blank + +'use strict'; + +promise_test(async t => { + const rcHelper = new RemoteContextHelper({ + scripts: ['./resources/unload-helper.js'], + }); + // In the same browsing context group to ensure BFCache is not used. + const main = await rcHelper.addWindow( + {headers: [['Permissions-Policy', 'unload=()']]}, + ); + + const url = new URL(location); + const urlType = url.searchParams.get('urlType'); + + if (urlType == 'srcdoc') { + const subframe = await main.addIframeSrcdoc( + /*extraConfig=*/ {}, /*attributes=*/ {allow: 'unload'}); + await assertWindowRunsUnload( + subframe, 'subframe', {shouldRunUnload: false}); + } else { + const subframe = await main.addIframe( + /*extraConfig=*/ {urlType: urlType}, /*attributes=*/ {allow: 'unload'}); + + // The other URL types cannot esaily test unload directly. `data: and + // `blob:` documents cannot access storage. `about:blank` loses the content + // that was written into it when reloaded on going back and so stops + // functioning as a remote execution context. + await assertWindowAllowsUnload( + subframe, 'subframe', {shouldRunUnload: false}); + } + + await assertWindowRunsUnload(main, 'main', {shouldRunUnload: false}); +}); diff --git a/tests/wpt/tests/resource-timing/content-encoding.https.html b/tests/wpt/tests/resource-timing/content-encoding.https.html new file mode 100644 index 00000000000..58ea76ed22b --- /dev/null +++ b/tests/wpt/tests/resource-timing/content-encoding.https.html @@ -0,0 +1,107 @@ + + + + + + contentEncoding in resource timing + + + + + + + + + + + +

+ Description

+

+ This test validates contentEncoding in resource timing.

+ + + diff --git a/tests/wpt/tests/resource-timing/resources/compressed-data.py b/tests/wpt/tests/resource-timing/resources/compressed-data.py new file mode 100644 index 00000000000..8445f762d50 --- /dev/null +++ b/tests/wpt/tests/resource-timing/resources/compressed-data.py @@ -0,0 +1,33 @@ +def main(request, response): + response.headers.set(b"Content-Type", b"text/plain") + + # `dcb_data` and `dcz_data` are generated using the following commands: + # + # $ echo "This is a test dictionary." > /tmp/dict + # $ echo -n "This is compressed test data using a test dictionary" \ + # > /tmp/data + # + # $ echo -en '\xffDCB' > /tmp/out.dcb + # $ openssl dgst -sha256 -binary /tmp/dict >> /tmp/out.dcb + # $ brotli --stdout -D /tmp/dict /tmp/data >> /tmp/out.dcb + # $ xxd -p /tmp/out.dcb | tr -d '\n' | sed 's/\(..\)/\\x\1/g' + dcb_data = b"\xff\x44\x43\x42\x53\x96\x9b\xcf\x5e\x96\x0e\x0e\xdb\xf0\xa4\xbd\xde\x6b\x0b\x3e\x93\x81\xe1\x56\xde\x7f\x5b\x91\xce\x83\x91\x62\x42\x70\xf4\x16\xa1\x98\x01\x80\x62\xa4\x4c\x1d\xdf\x12\x84\x8c\xae\xc2\xca\x60\x22\x07\x6e\x81\x05\x14\xc9\xb7\xc3\x44\x8e\xbc\x16\xe0\x15\x0e\xec\xc1\xee\x34\x33\x3e\x0d" + # $ echo -en '\x5e\x2a\x4d\x18\x20\x00\x00\x00' > /tmp/out.dcz + # $ openssl dgst -sha256 -binary /tmp/dict >> /tmp/out.dcz + # $ zstd -D /tmp/dict -f -o /tmp/tmp.zstd /tmp/data + # $ cat /tmp/tmp.zstd >> /tmp/out.dcz + # $ xxd -p /tmp/out.dcz | tr -d '\n' | sed 's/\(..\)/\\x\1/g' + dcz_data = b"\x5e\x2a\x4d\x18\x20\x00\x00\x00\x53\x96\x9b\xcf\x5e\x96\x0e\x0e\xdb\xf0\xa4\xbd\xde\x6b\x0b\x3e\x93\x81\xe1\x56\xde\x7f\x5b\x91\xce\x83\x91\x62\x42\x70\xf4\x16\x28\xb5\x2f\xfd\x24\x34\xf5\x00\x00\x98\x63\x6f\x6d\x70\x72\x65\x73\x73\x65\x64\x61\x74\x61\x20\x75\x73\x69\x6e\x67\x03\x00\x59\xf9\x73\x54\x46\x27\x26\x10\x9e\x99\xf2\xbc" + + if b'content_encoding' in request.GET: + content_encoding = request.GET.first(b"content_encoding") + response.headers.set(b"Content-Encoding", content_encoding) + if content_encoding == b"dcb": + # Send the pre compressed file + response.content = dcb_data + if content_encoding == b"dcz": + # Send the pre compressed file + response.content = dcz_data + + if b'allow_origin' in request.GET: + response.headers.set(b'access-control-allow-origin', request.GET.first(b'allow_origin')) diff --git a/tests/wpt/tests/resource-timing/resources/compressed-js.py b/tests/wpt/tests/resource-timing/resources/compressed-js.py new file mode 100644 index 00000000000..20207577b97 --- /dev/null +++ b/tests/wpt/tests/resource-timing/resources/compressed-js.py @@ -0,0 +1,29 @@ +import os.path +import zlib +import gzip + +def read(file): + path = os.path.join(os.path.dirname(__file__), file) + return open(path, u"rb").read() + +def main(request, response): + response.headers.set(b"Content-Type", b"text/javascript") + + if b'allow_origin' in request.GET: + response.headers.set( + b'access-control-allow-origin', + request.GET.first(b'allow_origin')) + + if b'content_encoding' in request.GET: + content_encoding = request.GET.first(b"content_encoding") + response.headers.set(b"Content-Encoding", content_encoding) + if content_encoding == b"deflate": + response.content = zlib.compress(read(u"./dummy.js")) + if content_encoding == b"gzip": + response.content = gzip.compress(read(u"./dummy.js")) + if content_encoding == b"identity": + # Uncompressed + response.content = read(u"./dummy.js") + if content_encoding == b"unrecognizedname": + # Just return something + response.content = gzip.compress(read(u"./dummy.js")) diff --git a/tests/wpt/tests/resource-timing/resources/dummy.js b/tests/wpt/tests/resource-timing/resources/dummy.js new file mode 100644 index 00000000000..cb7fc348160 --- /dev/null +++ b/tests/wpt/tests/resource-timing/resources/dummy.js @@ -0,0 +1 @@ +// A dummy js file to be compressed and transferred. diff --git a/tests/wpt/tests/resource-timing/resources/foo.text.br b/tests/wpt/tests/resource-timing/resources/foo.text.br new file mode 100644 index 0000000000000000000000000000000000000000..30cb2f7095e15aca510a4a8cbae00f5d35f0918b GIT binary patch literal 15 WcmaDT;c-wu^_$pyR>s{53~T^0T?Hus literal 0 HcmV?d00001 diff --git a/tests/wpt/tests/resource-timing/resources/foo.text.br.headers b/tests/wpt/tests/resource-timing/resources/foo.text.br.headers new file mode 100644 index 00000000000..8c03b823e09 --- /dev/null +++ b/tests/wpt/tests/resource-timing/resources/foo.text.br.headers @@ -0,0 +1,2 @@ +Content-type: text/plain +Content-Encoding: br diff --git a/tests/wpt/tests/resource-timing/resources/foo.text.gz b/tests/wpt/tests/resource-timing/resources/foo.text.gz new file mode 100644 index 0000000000000000000000000000000000000000..05a5cce07b514365d9c468f4a1763b8173cfecfc GIT binary patch literal 57 zcmb2|=HRGgDM@BvPRq~ND@m;=VR(CJBPRm`1Ji>1=->6P`y32&LqcKTK3{a5S}BVr G0|NjdXcEo< literal 0 HcmV?d00001 diff --git a/tests/wpt/tests/resource-timing/resources/foo.text.gz.headers b/tests/wpt/tests/resource-timing/resources/foo.text.gz.headers new file mode 100644 index 00000000000..7def3ddc148 --- /dev/null +++ b/tests/wpt/tests/resource-timing/resources/foo.text.gz.headers @@ -0,0 +1,2 @@ +Content-type: text/plain +Content-Encoding: gzip diff --git a/tests/wpt/tests/resource-timing/resources/foo.text.zst b/tests/wpt/tests/resource-timing/resources/foo.text.zst new file mode 100644 index 0000000000000000000000000000000000000000..a73bbdd22458db57635bf88e97a4e47b4886e722 GIT binary patch literal 25 hcmdPcs{c2IMI)AhK_V?bpON98$30%g!~5pX2LNk|2}J+^ literal 0 HcmV?d00001 diff --git a/tests/wpt/tests/resource-timing/resources/foo.text.zst.headers b/tests/wpt/tests/resource-timing/resources/foo.text.zst.headers new file mode 100644 index 00000000000..c5974e126a3 --- /dev/null +++ b/tests/wpt/tests/resource-timing/resources/foo.text.zst.headers @@ -0,0 +1,2 @@ +Content-type: text/plain +Content-Encoding: zstd diff --git a/tests/wpt/tests/resource-timing/resources/gzip_xml.py b/tests/wpt/tests/resource-timing/resources/gzip_xml.py index 7debc9ce3f6..b5a0f72d3d4 100644 --- a/tests/wpt/tests/resource-timing/resources/gzip_xml.py +++ b/tests/wpt/tests/resource-timing/resources/gzip_xml.py @@ -20,4 +20,7 @@ def main(request, response): (b"Content-Encoding", b"gzip"), (b"Content-Length", len(output))] + if b'allow_origin' in request.GET: + headers.append((b'access-control-allow-origin', request.GET.first(b'allow_origin'))) + return headers, output diff --git a/tests/wpt/tests/sanitizer-api/sethtml-safety.dat b/tests/wpt/tests/sanitizer-api/sethtml-safety.dat index e53a988a511..ce14d5653c6 100644 --- a/tests/wpt/tests/sanitizer-api/sethtml-safety.dat +++ b/tests/wpt/tests/sanitizer-api/sethtml-safety.dat @@ -34,17 +34,17 @@ script | "xxx" #data - + #document | -| src="https://bla.com/blubb" +| src="https://example.com/test-image" #data - + #config { "attributes": ["src", "onclick", "one"]} #document | | one="two" -| src="https://bla.com/blubb" +| src="https://example.com/test-image" diff --git a/tests/wpt/tests/sanitizer-api/sethtml-unsafety.dat b/tests/wpt/tests/sanitizer-api/sethtml-unsafety.dat index b83004dfcb8..cdf17df3b59 100644 --- a/tests/wpt/tests/sanitizer-api/sethtml-unsafety.dat +++ b/tests/wpt/tests/sanitizer-api/sethtml-unsafety.dat @@ -42,20 +42,20 @@ script | "xxx" #data - + #document | | onclick="2+2" | one="two" -| src="https://bla.com/blubb" +| src="https://example.com/test-image" #data - + #config { "attributes": ["src", "onclick", "one"]} #document | | onclick="2+2" | one="two" -| src="https://bla.com/blubb" +| src="https://example.com/test-image" diff --git a/tests/wpt/tests/scroll-animations/view-timelines/intermediate-transform.html b/tests/wpt/tests/scroll-animations/view-timelines/intermediate-transform.html new file mode 100644 index 00000000000..8d332eaf264 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/view-timelines/intermediate-transform.html @@ -0,0 +1,55 @@ + + + +View timeline delay + + + + + + + + +
+
+
+
+
+
+
+ + diff --git a/tests/wpt/tests/service-workers/service-worker/resources/srcdoc-iframe-worker.js b/tests/wpt/tests/service-workers/service-worker/resources/srcdoc-iframe-worker.js new file mode 100644 index 00000000000..548116c89ea --- /dev/null +++ b/tests/wpt/tests/service-workers/service-worker/resources/srcdoc-iframe-worker.js @@ -0,0 +1,11 @@ +self.addEventListener('message', event => { + event.source.postMessage('passed'); +}); + +self.addEventListener('fetch', event => { + let url = new URL(event.request.url); + if (!url.searchParams.get('test_resource')) { + return; + } + event.respondWith(new Response('passed')); +}); diff --git a/tests/wpt/tests/service-workers/service-worker/resources/srcdoc-iframe.html b/tests/wpt/tests/service-workers/service-worker/resources/srcdoc-iframe.html new file mode 100644 index 00000000000..6407845c5ad --- /dev/null +++ b/tests/wpt/tests/service-workers/service-worker/resources/srcdoc-iframe.html @@ -0,0 +1,92 @@ + + + + + + + + diff --git a/tests/wpt/tests/service-workers/service-worker/srcdoc-iframe.https.html b/tests/wpt/tests/service-workers/service-worker/srcdoc-iframe.https.html new file mode 100644 index 00000000000..9c1c88e15a8 --- /dev/null +++ b/tests/wpt/tests/service-workers/service-worker/srcdoc-iframe.https.html @@ -0,0 +1,66 @@ + +Service Worker: srcdoc frame handling + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/svg/path/interfaces/SVGPathSegment.svg b/tests/wpt/tests/svg/path/interfaces/SVGPathSegment.svg new file mode 100644 index 00000000000..a4f67363dc3 --- /dev/null +++ b/tests/wpt/tests/svg/path/interfaces/SVGPathSegment.svg @@ -0,0 +1,197 @@ + + + + + + + + + S + + + diff --git a/tests/wpt/tests/svg/types/scripted/SVGGeometryElement.getTotalLength-01.svg b/tests/wpt/tests/svg/types/scripted/SVGGeometryElement.getTotalLength-01.svg index 412afe7b730..e429a55af4f 100644 --- a/tests/wpt/tests/svg/types/scripted/SVGGeometryElement.getTotalLength-01.svg +++ b/tests/wpt/tests/svg/types/scripted/SVGGeometryElement.getTotalLength-01.svg @@ -3,7 +3,7 @@ - + +test(function() { + let path = document.createElementNS('http://www.w3.org/2000/svg', 'path'); + document.documentElement.appendChild(path); + path.setAttribute("d", "M50,100l0,0l0,-50l100,0l86.3325,122.665z"); + try { + + assert_equals(path.getTotalLength(), 500); + + let pathData = path.getPathData(); + for (var i = 0; i < 2; i++) { + pathData = pathData.slice(0, -1); + } + path.setPathData(pathData); + + assert_equals(path.getTotalLength(), 150); + + } finally { + document.documentElement.removeChild(path); + } +}, document.title+', getTotalLength - path modified with setPathData'); + ]]> diff --git a/tests/wpt/tests/tools/ci/ci_built_diff.sh b/tests/wpt/tests/tools/ci/ci_built_diff.sh index 7cf9b23db1c..327b1482c14 100755 --- a/tests/wpt/tests/tools/ci/ci_built_diff.sh +++ b/tests/wpt/tests/tools/ci/ci_built_diff.sh @@ -16,10 +16,6 @@ main() { 'html/canvas/element/text/2d.text.draw.fill.maxWidth.large.png' 'html/canvas/element/text/2d.text.draw.fill.rtl.png' 'html/canvas/element/text/2d.text.draw.stroke.basic.png' - 'html/canvas/offscreen/text/2d.text.draw.fill.basic.png' - 'html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.large.png' - 'html/canvas/offscreen/text/2d.text.draw.fill.rtl.png' - 'html/canvas/offscreen/text/2d.text.draw.stroke.basic.png' ) ./wpt update-built diff --git a/tests/wpt/tests/tools/localpaths.py b/tests/wpt/tests/tools/localpaths.py index ebd3c54e775..bbc684a5354 100644 --- a/tests/wpt/tests/tools/localpaths.py +++ b/tests/wpt/tests/tools/localpaths.py @@ -21,7 +21,6 @@ sys.path.insert(0, os.path.join(here, "third_party", "pytest")) sys.path.insert(0, os.path.join(here, "third_party", "pytest", "src")) sys.path.insert(0, os.path.join(here, "third_party", "pytest-asyncio")) sys.path.insert(0, os.path.join(here, "third_party", "six")) -sys.path.insert(0, os.path.join(here, "third_party", "typing_extensions", "src")) sys.path.insert(0, os.path.join(here, "third_party", "webencodings")) sys.path.insert(0, os.path.join(here, "third_party", "h2", "src")) sys.path.insert(0, os.path.join(here, "third_party", "hpack", "src")) diff --git a/tests/wpt/tests/tools/serve/serve.py b/tests/wpt/tests/tools/serve/serve.py index a547e4b67e3..6d385b34ac6 100644 --- a/tests/wpt/tests/tools/serve/serve.py +++ b/tests/wpt/tests/tools/serve/serve.py @@ -1478,6 +1478,11 @@ def run(config_cls=ConfigBuilder, route_builder=None, mp_context=None, log_handl server.wait(timeout=1) if server.proc.exitcode == 0: logger.info('Status of subprocess "%s": exited correctly', server.proc.name) + elif server.proc.exitcode is None: + logger.warning( + 'Status of subprocess "%s": shutdown timed out', + server.proc.name) + failed_subproc += 1 else: subproc = server.proc logger.warning('Status of subprocess "%s": failed. Exit with non-zero status: %d', diff --git a/tests/wpt/tests/tools/third_party/typing_extensions/LICENSE b/tests/wpt/tests/tools/third_party/typing_extensions/LICENSE deleted file mode 100644 index 583f9f6e617..00000000000 --- a/tests/wpt/tests/tools/third_party/typing_extensions/LICENSE +++ /dev/null @@ -1,254 +0,0 @@ -A. HISTORY OF THE SOFTWARE -========================== - -Python was created in the early 1990s by Guido van Rossum at Stichting -Mathematisch Centrum (CWI, see http://www.cwi.nl) in the Netherlands -as a successor of a language called ABC. Guido remains Python's -principal author, although it includes many contributions from others. - -In 1995, Guido continued his work on Python at the Corporation for -National Research Initiatives (CNRI, see http://www.cnri.reston.va.us) -in Reston, Virginia where he released several versions of the -software. - -In May 2000, Guido and the Python core development team moved to -BeOpen.com to form the BeOpen PythonLabs team. In October of the same -year, the PythonLabs team moved to Digital Creations (now Zope -Corporation, see http://www.zope.com). In 2001, the Python Software -Foundation (PSF, see http://www.python.org/psf/) was formed, a -non-profit organization created specifically to own Python-related -Intellectual Property. Zope Corporation is a sponsoring member of -the PSF. - -All Python releases are Open Source (see http://www.opensource.org for -the Open Source Definition). Historically, most, but not all, Python -releases have also been GPL-compatible; the table below summarizes -the various releases. - - Release Derived Year Owner GPL- - from compatible? (1) - - 0.9.0 thru 1.2 1991-1995 CWI yes - 1.3 thru 1.5.2 1.2 1995-1999 CNRI yes - 1.6 1.5.2 2000 CNRI no - 2.0 1.6 2000 BeOpen.com no - 1.6.1 1.6 2001 CNRI yes (2) - 2.1 2.0+1.6.1 2001 PSF no - 2.0.1 2.0+1.6.1 2001 PSF yes - 2.1.1 2.1+2.0.1 2001 PSF yes - 2.1.2 2.1.1 2002 PSF yes - 2.1.3 2.1.2 2002 PSF yes - 2.2 and above 2.1.1 2001-now PSF yes - -Footnotes: - -(1) GPL-compatible doesn't mean that we're distributing Python under - the GPL. All Python licenses, unlike the GPL, let you distribute - a modified version without making your changes open source. The - GPL-compatible licenses make it possible to combine Python with - other software that is released under the GPL; the others don't. - -(2) According to Richard Stallman, 1.6.1 is not GPL-compatible, - because its license has a choice of law clause. According to - CNRI, however, Stallman's lawyer has told CNRI's lawyer that 1.6.1 - is "not incompatible" with the GPL. - -Thanks to the many outside volunteers who have worked under Guido's -direction to make these releases possible. - - -B. TERMS AND CONDITIONS FOR ACCESSING OR OTHERWISE USING PYTHON -=============================================================== - -PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 --------------------------------------------- - -1. This LICENSE AGREEMENT is between the Python Software Foundation -("PSF"), and the Individual or Organization ("Licensee") accessing and -otherwise using this software ("Python") in source or binary form and -its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, PSF hereby -grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, -analyze, test, perform and/or display publicly, prepare derivative works, -distribute, and otherwise use Python alone or in any derivative version, -provided, however, that PSF's License Agreement and PSF's notice of copyright, -i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, -2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are -retained in Python alone or in any derivative version prepared by Licensee. - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python. - -4. PSF is making Python available to Licensee on an "AS IS" -basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. Nothing in this License Agreement shall be deemed to create any -relationship of agency, partnership, or joint venture between PSF and -Licensee. This License Agreement does not grant permission to use PSF -trademarks or trade name in a trademark sense to endorse or promote -products or services of Licensee, or any third party. - -8. By copying, installing or otherwise using Python, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. - - -BEOPEN.COM LICENSE AGREEMENT FOR PYTHON 2.0 -------------------------------------------- - -BEOPEN PYTHON OPEN SOURCE LICENSE AGREEMENT VERSION 1 - -1. This LICENSE AGREEMENT is between BeOpen.com ("BeOpen"), having an -office at 160 Saratoga Avenue, Santa Clara, CA 95051, and the -Individual or Organization ("Licensee") accessing and otherwise using -this software in source or binary form and its associated -documentation ("the Software"). - -2. Subject to the terms and conditions of this BeOpen Python License -Agreement, BeOpen hereby grants Licensee a non-exclusive, -royalty-free, world-wide license to reproduce, analyze, test, perform -and/or display publicly, prepare derivative works, distribute, and -otherwise use the Software alone or in any derivative version, -provided, however, that the BeOpen Python License is retained in the -Software, alone or in any derivative version prepared by Licensee. - -3. BeOpen is making the Software available to Licensee on an "AS IS" -basis. BEOPEN MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, BEOPEN MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -4. BEOPEN SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF THE -SOFTWARE FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS -AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THE SOFTWARE, OR ANY -DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -5. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -6. This License Agreement shall be governed by and interpreted in all -respects by the law of the State of California, excluding conflict of -law provisions. Nothing in this License Agreement shall be deemed to -create any relationship of agency, partnership, or joint venture -between BeOpen and Licensee. This License Agreement does not grant -permission to use BeOpen trademarks or trade names in a trademark -sense to endorse or promote products or services of Licensee, or any -third party. As an exception, the "BeOpen Python" logos available at -http://www.pythonlabs.com/logos.html may be used according to the -permissions granted on that web page. - -7. By copying, installing or otherwise using the software, Licensee -agrees to be bound by the terms and conditions of this License -Agreement. - - -CNRI LICENSE AGREEMENT FOR PYTHON 1.6.1 ---------------------------------------- - -1. This LICENSE AGREEMENT is between the Corporation for National -Research Initiatives, having an office at 1895 Preston White Drive, -Reston, VA 20191 ("CNRI"), and the Individual or Organization -("Licensee") accessing and otherwise using Python 1.6.1 software in -source or binary form and its associated documentation. - -2. Subject to the terms and conditions of this License Agreement, CNRI -hereby grants Licensee a nonexclusive, royalty-free, world-wide -license to reproduce, analyze, test, perform and/or display publicly, -prepare derivative works, distribute, and otherwise use Python 1.6.1 -alone or in any derivative version, provided, however, that CNRI's -License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) -1995-2001 Corporation for National Research Initiatives; All Rights -Reserved" are retained in Python 1.6.1 alone or in any derivative -version prepared by Licensee. Alternately, in lieu of CNRI's License -Agreement, Licensee may substitute the following text (omitting the -quotes): "Python 1.6.1 is made available subject to the terms and -conditions in CNRI's License Agreement. This Agreement together with -Python 1.6.1 may be located on the Internet using the following -unique, persistent identifier (known as a handle): 1895.22/1013. This -Agreement may also be obtained from a proxy server on the Internet -using the following URL: http://hdl.handle.net/1895.22/1013". - -3. In the event Licensee prepares a derivative work that is based on -or incorporates Python 1.6.1 or any part thereof, and wants to make -the derivative work available to others as provided herein, then -Licensee hereby agrees to include in any such work a brief summary of -the changes made to Python 1.6.1. - -4. CNRI is making Python 1.6.1 available to Licensee on an "AS IS" -basis. CNRI MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR -IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, CNRI MAKES NO AND -DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS -FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON 1.6.1 WILL NOT -INFRINGE ANY THIRD PARTY RIGHTS. - -5. CNRI SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON -1.6.1 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS -A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON 1.6.1, -OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. - -6. This License Agreement will automatically terminate upon a material -breach of its terms and conditions. - -7. This License Agreement shall be governed by the federal -intellectual property law of the United States, including without -limitation the federal copyright law, and, to the extent such -U.S. federal law does not apply, by the law of the Commonwealth of -Virginia, excluding Virginia's conflict of law provisions. -Notwithstanding the foregoing, with regard to derivative works based -on Python 1.6.1 that incorporate non-separable material that was -previously distributed under the GNU General Public License (GPL), the -law of the Commonwealth of Virginia shall govern this License -Agreement only as to issues arising under or with respect to -Paragraphs 4, 5, and 7 of this License Agreement. Nothing in this -License Agreement shall be deemed to create any relationship of -agency, partnership, or joint venture between CNRI and Licensee. This -License Agreement does not grant permission to use CNRI trademarks or -trade name in a trademark sense to endorse or promote products or -services of Licensee, or any third party. - -8. By clicking on the "ACCEPT" button where indicated, or by copying, -installing or otherwise using Python 1.6.1, Licensee agrees to be -bound by the terms and conditions of this License Agreement. - - ACCEPT - - -CWI LICENSE AGREEMENT FOR PYTHON 0.9.0 THROUGH 1.2 --------------------------------------------------- - -Copyright (c) 1991 - 1995, Stichting Mathematisch Centrum Amsterdam, -The Netherlands. All rights reserved. - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the name of Stichting Mathematisch -Centrum or CWI not be used in advertising or publicity pertaining to -distribution of the software without specific, written prior -permission. - -STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO -THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE -FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT -OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/tests/wpt/tests/tools/third_party/typing_extensions/PKG-INFO b/tests/wpt/tests/tools/third_party/typing_extensions/PKG-INFO deleted file mode 100644 index ae2892d3d79..00000000000 --- a/tests/wpt/tests/tools/third_party/typing_extensions/PKG-INFO +++ /dev/null @@ -1,35 +0,0 @@ -Metadata-Version: 2.1 -Name: typing_extensions -Version: 4.1.1 -Summary: Backported and Experimental Type Hints for Python 3.6+ -Keywords: annotations,backport,checker,checking,function,hinting,hints,type,typechecking,typehinting,typehints,typing -Author-email: "Guido van Rossum, Jukka Lehtosalo, Łukasz Langa, Michael Lee" -Requires-Python: >=3.6 -Description-Content-Type: text/x-rst -Classifier: Development Status :: 3 - Alpha -Classifier: Environment :: Console -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: Python Software Foundation License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python :: 3 -Classifier: Programming Language :: Python :: 3 :: Only -Classifier: Programming Language :: Python :: 3.6 -Classifier: Programming Language :: Python :: 3.7 -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Topic :: Software Development -Project-URL: Home, https://github.com/python/typing/blob/master/typing_extensions/README.rst - -Typing Extensions -- Backported and Experimental Type Hints for Python - -The ``typing`` module was added to the standard library in Python 3.5, but -many new features have been added to the module since then. -This means users of older Python versions who are unable to upgrade will not be -able to take advantage of new types added to the ``typing`` module, such as -``typing.Protocol`` or ``typing.TypedDict``. - -The ``typing_extensions`` module contains backports of these changes. -Experimental types that may eventually be added to the ``typing`` -module are also included in ``typing_extensions``. - diff --git a/tests/wpt/tests/tools/third_party/typing_extensions/pyproject.toml b/tests/wpt/tests/tools/third_party/typing_extensions/pyproject.toml deleted file mode 100644 index 354c2068243..00000000000 --- a/tests/wpt/tests/tools/third_party/typing_extensions/pyproject.toml +++ /dev/null @@ -1,63 +0,0 @@ -# Build system requirements. -[build-system] -requires = ["flit_core >=3.4,<4"] -build-backend = "flit_core.buildapi" - -# Project metadata -[project] -name = "typing_extensions" -version = "4.1.1" -description = "Backported and Experimental Type Hints for Python 3.6+" -readme.text = """\ -Typing Extensions -- Backported and Experimental Type Hints for Python - -The ``typing`` module was added to the standard library in Python 3.5, but -many new features have been added to the module since then. -This means users of older Python versions who are unable to upgrade will not be -able to take advantage of new types added to the ``typing`` module, such as -``typing.Protocol`` or ``typing.TypedDict``. - -The ``typing_extensions`` module contains backports of these changes. -Experimental types that may eventually be added to the ``typing`` -module are also included in ``typing_extensions``. -""" -readme.content-type = "text/x-rst" -requires-python = ">=3.6" -urls.Home = "https://github.com/python/typing/blob/master/typing_extensions/README.rst" -license.file = "LICENSE" -keywords = [ - "annotations", - "backport", - "checker", - "checking", - "function", - "hinting", - "hints", - "type", - "typechecking", - "typehinting", - "typehints", - "typing" -] -# Classifiers list: https://pypi.org/classifiers/ -classifiers = [ - "Development Status :: 3 - Alpha", - "Environment :: Console", - "Intended Audience :: Developers", - "License :: OSI Approved :: Python Software Foundation License", - "Operating System :: OS Independent", - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Topic :: Software Development" -] - -# Project metadata -- authors. Flit stores this as a list of dicts, so it can't -# be inline above. -[[project.authors]] -name = "Guido van Rossum, Jukka Lehtosalo, Łukasz Langa, Michael Lee" -email = "levkivskyi@gmail.com" diff --git a/tests/wpt/tests/tools/third_party/typing_extensions/src/typing_extensions.py b/tests/wpt/tests/tools/third_party/typing_extensions/src/typing_extensions.py deleted file mode 100644 index 194731cd3c6..00000000000 --- a/tests/wpt/tests/tools/third_party/typing_extensions/src/typing_extensions.py +++ /dev/null @@ -1,2908 +0,0 @@ -import abc -import collections -import collections.abc -import operator -import sys -import types as _types -import typing - -# After PEP 560, internal typing API was substantially reworked. -# This is especially important for Protocol class which uses internal APIs -# quite extensively. -PEP_560 = sys.version_info[:3] >= (3, 7, 0) - -if PEP_560: - GenericMeta = type -else: - # 3.6 - from typing import GenericMeta, _type_vars # noqa - - -# Please keep __all__ alphabetized within each category. -__all__ = [ - # Super-special typing primitives. - 'ClassVar', - 'Concatenate', - 'Final', - 'LiteralString', - 'ParamSpec', - 'Self', - 'Type', - 'TypeVarTuple', - 'Unpack', - - # ABCs (from collections.abc). - 'Awaitable', - 'AsyncIterator', - 'AsyncIterable', - 'Coroutine', - 'AsyncGenerator', - 'AsyncContextManager', - 'ChainMap', - - # Concrete collection types. - 'ContextManager', - 'Counter', - 'Deque', - 'DefaultDict', - 'OrderedDict', - 'TypedDict', - - # Structural checks, a.k.a. protocols. - 'SupportsIndex', - - # One-off things. - 'Annotated', - 'assert_never', - 'dataclass_transform', - 'final', - 'IntVar', - 'is_typeddict', - 'Literal', - 'NewType', - 'overload', - 'Protocol', - 'reveal_type', - 'runtime', - 'runtime_checkable', - 'Text', - 'TypeAlias', - 'TypeGuard', - 'TYPE_CHECKING', - 'Never', - 'NoReturn', - 'Required', - 'NotRequired', -] - -if PEP_560: - __all__.extend(["get_args", "get_origin", "get_type_hints"]) - -# The functions below are modified copies of typing internal helpers. -# They are needed by _ProtocolMeta and they provide support for PEP 646. - - -def _no_slots_copy(dct): - dict_copy = dict(dct) - if '__slots__' in dict_copy: - for slot in dict_copy['__slots__']: - dict_copy.pop(slot, None) - return dict_copy - - -_marker = object() - - -def _check_generic(cls, parameters, elen=_marker): - """Check correct count for parameters of a generic cls (internal helper). - This gives a nice error message in case of count mismatch. - """ - if not elen: - raise TypeError(f"{cls} is not a generic class") - if elen is _marker: - if not hasattr(cls, "__parameters__") or not cls.__parameters__: - raise TypeError(f"{cls} is not a generic class") - elen = len(cls.__parameters__) - alen = len(parameters) - if alen != elen: - if hasattr(cls, "__parameters__"): - parameters = [p for p in cls.__parameters__ if not _is_unpack(p)] - num_tv_tuples = sum(isinstance(p, TypeVarTuple) for p in parameters) - if (num_tv_tuples > 0) and (alen >= elen - num_tv_tuples): - return - raise TypeError(f"Too {'many' if alen > elen else 'few'} parameters for {cls};" - f" actual {alen}, expected {elen}") - - -if sys.version_info >= (3, 10): - def _should_collect_from_parameters(t): - return isinstance( - t, (typing._GenericAlias, _types.GenericAlias, _types.UnionType) - ) -elif sys.version_info >= (3, 9): - def _should_collect_from_parameters(t): - return isinstance(t, (typing._GenericAlias, _types.GenericAlias)) -else: - def _should_collect_from_parameters(t): - return isinstance(t, typing._GenericAlias) and not t._special - - -def _collect_type_vars(types, typevar_types=None): - """Collect all type variable contained in types in order of - first appearance (lexicographic order). For example:: - - _collect_type_vars((T, List[S, T])) == (T, S) - """ - if typevar_types is None: - typevar_types = typing.TypeVar - tvars = [] - for t in types: - if ( - isinstance(t, typevar_types) and - t not in tvars and - not _is_unpack(t) - ): - tvars.append(t) - if _should_collect_from_parameters(t): - tvars.extend([t for t in t.__parameters__ if t not in tvars]) - return tuple(tvars) - - -# 3.6.2+ -if hasattr(typing, 'NoReturn'): - NoReturn = typing.NoReturn -# 3.6.0-3.6.1 -else: - class _NoReturn(typing._FinalTypingBase, _root=True): - """Special type indicating functions that never return. - Example:: - - from typing import NoReturn - - def stop() -> NoReturn: - raise Exception('no way') - - This type is invalid in other positions, e.g., ``List[NoReturn]`` - will fail in static type checkers. - """ - __slots__ = () - - def __instancecheck__(self, obj): - raise TypeError("NoReturn cannot be used with isinstance().") - - def __subclasscheck__(self, cls): - raise TypeError("NoReturn cannot be used with issubclass().") - - NoReturn = _NoReturn(_root=True) - -# Some unconstrained type variables. These are used by the container types. -# (These are not for export.) -T = typing.TypeVar('T') # Any type. -KT = typing.TypeVar('KT') # Key type. -VT = typing.TypeVar('VT') # Value type. -T_co = typing.TypeVar('T_co', covariant=True) # Any type covariant containers. -T_contra = typing.TypeVar('T_contra', contravariant=True) # Ditto contravariant. - -ClassVar = typing.ClassVar - -# On older versions of typing there is an internal class named "Final". -# 3.8+ -if hasattr(typing, 'Final') and sys.version_info[:2] >= (3, 7): - Final = typing.Final -# 3.7 -elif sys.version_info[:2] >= (3, 7): - class _FinalForm(typing._SpecialForm, _root=True): - - def __repr__(self): - return 'typing_extensions.' + self._name - - def __getitem__(self, parameters): - item = typing._type_check(parameters, - f'{self._name} accepts only single type') - return typing._GenericAlias(self, (item,)) - - Final = _FinalForm('Final', - doc="""A special typing construct to indicate that a name - cannot be re-assigned or overridden in a subclass. - For example: - - MAX_SIZE: Final = 9000 - MAX_SIZE += 1 # Error reported by type checker - - class Connection: - TIMEOUT: Final[int] = 10 - class FastConnector(Connection): - TIMEOUT = 1 # Error reported by type checker - - There is no runtime checking of these properties.""") -# 3.6 -else: - class _Final(typing._FinalTypingBase, _root=True): - """A special typing construct to indicate that a name - cannot be re-assigned or overridden in a subclass. - For example: - - MAX_SIZE: Final = 9000 - MAX_SIZE += 1 # Error reported by type checker - - class Connection: - TIMEOUT: Final[int] = 10 - class FastConnector(Connection): - TIMEOUT = 1 # Error reported by type checker - - There is no runtime checking of these properties. - """ - - __slots__ = ('__type__',) - - def __init__(self, tp=None, **kwds): - self.__type__ = tp - - def __getitem__(self, item): - cls = type(self) - if self.__type__ is None: - return cls(typing._type_check(item, - f'{cls.__name__[1:]} accepts only single type.'), - _root=True) - raise TypeError(f'{cls.__name__[1:]} cannot be further subscripted') - - def _eval_type(self, globalns, localns): - new_tp = typing._eval_type(self.__type__, globalns, localns) - if new_tp == self.__type__: - return self - return type(self)(new_tp, _root=True) - - def __repr__(self): - r = super().__repr__() - if self.__type__ is not None: - r += f'[{typing._type_repr(self.__type__)}]' - return r - - def __hash__(self): - return hash((type(self).__name__, self.__type__)) - - def __eq__(self, other): - if not isinstance(other, _Final): - return NotImplemented - if self.__type__ is not None: - return self.__type__ == other.__type__ - return self is other - - Final = _Final(_root=True) - - -if sys.version_info >= (3, 11): - final = typing.final -else: - # @final exists in 3.8+, but we backport it for all versions - # before 3.11 to keep support for the __final__ attribute. - # See https://bugs.python.org/issue46342 - def final(f): - """This decorator can be used to indicate to type checkers that - the decorated method cannot be overridden, and decorated class - cannot be subclassed. For example: - - class Base: - @final - def done(self) -> None: - ... - class Sub(Base): - def done(self) -> None: # Error reported by type checker - ... - @final - class Leaf: - ... - class Other(Leaf): # Error reported by type checker - ... - - There is no runtime checking of these properties. The decorator - sets the ``__final__`` attribute to ``True`` on the decorated object - to allow runtime introspection. - """ - try: - f.__final__ = True - except (AttributeError, TypeError): - # Skip the attribute silently if it is not writable. - # AttributeError happens if the object has __slots__ or a - # read-only property, TypeError if it's a builtin class. - pass - return f - - -def IntVar(name): - return typing.TypeVar(name) - - -# 3.8+: -if hasattr(typing, 'Literal'): - Literal = typing.Literal -# 3.7: -elif sys.version_info[:2] >= (3, 7): - class _LiteralForm(typing._SpecialForm, _root=True): - - def __repr__(self): - return 'typing_extensions.' + self._name - - def __getitem__(self, parameters): - return typing._GenericAlias(self, parameters) - - Literal = _LiteralForm('Literal', - doc="""A type that can be used to indicate to type checkers - that the corresponding value has a value literally equivalent - to the provided parameter. For example: - - var: Literal[4] = 4 - - The type checker understands that 'var' is literally equal to - the value 4 and no other value. - - Literal[...] cannot be subclassed. There is no runtime - checking verifying that the parameter is actually a value - instead of a type.""") -# 3.6: -else: - class _Literal(typing._FinalTypingBase, _root=True): - """A type that can be used to indicate to type checkers that the - corresponding value has a value literally equivalent to the - provided parameter. For example: - - var: Literal[4] = 4 - - The type checker understands that 'var' is literally equal to the - value 4 and no other value. - - Literal[...] cannot be subclassed. There is no runtime checking - verifying that the parameter is actually a value instead of a type. - """ - - __slots__ = ('__values__',) - - def __init__(self, values=None, **kwds): - self.__values__ = values - - def __getitem__(self, values): - cls = type(self) - if self.__values__ is None: - if not isinstance(values, tuple): - values = (values,) - return cls(values, _root=True) - raise TypeError(f'{cls.__name__[1:]} cannot be further subscripted') - - def _eval_type(self, globalns, localns): - return self - - def __repr__(self): - r = super().__repr__() - if self.__values__ is not None: - r += f'[{", ".join(map(typing._type_repr, self.__values__))}]' - return r - - def __hash__(self): - return hash((type(self).__name__, self.__values__)) - - def __eq__(self, other): - if not isinstance(other, _Literal): - return NotImplemented - if self.__values__ is not None: - return self.__values__ == other.__values__ - return self is other - - Literal = _Literal(_root=True) - - -_overload_dummy = typing._overload_dummy # noqa -overload = typing.overload - - -# This is not a real generic class. Don't use outside annotations. -Type = typing.Type - -# Various ABCs mimicking those in collections.abc. -# A few are simply re-exported for completeness. - - -class _ExtensionsGenericMeta(GenericMeta): - def __subclasscheck__(self, subclass): - """This mimics a more modern GenericMeta.__subclasscheck__() logic - (that does not have problems with recursion) to work around interactions - between collections, typing, and typing_extensions on older - versions of Python, see https://github.com/python/typing/issues/501. - """ - if self.__origin__ is not None: - if sys._getframe(1).f_globals['__name__'] not in ['abc', 'functools']: - raise TypeError("Parameterized generics cannot be used with class " - "or instance checks") - return False - if not self.__extra__: - return super().__subclasscheck__(subclass) - res = self.__extra__.__subclasshook__(subclass) - if res is not NotImplemented: - return res - if self.__extra__ in subclass.__mro__: - return True - for scls in self.__extra__.__subclasses__(): - if isinstance(scls, GenericMeta): - continue - if issubclass(subclass, scls): - return True - return False - - -Awaitable = typing.Awaitable -Coroutine = typing.Coroutine -AsyncIterable = typing.AsyncIterable -AsyncIterator = typing.AsyncIterator - -# 3.6.1+ -if hasattr(typing, 'Deque'): - Deque = typing.Deque -# 3.6.0 -else: - class Deque(collections.deque, typing.MutableSequence[T], - metaclass=_ExtensionsGenericMeta, - extra=collections.deque): - __slots__ = () - - def __new__(cls, *args, **kwds): - if cls._gorg is Deque: - return collections.deque(*args, **kwds) - return typing._generic_new(collections.deque, cls, *args, **kwds) - -ContextManager = typing.ContextManager -# 3.6.2+ -if hasattr(typing, 'AsyncContextManager'): - AsyncContextManager = typing.AsyncContextManager -# 3.6.0-3.6.1 -else: - from _collections_abc import _check_methods as _check_methods_in_mro # noqa - - class AsyncContextManager(typing.Generic[T_co]): - __slots__ = () - - async def __aenter__(self): - return self - - @abc.abstractmethod - async def __aexit__(self, exc_type, exc_value, traceback): - return None - - @classmethod - def __subclasshook__(cls, C): - if cls is AsyncContextManager: - return _check_methods_in_mro(C, "__aenter__", "__aexit__") - return NotImplemented - -DefaultDict = typing.DefaultDict - -# 3.7.2+ -if hasattr(typing, 'OrderedDict'): - OrderedDict = typing.OrderedDict -# 3.7.0-3.7.2 -elif (3, 7, 0) <= sys.version_info[:3] < (3, 7, 2): - OrderedDict = typing._alias(collections.OrderedDict, (KT, VT)) -# 3.6 -else: - class OrderedDict(collections.OrderedDict, typing.MutableMapping[KT, VT], - metaclass=_ExtensionsGenericMeta, - extra=collections.OrderedDict): - - __slots__ = () - - def __new__(cls, *args, **kwds): - if cls._gorg is OrderedDict: - return collections.OrderedDict(*args, **kwds) - return typing._generic_new(collections.OrderedDict, cls, *args, **kwds) - -# 3.6.2+ -if hasattr(typing, 'Counter'): - Counter = typing.Counter -# 3.6.0-3.6.1 -else: - class Counter(collections.Counter, - typing.Dict[T, int], - metaclass=_ExtensionsGenericMeta, extra=collections.Counter): - - __slots__ = () - - def __new__(cls, *args, **kwds): - if cls._gorg is Counter: - return collections.Counter(*args, **kwds) - return typing._generic_new(collections.Counter, cls, *args, **kwds) - -# 3.6.1+ -if hasattr(typing, 'ChainMap'): - ChainMap = typing.ChainMap -elif hasattr(collections, 'ChainMap'): - class ChainMap(collections.ChainMap, typing.MutableMapping[KT, VT], - metaclass=_ExtensionsGenericMeta, - extra=collections.ChainMap): - - __slots__ = () - - def __new__(cls, *args, **kwds): - if cls._gorg is ChainMap: - return collections.ChainMap(*args, **kwds) - return typing._generic_new(collections.ChainMap, cls, *args, **kwds) - -# 3.6.1+ -if hasattr(typing, 'AsyncGenerator'): - AsyncGenerator = typing.AsyncGenerator -# 3.6.0 -else: - class AsyncGenerator(AsyncIterator[T_co], typing.Generic[T_co, T_contra], - metaclass=_ExtensionsGenericMeta, - extra=collections.abc.AsyncGenerator): - __slots__ = () - -NewType = typing.NewType -Text = typing.Text -TYPE_CHECKING = typing.TYPE_CHECKING - - -def _gorg(cls): - """This function exists for compatibility with old typing versions.""" - assert isinstance(cls, GenericMeta) - if hasattr(cls, '_gorg'): - return cls._gorg - while cls.__origin__ is not None: - cls = cls.__origin__ - return cls - - -_PROTO_WHITELIST = ['Callable', 'Awaitable', - 'Iterable', 'Iterator', 'AsyncIterable', 'AsyncIterator', - 'Hashable', 'Sized', 'Container', 'Collection', 'Reversible', - 'ContextManager', 'AsyncContextManager'] - - -def _get_protocol_attrs(cls): - attrs = set() - for base in cls.__mro__[:-1]: # without object - if base.__name__ in ('Protocol', 'Generic'): - continue - annotations = getattr(base, '__annotations__', {}) - for attr in list(base.__dict__.keys()) + list(annotations.keys()): - if (not attr.startswith('_abc_') and attr not in ( - '__abstractmethods__', '__annotations__', '__weakref__', - '_is_protocol', '_is_runtime_protocol', '__dict__', - '__args__', '__slots__', - '__next_in_mro__', '__parameters__', '__origin__', - '__orig_bases__', '__extra__', '__tree_hash__', - '__doc__', '__subclasshook__', '__init__', '__new__', - '__module__', '_MutableMapping__marker', '_gorg')): - attrs.add(attr) - return attrs - - -def _is_callable_members_only(cls): - return all(callable(getattr(cls, attr, None)) for attr in _get_protocol_attrs(cls)) - - -# 3.8+ -if hasattr(typing, 'Protocol'): - Protocol = typing.Protocol -# 3.7 -elif PEP_560: - - def _no_init(self, *args, **kwargs): - if type(self)._is_protocol: - raise TypeError('Protocols cannot be instantiated') - - class _ProtocolMeta(abc.ABCMeta): - # This metaclass is a bit unfortunate and exists only because of the lack - # of __instancehook__. - def __instancecheck__(cls, instance): - # We need this method for situations where attributes are - # assigned in __init__. - if ((not getattr(cls, '_is_protocol', False) or - _is_callable_members_only(cls)) and - issubclass(instance.__class__, cls)): - return True - if cls._is_protocol: - if all(hasattr(instance, attr) and - (not callable(getattr(cls, attr, None)) or - getattr(instance, attr) is not None) - for attr in _get_protocol_attrs(cls)): - return True - return super().__instancecheck__(instance) - - class Protocol(metaclass=_ProtocolMeta): - # There is quite a lot of overlapping code with typing.Generic. - # Unfortunately it is hard to avoid this while these live in two different - # modules. The duplicated code will be removed when Protocol is moved to typing. - """Base class for protocol classes. Protocol classes are defined as:: - - class Proto(Protocol): - def meth(self) -> int: - ... - - Such classes are primarily used with static type checkers that recognize - structural subtyping (static duck-typing), for example:: - - class C: - def meth(self) -> int: - return 0 - - def func(x: Proto) -> int: - return x.meth() - - func(C()) # Passes static type check - - See PEP 544 for details. Protocol classes decorated with - @typing_extensions.runtime act as simple-minded runtime protocol that checks - only the presence of given attributes, ignoring their type signatures. - - Protocol classes can be generic, they are defined as:: - - class GenProto(Protocol[T]): - def meth(self) -> T: - ... - """ - __slots__ = () - _is_protocol = True - - def __new__(cls, *args, **kwds): - if cls is Protocol: - raise TypeError("Type Protocol cannot be instantiated; " - "it can only be used as a base class") - return super().__new__(cls) - - @typing._tp_cache - def __class_getitem__(cls, params): - if not isinstance(params, tuple): - params = (params,) - if not params and cls is not typing.Tuple: - raise TypeError( - f"Parameter list to {cls.__qualname__}[...] cannot be empty") - msg = "Parameters to generic types must be types." - params = tuple(typing._type_check(p, msg) for p in params) # noqa - if cls is Protocol: - # Generic can only be subscripted with unique type variables. - if not all(isinstance(p, typing.TypeVar) for p in params): - i = 0 - while isinstance(params[i], typing.TypeVar): - i += 1 - raise TypeError( - "Parameters to Protocol[...] must all be type variables." - f" Parameter {i + 1} is {params[i]}") - if len(set(params)) != len(params): - raise TypeError( - "Parameters to Protocol[...] must all be unique") - else: - # Subscripting a regular Generic subclass. - _check_generic(cls, params, len(cls.__parameters__)) - return typing._GenericAlias(cls, params) - - def __init_subclass__(cls, *args, **kwargs): - tvars = [] - if '__orig_bases__' in cls.__dict__: - error = typing.Generic in cls.__orig_bases__ - else: - error = typing.Generic in cls.__bases__ - if error: - raise TypeError("Cannot inherit from plain Generic") - if '__orig_bases__' in cls.__dict__: - tvars = typing._collect_type_vars(cls.__orig_bases__) - # Look for Generic[T1, ..., Tn] or Protocol[T1, ..., Tn]. - # If found, tvars must be a subset of it. - # If not found, tvars is it. - # Also check for and reject plain Generic, - # and reject multiple Generic[...] and/or Protocol[...]. - gvars = None - for base in cls.__orig_bases__: - if (isinstance(base, typing._GenericAlias) and - base.__origin__ in (typing.Generic, Protocol)): - # for error messages - the_base = base.__origin__.__name__ - if gvars is not None: - raise TypeError( - "Cannot inherit from Generic[...]" - " and/or Protocol[...] multiple types.") - gvars = base.__parameters__ - if gvars is None: - gvars = tvars - else: - tvarset = set(tvars) - gvarset = set(gvars) - if not tvarset <= gvarset: - s_vars = ', '.join(str(t) for t in tvars if t not in gvarset) - s_args = ', '.join(str(g) for g in gvars) - raise TypeError(f"Some type variables ({s_vars}) are" - f" not listed in {the_base}[{s_args}]") - tvars = gvars - cls.__parameters__ = tuple(tvars) - - # Determine if this is a protocol or a concrete subclass. - if not cls.__dict__.get('_is_protocol', None): - cls._is_protocol = any(b is Protocol for b in cls.__bases__) - - # Set (or override) the protocol subclass hook. - def _proto_hook(other): - if not cls.__dict__.get('_is_protocol', None): - return NotImplemented - if not getattr(cls, '_is_runtime_protocol', False): - if sys._getframe(2).f_globals['__name__'] in ['abc', 'functools']: - return NotImplemented - raise TypeError("Instance and class checks can only be used with" - " @runtime protocols") - if not _is_callable_members_only(cls): - if sys._getframe(2).f_globals['__name__'] in ['abc', 'functools']: - return NotImplemented - raise TypeError("Protocols with non-method members" - " don't support issubclass()") - if not isinstance(other, type): - # Same error as for issubclass(1, int) - raise TypeError('issubclass() arg 1 must be a class') - for attr in _get_protocol_attrs(cls): - for base in other.__mro__: - if attr in base.__dict__: - if base.__dict__[attr] is None: - return NotImplemented - break - annotations = getattr(base, '__annotations__', {}) - if (isinstance(annotations, typing.Mapping) and - attr in annotations and - isinstance(other, _ProtocolMeta) and - other._is_protocol): - break - else: - return NotImplemented - return True - if '__subclasshook__' not in cls.__dict__: - cls.__subclasshook__ = _proto_hook - - # We have nothing more to do for non-protocols. - if not cls._is_protocol: - return - - # Check consistency of bases. - for base in cls.__bases__: - if not (base in (object, typing.Generic) or - base.__module__ == 'collections.abc' and - base.__name__ in _PROTO_WHITELIST or - isinstance(base, _ProtocolMeta) and base._is_protocol): - raise TypeError('Protocols can only inherit from other' - f' protocols, got {repr(base)}') - cls.__init__ = _no_init -# 3.6 -else: - from typing import _next_in_mro, _type_check # noqa - - def _no_init(self, *args, **kwargs): - if type(self)._is_protocol: - raise TypeError('Protocols cannot be instantiated') - - class _ProtocolMeta(GenericMeta): - """Internal metaclass for Protocol. - - This exists so Protocol classes can be generic without deriving - from Generic. - """ - def __new__(cls, name, bases, namespace, - tvars=None, args=None, origin=None, extra=None, orig_bases=None): - # This is just a version copied from GenericMeta.__new__ that - # includes "Protocol" special treatment. (Comments removed for brevity.) - assert extra is None # Protocols should not have extra - if tvars is not None: - assert origin is not None - assert all(isinstance(t, typing.TypeVar) for t in tvars), tvars - else: - tvars = _type_vars(bases) - gvars = None - for base in bases: - if base is typing.Generic: - raise TypeError("Cannot inherit from plain Generic") - if (isinstance(base, GenericMeta) and - base.__origin__ in (typing.Generic, Protocol)): - if gvars is not None: - raise TypeError( - "Cannot inherit from Generic[...] or" - " Protocol[...] multiple times.") - gvars = base.__parameters__ - if gvars is None: - gvars = tvars - else: - tvarset = set(tvars) - gvarset = set(gvars) - if not tvarset <= gvarset: - s_vars = ", ".join(str(t) for t in tvars if t not in gvarset) - s_args = ", ".join(str(g) for g in gvars) - cls_name = "Generic" if any(b.__origin__ is typing.Generic - for b in bases) else "Protocol" - raise TypeError(f"Some type variables ({s_vars}) are" - f" not listed in {cls_name}[{s_args}]") - tvars = gvars - - initial_bases = bases - if (extra is not None and type(extra) is abc.ABCMeta and - extra not in bases): - bases = (extra,) + bases - bases = tuple(_gorg(b) if isinstance(b, GenericMeta) else b - for b in bases) - if any(isinstance(b, GenericMeta) and b is not typing.Generic for b in bases): - bases = tuple(b for b in bases if b is not typing.Generic) - namespace.update({'__origin__': origin, '__extra__': extra}) - self = super(GenericMeta, cls).__new__(cls, name, bases, namespace, - _root=True) - super(GenericMeta, self).__setattr__('_gorg', - self if not origin else - _gorg(origin)) - self.__parameters__ = tvars - self.__args__ = tuple(... if a is typing._TypingEllipsis else - () if a is typing._TypingEmpty else - a for a in args) if args else None - self.__next_in_mro__ = _next_in_mro(self) - if orig_bases is None: - self.__orig_bases__ = initial_bases - elif origin is not None: - self._abc_registry = origin._abc_registry - self._abc_cache = origin._abc_cache - if hasattr(self, '_subs_tree'): - self.__tree_hash__ = (hash(self._subs_tree()) if origin else - super(GenericMeta, self).__hash__()) - return self - - def __init__(cls, *args, **kwargs): - super().__init__(*args, **kwargs) - if not cls.__dict__.get('_is_protocol', None): - cls._is_protocol = any(b is Protocol or - isinstance(b, _ProtocolMeta) and - b.__origin__ is Protocol - for b in cls.__bases__) - if cls._is_protocol: - for base in cls.__mro__[1:]: - if not (base in (object, typing.Generic) or - base.__module__ == 'collections.abc' and - base.__name__ in _PROTO_WHITELIST or - isinstance(base, typing.TypingMeta) and base._is_protocol or - isinstance(base, GenericMeta) and - base.__origin__ is typing.Generic): - raise TypeError(f'Protocols can only inherit from other' - f' protocols, got {repr(base)}') - - cls.__init__ = _no_init - - def _proto_hook(other): - if not cls.__dict__.get('_is_protocol', None): - return NotImplemented - if not isinstance(other, type): - # Same error as for issubclass(1, int) - raise TypeError('issubclass() arg 1 must be a class') - for attr in _get_protocol_attrs(cls): - for base in other.__mro__: - if attr in base.__dict__: - if base.__dict__[attr] is None: - return NotImplemented - break - annotations = getattr(base, '__annotations__', {}) - if (isinstance(annotations, typing.Mapping) and - attr in annotations and - isinstance(other, _ProtocolMeta) and - other._is_protocol): - break - else: - return NotImplemented - return True - if '__subclasshook__' not in cls.__dict__: - cls.__subclasshook__ = _proto_hook - - def __instancecheck__(self, instance): - # We need this method for situations where attributes are - # assigned in __init__. - if ((not getattr(self, '_is_protocol', False) or - _is_callable_members_only(self)) and - issubclass(instance.__class__, self)): - return True - if self._is_protocol: - if all(hasattr(instance, attr) and - (not callable(getattr(self, attr, None)) or - getattr(instance, attr) is not None) - for attr in _get_protocol_attrs(self)): - return True - return super(GenericMeta, self).__instancecheck__(instance) - - def __subclasscheck__(self, cls): - if self.__origin__ is not None: - if sys._getframe(1).f_globals['__name__'] not in ['abc', 'functools']: - raise TypeError("Parameterized generics cannot be used with class " - "or instance checks") - return False - if (self.__dict__.get('_is_protocol', None) and - not self.__dict__.get('_is_runtime_protocol', None)): - if sys._getframe(1).f_globals['__name__'] in ['abc', - 'functools', - 'typing']: - return False - raise TypeError("Instance and class checks can only be used with" - " @runtime protocols") - if (self.__dict__.get('_is_runtime_protocol', None) and - not _is_callable_members_only(self)): - if sys._getframe(1).f_globals['__name__'] in ['abc', - 'functools', - 'typing']: - return super(GenericMeta, self).__subclasscheck__(cls) - raise TypeError("Protocols with non-method members" - " don't support issubclass()") - return super(GenericMeta, self).__subclasscheck__(cls) - - @typing._tp_cache - def __getitem__(self, params): - # We also need to copy this from GenericMeta.__getitem__ to get - # special treatment of "Protocol". (Comments removed for brevity.) - if not isinstance(params, tuple): - params = (params,) - if not params and _gorg(self) is not typing.Tuple: - raise TypeError( - f"Parameter list to {self.__qualname__}[...] cannot be empty") - msg = "Parameters to generic types must be types." - params = tuple(_type_check(p, msg) for p in params) - if self in (typing.Generic, Protocol): - if not all(isinstance(p, typing.TypeVar) for p in params): - raise TypeError( - f"Parameters to {repr(self)}[...] must all be type variables") - if len(set(params)) != len(params): - raise TypeError( - f"Parameters to {repr(self)}[...] must all be unique") - tvars = params - args = params - elif self in (typing.Tuple, typing.Callable): - tvars = _type_vars(params) - args = params - elif self.__origin__ in (typing.Generic, Protocol): - raise TypeError(f"Cannot subscript already-subscripted {repr(self)}") - else: - _check_generic(self, params, len(self.__parameters__)) - tvars = _type_vars(params) - args = params - - prepend = (self,) if self.__origin__ is None else () - return self.__class__(self.__name__, - prepend + self.__bases__, - _no_slots_copy(self.__dict__), - tvars=tvars, - args=args, - origin=self, - extra=self.__extra__, - orig_bases=self.__orig_bases__) - - class Protocol(metaclass=_ProtocolMeta): - """Base class for protocol classes. Protocol classes are defined as:: - - class Proto(Protocol): - def meth(self) -> int: - ... - - Such classes are primarily used with static type checkers that recognize - structural subtyping (static duck-typing), for example:: - - class C: - def meth(self) -> int: - return 0 - - def func(x: Proto) -> int: - return x.meth() - - func(C()) # Passes static type check - - See PEP 544 for details. Protocol classes decorated with - @typing_extensions.runtime act as simple-minded runtime protocol that checks - only the presence of given attributes, ignoring their type signatures. - - Protocol classes can be generic, they are defined as:: - - class GenProto(Protocol[T]): - def meth(self) -> T: - ... - """ - __slots__ = () - _is_protocol = True - - def __new__(cls, *args, **kwds): - if _gorg(cls) is Protocol: - raise TypeError("Type Protocol cannot be instantiated; " - "it can be used only as a base class") - return typing._generic_new(cls.__next_in_mro__, cls, *args, **kwds) - - -# 3.8+ -if hasattr(typing, 'runtime_checkable'): - runtime_checkable = typing.runtime_checkable -# 3.6-3.7 -else: - def runtime_checkable(cls): - """Mark a protocol class as a runtime protocol, so that it - can be used with isinstance() and issubclass(). Raise TypeError - if applied to a non-protocol class. - - This allows a simple-minded structural check very similar to the - one-offs in collections.abc such as Hashable. - """ - if not isinstance(cls, _ProtocolMeta) or not cls._is_protocol: - raise TypeError('@runtime_checkable can be only applied to protocol classes,' - f' got {cls!r}') - cls._is_runtime_protocol = True - return cls - - -# Exists for backwards compatibility. -runtime = runtime_checkable - - -# 3.8+ -if hasattr(typing, 'SupportsIndex'): - SupportsIndex = typing.SupportsIndex -# 3.6-3.7 -else: - @runtime_checkable - class SupportsIndex(Protocol): - __slots__ = () - - @abc.abstractmethod - def __index__(self) -> int: - pass - - -if hasattr(typing, "Required"): - # The standard library TypedDict in Python 3.8 does not store runtime information - # about which (if any) keys are optional. See https://bugs.python.org/issue38834 - # The standard library TypedDict in Python 3.9.0/1 does not honour the "total" - # keyword with old-style TypedDict(). See https://bugs.python.org/issue42059 - # The standard library TypedDict below Python 3.11 does not store runtime - # information about optional and required keys when using Required or NotRequired. - TypedDict = typing.TypedDict - _TypedDictMeta = typing._TypedDictMeta - is_typeddict = typing.is_typeddict -else: - def _check_fails(cls, other): - try: - if sys._getframe(1).f_globals['__name__'] not in ['abc', - 'functools', - 'typing']: - # Typed dicts are only for static structural subtyping. - raise TypeError('TypedDict does not support instance and class checks') - except (AttributeError, ValueError): - pass - return False - - def _dict_new(*args, **kwargs): - if not args: - raise TypeError('TypedDict.__new__(): not enough arguments') - _, args = args[0], args[1:] # allow the "cls" keyword be passed - return dict(*args, **kwargs) - - _dict_new.__text_signature__ = '($cls, _typename, _fields=None, /, **kwargs)' - - def _typeddict_new(*args, total=True, **kwargs): - if not args: - raise TypeError('TypedDict.__new__(): not enough arguments') - _, args = args[0], args[1:] # allow the "cls" keyword be passed - if args: - typename, args = args[0], args[1:] # allow the "_typename" keyword be passed - elif '_typename' in kwargs: - typename = kwargs.pop('_typename') - import warnings - warnings.warn("Passing '_typename' as keyword argument is deprecated", - DeprecationWarning, stacklevel=2) - else: - raise TypeError("TypedDict.__new__() missing 1 required positional " - "argument: '_typename'") - if args: - try: - fields, = args # allow the "_fields" keyword be passed - except ValueError: - raise TypeError('TypedDict.__new__() takes from 2 to 3 ' - f'positional arguments but {len(args) + 2} ' - 'were given') - elif '_fields' in kwargs and len(kwargs) == 1: - fields = kwargs.pop('_fields') - import warnings - warnings.warn("Passing '_fields' as keyword argument is deprecated", - DeprecationWarning, stacklevel=2) - else: - fields = None - - if fields is None: - fields = kwargs - elif kwargs: - raise TypeError("TypedDict takes either a dict or keyword arguments," - " but not both") - - ns = {'__annotations__': dict(fields)} - try: - # Setting correct module is necessary to make typed dict classes pickleable. - ns['__module__'] = sys._getframe(1).f_globals.get('__name__', '__main__') - except (AttributeError, ValueError): - pass - - return _TypedDictMeta(typename, (), ns, total=total) - - _typeddict_new.__text_signature__ = ('($cls, _typename, _fields=None,' - ' /, *, total=True, **kwargs)') - - class _TypedDictMeta(type): - def __init__(cls, name, bases, ns, total=True): - super().__init__(name, bases, ns) - - def __new__(cls, name, bases, ns, total=True): - # Create new typed dict class object. - # This method is called directly when TypedDict is subclassed, - # or via _typeddict_new when TypedDict is instantiated. This way - # TypedDict supports all three syntaxes described in its docstring. - # Subclasses and instances of TypedDict return actual dictionaries - # via _dict_new. - ns['__new__'] = _typeddict_new if name == 'TypedDict' else _dict_new - tp_dict = super().__new__(cls, name, (dict,), ns) - - annotations = {} - own_annotations = ns.get('__annotations__', {}) - msg = "TypedDict('Name', {f0: t0, f1: t1, ...}); each t must be a type" - own_annotations = { - n: typing._type_check(tp, msg) for n, tp in own_annotations.items() - } - required_keys = set() - optional_keys = set() - - for base in bases: - annotations.update(base.__dict__.get('__annotations__', {})) - required_keys.update(base.__dict__.get('__required_keys__', ())) - optional_keys.update(base.__dict__.get('__optional_keys__', ())) - - annotations.update(own_annotations) - if PEP_560: - for annotation_key, annotation_type in own_annotations.items(): - annotation_origin = get_origin(annotation_type) - if annotation_origin is Annotated: - annotation_args = get_args(annotation_type) - if annotation_args: - annotation_type = annotation_args[0] - annotation_origin = get_origin(annotation_type) - - if annotation_origin is Required: - required_keys.add(annotation_key) - elif annotation_origin is NotRequired: - optional_keys.add(annotation_key) - elif total: - required_keys.add(annotation_key) - else: - optional_keys.add(annotation_key) - else: - own_annotation_keys = set(own_annotations.keys()) - if total: - required_keys.update(own_annotation_keys) - else: - optional_keys.update(own_annotation_keys) - - tp_dict.__annotations__ = annotations - tp_dict.__required_keys__ = frozenset(required_keys) - tp_dict.__optional_keys__ = frozenset(optional_keys) - if not hasattr(tp_dict, '__total__'): - tp_dict.__total__ = total - return tp_dict - - __instancecheck__ = __subclasscheck__ = _check_fails - - TypedDict = _TypedDictMeta('TypedDict', (dict,), {}) - TypedDict.__module__ = __name__ - TypedDict.__doc__ = \ - """A simple typed name space. At runtime it is equivalent to a plain dict. - - TypedDict creates a dictionary type that expects all of its - instances to have a certain set of keys, with each key - associated with a value of a consistent type. This expectation - is not checked at runtime but is only enforced by type checkers. - Usage:: - - class Point2D(TypedDict): - x: int - y: int - label: str - - a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK - b: Point2D = {'z': 3, 'label': 'bad'} # Fails type check - - assert Point2D(x=1, y=2, label='first') == dict(x=1, y=2, label='first') - - The type info can be accessed via the Point2D.__annotations__ dict, and - the Point2D.__required_keys__ and Point2D.__optional_keys__ frozensets. - TypedDict supports two additional equivalent forms:: - - Point2D = TypedDict('Point2D', x=int, y=int, label=str) - Point2D = TypedDict('Point2D', {'x': int, 'y': int, 'label': str}) - - The class syntax is only supported in Python 3.6+, while two other - syntax forms work for Python 2.7 and 3.2+ - """ - - if hasattr(typing, "_TypedDictMeta"): - _TYPEDDICT_TYPES = (typing._TypedDictMeta, _TypedDictMeta) - else: - _TYPEDDICT_TYPES = (_TypedDictMeta,) - - def is_typeddict(tp): - """Check if an annotation is a TypedDict class - - For example:: - class Film(TypedDict): - title: str - year: int - - is_typeddict(Film) # => True - is_typeddict(Union[list, str]) # => False - """ - return isinstance(tp, tuple(_TYPEDDICT_TYPES)) - -if hasattr(typing, "Required"): - get_type_hints = typing.get_type_hints -elif PEP_560: - import functools - import types - - # replaces _strip_annotations() - def _strip_extras(t): - """Strips Annotated, Required and NotRequired from a given type.""" - if isinstance(t, _AnnotatedAlias): - return _strip_extras(t.__origin__) - if hasattr(t, "__origin__") and t.__origin__ in (Required, NotRequired): - return _strip_extras(t.__args__[0]) - if isinstance(t, typing._GenericAlias): - stripped_args = tuple(_strip_extras(a) for a in t.__args__) - if stripped_args == t.__args__: - return t - return t.copy_with(stripped_args) - if hasattr(types, "GenericAlias") and isinstance(t, types.GenericAlias): - stripped_args = tuple(_strip_extras(a) for a in t.__args__) - if stripped_args == t.__args__: - return t - return types.GenericAlias(t.__origin__, stripped_args) - if hasattr(types, "UnionType") and isinstance(t, types.UnionType): - stripped_args = tuple(_strip_extras(a) for a in t.__args__) - if stripped_args == t.__args__: - return t - return functools.reduce(operator.or_, stripped_args) - - return t - - def get_type_hints(obj, globalns=None, localns=None, include_extras=False): - """Return type hints for an object. - - This is often the same as obj.__annotations__, but it handles - forward references encoded as string literals, adds Optional[t] if a - default value equal to None is set and recursively replaces all - 'Annotated[T, ...]', 'Required[T]' or 'NotRequired[T]' with 'T' - (unless 'include_extras=True'). - - The argument may be a module, class, method, or function. The annotations - are returned as a dictionary. For classes, annotations include also - inherited members. - - TypeError is raised if the argument is not of a type that can contain - annotations, and an empty dictionary is returned if no annotations are - present. - - BEWARE -- the behavior of globalns and localns is counterintuitive - (unless you are familiar with how eval() and exec() work). The - search order is locals first, then globals. - - - If no dict arguments are passed, an attempt is made to use the - globals from obj (or the respective module's globals for classes), - and these are also used as the locals. If the object does not appear - to have globals, an empty dictionary is used. - - - If one dict argument is passed, it is used for both globals and - locals. - - - If two dict arguments are passed, they specify globals and - locals, respectively. - """ - if hasattr(typing, "Annotated"): - hint = typing.get_type_hints( - obj, globalns=globalns, localns=localns, include_extras=True - ) - else: - hint = typing.get_type_hints(obj, globalns=globalns, localns=localns) - if include_extras: - return hint - return {k: _strip_extras(t) for k, t in hint.items()} - - -# Python 3.9+ has PEP 593 (Annotated) -if hasattr(typing, 'Annotated'): - Annotated = typing.Annotated - # Not exported and not a public API, but needed for get_origin() and get_args() - # to work. - _AnnotatedAlias = typing._AnnotatedAlias -# 3.7-3.8 -elif PEP_560: - class _AnnotatedAlias(typing._GenericAlias, _root=True): - """Runtime representation of an annotated type. - - At its core 'Annotated[t, dec1, dec2, ...]' is an alias for the type 't' - with extra annotations. The alias behaves like a normal typing alias, - instantiating is the same as instantiating the underlying type, binding - it to types is also the same. - """ - def __init__(self, origin, metadata): - if isinstance(origin, _AnnotatedAlias): - metadata = origin.__metadata__ + metadata - origin = origin.__origin__ - super().__init__(origin, origin) - self.__metadata__ = metadata - - def copy_with(self, params): - assert len(params) == 1 - new_type = params[0] - return _AnnotatedAlias(new_type, self.__metadata__) - - def __repr__(self): - return (f"typing_extensions.Annotated[{typing._type_repr(self.__origin__)}, " - f"{', '.join(repr(a) for a in self.__metadata__)}]") - - def __reduce__(self): - return operator.getitem, ( - Annotated, (self.__origin__,) + self.__metadata__ - ) - - def __eq__(self, other): - if not isinstance(other, _AnnotatedAlias): - return NotImplemented - if self.__origin__ != other.__origin__: - return False - return self.__metadata__ == other.__metadata__ - - def __hash__(self): - return hash((self.__origin__, self.__metadata__)) - - class Annotated: - """Add context specific metadata to a type. - - Example: Annotated[int, runtime_check.Unsigned] indicates to the - hypothetical runtime_check module that this type is an unsigned int. - Every other consumer of this type can ignore this metadata and treat - this type as int. - - The first argument to Annotated must be a valid type (and will be in - the __origin__ field), the remaining arguments are kept as a tuple in - the __extra__ field. - - Details: - - - It's an error to call `Annotated` with less than two arguments. - - Nested Annotated are flattened:: - - Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3] - - - Instantiating an annotated type is equivalent to instantiating the - underlying type:: - - Annotated[C, Ann1](5) == C(5) - - - Annotated can be used as a generic type alias:: - - Optimized = Annotated[T, runtime.Optimize()] - Optimized[int] == Annotated[int, runtime.Optimize()] - - OptimizedList = Annotated[List[T], runtime.Optimize()] - OptimizedList[int] == Annotated[List[int], runtime.Optimize()] - """ - - __slots__ = () - - def __new__(cls, *args, **kwargs): - raise TypeError("Type Annotated cannot be instantiated.") - - @typing._tp_cache - def __class_getitem__(cls, params): - if not isinstance(params, tuple) or len(params) < 2: - raise TypeError("Annotated[...] should be used " - "with at least two arguments (a type and an " - "annotation).") - allowed_special_forms = (ClassVar, Final) - if get_origin(params[0]) in allowed_special_forms: - origin = params[0] - else: - msg = "Annotated[t, ...]: t must be a type." - origin = typing._type_check(params[0], msg) - metadata = tuple(params[1:]) - return _AnnotatedAlias(origin, metadata) - - def __init_subclass__(cls, *args, **kwargs): - raise TypeError( - f"Cannot subclass {cls.__module__}.Annotated" - ) -# 3.6 -else: - - def _is_dunder(name): - """Returns True if name is a __dunder_variable_name__.""" - return len(name) > 4 and name.startswith('__') and name.endswith('__') - - # Prior to Python 3.7 types did not have `copy_with`. A lot of the equality - # checks, argument expansion etc. are done on the _subs_tre. As a result we - # can't provide a get_type_hints function that strips out annotations. - - class AnnotatedMeta(typing.GenericMeta): - """Metaclass for Annotated""" - - def __new__(cls, name, bases, namespace, **kwargs): - if any(b is not object for b in bases): - raise TypeError("Cannot subclass " + str(Annotated)) - return super().__new__(cls, name, bases, namespace, **kwargs) - - @property - def __metadata__(self): - return self._subs_tree()[2] - - def _tree_repr(self, tree): - cls, origin, metadata = tree - if not isinstance(origin, tuple): - tp_repr = typing._type_repr(origin) - else: - tp_repr = origin[0]._tree_repr(origin) - metadata_reprs = ", ".join(repr(arg) for arg in metadata) - return f'{cls}[{tp_repr}, {metadata_reprs}]' - - def _subs_tree(self, tvars=None, args=None): # noqa - if self is Annotated: - return Annotated - res = super()._subs_tree(tvars=tvars, args=args) - # Flatten nested Annotated - if isinstance(res[1], tuple) and res[1][0] is Annotated: - sub_tp = res[1][1] - sub_annot = res[1][2] - return (Annotated, sub_tp, sub_annot + res[2]) - return res - - def _get_cons(self): - """Return the class used to create instance of this type.""" - if self.__origin__ is None: - raise TypeError("Cannot get the underlying type of a " - "non-specialized Annotated type.") - tree = self._subs_tree() - while isinstance(tree, tuple) and tree[0] is Annotated: - tree = tree[1] - if isinstance(tree, tuple): - return tree[0] - else: - return tree - - @typing._tp_cache - def __getitem__(self, params): - if not isinstance(params, tuple): - params = (params,) - if self.__origin__ is not None: # specializing an instantiated type - return super().__getitem__(params) - elif not isinstance(params, tuple) or len(params) < 2: - raise TypeError("Annotated[...] should be instantiated " - "with at least two arguments (a type and an " - "annotation).") - else: - if ( - isinstance(params[0], typing._TypingBase) and - type(params[0]).__name__ == "_ClassVar" - ): - tp = params[0] - else: - msg = "Annotated[t, ...]: t must be a type." - tp = typing._type_check(params[0], msg) - metadata = tuple(params[1:]) - return self.__class__( - self.__name__, - self.__bases__, - _no_slots_copy(self.__dict__), - tvars=_type_vars((tp,)), - # Metadata is a tuple so it won't be touched by _replace_args et al. - args=(tp, metadata), - origin=self, - ) - - def __call__(self, *args, **kwargs): - cons = self._get_cons() - result = cons(*args, **kwargs) - try: - result.__orig_class__ = self - except AttributeError: - pass - return result - - def __getattr__(self, attr): - # For simplicity we just don't relay all dunder names - if self.__origin__ is not None and not _is_dunder(attr): - return getattr(self._get_cons(), attr) - raise AttributeError(attr) - - def __setattr__(self, attr, value): - if _is_dunder(attr) or attr.startswith('_abc_'): - super().__setattr__(attr, value) - elif self.__origin__ is None: - raise AttributeError(attr) - else: - setattr(self._get_cons(), attr, value) - - def __instancecheck__(self, obj): - raise TypeError("Annotated cannot be used with isinstance().") - - def __subclasscheck__(self, cls): - raise TypeError("Annotated cannot be used with issubclass().") - - class Annotated(metaclass=AnnotatedMeta): - """Add context specific metadata to a type. - - Example: Annotated[int, runtime_check.Unsigned] indicates to the - hypothetical runtime_check module that this type is an unsigned int. - Every other consumer of this type can ignore this metadata and treat - this type as int. - - The first argument to Annotated must be a valid type, the remaining - arguments are kept as a tuple in the __metadata__ field. - - Details: - - - It's an error to call `Annotated` with less than two arguments. - - Nested Annotated are flattened:: - - Annotated[Annotated[T, Ann1, Ann2], Ann3] == Annotated[T, Ann1, Ann2, Ann3] - - - Instantiating an annotated type is equivalent to instantiating the - underlying type:: - - Annotated[C, Ann1](5) == C(5) - - - Annotated can be used as a generic type alias:: - - Optimized = Annotated[T, runtime.Optimize()] - Optimized[int] == Annotated[int, runtime.Optimize()] - - OptimizedList = Annotated[List[T], runtime.Optimize()] - OptimizedList[int] == Annotated[List[int], runtime.Optimize()] - """ - -# Python 3.8 has get_origin() and get_args() but those implementations aren't -# Annotated-aware, so we can't use those. Python 3.9's versions don't support -# ParamSpecArgs and ParamSpecKwargs, so only Python 3.10's versions will do. -if sys.version_info[:2] >= (3, 10): - get_origin = typing.get_origin - get_args = typing.get_args -# 3.7-3.9 -elif PEP_560: - try: - # 3.9+ - from typing import _BaseGenericAlias - except ImportError: - _BaseGenericAlias = typing._GenericAlias - try: - # 3.9+ - from typing import GenericAlias - except ImportError: - GenericAlias = typing._GenericAlias - - def get_origin(tp): - """Get the unsubscripted version of a type. - - This supports generic types, Callable, Tuple, Union, Literal, Final, ClassVar - and Annotated. Return None for unsupported types. Examples:: - - get_origin(Literal[42]) is Literal - get_origin(int) is None - get_origin(ClassVar[int]) is ClassVar - get_origin(Generic) is Generic - get_origin(Generic[T]) is Generic - get_origin(Union[T, int]) is Union - get_origin(List[Tuple[T, T]][int]) == list - get_origin(P.args) is P - """ - if isinstance(tp, _AnnotatedAlias): - return Annotated - if isinstance(tp, (typing._GenericAlias, GenericAlias, _BaseGenericAlias, - ParamSpecArgs, ParamSpecKwargs)): - return tp.__origin__ - if tp is typing.Generic: - return typing.Generic - return None - - def get_args(tp): - """Get type arguments with all substitutions performed. - - For unions, basic simplifications used by Union constructor are performed. - Examples:: - get_args(Dict[str, int]) == (str, int) - get_args(int) == () - get_args(Union[int, Union[T, int], str][int]) == (int, str) - get_args(Union[int, Tuple[T, int]][str]) == (int, Tuple[str, int]) - get_args(Callable[[], T][int]) == ([], int) - """ - if isinstance(tp, _AnnotatedAlias): - return (tp.__origin__,) + tp.__metadata__ - if isinstance(tp, (typing._GenericAlias, GenericAlias)): - if getattr(tp, "_special", False): - return () - res = tp.__args__ - if get_origin(tp) is collections.abc.Callable and res[0] is not Ellipsis: - res = (list(res[:-1]), res[-1]) - return res - return () - - -# 3.10+ -if hasattr(typing, 'TypeAlias'): - TypeAlias = typing.TypeAlias -# 3.9 -elif sys.version_info[:2] >= (3, 9): - class _TypeAliasForm(typing._SpecialForm, _root=True): - def __repr__(self): - return 'typing_extensions.' + self._name - - @_TypeAliasForm - def TypeAlias(self, parameters): - """Special marker indicating that an assignment should - be recognized as a proper type alias definition by type - checkers. - - For example:: - - Predicate: TypeAlias = Callable[..., bool] - - It's invalid when used anywhere except as in the example above. - """ - raise TypeError(f"{self} is not subscriptable") -# 3.7-3.8 -elif sys.version_info[:2] >= (3, 7): - class _TypeAliasForm(typing._SpecialForm, _root=True): - def __repr__(self): - return 'typing_extensions.' + self._name - - TypeAlias = _TypeAliasForm('TypeAlias', - doc="""Special marker indicating that an assignment should - be recognized as a proper type alias definition by type - checkers. - - For example:: - - Predicate: TypeAlias = Callable[..., bool] - - It's invalid when used anywhere except as in the example - above.""") -# 3.6 -else: - class _TypeAliasMeta(typing.TypingMeta): - """Metaclass for TypeAlias""" - - def __repr__(self): - return 'typing_extensions.TypeAlias' - - class _TypeAliasBase(typing._FinalTypingBase, metaclass=_TypeAliasMeta, _root=True): - """Special marker indicating that an assignment should - be recognized as a proper type alias definition by type - checkers. - - For example:: - - Predicate: TypeAlias = Callable[..., bool] - - It's invalid when used anywhere except as in the example above. - """ - __slots__ = () - - def __instancecheck__(self, obj): - raise TypeError("TypeAlias cannot be used with isinstance().") - - def __subclasscheck__(self, cls): - raise TypeError("TypeAlias cannot be used with issubclass().") - - def __repr__(self): - return 'typing_extensions.TypeAlias' - - TypeAlias = _TypeAliasBase(_root=True) - - -# Python 3.10+ has PEP 612 -if hasattr(typing, 'ParamSpecArgs'): - ParamSpecArgs = typing.ParamSpecArgs - ParamSpecKwargs = typing.ParamSpecKwargs -# 3.6-3.9 -else: - class _Immutable: - """Mixin to indicate that object should not be copied.""" - __slots__ = () - - def __copy__(self): - return self - - def __deepcopy__(self, memo): - return self - - class ParamSpecArgs(_Immutable): - """The args for a ParamSpec object. - - Given a ParamSpec object P, P.args is an instance of ParamSpecArgs. - - ParamSpecArgs objects have a reference back to their ParamSpec: - - P.args.__origin__ is P - - This type is meant for runtime introspection and has no special meaning to - static type checkers. - """ - def __init__(self, origin): - self.__origin__ = origin - - def __repr__(self): - return f"{self.__origin__.__name__}.args" - - def __eq__(self, other): - if not isinstance(other, ParamSpecArgs): - return NotImplemented - return self.__origin__ == other.__origin__ - - class ParamSpecKwargs(_Immutable): - """The kwargs for a ParamSpec object. - - Given a ParamSpec object P, P.kwargs is an instance of ParamSpecKwargs. - - ParamSpecKwargs objects have a reference back to their ParamSpec: - - P.kwargs.__origin__ is P - - This type is meant for runtime introspection and has no special meaning to - static type checkers. - """ - def __init__(self, origin): - self.__origin__ = origin - - def __repr__(self): - return f"{self.__origin__.__name__}.kwargs" - - def __eq__(self, other): - if not isinstance(other, ParamSpecKwargs): - return NotImplemented - return self.__origin__ == other.__origin__ - -# 3.10+ -if hasattr(typing, 'ParamSpec'): - ParamSpec = typing.ParamSpec -# 3.6-3.9 -else: - - # Inherits from list as a workaround for Callable checks in Python < 3.9.2. - class ParamSpec(list): - """Parameter specification variable. - - Usage:: - - P = ParamSpec('P') - - Parameter specification variables exist primarily for the benefit of static - type checkers. They are used to forward the parameter types of one - callable to another callable, a pattern commonly found in higher order - functions and decorators. They are only valid when used in ``Concatenate``, - or s the first argument to ``Callable``. In Python 3.10 and higher, - they are also supported in user-defined Generics at runtime. - See class Generic for more information on generic types. An - example for annotating a decorator:: - - T = TypeVar('T') - P = ParamSpec('P') - - def add_logging(f: Callable[P, T]) -> Callable[P, T]: - '''A type-safe decorator to add logging to a function.''' - def inner(*args: P.args, **kwargs: P.kwargs) -> T: - logging.info(f'{f.__name__} was called') - return f(*args, **kwargs) - return inner - - @add_logging - def add_two(x: float, y: float) -> float: - '''Add two numbers together.''' - return x + y - - Parameter specification variables defined with covariant=True or - contravariant=True can be used to declare covariant or contravariant - generic types. These keyword arguments are valid, but their actual semantics - are yet to be decided. See PEP 612 for details. - - Parameter specification variables can be introspected. e.g.: - - P.__name__ == 'T' - P.__bound__ == None - P.__covariant__ == False - P.__contravariant__ == False - - Note that only parameter specification variables defined in global scope can - be pickled. - """ - - # Trick Generic __parameters__. - __class__ = typing.TypeVar - - @property - def args(self): - return ParamSpecArgs(self) - - @property - def kwargs(self): - return ParamSpecKwargs(self) - - def __init__(self, name, *, bound=None, covariant=False, contravariant=False): - super().__init__([self]) - self.__name__ = name - self.__covariant__ = bool(covariant) - self.__contravariant__ = bool(contravariant) - if bound: - self.__bound__ = typing._type_check(bound, 'Bound must be a type.') - else: - self.__bound__ = None - - # for pickling: - try: - def_mod = sys._getframe(1).f_globals.get('__name__', '__main__') - except (AttributeError, ValueError): - def_mod = None - if def_mod != 'typing_extensions': - self.__module__ = def_mod - - def __repr__(self): - if self.__covariant__: - prefix = '+' - elif self.__contravariant__: - prefix = '-' - else: - prefix = '~' - return prefix + self.__name__ - - def __hash__(self): - return object.__hash__(self) - - def __eq__(self, other): - return self is other - - def __reduce__(self): - return self.__name__ - - # Hack to get typing._type_check to pass. - def __call__(self, *args, **kwargs): - pass - - if not PEP_560: - # Only needed in 3.6. - def _get_type_vars(self, tvars): - if self not in tvars: - tvars.append(self) - - -# 3.6-3.9 -if not hasattr(typing, 'Concatenate'): - # Inherits from list as a workaround for Callable checks in Python < 3.9.2. - class _ConcatenateGenericAlias(list): - - # Trick Generic into looking into this for __parameters__. - if PEP_560: - __class__ = typing._GenericAlias - else: - __class__ = typing._TypingBase - - # Flag in 3.8. - _special = False - # Attribute in 3.6 and earlier. - _gorg = typing.Generic - - def __init__(self, origin, args): - super().__init__(args) - self.__origin__ = origin - self.__args__ = args - - def __repr__(self): - _type_repr = typing._type_repr - return (f'{_type_repr(self.__origin__)}' - f'[{", ".join(_type_repr(arg) for arg in self.__args__)}]') - - def __hash__(self): - return hash((self.__origin__, self.__args__)) - - # Hack to get typing._type_check to pass in Generic. - def __call__(self, *args, **kwargs): - pass - - @property - def __parameters__(self): - return tuple( - tp for tp in self.__args__ if isinstance(tp, (typing.TypeVar, ParamSpec)) - ) - - if not PEP_560: - # Only required in 3.6. - def _get_type_vars(self, tvars): - if self.__origin__ and self.__parameters__: - typing._get_type_vars(self.__parameters__, tvars) - - -# 3.6-3.9 -@typing._tp_cache -def _concatenate_getitem(self, parameters): - if parameters == (): - raise TypeError("Cannot take a Concatenate of no types.") - if not isinstance(parameters, tuple): - parameters = (parameters,) - if not isinstance(parameters[-1], ParamSpec): - raise TypeError("The last parameter to Concatenate should be a " - "ParamSpec variable.") - msg = "Concatenate[arg, ...]: each arg must be a type." - parameters = tuple(typing._type_check(p, msg) for p in parameters) - return _ConcatenateGenericAlias(self, parameters) - - -# 3.10+ -if hasattr(typing, 'Concatenate'): - Concatenate = typing.Concatenate - _ConcatenateGenericAlias = typing._ConcatenateGenericAlias # noqa -# 3.9 -elif sys.version_info[:2] >= (3, 9): - @_TypeAliasForm - def Concatenate(self, parameters): - """Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a - higher order function which adds, removes or transforms parameters of a - callable. - - For example:: - - Callable[Concatenate[int, P], int] - - See PEP 612 for detailed information. - """ - return _concatenate_getitem(self, parameters) -# 3.7-8 -elif sys.version_info[:2] >= (3, 7): - class _ConcatenateForm(typing._SpecialForm, _root=True): - def __repr__(self): - return 'typing_extensions.' + self._name - - def __getitem__(self, parameters): - return _concatenate_getitem(self, parameters) - - Concatenate = _ConcatenateForm( - 'Concatenate', - doc="""Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a - higher order function which adds, removes or transforms parameters of a - callable. - - For example:: - - Callable[Concatenate[int, P], int] - - See PEP 612 for detailed information. - """) -# 3.6 -else: - class _ConcatenateAliasMeta(typing.TypingMeta): - """Metaclass for Concatenate.""" - - def __repr__(self): - return 'typing_extensions.Concatenate' - - class _ConcatenateAliasBase(typing._FinalTypingBase, - metaclass=_ConcatenateAliasMeta, - _root=True): - """Used in conjunction with ``ParamSpec`` and ``Callable`` to represent a - higher order function which adds, removes or transforms parameters of a - callable. - - For example:: - - Callable[Concatenate[int, P], int] - - See PEP 612 for detailed information. - """ - __slots__ = () - - def __instancecheck__(self, obj): - raise TypeError("Concatenate cannot be used with isinstance().") - - def __subclasscheck__(self, cls): - raise TypeError("Concatenate cannot be used with issubclass().") - - def __repr__(self): - return 'typing_extensions.Concatenate' - - def __getitem__(self, parameters): - return _concatenate_getitem(self, parameters) - - Concatenate = _ConcatenateAliasBase(_root=True) - -# 3.10+ -if hasattr(typing, 'TypeGuard'): - TypeGuard = typing.TypeGuard -# 3.9 -elif sys.version_info[:2] >= (3, 9): - class _TypeGuardForm(typing._SpecialForm, _root=True): - def __repr__(self): - return 'typing_extensions.' + self._name - - @_TypeGuardForm - def TypeGuard(self, parameters): - """Special typing form used to annotate the return type of a user-defined - type guard function. ``TypeGuard`` only accepts a single type argument. - At runtime, functions marked this way should return a boolean. - - ``TypeGuard`` aims to benefit *type narrowing* -- a technique used by static - type checkers to determine a more precise type of an expression within a - program's code flow. Usually type narrowing is done by analyzing - conditional code flow and applying the narrowing to a block of code. The - conditional expression here is sometimes referred to as a "type guard". - - Sometimes it would be convenient to use a user-defined boolean function - as a type guard. Such a function should use ``TypeGuard[...]`` as its - return type to alert static type checkers to this intention. - - Using ``-> TypeGuard`` tells the static type checker that for a given - function: - - 1. The return value is a boolean. - 2. If the return value is ``True``, the type of its argument - is the type inside ``TypeGuard``. - - For example:: - - def is_str(val: Union[str, float]): - # "isinstance" type guard - if isinstance(val, str): - # Type of ``val`` is narrowed to ``str`` - ... - else: - # Else, type of ``val`` is narrowed to ``float``. - ... - - Strict type narrowing is not enforced -- ``TypeB`` need not be a narrower - form of ``TypeA`` (it can even be a wider form) and this may lead to - type-unsafe results. The main reason is to allow for things like - narrowing ``List[object]`` to ``List[str]`` even though the latter is not - a subtype of the former, since ``List`` is invariant. The responsibility of - writing type-safe type guards is left to the user. - - ``TypeGuard`` also works with type variables. For more information, see - PEP 647 (User-Defined Type Guards). - """ - item = typing._type_check(parameters, f'{self} accepts only single type.') - return typing._GenericAlias(self, (item,)) -# 3.7-3.8 -elif sys.version_info[:2] >= (3, 7): - class _TypeGuardForm(typing._SpecialForm, _root=True): - - def __repr__(self): - return 'typing_extensions.' + self._name - - def __getitem__(self, parameters): - item = typing._type_check(parameters, - f'{self._name} accepts only a single type') - return typing._GenericAlias(self, (item,)) - - TypeGuard = _TypeGuardForm( - 'TypeGuard', - doc="""Special typing form used to annotate the return type of a user-defined - type guard function. ``TypeGuard`` only accepts a single type argument. - At runtime, functions marked this way should return a boolean. - - ``TypeGuard`` aims to benefit *type narrowing* -- a technique used by static - type checkers to determine a more precise type of an expression within a - program's code flow. Usually type narrowing is done by analyzing - conditional code flow and applying the narrowing to a block of code. The - conditional expression here is sometimes referred to as a "type guard". - - Sometimes it would be convenient to use a user-defined boolean function - as a type guard. Such a function should use ``TypeGuard[...]`` as its - return type to alert static type checkers to this intention. - - Using ``-> TypeGuard`` tells the static type checker that for a given - function: - - 1. The return value is a boolean. - 2. If the return value is ``True``, the type of its argument - is the type inside ``TypeGuard``. - - For example:: - - def is_str(val: Union[str, float]): - # "isinstance" type guard - if isinstance(val, str): - # Type of ``val`` is narrowed to ``str`` - ... - else: - # Else, type of ``val`` is narrowed to ``float``. - ... - - Strict type narrowing is not enforced -- ``TypeB`` need not be a narrower - form of ``TypeA`` (it can even be a wider form) and this may lead to - type-unsafe results. The main reason is to allow for things like - narrowing ``List[object]`` to ``List[str]`` even though the latter is not - a subtype of the former, since ``List`` is invariant. The responsibility of - writing type-safe type guards is left to the user. - - ``TypeGuard`` also works with type variables. For more information, see - PEP 647 (User-Defined Type Guards). - """) -# 3.6 -else: - class _TypeGuard(typing._FinalTypingBase, _root=True): - """Special typing form used to annotate the return type of a user-defined - type guard function. ``TypeGuard`` only accepts a single type argument. - At runtime, functions marked this way should return a boolean. - - ``TypeGuard`` aims to benefit *type narrowing* -- a technique used by static - type checkers to determine a more precise type of an expression within a - program's code flow. Usually type narrowing is done by analyzing - conditional code flow and applying the narrowing to a block of code. The - conditional expression here is sometimes referred to as a "type guard". - - Sometimes it would be convenient to use a user-defined boolean function - as a type guard. Such a function should use ``TypeGuard[...]`` as its - return type to alert static type checkers to this intention. - - Using ``-> TypeGuard`` tells the static type checker that for a given - function: - - 1. The return value is a boolean. - 2. If the return value is ``True``, the type of its argument - is the type inside ``TypeGuard``. - - For example:: - - def is_str(val: Union[str, float]): - # "isinstance" type guard - if isinstance(val, str): - # Type of ``val`` is narrowed to ``str`` - ... - else: - # Else, type of ``val`` is narrowed to ``float``. - ... - - Strict type narrowing is not enforced -- ``TypeB`` need not be a narrower - form of ``TypeA`` (it can even be a wider form) and this may lead to - type-unsafe results. The main reason is to allow for things like - narrowing ``List[object]`` to ``List[str]`` even though the latter is not - a subtype of the former, since ``List`` is invariant. The responsibility of - writing type-safe type guards is left to the user. - - ``TypeGuard`` also works with type variables. For more information, see - PEP 647 (User-Defined Type Guards). - """ - - __slots__ = ('__type__',) - - def __init__(self, tp=None, **kwds): - self.__type__ = tp - - def __getitem__(self, item): - cls = type(self) - if self.__type__ is None: - return cls(typing._type_check(item, - f'{cls.__name__[1:]} accepts only a single type.'), - _root=True) - raise TypeError(f'{cls.__name__[1:]} cannot be further subscripted') - - def _eval_type(self, globalns, localns): - new_tp = typing._eval_type(self.__type__, globalns, localns) - if new_tp == self.__type__: - return self - return type(self)(new_tp, _root=True) - - def __repr__(self): - r = super().__repr__() - if self.__type__ is not None: - r += f'[{typing._type_repr(self.__type__)}]' - return r - - def __hash__(self): - return hash((type(self).__name__, self.__type__)) - - def __eq__(self, other): - if not isinstance(other, _TypeGuard): - return NotImplemented - if self.__type__ is not None: - return self.__type__ == other.__type__ - return self is other - - TypeGuard = _TypeGuard(_root=True) - - -if sys.version_info[:2] >= (3, 7): - # Vendored from cpython typing._SpecialFrom - class _SpecialForm(typing._Final, _root=True): - __slots__ = ('_name', '__doc__', '_getitem') - - def __init__(self, getitem): - self._getitem = getitem - self._name = getitem.__name__ - self.__doc__ = getitem.__doc__ - - def __getattr__(self, item): - if item in {'__name__', '__qualname__'}: - return self._name - - raise AttributeError(item) - - def __mro_entries__(self, bases): - raise TypeError(f"Cannot subclass {self!r}") - - def __repr__(self): - return f'typing_extensions.{self._name}' - - def __reduce__(self): - return self._name - - def __call__(self, *args, **kwds): - raise TypeError(f"Cannot instantiate {self!r}") - - def __or__(self, other): - return typing.Union[self, other] - - def __ror__(self, other): - return typing.Union[other, self] - - def __instancecheck__(self, obj): - raise TypeError(f"{self} cannot be used with isinstance()") - - def __subclasscheck__(self, cls): - raise TypeError(f"{self} cannot be used with issubclass()") - - @typing._tp_cache - def __getitem__(self, parameters): - return self._getitem(self, parameters) - - -if hasattr(typing, "LiteralString"): - LiteralString = typing.LiteralString -elif sys.version_info[:2] >= (3, 7): - @_SpecialForm - def LiteralString(self, params): - """Represents an arbitrary literal string. - - Example:: - - from typing_extensions import LiteralString - - def query(sql: LiteralString) -> ...: - ... - - query("SELECT * FROM table") # ok - query(f"SELECT * FROM {input()}") # not ok - - See PEP 675 for details. - - """ - raise TypeError(f"{self} is not subscriptable") -else: - class _LiteralString(typing._FinalTypingBase, _root=True): - """Represents an arbitrary literal string. - - Example:: - - from typing_extensions import LiteralString - - def query(sql: LiteralString) -> ...: - ... - - query("SELECT * FROM table") # ok - query(f"SELECT * FROM {input()}") # not ok - - See PEP 675 for details. - - """ - - __slots__ = () - - def __instancecheck__(self, obj): - raise TypeError(f"{self} cannot be used with isinstance().") - - def __subclasscheck__(self, cls): - raise TypeError(f"{self} cannot be used with issubclass().") - - LiteralString = _LiteralString(_root=True) - - -if hasattr(typing, "Self"): - Self = typing.Self -elif sys.version_info[:2] >= (3, 7): - @_SpecialForm - def Self(self, params): - """Used to spell the type of "self" in classes. - - Example:: - - from typing import Self - - class ReturnsSelf: - def parse(self, data: bytes) -> Self: - ... - return self - - """ - - raise TypeError(f"{self} is not subscriptable") -else: - class _Self(typing._FinalTypingBase, _root=True): - """Used to spell the type of "self" in classes. - - Example:: - - from typing import Self - - class ReturnsSelf: - def parse(self, data: bytes) -> Self: - ... - return self - - """ - - __slots__ = () - - def __instancecheck__(self, obj): - raise TypeError(f"{self} cannot be used with isinstance().") - - def __subclasscheck__(self, cls): - raise TypeError(f"{self} cannot be used with issubclass().") - - Self = _Self(_root=True) - - -if hasattr(typing, "Never"): - Never = typing.Never -elif sys.version_info[:2] >= (3, 7): - @_SpecialForm - def Never(self, params): - """The bottom type, a type that has no members. - - This can be used to define a function that should never be - called, or a function that never returns:: - - from typing_extensions import Never - - def never_call_me(arg: Never) -> None: - pass - - def int_or_str(arg: int | str) -> None: - never_call_me(arg) # type checker error - match arg: - case int(): - print("It's an int") - case str(): - print("It's a str") - case _: - never_call_me(arg) # ok, arg is of type Never - - """ - - raise TypeError(f"{self} is not subscriptable") -else: - class _Never(typing._FinalTypingBase, _root=True): - """The bottom type, a type that has no members. - - This can be used to define a function that should never be - called, or a function that never returns:: - - from typing_extensions import Never - - def never_call_me(arg: Never) -> None: - pass - - def int_or_str(arg: int | str) -> None: - never_call_me(arg) # type checker error - match arg: - case int(): - print("It's an int") - case str(): - print("It's a str") - case _: - never_call_me(arg) # ok, arg is of type Never - - """ - - __slots__ = () - - def __instancecheck__(self, obj): - raise TypeError(f"{self} cannot be used with isinstance().") - - def __subclasscheck__(self, cls): - raise TypeError(f"{self} cannot be used with issubclass().") - - Never = _Never(_root=True) - - -if hasattr(typing, 'Required'): - Required = typing.Required - NotRequired = typing.NotRequired -elif sys.version_info[:2] >= (3, 9): - class _ExtensionsSpecialForm(typing._SpecialForm, _root=True): - def __repr__(self): - return 'typing_extensions.' + self._name - - @_ExtensionsSpecialForm - def Required(self, parameters): - """A special typing construct to mark a key of a total=False TypedDict - as required. For example: - - class Movie(TypedDict, total=False): - title: Required[str] - year: int - - m = Movie( - title='The Matrix', # typechecker error if key is omitted - year=1999, - ) - - There is no runtime checking that a required key is actually provided - when instantiating a related TypedDict. - """ - item = typing._type_check(parameters, f'{self._name} accepts only single type') - return typing._GenericAlias(self, (item,)) - - @_ExtensionsSpecialForm - def NotRequired(self, parameters): - """A special typing construct to mark a key of a TypedDict as - potentially missing. For example: - - class Movie(TypedDict): - title: str - year: NotRequired[int] - - m = Movie( - title='The Matrix', # typechecker error if key is omitted - year=1999, - ) - """ - item = typing._type_check(parameters, f'{self._name} accepts only single type') - return typing._GenericAlias(self, (item,)) - -elif sys.version_info[:2] >= (3, 7): - class _RequiredForm(typing._SpecialForm, _root=True): - def __repr__(self): - return 'typing_extensions.' + self._name - - def __getitem__(self, parameters): - item = typing._type_check(parameters, - '{} accepts only single type'.format(self._name)) - return typing._GenericAlias(self, (item,)) - - Required = _RequiredForm( - 'Required', - doc="""A special typing construct to mark a key of a total=False TypedDict - as required. For example: - - class Movie(TypedDict, total=False): - title: Required[str] - year: int - - m = Movie( - title='The Matrix', # typechecker error if key is omitted - year=1999, - ) - - There is no runtime checking that a required key is actually provided - when instantiating a related TypedDict. - """) - NotRequired = _RequiredForm( - 'NotRequired', - doc="""A special typing construct to mark a key of a TypedDict as - potentially missing. For example: - - class Movie(TypedDict): - title: str - year: NotRequired[int] - - m = Movie( - title='The Matrix', # typechecker error if key is omitted - year=1999, - ) - """) -else: - # NOTE: Modeled after _Final's implementation when _FinalTypingBase available - class _MaybeRequired(typing._FinalTypingBase, _root=True): - __slots__ = ('__type__',) - - def __init__(self, tp=None, **kwds): - self.__type__ = tp - - def __getitem__(self, item): - cls = type(self) - if self.__type__ is None: - return cls(typing._type_check(item, - '{} accepts only single type.'.format(cls.__name__[1:])), - _root=True) - raise TypeError('{} cannot be further subscripted' - .format(cls.__name__[1:])) - - def _eval_type(self, globalns, localns): - new_tp = typing._eval_type(self.__type__, globalns, localns) - if new_tp == self.__type__: - return self - return type(self)(new_tp, _root=True) - - def __repr__(self): - r = super().__repr__() - if self.__type__ is not None: - r += '[{}]'.format(typing._type_repr(self.__type__)) - return r - - def __hash__(self): - return hash((type(self).__name__, self.__type__)) - - def __eq__(self, other): - if not isinstance(other, type(self)): - return NotImplemented - if self.__type__ is not None: - return self.__type__ == other.__type__ - return self is other - - class _Required(_MaybeRequired, _root=True): - """A special typing construct to mark a key of a total=False TypedDict - as required. For example: - - class Movie(TypedDict, total=False): - title: Required[str] - year: int - - m = Movie( - title='The Matrix', # typechecker error if key is omitted - year=1999, - ) - - There is no runtime checking that a required key is actually provided - when instantiating a related TypedDict. - """ - - class _NotRequired(_MaybeRequired, _root=True): - """A special typing construct to mark a key of a TypedDict as - potentially missing. For example: - - class Movie(TypedDict): - title: str - year: NotRequired[int] - - m = Movie( - title='The Matrix', # typechecker error if key is omitted - year=1999, - ) - """ - - Required = _Required(_root=True) - NotRequired = _NotRequired(_root=True) - - -if sys.version_info[:2] >= (3, 9): - class _UnpackSpecialForm(typing._SpecialForm, _root=True): - def __repr__(self): - return 'typing_extensions.' + self._name - - class _UnpackAlias(typing._GenericAlias, _root=True): - __class__ = typing.TypeVar - - @_UnpackSpecialForm - def Unpack(self, parameters): - """A special typing construct to unpack a variadic type. For example: - - Shape = TypeVarTuple('Shape') - Batch = NewType('Batch', int) - - def add_batch_axis( - x: Array[Unpack[Shape]] - ) -> Array[Batch, Unpack[Shape]]: ... - - """ - item = typing._type_check(parameters, f'{self._name} accepts only single type') - return _UnpackAlias(self, (item,)) - - def _is_unpack(obj): - return isinstance(obj, _UnpackAlias) - -elif sys.version_info[:2] >= (3, 7): - class _UnpackAlias(typing._GenericAlias, _root=True): - __class__ = typing.TypeVar - - class _UnpackForm(typing._SpecialForm, _root=True): - def __repr__(self): - return 'typing_extensions.' + self._name - - def __getitem__(self, parameters): - item = typing._type_check(parameters, - f'{self._name} accepts only single type') - return _UnpackAlias(self, (item,)) - - Unpack = _UnpackForm( - 'Unpack', - doc="""A special typing construct to unpack a variadic type. For example: - - Shape = TypeVarTuple('Shape') - Batch = NewType('Batch', int) - - def add_batch_axis( - x: Array[Unpack[Shape]] - ) -> Array[Batch, Unpack[Shape]]: ... - - """) - - def _is_unpack(obj): - return isinstance(obj, _UnpackAlias) - -else: - # NOTE: Modeled after _Final's implementation when _FinalTypingBase available - class _Unpack(typing._FinalTypingBase, _root=True): - """A special typing construct to unpack a variadic type. For example: - - Shape = TypeVarTuple('Shape') - Batch = NewType('Batch', int) - - def add_batch_axis( - x: Array[Unpack[Shape]] - ) -> Array[Batch, Unpack[Shape]]: ... - - """ - __slots__ = ('__type__',) - __class__ = typing.TypeVar - - def __init__(self, tp=None, **kwds): - self.__type__ = tp - - def __getitem__(self, item): - cls = type(self) - if self.__type__ is None: - return cls(typing._type_check(item, - 'Unpack accepts only single type.'), - _root=True) - raise TypeError('Unpack cannot be further subscripted') - - def _eval_type(self, globalns, localns): - new_tp = typing._eval_type(self.__type__, globalns, localns) - if new_tp == self.__type__: - return self - return type(self)(new_tp, _root=True) - - def __repr__(self): - r = super().__repr__() - if self.__type__ is not None: - r += '[{}]'.format(typing._type_repr(self.__type__)) - return r - - def __hash__(self): - return hash((type(self).__name__, self.__type__)) - - def __eq__(self, other): - if not isinstance(other, _Unpack): - return NotImplemented - if self.__type__ is not None: - return self.__type__ == other.__type__ - return self is other - - # For 3.6 only - def _get_type_vars(self, tvars): - self.__type__._get_type_vars(tvars) - - Unpack = _Unpack(_root=True) - - def _is_unpack(obj): - return isinstance(obj, _Unpack) - - -class TypeVarTuple: - """Type variable tuple. - - Usage:: - - Ts = TypeVarTuple('Ts') - - In the same way that a normal type variable is a stand-in for a single - type such as ``int``, a type variable *tuple* is a stand-in for a *tuple* type such as - ``Tuple[int, str]``. - - Type variable tuples can be used in ``Generic`` declarations. - Consider the following example:: - - class Array(Generic[*Ts]): ... - - The ``Ts`` type variable tuple here behaves like ``tuple[T1, T2]``, - where ``T1`` and ``T2`` are type variables. To use these type variables - as type parameters of ``Array``, we must *unpack* the type variable tuple using - the star operator: ``*Ts``. The signature of ``Array`` then behaves - as if we had simply written ``class Array(Generic[T1, T2]): ...``. - In contrast to ``Generic[T1, T2]``, however, ``Generic[*Shape]`` allows - us to parameterise the class with an *arbitrary* number of type parameters. - - Type variable tuples can be used anywhere a normal ``TypeVar`` can. - This includes class definitions, as shown above, as well as function - signatures and variable annotations:: - - class Array(Generic[*Ts]): - - def __init__(self, shape: Tuple[*Ts]): - self._shape: Tuple[*Ts] = shape - - def get_shape(self) -> Tuple[*Ts]: - return self._shape - - shape = (Height(480), Width(640)) - x: Array[Height, Width] = Array(shape) - y = abs(x) # Inferred type is Array[Height, Width] - z = x + x # ... is Array[Height, Width] - x.get_shape() # ... is tuple[Height, Width] - - """ - - # Trick Generic __parameters__. - __class__ = typing.TypeVar - - def __iter__(self): - yield self.__unpacked__ - - def __init__(self, name): - self.__name__ = name - - # for pickling: - try: - def_mod = sys._getframe(1).f_globals.get('__name__', '__main__') - except (AttributeError, ValueError): - def_mod = None - if def_mod != 'typing_extensions': - self.__module__ = def_mod - - self.__unpacked__ = Unpack[self] - - def __repr__(self): - return self.__name__ - - def __hash__(self): - return object.__hash__(self) - - def __eq__(self, other): - return self is other - - def __reduce__(self): - return self.__name__ - - def __init_subclass__(self, *args, **kwds): - if '_root' not in kwds: - raise TypeError("Cannot subclass special typing classes") - - if not PEP_560: - # Only needed in 3.6. - def _get_type_vars(self, tvars): - if self not in tvars: - tvars.append(self) - - -if hasattr(typing, "reveal_type"): - reveal_type = typing.reveal_type -else: - def reveal_type(__obj: T) -> T: - """Reveal the inferred type of a variable. - - When a static type checker encounters a call to ``reveal_type()``, - it will emit the inferred type of the argument:: - - x: int = 1 - reveal_type(x) - - Running a static type checker (e.g., ``mypy``) on this example - will produce output similar to 'Revealed type is "builtins.int"'. - - At runtime, the function prints the runtime type of the - argument and returns it unchanged. - - """ - print(f"Runtime type is {type(__obj).__name__!r}", file=sys.stderr) - return __obj - - -if hasattr(typing, "assert_never"): - assert_never = typing.assert_never -else: - def assert_never(__arg: Never) -> Never: - """Assert to the type checker that a line of code is unreachable. - - Example:: - - def int_or_str(arg: int | str) -> None: - match arg: - case int(): - print("It's an int") - case str(): - print("It's a str") - case _: - assert_never(arg) - - If a type checker finds that a call to assert_never() is - reachable, it will emit an error. - - At runtime, this throws an exception when called. - - """ - raise AssertionError("Expected code to be unreachable") - - -if hasattr(typing, 'dataclass_transform'): - dataclass_transform = typing.dataclass_transform -else: - def dataclass_transform( - *, - eq_default: bool = True, - order_default: bool = False, - kw_only_default: bool = False, - field_descriptors: typing.Tuple[ - typing.Union[typing.Type[typing.Any], typing.Callable[..., typing.Any]], - ... - ] = (), - ) -> typing.Callable[[T], T]: - """Decorator that marks a function, class, or metaclass as providing - dataclass-like behavior. - - Example: - - from typing_extensions import dataclass_transform - - _T = TypeVar("_T") - - # Used on a decorator function - @dataclass_transform() - def create_model(cls: type[_T]) -> type[_T]: - ... - return cls - - @create_model - class CustomerModel: - id: int - name: str - - # Used on a base class - @dataclass_transform() - class ModelBase: ... - - class CustomerModel(ModelBase): - id: int - name: str - - # Used on a metaclass - @dataclass_transform() - class ModelMeta(type): ... - - class ModelBase(metaclass=ModelMeta): ... - - class CustomerModel(ModelBase): - id: int - name: str - - Each of the ``CustomerModel`` classes defined in this example will now - behave similarly to a dataclass created with the ``@dataclasses.dataclass`` - decorator. For example, the type checker will synthesize an ``__init__`` - method. - - The arguments to this decorator can be used to customize this behavior: - - ``eq_default`` indicates whether the ``eq`` parameter is assumed to be - True or False if it is omitted by the caller. - - ``order_default`` indicates whether the ``order`` parameter is - assumed to be True or False if it is omitted by the caller. - - ``kw_only_default`` indicates whether the ``kw_only`` parameter is - assumed to be True or False if it is omitted by the caller. - - ``field_descriptors`` specifies a static list of supported classes - or functions, that describe fields, similar to ``dataclasses.field()``. - - At runtime, this decorator records its arguments in the - ``__dataclass_transform__`` attribute on the decorated object. - - See PEP 681 for details. - - """ - def decorator(cls_or_fn): - cls_or_fn.__dataclass_transform__ = { - "eq_default": eq_default, - "order_default": order_default, - "kw_only_default": kw_only_default, - "field_descriptors": field_descriptors, - } - return cls_or_fn - return decorator - - -# We have to do some monkey patching to deal with the dual nature of -# Unpack/TypeVarTuple: -# - We want Unpack to be a kind of TypeVar so it gets accepted in -# Generic[Unpack[Ts]] -# - We want it to *not* be treated as a TypeVar for the purposes of -# counting generic parameters, so that when we subscript a generic, -# the runtime doesn't try to substitute the Unpack with the subscripted type. -if not hasattr(typing, "TypeVarTuple"): - typing._collect_type_vars = _collect_type_vars - typing._check_generic = _check_generic diff --git a/tests/wpt/tests/tools/webdriver/webdriver/error.py b/tests/wpt/tests/tools/webdriver/webdriver/error.py index bd2b31728ec..d690c11dfb0 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/error.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/error.py @@ -16,7 +16,14 @@ class WebDriverException(Exception): http_status: ClassVar[int] status_code: ClassVar[str] - def __init__(self, http_status=None, status_code=None, message=None, stacktrace=None): + def __init__( + self, + http_status=None, + status_code=None, + message=None, + stacktrace=None, + data=None, + ): super().__init__() if http_status is not None: @@ -25,6 +32,7 @@ class WebDriverException(Exception): self.status_code = status_code self.message = message self.stacktrace = stacktrace + self.data = data def __repr__(self): return f"<{self.__class__.__name__} http_status={self.http_status}>" @@ -214,9 +222,11 @@ def from_response(response): code = value["error"] message = value["message"] or None stack = value["stacktrace"] or None + # data is optional, and could even be an empty dict + data = value.get("data") or None cls = get(code) - return cls(response.status, code, message, stacktrace=stack) + return cls(response.status, code, message, stacktrace=stack, data=data) def get(error_code): diff --git a/tests/wpt/tests/trusted-types/Element-setAttribute-setAttributeNS-sinks.tentative.html b/tests/wpt/tests/trusted-types/Element-setAttribute-setAttributeNS-sinks.tentative.html new file mode 100644 index 00000000000..f9a3ae69c92 --- /dev/null +++ b/tests/wpt/tests/trusted-types/Element-setAttribute-setAttributeNS-sinks.tentative.html @@ -0,0 +1,98 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/trusted-types/TrustedTypePolicyFactory-getAttributeType-event-handler-content-attributes.tentative.html b/tests/wpt/tests/trusted-types/TrustedTypePolicyFactory-getAttributeType-event-handler-content-attributes.tentative.html index d8e82ab642b..9dc9e7e6f0a 100644 --- a/tests/wpt/tests/trusted-types/TrustedTypePolicyFactory-getAttributeType-event-handler-content-attributes.tentative.html +++ b/tests/wpt/tests/trusted-types/TrustedTypePolicyFactory-getAttributeType-event-handler-content-attributes.tentative.html @@ -6,61 +6,19 @@ - - diff --git a/tests/wpt/tests/trusted-types/block-string-assignment-to-text-and-url-sinks.html b/tests/wpt/tests/trusted-types/block-string-assignment-to-text-and-url-sinks.html new file mode 100644 index 00000000000..a885ac283b3 --- /dev/null +++ b/tests/wpt/tests/trusted-types/block-string-assignment-to-text-and-url-sinks.html @@ -0,0 +1,124 @@ + + + + + + diff --git a/tests/wpt/tests/trusted-types/set-event-handlers-content-attributes.tentative.html b/tests/wpt/tests/trusted-types/set-event-handlers-content-attributes.tentative.html new file mode 100644 index 00000000000..0dd5f8b3a08 --- /dev/null +++ b/tests/wpt/tests/trusted-types/set-event-handlers-content-attributes.tentative.html @@ -0,0 +1,67 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js b/tests/wpt/tests/trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js index e03329cdce0..2905c232d31 100644 --- a/tests/wpt/tests/trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js +++ b/tests/wpt/tests/trusted-types/support/DOMWindowTimers-setTimeout-setInterval.js @@ -17,7 +17,7 @@ async_test(t => { globalThis.trustedTypes.createPolicy("default", {createScript: (s, _, sink) => { // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timer-initialisation-steps, // step 9.6.1.1. - const expectedSink = globalThisStr.includes("Window") ? "Window" : "Worker"; + const expectedSink = globalThisStr.includes("Window") ? "Window" : "WorkerGlobalScope"; if (s === "timeoutStringTest") { assert_equals(sink, `${expectedSink} setTimeout`); diff --git a/tests/wpt/tests/trusted-types/support/WorkerGlobalScope-importScripts.https.js b/tests/wpt/tests/trusted-types/support/WorkerGlobalScope-importScripts.https.js index a3ecfc48192..06548da2248 100644 --- a/tests/wpt/tests/trusted-types/support/WorkerGlobalScope-importScripts.https.js +++ b/tests/wpt/tests/trusted-types/support/WorkerGlobalScope-importScripts.https.js @@ -65,7 +65,7 @@ test(t => { // Test default policy application: trustedTypes.createPolicy("default", { createScriptURL: (url, _, sink) => { - assert_equals(sink, "Worker importScripts"); + assert_equals(sink, "WorkerGlobalScope importScripts"); return url.replace("play", "work"); } }, true); diff --git a/tests/wpt/tests/trusted-types/support/block-eval-function-constructor-worker.js.headers b/tests/wpt/tests/trusted-types/support/block-eval-function-constructor-worker.js.headers new file mode 100644 index 00000000000..af6596b29a8 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/block-eval-function-constructor-worker.js.headers @@ -0,0 +1 @@ +Content-Security-Policy: require-trusted-types-for 'script' diff --git a/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js b/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js index f1218e1915a..5660deaf1e4 100644 --- a/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js +++ b/tests/wpt/tests/trusted-types/support/block-string-assignment-to-DOMWindowTimers-setTimeout-setInterval.js @@ -52,10 +52,13 @@ const kTimeoutTestString = "timeoutTestString"; const kIntervalTestString = "intervalTestString"; let policy = globalThis.trustedTypes.createPolicy("default", { createScript: (x, _, sink) => { + // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timer-initialisation-steps, + // step 9.6.1.1. + const expectedSink = globalThisStr.includes("Window") ? "Window" : "WorkerGlobalScope"; if (x === kTimeoutTestString) { - assert_equals(sink, `${globalThisStr} setTimeout`); + assert_equals(sink, `${expectedSink} setTimeout`); } else if (x === kIntervalTestString) { - assert_equals(sink, `${globalThisStr} setInterval`); + assert_equals(sink, `${expectedSink} setInterval`); } return "0"; }}); diff --git a/tests/wpt/tests/trusted-types/support/event-handler-attributes.mjs b/tests/wpt/tests/trusted-types/support/event-handler-attributes.mjs new file mode 100644 index 00000000000..8d54524950b --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/event-handler-attributes.mjs @@ -0,0 +1,47 @@ +import '/resources/WebIDLParser.js'; + +export async function getEventHandlerAttributeWithInterfaceNames() { + let attributeNamesWithInterfaceName = []; + function isAttributeImplemented(interfaceName, name) { + switch (interfaceName) { + case 'GlobalEventHandlers': + return name in HTMLElement.prototype; + case 'WindowEventHandlers': + return name in HTMLBodyElement.prototype; + case 'HTMLMediaElement': + return name in HTMLMediaElement.prototype; + case 'SVGAnimationElement': + return name in SVGAnimationElement.prototype; + default: + throw "Unknown interface"; + } + } + function addOnAttributes(IDL, interfaceName) { + // Parsing the whole IDL file is slow, so use a small regexp to extract only + // the part that is relevant for this test. + let regexp = new RegExp(`^.*\(partial \)?interface \(mixin \)?${interfaceName}[^{]*{[^{}]*};$`, "m"); + let parsedIDL = WebIDL2.parse(IDL.match(regexp)[0]); + parsedIDL.find(idl => idl.name === interfaceName) + .members.map(member => member.name) + .filter(name => name.length >= 3 && name.startsWith("on") && + !name.startsWith("onwebkit") && + isAttributeImplemented(interfaceName, name)) + .forEach(name => attributeNamesWithInterfaceName.push({name, interfaceName})); + } + const htmlIDL = await (await fetch("/interfaces/html.idl")).text(); + // GlobalEventHandlers exist on HTMLElement, SVGElement, and MathMLElement. + // WindowEventHandlers exist on HTMLBodyElement, and HTMLFrameSetElement. + ["GlobalEventHandlers", "WindowEventHandlers"].forEach(interfaceName => { + addOnAttributes(htmlIDL, interfaceName); + }); + + const encryptedMediaIDL = await (await fetch("/interfaces/encrypted-media.idl")).text(); + // HTMLMediaElement (the parent for