From 2b209449b59de5e7569d168fd8cfd0d6cbeaee5c Mon Sep 17 00:00:00 2001 From: Servo WPT Sync <32481905+servo-wpt-sync@users.noreply.github.com> Date: Sun, 22 Jun 2025 03:41:56 +0200 Subject: [PATCH] Sync WPT with upstream (22-06-2025) (#37606) Automated downstream sync of changes from upstream as of 22-06-2025 [no-wpt-sync] Signed-off-by: WPT Sync Bot --- .../url/url-in-tags-revoke.window.js.ini | 3 + tests/wpt/meta/MANIFEST.json | 4252 ++++++++++------- ...ame-src-blocked-path-matching.sub.html.ini | 7 + .../mix-blend-mode-video-sibling.html.ini | 2 - .../mix-blend-mode-video.html.ini | 2 - ...er-shape-backdrop-filter-overflow.html.ini | 0 .../corner-shape-backdrop-filter.html.ini | 0 ...er-shape-bevel-overflow-composite.html.ini | 0 .../corner-shape-bevel-overflow.html.ini | 0 .../corner-shape-computed.html.ini | 74 +- .../corner-shape-hittest.html.ini | 0 .../corner-shape-inset-shadow.html.ini | 0 .../corner-shape-interpolation.html.ini | 0 .../corner-shape/corner-shape-notch.html.ini | 0 .../corner-shape-outside-left.html.ini | 0 .../corner-shape-outside-right.html.ini | 0 .../corner-shape-render-fuzzy.html.ini | 75 +- .../corner-shape-render-precise.html.ini | 100 +- .../corner-shape/corner-shape-square.html.ini | 0 .../corner-shape-valid.html.ini | 357 +- .../corner-shape/corners-computed.html.ini | 66 + .../corner-shape/corners-valid.html.ini | 27 + .../parsing/corners-computed.html.ini | 108 - .../tentative/parsing/corners-valid.html.ini | 108 - .../query-evaluation-style.html.ini | 102 + .../calc-in-font-variation-settings.html.ini | 6 + ...aps-invalidation-container-sizing.html.ini | 2 + ...nicode-presented-as-emoji-outline.html.ini | 2 + .../at-font-face-descriptors.html.ini | 6 + .../subgrid-gap-decorations-009.html.ini | 2 + .../subgrid-gap-decorations-010.html.ini | 2 + .../subgrid-gap-decorations-011.html.ini | 2 + .../subgrid-gap-decorations-012.html.ini | 2 + .../subgrid-gap-decorations-013.html.ini | 2 + .../subgrid-gap-decorations-014.html.ini | 2 + .../subgrid-gap-decorations-015.html.ini | 2 + .../subgrid-gap-decorations-016.html.ini | 2 + .../subgrid-gap-decorations-017.html.ini | 2 + .../subgrid-gap-decorations-018.html.ini | 2 + .../masonry-auto-tracks-computed.html.ini | 75 - .../masonry-auto-tracks-valid.html.ini | 90 - .../masonry-template-tracks-valid.html.ini | 69 - .../parsing/masonry-track-computed.html.ini | 72 - .../parsing/masonry-track-valid.html.ini | 168 - .../css/css-overflow/overflow-video.html.ini | 2 + .../scroll-target-group-012.html.ini | 2 + ...t-line-child-display-none-dynamic.html.ini | 2 - .../first-line-child-display-none.html.ini | 2 - ...-point-mapping-2-transforminterop.html.ini | 6 + ...ainer-progress-computed.tentative.html.ini | 96 - ...iner-progress-serialize.tentative.html.ini | 48 - .../css/css-values/if-conditionals.html.ini | 3 + ...media-progress-computed.tentative.html.ini | 51 - ...edia-progress-serialize.tentative.html.ini | 78 - .../css/css-values/progress-computed.html.ini | 30 + .../css-values/progress-serialize.html.ini | 24 + ...index-keyframe-font-style-dynamic.html.ini | 6 + ...ndex-keyframe-palette-mix-dynamic.html.ini | 6 + .../css/css-values/typed_arithmetic.html.ini | 75 + ...scroll-behavior-smooth-navigation.html.ini | 3 + .../DOMImplementation-createDocument.html.ini | 216 + ...Implementation-createDocumentType.html.ini | 141 + .../nodes/Document-createAttribute.html.ini | 42 + .../dom/nodes/Document-createElement.html.ini | 72 + .../nodes/Document-createElementNS.html.ini | 234 + tests/wpt/meta/dom/nodes/attributes.html.ini | 6 + .../moveBefore/child-style-preserve.html.ini | 3 + ...tive.html.ini => name-validation.html.ini} | 2 +- .../max-payload.tentative.https.window.js.ini | 2 +- .../iframe-nosrc.html.ini | 3 - ...eshow-events-iframe-contentWindow.html.ini | 3 - .../traverse_the_history_4.html.ini | 3 + .../duplicate-name-order.html.ini | 3 + .../global-attributes/dataset-set.html.ini | 3 + .../supported-elements.html.ini | 5 +- .../update-the-rendering.html.ini | 3 +- .../field-sizing-select-contain-size.html.ini | 3 + .../embed-allowed-schemas.sub.window.js.ini | 16 + ...rame_sandbox_popups_nonescaping-2.html.ini | 2 +- ...rame_sandbox_popups_nonescaping-3.html.ini | 3 +- .../object-allowed-schemas.sub.window.js.ini | 19 + tests/wpt/meta/indexeddb/__dir__.ini | 1 - .../abort-in-initial-upgradeneeded.any.js.ini | 15 - ...orward-cache-open-connection.window.js.ini | 3 - ...rward-cache-open-transaction.window.js.ini | 4 - .../bindings-inject-keys-bypass.any.js.ini | 14 - .../bindings-inject-values-bypass.any.js.ini | 21 - .../blob-composite-blob-reads.any.js.ini | 14 - .../indexeddb/blob-contenttype.any.js.ini | 10 - .../blob-delete-objectstore-db.any.js.ini | 9 - .../blob-valid-after-deletion.any.js.ini | 10 - .../blob-valid-before-commit.any.js.ini | 10 - .../clone-before-keypath-eval.any.js.ini | 41 - .../close-in-upgradeneeded.any.js.ini | 15 - .../indexeddb/cursor-overloads.any.js.ini | 15 - .../database-names-by-origin.html.ini | 13 - .../meta/indexeddb/delete-range.any.js.ini | 28 - .../indexeddb/delete-request-queue.any.js.ini | 9 - .../indexeddb/error-attributes.any.js.ini | 16 - .../event-dispatch-active-flag.any.js.ini | 35 - .../fire-error-event-exception.any.js.ini | 113 - .../fire-success-event-exception.any.js.ini | 47 - ...e-upgradeneeded-event-exception.any.js.ini | 44 - .../meta/indexeddb/get-databases.any.js.ini | 32 - ...lobalscope-indexedDB-SameObject.any.js.ini | 9 - .../wpt/meta/indexeddb/historical.any.js.ini | 36 - .../indexeddb/idb-binary-key-detached.htm.ini | 13 - .../idb-binary-key-roundtrip.any.js.ini | 104 - .../idb-explicit-commit-throw.any.js.ini | 9 - .../indexeddb/idb-explicit-commit.any.js.ini | 75 - .../idb-partitioned-basic.sub.html.ini | 4 - .../idb-partitioned-coverage.sub.html.ini | 49 - .../idb-partitioned-persistence.sub.html.ini | 3 - .../idb_binary_key_conversion.any.js.ini | 39 - .../wpt/meta/indexeddb/idb_webworkers.htm.ini | 4 - ...dbcursor-advance-continue-async.any.js.ini | 32 - ...bcursor-advance-exception-order.any.js.ini | 28 - .../idbcursor-advance-invalid.any.js.ini | 45 - .../indexeddb/idbcursor-advance.any.js.ini | 44 - ...cursor-continue-exception-order.any.js.ini | 26 - .../indexeddb/idbcursor-continue.any.js.ini | 45 - ...tinuePrimaryKey-exception-order.any.js.ini | 88 - ...r-continuePrimaryKey-exceptions.any.js.ini | 27 - .../idbcursor-continuePrimaryKey.any.js.ini | 14 - ...dbcursor-delete-exception-order.any.js.ini | 27 - ...cursor-direction-index-keyrange.any.js.ini | 32 - .../idbcursor-direction-index.any.js.ini | 32 - ...-direction-objectstore-keyrange.any.js.ini | 32 - ...idbcursor-direction-objectstore.any.js.ini | 32 - .../indexeddb/idbcursor-direction.any.js.ini | 41 - .../idbcursor-iterating-update.any.js.ini | 20 - .../meta/indexeddb/idbcursor-key.any.js.ini | 28 - .../indexeddb/idbcursor-primarykey.any.js.ini | 27 - .../idbcursor-request-source.any.js.ini | 57 - .../indexeddb/idbcursor-request.any.js.ini | 27 - .../indexeddb/idbcursor-reused.any.js.ini | 14 - .../indexeddb/idbcursor-source.any.js.ini | 20 - ...dbcursor-update-exception-order.any.js.ini | 32 - .../idbcursor_advance_index.any.js.ini | 56 - .../idbcursor_advance_objectstore.any.js.ini | 41 - ...sor_continue_delete_objectstore.any.js.ini | 14 - .../idbcursor_continue_index.any.js.ini | 68 - .../idbcursor_continue_invalid.any.js.ini | 14 - .../idbcursor_continue_objectstore.any.js.ini | 59 - .../idbcursor_delete_index.any.js.ini | 39 - .../idbcursor_delete_objectstore.any.js.ini | 41 - .../indexeddb/idbcursor_iterating.any.js.ini | 14 - .../idbcursor_update_index.any.js.ini | 62 - .../idbcursor_update_objectstore.any.js.ini | 65 - ...eateObjectStore-exception-order.any.js.ini | 34 - ...leteObjectStore-exception-order.any.js.ini | 20 - ...ase-transaction-exception-order.any.js.ini | 20 - .../indexeddb/idbdatabase_close.any.js.ini | 21 - .../idbdatabase_createObjectStore.any.js.ini | 172 - .../idbdatabase_deleteObjectStore.any.js.ini | 28 - .../idbdatabase_transaction.any.js.ini | 20 - ...dbfactory-databases-opaque-origin.html.ini | 13 - ...tory-deleteDatabase-opaque-origin.html.ini | 10 - ...-deleteDatabase-request-success.any.js.ini | 14 - ...dbfactory-open-error-properties.any.js.ini | 15 - .../idbfactory-open-opaque-origin.html.ini | 10 - .../idbfactory-open-request-error.any.js.ini | 15 - ...idbfactory-open-request-success.any.js.ini | 15 - .../idbfactory-origin-isolation.html.ini | 3 - .../meta/indexeddb/idbfactory_cmp.any.js.ini | 74 - .../idbfactory_deleteDatabase.any.js.ini | 15 - .../meta/indexeddb/idbfactory_open.any.js.ini | 56 - .../idbindex-cross-realm-methods.html.ini | 2 - .../idbindex-getAll-enforcerange.any.js.ini | 15 - ...dbindex-getAllKeys-enforcerange.any.js.ini | 14 - .../indexeddb/idbindex-multientry.any.js.ini | 26 - ...idbindex-objectStore-SameObject.any.js.ini | 14 - .../idbindex-query-exception-order.any.js.ini | 83 - .../idbindex-rename-abort.any.js.ini | 20 - .../idbindex-rename-errors.any.js.ini | 45 - .../meta/indexeddb/idbindex-rename.any.js.ini | 62 - .../idbindex-request-source.any.js.ini | 51 - .../meta/indexeddb/idbindex_count.any.js.ini | 32 - .../meta/indexeddb/idbindex_get.any.js.ini | 56 - ...bindex_getAll-options.tentative.any.js.ini | 46 - .../meta/indexeddb/idbindex_getAll.any.js.ini | 47 - ...ex_getAllKeys-options.tentative.any.js.ini | 41 - .../indexeddb/idbindex_getAllKeys.any.js.ini | 41 - ...dbindex_getAllRecords.tentative.any.js.ini | 46 - .../meta/indexeddb/idbindex_getKey.any.js.ini | 57 - .../indexeddb/idbindex_indexNames.any.js.ini | 15 - .../indexeddb/idbindex_keyPath.any.js.ini | 20 - .../indexeddb/idbindex_openCursor.any.js.ini | 27 - .../idbindex_openKeyCursor.any.js.ini | 33 - .../idbindex_reverse_cursor.any.js.ini | 15 - .../indexeddb/idbindex_tombstones.any.js.ini | 26 - .../indexeddb/idbkeyrange-includes.any.js.ini | 75 - .../wpt/meta/indexeddb/idbkeyrange.any.js.ini | 68 - .../idbkeyrange_incorrect.any.js.ini | 44 - ...ctstore-add-put-exception-order.any.js.ini | 35 - ...jectstore-clear-exception-order.any.js.ini | 23 - ...dbobjectstore-cross-realm-methods.html.ini | 2 - ...ectstore-delete-exception-order.any.js.ini | 28 - ...ore-deleteIndex-exception-order.any.js.ini | 29 - ...objectstore-getAll-enforcerange.any.js.ini | 9 - ...ctstore-getAllKeys-enforcerange.any.js.ini | 9 - .../idbobjectstore-index-finished.any.js.ini | 14 - ...jectstore-query-exception-order.any.js.ini | 82 - .../idbobjectstore-rename-abort.any.js.ini | 21 - .../idbobjectstore-rename-errors.any.js.ini | 44 - .../idbobjectstore-rename-store.any.js.ini | 75 - .../idbobjectstore-request-source.any.js.ini | 76 - ...ectstore-transaction-SameObject.any.js.ini | 9 - .../indexeddb/idbobjectstore_add.any.js.ini | 106 - .../indexeddb/idbobjectstore_clear.any.js.ini | 34 - .../indexeddb/idbobjectstore_count.any.js.ini | 34 - .../idbobjectstore_createIndex.any.js.ini | 137 - .../idbobjectstore_delete.any.js.ini | 53 - .../idbobjectstore_deleteIndex.any.js.ini | 14 - .../indexeddb/idbobjectstore_get.any.js.ini | 53 - ...tstore_getAll-options.tentative.any.js.ini | 46 - .../idbobjectstore_getAll.any.js.ini | 47 - ...re_getAllKeys-options.tentative.any.js.ini | 40 - .../idbobjectstore_getAllKeys.any.js.ini | 41 - ...ctstore_getAllRecords.tentative.any.js.ini | 52 - .../idbobjectstore_getKey.any.js.ini | 104 - .../indexeddb/idbobjectstore_index.any.js.ini | 14 - .../idbobjectstore_keyPath.any.js.ini | 9 - .../idbobjectstore_openCursor.any.js.ini | 16 - ...bobjectstore_openCursor_invalid.any.js.ini | 15 - .../idbobjectstore_openKeyCursor.any.js.ini | 39 - .../indexeddb/idbobjectstore_put.any.js.ini | 106 - .../idbrequest-onupgradeneeded.any.js.ini | 33 - .../indexeddb/idbrequest_error.any.js.ini | 14 - .../indexeddb/idbrequest_result.any.js.ini | 14 - .../idbtransaction-db-SameObject.any.js.ini | 9 - ...ion-objectStore-exception-order.any.js.ini | 17 - ...ransaction-objectStore-finished.any.js.ini | 14 - .../idbtransaction-oncomplete.any.js.ini | 14 - .../meta/indexeddb/idbtransaction.any.js.ini | 9 - .../indexeddb/idbtransaction_abort.any.js.ini | 28 - ...idbtransaction_objectStoreNames.any.js.ini | 52 - .../idbversionchangeevent.any.js.ini | 14 - .../wpt/meta/indexeddb/idlharness.any.js.ini | 530 -- .../indexeddb/index_sort_order.any.js.ini | 15 - .../interleaved-cursors-large.any.js.ini | 15 - .../interleaved-cursors-small.any.js.ini | 27 - .../key-conversion-exceptions.any.js.ini | 39 - .../wpt/meta/indexeddb/key_invalid.any.js.ini | 217 - tests/wpt/meta/indexeddb/key_valid.any.js.ini | 118 - .../meta/indexeddb/keygenerator.any.js.ini | 137 - tests/wpt/meta/indexeddb/keyorder.any.js.ini | 155 - .../indexeddb/keypath-exceptions.any.js.ini | 23 - .../keypath-special-identifiers.any.js.ini | 46 - tests/wpt/meta/indexeddb/keypath.any.js.ini | 130 - .../meta/indexeddb/keypath_invalid.any.js.ini | 153 - .../meta/indexeddb/keypath_maxsize.any.js.ini | 28 - .../indexeddb/large-requests-abort.any.js.ini | 33 - .../meta/indexeddb/list_ordering.any.js.ini | 26 - .../wpt/meta/indexeddb/name-scopes.any.js.ini | 20 - .../indexeddb/nested-cloning-basic.any.js.ini | 20 - .../nested-cloning-large-multiple.any.js.ini | 21 - .../indexeddb/nested-cloning-large.any.js.ini | 51 - .../indexeddb/nested-cloning-small.any.js.ini | 44 - .../indexeddb/objectstore_keyorder.any.js.ini | 14 - .../indexeddb/open-request-queue.any.js.ini | 16 - .../parallel-cursors-upgrade.any.js.ini | 32 - ...g-autoincrement-indexes-cursors.any.js.ini | 32 - .../reading-autoincrement-indexes.any.js.ini | 44 - ...ing-autoincrement-store-cursors.any.js.ini | 20 - .../reading-autoincrement-store.any.js.ini | 27 - .../request-abort-ordering.any.js.ini | 15 - ...g-large-mixed-with-small-values.any.js.ini | 15 - ...rdering-large-then-small-values.any.js.ini | 15 - ...est-event-ordering-large-values.any.js.ini | 14 - ...est-event-ordering-small-values.any.js.ini | 15 - .../request_bubble-and-capture.any.js.ini | 14 - ...ze-sharedarraybuffer-throws.https.html.ini | 3 - .../storage-buckets.https.any.js.ini | 20 - .../indexeddb/string-list-ordering.any.js.ini | 15 - ...uctured-clone-transaction-state.any.js.ini | 21 - .../indexeddb/structured-clone.any.js.ini | 769 --- ...nsaction-abort-generator-revert.any.js.ini | 20 - ...ion-abort-index-metadata-revert.any.js.ini | 44 - ...-abort-multiple-metadata-revert.any.js.ini | 27 - ...rt-object-store-metadata-revert.any.js.ini | 32 - ...transaction-abort-request-error.any.js.ini | 17 - ...saction-create_in_versionchange.any.js.ini | 15 - ...transaction-deactivation-timing.any.js.ini | 40 - .../transaction-lifetime-empty.any.js.ini | 22 - .../indexeddb/transaction-lifetime.any.js.ini | 21 - .../transaction-relaxed-durability.any.js.ini | 38 - .../transaction-requestqueue.any.js.ini | 16 - ...n-scheduling-across-connections.any.js.ini | 10 - ...ion-scheduling-across-databases.any.js.ini | 8 - ...saction-scheduling-mixed-scopes.any.js.ini | 10 - ...transaction-scheduling-ordering.any.js.ini | 10 - ...tion-scheduling-ro-waits-for-rw.any.js.ini | 10 - ...ransaction-scheduling-rw-scopes.any.js.ini | 10 - ...tion-scheduling-within-database.any.js.ini | 10 - .../transaction_bubble-and-capture.any.js.ini | 15 - ...transaction-deactivation-timing.any.js.ini | 9 - ...ction-lifecycle-backend-aborted.any.js.ini | 20 - ...transaction-lifecycle-committed.any.js.ini | 20 - ...nsaction-lifecycle-user-aborted.any.js.ini | 32 - tests/wpt/meta/indexeddb/value.any.js.ini | 59 - .../meta/indexeddb/value_recursive.any.js.ini | 29 - ...r-termination-aborts-upgrade.window.js.ini | 3 - .../indexeddb/writer-starvation.any.js.ini | 16 - ...ation-id-detached-frame.tentative.html.ini | 4 - .../meta/preload/preload-error.sub.html.ini | 3 + .../meta/resize-observer/eventloop.html.ini | 3 + .../tentative/document-initiated.html.ini | 8 +- .../Selection-getComposedRanges.html.ini | 3 - .../integrity-policy/script.https.html.ini | 7 + .../sub-sample-buffer-stitching.html.ini | 9 + .../ctor-convolver.html.ini | 18 + .../ctor-dynamicscompressor.html.ini | 12 + .../meta/webmessaging/with-ports/017.html.ini | 4 + .../webmessaging/without-ports/017.html.ini | 4 + .../webmessaging/without-ports/018.html.ini | 4 + tests/wpt/tests/acid/acid3/test.html | 5 +- .../detector.https.window.js | 44 +- tests/wpt/tests/ai/resources/util.js | 30 + ...ewrite-streaming.tentative.https.window.js | 7 +- ...rewriter-rewrite.tentative.https.window.js | 25 +- ...marize-streaming.tentative.https.window.js | 6 +- ...arizer-summarize.tentative.https.window.js | 26 +- .../translator.optional.https.window.js | 46 +- ...-write-streaming.tentative.https.window.js | 6 +- .../writer-write.tentative.https.window.js | 20 +- ...-bfcache-partitioning.tentative.https.html | 61 + .../clear-cache-bfcache.https.html | 63 + .../clear-cache-bfcache.sub.https.html | 115 - .../support/clear-cache-helper.sub.js | 55 + tests/wpt/tests/common/get-host-info.sub.js | 1 + ...pressure_duplicate_updates.https.window.js | 2 + .../frame-src-blocked-path-matching.sub.html | 53 + ...pt-src-event-handler-on-inline-script.html | 35 + ...kieStore_set_domain_parsing.sub.https.html | 31 + .../domain_parsing-child.sub.https.html | 52 + .../anchor-name-mutation.html | 217 + .../anchor-position-multicol-colspan-003.html | 19 + ... => anchor-transition-attr.tentative.html} | 2 +- .../position-area-scroll-adjust.html | 4 +- .../transform-001.tentative.html | 12 + .../transform-002.tentative.html | 12 + .../transform-003.tentative.html | 15 + .../transform-004.tentative.html | 10 + .../transform-005.tentative.html | 12 + .../transform-006.tentative.html | 24 + .../corner-shape/corner-shape-any-ref.html | 0 ...er-shape-backdrop-filter-overflow-ref.html | 0 ...corner-shape-backdrop-filter-overflow.html | 1 + .../corner-shape-backdrop-filter-ref.html | 0 .../corner-shape-backdrop-filter.html | 1 + ...er-shape-bevel-overflow-composite-ref.html | 0 ...corner-shape-bevel-overflow-composite.html | 1 + .../corner-shape-bevel-overflow-ref.html | 0 .../corner-shape-bevel-overflow.html | 1 + .../corner-shape-computed.html | 6 + .../corner-shape/corner-shape-fill-ref.html | 0 .../corner-shape/corner-shape-fill.html | 1 + .../corner-shape-gallery.manual.html | 0 .../corner-shape/corner-shape-hittest.html | 0 .../corner-shape/corner-shape-img-ref.html | 0 .../corner-shape/corner-shape-img.html | 1 + .../corner-shape-inset-shadow-ref.html | 0 .../corner-shape-inset-shadow.html | 1 + .../corner-shape-interpolation.html | 0 .../corner-shape-invalid.html | 2 +- .../corner-shape/corner-shape-notch-ref.html | 0 .../corner-shape/corner-shape-notch.html | 1 + .../corner-shape-outside-left.html | 0 .../corner-shape-outside-right.html | 0 ...corner-shape-overflow-clip-margin-ref.html | 0 .../corner-shape-overflow-clip-margin.html | 0 .../corner-shape-render-fuzzy.html | 0 .../corner-shape-render-precise.html | 0 .../corner-shape/corner-shape-square-ref.html | 0 .../corner-shape/corner-shape-square.html | 1 + .../corner-shape-valid.html | 4 + .../corner-shape/corners-computed.html | 36 + .../corners-invalid.html | 7 +- .../corner-shape/corners-valid.html | 21 + .../corner-shape/resources/corner-shape.js | 0 .../corner-shape/resources/corner-utils.js | 0 .../resources/resolve-corner-style.js | 0 .../tentative/parsing/corners-computed.html | 50 - .../tentative/parsing/corners-valid.html | 48 - .../query-evaluation-style.html | 174 +- .../calc-in-font-variation-settings.html | 5 +- ...nt-feature-settings-descriptor-02-ref.html | 20 + .../font-feature-settings-descriptor-02.html | 25 + ...eature-settings-descriptor-binary-ref.html | 27 + ...nt-feature-settings-descriptor-binary.html | 32 + ...aps-invalidation-container-sizing-ref.html | 18 + ...nt-caps-invalidation-container-sizing.html | 2 +- ...nicode-presented-as-emoji-outline-ref.html | 14 + ...nt-unicode-presented-as-emoji-outline.html | 19 + .../resources/AhemCrossmarkSupport.otf | Bin 0 -> 22904 bytes .../variations/at-font-face-descriptors.html | 24 +- .../subgrid/subgrid-gap-decorations-009.html | 47 + .../subgrid/subgrid-gap-decorations-010.html | 50 + .../subgrid/subgrid-gap-decorations-011.html | 48 + .../subgrid-gap-decorations-012-ref.html | 188 + .../subgrid/subgrid-gap-decorations-012.html | 62 + .../subgrid-gap-decorations-013-ref.html | 190 + .../subgrid/subgrid-gap-decorations-013.html | 50 + .../subgrid/subgrid-gap-decorations-014.html | 64 + .../subgrid-gap-decorations-015-ref.html | 182 + .../subgrid/subgrid-gap-decorations-015.html | 61 + .../subgrid-gap-decorations-016-ref.html | 182 + .../subgrid/subgrid-gap-decorations-016.html | 62 + .../subgrid-gap-decorations-017-ref.html | 189 + .../subgrid/subgrid-gap-decorations-017.html | 65 + .../subgrid/subgrid-gap-decorations-018.html | 63 + .../parsing/masonry-auto-tracks-computed.html | 58 - .../parsing/masonry-auto-tracks-invalid.html | 39 - .../parsing/masonry-auto-tracks-valid.html | 57 - .../masonry-template-tracks-invalid.html | 24 - .../masonry-template-tracks-valid.html | 32 - .../parsing/masonry-track-computed.html | 47 - .../parsing/masonry-track-invalid.html | 56 - .../parsing/masonry-track-valid.html | 98 - .../line-clamp/block-ellipsis-016.html | 19 +- .../reference/block-ellipsis-016-ref.html | 15 + .../css-overflow/scroll-target-group-002.html | 1 - .../css-overflow/scroll-target-group-003.html | 1 - .../scroll-target-group-012-ref.html | 42 + .../css-overflow/scroll-target-group-012.html | 45 + .../overscroll-behavior-without-overflow.html | 133 + .../registered-property-computation.html | 13 +- .../css-properties-values-api/typedom.html | 12 +- ...first-line-child-display-none-dynamic.html | 18 - .../first-line-child-display-none-ref.html | 8 - .../first-line-child-display-none.html | 15 - .../text-wrap-balance-with-svg-001-ref.html | 28 + .../text-wrap-balance-with-svg-001.html | 28 + .../3d-point-mapping-2-transforminterop.html | 261 + .../css-transforms/3d-point-mapping-3.html | 93 + .../3d-point-mapping-coplanar.html | 2 +- .../3d-point-mapping-overlapping.html | 2 +- .../css/css-transforms/3d-point-mapping.html | 247 + .../tests/css/css-values/attr-security.html | 25 + ...container-progress-computed.tentative.html | 84 - .../container-progress-invalid.tentative.html | 56 - ...ontainer-progress-serialize.tentative.html | 48 - .../tests/css/css-values/if-conditionals.html | 3 + .../media-progress-computed.tentative.html | 42 - .../media-progress-invalid.tentative.html | 44 - .../media-progress-serialize.tentative.html | 44 - .../css/css-values/progress-computed.html | 28 +- .../css/css-values/progress-serialize.html | 10 + ...sign-in-keyframes-with-relative-units.html | 27 + ...ing-index-keyframe-font-style-dynamic.html | 33 + ...ng-index-keyframe-palette-mix-dynamic.html | 49 + .../css/css-values/typed_arithmetic.html | 58 + .../fractional-translation-from-position.html | 3 +- ...fractional-translation-from-transform.html | 9 +- .../new-content-transform-change-001-ref.html | 15 + .../new-content-transform-change-001.html | 53 + .../debug-header.https.html | 38 +- .../multiple-registrations.https.html | 3 +- .../resolving-urls.https.html | 2 +- .../dom/events/scrolling/iframe-chains.html | 1 + .../DOMImplementation-createDocument.html | 12 +- .../DOMImplementation-createDocumentType.html | 94 +- .../dom/nodes/Document-createElement.html | 16 +- .../dom/nodes/Document-createElementNS.html | 17 +- .../dom/nodes/Document-createElementNS.js | 52 +- tests/wpt/tests/dom/nodes/attributes.html | 61 +- .../moveBefore/child-style-preserve.html | 26 + ...on.tentative.html => name-validation.html} | 0 tests/wpt/tests/dom/nodes/productions.js | 6 +- tests/wpt/tests/fedcm/fedcm-iframe.https.html | 2 +- .../fedcm/support/fedcm-iframe-level2.html | 2 +- .../support/fedcm/intercept_service_worker.js | 2 +- tests/wpt/tests/gif/META.yml | 1 + tests/wpt/tests/gif/reset-no-gce-1.html | 32 + tests/wpt/tests/gif/reset-no-gce-ref.html | 13 + tests/wpt/tests/gif/reset-no-gce.gif | Bin 0 -> 90 bytes .../event-order/before-load-hash-twice.html | 33 +- .../event-order/before-load-hash.html | 31 +- .../global-attributes/dataset-set.html | 4 +- .../html/editing/dnd/resources/test-helper.js | 49 +- .../the-details-element/details-crash.html | 11 + .../field-sizing-select-contain-size.html | 51 + .../embed-allowed-schemas.sub.window.js | 40 + .../object-allowed-schemas.sub.window.js | 44 + .../dialog-open-movebefore-setup.html | 43 + .../popovers/popover-source-crash.html | 11 + .../non-local-ports.sub.window.js.ini | 4 +- tests/wpt/tests/lint.ignore | 2 + ...y_events_modifier_no_pointer_movement.html | 125 + ...ointerevent_element_haspointercapture.html | 19 +- ...ointercapture_release_pending_capture.html | 12 +- ...tiple_pointerover_no_pointer_movement.html | 67 + ...ercapture_release_right_after_capture.html | 10 +- ...ture_override_pending_capture_element.html | 10 +- ...tpointercapture_to_same_element_twice.html | 179 +- .../resources/test-initiator.js | 23 +- .../tentative/document-initiated.html | 50 +- tests/wpt/tests/selection/canvas-click.html | 28 + .../extend-selection-in-shadow-tree.html | 26 + .../Selection-getComposedRanges.html | 7 +- .../tentative/background-image-set-image.html | 75 + .../lcp/tentative/cross-origin-image.sub.html | 59 + .../element-only-when-fully-active.html | 48 + .../lcp/tentative/expanded-image.html | 69 + .../first-paint-equals-lcp-text.html | 99 + .../iframe-content-not-observed.html | 67 + .../resources/images/lcp-256x256-alt-1.png | Bin 0 -> 2146 bytes .../resources/images/lcp-256x256-alt-2.png | Bin 0 -> 3764 bytes .../smoke/tentative/image-src-change.html | 79 + .../prefetch/anonymous-client.https.html | 2 +- ...s-anonymous-client-ip-duplicate.https.html | 41 + .../prefetch/cross-origin-cookies.https.html | 6 +- ...ming-requestStart-responseStart.https.html | 42 +- .../out-of-document-rule-set.https.html | 3 +- .../referrer-policy-from-rules.https.html | 5 +- .../referrer-policy-not-accepted.https.html | 5 +- .../prefetch/resources/executor.sub.html | 4 +- .../prefetch/resources/redirect-helper.sub.js | 8 +- .../prefetch/resources/utils.sub.js | 13 +- .../prefetch/user-pass.https.html | 10 +- .../cross-site-prefetch.https.html | 3 +- ...-same-site-redirection-prefetch.https.html | 3 +- ...prefetch-eagerness-pointer-down.https.html | 2 +- ...refetch-eagerness-pointer-hover.https.html | 2 +- ...cross-site-redirection-prefetch.https.html | 3 +- .../integrity-policy/script.https.html | 16 +- .../svg/embedded/image-modify-href-4.svg | 6 +- tests/wpt/tests/svg/shapes/rect-03.svg | 1 + tests/wpt/tests/svg/shapes/rect-04.svg | 1 + .../svg/shapes/reftests/pathlength-002.svg | 3 + .../svg/shapes/reftests/pathlength-003.svg | 3 + .../text/reftests/text-context-fill-ref.svg | 16 + .../svg/text/reftests/text-context-fill.svg | 18 + .../SVGAnimatedAngle-initial-values.html | 12 + ...SVGAnimatedEnumeration-initial-values.html | 49 + .../SVGAnimatedInteger-initial-values.html | 20 + .../SVGAnimatedLength-initial-values.html | 74 +- .../SVGAnimatedNumber-initial-values.html | 49 + .../scripted/support/initial-value-helper.js | 71 + tests/wpt/tests/tools/gitignore/gitignore.py | 2 +- tests/wpt/tests/tools/serve/serve.py | 4 +- tests/wpt/tests/tools/serve/wave.py | 2 +- .../wptrunner/wptrunner/browsers/chrome.py | 2 +- .../tests/tools/wptserve/wptserve/cgi/cgi.py | 2 +- ...ary_events_modifier_no_mouse_movement.html | 125 + .../urlpattern/urlpattern-constructor.html | 14 + .../ctor-convolver.html | 265 +- .../ctor-dynamicscompressor.html | 260 +- .../ctor-mediastreamaudiodestination.html | 90 +- .../webdriver/tests/support/web_extension.py | 2 + .../qdq_subgraph.https.any.js | 820 ++++ ...t-transform-sendKeyFrameRequest.https.html | 4 +- .../tests/webrtc/RTCDataChannel-close.html | 15 +- .../wpt/tests/webrtc/RTCDataChannel-send.html | 102 + .../misc/texture-upload-size.html.ini | 12 + 556 files changed, 11148 insertions(+), 13819 deletions(-) create mode 100644 tests/wpt/meta/content-security-policy/frame-src/frame-src-blocked-path-matching.sub.html.ini delete mode 100644 tests/wpt/meta/css/compositing/mix-blend-mode/mix-blend-mode-video-sibling.html.ini delete mode 100644 tests/wpt/meta/css/compositing/mix-blend-mode/mix-blend-mode-video.html.ini rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-backdrop-filter-overflow.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-backdrop-filter.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-bevel-overflow-composite.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-bevel-overflow.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative/parsing => corner-shape}/corner-shape-computed.html.ini (74%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-hittest.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-inset-shadow.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-interpolation.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-notch.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-outside-left.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-outside-right.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-render-fuzzy.html.ini (68%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-render-precise.html.ini (60%) rename tests/wpt/meta/css/css-borders/{tentative => }/corner-shape/corner-shape-square.html.ini (100%) rename tests/wpt/meta/css/css-borders/{tentative/parsing => corner-shape}/corner-shape-valid.html.ini (80%) create mode 100644 tests/wpt/meta/css/css-borders/corner-shape/corners-computed.html.ini create mode 100644 tests/wpt/meta/css/css-borders/corner-shape/corners-valid.html.ini delete mode 100644 tests/wpt/meta/css/css-borders/tentative/parsing/corners-computed.html.ini delete mode 100644 tests/wpt/meta/css/css-borders/tentative/parsing/corners-valid.html.ini create mode 100644 tests/wpt/meta/css/css-fonts/font-variant-caps-invalidation-container-sizing.html.ini create mode 100644 tests/wpt/meta/css/css-fonts/matching/font-unicode-presented-as-emoji-outline.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-009.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-010.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-011.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-012.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-013.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-014.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-015.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-016.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-017.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/grid/subgrid/subgrid-gap-decorations-018.html.ini delete mode 100644 tests/wpt/meta/css/css-masonry/tentative/parsing/masonry-auto-tracks-computed.html.ini delete mode 100644 tests/wpt/meta/css/css-masonry/tentative/parsing/masonry-auto-tracks-valid.html.ini delete mode 100644 tests/wpt/meta/css/css-masonry/tentative/parsing/masonry-template-tracks-valid.html.ini delete mode 100644 tests/wpt/meta/css/css-masonry/tentative/parsing/masonry-track-computed.html.ini delete mode 100644 tests/wpt/meta/css/css-masonry/tentative/parsing/masonry-track-valid.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/overflow-video.html.ini create mode 100644 tests/wpt/meta/css/css-overflow/scroll-target-group-012.html.ini delete mode 100644 tests/wpt/meta/css/css-pseudo/first-line-child-display-none-dynamic.html.ini delete mode 100644 tests/wpt/meta/css/css-pseudo/first-line-child-display-none.html.ini create mode 100644 tests/wpt/meta/css/css-transforms/3d-point-mapping-2-transforminterop.html.ini delete mode 100644 tests/wpt/meta/css/css-values/container-progress-computed.tentative.html.ini delete mode 100644 tests/wpt/meta/css/css-values/container-progress-serialize.tentative.html.ini delete mode 100644 tests/wpt/meta/css/css-values/media-progress-computed.tentative.html.ini delete mode 100644 tests/wpt/meta/css/css-values/media-progress-serialize.tentative.html.ini create mode 100644 tests/wpt/meta/css/css-values/tree-counting/sibling-index-keyframe-font-style-dynamic.html.ini create mode 100644 tests/wpt/meta/css/css-values/tree-counting/sibling-index-keyframe-palette-mix-dynamic.html.ini create mode 100644 tests/wpt/meta/css/css-values/typed_arithmetic.html.ini create mode 100644 tests/wpt/meta/dom/nodes/DOMImplementation-createDocument.html.ini create mode 100644 tests/wpt/meta/dom/nodes/DOMImplementation-createDocumentType.html.ini create mode 100644 tests/wpt/meta/dom/nodes/Document-createAttribute.html.ini create mode 100644 tests/wpt/meta/dom/nodes/Document-createElement.html.ini create mode 100644 tests/wpt/meta/dom/nodes/Document-createElementNS.html.ini create mode 100644 tests/wpt/meta/dom/nodes/attributes.html.ini create mode 100644 tests/wpt/meta/dom/nodes/moveBefore/child-style-preserve.html.ini rename tests/wpt/meta/dom/nodes/{name-validation.tentative.html.ini => name-validation.html.ini} (93%) create mode 100644 tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini create mode 100644 tests/wpt/meta/html/browsers/windows/browsing-context-names/duplicate-name-order.html.ini create mode 100644 tests/wpt/meta/html/dom/elements/global-attributes/dataset-set.html.ini create mode 100644 tests/wpt/meta/html/rendering/widgets/field-sizing-select-contain-size.html.ini create mode 100644 tests/wpt/meta/html/semantics/embedded-content/the-embed-element/embed-allowed-schemas.sub.window.js.ini create mode 100644 tests/wpt/meta/html/semantics/embedded-content/the-object-element/object-allowed-schemas.sub.window.js.ini delete mode 100644 tests/wpt/meta/indexeddb/__dir__.ini delete mode 100644 tests/wpt/meta/indexeddb/abort-in-initial-upgradeneeded.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/back-forward-cache-open-connection.window.js.ini delete mode 100644 tests/wpt/meta/indexeddb/back-forward-cache-open-transaction.window.js.ini delete mode 100644 tests/wpt/meta/indexeddb/bindings-inject-keys-bypass.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/bindings-inject-values-bypass.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/blob-composite-blob-reads.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/blob-contenttype.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/blob-delete-objectstore-db.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/blob-valid-after-deletion.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/blob-valid-before-commit.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/clone-before-keypath-eval.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/close-in-upgradeneeded.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/cursor-overloads.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/database-names-by-origin.html.ini delete mode 100644 tests/wpt/meta/indexeddb/delete-range.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/delete-request-queue.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/error-attributes.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/event-dispatch-active-flag.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/fire-error-event-exception.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/fire-success-event-exception.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/fire-upgradeneeded-event-exception.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/get-databases.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/globalscope-indexedDB-SameObject.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/historical.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idb-binary-key-detached.htm.ini delete mode 100644 tests/wpt/meta/indexeddb/idb-binary-key-roundtrip.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idb-explicit-commit-throw.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idb-explicit-commit.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idb-partitioned-basic.sub.html.ini delete mode 100644 tests/wpt/meta/indexeddb/idb-partitioned-coverage.sub.html.ini delete mode 100644 tests/wpt/meta/indexeddb/idb-partitioned-persistence.sub.html.ini delete mode 100644 tests/wpt/meta/indexeddb/idb_binary_key_conversion.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idb_webworkers.htm.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-advance-continue-async.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-advance-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-advance-invalid.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-advance.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-continue-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-continue.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-continuePrimaryKey-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-continuePrimaryKey-exceptions.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-continuePrimaryKey.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-delete-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-direction-index-keyrange.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-direction-index.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-direction-objectstore-keyrange.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-direction-objectstore.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-direction.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-iterating-update.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-key.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-primarykey.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-request-source.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-request.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-reused.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-source.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor-update-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_advance_index.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_advance_objectstore.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_continue_delete_objectstore.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_continue_index.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_continue_invalid.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_continue_objectstore.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_delete_index.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_delete_objectstore.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_iterating.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_update_index.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbcursor_update_objectstore.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbdatabase-createObjectStore-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbdatabase-deleteObjectStore-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbdatabase-transaction-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbdatabase_close.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbdatabase_createObjectStore.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbdatabase_deleteObjectStore.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbdatabase_transaction.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory-databases-opaque-origin.html.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory-deleteDatabase-opaque-origin.html.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory-deleteDatabase-request-success.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory-open-error-properties.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory-open-opaque-origin.html.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory-open-request-error.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory-open-request-success.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory-origin-isolation.html.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory_cmp.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory_deleteDatabase.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbfactory_open.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-cross-realm-methods.html.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-getAll-enforcerange.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-getAllKeys-enforcerange.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-multientry.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-objectStore-SameObject.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-query-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-rename-abort.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-rename-errors.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-rename.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex-request-source.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_count.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_get.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_getAll-options.tentative.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_getAll.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_getAllKeys-options.tentative.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_getAllKeys.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_getAllRecords.tentative.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_getKey.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_indexNames.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_keyPath.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_openCursor.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_openKeyCursor.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_reverse_cursor.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbindex_tombstones.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbkeyrange-includes.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbkeyrange.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbkeyrange_incorrect.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-add-put-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-clear-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-cross-realm-methods.html.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-delete-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-deleteIndex-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-getAll-enforcerange.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-getAllKeys-enforcerange.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-index-finished.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-query-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-rename-abort.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-rename-errors.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-rename-store.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-request-source.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore-transaction-SameObject.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_add.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_clear.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_count.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_createIndex.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_delete.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_deleteIndex.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_get.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_getAll-options.tentative.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_getAll.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_getAllKeys-options.tentative.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_getAllKeys.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_getAllRecords.tentative.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_getKey.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_index.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_keyPath.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_openCursor.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_openCursor_invalid.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_openKeyCursor.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbobjectstore_put.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbrequest-onupgradeneeded.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbrequest_error.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbrequest_result.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbtransaction-db-SameObject.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbtransaction-objectStore-exception-order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbtransaction-objectStore-finished.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbtransaction-oncomplete.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbtransaction.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbtransaction_abort.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbtransaction_objectStoreNames.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idbversionchangeevent.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/idlharness.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/index_sort_order.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/interleaved-cursors-large.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/interleaved-cursors-small.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/key-conversion-exceptions.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/key_invalid.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/key_valid.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/keygenerator.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/keyorder.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/keypath-exceptions.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/keypath-special-identifiers.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/keypath.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/keypath_invalid.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/keypath_maxsize.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/large-requests-abort.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/list_ordering.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/name-scopes.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/nested-cloning-basic.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/nested-cloning-large-multiple.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/nested-cloning-large.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/nested-cloning-small.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/objectstore_keyorder.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/open-request-queue.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/parallel-cursors-upgrade.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/reading-autoincrement-indexes-cursors.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/reading-autoincrement-indexes.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/reading-autoincrement-store-cursors.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/reading-autoincrement-store.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/request-abort-ordering.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/request-event-ordering-large-mixed-with-small-values.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/request-event-ordering-large-then-small-values.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/request-event-ordering-large-values.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/request-event-ordering-small-values.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/request_bubble-and-capture.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/serialize-sharedarraybuffer-throws.https.html.ini delete mode 100644 tests/wpt/meta/indexeddb/storage-buckets.https.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/string-list-ordering.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/structured-clone-transaction-state.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/structured-clone.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-abort-generator-revert.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-abort-index-metadata-revert.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-abort-multiple-metadata-revert.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-abort-object-store-metadata-revert.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-abort-request-error.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-create_in_versionchange.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-deactivation-timing.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-lifetime-empty.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-lifetime.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-relaxed-durability.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-requestqueue.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-scheduling-across-connections.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-scheduling-across-databases.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-scheduling-mixed-scopes.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-scheduling-ordering.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-scheduling-ro-waits-for-rw.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-scheduling-rw-scopes.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction-scheduling-within-database.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/transaction_bubble-and-capture.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/upgrade-transaction-deactivation-timing.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/upgrade-transaction-lifecycle-backend-aborted.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/upgrade-transaction-lifecycle-committed.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/upgrade-transaction-lifecycle-user-aborted.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/value.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/value_recursive.any.js.ini delete mode 100644 tests/wpt/meta/indexeddb/worker-termination-aborts-upgrade.window.js.ini delete mode 100644 tests/wpt/meta/indexeddb/writer-starvation.any.js.ini delete mode 100644 tests/wpt/meta/performance-timeline/navigation-id-detached-frame.tentative.html.ini create mode 100644 tests/wpt/meta/resize-observer/eventloop.html.ini create mode 100644 tests/wpt/meta/webmessaging/with-ports/017.html.ini create mode 100644 tests/wpt/meta/webmessaging/without-ports/017.html.ini create mode 100644 tests/wpt/meta/webmessaging/without-ports/018.html.ini create mode 100644 tests/wpt/tests/clear-site-data/clear-cache-bfcache-partitioning.tentative.https.html create mode 100644 tests/wpt/tests/clear-site-data/clear-cache-bfcache.https.html delete mode 100644 tests/wpt/tests/clear-site-data/clear-cache-bfcache.sub.https.html create mode 100644 tests/wpt/tests/content-security-policy/frame-src/frame-src-blocked-path-matching.sub.html create mode 100644 tests/wpt/tests/content-security-policy/script-src/script-src-event-handler-on-inline-script.html create mode 100644 tests/wpt/tests/cookie-store/cookieStore_set_domain_parsing.sub.https.html create mode 100644 tests/wpt/tests/cookie-store/resources/domain_parsing-child.sub.https.html create mode 100644 tests/wpt/tests/css/css-anchor-position/anchor-name-mutation.html create mode 100644 tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-colspan-003.html rename tests/wpt/tests/css/css-anchor-position/{anchor-transition-attr.html => anchor-transition-attr.tentative.html} (94%) create mode 100644 tests/wpt/tests/css/css-anchor-position/transform-001.tentative.html create mode 100644 tests/wpt/tests/css/css-anchor-position/transform-002.tentative.html create mode 100644 tests/wpt/tests/css/css-anchor-position/transform-003.tentative.html create mode 100644 tests/wpt/tests/css/css-anchor-position/transform-004.tentative.html create mode 100644 tests/wpt/tests/css/css-anchor-position/transform-005.tentative.html create mode 100644 tests/wpt/tests/css/css-anchor-position/transform-006.tentative.html rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-any-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-backdrop-filter-overflow-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-backdrop-filter-overflow.html (90%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-backdrop-filter-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-backdrop-filter.html (85%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-bevel-overflow-composite-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-bevel-overflow-composite.html (90%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-bevel-overflow-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-bevel-overflow.html (88%) rename tests/wpt/tests/css/css-borders/{tentative/parsing => corner-shape}/corner-shape-computed.html (86%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-fill-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-fill.html (83%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-gallery.manual.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-hittest.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-img-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-img.html (81%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-inset-shadow-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-inset-shadow.html (86%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-interpolation.html (100%) rename tests/wpt/tests/css/css-borders/{tentative/parsing => corner-shape}/corner-shape-invalid.html (94%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-notch-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-notch.html (85%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-outside-left.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-outside-right.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-overflow-clip-margin-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-overflow-clip-margin.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-render-fuzzy.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-render-precise.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-square-ref.html (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/corner-shape-square.html (86%) rename tests/wpt/tests/css/css-borders/{tentative/parsing => corner-shape}/corner-shape-valid.html (89%) create mode 100644 tests/wpt/tests/css/css-borders/corner-shape/corners-computed.html rename tests/wpt/tests/css/css-borders/{tentative/parsing => corner-shape}/corners-invalid.html (86%) create mode 100644 tests/wpt/tests/css/css-borders/corner-shape/corners-valid.html rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/resources/corner-shape.js (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/resources/corner-utils.js (100%) rename tests/wpt/tests/css/css-borders/{tentative => }/corner-shape/resources/resolve-corner-style.js (100%) delete mode 100644 tests/wpt/tests/css/css-borders/tentative/parsing/corners-computed.html delete mode 100644 tests/wpt/tests/css/css-borders/tentative/parsing/corners-valid.html create mode 100644 tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-02-ref.html create mode 100644 tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-02.html create mode 100644 tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-binary-ref.html create mode 100644 tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-binary.html create mode 100644 tests/wpt/tests/css/css-fonts/font-variant-caps-invalidation-container-sizing-ref.html create mode 100644 tests/wpt/tests/css/css-fonts/matching/font-unicode-presented-as-emoji-outline-ref.html create mode 100644 tests/wpt/tests/css/css-fonts/matching/font-unicode-presented-as-emoji-outline.html create mode 100644 tests/wpt/tests/css/css-fonts/matching/resources/AhemCrossmarkSupport.otf create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-009.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-010.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-011.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-012-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-012.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-013-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-013.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-014.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-015-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-015.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-016-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-016.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-017-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-017.html create mode 100644 tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-018.html delete mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-computed.html delete mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-invalid.html delete mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-valid.html delete mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-invalid.html delete mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-valid.html delete mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-computed.html delete mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-invalid.html delete mode 100644 tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-valid.html create mode 100644 tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-016-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/scroll-target-group-012-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/scroll-target-group-012.html create mode 100644 tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-without-overflow.html delete mode 100644 tests/wpt/tests/css/css-pseudo/first-line-child-display-none-dynamic.html delete mode 100644 tests/wpt/tests/css/css-pseudo/first-line-child-display-none-ref.html delete mode 100644 tests/wpt/tests/css/css-pseudo/first-line-child-display-none.html create mode 100644 tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-with-svg-001-ref.html create mode 100644 tests/wpt/tests/css/css-text/white-space/text-wrap-balance-with-svg-001.html create mode 100644 tests/wpt/tests/css/css-transforms/3d-point-mapping-2-transforminterop.html create mode 100644 tests/wpt/tests/css/css-transforms/3d-point-mapping-3.html create mode 100644 tests/wpt/tests/css/css-transforms/3d-point-mapping.html delete mode 100644 tests/wpt/tests/css/css-values/container-progress-computed.tentative.html delete mode 100644 tests/wpt/tests/css/css-values/container-progress-invalid.tentative.html delete mode 100644 tests/wpt/tests/css/css-values/container-progress-serialize.tentative.html delete mode 100644 tests/wpt/tests/css/css-values/media-progress-computed.tentative.html delete mode 100644 tests/wpt/tests/css/css-values/media-progress-invalid.tentative.html delete mode 100644 tests/wpt/tests/css/css-values/media-progress-serialize.tentative.html create mode 100644 tests/wpt/tests/css/css-values/tree-counting/sibling-index-keyframe-font-style-dynamic.html create mode 100644 tests/wpt/tests/css/css-values/tree-counting/sibling-index-keyframe-palette-mix-dynamic.html create mode 100644 tests/wpt/tests/css/css-values/typed_arithmetic.html create mode 100644 tests/wpt/tests/css/css-view-transitions/new-content-transform-change-001-ref.html create mode 100644 tests/wpt/tests/css/css-view-transitions/new-content-transform-change-001.html create mode 100644 tests/wpt/tests/dom/nodes/moveBefore/child-style-preserve.html rename tests/wpt/tests/dom/nodes/{name-validation.tentative.html => name-validation.html} (100%) create mode 100644 tests/wpt/tests/gif/META.yml create mode 100644 tests/wpt/tests/gif/reset-no-gce-1.html create mode 100644 tests/wpt/tests/gif/reset-no-gce-ref.html create mode 100644 tests/wpt/tests/gif/reset-no-gce.gif create mode 100644 tests/wpt/tests/html/rendering/the-details-element/details-crash.html create mode 100644 tests/wpt/tests/html/rendering/widgets/field-sizing-select-contain-size.html create mode 100644 tests/wpt/tests/html/semantics/embedded-content/the-embed-element/embed-allowed-schemas.sub.window.js create mode 100644 tests/wpt/tests/html/semantics/embedded-content/the-object-element/object-allowed-schemas.sub.window.js create mode 100644 tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-open-movebefore-setup.html create mode 100644 tests/wpt/tests/html/semantics/popovers/popover-source-crash.html create mode 100644 tests/wpt/tests/pointerevents/pointerevent_boundary_events_modifier_no_pointer_movement.html create mode 100644 tests/wpt/tests/pointerevents/pointerevent_multiple_pointerover_no_pointer_movement.html create mode 100644 tests/wpt/tests/selection/canvas-click.html create mode 100644 tests/wpt/tests/selection/extend-selection-in-shadow-tree.html create mode 100644 tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/background-image-set-image.html create mode 100644 tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/cross-origin-image.sub.html create mode 100644 tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/element-only-when-fully-active.html create mode 100644 tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/expanded-image.html create mode 100644 tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/first-paint-equals-lcp-text.html create mode 100644 tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/iframe-content-not-observed.html create mode 100644 tests/wpt/tests/soft-navigation-heuristics/resources/images/lcp-256x256-alt-1.png create mode 100644 tests/wpt/tests/soft-navigation-heuristics/resources/images/lcp-256x256-alt-2.png create mode 100644 tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/image-src-change.html create mode 100644 tests/wpt/tests/speculation-rules/prefetch/cross-origin-cookies-anonymous-client-ip-duplicate.https.html create mode 100644 tests/wpt/tests/svg/text/reftests/text-context-fill-ref.svg create mode 100644 tests/wpt/tests/svg/text/reftests/text-context-fill.svg create mode 100644 tests/wpt/tests/svg/types/scripted/SVGAnimatedAngle-initial-values.html create mode 100644 tests/wpt/tests/svg/types/scripted/SVGAnimatedEnumeration-initial-values.html create mode 100644 tests/wpt/tests/svg/types/scripted/SVGAnimatedInteger-initial-values.html create mode 100644 tests/wpt/tests/svg/types/scripted/SVGAnimatedNumber-initial-values.html create mode 100644 tests/wpt/tests/svg/types/scripted/support/initial-value-helper.js create mode 100644 tests/wpt/tests/uievents/mouse/mouse_boundary_events_modifier_no_mouse_movement.html create mode 100644 tests/wpt/tests/urlpattern/urlpattern-constructor.html 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/clear-site-data/clear-cache-bfcache.https.html b/tests/wpt/tests/clear-site-data/clear-cache-bfcache.https.html new file mode 100644 index 00000000000..b9967c541f1 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/clear-cache-bfcache.https.html @@ -0,0 +1,63 @@ + + + +Clear-Site-Data: cache for bfcache + + + + + + + + + diff --git a/tests/wpt/tests/clear-site-data/clear-cache-bfcache.sub.https.html b/tests/wpt/tests/clear-site-data/clear-cache-bfcache.sub.https.html deleted file mode 100644 index 61d810f453b..00000000000 --- a/tests/wpt/tests/clear-site-data/clear-cache-bfcache.sub.https.html +++ /dev/null @@ -1,115 +0,0 @@ - - - -Clear-Site-Data: cache for bfcache - - - - - - - - - diff --git a/tests/wpt/tests/clear-site-data/support/clear-cache-helper.sub.js b/tests/wpt/tests/clear-site-data/support/clear-cache-helper.sub.js index 5db0caf834c..1e9f2c2c33a 100644 --- a/tests/wpt/tests/clear-site-data/support/clear-cache-helper.sub.js +++ b/tests/wpt/tests/clear-site-data/support/clear-cache-helper.sub.js @@ -3,6 +3,15 @@ "use strict" +const sameOrigin = + 'https://{{host}}:{{ports[https][0]}}'; +const subdomainOrigin = + 'https://{{hosts[][www2]}}:{{ports[https][0]}}'; +const crossSiteOrigin = + 'https://{{hosts[alt][]}}:{{ports[https][0]}}'; +const subomdainCrossSiteOrigin = + 'https://{{hosts[alt][www2]}}:{{ports[https][0]}}'; + /** * Constructs a url for an intermediate "bounce" hop which represents a tracker. * @param {string} cacheHelper - Unique uuid for this test @@ -130,3 +139,49 @@ function testCacheClear(test, params, assert) { openTestPageHelper(test, null, testUrls, 0, assert, resolve) }); } + +// The tests are built on top of the back-forward-cache test harness. +// Here is the steps for the tests: +// 1. Open a new window and navigate to a test URL. +// 2. Navigate the window to a second page. +// 3. Trigger the clear-site-data header either by window.open() or loading an +// iframe from the second page. +// 4. Navigate back to the first page. +// 5. Assert that the first page is or is not cached. + +function runBfCacheClearTest(params, description) { + runBfcacheTest( + { + targetOrigin: sameOrigin, + scripts: ["/clear-site-data/support/clear-cache-helper.sub.js"], + funcBeforeBackNavigation: async (getUrlParams, mode) => { + + const cacheHelper = self.crypto.randomUUID(); + const testUrl = getUrl(cacheHelper, getUrlParams); + + let clearingPromise; + if (mode === "window") { + clearingPromise = new Promise(resolve => { + window.addEventListener("message", resolve, {once: true}); + window.open(testUrl); + }); + } else if (mode === "iframe") { + clearingPromise = new Promise(resolve => { + const iframe = document.createElement("iframe"); + iframe.src = testUrl; + document.body.appendChild(iframe); + iframe.onload = resolve; + }); + } else { + throw new Error("Unsupported mode"); + } + + await clearingPromise; + }, + argsBeforeBackNavigation: [params.getUrlParams, params.mode], + ...params, + }, + description + ); +} + diff --git a/tests/wpt/tests/common/get-host-info.sub.js b/tests/wpt/tests/common/get-host-info.sub.js index 9b8c2b5de63..f680cd8b199 100644 --- a/tests/wpt/tests/common/get-host-info.sub.js +++ b/tests/wpt/tests/common/get-host-info.sub.js @@ -30,6 +30,7 @@ function get_host_info() { PORT2: PORT2, ORIGINAL_HOST: ORIGINAL_HOST, REMOTE_HOST: REMOTE_HOST, + NOTSAMESITE_HOST, ORIGIN: PROTOCOL + "//" + ORIGINAL_HOST + PORT_ELIDED, HTTP_ORIGIN: 'http://' + ORIGINAL_HOST + HTTP_PORT_ELIDED, diff --git a/tests/wpt/tests/compute-pressure/compute_pressure_duplicate_updates.https.window.js b/tests/wpt/tests/compute-pressure/compute_pressure_duplicate_updates.https.window.js index b2968375db0..c10fd1baf97 100644 --- a/tests/wpt/tests/compute-pressure/compute_pressure_duplicate_updates.https.window.js +++ b/tests/wpt/tests/compute-pressure/compute_pressure_duplicate_updates.https.window.js @@ -22,6 +22,7 @@ pressure_test(async (t) => { await update_virtual_pressure_source('cpu', 'critical', 0.2); await syncObserver.waitForUpdate(); assert_equals(syncObserver.changes()[0][0].state, 'critical'); + assert_equals(syncObserver.changes()[0][0].ownContributionEstimate, 0.2); await update_virtual_pressure_source('cpu', 'critical', 0.2); await new Promise(resolve => {t.step_timeout(resolve, 3000)}); @@ -30,6 +31,7 @@ pressure_test(async (t) => { await update_virtual_pressure_source('cpu', 'nominal', 0.2); await syncObserver.waitForUpdate(); assert_equals(syncObserver.changes()[1][0].state, 'nominal'); + assert_equals(syncObserver.changes()[1][0].ownContributionEstimate, 0.2); assert_equals(syncObserver.changes().length, 2); }, 'Changes that fail the "should dispatch" test are discarded.'); diff --git a/tests/wpt/tests/content-security-policy/frame-src/frame-src-blocked-path-matching.sub.html b/tests/wpt/tests/content-security-policy/frame-src/frame-src-blocked-path-matching.sub.html new file mode 100644 index 00000000000..36daf5ff46e --- /dev/null +++ b/tests/wpt/tests/content-security-policy/frame-src/frame-src-blocked-path-matching.sub.html @@ -0,0 +1,53 @@ + + + + + + frame-src-blocked-path-matching + + + + + + + diff --git a/tests/wpt/tests/content-security-policy/script-src/script-src-event-handler-on-inline-script.html b/tests/wpt/tests/content-security-policy/script-src/script-src-event-handler-on-inline-script.html new file mode 100644 index 00000000000..cae3f23b75a --- /dev/null +++ b/tests/wpt/tests/content-security-policy/script-src/script-src-event-handler-on-inline-script.html @@ -0,0 +1,35 @@ + + + + + diff --git a/tests/wpt/tests/cookie-store/cookieStore_set_domain_parsing.sub.https.html b/tests/wpt/tests/cookie-store/cookieStore_set_domain_parsing.sub.https.html new file mode 100644 index 00000000000..dd1a6a48684 --- /dev/null +++ b/tests/wpt/tests/cookie-store/cookieStore_set_domain_parsing.sub.https.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + diff --git a/tests/wpt/tests/cookie-store/resources/domain_parsing-child.sub.https.html b/tests/wpt/tests/cookie-store/resources/domain_parsing-child.sub.https.html new file mode 100644 index 00000000000..c8ab3bbc54b --- /dev/null +++ b/tests/wpt/tests/cookie-store/resources/domain_parsing-child.sub.https.html @@ -0,0 +1,52 @@ + + + + + + + + + + + diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-name-mutation.html b/tests/wpt/tests/css/css-anchor-position/anchor-name-mutation.html new file mode 100644 index 00000000000..07272c387e0 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-name-mutation.html @@ -0,0 +1,217 @@ + + + + +Tests that when an anchor name is mutated, the anchor-positioned element adjusts to the new anchor + + + + + + + + + + + +
+
+ + + + + + + + diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-colspan-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-colspan-003.html new file mode 100644 index 00000000000..e985cebfb80 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-colspan-003.html @@ -0,0 +1,19 @@ + + + + +

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

+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-transition-attr.html b/tests/wpt/tests/css/css-anchor-position/anchor-transition-attr.tentative.html similarity index 94% rename from tests/wpt/tests/css/css-anchor-position/anchor-transition-attr.html rename to tests/wpt/tests/css/css-anchor-position/anchor-transition-attr.tentative.html index 540ab893efc..824c75c9665 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-transition-attr.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-transition-attr.tentative.html @@ -1,7 +1,7 @@ CSS Anchor Positioning: Transition when the anchor attribute changes - + + +

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

+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html b/tests/wpt/tests/css/css-borders/corner-shape/corner-shape-any-ref.html similarity index 100% rename from tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-any-ref.html rename to tests/wpt/tests/css/css-borders/corner-shape/corner-shape-any-ref.html diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-backdrop-filter-overflow-ref.html b/tests/wpt/tests/css/css-borders/corner-shape/corner-shape-backdrop-filter-overflow-ref.html similarity index 100% rename from tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-backdrop-filter-overflow-ref.html rename to tests/wpt/tests/css/css-borders/corner-shape/corner-shape-backdrop-filter-overflow-ref.html diff --git a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-backdrop-filter-overflow.html b/tests/wpt/tests/css/css-borders/corner-shape/corner-shape-backdrop-filter-overflow.html similarity index 90% rename from tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-backdrop-filter-overflow.html rename to tests/wpt/tests/css/css-borders/corner-shape/corner-shape-backdrop-filter-overflow.html index 550428a37e3..09efdaee841 100644 --- a/tests/wpt/tests/css/css-borders/tentative/corner-shape/corner-shape-backdrop-filter-overflow.html +++ b/tests/wpt/tests/css/css-borders/corner-shape/corner-shape-backdrop-filter-overflow.html @@ -1,6 +1,7 @@ +
-
+
diff --git a/tests/wpt/tests/css/css-fonts/calc-in-font-variation-settings.html b/tests/wpt/tests/css/css-fonts/calc-in-font-variation-settings.html index 1a7c59abd5d..47f98a1dc77 100644 --- a/tests/wpt/tests/css/css-fonts/calc-in-font-variation-settings.html +++ b/tests/wpt/tests/css/css-fonts/calc-in-font-variation-settings.html @@ -13,7 +13,10 @@
diff --git a/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-02-ref.html b/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-02-ref.html new file mode 100644 index 00000000000..180a9cccbb2 --- /dev/null +++ b/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-02-ref.html @@ -0,0 +1,20 @@ + + + +CSS Test: font-feature-settings descriptor + + +

Test passes if below line does not have a graph symbol.

+
+ This paragraph demonstrates the liga descriptor disabled through the @font-face rule. + + diff --git a/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-02.html b/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-02.html new file mode 100644 index 00000000000..4be3aaa0d82 --- /dev/null +++ b/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-02.html @@ -0,0 +1,25 @@ + + + +CSS Test: font-feature-settings descriptor + + + + + + +

Test passes if below line does not have a graph symbol.

+
+ This paragraph demonstrates the liga descriptor disabled through the @font-face rule. +
+ + diff --git a/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-binary-ref.html b/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-binary-ref.html new file mode 100644 index 00000000000..c5119f37bde --- /dev/null +++ b/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-binary-ref.html @@ -0,0 +1,27 @@ + + + +CSS Test: font-feature-settings descriptor + + +

The test passes if the two lines render differently, demonstrating that the "smcp" (Small Caps) feature correctly transforms lowercase letters into smaller uppercase in first line, and remains unchanged in second line.

+
+

Filler text

+
+
+

Filler text

+
+ diff --git a/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-binary.html b/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-binary.html new file mode 100644 index 00000000000..a7c11bb8dec --- /dev/null +++ b/tests/wpt/tests/css/css-fonts/font-feature-settings-descriptor-binary.html @@ -0,0 +1,32 @@ + + + +CSS Test: font-feature-settings descriptor + + + + + + +

The test passes if the two lines render differently, demonstrating that the "smcp" (Small Caps) feature correctly transforms lowercase letters into smaller uppercase in first line, and remains unchanged in second line.

+
+

Filler text

+
+
+

Filler text

+
+ diff --git a/tests/wpt/tests/css/css-fonts/font-variant-caps-invalidation-container-sizing-ref.html b/tests/wpt/tests/css/css-fonts/font-variant-caps-invalidation-container-sizing-ref.html new file mode 100644 index 00000000000..8463376cb8a --- /dev/null +++ b/tests/wpt/tests/css/css-fonts/font-variant-caps-invalidation-container-sizing-ref.html @@ -0,0 +1,18 @@ + + + + + + +
+ X +
+ + diff --git a/tests/wpt/tests/css/css-fonts/font-variant-caps-invalidation-container-sizing.html b/tests/wpt/tests/css/css-fonts/font-variant-caps-invalidation-container-sizing.html index 54a00dc360f..a3e2c8d6294 100644 --- a/tests/wpt/tests/css/css-fonts/font-variant-caps-invalidation-container-sizing.html +++ b/tests/wpt/tests/css/css-fonts/font-variant-caps-invalidation-container-sizing.html @@ -2,7 +2,7 @@ - +a + diff --git a/tests/wpt/tests/css/css-fonts/matching/font-unicode-presented-as-emoji-outline.html b/tests/wpt/tests/css/css-fonts/matching/font-unicode-presented-as-emoji-outline.html new file mode 100644 index 00000000000..51fa87abaa8 --- /dev/null +++ b/tests/wpt/tests/css/css-fonts/matching/font-unicode-presented-as-emoji-outline.html @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/css/css-fonts/matching/resources/AhemCrossmarkSupport.otf b/tests/wpt/tests/css/css-fonts/matching/resources/AhemCrossmarkSupport.otf new file mode 100644 index 0000000000000000000000000000000000000000..9ec89a89c94f25c1f38c5ef752498e321edb1594 GIT binary patch literal 22904 zcmeHP33waTwLUZ2We7=dNCGCAm=F?@*jg+(4qF}BCbUTiBw^oVOSY8Al91%sgncg* z9?J`~6lf`ZH0;m>czVcjnx=q!3XVok2G89lWSIkiL8CSEzXqzY|*8quCRdEni2ZR1i5T+M@X^jU^9} za~9f1wxv#LUA^e-aVXCv+U1@^JQ~}u?uGG0yQ7)H2~;>QwgYx|hM$~hFLYIWr0$6F zF+}!bQkjJd~(f%}rPNVDSH}qTjFS>z#N2};Y zx`}S4Tj*B0jc%tq=uY}Qt)aWkJFR%6g^FA z=^1*K{z%W!i}WXYiT+G4(<}5Uy+-Tlb=pXqXft)w7V4ol=uP?yy+v=+U+Eosm)@hl z(FgP)eN3Ow|InxO8EvJ{>F@Lp`hxxmdA_Dz`i6AHuPjo!l*`qp)Th;F)D7xJb(6Z; zw$gTkZI$gN+k>`8G^bXk?V#iw(;o-_F`N=&wT4g#PM=)nDv8>W^4|`d{=n^?&MH^&Y)fe~-rM zn^E4P|5g7$e;=jS$*I4jZ=x~!EBXfgMg4EE;2rhX^vyJac0i76-_qaE*X!5nPwLm8 z=hdj$h;*a=k-k#jq`$5|tzU}#U4VH-{~74LrLWR2(9hR@YW&|S^5^yazo>KmT;u;n zU_4hpTR%sC0u+9upQ)dsAE6)6`(f|ry&v>;_xALz@7>(He{ZIDS?}Iouj?)E+1m4I z&$yn?w&*>N^_<)DP|t%s5A@vIb4Smro?mTwbjxksZ+1V|{c86s-K)DV=zhNY+3ttC zZ|J_T`~1ycZJfM*{hz*h$-YKeV_*H{>RVSYUwz^o*WPi}ZO_~sx_R17pI-IOmG7clNRHtD)eSJ-)=JR9n(R$sRBhOY?$PStUJ`JmUYcD}#QG zf_o13QT|C|Ch-L=hTDLWt(LCdrBzJns#Wp?rS)rR{aRYLmF{Fqcl4zv8>LloX;oZW z6_-}U-+5JhrA23ZVGhNNd+fpMuPm-NYVow-%2*7SU(g(?p54;G=WFsFUO9uV+O%-W z@jLDNIeBaxd!#j)LGQe20;F-9D zV5risq=S+T{QtHAp3nRwkjGJ(j{@%%ScTtO{NS$m!)@m02OjUWz{fxSlpEiPv^RyY zo8c#P7)2>XopcsmOuxXMgxj&(;0f#{*noWkpU_u|QyHaHD0?XZWj|#ub^;uyB$a}4 zx^kg%g>s#8i*k?hsPdfhn)0Udq4I@lQ%9)d)yZnLI$Ld27ph0At?G&DDeC#^2+(uYPVLTbXSa+a%izTdi%5ZNBXYTZ=7iTVXrbcB$=Z+wW|@$L@ls zZGX0Hw!Lfn%=V4lV=uQ)wC`;X*?(mJiTyBp)Sj|;+Rw6IZ2yJ*xAxoZ_t~GYzi8iJ zf7||v{VRvlG0IWl*vk=c?B|&4SmZd)k#rOsr#mimT;aIRaf{;~$D@wt9IrXvbbRRe z!fA7kaE^CQc2+xQI~$z~oku%cohLd^!S{UU<<4uJH#*liA9gx4G|iKkk0P{kr=t_s8xpJr2)E&u*S69=~T_ z&w-vpJ;!#j zM|tBzezV?_z2|u^^Iqd!#RH=@XS!}Zztp<#|gT|>1M&3zo z6+3;z$2)SNYRnJpH<~>9E~9<~9Xfh_A3tC0ytk28$WvZvzm>P6a)Tq|WLO$Fqd(UKCSHp-)1 zK%W0)k1TZnB1K7RL2V3e?eHE+^sPeqAfy^C1xyZgd9*WJ0so9$VoLy?>2O~SwHZ;$ zfoco#ZKz4o3c=mbv@}3=0x}Ldd2p7bEO2EYg~@4NU}!~43b{PZ=xdR(ri6^0XitNt zMiF3&3(k_XT=b0qUpu}g=SQJ7hZ1wnyrux1GkP$LhI|%Z)(umfjhX~xE1+&RRpZM& zn$c2)-u2`uTv9W6Pt*);Aw*U9bVxe@ehe+hxm50YBRYYmu$5 z6Bv`C%oa3|6AjQjLZcwBkSJUYL&80v}YkR%fudo<>VP6b=ra!IVTvGv?!C$JUD5GZX|^$`Zc3p7t&7j zVk=JwoIGDs0zY#sWgLnho;9qMEK-(J>YwH2c_^)^=)EMaR>;j1`b)`N@c1zg%v%v^ z;3%0oGxf<@80bsbE3np0FR+BBW7hdFXJsxd>_Fyc8MR?*>Z`4Vy-3(vYV516@52zG zS$(w;%xwwVWWnI4AaJm?F%>^%e87O>e9+QTYr*BGI>4E|0+>}{qZj9E`?b_rN)5na z%GN*)eJw%YtFe^oLEFS01m8uBTqvu}oI3Yx?o&AAp_9R_v0SVt+0VY%f|2bLz*} zq|PNP?_4hO#w9CnT(;_gvCXmY9suV>i{sXCKgqdVW1$_kj59+w_2VUku`N<(9r`Sm zPy8$kY(7VAxuSrO6`U+VJ^t;v!?)9u*)bvq`ls zzgb*MtykQ<(1g6UOX=8ye}7Gx>rY{T;Qw3;5?Y?4XJ1A+Jxn7 z1Qot!^5|M+V!ytnaB@E zt!4;nrfyi*auvvHlN@9jOrj=?3Eu&2FV)a?QZ?6Xa&0vjBd?G@gy-llk?A>>f-SO;R1`W3eE%F+kJ&lGRU*pV~5)u04w}yC4A=jQ#Hue$HdK1tC z-xIDt%GM$A@SP3Uvj5<5l=q&)UD23A7%Q9retfn3;VEpt+)KbW&tCaF$11<+bBf&Y zeRvMivK{_AvhzL59IVOu%l_|TufjN4pQUu-D%gp2Q71;T1*v>u(jSJe=F1Hj6QUYc zy$IiGcp5p*{8WXXFz}UuTMwp%bR?c+EuaI*yEqZo>J#yHtu>P_XwC6dCf%0T3K^|{ zhHOW3D%qmNGVRf1x=K4Jtu5`yCG)XlOCgy_11u3OpjAs}3R*7Sl4(mPR}AQ-WjfRG zTt1P^YME9>nvZL($y7W)Lr`eVq*9sAWV%g@SEr)Q`KlJ9TZ`;fmC3bLgXefUAJ12>0E(HNQDCk1SNW@iN#sw#;!ofcWAt=10)UulT5^474iv%^Z{5~xU#>-I-_|oxg2`S#$#IZ zN!sE}ET%O@6FG>jMbj~D{z;Hli&Sazqg}1Zcq+!)O~g}Ktq{)_w9Z_z0NN%JEt`w8 zexuE)xB$pkX-u&roh;jMUC zE)E9Uqsv&|3<6a76FZ_gb!n^?0+L20`9CRiN31Aadrbx^g z^I5c#Tr}OrCa`3Bz&8_r;TfErg>1Nqv$cL?Ya2OR&j68GoQ>2Y+av(|K|j~{LjhFz zLqSof6;S@V0G9%hFq#69T3M(QNduDzG&FD_SXU#G`jAWnV6a{Q2IoXXWds9(4nBX7 z`}zE$2U3B?=dU+fBeGTS8}Lbyd;!UZ&k)WRG;js$1a#2oTqAM%4RF5!4m1LJz$bMR z@CmsC0Y9q-iP7vA*a8MC0l(xS5SSx-*9esa0%1u!5Uvru!$Rgjph;p0MFcZJpHC>E zrjZS8$#kSbu}FnhY8pdAb2W{#gnDWkr3yp-upoz2w1!Sq! z5f}iOh^AUCz;GlcTL2DPfQ!PIm=`B<@%T)*vYG6EEZu4>-I$w9nx}s<7b_BK%5>xg z>lzxQE4v_gt77Lx$*#frh6m}JPj<08DzcpHuMQqL(;iG#Ta&HUK69hVTtD&Z2kBFQ zhqllW*E~69R>jO2&@-JWvUX4`o@vWPv+%%0YM7AUZX8n0Y`}Uw z*axm9Tpy_a4jl%iy(F7YVx1%Dv*if-%j3C1vSoPcwT*K^+X-G}tWr8VJF7Z_Exa%> zYOq{DjaaEf7A>mgg;%~hij_rm$wF zuM=n@eAFcD)!Kt5)1EjXbuUEgr{Nu?>DW6r6H(l1>@(tBjl7$Vcj58Q)jC9(_o01h zKb)z00N!P)7duBA#6G73X)d1I{TS~z&7=8<=5k#35bS$jgeN#lu;cx3Is$Rtqv&Wl zhK{A<=y*B-ao}b|lXCUGhiup7o_mihxa;Uv1^)lix;rFXE{cy3%jLP(8+WP z-q$>hPNy^IOgfv+p>ydx`YByN7t+u0M%91NrF0qnC*CjpIbBP?GR`gKlVAD7SM$7A zdCKekIN$a0ekZyYMNmt-qwfk_cEY6)( zoTMr)#jSW0uTrM$pzNrOPs#BLDyZ literal 0 HcmV?d00001 diff --git a/tests/wpt/tests/css/css-fonts/variations/at-font-face-descriptors.html b/tests/wpt/tests/css/css-fonts/variations/at-font-face-descriptors.html index bb41c24ad07..7e9792730dc 100644 --- a/tests/wpt/tests/css/css-fonts/variations/at-font-face-descriptors.html +++ b/tests/wpt/tests/css/css-fonts/variations/at-font-face-descriptors.html @@ -75,10 +75,10 @@ { value: "100 a", isValid: false, description: "Extra content after value" }, // Single value, calc - { value: "calc(100.5)", isValid: true, expectedValue: "100.5", description: "Simple calc value" }, - { value: "calc(1001)", isValid: true, description: "Out-of-range simple calc value (should be clamped)" }, - { value: "calc(100.5*3 + 50.5)", isValid: true, expectedValue: "352", description: "Valid calc expression" }, - { value: "calc(100.5*3 + 800)", isValid: true, description: "Valid calc expression with out-of-range value (should be clamped)", expectedValue: "calc(1101.5)", }, + { value: "calc(100.5)", isValid: true, expectedValue: "calc(100.5)", description: "Simple calc value" }, + { value: "calc(1001)", isValid: true, description: "Out-of-range simple calc value" }, + { value: "calc(100.5*3 + 50.5)", isValid: true, expectedValue: "calc(352)", description: "Valid calc expression" }, + { value: "calc(100.5*3 + 800)", isValid: true, expectedValue: "calc(1101.5)", description: "Valid calc expression with out-of-range value" }, { value: "calc(100.5px + 50.5px)", isValid: false, description: "Valid calc expression with units" }, // Value range @@ -86,9 +86,9 @@ { value: "500 500", isValid: true, expectedValue: "500", description: "Simple range with equal upper and lower bounds" }, { value: "0.9 100", isValid: false, description: "Lower bound out of range" }, { value: "100 1001", isValid: false, description: "Upper bound out of range" }, - { value: "calc(100 + 100) 400", isValid: true, expectedValue: "200 400", description: "Lower bound calc()" }, - { value: "200 calc(200 + 200)", isValid: true, expectedValue: "200 400", description: "Upper bound calc()" }, - { value: "calc(100 + 100) calc(200 + 200)", isValid: true, expectedValue: "200 400", description: "Both bounds are calc()" }, + { value: "calc(100 + 100) 400", isValid: true, expectedValue: "calc(200) 400", description: "Lower bound calc()" }, + { value: "200 calc(200 + 200)", isValid: true, expectedValue: "200 calc(400)", description: "Upper bound calc()" }, + { value: "calc(100 + 100) calc(200 + 200)", isValid: true, expectedValue: "calc(200) calc(400)", description: "Both bounds are calc()" }, { value: "400 200", isValid: true, expectedValue: "400 200", description: "Bounds out of order are valid" }, { value: "100 200 300", isValid: false, description: "Extra content after upper bound" }, ]); @@ -118,8 +118,8 @@ { value: "100% a", isValid: false, description:"Extra content after value" }, // Single value, calc - { value: "calc(200.5%)", isValid: true, expectedValue: "200.5%", description: "Simple calc value" }, - { value: "calc(50%*2 - 20%)", isValid: true, expectedValue: "80%", description: "Valid calc expression" }, + { value: "calc(200.5%)", isValid: true, expectedValue: "calc(200.5%)", description: "Simple calc value" }, + { value: "calc(50%*2 - 20%)", isValid: true, expectedValue: "calc(80%)", description: "Valid calc expression" }, { value: "calc(-100%)", isValid: true, description: "Negative calc value (to be clamped)" }, { value: "calc(50% - 50%*2)", isValid: true, expectedValue: "calc(-50%)", description: "Negative calc expression (to be clamped)" }, { value: "calc(100)", isValid: false, description: "Unit-less calc value" }, @@ -129,9 +129,9 @@ { value: "100% 200%", isValid: true, description: "Simple range" }, { value: "100% 100%", isValid: true, expectedValue: "100%", description: "Simple range with equal upper and lower bounds" }, { value: "-100% 100%", isValid: false, description: "Lower bound out of range" }, - { value: "calc(10% + 10%) 30%", isValid: true, expectedValue: "20% 30%", description: "Lower bound calc()" }, - { value: "10% calc(10% + 10%)", isValid: true, expectedValue: "10% 20%", description: "Upper bound calc()" }, - { value: "calc(10% + 10%) calc(20% + 20%)", isValid: true, expectedValue: "20% 40%", description: "Both bounds are calc()" }, + { value: "calc(10% + 10%) 30%", isValid: true, expectedValue: "calc(20%) 30%", description: "Lower bound calc()" }, + { value: "10% calc(10% + 10%)", isValid: true, expectedValue: "10% calc(20%)", description: "Upper bound calc()" }, + { value: "calc(10% + 10%) calc(20% + 20%)", isValid: true, expectedValue: "calc(20%) calc(40%)", description: "Both bounds are calc()" }, { value: "200% 100%", isValid: true, expectedValue: "200% 100%", description: "Bounds out of order" }, { value: "100% 200% 300%", isValid: false, description: "Extra content after upper bound" }, ]); diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-009.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-009.html new file mode 100644 index 00000000000..96f90de5643 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-009.html @@ -0,0 +1,47 @@ + + + CSS Gap Decorations: Gap decorations are painted with nested subgrid that is subgridded in both directions. + + + + + +

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

+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-010.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-010.html new file mode 100644 index 00000000000..dd8cac2a7df --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-010.html @@ -0,0 +1,50 @@ + + + CSS Gap Decorations: Gap decorations are painted with nested subgrid that is subgridded in column direction. + + + + + +

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

+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-011.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-011.html new file mode 100644 index 00000000000..d80b0a2b3e4 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-011.html @@ -0,0 +1,48 @@ + + + CSS Gap Decorations: Gap decorations are painted with nested subgrid that is subgridded in row direction. + + + + + +

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

+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-012-ref.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-012-ref.html new file mode 100644 index 00000000000..bcb16d45489 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-012-ref.html @@ -0,0 +1,188 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-012.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-012.html new file mode 100644 index 00000000000..9cc84c3e04b --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-012.html @@ -0,0 +1,62 @@ + + + CSS Gap Decorations: Individual gap decorations are painted for parent grid and subgrid. + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-013-ref.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-013-ref.html new file mode 100644 index 00000000000..9b20aaf22c6 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-013-ref.html @@ -0,0 +1,190 @@ + + + + +
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-013.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-013.html new file mode 100644 index 00000000000..3afa02f2149 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-013.html @@ -0,0 +1,50 @@ + + + CSS Gap Decorations: Gap decorations do not paint behind spanners with nested subgrid. + + + + + +
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-014.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-014.html new file mode 100644 index 00000000000..468614669c9 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-014.html @@ -0,0 +1,64 @@ + + + CSS Gap Decorations: Gap decorations are painted with nested subgrids. + + + + + +

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

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-015-ref.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-015-ref.html new file mode 100644 index 00000000000..41915ab503e --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-015-ref.html @@ -0,0 +1,182 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-015.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-015.html new file mode 100644 index 00000000000..a7010d199e4 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-015.html @@ -0,0 +1,61 @@ + + + CSS Gap Decorations: Individual gap decorations are painted for parent grid and subgrid. + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-016-ref.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-016-ref.html new file mode 100644 index 00000000000..43577fa9800 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-016-ref.html @@ -0,0 +1,182 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-016.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-016.html new file mode 100644 index 00000000000..353367bd06c --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-016.html @@ -0,0 +1,62 @@ + + + CSS Gap Decorations: Individual gap decorations are painted for parent grid and subgrid. + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-017-ref.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-017-ref.html new file mode 100644 index 00000000000..e2218e06c45 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-017-ref.html @@ -0,0 +1,189 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-017.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-017.html new file mode 100644 index 00000000000..c175dfa6563 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-017.html @@ -0,0 +1,65 @@ + + + CSS Gap Decorations: Gap rule paint order is respected for parent grid and subgrid. + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-018.html b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-018.html new file mode 100644 index 00000000000..1fd2f1e16a5 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/subgrid/subgrid-gap-decorations-018.html @@ -0,0 +1,63 @@ + + + CSS Gap Decorations: Gap decorations are painted with nested subgrids. + + + + + +

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

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-computed.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-computed.html deleted file mode 100644 index 2581a35292f..00000000000 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-computed.html +++ /dev/null @@ -1,58 +0,0 @@ - - - - -CSS Masonry: masonry-auto-tracks getComputedStyle() - - - - - - - -
- - - - diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-invalid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-invalid.html deleted file mode 100644 index e23933ecd29..00000000000 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-invalid.html +++ /dev/null @@ -1,39 +0,0 @@ - - - - -CSS Masonry: masonry-auto-tracks with invalid values - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-valid.html b/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-valid.html deleted file mode 100644 index b0c1424fa72..00000000000 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-auto-tracks-valid.html +++ /dev/null @@ -1,57 +0,0 @@ - - - - -CSS Masonry: masonry-auto-tracks with valid values - - - - - - - - - - - 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 deleted file mode 100644 index 7fed500c28e..00000000000 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-invalid.html +++ /dev/null @@ -1,24 +0,0 @@ - -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 deleted file mode 100644 index 45550cbb112..00000000000 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-template-tracks-valid.html +++ /dev/null @@ -1,32 +0,0 @@ - -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 deleted file mode 100644 index 771626ca94d..00000000000 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-computed.html +++ /dev/null @@ -1,47 +0,0 @@ - -CSS Masonry: masonry-track-* getComputedStyle() - - - - - - -
-
-
- 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 deleted file mode 100644 index ba03c8426cb..00000000000 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-invalid.html +++ /dev/null @@ -1,56 +0,0 @@ - -CSS Masonry: masonry-track-* parsing - - - - - - - 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 deleted file mode 100644 index 2625c2629e5..00000000000 --- a/tests/wpt/tests/css/css-masonry/tentative/parsing/masonry-track-valid.html +++ /dev/null @@ -1,98 +0,0 @@ - -CSS Masonry: masonry-track-* parsing - - - - - - - - diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-016.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-016.html index 7c7256a953a..d36279ab381 100644 --- a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-016.html +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-016.html @@ -3,19 +3,20 @@ CSS Overflow: soft wrap opportunities created by overflow-wrap are ignored for inserting block-ellipsis - - + + -
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. - -When asked, he said that he was fine, when he wasn't really fine.
+
+ This time, Mark + walked in + uncharacteristically + quietly. +
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-016-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-016-ref.html new file mode 100644 index 00000000000..acaf9b64254 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-016-ref.html @@ -0,0 +1,15 @@ + + +CSS Reference + +
+ This time, Mark + walked in
+ … +
diff --git a/tests/wpt/tests/css/css-overflow/scroll-target-group-002.html b/tests/wpt/tests/css/css-overflow/scroll-target-group-002.html index e3e83769db2..5e32462426c 100644 --- a/tests/wpt/tests/css/css-overflow/scroll-target-group-002.html +++ b/tests/wpt/tests/css/css-overflow/scroll-target-group-002.html @@ -43,5 +43,4 @@ diff --git a/tests/wpt/tests/css/css-overflow/scroll-target-group-003.html b/tests/wpt/tests/css/css-overflow/scroll-target-group-003.html index 39e1beff02a..413e99f4eb7 100644 --- a/tests/wpt/tests/css/css-overflow/scroll-target-group-003.html +++ b/tests/wpt/tests/css/css-overflow/scroll-target-group-003.html @@ -61,5 +61,4 @@ diff --git a/tests/wpt/tests/css/css-overflow/scroll-target-group-012-ref.html b/tests/wpt/tests/css/css-overflow/scroll-target-group-012-ref.html new file mode 100644 index 00000000000..3f63ce1d2e4 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-target-group-012-ref.html @@ -0,0 +1,42 @@ + + +CSS Overflow Ref: scroll-target-group property with viewport scroller + +
+ t1 + t2 + t3 + t4 +
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-overflow/scroll-target-group-012.html b/tests/wpt/tests/css/css-overflow/scroll-target-group-012.html new file mode 100644 index 00000000000..f8f8a07a50d --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-target-group-012.html @@ -0,0 +1,45 @@ + + +CSS Overflow Test: scroll-target-group property with viewport scroller + + + +
+ t1 + t2 + t3 + t4 +
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-without-overflow.html b/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-without-overflow.html new file mode 100644 index 00000000000..1491ff6d586 --- /dev/null +++ b/tests/wpt/tests/css/css-overscroll-behavior/overscroll-behavior-without-overflow.html @@ -0,0 +1,133 @@ + + + + + + + + + + + + + +
+
+
+ + + diff --git a/tests/wpt/tests/css/css-properties-values-api/registered-property-computation.html b/tests/wpt/tests/css/css-properties-values-api/registered-property-computation.html index ebfc7c6a0b3..a59fb1e6901 100644 --- a/tests/wpt/tests/css/css-properties-values-api/registered-property-computation.html +++ b/tests/wpt/tests/css/css-properties-values-api/registered-property-computation.html @@ -8,6 +8,7 @@ #divWithFontSizeSet, #parentDiv { font-size: 10px; line-height: 20px; + color: blue; } @@ -154,15 +155,15 @@ test_computed_value('', '#badbee', 'rgb(186, 219, 238)'); test_computed_value('', '#badbee33', 'rgba(186, 219, 238, 0.2)'); test_computed_value('', 'tomato', 'rgb(255, 99, 71)'); test_computed_value('', 'plum', 'rgb(221, 160, 221)'); -test_computed_value('', 'currentcolor', 'currentcolor'); +test_computed_value('', 'currentcolor', 'rgb(0, 0, 255)'); test_computed_value('', 'color-mix(in srgb, black, white)', 'color(srgb 0.5 0.5 0.5)'); -test_computed_value('', 'color-mix(in srgb, currentcolor, red)', 'color-mix(in srgb, currentcolor, rgb(255, 0, 0))'); -test_computed_value('', 'color-mix(in srgb, currentcolor, #ffffff 70%)', 'color-mix(in srgb, currentcolor 30%, rgb(255, 255, 255))'); -test_computed_value('', 'color-mix(in srgb, currentcolor 20%, #ffffff 20%)', 'color-mix(in srgb, currentcolor 20%, rgb(255, 255, 255) 20%)'); -test_computed_value('', 'light-dark(currentcolor, red)', 'currentcolor'); +test_computed_value('', 'color-mix(in srgb, currentcolor, red)', 'color(srgb 0.5 0 0.5)'); +test_computed_value('', 'color-mix(in srgb, currentcolor, #ffffff 70%)', 'color(srgb 0.7 0.7 1)'); +test_computed_value('', 'color-mix(in srgb, currentcolor 20%, #ffffff 20%)', 'color(srgb 0.5 0.5 1 / 0.4)'); +test_computed_value('', 'light-dark(currentcolor, red)', 'rgb(0, 0, 255)'); test_computed_value('', 'light-dark(lime, red)', 'rgb(0, 255, 0)'); test_computed_value('', 'color(from lime srgb g g g)', 'color(srgb 1 1 1)'); -test_computed_value('', 'color(from currentcolor srgb b g r)', 'color(from currentcolor srgb b g r)'); +test_computed_value('', 'color(from currentcolor srgb b g r)', 'color(srgb 1 0 0)'); test_computed_value('', 'color(srgb 1 1 1 / calc(NaN))', 'color(srgb 1 1 1 / 0)'); // Custom ident values that look like color keywords should not be converted. diff --git a/tests/wpt/tests/css/css-properties-values-api/typedom.html b/tests/wpt/tests/css/css-properties-values-api/typedom.html index 51940e298d0..45e463608f0 100644 --- a/tests/wpt/tests/css/css-properties-values-api/typedom.html +++ b/tests/wpt/tests/css/css-properties-values-api/typedom.html @@ -106,15 +106,19 @@ function verify_computed_type(name, value, expected) { } // Verifies that the property 'name' shows up on iteration, that it's reified -// to the specified type, and that the string representation is equal to 'value'. -function verify_computed_iteration_type(name, value, type) { +// to the specified type, and that the string representation is equal to 'computed'. +function verify_computed_iteration_type(name, value, type, computed) { + if (!computed) { + computed = value; + } + target.attributeStyleMap.set(name, value); let result = Array.from(target.computedStyleMap()).filter(e => e[0] == name)[0]; assert_equals(result.length, 2); let iter_value = result[1]; assert_equals(iter_value.length, 1); assert_true(iter_value[0] instanceof type); - assert_equals(iter_value[0].toString(), value); + assert_equals(iter_value[0].toString(), computed); } // Run the same test twice: once for each StylePropertyMap. @@ -955,7 +959,7 @@ test(function(){ }, 'Computed is reified as CSSKeywordValue by iterator'); test(function(){ - verify_computed_iteration_type(generate_property(''), 'url(\"a\")', CSSImageValue); + verify_computed_iteration_type(generate_property(''), 'url(\"a\")', CSSImageValue, `url(\"${new URL("a", document.baseURI)}\")`); }, 'Computed is reified as CSSImageValue by iterator'); test(function(){ diff --git a/tests/wpt/tests/css/css-pseudo/first-line-child-display-none-dynamic.html b/tests/wpt/tests/css/css-pseudo/first-line-child-display-none-dynamic.html deleted file mode 100644 index 35fdf0a5c5c..00000000000 --- a/tests/wpt/tests/css/css-pseudo/first-line-child-display-none-dynamic.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - -

The text below should be green.

-
-
-
- Here's a line of text. -
-
- diff --git a/tests/wpt/tests/css/css-pseudo/first-line-child-display-none-ref.html b/tests/wpt/tests/css/css-pseudo/first-line-child-display-none-ref.html deleted file mode 100644 index 6808b87159a..00000000000 --- a/tests/wpt/tests/css/css-pseudo/first-line-child-display-none-ref.html +++ /dev/null @@ -1,8 +0,0 @@ - - -

The text below should be green.

-
- Here's a line of text. -
diff --git a/tests/wpt/tests/css/css-pseudo/first-line-child-display-none.html b/tests/wpt/tests/css/css-pseudo/first-line-child-display-none.html deleted file mode 100644 index 3ec50d5b01a..00000000000 --- a/tests/wpt/tests/css/css-pseudo/first-line-child-display-none.html +++ /dev/null @@ -1,15 +0,0 @@ - - - - -

The text below should be green.

-
-
-
- Here's a line of text. -
-
diff --git a/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-with-svg-001-ref.html b/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-with-svg-001-ref.html new file mode 100644 index 00000000000..5d97e834ce6 --- /dev/null +++ b/tests/wpt/tests/css/css-text/white-space/reference/text-wrap-balance-with-svg-001-ref.html @@ -0,0 +1,28 @@ + + + + CSS Text level 4 Test: text-wrap-style should allow in-line SVGs + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-with-svg-001.html b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-with-svg-001.html new file mode 100644 index 00000000000..f129990e1ab --- /dev/null +++ b/tests/wpt/tests/css/css-text/white-space/text-wrap-balance-with-svg-001.html @@ -0,0 +1,28 @@ + + + + CSS Text level 4 Test: text-wrap-style should allow in-line SVGs + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/css/css-transforms/3d-point-mapping-2-transforminterop.html b/tests/wpt/tests/css/css-transforms/3d-point-mapping-2-transforminterop.html new file mode 100644 index 00000000000..1322fc753d1 --- /dev/null +++ b/tests/wpt/tests/css/css-transforms/3d-point-mapping-2-transforminterop.html @@ -0,0 +1,261 @@ + +More point mapping through 3D transform hierarchies + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ + + + \ No newline at end of file diff --git a/tests/wpt/tests/css/css-transforms/3d-point-mapping-3.html b/tests/wpt/tests/css/css-transforms/3d-point-mapping-3.html new file mode 100644 index 00000000000..458ea62dd4e --- /dev/null +++ b/tests/wpt/tests/css/css-transforms/3d-point-mapping-3.html @@ -0,0 +1,93 @@ + +Point mapping through 3D transform hierarchies + + + + + + + +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/tests/wpt/tests/css/css-transforms/3d-point-mapping-coplanar.html b/tests/wpt/tests/css/css-transforms/3d-point-mapping-coplanar.html index 0ae0ab1ee48..7d0288015ba 100644 --- a/tests/wpt/tests/css/css-transforms/3d-point-mapping-coplanar.html +++ b/tests/wpt/tests/css/css-transforms/3d-point-mapping-coplanar.html @@ -1,6 +1,6 @@ Hit test coplanar elements - + diff --git a/tests/wpt/tests/css/css-transforms/3d-point-mapping-overlapping.html b/tests/wpt/tests/css/css-transforms/3d-point-mapping-overlapping.html index ffcfc1ae042..ea93c7e9ce1 100644 --- a/tests/wpt/tests/css/css-transforms/3d-point-mapping-overlapping.html +++ b/tests/wpt/tests/css/css-transforms/3d-point-mapping-overlapping.html @@ -1,6 +1,6 @@ Hit test overlapping elements - + diff --git a/tests/wpt/tests/css/css-transforms/3d-point-mapping.html b/tests/wpt/tests/css/css-transforms/3d-point-mapping.html new file mode 100644 index 00000000000..1600031f501 --- /dev/null +++ b/tests/wpt/tests/css/css-transforms/3d-point-mapping.html @@ -0,0 +1,247 @@ + +Point mapping through 3D transforms + + + + + + + + +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/tests/wpt/tests/css/css-values/attr-security.html b/tests/wpt/tests/css/css-values/attr-security.html index 25f0a78a328..8d7a2af6f9d 100644 --- a/tests/wpt/tests/css/css-values/attr-security.html +++ b/tests/wpt/tests/css/css-values/attr-security.html @@ -17,6 +17,7 @@ } div { --condition-val: 3; + --str: text; --true: true; --some-string: attr(data-foo); --some-string-list: "https://does-not-exist2.test/404.png" attr(data-foo); @@ -244,4 +245,28 @@ `image-set(if(style(--condition-val: if(style(--true): attr(data-foo type(*));)): url(https://does-not-exist.test/404.png);))`, '3', 'image-set(url(https://does-not-exist.test/404.png))'); + test_attr('--x', + `image-set(if(style(--condition-val >= attr(data-foo type(*))): url(https://does-not-exist.test/404.png);))`, + '3', + 'image-set(url(https://does-not-exist.test/404.png))'); + test_attr('background-image', + `image-set( + if(style(--condition-val >= attr(data-foo type(*))): url(https://does-not-exist.test/404.png);))`, + '3', + 'none'); + test_attr('background-image', + `image-set( + if(style(--condition-val < attr(data-foo type(*))): url(https://does-not-exist.test/404.png);))`, + '3', + 'none'); + test_attr('background-image', + `image-set( + if(style(--str < attr(data-foo type(*))): url(https://does-not-exist.test/404.png);))`, + '3', + 'none'); + test_attr('background-image', + `image-set( + if(style(--condition-val < attr(data-foo type(*))): url(https://does-not-exist.test/404.png);))`, + 'text', + 'none'); diff --git a/tests/wpt/tests/css/css-values/container-progress-computed.tentative.html b/tests/wpt/tests/css/css-values/container-progress-computed.tentative.html deleted file mode 100644 index fa0fcd70560..00000000000 --- a/tests/wpt/tests/css/css-values/container-progress-computed.tentative.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - -
-
-
-
-
-
-
-
- - diff --git a/tests/wpt/tests/css/css-values/container-progress-invalid.tentative.html b/tests/wpt/tests/css/css-values/container-progress-invalid.tentative.html deleted file mode 100644 index 491abf505ac..00000000000 --- a/tests/wpt/tests/css/css-values/container-progress-invalid.tentative.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - diff --git a/tests/wpt/tests/css/css-values/container-progress-serialize.tentative.html b/tests/wpt/tests/css/css-values/container-progress-serialize.tentative.html deleted file mode 100644 index 18c76a35d96..00000000000 --- a/tests/wpt/tests/css/css-values/container-progress-serialize.tentative.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - -
-
-
-
-
- - diff --git a/tests/wpt/tests/css/css-values/if-conditionals.html b/tests/wpt/tests/css/css-values/if-conditionals.html index bc25196e615..a299b267af5 100644 --- a/tests/wpt/tests/css/css-values/if-conditionals.html +++ b/tests/wpt/tests/css/css-values/if-conditionals.html @@ -574,6 +574,9 @@ test_if_with_custom_properties('if(style(--time <= 1000ms): true_value; else: false_value)', [['--time', '1s']], 'true_value'); + test_if_with_custom_properties('if(style(var(--time) <= 1000ms): true_value; else: false_value)', + [['--time', '1s']], + 'true_value'); test_if_with_custom_properties('if(style(--x <= 1000ms): true_value; else: false_value)', [['--x', '1s']], 'true_value'); diff --git a/tests/wpt/tests/css/css-values/media-progress-computed.tentative.html b/tests/wpt/tests/css/css-values/media-progress-computed.tentative.html deleted file mode 100644 index 4bea3f617e3..00000000000 --- a/tests/wpt/tests/css/css-values/media-progress-computed.tentative.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - -
- - diff --git a/tests/wpt/tests/css/css-values/media-progress-invalid.tentative.html b/tests/wpt/tests/css/css-values/media-progress-invalid.tentative.html deleted file mode 100644 index 0aed208d8bd..00000000000 --- a/tests/wpt/tests/css/css-values/media-progress-invalid.tentative.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - diff --git a/tests/wpt/tests/css/css-values/media-progress-serialize.tentative.html b/tests/wpt/tests/css/css-values/media-progress-serialize.tentative.html deleted file mode 100644 index 2144ddc69db..00000000000 --- a/tests/wpt/tests/css/css-values/media-progress-serialize.tentative.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - -
- - diff --git a/tests/wpt/tests/css/css-values/progress-computed.html b/tests/wpt/tests/css/css-values/progress-computed.html index 8eb4e2b6757..6d4e8365fb4 100644 --- a/tests/wpt/tests/css/css-values/progress-computed.html +++ b/tests/wpt/tests/css/css-values/progress-computed.html @@ -4,6 +4,14 @@ +
diff --git a/tests/wpt/tests/css/css-values/progress-serialize.html b/tests/wpt/tests/css/css-values/progress-serialize.html index 49c3a3c3d56..bb16280e17d 100644 --- a/tests/wpt/tests/css/css-values/progress-serialize.html +++ b/tests/wpt/tests/css/css-values/progress-serialize.html @@ -43,6 +43,16 @@ test_serialization( 'calc(0.5)', '0.5' ); +test_serialization( + 'calc(0.5 * progress(200px, 0px, 100px))', + 'calc(0.5)', + '0.5' +); +test_serialization( + 'calc(0.5 * progress(-100px, 0px, 100px))', + 'calc(0)', + '0' +); test_specified_serialization( 'width', 'calc(50px * progress(100px, 0px, 100px))', diff --git a/tests/wpt/tests/css/css-values/sign-in-keyframes-with-relative-units.html b/tests/wpt/tests/css/css-values/sign-in-keyframes-with-relative-units.html index 5431c7c6241..2b5b73332ee 100644 --- a/tests/wpt/tests/css/css-values/sign-in-keyframes-with-relative-units.html +++ b/tests/wpt/tests/css/css-values/sign-in-keyframes-with-relative-units.html @@ -4,18 +4,39 @@ +
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-values/tree-counting/sibling-index-keyframe-palette-mix-dynamic.html b/tests/wpt/tests/css/css-values/tree-counting/sibling-index-keyframe-palette-mix-dynamic.html new file mode 100644 index 00000000000..aef994da26e --- /dev/null +++ b/tests/wpt/tests/css/css-values/tree-counting/sibling-index-keyframe-palette-mix-dynamic.html @@ -0,0 +1,49 @@ + +CSS Values and Units Test: sibling-index() changing font-palette during @keyframes animation + + + + +
+
+
+
+
+
+ diff --git a/tests/wpt/tests/css/css-values/typed_arithmetic.html b/tests/wpt/tests/css/css-values/typed_arithmetic.html new file mode 100644 index 00000000000..f4258c33287 --- /dev/null +++ b/tests/wpt/tests/css/css-values/typed_arithmetic.html @@ -0,0 +1,58 @@ + +CSS Values: typed arithmetic tests + + + + + + +
+
+
+ diff --git a/tests/wpt/tests/css/css-view-transitions/fractional-translation-from-position.html b/tests/wpt/tests/css/css-view-transitions/fractional-translation-from-position.html index 6187348b9ea..df3d679ca35 100644 --- a/tests/wpt/tests/css/css-view-transitions/fractional-translation-from-position.html +++ b/tests/wpt/tests/css/css-view-transitions/fractional-translation-from-position.html @@ -25,9 +25,8 @@ body { contain: layout; } -/* Keep the animation running for 30s to screenshot pseudo DOM */ ::view-transition-new(root), ::view-transition-old(root) { - animation-duration: 30s; + animation-play-state: paused; } ::view-transition-new(target) { diff --git a/tests/wpt/tests/css/css-view-transitions/fractional-translation-from-transform.html b/tests/wpt/tests/css/css-view-transitions/fractional-translation-from-transform.html index 40188875b93..f5f538c4ebd 100644 --- a/tests/wpt/tests/css/css-view-transitions/fractional-translation-from-transform.html +++ b/tests/wpt/tests/css/css-view-transitions/fractional-translation-from-transform.html @@ -4,7 +4,7 @@ - + +
diff --git a/tests/wpt/tests/css/css-view-transitions/new-content-transform-change-001.html b/tests/wpt/tests/css/css-view-transitions/new-content-transform-change-001.html new file mode 100644 index 00000000000..973a9931b71 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/new-content-transform-change-001.html @@ -0,0 +1,53 @@ + + +View transitions: dynamic transform change of new content after start + + + + + + + +
+ diff --git a/tests/wpt/tests/device-bound-session-credentials/debug-header.https.html b/tests/wpt/tests/device-bound-session-credentials/debug-header.https.html index 631151bcbcf..4f384bf1195 100644 --- a/tests/wpt/tests/device-bound-session-credentials/debug-header.https.html +++ b/tests/wpt/tests/device-bound-session-credentials/debug-header.https.html @@ -7,7 +7,7 @@ diff --git a/tests/wpt/tests/device-bound-session-credentials/multiple-registrations.https.html b/tests/wpt/tests/device-bound-session-credentials/multiple-registrations.https.html index d5563eb4e01..ef024bd0c77 100644 --- a/tests/wpt/tests/device-bound-session-credentials/multiple-registrations.https.html +++ b/tests/wpt/tests/device-bound-session-credentials/multiple-registrations.https.html @@ -12,10 +12,9 @@ await setupShardedServerState(); const expectedCookieAndValue1 = "auth_cookie=abcdef0123"; const expectedCookieAndAttributes1 = `${expectedCookieAndValue1};Domain=${location.hostname};Path=/device-bound-session-credentials`; - addCookieAndSessionCleanup(t, expectedCookieAndAttributes1); const expectedCookieAndValue2 = "other_cookie=ghijkl4567"; const expectedCookieAndAttributes2 = `${expectedCookieAndValue2};Domain=${location.hostname};Path=/device-bound-session-credentials`; - addCookieAndSessionCleanup(t, expectedCookieAndAttributes2); + addCookieAndSessionCleanup(t); // Configure server to configure cookies for next two created sessions. configureServer({ diff --git a/tests/wpt/tests/device-bound-session-credentials/resolving-urls.https.html b/tests/wpt/tests/device-bound-session-credentials/resolving-urls.https.html index e502eb4b777..79f1594ba71 100644 --- a/tests/wpt/tests/device-bound-session-credentials/resolving-urls.https.html +++ b/tests/wpt/tests/device-bound-session-credentials/resolving-urls.https.html @@ -12,7 +12,7 @@ await setupShardedServerState(); const expectedCookieAndValue = "auth_cookie=abcdef0123"; const expectedCookieAndAttributes = `${expectedCookieAndValue};Domain=${location.hostname};Path=/device-bound-session-credentials`; - addCookieAndSessionCleanup(t, expectedCookieAndAttributes); + addCookieAndSessionCleanup(t); // Configure server to use the absolute URL for refresh instead of a relative URL. configureServer({ refreshUrl }); diff --git a/tests/wpt/tests/dom/events/scrolling/iframe-chains.html b/tests/wpt/tests/dom/events/scrolling/iframe-chains.html index fb7d674aae1..c117210537f 100644 --- a/tests/wpt/tests/dom/events/scrolling/iframe-chains.html +++ b/tests/wpt/tests/dom/events/scrolling/iframe-chains.html @@ -1,6 +1,7 @@ + diff --git a/tests/wpt/tests/dom/nodes/DOMImplementation-createDocument.html b/tests/wpt/tests/dom/nodes/DOMImplementation-createDocument.html index 835002b4707..4550f5d0dce 100644 --- a/tests/wpt/tests/dom/nodes/DOMImplementation-createDocument.html +++ b/tests/wpt/tests/dom/nodes/DOMImplementation-createDocument.html @@ -113,14 +113,16 @@ test(function() { assert_equals(element.nodeType, Node.ELEMENT_NODE) assert_equals(element.ownerDocument, doc) var qualified = String(qualifiedName), names = [] - if (qualified.indexOf(":") >= 0) { - names = qualified.split(":", 2) + var firstColonIndex = qualified.indexOf(":") + if (firstColonIndex >= 0) { + names.push(qualified.substring(0, firstColonIndex)); + names.push(qualified.substring(firstColonIndex + 1)); } else { names = [null, qualified] } - assert_equals(element.prefix, names[0]) - assert_equals(element.localName, names[1]) - assert_equals(element.namespaceURI, namespace === undefined ? null : namespace) + assert_equals(element.prefix, names[0], 'element.prefix') + assert_equals(element.localName, names[1], 'element.localName') + assert_equals(element.namespaceURI, namespace === undefined || namespace === "" ? null : namespace, 'element.namespaceURI') } if (!doctype) { assert_equals(doc.doctype, null) diff --git a/tests/wpt/tests/dom/nodes/DOMImplementation-createDocumentType.html b/tests/wpt/tests/dom/nodes/DOMImplementation-createDocumentType.html index 8d23e66a2b0..f103a8da3ce 100644 --- a/tests/wpt/tests/dom/nodes/DOMImplementation-createDocumentType.html +++ b/tests/wpt/tests/dom/nodes/DOMImplementation-createDocumentType.html @@ -12,7 +12,7 @@ + + +
+

Test1

+
+
+

Test2

+
+ + + diff --git a/tests/wpt/tests/dom/nodes/name-validation.tentative.html b/tests/wpt/tests/dom/nodes/name-validation.html similarity index 100% rename from tests/wpt/tests/dom/nodes/name-validation.tentative.html rename to tests/wpt/tests/dom/nodes/name-validation.html diff --git a/tests/wpt/tests/dom/nodes/productions.js b/tests/wpt/tests/dom/nodes/productions.js index 218797fc459..f779c467d89 100644 --- a/tests/wpt/tests/dom/nodes/productions.js +++ b/tests/wpt/tests/dom/nodes/productions.js @@ -1,3 +1,3 @@ -var invalid_names = ["", "invalid^Name", "\\", "'", '"', "0", "0:a"] // XXX -var valid_names = ["x", "X", ":", "a:0"] -var invalid_qnames = [":a", "b:", "x:y:z"] // XXX +var invalid_names = [""] // XXX +var valid_names = ["x", "X", ":", "a:0", "invalid^Name", "\\", "'", '"', "0", "0:a", ":a", "x:y:x", "~"] +var invalid_qnames = ["b:"] // XXX diff --git a/tests/wpt/tests/fedcm/fedcm-iframe.https.html b/tests/wpt/tests/fedcm/fedcm-iframe.https.html index 2c63a9973b2..335e1c83cb6 100644 --- a/tests/wpt/tests/fedcm/fedcm-iframe.https.html +++ b/tests/wpt/tests/fedcm/fedcm-iframe.https.html @@ -20,7 +20,7 @@ const localhostBaseURL = "http://localhost:" + host.HTTP_PORT + basePath; async function createIframeAndWaitForMessage(test, iframeUrl, setPermissionPolicy, style = "") { const messageWatcher = new EventWatcher(test, window, "message"); - var iframe = document.createElement("iframe"); + let iframe = document.createElement("iframe"); iframe.src = iframeUrl; if (setPermissionPolicy) { iframe.allow = "identity-credentials-get"; diff --git a/tests/wpt/tests/fedcm/support/fedcm-iframe-level2.html b/tests/wpt/tests/fedcm/support/fedcm-iframe-level2.html index 7622d988ff2..c0c4cce6bef 100644 --- a/tests/wpt/tests/fedcm/support/fedcm-iframe-level2.html +++ b/tests/wpt/tests/fedcm/support/fedcm-iframe-level2.html @@ -12,7 +12,7 @@ const remoteBaseURL = window.onload = async () => { const urlParams = new URLSearchParams(window.location.search); - var iframe = document.createElement("iframe"); + let iframe = document.createElement("iframe"); iframe.src = remoteBaseURL + "fedcm-iframe.html"; if (urlParams.get("permission") != '0') { iframe.allow = "identity-credentials-get"; diff --git a/tests/wpt/tests/fedcm/support/fedcm/intercept_service_worker.js b/tests/wpt/tests/fedcm/support/fedcm/intercept_service_worker.js index b458c973be3..eca8b11e52e 100644 --- a/tests/wpt/tests/fedcm/support/fedcm/intercept_service_worker.js +++ b/tests/wpt/tests/fedcm/support/fedcm/intercept_service_worker.js @@ -1,4 +1,4 @@ -var num_overridden = 0; +let num_overridden = 0; self.addEventListener('fetch', event => { const url = event.request.url; diff --git a/tests/wpt/tests/gif/META.yml b/tests/wpt/tests/gif/META.yml new file mode 100644 index 00000000000..1d051253be2 --- /dev/null +++ b/tests/wpt/tests/gif/META.yml @@ -0,0 +1 @@ +spec: https://www.w3.org/Graphics/GIF/spec-gif89a.txt diff --git a/tests/wpt/tests/gif/reset-no-gce-1.html b/tests/wpt/tests/gif/reset-no-gce-1.html new file mode 100644 index 00000000000..75a2b48dcd6 --- /dev/null +++ b/tests/wpt/tests/gif/reset-no-gce-1.html @@ -0,0 +1,32 @@ + + + + gif no graphics control extension + + + + + + + + + + + + + diff --git a/tests/wpt/tests/gif/reset-no-gce-ref.html b/tests/wpt/tests/gif/reset-no-gce-ref.html new file mode 100644 index 00000000000..5bf308fd63b --- /dev/null +++ b/tests/wpt/tests/gif/reset-no-gce-ref.html @@ -0,0 +1,13 @@ + + + + gif no graphics control extension + + + + + +
+ + + diff --git a/tests/wpt/tests/gif/reset-no-gce.gif b/tests/wpt/tests/gif/reset-no-gce.gif new file mode 100644 index 0000000000000000000000000000000000000000..98e6bc61ac4a43e5d5e3df7165b87402a72c915b GIT binary patch literal 90 zcmZ?wbhEHbWMW`q_{abP|6y41Ckv+tkfQ?<1<5loG50KHV1S4-p@>geimDF8w*~;0 CgA9%U literal 0 HcmV?d00001 diff --git a/tests/wpt/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html b/tests/wpt/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html index 7c8df118437..7c3bc487000 100644 --- a/tests/wpt/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html +++ b/tests/wpt/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash-twice.html @@ -4,26 +4,35 @@ diff --git a/tests/wpt/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html b/tests/wpt/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html index 97c4636fad7..ccbb37e58c9 100644 --- a/tests/wpt/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html +++ b/tests/wpt/tests/html/browsers/browsing-the-web/history-traversal/event-order/before-load-hash.html @@ -4,24 +4,33 @@ diff --git a/tests/wpt/tests/html/dom/elements/global-attributes/dataset-set.html b/tests/wpt/tests/html/dom/elements/global-attributes/dataset-set.html index a5bc177f504..fca91347d4a 100644 --- a/tests/wpt/tests/html/dom/elements/global-attributes/dataset-set.html +++ b/tests/wpt/tests/html/dom/elements/global-attributes/dataset-set.html @@ -34,8 +34,8 @@ "Setting element.dataset['-foo'] should throw a SYNTAX_ERR"); test(function() { assert_throws_dom('INVALID_CHARACTER_ERR', function() { testSet('foo\x20', 'dummy') }); }, "Setting element.dataset['foo\x20'] should throw an INVALID_CHARACTER_ERR"); - test(function() { assert_throws_dom('INVALID_CHARACTER_ERR', function() { testSet('\u037Efoo', 'dummy') }); }, - "Setting element.dataset['\u037Efoo'] should throw an INVALID_CHARACTER_ERR"); + test(function() { assert_true(testSet('\u037Efoo', 'data-\u037Efoo')); }, + "Setting element.dataset['\u037Efoo'] should not throw."); test(function() { assert_true(testSet('\u0BC6foo', 'data-\u0BC6foo')); }, "Setting element.dataset['\u0BC6foo'] should also change the value of element.getAttribute('\u0BC6foo')"); diff --git a/tests/wpt/tests/html/editing/dnd/resources/test-helper.js b/tests/wpt/tests/html/editing/dnd/resources/test-helper.js index fa9ec20c62b..c7c80958fd5 100644 --- a/tests/wpt/tests/html/editing/dnd/resources/test-helper.js +++ b/tests/wpt/tests/html/editing/dnd/resources/test-helper.js @@ -1,30 +1,30 @@ 'use strict'; -// Moves the pointer to the center of `element`. If `element` is contained within an `iframe`, use -// the `iframe` parameter to indicate which `iframe` contains `element`. This function -// returns a promise that will resolve once the pointer has been moved. - -const mouseMoveToCenter = (element, iframe = undefined) => { - let clientRect = element.getBoundingClientRect(); - let centerX = (clientRect.left + clientRect.right) / 2; - let centerY = (clientRect.top + clientRect.bottom) / 2; - if(iframe != undefined) { - clientRect = iframe.getBoundingClientRect(); - centerX += clientRect.left; - centerY += clientRect.top; - } - return new test_driver.Actions() - .pointerMove(Math.ceil(centerX), Math.ceil(centerY)) - .send(); +// This method calculates the center of an element in an iframe in the +// coordinate space of the top frame. We need this because TestDriver doesn't +// support Actions `{origin}`s across two different frames. +const getElemCenterInIframe = (element, iframe) => { + const elemClientRect = element.getBoundingClientRect(); + const frameClientRect = iframe.getBoundingClientRect(); + const centerX = frameClientRect.left + (elemClientRect.left + elemClientRect.right) / 2; + const centerY = frameClientRect.top + (elemClientRect.top + elemClientRect.bottom) / 2; + return [centerX, centerY]; }; +// This method appends a pointer move action to the `actions` argument that +// moves the pointer to the center of the `element` and returns it. +const movePointerToCenter = (element, iframe, actions) => { +return (iframe == undefined) ? + actions.pointerMove(0, 0, {origin: element}) : + actions.pointerMove(...getElemCenterInIframe(element, iframe)) +} + // The dragDropTest function can be used for tests which require the drag and drop movement. // `dragElement` takes the element that needs to be dragged and `dropElement` is the element which // you want to drop the `dragElement` on. `onDropCallback` is called on the onDrop handler and the -// test will only pass if this functions returns true. Also, if the `dropElement` is inside an +// test will only pass if this function returns true. Also, if the `dropElement` is inside an // iframe, use the optional `iframe` parameter to specify an iframe element that contains the // `dropElement` to ensure that tests with an iframe pass. - function dragDropTest(dragElement, dropElement, onDropCallBack, testDescription, iframe = undefined) { promise_test((t) => new Promise(async (resolve, reject) => { dropElement.addEventListener('drop', t.step_func((event) => { @@ -35,14 +35,11 @@ function dragDropTest(dragElement, dropElement, onDropCallBack, testDescription, } })); try { - await mouseMoveToCenter(dragElement); - await new test_driver.Actions() - .pointerDown() - .send(); - await mouseMoveToCenter(dropElement, iframe); - await new test_driver.Actions() - .pointerUp() - .send(); + var actions = new test_driver.Actions() + .pointerMove(0, 0, {origin: dragElement}) + .pointerDown(); + actions = movePointerToCenter(dropElement, iframe, actions); + await actions.pointerUp().send(); } catch (e) { reject(e); } diff --git a/tests/wpt/tests/html/rendering/the-details-element/details-crash.html b/tests/wpt/tests/html/rendering/the-details-element/details-crash.html new file mode 100644 index 00000000000..448a71581f2 --- /dev/null +++ b/tests/wpt/tests/html/rendering/the-details-element/details-crash.html @@ -0,0 +1,11 @@ + + + + + + + + +
diff --git a/tests/wpt/tests/html/rendering/widgets/field-sizing-select-contain-size.html b/tests/wpt/tests/html/rendering/widgets/field-sizing-select-contain-size.html new file mode 100644 index 00000000000..5e80003da09 --- /dev/null +++ b/tests/wpt/tests/html/rendering/widgets/field-sizing-select-contain-size.html @@ -0,0 +1,51 @@ + + + + + + +
+ + diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-embed-element/embed-allowed-schemas.sub.window.js b/tests/wpt/tests/html/semantics/embedded-content/the-embed-element/embed-allowed-schemas.sub.window.js new file mode 100644 index 00000000000..887a6339655 --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-embed-element/embed-allowed-schemas.sub.window.js @@ -0,0 +1,40 @@ +async function test_uri(t, uri, pred) { + const embed = document.createElement("embed"); + const promise = new Promise((resolve, reject) => { + embed.onload = e => resolve(e.type); + embed.src = uri; + document.body.append(embed); + }); + assert_equals(await promise, "load") + assert_true(pred(embed)); + + embed.remove(); +} + +// It's difficult detecting failure for , but the element +// having an offsetWidth of '0' is often enough. +function has_width(embed) { + return embed.offsetWidth > 0; +} + +promise_test(async t => { + await test_uri(t, "about:blank", has_width); +}, "about: allowed in embed"); + +promise_test(async t => { + const blobParts = ['Hello, world!']; + const blob = new Blob(blobParts, { type: "text/html" }) + await test_uri(t, URL.createObjectURL(blob), has_width); +}, "blob: allowed in embed"); + +promise_test(async t => { + await test_uri(t, "data:,Hello%2C%20World%21", has_width); +}, "data: allowed in embed"); + +promise_test(async t => { + await test_uri(t, "https://{{domains[www]}}:{{ports[https][0]}}", has_width); +}, "https: allowed in embed"); + +promise_test(async t => { + await test_uri(t, "http://{{domains[www]}}:{{ports[http][0]}}", has_width); +}, "http: allowed in embed"); diff --git a/tests/wpt/tests/html/semantics/embedded-content/the-object-element/object-allowed-schemas.sub.window.js b/tests/wpt/tests/html/semantics/embedded-content/the-object-element/object-allowed-schemas.sub.window.js new file mode 100644 index 00000000000..aed166bf9ad --- /dev/null +++ b/tests/wpt/tests/html/semantics/embedded-content/the-object-element/object-allowed-schemas.sub.window.js @@ -0,0 +1,44 @@ +async function test_uri(t, uri, expected) { + const object = document.createElement("object"); + const promise = new Promise((resolve, reject) => { + object.onerror = e => reject(e.type); + object.onload = () => resolve("success"); + object.data = uri; + document.body.append(object); + }); + + if (expected === "success") { + await promise; + } else { + await promise_rejects_exactly(t, expected, promise); + } + + object.remove(); +} + +promise_test(async t => { + await test_uri(t, "about:blank", "success"); +}, "about: allowed in object"); + +promise_test(async t => { + const blobParts = ['Hello, world!']; + const blob = new Blob(blobParts, { type: "text/html" }) + await test_uri(t, URL.createObjectURL(blob), "success"); +}, "blob: allowed in object"); + +promise_test(async t => { + await test_uri(t, "data:,Hello%2C%20World%21", "success"); +}, "data: allowed in object"); + +promise_test(async t => { + await test_uri(t, "https://{{domains[www]}}:{{ports[https][0]}}", "success"); +}, "https: allowed in object"); + +promise_test(async t => { + await test_uri(t, "http://{{domains[www]}}:{{ports[http][0]}}", "success"); +}, "http: allowed in object"); + + +promise_test(async t => { + await test_uri(t, "javascript:'x'", "error"); +}, "javascript: scheme not allowed in object"); diff --git a/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-open-movebefore-setup.html b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-open-movebefore-setup.html new file mode 100644 index 00000000000..5e90784ecab --- /dev/null +++ b/tests/wpt/tests/html/semantics/interactive-elements/the-dialog-element/dialog-open-movebefore-setup.html @@ -0,0 +1,43 @@ + +moveBefore should not re-run dialog setup steps + + + + + + + + +
+ + + + diff --git a/tests/wpt/tests/html/semantics/popovers/popover-source-crash.html b/tests/wpt/tests/html/semantics/popovers/popover-source-crash.html new file mode 100644 index 00000000000..11dcac6253f --- /dev/null +++ b/tests/wpt/tests/html/semantics/popovers/popover-source-crash.html @@ -0,0 +1,11 @@ + + + +
+
+ + diff --git a/tests/wpt/tests/infrastructure/metadata/infrastructure/assumptions/non-local-ports.sub.window.js.ini b/tests/wpt/tests/infrastructure/metadata/infrastructure/assumptions/non-local-ports.sub.window.js.ini index 36a803d3ed7..6bdc2a5b591 100644 --- a/tests/wpt/tests/infrastructure/metadata/infrastructure/assumptions/non-local-ports.sub.window.js.ini +++ b/tests/wpt/tests/infrastructure/metadata/infrastructure/assumptions/non-local-ports.sub.window.js.ini @@ -1,3 +1,5 @@ [non-local-ports.sub.window.html] [Fetch from http-public to local http fails.] - expected: FAIL + expected: + if product == "chrome": [PASS, FAIL] + if product != "chrome": FAIL diff --git a/tests/wpt/tests/lint.ignore b/tests/wpt/tests/lint.ignore index 7273ff2c059..597f692249f 100644 --- a/tests/wpt/tests/lint.ignore +++ b/tests/wpt/tests/lint.ignore @@ -667,6 +667,8 @@ AHEM SYSTEM FONT: css/css-fonts/font-size-adjust-014-ref.html AHEM SYSTEM FONT: css/css-fonts/font-size-adjust-metrics-override.html AHEM SYSTEM FONT: css/css-fonts/font-size-adjust-metrics-override-ref.html AHEM SYSTEM FONT: css/css-fonts/line-gap-override.html +AHEM SYSTEM FONT: css/css-fonts/matching/font-unicode-presented-as-emoji-outline.html +AHEM SYSTEM FONT: css/css-fonts/matching/font-unicode-presented-as-emoji-outline-ref.html AHEM SYSTEM FONT: css/css-fonts/parsing/font-size-adjust-computed.html AHEM SYSTEM FONT: css/css-fonts/size-adjust-unicode-range-system-fallback.html AHEM SYSTEM FONT: css/css-overflow/line-clamp/block-ellipsis-010.html diff --git a/tests/wpt/tests/pointerevents/pointerevent_boundary_events_modifier_no_pointer_movement.html b/tests/wpt/tests/pointerevents/pointerevent_boundary_events_modifier_no_pointer_movement.html new file mode 100644 index 00000000000..02646f07bc7 --- /dev/null +++ b/tests/wpt/tests/pointerevents/pointerevent_boundary_events_modifier_no_pointer_movement.html @@ -0,0 +1,125 @@ + + + + + + + + + +Test modifiers of pointer boundary events which are caused by a layout change + + + + + + + + + +
Initial position
+
+ + diff --git a/tests/wpt/tests/pointerevents/pointerevent_element_haspointercapture.html b/tests/wpt/tests/pointerevents/pointerevent_element_haspointercapture.html index 3db6acf8e57..d0f73a03982 100644 --- a/tests/wpt/tests/pointerevents/pointerevent_element_haspointercapture.html +++ b/tests/wpt/tests/pointerevents/pointerevent_element_haspointercapture.html @@ -3,6 +3,9 @@ Element.hasPointerCapture test + + + @@ -11,6 +14,8 @@ @@ -11,6 +14,8 @@ + + + + + + + + +
initial position
+
+ + diff --git a/tests/wpt/tests/pointerevents/pointerevent_releasepointercapture_release_right_after_capture.html b/tests/wpt/tests/pointerevents/pointerevent_releasepointercapture_release_right_after_capture.html index 409951b918a..bdae1a37a36 100644 --- a/tests/wpt/tests/pointerevents/pointerevent_releasepointercapture_release_right_after_capture.html +++ b/tests/wpt/tests/pointerevents/pointerevent_releasepointercapture_release_right_after_capture.html @@ -3,6 +3,9 @@ Release pointer capture right after setpointercapture + + + @@ -11,6 +14,8 @@ @@ -11,6 +14,8 @@ - - - - - - + + + + + - function run() { - var target0 = document.getElementById("target0"); - var target1 = document.getElementById("target1"); + - on_event(target0, "pointerdown", function (event) { - detected_pointertypes[event.pointerType] = true; - target0.setPointerCapture(event.pointerId); - }); +
+
+
- on_event(target0, "gotpointercapture", function (event) { - test_setPointerCapture.step(function () { - assert_equals(got_pointer_capture, false, "Target0 should receive gotpointercapture at the first time it captured the pointer"); - assert_equals(target0.hasPointerCapture(event.pointerId), true, "Target 0 received gotpointercapture, target0.hasPointerCapture should be true"); - }); - got_pointer_capture = true; + - - -

Pointer Event: setPointerCapture to the element which already captured the pointer

-

Test Description: - When the setPointerCapture method is invoked, if the target element had already captured the pointer, it should not trigger any gotpointercapture or lostpointercapture event -
    -
  1. Press and hold left mouse button over black box -
  2. Move mouse and release mouse button -
-

-
-
-
-
-

The following pointer types were detected: .

-
-
- - + const logged_events = [ + "pointerdown", "pointermove", "pointerup", "gotpointercapture", "lostpointercapture" + ]; + logged_events.forEach(ename => { + [target, other].forEach(div => div.addEventListener(ename, logEvent)); + }); + + target.addEventListener("pointerdown", e => { + other.setPointerCapture(e.pointerId); + }); + + const expected_events = [ + "pointerdown@target", "gotpointercapture@other", + "pointermove@other", "pointerup@other", + "lostpointercapture@other" + ]; + + promise_test(async () => { + event_log = []; + + target.addEventListener("pointermove", e => { + target.setPointerCapture(e.pointerId); + }); + + let done_click_promise = getEvent("click", done); + + let actions = new test_driver.Actions() + .addPointer("TestPointer", pointer_type) + .pointerMove(0, 0, {origin: target}) + .pointerDown() + .pointerMove(10, 10, {origin: target}) + .pointerUp() + .pointerMove(0, 0, {origin: done}) + .pointerDown() + .pointerUp(); + + await actions.send(); + await done_click_promise; + + assert_array_equals(event_log, expected_events, "events received"); + }, "A repeated setPointerCapture call does not redispatch capture events"); + + promise_test(async () => { + event_log = []; + + target.addEventListener("pointermove", e => { + try { + // Pick a non-existent random pointerId to force this call to fail. + other.setPointerCapture(e.pointerId + 4321); + } catch (error) {} + }); + + let done_click_promise = getEvent("click", done); + + let actions = new test_driver.Actions() + .addPointer("TestPointer", pointer_type) + .pointerMove(0, 0, {origin: target}) + .pointerDown() + .pointerMove(10, 10, {origin: target}) + .pointerUp() + .pointerMove(0, 0, {origin: done}) + .pointerDown() + .pointerUp(); + + await actions.send(); + await done_click_promise; + + assert_array_equals(event_log, expected_events, "events received"); + }, "A failed setPointerCapture call does not affect existing capture"); + diff --git a/tests/wpt/tests/resource-timing/resources/test-initiator.js b/tests/wpt/tests/resource-timing/resources/test-initiator.js index f839b463c56..e4b367f8a0c 100644 --- a/tests/wpt/tests/resource-timing/resources/test-initiator.js +++ b/tests/wpt/tests/resource-timing/resources/test-initiator.js @@ -1,3 +1,24 @@ +function testResourceInitiatorUrl(resourceName, expectedUrl) { + return new Promise(( resolve , reject) => { + const observer = new PerformanceObserver(list => { + const entries = list.getEntriesByType('resource'); + for (const entry of entries) { + if (entry.name.endsWith(resourceName)) { + observer.disconnect(); + assert_equals(entry.initiatorUrl, expectedUrl, `Test ${resourceName} initiatorUrl`); + resolve(); + return; + } + } + reject(resourceName + " not found"); + }); + observer.observe({type: "resource", buffered: true}); + }); +} + +// TODO(guohuideng@microsoft.com): The utility function below is used by some tests designed +// for resource IDs. Either delete them or modify them when the resource-initiator feature +// is complete. function testResourceInitiator(resourceName, expectedInitiator) { return new Promise(resolve => { const observer = new PerformanceObserver(list => { @@ -13,4 +34,4 @@ function testResourceInitiator(resourceName, expectedInitiator) { }); observer.observe({entryTypes: ['resource']}); }); -} \ No newline at end of file +} diff --git a/tests/wpt/tests/resource-timing/tentative/document-initiated.html b/tests/wpt/tests/resource-timing/tentative/document-initiated.html index eea2bb2761d..bbbd3afc9a5 100644 --- a/tests/wpt/tests/resource-timing/tentative/document-initiated.html +++ b/tests/wpt/tests/resource-timing/tentative/document-initiated.html @@ -2,11 +2,8 @@ - - - - + @@ -42,20 +39,31 @@ diff --git a/tests/wpt/tests/selection/canvas-click.html b/tests/wpt/tests/selection/canvas-click.html new file mode 100644 index 00000000000..a058a621a0e --- /dev/null +++ b/tests/wpt/tests/selection/canvas-click.html @@ -0,0 +1,28 @@ + + +Clicking on a text-selectable canvas should not select it + + + + + + + + +Clicking the green square should not select it.
+ + diff --git a/tests/wpt/tests/selection/extend-selection-in-shadow-tree.html b/tests/wpt/tests/selection/extend-selection-in-shadow-tree.html new file mode 100644 index 00000000000..f908fe824a8 --- /dev/null +++ b/tests/wpt/tests/selection/extend-selection-in-shadow-tree.html @@ -0,0 +1,26 @@ + + + + + + +
+ +
+ \ No newline at end of file diff --git a/tests/wpt/tests/selection/shadow-dom/tentative/Selection-getComposedRanges.html b/tests/wpt/tests/selection/shadow-dom/tentative/Selection-getComposedRanges.html index b433c7e415d..8c0f2bb8e15 100644 --- a/tests/wpt/tests/selection/shadow-dom/tentative/Selection-getComposedRanges.html +++ b/tests/wpt/tests/selection/shadow-dom/tentative/Selection-getComposedRanges.html @@ -17,12 +17,9 @@ test(() => { test(() => { container.innerHTML = 'hello, world'; getSelection().setBaseAndExtent(container.firstChild, 0, container.firstChild, 5); - try { + assert_throws_js(TypeError, function() { getSelection().getComposedRanges({ shadowRoots: [container] }); - assert_unreached('executed without error; want error'); - } catch (e) { - assert_equals(e.message, "Failed to execute 'getComposedRanges' on 'Selection': Failed to read the 'shadowRoots' property from 'GetComposedRangesOptions': Failed to convert value to 'ShadowRoot'."); - } + }, "Failed to execute 'getComposedRanges' on arguments which don't implment ShadowRoot interface"); }, 'getComposedRanges should fail if argument is not a shadow root'); test(() => { diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/background-image-set-image.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/background-image-set-image.html new file mode 100644 index 00000000000..a99ba5bdd78 --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/background-image-set-image.html @@ -0,0 +1,75 @@ + + +Background image-set images should be LCP candidates after soft navigation + + + + + + + +
Click!
+ + diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/cross-origin-image.sub.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/cross-origin-image.sub.html new file mode 100644 index 00000000000..78886e7b4dc --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/cross-origin-image.sub.html @@ -0,0 +1,59 @@ + + + + + Largest Contentful Paint after soft navigation: observe cross-origin images but without + renderTime. + + + + + + + + + +
Click!
+ + diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/element-only-when-fully-active.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/element-only-when-fully-active.html new file mode 100644 index 00000000000..10d0f146059 --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/element-only-when-fully-active.html @@ -0,0 +1,48 @@ + + + + + Largest Contentful Paint after soft navigation: element is only exposed for fully active + documents. + + + + + + + + +
Click!
+ + diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/expanded-image.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/expanded-image.html new file mode 100644 index 00000000000..5d47817a07c --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/expanded-image.html @@ -0,0 +1,69 @@ + + + + + Largest Contentful Paint after soft navigation: expanded image bounded by intrinsic size. + + + + + + + + + + +
Click!
+ + diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/first-paint-equals-lcp-text.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/first-paint-equals-lcp-text.html new file mode 100644 index 00000000000..ea0ceb15387 --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/first-paint-equals-lcp-text.html @@ -0,0 +1,99 @@ + + + + + LargestContentfulPaint after soft navigation compared with FirstPaint and FirstContentfulPaint on + single text page. + + + + + + + + +
Click!
+ + diff --git a/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/iframe-content-not-observed.html b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/iframe-content-not-observed.html new file mode 100644 index 00000000000..73beb752adf --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/lcp/tentative/iframe-content-not-observed.html @@ -0,0 +1,67 @@ + + + + + Largest Contentful Paint and soft navigation: do NOT observe elements from same-origin iframes + + + + + + + + +
Click!
+ + diff --git a/tests/wpt/tests/soft-navigation-heuristics/resources/images/lcp-256x256-alt-1.png b/tests/wpt/tests/soft-navigation-heuristics/resources/images/lcp-256x256-alt-1.png new file mode 100644 index 0000000000000000000000000000000000000000..44526f5aa3d999cde79de5fb4e0899cdb2b0e5af GIT binary patch literal 2146 zcmW+&YgCh07Cm1=NDT6lAT1!`TCDOYN)ZG^9$|zE2pDSvJdk2i_A)xe=5p-v~2b8b?^4wJu_E4Ydo(G z?9T8s{rU51|KQ-VvhYm@cbd5z>gsS!EOa(I*8T29@Ue!(!f%}?|8Bf{!x80$-uIew zdvYst7S4Tqz2@_>O0AzYI5FJAgrJo5DHBpxram{z24QRNY%uX|`7rbid_2wOX8OSN zV>;gr0#n!kB{BEX)^ReyxdSpBDBFy59%-f)CrT?m*@xhfl?lQ%eIMG`_XM!NqT zBe(~q>c?WChymWXstg-W)`Pr7SS!N=DO-HE=tD^pSZ;uVI8~U+V-qZ;D+39S?CZNA zu#?93plp)yHaq1Xb{&oheYbJu(^54`JSi4GaMT&>al?I2C zSd^?eHWVn&teYBwP)OtN-U8#6%~xoR>ct+geq8^4u?WPsDgj!pIYqp% zqJF>5RFvw1UpBPP(nuTG%~xj#?m;WE9?2-&FG+R5JM>aG2#!j$u?pr-z}lWMvX+lL&OCp=OmK^k^K)@#U}Fs2az#H>G+w5ZGKoSUh=RU|OhFWzd(smg)y{?xFNRunf}P|MjrRk3PkE|05)0-{ z#2AB4Mgw1wdeaN0Yv&zpfs}Yb#Q`TnO4q3{Cp{=(fpzzph<&jLIdJet#z+^%ME-{> znv%vpg%>})^YqMvS`>EcdKo}d6a3H09Ch4~}eS@gz}>UM<^tbw)b(s2jEHVugxUMa1?NbAHFTf;fK!NRgT)dyLAT1=2k))8yLujPveV=CKUZTq>44Fs+iKle zg3BB8kahg=mPTIl0yQQ7uK7zm$+ifGM7Kh;v@&r{XbY@GN6-i`socDAbrCpomL?Rz zxvbBDB{@KpOOK_4QKawC{M`@zS}nE9Uuz>kG0cL3FIz-$?hZ&~^+w8Z=yRz~InI_# z)8YG4=2xB4=P0_>IHgopgrlnTX%KCP>C2I;<^)7e5aqv4JVVKXX2tJ+KF~_Ot%EeT zKD&=+xDCfC2Qpo&)E|gzUvjp=^rx~Nj1g7Fd1~#>X(j{wqGCZ(X^6yL)(UsvhWK55 z^YgptRJ)z)n3xO~v!N25=}?uCQ@3~-#3w^0K-Pbej$zCpqmqC(zB1WK1$se^>SfIP zNYpPG4U#P#r;}DRV5M2Kj9#F~E-yYrvc?l1@4^zs)FKqdV2XOjLPGpYCtx|Kr&j)I zYA3k83nxSo&}oH{nt!PpHujuFNh2%0;QVHd3)Vd6-2Z&hIja%ia{v)WIpkD<8ma3h5}(AZy`@AAGII5x;MIPj zyb4*o35Uwdxks@A)_QU>J69W-N(s93MOWfD! SVuk-5ASfWrzu|9R<^3Pqd}0^? literal 0 HcmV?d00001 diff --git a/tests/wpt/tests/soft-navigation-heuristics/resources/images/lcp-256x256-alt-2.png b/tests/wpt/tests/soft-navigation-heuristics/resources/images/lcp-256x256-alt-2.png new file mode 100644 index 0000000000000000000000000000000000000000..bb59d9dc1baa0abe5a57c860cd64c9000ec2b18e GIT binary patch literal 3764 zcmb7{3s6&68pm&9gcO#5x&;d5Ra@NFN4j+*lxJE{Y9)!OFBHl{S|67|rLKZPNRTR} z3Y1a-MGzmwgj*tt2~V}1?$WxgqU%LjQJ}>F0^y+s!XvOJIe{kkWTw*@W?=5Q_kX_c z|NXx295UDPLu{;^tS}6-S^Zw{2N*^Jf6_3f1^5;5iF6x=v65E@zq39mQbnfEFYC4s z{-rqd=gjz4CHTq8^iS|q=DD;gZ)V2(ZWmnNcdh(-Z^U;`nl}*RtP<~@()1}8GR@Le z%JS~O6w^}^gm$D=psF9dhMyLV2$Kh|RzHZlc$F+k9*~W+#M&w*2I`4N`&)Ucx;{Bx z@Zo-;?_fjKgPj+O$!y;N>Hd}&O9fCMRLWL>|R)`jbgl)AeuLZ^D63k%kkqIHVPMCY`DB-=hw%{&lk(38^dDe zDkh))MEsT?&R<&Je;GgValUX3`|6b~xa@24%Qeen`C(gMP-uQVO8nbCJalPY&sjWo zrM=La-B7t@$C<<#lXL|A(0YVns1j*th2fBoNoBXRm7`5c7y|-jtg|RHo zM1K|Wzimaln?8Nt;Q5=k370qdRh`^fc7i;%{FZcEVT=Vw`}{8Pq^yX~^Hp8J!IE&D zz+Z6^FPD*Dt>eqe3b$Hu#vbPpH$00%c|K3h<6o}!6fO|>T{^krY$o~X0>0FzZR6?ULHpgG-6!*;~vM@GV*60}f7tVOkIpWSLXI_?1uN41ExJoFR z7}>Be$M3S!&hxqCXA85Xs~lq(oXMf@iC>O5^KE?lEAhgZBf=nC|0_*vNJnRtpH)x7= z8Vgzqd^me_8FW3`$cGv*E?~SyKJ+eMR{MB9%s-O(PiQGfxgheO%yc_l3w&Jgp{FT+ z8jrQ76UKfkfaM%|w{+I_nqNO(OtBr{CvSNAJ_-*ZuQR~@JAPa&LZohnMi>JuukCU| z6~KtyXv)J-5EuKX4CY`=PM^G@cr~d(u$_F!3p<>lDh0c2PXn zE3~Inp$g%zIRXG4gG^GqQH)Fi2! zH&Lhoy&jpY;!vP*qtiRo_oFDSrc>z5@5YoUPN0YSbp47C~X-`-E+P#=!H;Ak&Qoa2xom-ZRr0xrv_V zqWk^eCSHQH&+v^!r{NKAS|dTAc0F37s-}PiMm3u9qU)!aCUBK|=d-3jbG$^Q3?D{g z0SFifH*Un{O;MCa1Se;TR(+o`taYcXS9^+qaAO5kbvxzCqf;1tlxRj_v|Y?b{Q#Cy zt~@|tQq!4ZMgf@gDyjgCpbR9P!qcDFGYZn(&{-X`_oKupFB*^r%53ViHgSeH(hKfu zOQQ{ex|)d?v@hIm_Ra$amRPGUfW=@ldYvIT;KHGq7`%=WJ~h_uhJq-LgV$CG=IAY@ zb6>>Du^t(=cCO?NY(1^i3fq85>7^Io!t7H?30%;>u77&a@VXkbOF8(QD=<+2FZ#oU z-*um_2hy_&3=8`|dIbb@d)-V-h7bSrK7UrkV$$->JH;h?vn%=Fzfo-UN`A2X-RMLA E2X7c#bpQYW literal 0 HcmV?d00001 diff --git a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/image-src-change.html b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/image-src-change.html new file mode 100644 index 00000000000..a9bb1dc2ceb --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/image-src-change.html @@ -0,0 +1,79 @@ + + + + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prefetch/anonymous-client.https.html b/tests/wpt/tests/speculation-rules/prefetch/anonymous-client.https.html index 902724cdb0e..a371255eede 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/anonymous-client.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/anonymous-client.https.html @@ -10,7 +10,7 @@ promise_test(async t => { let agent = await spawnWindow(t); - let nextUrl = agent.getExecutorURL({ hostname: PREFETCH_PROXY_BYPASS_HOST, page: 2 }); + let nextUrl = agent.getExecutorURL({ hostname: CROSS_ORIGIN_HOST_THAT_WORKS_WITH_ACIWCO, page: 2 }); await agent.forceSinglePrefetch(nextUrl, { requires: ["anonymous-client-ip-when-cross-origin"] }); await agent.navigate(nextUrl); diff --git a/tests/wpt/tests/speculation-rules/prefetch/cross-origin-cookies-anonymous-client-ip-duplicate.https.html b/tests/wpt/tests/speculation-rules/prefetch/cross-origin-cookies-anonymous-client-ip-duplicate.https.html new file mode 100644 index 00000000000..4e793c9f04a --- /dev/null +++ b/tests/wpt/tests/speculation-rules/prefetch/cross-origin-cookies-anonymous-client-ip-duplicate.https.html @@ -0,0 +1,41 @@ + + + + + + + + + + + diff --git a/tests/wpt/tests/speculation-rules/prefetch/cross-origin-cookies.https.html b/tests/wpt/tests/speculation-rules/prefetch/cross-origin-cookies.https.html index 95c95197a70..e6785d83536 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/cross-origin-cookies.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/cross-origin-cookies.https.html @@ -6,6 +6,7 @@ + diff --git a/tests/wpt/tests/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html b/tests/wpt/tests/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html index 2687b5bf2c2..edcd83e6997 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html @@ -55,42 +55,48 @@ subsetTestByKey('afterResponse', promise_test, async t => { subsetTestByKey('waitingForResponse', promise_test, async t => { const agent = await spawnWindow(t); - const landingUrl = agent.getExecutorURL({executor: 'slow-executor.py', delay: '4', page: 2}); + const landingUrl = agent.getExecutorURL({executor: 'slow-executor.py', delay: '3', page: 2}); await agent.forceSinglePrefetch(landingUrl, {}, /*wait_for_completion=*/false); - await new Promise(resolve => t.step_timeout(resolve, 1000)); + + // Chromium, at least, will give up the prefetch if the response head doesn't + // come back within 1 second of navigation. So since the server will take + // 3 seconds to respond, we wait 2.5 seconds before navigating, to ensure the + // response comes back within about 0.5 seconds. + await new Promise(resolve => t.step_timeout(resolve, 2_500)); await agent.navigate(landingUrl); assert_prefetched(await agent.getRequestHeaders(), `${landingUrl} should have been prefetched.`); - // We should have to wait for this response. While timing is going to be - // somewhat variable here, it's probably wrong for the response to seem - // to take less than 1 second (since we only waited for 1 second). - // Regardless, these events should be normally ordered. + // Unlike the `afterResponse` test, we expect delays between `requestStart` + // and `responseStart` here. If our timing was perfect and server round-trips + // were instantaneous, that delay would be 0.5 seconds. To give ourselves a + // bit of wiggle room, instead we assert that it's at least 0.1 seconds. const [entry] = await agent.execute_script( () => performance.getEntriesByType('navigation')); - assert_less_than_equal(entry.connectEnd, entry.requestStart); - assert_less_than_equal(entry.requestStart + 1000, entry.responseStart); - assert_greater_than(entry.responseStart, 1000); + assert_less_than_equal(entry.connectEnd, entry.requestStart, "connectEnd must be before requestStart"); + assert_greater_than(entry.responseStart, entry.requestStart + 100, "responseStart must be > 100 ms after requestStart"); }, "PerformanceNavigationTiming data should show noticeable TTFB if the response is slow"); subsetTestByKey('waitingForRedirect', promise_test, async t => { const agent = await spawnWindow(t); const landingUrl = agent.getExecutorURL({page: 2}); - const slowRedirectUrl = new URL(`/common/slow-redirect.py?delay=4&location=${encodeURIComponent(landingUrl)}`, document.baseURI); + const slowRedirectUrl = new URL(`/common/slow-redirect.py?delay=3&location=${encodeURIComponent(landingUrl)}`, document.baseURI); await agent.forceSinglePrefetch(slowRedirectUrl, {}, /*wait_for_completion=*/false); - await new Promise(resolve => t.step_timeout(resolve, 1000)); + + // Considerations here are the same as for `waitingForResponse`. + await new Promise(resolve => t.step_timeout(resolve, 2_500)); await agent.navigate(slowRedirectUrl, {expectedDestinationUrl: landingUrl}); assert_prefetched(await agent.getRequestHeaders(), `${landingUrl} should have been prefetched.`); - // We should have to wait for this response. While timing is going to be - // somewhat variable here, it's probably wrong for the response to seem - // to take less than 1 second (since we only waited for 1 second). - // Regardless, these events should be normally ordered. + // As in `waitingForResponse`, we expect at least 0.1 seconds TTFB. Unlike in + // that test, the delta isn't captured by `requestStart` vs. `responseStart`, + // because these stats only measure the final request/response pair, which is + // not delayed. const [entry] = await agent.execute_script( () => performance.getEntriesByType('navigation')); - assert_less_than_equal(entry.connectEnd, entry.requestStart); - assert_less_than_equal(entry.requestStart, entry.responseStart); - assert_greater_than(entry.responseStart, 1000); + assert_less_than_equal(entry.connectEnd, entry.requestStart, "connectEnd must be before requestStart"); + assert_less_than_equal(entry.requestStart, entry.responseStart, "requestStart must be before responseStart"); + assert_greater_than(entry.connectEnd, 100, "connectEnd must be > 100 ms"); }, "PerformanceNavigationTiming data should show noticeable TTFB if the response is slow"); diff --git a/tests/wpt/tests/speculation-rules/prefetch/out-of-document-rule-set.https.html b/tests/wpt/tests/speculation-rules/prefetch/out-of-document-rule-set.https.html index b0e0253eeb7..1421ac30ee5 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/out-of-document-rule-set.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/out-of-document-rule-set.https.html @@ -4,6 +4,7 @@ + @@ -68,7 +69,7 @@ let speculation_rule_set_url = `ruleset.py?url=${executor_url}&uuid=${uuid}&page=${page}&status=${options.status}&valid_mime=${options.useValidMimeTypeForSpeculationRulesSet}&valid_json=${options.useValidJsonForSpeculationRulesSet}&empty_json=${options.useEmptySpeculationRulesSet}&fail_cors=${options.failCors}&valid_encoding=${options.useUtf8EncodingForSpeculationRulesSet}&redirect=${options.redirect}`; if (!options.useRelativeUrlForSpeculationRulesSet) { let base_url = new URL(SR_PREFETCH_UTILS_URL); - base_url.hostname = PREFETCH_PROXY_BYPASS_HOST; + base_url.hostname = get_host_info().NOTSAMESITE_HOST; speculation_rule_set_url = new URL(speculation_rule_set_url, base_url).toString(); } if (!options.useValidUrlForSpeculationRulesSet) { diff --git a/tests/wpt/tests/speculation-rules/prefetch/referrer-policy-from-rules.https.html b/tests/wpt/tests/speculation-rules/prefetch/referrer-policy-from-rules.https.html index f877bd84824..da32465a257 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/referrer-policy-from-rules.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/referrer-policy-from-rules.https.html @@ -5,6 +5,7 @@ + @@ -58,7 +59,7 @@ subsetTest(promise_test, async t => { const agent = await spawnWindow(t); await agent.setReferrerPolicy("unsafe-url"); - const nextURL = agent.getExecutorURL({ hostname: PREFETCH_PROXY_BYPASS_HOST, page: 2 }); + const nextURL = agent.getExecutorURL({ hostname: get_host_info().NOTSAMESITE_HOST, page: 2 }); await agent.forceSinglePrefetch(nextURL, { referrer_policy: "no-referrer" }); await agent.navigate(nextURL); @@ -118,7 +119,7 @@ subsetTest(promise_test, async t => { await agent.setReferrerPolicy("strict-origin"); const expectedReferrer = agent.getExecutorURL().origin + "/"; - const nextURL = agent.getExecutorURL({ hostname: PREFETCH_PROXY_BYPASS_HOST, page: 2 }); + const nextURL = agent.getExecutorURL({ hostname: get_host_info().NOTSAMESITE_HOST, page: 2 }); await agent.forceSinglePrefetch(nextURL, { referrer_policy: "unsafe-url" }); await agent.navigate(nextURL); diff --git a/tests/wpt/tests/speculation-rules/prefetch/referrer-policy-not-accepted.https.html b/tests/wpt/tests/speculation-rules/prefetch/referrer-policy-not-accepted.https.html index 8cb7388479b..24f75bb9c3c 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/referrer-policy-not-accepted.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/referrer-policy-not-accepted.https.html @@ -5,6 +5,7 @@ + @@ -38,7 +39,7 @@ subsetTest(promise_test, async t => { await agent.setReferrerPolicy("unsafe-url"); const expectedReferrer = agent.getExecutorURL().href; - const nextURL = agent.getExecutorURL({ hostname: PREFETCH_PROXY_BYPASS_HOST, page: 2 }); + const nextURL = agent.getExecutorURL({ hostname: get_host_info().NOTSAMESITE_HOST, page: 2 }); // This prefetch attempt should be ignored. await agent.forceSinglePrefetch(nextURL); await agent.navigate(nextURL); @@ -53,7 +54,7 @@ subsetTest(promise_test, async t => { await agent.setReferrerPolicy("unsafe-url"); const expectedReferrer = agent.getExecutorURL().href; - const nextURL = agent.getExecutorURL({ hostname: PREFETCH_PROXY_BYPASS_HOST, page: 2 }); + const nextURL = agent.getExecutorURL({ hostname: get_host_info().NOTSAMESITE_HOST, page: 2 }); // This prefetch attempt should be ignored. await agent.execute_script((url) => { addLink(url); diff --git a/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html b/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html index b89c45e4f5c..8e799559c12 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html +++ b/tests/wpt/tests/speculation-rules/prefetch/resources/executor.sub.html @@ -62,7 +62,7 @@ function add_link(id, url) { // "id" is the id of the link that we need to hover on in order // to start the prefetch -async function start_non_eager_prefetch_on_hover(id) { +async function start_non_immediate_prefetch_on_hover(id) { let target = document.getElementById(id); test_driver.set_test_context(window.opener); @@ -72,7 +72,7 @@ async function start_non_eager_prefetch_on_hover(id) { // "id" is the id of the link that we need to press on in order // to start the prefetch -async function start_non_eager_prefetch_on_pointerdown(id) { +async function start_non_immediate_prefetch_on_pointerdown(id) { let target = document.getElementById(id); test_driver.set_test_context(window.opener); diff --git a/tests/wpt/tests/speculation-rules/prefetch/resources/redirect-helper.sub.js b/tests/wpt/tests/speculation-rules/prefetch/resources/redirect-helper.sub.js index a17eaabe243..317a155377d 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/resources/redirect-helper.sub.js +++ b/tests/wpt/tests/speculation-rules/prefetch/resources/redirect-helper.sub.js @@ -35,10 +35,12 @@ async function prepare(t, prefetchTiming) { let prefetchInitialUrl; if (prefetchTiming === 'redirect-received-after-navigation-start') { - // Because `forceSinglePrefetch()` waits for 2 seconds, we put 4-second + // Because `forceSinglePrefetch()` waits for 2 seconds, we put 2.5-second // delay here to make the redirect response is received after `navigate()` - // below. - prefetchInitialUrl = new URL('/common/slow-redirect.py?delay=4', + // below. (In Chromium, the delay cannot go above 3 seconds, since more than + // 1 second with no response causes a timeout that falls back to + // non-prefetch.) + prefetchInitialUrl = new URL('/common/slow-redirect.py?delay=2.5', prefetchInitialOrigin); prefetchInitialUrl.searchParams.set('location', prefetchFinalUrl); } else { diff --git a/tests/wpt/tests/speculation-rules/prefetch/resources/utils.sub.js b/tests/wpt/tests/speculation-rules/prefetch/resources/utils.sub.js index dd577c00c1d..ceb5e3d06ff 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/resources/utils.sub.js +++ b/tests/wpt/tests/speculation-rules/prefetch/resources/utils.sub.js @@ -4,8 +4,15 @@ // Resolved URL to find this script. const SR_PREFETCH_UTILS_URL = new URL(document.currentScript.src, document.baseURI); -// Hostname for cross origin urls. -const PREFETCH_PROXY_BYPASS_HOST = "{{hosts[alt][]}}"; + +// If (and only if) you are writing a test that depends on +// `requires: ["anonymous-client-ip-when-cross-origin"]`, then you must use this +// host as the cross-origin host. (If you need a generic cross-origin host, use +// `get_host_info().NOTSAMESITE_HOST` or similar instead.) +// +// TODO(domenic): document in the web platform tests server infrastructure that +// such a host must exist, and possibly separate it from `{{hosts[alt][]}}`. +const CROSS_ORIGIN_HOST_THAT_WORKS_WITH_ACIWCO = "{{hosts[alt][]}}"; class PrefetchAgent extends RemoteContext { constructor(uuid, t) { @@ -178,7 +185,7 @@ function insertDocumentRule(predicate, extra_options={}) { insertSpeculationRules({ prefetch: [{ source: 'document', - eagerness: 'eager', + eagerness: 'immediate', where: predicate, ...extra_options }] diff --git a/tests/wpt/tests/speculation-rules/prefetch/user-pass.https.html b/tests/wpt/tests/speculation-rules/prefetch/user-pass.https.html index c6cc51bdb04..177c57d1b39 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/user-pass.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/user-pass.https.html @@ -4,6 +4,7 @@ + @@ -22,9 +23,9 @@ assert_equals(request_credentials.username, credentials.username); assert_equals(request_credentials.password, credentials.password); - let host = cross_origin ? { hostname: PREFETCH_PROXY_BYPASS_HOST } : {}; + let host = cross_origin ? { hostname: get_host_info().NOTSAMESITE_HOST } : {}; let nextUrl = agent.getExecutorURL({ page: 2, executor, ...host }); - await agent.forceSinglePrefetch(nextUrl, { requires: ["anonymous-client-ip-when-cross-origin"] }); + await agent.forceSinglePrefetch(nextUrl); await agent.navigate(nextUrl); let requestHeaders = await agent.getRequestHeaders(); @@ -32,14 +33,11 @@ if (cross_origin) { assert_equals(request_credentials.username, undefined); assert_equals(request_credentials.password, undefined); - - assert_prefetched_anonymous_client_ip(requestHeaders); } else { assert_equals(request_credentials.username, credentials.username); assert_equals(request_credentials.password, credentials.password); - - assert_prefetched(await agent.getRequestHeaders()); } + assert_prefetched(requestHeaders); }, "test www-authenticate basic does not forward credentials to cross-origin pages."); diff --git a/tests/wpt/tests/speculation-rules/speculation-tags/cross-site-prefetch.https.html b/tests/wpt/tests/speculation-rules/speculation-tags/cross-site-prefetch.https.html index b10aecf4035..3eb735cec96 100644 --- a/tests/wpt/tests/speculation-rules/speculation-tags/cross-site-prefetch.https.html +++ b/tests/wpt/tests/speculation-rules/speculation-tags/cross-site-prefetch.https.html @@ -5,6 +5,7 @@ + @@ -18,7 +19,7 @@ setup(() => assertSpeculationRulesIsSupported()); promise_test(async t => { const agent = await spawnWindow(t); - const nextUrl = agent.getExecutorURL({ hostname: PREFETCH_PROXY_BYPASS_HOST, page: 2 }); + const nextUrl = agent.getExecutorURL({ hostname: get_host_info().NOTSAMESITE_HOST, page: 2 }); await agent.forceSpeculationRules({ tag: 'tag1', prefetch: [{source: "list", urls: [nextUrl]}] diff --git a/tests/wpt/tests/speculation-rules/speculation-tags/cross-site-to-same-site-redirection-prefetch.https.html b/tests/wpt/tests/speculation-rules/speculation-tags/cross-site-to-same-site-redirection-prefetch.https.html index e264572c2f9..5e84d179ee9 100644 --- a/tests/wpt/tests/speculation-rules/speculation-tags/cross-site-to-same-site-redirection-prefetch.https.html +++ b/tests/wpt/tests/speculation-rules/speculation-tags/cross-site-to-same-site-redirection-prefetch.https.html @@ -5,6 +5,7 @@ + @@ -20,7 +21,7 @@ promise_test(async t => { const finalUrl = agent.getExecutorURL({ page: 2 }); const nextUrl = new URL("/common/redirect.py?location=" + encodeURIComponent(finalUrl), - agent.getExecutorURL({ hostname: PREFETCH_PROXY_BYPASS_HOST })); + agent.getExecutorURL({ hostname: get_host_info().NOTSAMESITE_HOST })); await agent.forceSpeculationRules({ tag: 'tag1', prefetch: [{source: "list", urls: [nextUrl]}] diff --git a/tests/wpt/tests/speculation-rules/speculation-tags/prefetch-eagerness-pointer-down.https.html b/tests/wpt/tests/speculation-rules/speculation-tags/prefetch-eagerness-pointer-down.https.html index cbf69cefba6..b97be0d6405 100644 --- a/tests/wpt/tests/speculation-rules/speculation-tags/prefetch-eagerness-pointer-down.https.html +++ b/tests/wpt/tests/speculation-rules/speculation-tags/prefetch-eagerness-pointer-down.https.html @@ -34,7 +34,7 @@ promise_test(async t => { }, [linkId, nextUrl]); await agent.execute_script(async (linkId) => { - await start_non_eager_prefetch_on_pointerdown(linkId); + await start_non_immediate_prefetch_on_pointerdown(linkId); }, [linkId]); await agent.navigate(nextUrl); diff --git a/tests/wpt/tests/speculation-rules/speculation-tags/prefetch-eagerness-pointer-hover.https.html b/tests/wpt/tests/speculation-rules/speculation-tags/prefetch-eagerness-pointer-hover.https.html index f5e749b9c6f..b343f24a385 100644 --- a/tests/wpt/tests/speculation-rules/speculation-tags/prefetch-eagerness-pointer-hover.https.html +++ b/tests/wpt/tests/speculation-rules/speculation-tags/prefetch-eagerness-pointer-hover.https.html @@ -34,7 +34,7 @@ promise_test(async t => { }, [linkId, nextUrl]); await agent.execute_script(async (linkId) => { - await start_non_eager_prefetch_on_hover(linkId); + await start_non_immediate_prefetch_on_hover(linkId); }, [linkId]); // TODO(crbug.com/381687257): Remove this when 0ms hover trigger is supported. diff --git a/tests/wpt/tests/speculation-rules/speculation-tags/same-site-to-cross-site-redirection-prefetch.https.html b/tests/wpt/tests/speculation-rules/speculation-tags/same-site-to-cross-site-redirection-prefetch.https.html index 27ece0cfde1..fa04055a27b 100644 --- a/tests/wpt/tests/speculation-rules/speculation-tags/same-site-to-cross-site-redirection-prefetch.https.html +++ b/tests/wpt/tests/speculation-rules/speculation-tags/same-site-to-cross-site-redirection-prefetch.https.html @@ -5,6 +5,7 @@ + @@ -18,7 +19,7 @@ setup(() => assertSpeculationRulesIsSupported()); promise_test(async t => { const agent = await spawnWindow(t); - const finalUrl = agent.getExecutorURL({ hostname: PREFETCH_PROXY_BYPASS_HOST, page: 2 }); + const finalUrl = agent.getExecutorURL({ hostname: get_host_info().NOTSAMESITE_HOST, page: 2 }); const nextUrl = new URL("/common/redirect.py?location=" + encodeURIComponent(finalUrl), document.baseURI); await agent.forceSpeculationRules({ tag: 'tag1', diff --git a/tests/wpt/tests/subresource-integrity/integrity-policy/script.https.html b/tests/wpt/tests/subresource-integrity/integrity-policy/script.https.html index 6b4d6ae2f89..c58598bf236 100644 --- a/tests/wpt/tests/subresource-integrity/integrity-policy/script.https.html +++ b/tests/wpt/tests/subresource-integrity/integrity-policy/script.https.html @@ -1,5 +1,7 @@ + + @@ -9,6 +11,8 @@ diff --git a/tests/wpt/tests/svg/shapes/rect-03.svg b/tests/wpt/tests/svg/shapes/rect-03.svg index f4b59c91b11..3562249ee11 100644 --- a/tests/wpt/tests/svg/shapes/rect-03.svg +++ b/tests/wpt/tests/svg/shapes/rect-03.svg @@ -4,6 +4,7 @@ + diff --git a/tests/wpt/tests/svg/shapes/rect-04.svg b/tests/wpt/tests/svg/shapes/rect-04.svg index 37c4c9b2ab5..f3e6d576363 100644 --- a/tests/wpt/tests/svg/shapes/rect-04.svg +++ b/tests/wpt/tests/svg/shapes/rect-04.svg @@ -4,6 +4,7 @@ + diff --git a/tests/wpt/tests/svg/shapes/reftests/pathlength-002.svg b/tests/wpt/tests/svg/shapes/reftests/pathlength-002.svg index bdae7e75f2d..5bae2564168 100644 --- a/tests/wpt/tests/svg/shapes/reftests/pathlength-002.svg +++ b/tests/wpt/tests/svg/shapes/reftests/pathlength-002.svg @@ -3,6 +3,9 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:html="http://www.w3.org/1999/xhtml"> + + + Test of 'pathLength' on shapes.