From c593e15fa85ed9f447d890422f51878eac17c034 Mon Sep 17 00:00:00 2001 From: Servo WPT Sync <32481905+servo-wpt-sync@users.noreply.github.com> Date: Sun, 30 Mar 2025 03:40:11 +0200 Subject: [PATCH] Update web-platform-tests to revision b'efce5c7cd31b0e1add4f41758504c767b56abeed' (#36222) Signed-off-by: WPT Sync Bot --- tests/wpt/meta/MANIFEST.json | 933 +++++++++++++++++- .../flex/flex-gap-decorations-001.html.ini | 2 + .../flex/flex-gap-decorations-002.html.ini | 2 + .../flex/flex-gap-decorations-003.html.ini | 2 + .../flex/flex-gap-decorations-004.html.ini | 2 + .../flex/flex-gap-decorations-005.html.ini | 2 + .../flex/flex-gap-decorations-006.html.ini | 2 + .../flex/flex-gap-decorations-007.html.ini | 2 + .../flex/flex-gap-decorations-008.html.ini | 2 + .../flex/flex-gap-decorations-009.html.ini | 2 + .../flex/flex-gap-decorations-010.html.ini | 2 + .../flex/flex-gap-decorations-011.html.ini | 2 + .../flex/flex-gap-decorations-013.html.ini | 2 + .../flex/flex-gap-decorations-014.html.ini | 2 + .../flex/flex-gap-decorations-015.html.ini | 2 + ...content-alignment-with-abspos-001.html.ini | 3 - .../gradient/gradient-infinity-001.html.ini | 2 + .../gradient/gradient-infinity-002.html.ini | 2 + ...ized-payload.tentative.https.window.js.ini | 1 - .../navigating-across-documents/009.html.ini | 3 + ...ation-unload-same-origin-fragment.html.ini | 3 - ...pushstate_too_many_calls.optional.html.ini | 3 + ...lacestate_too_many_calls.optional.html.ini | 3 + .../createImageBitmap-transfer.html.ini | 2 +- .../2d.canvas.host.size.large.html.ini | 2 + .../2d.canvas.host.size.large.worker.js.ini | 2 + ...edentialless.https.tentative.window.js.ini | 54 + ...ge-from-none.https.tentative.window.js.ini | 90 ++ ...require-corp.https.tentative.window.js.ini | 42 + ...ache-storage.https.tentative.window.js.ini | 137 --- ...-subresource-corp.tentative.https.html.ini | 13 +- ...rame_sandbox_popups_nonescaping-2.html.ini | 2 +- .../detector.https.tentative.any.js | 8 + ...ement-background-contain-hidden-crash.html | 11 + .../css/css-align/blocks/WEB_FEATURES.yml | 4 + .../css-anchor-position/anchor-css-zoom.html | 97 ++ .../anchor-size-css-zoom.html | 49 + .../reference/anchor-css-zoom-ref.html | 67 ++ .../reference/anchor-size-css-zoom-ref.html | 36 + ...verflow-hidden-invisible-anchor-crash.html | 28 + .../css/css-flexbox/flex-shorthand-calc.html | 2 +- .../gap-decorations-001-ref.html} | 0 .../flex/flex-gap-decorations-001.html | 37 + .../flex/flex-gap-decorations-002.html | 39 + .../flex/flex-gap-decorations-003-ref.html | 79 ++ .../flex/flex-gap-decorations-003.html | 49 + .../flex/flex-gap-decorations-004-ref.html | 80 ++ .../flex/flex-gap-decorations-004.html | 49 + .../flex/flex-gap-decorations-005-ref.html | 80 ++ .../flex/flex-gap-decorations-005.html | 49 + .../flex/flex-gap-decorations-006-ref.html | 65 ++ .../flex/flex-gap-decorations-006.html | 49 + .../flex/flex-gap-decorations-007-ref.html | 50 + .../flex/flex-gap-decorations-007.html | 43 + .../flex/flex-gap-decorations-008-ref.html | 63 ++ .../flex/flex-gap-decorations-008.html | 43 + .../flex/flex-gap-decorations-009-ref.html | 95 ++ .../flex/flex-gap-decorations-009.html | 53 + .../flex/flex-gap-decorations-010-ref.html | 82 ++ .../flex/flex-gap-decorations-010.html | 51 + .../flex/flex-gap-decorations-011-ref.html | 79 ++ .../flex/flex-gap-decorations-011.html | 51 + .../flex/flex-gap-decorations-013-ref.html | 79 ++ .../flex/flex-gap-decorations-013.html | 51 + .../flex/flex-gap-decorations-014-ref.html | 79 ++ .../flex/flex-gap-decorations-014.html | 51 + .../flex/flex-gap-decorations-015.html | 46 + .../grid/grid-gap-decorations-002.html | 2 +- .../gradient/gradient-infinity-001-ref.html | 25 + .../gradient/gradient-infinity-001.html | 40 + .../gradient/gradient-infinity-002-ref.html | 25 + .../gradient/gradient-infinity-002.html | 41 + ...r-gutter-with-background-gradient-ref.html | 13 + ...llbar-gutter-with-background-gradient.html | 13 + .../ruby-inlinize-fieldset-crash.html | 8 + .../tests/css/css-typed-om/WEB_FEATURES.yml | 6 + .../tests/css/css-ui/cursor-calc-hotspot.html | 24 +- .../css/css-view-transitions/WEB_FEATURES.yml | 4 + .../active-view-transition-on-non-root.html | 5 +- ...tive-view-transition-type-on-non-root.html | 5 +- .../navigation/WEB_FEATURES.yml | 3 + .../nested-root-capture-with-clip-ref.html | 1 + .../nested/nested-root-capture-with-clip.html | 7 +- .../parsing/WEB_FEATURES.yml | 4 + .../pseudo-rendering-invalidation.html | 7 +- ...tion-types-matches-case-sensitive-ref.html | 22 + ...ansition-types-matches-case-sensitive.html | 76 ++ .../scripts/playback-temporary-events.js | 2 +- .../tentative/resources/additional-bids.py | 2 +- .../tentative/resources/bidding-logic.sub.py | 2 +- .../resources/fledge_http_server_util.py | 64 +- .../fledge/tentative/resources/permissions.py | 2 +- .../resources/trusted-bidding-signals.py | 25 +- .../resources/trusted-scoring-signals.py | 15 +- ...ory_pushstate_too_many_calls.optional.html | 20 + ..._replacestate_too_many_calls.optional.html | 20 + ...m-credentialless.https.tentative.window.js | 90 ++ ...torage-from-none.https.tentative.window.js | 108 ++ ...rom-require-corp.https.tentative.window.js | 84 ++ ...ss-cache-storage.https.tentative.window.js | 150 --- ...dedicated-worker.https.tentative.window.js | 112 +-- ...ng-cache-storage-corp.tentative.https.html | 64 +- ...ting-subresource-corp.tentative.https.html | 248 ++--- ...resource-corp.tentative.https.html.headers | 1 - .../resources/common.js | 76 ++ .../resources/report.py | 42 + .../popovers/popover-focus-tabindex.html | 41 + tests/wpt/tests/resources/testdriver.js | 8 +- ...dia-captured-surface-resolution.https.html | 12 +- ...ation-trigger-getanimations.tentative.html | 68 ++ .../animation-trigger/animation-trigger.html | 16 +- .../svg/painting/reftests/WEB_FEATURES.yml | 4 + .../tests/tools/lint/tests/test_file_lints.py | 28 + tests/wpt/tests/tools/metadata/yaml/load.py | 17 +- .../wptrunner/wptrunner/executors/actions.py | 4 +- .../wptrunner/executors/executormarionette.py | 2 +- .../wptrunner/executors/executorwebdriver.py | 4 +- .../wptrunner/wptrunner/executors/protocol.py | 2 +- .../wptrunner/wptrunner/testdriver-extra.js | 4 +- .../animation-types/property-list.js | 30 + .../webrtc/rtp-stats-lifetime.https.html | 102 ++ 121 files changed, 4205 insertions(+), 714 deletions(-) create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-001.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-002.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-003.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-004.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-005.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-006.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-007.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-008.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-009.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-010.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-011.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-013.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-014.html.ini create mode 100644 tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-015.html.ini delete mode 100644 tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini create mode 100644 tests/wpt/meta/css/css-images/gradient/gradient-infinity-001.html.ini create mode 100644 tests/wpt/meta/css/css-images/gradient/gradient-infinity-002.html.ini create mode 100644 tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/009.html.ini delete mode 100644 tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini create mode 100644 tests/wpt/meta/html/browsers/history/the-history-interface/history_pushstate_too_many_calls.optional.html.ini create mode 100644 tests/wpt/meta/html/browsers/history/the-history-interface/history_replacestate_too_many_calls.optional.html.ini create mode 100644 tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini create mode 100644 tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini create mode 100644 tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.js.ini create mode 100644 tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.js.ini create mode 100644 tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.js.ini delete mode 100644 tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js.ini create mode 100644 tests/wpt/tests/css/compositing/root-element-background-contain-hidden-crash.html create mode 100644 tests/wpt/tests/css/css-align/blocks/WEB_FEATURES.yml create mode 100644 tests/wpt/tests/css/css-anchor-position/anchor-css-zoom.html create mode 100644 tests/wpt/tests/css/css-anchor-position/anchor-size-css-zoom.html create mode 100644 tests/wpt/tests/css/css-anchor-position/reference/anchor-css-zoom-ref.html create mode 100644 tests/wpt/tests/css/css-anchor-position/reference/anchor-size-css-zoom-ref.html create mode 100644 tests/wpt/tests/css/css-anchor-position/viewport-overflow-hidden-invisible-anchor-crash.html rename tests/wpt/tests/css/css-gaps/tentative/{grid/grid-gap-decorations-002-ref.html => agnostic/gap-decorations-001-ref.html} (100%) create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-001.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-002.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-003-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-003.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-004-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-004.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-005-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-005.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-006-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-006.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-007-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-007.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-008-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-008.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-009-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-009.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-010-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-010.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-011-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-011.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-013-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-013.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-014-ref.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-014.html create mode 100644 tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-015.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-infinity-001-ref.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-infinity-001.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-infinity-002-ref.html create mode 100644 tests/wpt/tests/css/css-images/gradient/gradient-infinity-002.html create mode 100644 tests/wpt/tests/css/css-overflow/scrollbar-gutter-with-background-gradient-ref.html create mode 100644 tests/wpt/tests/css/css-overflow/scrollbar-gutter-with-background-gradient.html create mode 100644 tests/wpt/tests/css/css-ruby/ruby-inlinize-fieldset-crash.html create mode 100644 tests/wpt/tests/css/css-typed-om/WEB_FEATURES.yml create mode 100644 tests/wpt/tests/css/css-view-transitions/navigation/WEB_FEATURES.yml create mode 100644 tests/wpt/tests/css/css-view-transitions/parsing/WEB_FEATURES.yml create mode 100644 tests/wpt/tests/css/css-view-transitions/view-transition-types-matches-case-sensitive-ref.html create mode 100644 tests/wpt/tests/css/css-view-transitions/view-transition-types-matches-case-sensitive.html create mode 100644 tests/wpt/tests/html/browsers/history/the-history-interface/history_pushstate_too_many_calls.optional.html create mode 100644 tests/wpt/tests/html/browsers/history/the-history-interface/history_replacestate_too_many_calls.optional.html create mode 100644 tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.js create mode 100644 tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.js create mode 100644 tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.js delete mode 100644 tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js delete mode 100644 tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.headers create mode 100644 tests/wpt/tests/html/document-isolation-policy/resources/report.py create mode 100644 tests/wpt/tests/html/semantics/popovers/popover-focus-tabindex.html create mode 100644 tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-getanimations.tentative.html create mode 100644 tests/wpt/tests/svg/painting/reftests/WEB_FEATURES.yml create mode 100644 tests/wpt/tests/webrtc/rtp-stats-lifetime.https.html diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index a84fe9adcc4..c6ce4dfd85b 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -596,6 +596,13 @@ {} ] ], + "root-element-background-contain-hidden-crash.html": [ + "da07de5bf5126d4d951f2522315991807eb09fcc", + [ + null, + {} + ] + ], "root-element-filter-background-clip-text-crash.html": [ "e12e4bb80f40e09e189f7f239486be246ea67ade", [ @@ -744,6 +751,13 @@ null, {} ] + ], + "viewport-overflow-hidden-invisible-anchor-crash.html": [ + "b2fa5255b5e891b983944c76e741e9cc291ca30c", + [ + null, + {} + ] ] }, "css-animations": { @@ -4701,6 +4715,13 @@ null, {} ] + ], + "ruby-inlinize-fieldset-crash.html": [ + "5454362077c4e01c6edd6f19f7fe7801b86a4b1b", + [ + null, + {} + ] ] }, "css-scoping": { @@ -124659,6 +124680,19 @@ {} ] ], + "anchor-css-zoom.html": [ + "2fab3f2e56241f3e303e101ac68060c09c93cf77", + [ + null, + [ + [ + "/css/css-anchor-position/reference/anchor-css-zoom-ref.html", + "==" + ] + ], + {} + ] + ], "anchor-in-css-min-max-function.html": [ "c7e56ecc159bb9ea507fe9b8dd1cb0a8b05092b7", [ @@ -125195,6 +125229,19 @@ {} ] ], + "anchor-size-css-zoom.html": [ + "7bd9b799dfebcb632915b711575322fef4285284", + [ + null, + [ + [ + "/css/css-anchor-position/reference/anchor-size-css-zoom-ref.html", + "==" + ] + ], + {} + ] + ], "position-anchor-001.html": [ "b0a964485c65ed1c8eeff89a1406bda9f4ea9b48", [ @@ -185499,6 +185546,190 @@ }, "css-gaps": { "tentative": { + "flex": { + "flex-gap-decorations-001.html": [ + "0667693f38c77e814a09930461f91956af9e3c85", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-002.html": [ + "632b690434c5f27af9b06721b4203d773097fba4", + [ + null, + [ + [ + "/css/css-gaps/tentative/agnostic/gap-decorations-001-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-003.html": [ + "effab7fee24a20936dd0cc487947693c8e87a72d", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-003-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-004.html": [ + "a5c0698e7fa3829cd515323dbb851cc55c30db7d", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-004-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-005.html": [ + "1688d447d50dbab028f0a8a82815f5661f921d53", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-005-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-006.html": [ + "3d7dbfd9fedb7513c77b7c5dce132935c8e52617", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-006-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-007.html": [ + "34853bb32062009381d7d868fcef8c99fdc9ffa8", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-007-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-008.html": [ + "bd4e73c158c1d329d7c747d69477d19c8ed6c3fd", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-008-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-009.html": [ + "6bb406c5b0155c7eb65d0117e388bad2272a6ac9", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-009-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-010.html": [ + "49f6ec962ada962ac2253b148f316df237bbf5e5", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-010-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-011.html": [ + "7b142e54ec7d0dade4d8e7b5b46a85c70ca6aa8e", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-011-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-013.html": [ + "1cdf1c2749660c9147dffc07f171f698d6a9fd2b", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-013-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-014.html": [ + "b7d19549e038ee8efad8d17065071cab00f6b7af", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-014-ref.html", + "==" + ] + ], + {} + ] + ], + "flex-gap-decorations-015.html": [ + "6cba13ba2163f3c55fd67ea9e90f41b1d8eff90a", + [ + null, + [ + [ + "/css/css-gaps/tentative/flex/flex-gap-decorations-014-ref.html", + "==" + ] + ], + {} + ] + ] + }, "grid": { "grid-gap-decorations-001.html": [ "5fe13a11bbfdb6086dfac68ef20412d6f8a87dc5", @@ -185514,12 +185745,12 @@ ] ], "grid-gap-decorations-002.html": [ - "429798d0fe762589b451d4b05aa1be6cac4aed2e", + "dfc4198b078e6fde0a40c51fac907bd1ab249b58", [ null, [ [ - "/css/css-gaps/tentative/grid/grid-gap-decorations-002-ref.html", + "/css/css-gaps/tentative/agnostic/gap-decorations-001-ref.html", "==" ] ], @@ -197882,6 +198113,32 @@ } ] ], + "gradient-infinity-001.html": [ + "73b9ac1bd1bc466fa49a822df3d0ac157e19e4e7", + [ + null, + [ + [ + "/css/css-images/gradient/gradient-infinity-001-ref.html", + "==" + ] + ], + {} + ] + ], + "gradient-infinity-002.html": [ + "0f48249259022b475354680f211c32577f7daf45", + [ + null, + [ + [ + "/css/css-images/gradient/gradient-infinity-002-ref.html", + "==" + ] + ], + {} + ] + ], "gradient-longer-hue-hsl-001.html": [ "ca5eb76c0f1be8971df228d75d34f2a8bc5f36d5", [ @@ -227254,6 +227511,35 @@ } ] ], + "scrollbar-gutter-with-background-gradient.html": [ + "0b392446c20145cda9b15922bdffc970b1321218", + [ + null, + [ + [ + "/css/css-overflow/scrollbar-gutter-with-background-gradient-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 70000 + ] + ] + ] + ] + } + ] + ], "scrollbar-large-scale-in-iframe.html": [ "1808d1dc8a97496453dfe00dc3a0b96b8b2dc184", [ @@ -302933,7 +303219,7 @@ ] ], "active-view-transition-on-non-root.html": [ - "9870b15cca958d0e7c5080cebe24c463ad7a33ca", + "d8699d3a2c7c1410cb86bcc9e4fb2a2a0e561865", [ null, [ @@ -302959,7 +303245,7 @@ ] ], "active-view-transition-type-on-non-root.html": [ - "f4225485b860b09fc0fca560fbc7f33c270dbf05", + "4569af04fff5462e57ed5f6e30de535b263a7b00", [ null, [ @@ -305708,7 +305994,7 @@ ] ], "nested-root-capture-with-clip.html": [ - "eb728182865eb5388053b0039e22d9f75f5da8f6", + "a55997a3f638a3fb6a8b701fae1ff9683da494cd", [ null, [ @@ -305728,7 +306014,7 @@ ], [ 0, - 400 + 500 ] ] ] @@ -307098,7 +307384,7 @@ ] ], "pseudo-rendering-invalidation.html": [ - "4d492c40d8761ddda3551448ce725cfbb5a82f4a", + "9624137e754eed3a46336fc8edb0d7edfc7182c4", [ null, [ @@ -308039,6 +308325,19 @@ {} ] ], + "view-transition-types-matches-case-sensitive.html": [ + "411c73c607a05734051921c858222373fe191b96", + [ + null, + [ + [ + "/css/css-view-transitions/view-transition-types-matches-case-sensitive-ref.html", + "==" + ] + ], + {} + ] + ], "view-transition-types-matches.html": [ "c84819e8c724da84ffeb949d63f6725569022435", [ @@ -411302,6 +411601,10 @@ ] }, "blocks": { + "WEB_FEATURES.yml": [ + "c5493f759563dff533cd974fd211ec49e3635046", + [] + ], "align-content-block-001-ref.html": [ "6a454d60d7689bcd3e7f028d8357032f545a19c4", [] @@ -411526,6 +411829,10 @@ [] ], "reference": { + "anchor-css-zoom-ref.html": [ + "9ec7e06aa85a0cad828cfb483bb48bbef7748bb0", + [] + ], "anchor-in-css-min-max-function-ref.html": [ "781a8ae6a2ccc838a9728005cde92111c9fe0039", [] @@ -411602,6 +411909,10 @@ "2366a7dc097e619bc6bcd4eb06e347a877c7e166", [] ], + "anchor-size-css-zoom-ref.html": [ + "a4feab487c5c9262e6c71d2f16f4bb83384cdcbe", + [] + ], "sticky-anchor-position-invalid-ref.html": [ "c4a5dd37354f61c66b0e2e53847b8fcc16112fc3", [] @@ -428018,11 +428329,59 @@ }, "css-gaps": { "tentative": { - "grid": { - "grid-gap-decorations-002-ref.html": [ + "agnostic": { + "gap-decorations-001-ref.html": [ "f21be425243208a8fd5baa7ead43313ea88fb19a", [] + ] + }, + "flex": { + "flex-gap-decorations-003-ref.html": [ + "03a815909f25638dfb8ad8aa1bebf6b95d95d000", + [] ], + "flex-gap-decorations-004-ref.html": [ + "a1f4e9d666ed9114092b277576d1057710a15db0", + [] + ], + "flex-gap-decorations-005-ref.html": [ + "020fdb1c8dbe0e5c8d5ca951a6b9cd204f65bd1d", + [] + ], + "flex-gap-decorations-006-ref.html": [ + "701d36f93bb45a41138496e0a1e7c02ba3174788", + [] + ], + "flex-gap-decorations-007-ref.html": [ + "8511c66acf4511670a0268f8bf170a883e2d3924", + [] + ], + "flex-gap-decorations-008-ref.html": [ + "8ca5749417f4eac98bbd9145f8a7cdd6bddc8cc0", + [] + ], + "flex-gap-decorations-009-ref.html": [ + "2071e3fce6029acd1f4d69099eb3642f04cad70a", + [] + ], + "flex-gap-decorations-010-ref.html": [ + "c20df7fcda147bacf350b661451b7a1dd108bcc1", + [] + ], + "flex-gap-decorations-011-ref.html": [ + "61d3e83dc2f64fea83fea38389413ee66ba4e5df", + [] + ], + "flex-gap-decorations-013-ref.html": [ + "3d999788023d13c8414796f6839ceafcd94803d5", + [] + ], + "flex-gap-decorations-014-ref.html": [ + "ab28707785e56b3ab9cdeb61dcf2e4d219dded41", + [] + ] + }, + "grid": { "grid-gap-decorations-003-ref.html": [ "15fc305633d377c286ed9d8fefc6f86aef78c467", [] @@ -430176,6 +430535,14 @@ "8b050646754406a6a03c510730574c9e24b93732", [] ], + "gradient-infinity-001-ref.html": [ + "b15e7fcae69e5d57109f08f6ba0f56e4ea0e69b2", + [] + ], + "gradient-infinity-002-ref.html": [ + "30857abd9a1532e4b9ff0e6f20ce54145e29b8a8", + [] + ], "gradient-longer-hue-hsl-001-ref.html": [ "c75fe98ec14697db74db28f7010a0599d1bc07d3", [] @@ -435495,6 +435862,10 @@ "7dbadf995ed89bc3032c4ca1b53e1cebecd6237e", [] ], + "scrollbar-gutter-with-background-gradient-ref.html": [ + "1af00bae87d0ade4e13e5ce696679da90e0b203f", + [] + ], "scrollbar-large-scale-in-iframe-ref.html": [ "38c8d0c513bf6e3763e05ea205bcbe8d6253b0ed", [] @@ -447345,6 +447716,10 @@ "a448fc800d26f26f7976bb9358251a5c392262e1", [] ], + "WEB_FEATURES.yml": [ + "13ff52f509289cb229e9559f36f464c526b2945b", + [] + ], "resources": { "testhelper.js": [ "4c9ed78c78cb905c95fc98a6d07b53beb0bccca1", @@ -449410,7 +449785,7 @@ [] ], "WEB_FEATURES.yml": [ - "e1df1b8c670205931df252d4956287277f97700d", + "cbdc654b1d6280d3eeb3d49e440b69c71eb00463", [] ], "animating-new-content-ref.html": [ @@ -449718,6 +450093,10 @@ [] ], "navigation": { + "WEB_FEATURES.yml": [ + "1b95bc2b45bbeb5535d60c0786f7f4794ab16620", + [] + ], "at-rule-opt-in-auto-ref.html": [ "be8cc501cf09a01105a8f0c89d8e47b91dd66c01", [] @@ -449901,7 +450280,7 @@ [] ], "nested-root-capture-with-clip-ref.html": [ - "0e2c7d025431898870762711a18e38150448985a", + "40275ab555c378a367a52ec81d6788923a01002a", [] ], "resources": { @@ -450119,6 +450498,12 @@ "23852cf6a7cae7868ee19a52315be1f20c47ac84", [] ], + "parsing": { + "WEB_FEATURES.yml": [ + "e011b34e2a06d5edbbdde0cf541fb86f00803644", + [] + ] + }, "pseudo-element-overflow-hidden-ref.html": [ "02bcb5bb49c09ba151b10751ad31b9ebba91bdef", [] @@ -450273,6 +450658,10 @@ "e86fa3f3e21e9a8df3a28ba9ca60332a4d1b6ab7", [] ], + "view-transition-types-matches-case-sensitive-ref.html": [ + "6a9af3f82862d0908ba9443c4adbf3b80c16f7f9", + [] + ], "view-transition-types-matches-ref.html": [ "7f697364c29f30dc18f0a94310a58fc43a409ea1", [] @@ -458592,7 +458981,7 @@ [] ], "playback-temporary-events.js": [ - "d8dac4463df42bde9cc57745f822b95b5ef7d583", + "1d81cf2607156c5c239b264f6bec420da70f4d39", [] ], "playback-temporary-expired.js": [ @@ -462023,7 +462412,7 @@ ], "resources": { "additional-bids.py": [ - "8a947533307ac553a5a16ee05fbc5de2f99dfe30", + "89a47c0e0d0d3702a33bbc3e10f811d140e2fa61", [] ], "authorize-server-response.py": [ @@ -462039,7 +462428,7 @@ [] ], "bidding-logic.sub.py": [ - "8c0539d43c83a72b57498b0ec5c4f16d2fb26599", + "97d2d80343cdd0d94925143dece2b506ef3983ca", [] ], "decision-logic.sub.py": [ @@ -462063,7 +462452,7 @@ [] ], "fledge_http_server_util.py": [ - "179262d33926896588393971f61f1cc6dfc8546d", + "30889d92d4f7ba5793ac72ed7b0dd19d2a939511", [] ], "incrementer.wasm": [ @@ -462071,7 +462460,7 @@ [] ], "permissions.py": [ - "eed93c42756b75045dd38ccc4c085059d040bf66", + "f66e28bb27ba099b0fc171fec1af9edfd884caa2", [] ], "real-time-report.py": [ @@ -462111,11 +462500,11 @@ [] ], "trusted-bidding-signals.py": [ - "5a89e3b602565170c5e5eb3427eea71c36579dbe", + "e6e7d6605258ace5564986dfa1d550316e207e1b", [] ], "trusted-scoring-signals.py": [ - "934d2e9129d04a511b44540a6d326eff4d2b75f3", + "bfd23b124cbab6cf8f3e49ed690004c085248e70", [] ], "update-url.py": [ @@ -469549,13 +469938,9 @@ "bcc6f0734d580474a8bd25f25d4662f175cdc39b", [] ], - "reporting-subresource-corp.tentative.https.html.headers": [ - "bcc6f0734d580474a8bd25f25d4662f175cdc39b", - [] - ], "resources": { "common.js": [ - "df4bfcfc7d52ac006f84f4ca046cc64b4dd7a171", + "64c1f8df416eb09115d04b9f480a65353ab0a164", [] ], "fetch-and-create-url.html": [ @@ -469578,6 +469963,10 @@ "34b4e9f8ea41fd1aed28b86715df31c1692b88aa", [] ], + "report.py": [ + "3b677a91fdda472e41fd6f1cb2ce9b8d22594b2d", + [] + ], "reporting-empty-frame-multiple-headers.html.asis": [ "5020ad39fee282b2755f020133f09a6c5058ec1f", [] @@ -491663,7 +492052,7 @@ [] ], "testdriver.js": [ - "15f3a4b7cc7412ea32c9ff8d337975039c3be2be", + "460f879878f8322ec2842803636c8585c81c4382", [] ], "testdriver.js.headers": [ @@ -497362,6 +497751,10 @@ [] ], "reftests": { + "WEB_FEATURES.yml": [ + "123f8c0419ae837dc8122c8c91198305a6852acf", + [] + ], "display-none-mask-ref.html": [ "3739265b23d22e39f2e2acdc90d94c583b36f4f9", [] @@ -498779,7 +499172,7 @@ } }, "test_file_lints.py": [ - "92270e38a69d70e6e8748aee57372ed1b2d250f4", + "f63110432939d01265482611261f463e5b49e45f", [] ], "test_lint.py": [ @@ -498963,7 +499356,7 @@ [] ], "load.py": [ - "831f7e8fff18bd37201a2ca21f4a1f8caea38258", + "c6813f23392b1ab96cebba875e6e3d9ce06c7527", [] ], "requirements.txt": [ @@ -509762,7 +510155,7 @@ [] ], "actions.py": [ - "06d58e7e87b6dc9bad8c8eddadcdb2597779b24e", + "10b5eeb6b94efcb5671ac26ddbe58584fbed248e", [] ], "asyncactions.py": [ @@ -509782,7 +510175,7 @@ [] ], "executormarionette.py": [ - "67f11aefa006996ed7a445bf87bfaf30ae4a3a0a", + "110466e47abddc8ab75b99161cba30d11988d703", [] ], "executorselenium.py": [ @@ -509798,7 +510191,7 @@ [] ], "executorwebdriver.py": [ - "d0c1f9e64a416a166b0b5e09377e6a576bc607b8", + "45ddb57c9ae25eab0bcd38a54646bcc7da7ec178", [] ], "executorwktr.py": [ @@ -509814,7 +510207,7 @@ [] ], "protocol.py": [ - "53a7b4378483e183d10532c50d26be1586a95dbe", + "5190b2664015ea2835a82129658e70c806f1dd04", [] ], "pytestrunner": { @@ -509929,7 +510322,7 @@ [] ], "testdriver-extra.js": [ - "71c1be2732f3e62f156c2d1017eee8e8111ac254", + "5d37cf5e15f47998da3294989bd4b7c87795648c", [] ], "testdriver-vendor.js": [ @@ -512903,7 +513296,7 @@ "animation-model": { "animation-types": { "property-list.js": [ - "9cfd90d17f2e95986cd3db5999447faef9a64df6", + "21f39b1fc185345f3794cb9f0f28865e10c7ceb6", [] ], "property-types.js": [ @@ -546834,7 +547227,7 @@ "ai": { "language_detection": { "detector.https.tentative.any.js": [ - "d54d0110be05b65c4f97270e53f797bdcff3f50a", + "8c02df18cbe5b154aafe9b077f2355affffdfae4", [ "ai/language_detection/detector.https.tentative.any.html", { @@ -581567,7 +581960,7 @@ ] ], "flex-shorthand-calc.html": [ - "6498988dd53b3e6f7e48f643094551121fdc28f4", + "2cbd1c20c282a194d06fe9511b2b1ab4409da62d", [ null, {} @@ -606876,7 +607269,7 @@ ] ], "cursor-calc-hotspot.html": [ - "84f9ca35b79878972d61e132857640a9f5e86fa7", + "825d9571271c06d96302faa46edcf0f2e5a4cda9", [ null, {} @@ -684270,6 +684663,13 @@ {} ] ], + "history_pushstate_too_many_calls.optional.html": [ + "4242ab488ca2cbe4b4433b1fa251bd8eb303cecf", + [ + null, + {} + ] + ], "history_pushstate_url.html": [ "cfbca35bfdfb6e29682f52d09577e6b081801f14", [ @@ -684305,6 +684705,13 @@ {} ] ], + "history_replacestate_too_many_calls.optional.html": [ + "d412983270c42fd37cf832119567013982456121", + [ + null, + {} + ] + ], "history_state.html": [ "2ee2356b1acdde48ee03bd18d644857bb9fc1062", [ @@ -713532,10 +713939,10 @@ } }, "document-isolation-policy": { - "credentialless-cache-storage.https.tentative.window.js": [ - "cb4b174e945efaf14cff897d46661971bff964f8", + "credentialless-cache-storage-from-credentialless.https.tentative.window.js": [ + "cae480526b8c2e38801e05edfbabc83dc1d62570", [ - "html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.html?dedicated_worker", + "html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.html?dedicated_worker", { "script_metadata": [ [ @@ -713570,6 +713977,10 @@ "script", "/common/dispatcher/dispatcher.js" ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], [ "script", "./resources/common.js" @@ -713579,7 +713990,7 @@ } ], [ - "html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.html?document", + "html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.html?document", { "script_metadata": [ [ @@ -713614,6 +714025,10 @@ "script", "/common/dispatcher/dispatcher.js" ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], [ "script", "./resources/common.js" @@ -713623,7 +714038,7 @@ } ], [ - "html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.html?service_worker", + "html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.html?service_worker", { "script_metadata": [ [ @@ -713658,6 +714073,10 @@ "script", "/common/dispatcher/dispatcher.js" ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], [ "script", "./resources/common.js" @@ -713667,7 +714086,7 @@ } ], [ - "html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.html?shared_worker", + "html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.html?shared_worker", { "script_metadata": [ [ @@ -713702,6 +714121,400 @@ "script", "/common/dispatcher/dispatcher.js" ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ] + ], + "credentialless-cache-storage-from-none.https.tentative.window.js": [ + "e2478abeed21ec9db89273c5c9e9665cdb71d1ba", + [ + "html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.html?dedicated_worker", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.html?document", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.html?service_worker", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.html?shared_worker", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ] + ], + "credentialless-cache-storage-from-require-corp.https.tentative.window.js": [ + "720fa6a987a164f95fd91200b574ca6569215c10", + [ + "html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.html?dedicated_worker", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.html?document", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.html?service_worker", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], + [ + "script", + "./resources/common.js" + ] + ], + "timeout": "long" + } + ], + [ + "html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.html?shared_worker", + { + "script_metadata": [ + [ + "timeout", + "long" + ], + [ + "variant", + "?document" + ], + [ + "variant", + "?dedicated_worker" + ], + [ + "variant", + "?shared_worker" + ], + [ + "variant", + "?service_worker" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], [ "script", "./resources/common.js" @@ -713764,7 +714577,7 @@ ] ], "credentialless-dedicated-worker.https.tentative.window.js": [ - "748130dfdc209bf9cfac158297e772a52851b48a", + "539ed0a6955ad06ed0571e7fcf130624e8ec86f4", [ "html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.html", { @@ -713785,6 +714598,10 @@ "script", "/common/dispatcher/dispatcher.js" ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ], [ "script", "./resources/common.js" @@ -714502,7 +715319,7 @@ ] ], "reporting-cache-storage-corp.tentative.https.html": [ - "934c87b2abc674dbb4e2f179b793497686dccca7", + "0b7c12ac514c518c04aeee214939cdfffbf8aa5b", [ null, { @@ -714511,7 +715328,7 @@ ] ], "reporting-subresource-corp.tentative.https.html": [ - "6be3c35ad7ab749f52c4cd20d348bea21dfad448", + "013eb34d1065ee7bbe274af2b5409d47a37be0bf", [ null, { @@ -730024,6 +730841,16 @@ } ] ], + "popover-focus-tabindex.html": [ + "f9c2342ba5e0956730c904476544ebab814fedb3", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], "popover-focus.html": [ "25a6c2da536355fb1ddffc4587b18acff3421c0a", [ @@ -781637,7 +782464,7 @@ ], "tentative": { "getdisplaymedia-captured-surface-resolution.https.html": [ - "a1e7997ca69707d2e3c76924aa421c041d6d2926", + "6064bced90b870b6edc04435f6ee00aedd9c7177", [ null, { @@ -782065,6 +782892,13 @@ {} ] ], + "animation-trigger-getanimations.tentative.html": [ + "08d509d8cb2fdfff7bef3ce76f010d8dc4535356", + [ + null, + {} + ] + ], "animation-trigger-once-play-state.tentative.html": [ "23c6aa8ce9f697cab4121e713556b544cb4202cf", [ @@ -782094,7 +782928,7 @@ ] ], "animation-trigger.html": [ - "dd4820dfe5fe0a964044b0d27eea153b9fbbfb3e", + "7506fb05829d8d2c84dbaf3915a9e08314302af1", [ null, {} @@ -874371,6 +875205,13 @@ {} ] ], + "rtp-stats-lifetime.https.html": [ + "4ddd6ad4f16c5432694723f4da6b68acd24e06cb", + [ + null, + {} + ] + ], "simplecall-no-ssrcs.https.html": [ "b47cd30eaf4e5db337a1fb91e34e9ede16ee5421", [ diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-001.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-001.html.ini new file mode 100644 index 00000000000..7c470f39fc1 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-001.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-002.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-002.html.ini new file mode 100644 index 00000000000..35e281db355 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-002.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-002.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-003.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-003.html.ini new file mode 100644 index 00000000000..065750a2637 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-003.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-004.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-004.html.ini new file mode 100644 index 00000000000..33a8389bbd0 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-004.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-005.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-005.html.ini new file mode 100644 index 00000000000..44a99785f78 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-005.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-005.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-006.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-006.html.ini new file mode 100644 index 00000000000..eb292ead119 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-006.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-006.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-007.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-007.html.ini new file mode 100644 index 00000000000..3886670391a --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-007.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-007.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-008.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-008.html.ini new file mode 100644 index 00000000000..e93e69af6ff --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-008.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-008.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-009.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-009.html.ini new file mode 100644 index 00000000000..dad33643f33 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-009.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-009.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-010.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-010.html.ini new file mode 100644 index 00000000000..f3e2ddf5b5f --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-010.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-010.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-011.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-011.html.ini new file mode 100644 index 00000000000..bb03468b7da --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-011.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-011.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-013.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-013.html.ini new file mode 100644 index 00000000000..e30d5b33be0 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-013.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-013.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-014.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-014.html.ini new file mode 100644 index 00000000000..324e614ac6e --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-014.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-014.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-015.html.ini b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-015.html.ini new file mode 100644 index 00000000000..7abe6f62b5a --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/tentative/flex/flex-gap-decorations-015.html.ini @@ -0,0 +1,2 @@ +[flex-gap-decorations-015.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini b/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini deleted file mode 100644 index efff2a2620a..00000000000 --- a/tests/wpt/meta/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[grid-content-alignment-with-abspos-001.html] - [.grid 1] - expected: FAIL diff --git a/tests/wpt/meta/css/css-images/gradient/gradient-infinity-001.html.ini b/tests/wpt/meta/css/css-images/gradient/gradient-infinity-001.html.ini new file mode 100644 index 00000000000..4b3a2c8ee9d --- /dev/null +++ b/tests/wpt/meta/css/css-images/gradient/gradient-infinity-001.html.ini @@ -0,0 +1,2 @@ +[gradient-infinity-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-images/gradient/gradient-infinity-002.html.ini b/tests/wpt/meta/css/css-images/gradient/gradient-infinity-002.html.ini new file mode 100644 index 00000000000..2b9dad9b029 --- /dev/null +++ b/tests/wpt/meta/css/css-images/gradient/gradient-infinity-002.html.ini @@ -0,0 +1,2 @@ +[gradient-infinity-002.html] + expected: FAIL diff --git a/tests/wpt/meta/fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.js.ini b/tests/wpt/meta/fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.js.ini index 967a5e13445..381cbb7092d 100644 --- a/tests/wpt/meta/fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.js.ini +++ b/tests/wpt/meta/fetch/fetch-later/quota/same-origin-iframe/oversized-payload.tentative.https.window.js.ini @@ -1,5 +1,4 @@ [oversized-payload.tentative.https.window.html] - expected: ERROR [fetchLater() does not accept payload[size=65537\] exceeding per-origin quota in a POST request body of String in same-origin iframe.] expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/009.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/009.html.ini new file mode 100644 index 00000000000..3fb21c9b2c6 --- /dev/null +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/009.html.ini @@ -0,0 +1,3 @@ +[009.html] + [Link with onclick form submit to javascript url with document.write and href navigation ] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini deleted file mode 100644 index 49cc2e16746..00000000000 --- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin-fragment.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[navigation-unload-same-origin-fragment.html] - [Tests that a fragment navigation in the unload handler will not block the initial navigation] - expected: FAIL diff --git a/tests/wpt/meta/html/browsers/history/the-history-interface/history_pushstate_too_many_calls.optional.html.ini b/tests/wpt/meta/html/browsers/history/the-history-interface/history_pushstate_too_many_calls.optional.html.ini new file mode 100644 index 00000000000..3a447593ff4 --- /dev/null +++ b/tests/wpt/meta/html/browsers/history/the-history-interface/history_pushstate_too_many_calls.optional.html.ini @@ -0,0 +1,3 @@ +[history_pushstate_too_many_calls.optional.html] + [history pushState too many calls] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/history/the-history-interface/history_replacestate_too_many_calls.optional.html.ini b/tests/wpt/meta/html/browsers/history/the-history-interface/history_replacestate_too_many_calls.optional.html.ini new file mode 100644 index 00000000000..afecb4e38a7 --- /dev/null +++ b/tests/wpt/meta/html/browsers/history/the-history-interface/history_replacestate_too_many_calls.optional.html.ini @@ -0,0 +1,3 @@ +[history_replacestate_too_many_calls.optional.html] + [history replaceState too many calls] + expected: FAIL diff --git a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini index 5d2657041d1..7e036a1c4e4 100644 --- a/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini +++ b/tests/wpt/meta/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer.html.ini @@ -1,5 +1,5 @@ [createImageBitmap-transfer.html] - expected: ERROR + expected: TIMEOUT [Transfer ImageBitmap created from a vector HTMLImageElement] expected: FAIL diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini new file mode 100644 index 00000000000..f6455f9bd76 --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.html.ini @@ -0,0 +1,2 @@ +[2d.canvas.host.size.large.html] + expected: CRASH diff --git a/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini new file mode 100644 index 00000000000..d571dfa4cf9 --- /dev/null +++ b/tests/wpt/meta/html/canvas/offscreen/canvas-host/2d.canvas.host.size.large.worker.js.ini @@ -0,0 +1,2 @@ +[2d.canvas.host.size.large.worker.html] + expected: CRASH diff --git a/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.js.ini b/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.js.ini new file mode 100644 index 00000000000..2814e7ce699 --- /dev/null +++ b/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.js.ini @@ -0,0 +1,54 @@ +[credentialless-cache-storage-from-credentialless.https.tentative.window.html?document] + [[document\] isolate-and-credentialless => none] + expected: FAIL + + [[document\] isolate-and-credentialless => isolate-and-credentialless] + expected: FAIL + + [[document\] isolate-and-credentialless => isolate-and-require-corp] + expected: FAIL + + [[document\] isolate-and-credentialless => isolate-and-require-corp + CORP] + expected: FAIL + + +[credentialless-cache-storage-from-credentialless.https.tentative.window.html?service_worker] + [[service_worker\] isolate-and-credentialless => none] + expected: FAIL + + [[service_worker\] isolate-and-credentialless => isolate-and-credentialless] + expected: FAIL + + [[service_worker\] isolate-and-credentialless => isolate-and-require-corp] + expected: FAIL + + [[service_worker\] isolate-and-credentialless => isolate-and-require-corp + CORP] + expected: FAIL + + +[credentialless-cache-storage-from-credentialless.https.tentative.window.html?dedicated_worker] + [[dedicated_worker\] isolate-and-credentialless => none] + expected: FAIL + + [[dedicated_worker\] isolate-and-credentialless => isolate-and-credentialless] + expected: FAIL + + [[dedicated_worker\] isolate-and-credentialless => isolate-and-require-corp] + expected: FAIL + + [[dedicated_worker\] isolate-and-credentialless => isolate-and-require-corp + CORP] + expected: FAIL + + +[credentialless-cache-storage-from-credentialless.https.tentative.window.html?shared_worker] + [[shared_worker\] isolate-and-credentialless => none] + expected: FAIL + + [[shared_worker\] isolate-and-credentialless => isolate-and-credentialless] + expected: FAIL + + [[shared_worker\] isolate-and-credentialless => isolate-and-require-corp] + expected: FAIL + + [[shared_worker\] isolate-and-credentialless => isolate-and-require-corp + CORP] + expected: FAIL diff --git a/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.js.ini b/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.js.ini new file mode 100644 index 00000000000..85857046975 --- /dev/null +++ b/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.js.ini @@ -0,0 +1,90 @@ +[credentialless-cache-storage-from-none.https.tentative.window.html?shared_worker] + [[shared_worker\] none => none] + expected: FAIL + + [[shared_worker\] none => isolate-and-credentialless] + expected: FAIL + + [[shared_worker\] none => isolate-and-credentialless (omit)] + expected: FAIL + + [[shared_worker\] none => isolate-and-credentialless + CORP] + expected: FAIL + + [[shared_worker\] none => isolate-and-require-corp] + expected: FAIL + + [[shared_worker\] none => isolate-and-require-corp (omit)] + expected: FAIL + + [[shared_worker\] none => isolate-and-require-corp + CORP] + expected: FAIL + + +[credentialless-cache-storage-from-none.https.tentative.window.html?document] + [[document\] none => none] + expected: FAIL + + [[document\] none => isolate-and-credentialless] + expected: FAIL + + [[document\] none => isolate-and-credentialless (omit)] + expected: FAIL + + [[document\] none => isolate-and-credentialless + CORP] + expected: FAIL + + [[document\] none => isolate-and-require-corp] + expected: FAIL + + [[document\] none => isolate-and-require-corp (omit)] + expected: FAIL + + [[document\] none => isolate-and-require-corp + CORP] + expected: FAIL + + +[credentialless-cache-storage-from-none.https.tentative.window.html?dedicated_worker] + [[dedicated_worker\] none => none] + expected: FAIL + + [[dedicated_worker\] none => isolate-and-credentialless] + expected: FAIL + + [[dedicated_worker\] none => isolate-and-credentialless (omit)] + expected: FAIL + + [[dedicated_worker\] none => isolate-and-credentialless + CORP] + expected: FAIL + + [[dedicated_worker\] none => isolate-and-require-corp] + expected: FAIL + + [[dedicated_worker\] none => isolate-and-require-corp (omit)] + expected: FAIL + + [[dedicated_worker\] none => isolate-and-require-corp + CORP] + expected: FAIL + + +[credentialless-cache-storage-from-none.https.tentative.window.html?service_worker] + [[service_worker\] none => none] + expected: FAIL + + [[service_worker\] none => isolate-and-credentialless] + expected: FAIL + + [[service_worker\] none => isolate-and-credentialless (omit)] + expected: FAIL + + [[service_worker\] none => isolate-and-credentialless + CORP] + expected: FAIL + + [[service_worker\] none => isolate-and-require-corp] + expected: FAIL + + [[service_worker\] none => isolate-and-require-corp (omit)] + expected: FAIL + + [[service_worker\] none => isolate-and-require-corp + CORP] + expected: FAIL diff --git a/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.js.ini b/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.js.ini new file mode 100644 index 00000000000..b116234c403 --- /dev/null +++ b/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.js.ini @@ -0,0 +1,42 @@ +[credentialless-cache-storage-from-require-corp.https.tentative.window.html?dedicated_worker] + [[dedicated_worker\] isolate-and-require-corp => none] + expected: FAIL + + [[dedicated_worker\] isolate-and-require-corp => isolate-and-credentialless] + expected: FAIL + + [[dedicated_worker\] isolate-and-require-corp => isolate-and-require-corp] + expected: FAIL + + +[credentialless-cache-storage-from-require-corp.https.tentative.window.html?document] + [[document\] isolate-and-require-corp => none] + expected: FAIL + + [[document\] isolate-and-require-corp => isolate-and-credentialless] + expected: FAIL + + [[document\] isolate-and-require-corp => isolate-and-require-corp] + expected: FAIL + + +[credentialless-cache-storage-from-require-corp.https.tentative.window.html?shared_worker] + [[shared_worker\] isolate-and-require-corp => none] + expected: FAIL + + [[shared_worker\] isolate-and-require-corp => isolate-and-credentialless] + expected: FAIL + + [[shared_worker\] isolate-and-require-corp => isolate-and-require-corp] + expected: FAIL + + +[credentialless-cache-storage-from-require-corp.https.tentative.window.html?service_worker] + [[service_worker\] isolate-and-require-corp => none] + expected: FAIL + + [[service_worker\] isolate-and-require-corp => isolate-and-credentialless] + expected: FAIL + + [[service_worker\] isolate-and-require-corp => isolate-and-require-corp] + expected: FAIL diff --git a/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js.ini b/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js.ini deleted file mode 100644 index 17902443a95..00000000000 --- a/tests/wpt/meta/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js.ini +++ /dev/null @@ -1,137 +0,0 @@ -[credentialless-cache-storage.https.tentative.window.html?document] - expected: TIMEOUT - [[document\] none => none] - expected: TIMEOUT - - [[document\] none => isolate-and-credentialless] - expected: TIMEOUT - - [[document\] none => isolate-and-credentialless (omit)] - expected: TIMEOUT - - [[document\] none => isolate-and-credentialless + CORP] - expected: TIMEOUT - - [[document\] none => isolate-and-require-corp] - expected: TIMEOUT - - [[document\] none => isolate-and-require-corp (omit)] - expected: TIMEOUT - - [[document\] none => isolate-and-require-corp + CORP] - expected: TIMEOUT - - [[document\] isolate-and-credentialless => none] - expected: TIMEOUT - - [[document\] isolate-and-credentialless => isolate-and-credentialless] - expected: TIMEOUT - - [[document\] isolate-and-credentialless => isolate-and-require-corp] - expected: TIMEOUT - - [[document\] isolate-and-credentialless => isolate-and-require-corp + CORP] - expected: TIMEOUT - - [[document\] isolate-and-require-corp => none] - expected: TIMEOUT - - [[document\] isolate-and-require-corp => isolate-and-credentialless] - expected: TIMEOUT - - [[document\] isolate-and-require-corp => isolate-and-require-corp] - expected: TIMEOUT - - -[credentialless-cache-storage.https.tentative.window.html?dedicated_worker] - expected: TIMEOUT - [[dedicated_worker\] none => none] - expected: TIMEOUT - - [[dedicated_worker\] none => isolate-and-credentialless] - expected: TIMEOUT - - [[dedicated_worker\] none => isolate-and-credentialless (omit)] - expected: TIMEOUT - - [[dedicated_worker\] none => isolate-and-credentialless + CORP] - expected: TIMEOUT - - [[dedicated_worker\] none => isolate-and-require-corp] - expected: TIMEOUT - - [[dedicated_worker\] none => isolate-and-require-corp (omit)] - expected: TIMEOUT - - [[dedicated_worker\] none => isolate-and-require-corp + CORP] - expected: TIMEOUT - - [[dedicated_worker\] isolate-and-credentialless => none] - expected: TIMEOUT - - [[dedicated_worker\] isolate-and-credentialless => isolate-and-credentialless] - expected: TIMEOUT - - [[dedicated_worker\] isolate-and-credentialless => isolate-and-require-corp] - expected: TIMEOUT - - [[dedicated_worker\] isolate-and-credentialless => isolate-and-require-corp + CORP] - expected: TIMEOUT - - [[dedicated_worker\] isolate-and-require-corp => none] - expected: TIMEOUT - - [[dedicated_worker\] isolate-and-require-corp => isolate-and-credentialless] - expected: TIMEOUT - - [[dedicated_worker\] isolate-and-require-corp => isolate-and-require-corp] - expected: TIMEOUT - - -[credentialless-cache-storage.https.tentative.window.html?service_worker] - expected: ERROR - [[service_worker\] none => none] - expected: TIMEOUT - - [[service_worker\] none => isolate-and-credentialless] - expected: TIMEOUT - - [[service_worker\] none => isolate-and-credentialless (omit)] - expected: TIMEOUT - - [[service_worker\] none => isolate-and-credentialless + CORP] - expected: TIMEOUT - - [[service_worker\] none => isolate-and-require-corp] - expected: TIMEOUT - - [[service_worker\] none => isolate-and-require-corp (omit)] - expected: TIMEOUT - - [[service_worker\] none => isolate-and-require-corp + CORP] - expected: TIMEOUT - - [[service_worker\] isolate-and-credentialless => none] - expected: TIMEOUT - - [[service_worker\] isolate-and-credentialless => isolate-and-credentialless] - expected: TIMEOUT - - [[service_worker\] isolate-and-credentialless => isolate-and-require-corp] - expected: TIMEOUT - - [[service_worker\] isolate-and-credentialless => isolate-and-require-corp + CORP] - expected: TIMEOUT - - [[service_worker\] isolate-and-require-corp => none] - expected: TIMEOUT - - [[service_worker\] isolate-and-require-corp => isolate-and-credentialless] - expected: TIMEOUT - - [[service_worker\] isolate-and-require-corp => isolate-and-require-corp] - expected: TIMEOUT - - -[credentialless-cache-storage.https.tentative.window.html?shared_worker] - expected: ERROR diff --git a/tests/wpt/meta/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.ini b/tests/wpt/meta/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.ini index e6e755c4126..7ee7b7caaaf 100644 --- a/tests/wpt/meta/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.ini +++ b/tests/wpt/meta/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.ini @@ -1,5 +1,4 @@ [reporting-subresource-corp.tentative.https.html] - expected: ERROR [[document\] blocked due to DIP] expected: FAIL @@ -9,9 +8,6 @@ [destination: script] expected: FAIL - [[dedicated worker\] same-origin] - expected: FAIL - [[dedicated worker\] blocked by CORP: same-origin] expected: FAIL @@ -44,3 +40,12 @@ [[between service worker and page\] blocked during redirect] expected: FAIL + + [[document with service worker\] same-origin] + expected: FAIL + + [[document with service worker\] blocked due to DIP] + expected: FAIL + + [[document with service worker\] blocked during redirect] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index c6f1e5d7d84..a6591b318dc 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_nonescaping-2.html] expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js b/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js index d54d0110be0..8c02df18cbe 100644 --- a/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js +++ b/tests/wpt/tests/ai/language_detection/detector.https.tentative.any.js @@ -90,3 +90,11 @@ promise_test(async t => { return detector.measureInputUsage('hello', {signal}); }); }, 'Aborting Translator.measureInputUsage().'); + +promise_test(async () => { + const expected_languages = ['en', 'es']; + const detector = await languageDetector.create({ + expectedInputLanguages: expected_languages + }); + assert_array_equals(detector.expectedInputLanguages(), expected_languages); +}, 'Creating LanguageDetector with expectedInputLanguages'); diff --git a/tests/wpt/tests/css/compositing/root-element-background-contain-hidden-crash.html b/tests/wpt/tests/css/compositing/root-element-background-contain-hidden-crash.html new file mode 100644 index 00000000000..da07de5bf51 --- /dev/null +++ b/tests/wpt/tests/css/compositing/root-element-background-contain-hidden-crash.html @@ -0,0 +1,11 @@ + + diff --git a/tests/wpt/tests/css/css-align/blocks/WEB_FEATURES.yml b/tests/wpt/tests/css/css-align/blocks/WEB_FEATURES.yml new file mode 100644 index 00000000000..c5493f75956 --- /dev/null +++ b/tests/wpt/tests/css/css-align/blocks/WEB_FEATURES.yml @@ -0,0 +1,4 @@ +features: +- name: align-content-block + files: + - align-content-block-* diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-css-zoom.html b/tests/wpt/tests/css/css-anchor-position/anchor-css-zoom.html new file mode 100644 index 00000000000..2fab3f2e562 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-css-zoom.html @@ -0,0 +1,97 @@ + + +CSS Anchor Positioning: tests that anchor() works with CSS zoom property + + + + + + + + + + +
+ +
+ + +
+ + +
+ + +
+ + +
+
+ \ No newline at end of file diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-size-css-zoom.html b/tests/wpt/tests/css/css-anchor-position/anchor-size-css-zoom.html new file mode 100644 index 00000000000..7bd9b799dfe --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/anchor-size-css-zoom.html @@ -0,0 +1,49 @@ + + +CSS Anchor Positioning: tests that anchor-size() works with CSS zoom property + + + + + + + +Test passes if no red is visible. + +
+ +
+
+
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-anchor-position/reference/anchor-css-zoom-ref.html b/tests/wpt/tests/css/css-anchor-position/reference/anchor-css-zoom-ref.html new file mode 100644 index 00000000000..9ec7e06aa85 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/reference/anchor-css-zoom-ref.html @@ -0,0 +1,67 @@ + + + + + +
+
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/tests/wpt/tests/css/css-anchor-position/reference/anchor-size-css-zoom-ref.html b/tests/wpt/tests/css/css-anchor-position/reference/anchor-size-css-zoom-ref.html new file mode 100644 index 00000000000..a4feab487c5 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/reference/anchor-size-css-zoom-ref.html @@ -0,0 +1,36 @@ + + + + +Test passes if no red is visible. + +
+
+
+
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-anchor-position/viewport-overflow-hidden-invisible-anchor-crash.html b/tests/wpt/tests/css/css-anchor-position/viewport-overflow-hidden-invisible-anchor-crash.html new file mode 100644 index 00000000000..b2fa5255b5e --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/viewport-overflow-hidden-invisible-anchor-crash.html @@ -0,0 +1,28 @@ + + + + +
+
+
+
+
diff --git a/tests/wpt/tests/css/css-flexbox/flex-shorthand-calc.html b/tests/wpt/tests/css/css-flexbox/flex-shorthand-calc.html index 6498988dd53..2cbd1c20c28 100644 --- a/tests/wpt/tests/css/css-flexbox/flex-shorthand-calc.html +++ b/tests/wpt/tests/css/css-flexbox/flex-shorthand-calc.html @@ -11,6 +11,6 @@ test_shorthand_value('flex', 'sign(1em - 1px) sibling-index()', { 'flex-grow': 'sign(1em - 1px)', 'flex-shrink': 'sibling-index()', - 'flex-basis': 'auto' + 'flex-basis': '0%' }); diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-002-ref.html b/tests/wpt/tests/css/css-gaps/tentative/agnostic/gap-decorations-001-ref.html similarity index 100% rename from tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-002-ref.html rename to tests/wpt/tests/css/css-gaps/tentative/agnostic/gap-decorations-001-ref.html diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-001.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-001.html new file mode 100644 index 00000000000..0667693f38c --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-001.html @@ -0,0 +1,37 @@ + + + CSS Gap Decorations: column and row gaps are painted. + + + + + +

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

+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-002.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-002.html new file mode 100644 index 00000000000..632b690434c --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-002.html @@ -0,0 +1,39 @@ + + + CSS Gap Decorations: flex column gaps are painted with solid styling. + + + + + +
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-003-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-003-ref.html new file mode 100644 index 00000000000..03a815909f2 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-003-ref.html @@ -0,0 +1,79 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-003.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-003.html new file mode 100644 index 00000000000..effab7fee24 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-003.html @@ -0,0 +1,49 @@ + + + CSS Gap Decorations: flex column and row gaps are painted with solid styling. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-004-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-004-ref.html new file mode 100644 index 00000000000..a1f4e9d666e --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-004-ref.html @@ -0,0 +1,80 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-004.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-004.html new file mode 100644 index 00000000000..a5c0698e7fa --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-004.html @@ -0,0 +1,49 @@ + + + CSS Gap Decorations: flex column and row gaps are painted with double styling. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-005-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-005-ref.html new file mode 100644 index 00000000000..020fdb1c8db --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-005-ref.html @@ -0,0 +1,80 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-005.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-005.html new file mode 100644 index 00000000000..1688d447d50 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-005.html @@ -0,0 +1,49 @@ + + + CSS Gap Decorations: flex column and row gaps are painted with dotted styling. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-006-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-006-ref.html new file mode 100644 index 00000000000..701d36f93bb --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-006-ref.html @@ -0,0 +1,65 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
+ +
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-006.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-006.html new file mode 100644 index 00000000000..3d7dbfd9fed --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-006.html @@ -0,0 +1,49 @@ + + + CSS Gap Decorations: flex column and row gaps are painted in vertical-lr and center aligned. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-007-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-007-ref.html new file mode 100644 index 00000000000..8511c66acf4 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-007-ref.html @@ -0,0 +1,50 @@ + + + + + +
+
One
+
Two
+
Three
+
+ +
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-007.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-007.html new file mode 100644 index 00000000000..34853bb3206 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-007.html @@ -0,0 +1,43 @@ + + + CSS Gap Decorations: flex column and row gaps are painted align-items. + + + + + + +
+
One
+
Two
+
Three
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-008-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-008-ref.html new file mode 100644 index 00000000000..8ca5749417f --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-008-ref.html @@ -0,0 +1,63 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
+ +
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-008.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-008.html new file mode 100644 index 00000000000..bd4e73c158c --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-008.html @@ -0,0 +1,43 @@ + + + CSS Gap Decorations: flex column gaps are painted on overflowing items. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-009-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-009-ref.html new file mode 100644 index 00000000000..2071e3fce60 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-009-ref.html @@ -0,0 +1,95 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
+ +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+ +
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-009.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-009.html new file mode 100644 index 00000000000..6bb406c5b01 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-009.html @@ -0,0 +1,53 @@ + + + CSS Gap Decorations: flex column and row gaps are painted with intersection rule break. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-010-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-010-ref.html new file mode 100644 index 00000000000..c20df7fcda1 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-010-ref.html @@ -0,0 +1,82 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-010.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-010.html new file mode 100644 index 00000000000..49f6ec962ad --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-010.html @@ -0,0 +1,51 @@ + + + CSS Gap Decorations: flex column and row gaps are painted with intersection column rule break. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-011-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-011-ref.html new file mode 100644 index 00000000000..61d3e83dc2f --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-011-ref.html @@ -0,0 +1,79 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-011.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-011.html new file mode 100644 index 00000000000..7b142e54ec7 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-011.html @@ -0,0 +1,51 @@ + + + CSS Gap Decorations: flex column and row gaps are painted column break intersection and 2px outset. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-013-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-013-ref.html new file mode 100644 index 00000000000..3d999788023 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-013-ref.html @@ -0,0 +1,79 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-013.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-013.html new file mode 100644 index 00000000000..1cdf1c27496 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-013.html @@ -0,0 +1,51 @@ + + + CSS Gap Decorations: flex column and row gaps are painted column break intersection and -2px outset. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-014-ref.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-014-ref.html new file mode 100644 index 00000000000..ab28707785e --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-014-ref.html @@ -0,0 +1,79 @@ + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
+ +
+
+ +
+
+
+
+ +
+
+
+
+ +
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-014.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-014.html new file mode 100644 index 00000000000..b7d19549e03 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-014.html @@ -0,0 +1,51 @@ + + + CSS Gap Decorations: flex column and row gaps are painted column break intersection and 100% outset. + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
Seven
+
Eight
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-015.html b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-015.html new file mode 100644 index 00000000000..6cba13ba216 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/tentative/flex/flex-gap-decorations-015.html @@ -0,0 +1,46 @@ + + + CSS Gap Decorations: flex column and row gaps are painted column flex direction + + + + + + +
+
One
+
Two
+
Three
+
Four
+
Five
+
Six
+
diff --git a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-002.html b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-002.html index 429798d0fe7..dfc4198b078 100644 --- a/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-002.html +++ b/tests/wpt/tests/css/css-gaps/tentative/grid/grid-gap-decorations-002.html @@ -3,7 +3,7 @@ CSS Gap Decorations: grid column gaps are painted with solid styling. - + +
+
+
+
+
+
+
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-infinity-001.html b/tests/wpt/tests/css/css-images/gradient/gradient-infinity-001.html new file mode 100644 index 00000000000..73b9ac1bd1b --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-infinity-001.html @@ -0,0 +1,40 @@ + + + + + +All the boxes below should have the lime background. + +
+
+
+
+
+
+
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-infinity-002-ref.html b/tests/wpt/tests/css/css-images/gradient/gradient-infinity-002-ref.html new file mode 100644 index 00000000000..30857abd9a1 --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-infinity-002-ref.html @@ -0,0 +1,25 @@ + + + +All boxes should have a lime background. + +
+
+
+
+
+
+
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-images/gradient/gradient-infinity-002.html b/tests/wpt/tests/css/css-images/gradient/gradient-infinity-002.html new file mode 100644 index 00000000000..0f482492590 --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/gradient-infinity-002.html @@ -0,0 +1,41 @@ + + + + + +All boxes should have a lime background. + +
+
+
+
+
+
+
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-overflow/scrollbar-gutter-with-background-gradient-ref.html b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-with-background-gradient-ref.html new file mode 100644 index 00000000000..1af00bae87d --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-with-background-gradient-ref.html @@ -0,0 +1,13 @@ + + +CSS Overflow: test scrollbar-gutter with background gradient + + + diff --git a/tests/wpt/tests/css/css-overflow/scrollbar-gutter-with-background-gradient.html b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-with-background-gradient.html new file mode 100644 index 00000000000..0b392446c20 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scrollbar-gutter-with-background-gradient.html @@ -0,0 +1,13 @@ + + +CSS Overflow: test scrollbar-gutter with background gradient + + + + + diff --git a/tests/wpt/tests/css/css-ruby/ruby-inlinize-fieldset-crash.html b/tests/wpt/tests/css/css-ruby/ruby-inlinize-fieldset-crash.html new file mode 100644 index 00000000000..5454362077c --- /dev/null +++ b/tests/wpt/tests/css/css-ruby/ruby-inlinize-fieldset-crash.html @@ -0,0 +1,8 @@ + + +crbug.com/402200344 + +
+
+
+ô6Ì9ºÍ¶æ
diff --git a/tests/wpt/tests/css/css-typed-om/WEB_FEATURES.yml b/tests/wpt/tests/css/css-typed-om/WEB_FEATURES.yml new file mode 100644 index 00000000000..13ff52f5092 --- /dev/null +++ b/tests/wpt/tests/css/css-typed-om/WEB_FEATURES.yml @@ -0,0 +1,6 @@ +features: +- name: css-typed-om + files: "**" +- name: numeric-factory-functions + files: + - factory-* diff --git a/tests/wpt/tests/css/css-ui/cursor-calc-hotspot.html b/tests/wpt/tests/css/css-ui/cursor-calc-hotspot.html index 84f9ca35b79..825d9571271 100644 --- a/tests/wpt/tests/css/css-ui/cursor-calc-hotspot.html +++ b/tests/wpt/tests/css/css-ui/cursor-calc-hotspot.html @@ -6,22 +6,38 @@
+
+
diff --git a/tests/wpt/tests/css/css-view-transitions/WEB_FEATURES.yml b/tests/wpt/tests/css/css-view-transitions/WEB_FEATURES.yml index e1df1b8c670..cbdc654b1d6 100644 --- a/tests/wpt/tests/css/css-view-transitions/WEB_FEATURES.yml +++ b/tests/wpt/tests/css/css-view-transitions/WEB_FEATURES.yml @@ -1,3 +1,7 @@ features: - name: view-transitions files: "**" +- name: view-transition-class + files: + - class-specificity.html + - pseudo-with-classes-* diff --git a/tests/wpt/tests/css/css-view-transitions/active-view-transition-on-non-root.html b/tests/wpt/tests/css/css-view-transitions/active-view-transition-on-non-root.html index 9870b15cca9..d8699d3a2c7 100644 --- a/tests/wpt/tests/css/css-view-transitions/active-view-transition-on-non-root.html +++ b/tests/wpt/tests/css/css-view-transitions/active-view-transition-on-non-root.html @@ -21,7 +21,10 @@ main:active-view-transition #target { background: red; } -::view-transition-group(*) { +::view-transition-group(*), +::view-transition-image-pair(*), +::view-transition-old(*), +::view-transition-new(*) { animation-play-state: paused; } diff --git a/tests/wpt/tests/css/css-view-transitions/active-view-transition-type-on-non-root.html b/tests/wpt/tests/css/css-view-transitions/active-view-transition-type-on-non-root.html index f4225485b86..4569af04fff 100644 --- a/tests/wpt/tests/css/css-view-transitions/active-view-transition-type-on-non-root.html +++ b/tests/wpt/tests/css/css-view-transitions/active-view-transition-type-on-non-root.html @@ -21,7 +21,10 @@ main:active-view-transition-type(type-name) #target { background: red; } -::view-transition-group(*) { +::view-transition-group(*), +::view-transition-image-pair(*), +::view-transition-old(*), +::view-transition-new(*) { animation-play-state: paused; } diff --git a/tests/wpt/tests/css/css-view-transitions/navigation/WEB_FEATURES.yml b/tests/wpt/tests/css/css-view-transitions/navigation/WEB_FEATURES.yml new file mode 100644 index 00000000000..1b95bc2b45b --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/navigation/WEB_FEATURES.yml @@ -0,0 +1,3 @@ +features: +- name: cross-document-view-transitions + files: "**" diff --git a/tests/wpt/tests/css/css-view-transitions/nested/nested-root-capture-with-clip-ref.html b/tests/wpt/tests/css/css-view-transitions/nested/nested-root-capture-with-clip-ref.html index 0e2c7d02543..40275ab555c 100644 --- a/tests/wpt/tests/css/css-view-transitions/nested/nested-root-capture-with-clip-ref.html +++ b/tests/wpt/tests/css/css-view-transitions/nested/nested-root-capture-with-clip-ref.html @@ -5,6 +5,7 @@
diff --git a/tests/wpt/tests/css/css-view-transitions/parsing/WEB_FEATURES.yml b/tests/wpt/tests/css/css-view-transitions/parsing/WEB_FEATURES.yml new file mode 100644 index 00000000000..e011b34e2a0 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/parsing/WEB_FEATURES.yml @@ -0,0 +1,4 @@ +features: +- name: view-transition-class + files: + - view-transition-class-* diff --git a/tests/wpt/tests/css/css-view-transitions/pseudo-rendering-invalidation.html b/tests/wpt/tests/css/css-view-transitions/pseudo-rendering-invalidation.html index 4d492c40d87..9624137e754 100644 --- a/tests/wpt/tests/css/css-view-transitions/pseudo-rendering-invalidation.html +++ b/tests/wpt/tests/css/css-view-transitions/pseudo-rendering-invalidation.html @@ -28,8 +28,11 @@ div { background: darkseagreen; } -::view-transition-group(*) { - animation-duration: 50s; +::view-transition-group(*), +::view-transition-image-pair(*), +::view-transition-old(*), +::view-transition-new(*) { + animation-play-state: paused; } ::view-transition { diff --git a/tests/wpt/tests/css/css-view-transitions/view-transition-types-matches-case-sensitive-ref.html b/tests/wpt/tests/css/css-view-transitions/view-transition-types-matches-case-sensitive-ref.html new file mode 100644 index 00000000000..6a9af3f8286 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/view-transition-types-matches-case-sensitive-ref.html @@ -0,0 +1,22 @@ + + + + +
+
+
+
diff --git a/tests/wpt/tests/css/css-view-transitions/view-transition-types-matches-case-sensitive.html b/tests/wpt/tests/css/css-view-transitions/view-transition-types-matches-case-sensitive.html new file mode 100644 index 00000000000..411c73c607a --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/view-transition-types-matches-case-sensitive.html @@ -0,0 +1,76 @@ + + + + +View transitions: active-view-transition-type should treat types as case-sensitive + + + + + + + + + +
+
+
+
+ + + + diff --git a/tests/wpt/tests/encrypted-media/scripts/playback-temporary-events.js b/tests/wpt/tests/encrypted-media/scripts/playback-temporary-events.js index d8dac4463df..1d81cf26071 100644 --- a/tests/wpt/tests/encrypted-media/scripts/playback-temporary-events.js +++ b/tests/wpt/tests/encrypted-media/scripts/playback-temporary-events.js @@ -111,7 +111,7 @@ function runTest(config,qualifier) { closeMethodPromise.then(onClosed); Promise.all([ closedAttributePromise, closeMethodPromise ]).then(function() { - test.step_func(onAllClosed); + test.step_func(onAllClosed)(); }).catch(onFailure); } } diff --git a/tests/wpt/tests/fledge/tentative/resources/additional-bids.py b/tests/wpt/tests/fledge/tentative/resources/additional-bids.py index 8a947533307..89a47c0e0d0 100644 --- a/tests/wpt/tests/fledge/tentative/resources/additional-bids.py +++ b/tests/wpt/tests/fledge/tentative/resources/additional-bids.py @@ -23,7 +23,7 @@ class BadRequestError(Exception): def main(request, response): try: - if fledge_http_server_util.handle_cors_headers_and_preflight(request, response): + if fledge_http_server_util.handle_cors_headers_fail_if_preflight(request, response): return # Verify that Sec-Ad-Auction-Fetch is present diff --git a/tests/wpt/tests/fledge/tentative/resources/bidding-logic.sub.py b/tests/wpt/tests/fledge/tentative/resources/bidding-logic.sub.py index 8c0539d43c8..97d2d80343c 100644 --- a/tests/wpt/tests/fledge/tentative/resources/bidding-logic.sub.py +++ b/tests/wpt/tests/fledge/tentative/resources/bidding-logic.sub.py @@ -8,7 +8,7 @@ from fledge.tentative.resources import fledge_http_server_util # injected in them. generateBid() will by default return a bid of 9 for the # first ad. def main(request, response): - if fledge_http_server_util.handle_cors_headers_and_preflight(request, response): + if fledge_http_server_util.handle_cors_headers_fail_if_preflight(request, response): return error = request.GET.first(b"error", None) diff --git a/tests/wpt/tests/fledge/tentative/resources/fledge_http_server_util.py b/tests/wpt/tests/fledge/tentative/resources/fledge_http_server_util.py index 179262d3392..30889d92d4f 100644 --- a/tests/wpt/tests/fledge/tentative/resources/fledge_http_server_util.py +++ b/tests/wpt/tests/fledge/tentative/resources/fledge_http_server_util.py @@ -2,6 +2,17 @@ from collections import namedtuple from urllib.parse import unquote_plus, urlparse +def fail(response, body): + """Sets up response to fail with the provided response body. + + Args: + response: the wptserve Response that was passed to main + body: the HTTP response body to use + """ + response.status = (400, "Bad Request") + response.headers.set(b"Content-Type", b"text/plain") + response.content = body + def headers_to_ascii(headers): """Converts a header map with binary values to one with ASCII values. @@ -22,18 +33,15 @@ def headers_to_ascii(headers): header_map[pair[0].decode("ASCII")] = values return header_map - -def handle_cors_headers_and_preflight(request, response): - """Applies CORS logic common to many entrypoints. +def attach_origin_and_credentials_headers(request, response): + """Attaches Access-Control-Allow-Origin and Access-Control-Allow-Credentials + response headers to a response, if the request indicates they're needed. + Only intended for internal use. Args: request: the wptserve Request that was passed to main response: the wptserve Response that was passed to main - - Returns True if the request is a CORS preflight, which is entirely handled by - this function, so that the calling function should immediately return. """ - # Append CORS headers if needed if b"origin" in request.headers: response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"origin")) @@ -42,20 +50,50 @@ def handle_cors_headers_and_preflight(request, response): response.headers.set(b"Access-Control-Allow-Credentials", request.headers.get(b"credentials")) +def handle_cors_headers_fail_if_preflight(request, response): + """Adds CORS headers if necessary. In the case of CORS preflights, generates + a failure response. To be used when CORS preflights are not expected. + + Args: + request: the wptserve Request that was passed to main + response: the wptserve Response that was passed to main + + Returns True if the request is a CORS preflight, in which case the calling + function should immediately return. + """ + # Handle CORS preflight requests. + if request.method == u"OPTIONS": + fail(response, "CORS preflight unexpectedly received.") + return True + + # Append CORS headers if needed + attach_origin_and_credentials_headers(request, response) + return False + +def handle_cors_headers_and_preflight(request, response): + """Applies CORS logic, either adding CORS headers to response or generating + an entire response to preflights. + + Args: + request: the wptserve Request that was passed to main + response: the wptserve Response that was passed to main + + Returns True if the request is a CORS preflight, in which case the calling + function should immediately return. + """ + # Append CORS headers if needed + attach_origin_and_credentials_headers(request, response) + # Handle CORS preflight requests. if not request.method == u"OPTIONS": return False if not b"Access-Control-Request-Method" in request.headers: - response.status = (400, b"Bad Request") - response.headers.set(b"Content-Type", b"text/plain") - response.content = "Failed to get access-control-request-method in preflight!" + fail(response, "Failed to get access-control-request-method in preflight!") return True if not b"Access-Control-Request-Headers" in request.headers: - response.status = (400, b"Bad Request") - response.headers.set(b"Content-Type", b"text/plain") - response.content = "Failed to get access-control-request-headers in preflight!" + fail(response, "Failed to get access-control-request-headers in preflight!") return True response.headers.set(b"Access-Control-Allow-Methods", diff --git a/tests/wpt/tests/fledge/tentative/resources/permissions.py b/tests/wpt/tests/fledge/tentative/resources/permissions.py index eed93c42756..f66e28bb27b 100644 --- a/tests/wpt/tests/fledge/tentative/resources/permissions.py +++ b/tests/wpt/tests/fledge/tentative/resources/permissions.py @@ -35,7 +35,7 @@ def get_permissions(request, response): - 天気の良い日 / élève: allow both join and leave - anything else (including no subdomain): returns a 404 """ - if fledge_http_server_util.handle_cors_headers_and_preflight(request, response): + if fledge_http_server_util.handle_cors_headers_fail_if_preflight(request, response): return first_domain_label = re.search(r"[^.]*", request.url_parts.netloc).group(0) diff --git a/tests/wpt/tests/fledge/tentative/resources/trusted-bidding-signals.py b/tests/wpt/tests/fledge/tentative/resources/trusted-bidding-signals.py index 5a89e3b6025..e6e7d660525 100644 --- a/tests/wpt/tests/fledge/tentative/resources/trusted-bidding-signals.py +++ b/tests/wpt/tests/fledge/tentative/resources/trusted-bidding-signals.py @@ -20,10 +20,12 @@ def main(request, response): for param in request.url_parts.query.split("&"): pair = param.split("=", 1) if len(pair) != 2: - return fail(response, "Bad query parameter: " + param) + fail(response, "Bad query parameter: " + param) + return # Browsers should escape query params consistently. if "%20" in pair[1]: - return fail(response, "Query parameter should escape using '+': " + param) + fail(response, "Query parameter should escape using '+': " + param) + return # Hostname can't be empty. The empty string can be a key or interest group name, though. if pair[0] == "hostname" and hostname == None and len(pair[1]) > 0: @@ -37,20 +39,22 @@ def main(request, response): continue if pair[0] == "slotSize" or pair[0] == "allSlotsRequestedSizes": continue - return fail(response, "Unexpected query parameter: " + param) + fail(response, "Unexpected query parameter: " + param) + return # If trusted signal keys are passed in, and one of them is "cors", - # add appropriate Access-Control-* headers to normal requests, and handle - # CORS preflights. - if keys and "cors" in keys and fledge_http_server_util.handle_cors_headers_and_preflight( + # add appropriate Access-Control-* headers to normal requests. + if keys and "cors" in keys and fledge_http_server_util.handle_cors_headers_fail_if_preflight( request, response): return # "interestGroupNames" and "hostname" are mandatory. if not hostname: - return fail(response, "hostname missing") + fail(response, "hostname missing") + return if not interestGroupNames: - return fail(response, "interestGroupNames missing") + fail(response, "interestGroupNames missing") + return response.status = (200, b"OK") @@ -153,8 +157,3 @@ def main(request, response): if body != None: return body return json.dumps(responseBody) - -def fail(response, body): - response.status = (400, "Bad Request") - response.headers.set(b"Content-Type", b"text/plain") - return body diff --git a/tests/wpt/tests/fledge/tentative/resources/trusted-scoring-signals.py b/tests/wpt/tests/fledge/tentative/resources/trusted-scoring-signals.py index 934d2e9129d..bfd23b124cb 100644 --- a/tests/wpt/tests/fledge/tentative/resources/trusted-scoring-signals.py +++ b/tests/wpt/tests/fledge/tentative/resources/trusted-scoring-signals.py @@ -13,7 +13,8 @@ def main(request, response): try: params = fledge_http_server_util.decode_trusted_scoring_signals_params(request) except ValueError as ve: - return fail(response, str(ve)) + fail(response, str(ve)) + return response.status = (200, b"OK") @@ -36,7 +37,8 @@ def main(request, response): try: signalsParams = fledge_http_server_util.decode_render_url_signals_params(renderUrl) except ValueError as ve: - return fail(response, str(ve)) + fail(response, str(ve)) + return for signalsParam in signalsParams: if signalsParam == "close-connection": @@ -92,8 +94,8 @@ def main(request, response): responseBody[urlList["type"]][renderUrl] = value # If the signalsParam embedded inside a render URL calls for CORS, add - # appropriate response headers, and fully handle preflights. - if cors and fledge_http_server_util.handle_cors_headers_and_preflight( + # appropriate response headers. + if cors and fledge_http_server_util.handle_cors_headers_fail_if_preflight( request, response): return @@ -107,8 +109,3 @@ def main(request, response): if body != None: return body return json.dumps(responseBody) - -def fail(response, body): - response.status = (400, "Bad Request") - response.headers.set(b"Content-Type", b"text/plain") - return body diff --git a/tests/wpt/tests/html/browsers/history/the-history-interface/history_pushstate_too_many_calls.optional.html b/tests/wpt/tests/html/browsers/history/the-history-interface/history_pushstate_too_many_calls.optional.html new file mode 100644 index 00000000000..4242ab488ca --- /dev/null +++ b/tests/wpt/tests/html/browsers/history/the-history-interface/history_pushstate_too_many_calls.optional.html @@ -0,0 +1,20 @@ + + + + history pushState too many calls + + + + +
+ + + diff --git a/tests/wpt/tests/html/browsers/history/the-history-interface/history_replacestate_too_many_calls.optional.html b/tests/wpt/tests/html/browsers/history/the-history-interface/history_replacestate_too_many_calls.optional.html new file mode 100644 index 00000000000..d412983270c --- /dev/null +++ b/tests/wpt/tests/html/browsers/history/the-history-interface/history_replacestate_too_many_calls.optional.html @@ -0,0 +1,20 @@ + + + + history replaceState too many calls + + + + +
+ + + diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.js new file mode 100644 index 00000000000..cae480526b8 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-credentialless.https.tentative.window.js @@ -0,0 +1,90 @@ +// META: timeout=long +// META: variant=?document +// META: variant=?dedicated_worker +// META: variant=?shared_worker +// META: variant=?service_worker +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/service-workers/service-worker/resources/test-helpers.sub.js +// META: script=./resources/common.js + +// Fetch a resource and store it into CacheStorage from |storer| context. Then +// check if it can be retrieved via CacheStorage.match from |retriever| context. +const cacheStorageTest = ( + description, + dip_storer, + dip_retriever, + resource_headers, + request_credential_mode, + expectation +) => { + promise_test(async test => { + const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + const resource_url = cross_origin + "/common/square.png?pipe=" + resource_headers; + + // Create the storer and retriever contexts. + const storage_token = await getTokenFromEnvironment(test, environment, dip_storer); + const storage_context = new RemoteContext(storage_token); + const retriever_token = await getTokenFromEnvironment(test, environment, dip_retriever); + const retriever_context = new RemoteContext(retriever_token); + + // Fetch a request from the storer. Store the opaque response into + // CacheStorage. + const stored = await storage_context.execute_script( + async (url, credential_mode) => { + const cache = await caches.open('v1'); + const fetch_request = new Request(url, { + mode: 'no-cors', + credentials: credential_mode + }); + const fetch_response = await fetch(fetch_request); + await cache.put(fetch_request, fetch_response); + return true; + }, [resource_url, request_credential_mode]); + assert_equals(stored, true); + + // Retrieved it from |retriever|. + const was_retrieved = await retriever_context.execute_script( + async (url) => { + const cache = await caches.open('v1'); + try { + const response = await cache.match(url); + return "retrieved"; + } catch (error) { + return "error"; + } + }, [resource_url]); + assert_equals(was_retrieved, expectation); + }, description); +}; + +// Execute the same set of tests for every type of execution contexts: +// Documents, DedicatedWorkers, SharedWorkers, and ServiceWorkers. The results +// should be independent of the context. +const environment = location.search.substr(1); + +cacheStorageTest(`[${environment}] isolate-and-credentialless => none`, + dip_credentialless, + dip_none, + "", + "include", + "retrieved"); +cacheStorageTest(`[${environment}] isolate-and-credentialless => isolate-and-credentialless`, + dip_credentialless, + dip_credentialless, + "", + "include", + "retrieved"); +cacheStorageTest(`[${environment}] isolate-and-credentialless => isolate-and-require-corp`, + dip_credentialless, + dip_require_corp, + "", + "include", + "error"); +cacheStorageTest(`[${environment}] isolate-and-credentialless => isolate-and-require-corp + CORP`, + dip_credentialless, + dip_require_corp, + corp_cross_origin, + "include", + "retrieved"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.js new file mode 100644 index 00000000000..e2478abeed2 --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-none.https.tentative.window.js @@ -0,0 +1,108 @@ +// META: timeout=long +// META: variant=?document +// META: variant=?dedicated_worker +// META: variant=?shared_worker +// META: variant=?service_worker +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/service-workers/service-worker/resources/test-helpers.sub.js +// META: script=./resources/common.js + +// Fetch a resource and store it into CacheStorage from |storer| context. Then +// check if it can be retrieved via CacheStorage.match from |retriever| context. +const cacheStorageTest = ( + description, + dip_storer, + dip_retriever, + resource_headers, + request_credential_mode, + expectation +) => { + promise_test(async test => { + const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + const resource_url = cross_origin + "/common/square.png?pipe=" + resource_headers; + + // Create the storer and retriever contexts. + const storage_token = await getTokenFromEnvironment(test, environment, dip_storer); + const storage_context = new RemoteContext(storage_token); + const retriever_token = await getTokenFromEnvironment(test, environment, dip_retriever); + const retriever_context = new RemoteContext(retriever_token); + + // Fetch a request from the storer. Store the opaque response into + // CacheStorage. + const stored = await storage_context.execute_script( + async (url, credential_mode) => { + const cache = await caches.open('v1'); + const fetch_request = new Request(url, { + mode: 'no-cors', + credentials: credential_mode + }); + const fetch_response = await fetch(fetch_request); + await cache.put(fetch_request, fetch_response); + return true; + }, [resource_url, request_credential_mode]); + assert_equals(stored, true); + + // Retrieved it from |retriever|. + const was_retrieved = await retriever_context.execute_script( + async (url) => { + const cache = await caches.open('v1'); + try { + const response = await cache.match(url); + return "retrieved"; + } catch (error) { + return "error"; + } + }, [resource_url]); + assert_equals(was_retrieved, expectation); + }, description); +}; + +// Execute the same set of tests for every type of execution contexts: +// Documents, DedicatedWorkers, SharedWorkers, and ServiceWorkers. The results +// should be independent of the context. +const environment = location.search.substr(1); + +cacheStorageTest(`[${environment}] none => none`, + dip_none, + dip_none, + "", + "include", + "retrieved"); +cacheStorageTest(`[${environment}] none => isolate-and-credentialless`, + dip_none, + dip_credentialless, + "", + "include", + "error"); +cacheStorageTest(`[${environment}] none => isolate-and-credentialless (omit)`, + dip_none, + dip_credentialless, + "", + "omit", + "retrieved"); +cacheStorageTest(`[${environment}] none => isolate-and-credentialless + CORP`, + dip_none, + dip_credentialless, + corp_cross_origin, + "include", + "retrieved"); +cacheStorageTest(`[${environment}] none => isolate-and-require-corp`, + dip_none, + dip_require_corp, + "", + "include", + "error"); +cacheStorageTest(`[${environment}] none => isolate-and-require-corp (omit)`, + dip_none, + dip_require_corp, + "", + "include", + "error"); +cacheStorageTest(`[${environment}] none => isolate-and-require-corp + CORP`, + dip_none, + dip_require_corp, + corp_cross_origin, + "include", + "retrieved"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.js new file mode 100644 index 00000000000..720fa6a987a --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage-from-require-corp.https.tentative.window.js @@ -0,0 +1,84 @@ +// META: timeout=long +// META: variant=?document +// META: variant=?dedicated_worker +// META: variant=?shared_worker +// META: variant=?service_worker +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/service-workers/service-worker/resources/test-helpers.sub.js +// META: script=./resources/common.js + +// Fetch a resource and store it into CacheStorage from |storer| context. Then +// check if it can be retrieved via CacheStorage.match from |retriever| context. +const cacheStorageTest = ( + description, + dip_storer, + dip_retriever, + resource_headers, + request_credential_mode, + expectation +) => { + promise_test(async test => { + const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; + const resource_url = cross_origin + "/common/square.png?pipe=" + resource_headers; + + // Create the storer and retriever contexts. + const storage_token = await getTokenFromEnvironment(test, environment, dip_storer); + const storage_context = new RemoteContext(storage_token); + const retriever_token = await getTokenFromEnvironment(test, environment, dip_retriever); + const retriever_context = new RemoteContext(retriever_token); + + // Fetch a request from the storer. Store the opaque response into + // CacheStorage. + const stored = await storage_context.execute_script( + async (url, credential_mode) => { + const cache = await caches.open('v1'); + const fetch_request = new Request(url, { + mode: 'no-cors', + credentials: credential_mode + }); + const fetch_response = await fetch(fetch_request); + await cache.put(fetch_request, fetch_response); + return true; + }, [resource_url, request_credential_mode]); + assert_equals(stored, true); + + // Retrieved it from |retriever|. + const was_retrieved = await retriever_context.execute_script( + async (url) => { + const cache = await caches.open('v1'); + try { + const response = await cache.match(url); + return "retrieved"; + } catch (error) { + return "error"; + } + }, [resource_url]); + assert_equals(was_retrieved, expectation); + }, description); +}; + +// Execute the same set of tests for every type of execution contexts: +// Documents, DedicatedWorkers, SharedWorkers, and ServiceWorkers. The results +// should be independent of the context. +const environment = location.search.substr(1); + +cacheStorageTest(`[${environment}] isolate-and-require-corp => none`, + dip_require_corp, + dip_none, + corp_cross_origin, + "include", + "retrieved"); +cacheStorageTest(`[${environment}] isolate-and-require-corp => isolate-and-credentialless`, + dip_require_corp, + dip_credentialless, + corp_cross_origin, + "include", + "retrieved"); +cacheStorageTest(`[${environment}] isolate-and-require-corp => isolate-and-require-corp`, + dip_require_corp, + dip_require_corp, + corp_cross_origin, + "include", + "retrieved"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js deleted file mode 100644 index cb4b174e945..00000000000 --- a/tests/wpt/tests/html/document-isolation-policy/credentialless-cache-storage.https.tentative.window.js +++ /dev/null @@ -1,150 +0,0 @@ -// META: timeout=long -// META: variant=?document -// META: variant=?dedicated_worker -// META: variant=?shared_worker -// META: variant=?service_worker -// META: script=/common/get-host-info.sub.js -// META: script=/common/utils.js -// META: script=/common/dispatcher/dispatcher.js -// META: script=./resources/common.js - -// Fetch a resource and store it into CacheStorage from |storer| context. Then -// check if it can be retrieved via CacheStorage.match from |retriever| context. -const cacheStorageTest = ( - description, - storer, - retriever, - resource_headers, - request_credential_mode, - expectation -) => { - promise_test_parallel(async test => { - const cross_origin = get_host_info().HTTPS_REMOTE_ORIGIN; - const url = cross_origin + "/common/square.png?pipe=" + resource_headers + - `&${token()}`; - const this_token = token(); - - // Fetch a request from |stored|. Store the opaque response into - // CacheStorage. - send(storer, ` - const cache = await caches.open("v1"); - const fetch_request = new Request("${url}", { - mode: 'no-cors', - credentials: '${request_credential_mode}' - }); - const fetch_response = await fetch(fetch_request); - await cache.put(fetch_request, fetch_response); - send("${this_token}", "stored"); - `); - assert_equals(await receive(this_token), "stored"); - - // Retrieved it from |retriever|. - send(retriever, ` - const cache = await caches.open("v1"); - try { - const response = await cache.match("${url}"); - send("${this_token}", "retrieved"); - } catch (error) { - send("${this_token}", "error"); - } - `); - assert_equals(await receive(this_token), expectation); - }, description); -}; - -// Execute the same set of tests for every type of execution contexts: -// Documents, DedicatedWorkers, SharedWorkers, and ServiceWorkers. The results -// should be independent of the context. -const environment = location.search.substr(1); -const constructor = environments[environment]; - -const context_none = constructor(coep_none)[0]; -const context_credentialless = constructor(dip_credentialless)[0]; -const context_require_corp = constructor(dip_require_corp)[0]; - -cacheStorageTest(`[${environment}] none => none`, - context_none, - context_none, - "", - "include", - "retrieved"); -cacheStorageTest(`[${environment}] none => isolate-and-credentialless`, - context_none, - context_credentialless, - "", - "include", - "error"); -cacheStorageTest(`[${environment}] none => isolate-and-credentialless (omit)`, - context_none, - context_credentialless, - "", - "omit", - "retrieved"); -cacheStorageTest(`[${environment}] none => isolate-and-credentialless + CORP`, - context_none, - context_credentialless, - corp_cross_origin, - "include", - "retrieved"); -cacheStorageTest(`[${environment}] none => isolate-and-require-corp`, - context_none, - context_require_corp, - "", - "include", - "error"); -cacheStorageTest(`[${environment}] none => isolate-and-require-corp (omit)`, - context_none, - context_require_corp, - "", - "include", - "error"); -cacheStorageTest(`[${environment}] none => isolate-and-require-corp + CORP`, - context_none, - context_require_corp, - corp_cross_origin, - "include", - "retrieved"); - -cacheStorageTest(`[${environment}] isolate-and-credentialless => none`, - context_credentialless, - context_none, - "", - "include", - "retrieved"); -cacheStorageTest(`[${environment}] isolate-and-credentialless => isolate-and-credentialless`, - context_credentialless, - context_credentialless, - "", - "include", - "retrieved"); -cacheStorageTest(`[${environment}] isolate-and-credentialless => isolate-and-require-corp`, - context_credentialless, - context_require_corp, - "", - "include", - "error"); -cacheStorageTest(`[${environment}] isolate-and-credentialless => isolate-and-require-corp + CORP`, - context_credentialless, - context_require_corp, - corp_cross_origin, - "include", - "retrieved"); - -cacheStorageTest(`[${environment}] isolate-and-require-corp => none`, - context_require_corp, - context_none, - corp_cross_origin, - "include", - "retrieved"); -cacheStorageTest(`[${environment}] isolate-and-require-corp => isolate-and-credentialless`, - context_require_corp, - context_credentialless, - corp_cross_origin, - "include", - "retrieved"); -cacheStorageTest(`[${environment}] isolate-and-require-corp => isolate-and-require-corp`, - context_require_corp, - context_require_corp, - corp_cross_origin, - "include", - "retrieved"); diff --git a/tests/wpt/tests/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js b/tests/wpt/tests/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js index 748130dfdc2..539ed0a6955 100644 --- a/tests/wpt/tests/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js +++ b/tests/wpt/tests/html/document-isolation-policy/credentialless-dedicated-worker.https.tentative.window.js @@ -2,6 +2,7 @@ // META: script=/common/get-host-info.sub.js // META: script=/common/utils.js // META: script=/common/dispatcher/dispatcher.js +// META: script=/service-workers/service-worker/resources/test-helpers.sub.js // META: script=./resources/common.js const same_origin = get_host_info().HTTPS_ORIGIN; @@ -19,112 +20,63 @@ promise_test(async test => { cookie_same_site_none), ]); - // One window with DIP:none. (control) - const w_control_token = token(); - const w_control_url = same_origin + executor_path + - coep_none + `&uuid=${w_control_token}` - const w_control = window.open(w_control_url); - add_completion_callback(() => w_control.close()); - - // One window with DIP:isolate-and-credentialless. (experiment) - const w_credentialless_token = token(); - const w_credentialless_url = same_origin + executor_path + - dip_credentialless + `&uuid=${w_credentialless_token}`; - const w_credentialless = window.open(w_credentialless_url); - add_completion_callback(() => w_credentialless.close()); - let GetCookie = (response) => { const headers_credentialless = JSON.parse(response); return parseCookies(headers_credentialless)[cookie_key]; } + async function fetchInRemoteContext(ctx, request_url) { + // The fail might fail in when a DedicatedWorker with DIP + // isolate-and-require-corp tries to fetch a cross-origin resource. Silently + // catch the error as we're only interested in whether the cookies were sent + // with the fetch in the first place. + try { + await ctx.execute_script( + async (url) => { + await fetch(url, {mode: 'no-cors', credentials: 'include'}); + }, [request_url]); + } catch(error) {} + } + const dedicatedWorkerTest = function( - description, origin, coep_for_worker, - expected_cookies_control, - expected_cookies_credentialless) { + description, origin, dip_for_worker, + expected_cookies) { promise_test_parallel(async t => { - // Create workers for both window. - const worker_token_1 = token(); - const worker_token_2 = token(); + // Create one iframe with the specified DIP isolate-and-credentialless. + // Then start a DedicatedWorker. The DedicatedWorker will inherit the DIP + // of its creator. + const worker = await createDedicatedWorkerContext(test, same_origin, dip_for_worker); + const worker_context = new RemoteContext(worker[0]); - // Used to check for errors creating the DedicatedWorker. - const worker_error = token(); + // Fetch resources with the worker. + const request_token = token(); + const request_url = showRequestHeaders(origin, request_token); - const w_worker_src_1 = same_origin + executor_worker_path + - coep_for_worker + `&uuid=${worker_token_1}`; - send(w_control_token, ` - const worker = new Worker("${w_worker_src_1}", {}); - `); - - const w_worker_src_2 = same_origin + executor_worker_path + - coep_for_worker + `&uuid=${worker_token_2}`; - send(w_credentialless_token, ` - const worker = new Worker("${w_worker_src_2}", {}); - worker.onerror = () => { - send("${worker_error}", "Worker blocked"); - } - `); - - // Fetch resources with the workers. - const request_token_1 = token(); - const request_token_2 = token(); - const request_url_1 = showRequestHeaders(origin, request_token_1); - const request_url_2 = showRequestHeaders(origin, request_token_2); - - send(worker_token_1, ` - fetch("${request_url_1}", {mode: 'no-cors', credentials: 'include'}) - `); - send(worker_token_2, ` - fetch("${request_url_2}", {mode: 'no-cors', credentials: 'include'}); - `); - - const response_control = await receive(request_token_1).then(GetCookie); - assert_equals(response_control, - expected_cookies_control, - "coep:none => "); - - const response_credentialless = await Promise.race([ - receive(worker_error), - receive(request_token_2).then(GetCookie) - ]); - assert_equals(response_credentialless, - expected_cookies_credentialless, - "coep:credentialless => "); + await fetchInRemoteContext(worker_context, request_url); + const response_worker = await receive(request_token).then(GetCookie); + assert_equals(response_worker, + expected_cookies, + "dip => "); }, `fetch ${description}`) }; dedicatedWorkerTest("same-origin + credentialless worker", same_origin, dip_credentialless, - cookie_same_origin, cookie_same_origin); dedicatedWorkerTest("same-origin + require_corp worker", same_origin, dip_require_corp, - cookie_same_origin, cookie_same_origin); - dedicatedWorkerTest("same-origin", - same_origin, dip_none, - cookie_same_origin, - "Worker blocked"); - - dedicatedWorkerTest("cross-origin", - cross_origin, dip_none, - cookie_cross_origin, - "Worker blocked" // Owner's policy is credentialless, so we can't - // create a worker with coep_none. - ); - dedicatedWorkerTest("cross-origin + credentialless worker", cross_origin, dip_credentialless, - undefined, // Worker created successfully with credentialless, and fetch doesn't get credentials undefined // Worker created successfully with credentialless, and fetch doesn't get credentials ); dedicatedWorkerTest("cross-origin + require_corp worker", cross_origin, dip_require_corp, - cookie_cross_origin, - cookie_cross_origin // The worker's policy is require_corp and doing a - // fetch within it has nothing to do with the Owner's policy. + cookie_cross_origin // The worker's policy is require_corp, so the resource will be requested with cookies + // but the load will fail because the response does not + // have CORP cross-origin. ); }) diff --git a/tests/wpt/tests/html/document-isolation-policy/reporting-cache-storage-corp.tentative.https.html b/tests/wpt/tests/html/document-isolation-policy/reporting-cache-storage-corp.tentative.https.html index 934c87b2abc..0b7c12ac514 100644 --- a/tests/wpt/tests/html/document-isolation-policy/reporting-cache-storage-corp.tentative.https.html +++ b/tests/wpt/tests/html/document-isolation-policy/reporting-cache-storage-corp.tentative.https.html @@ -8,22 +8,12 @@ + + + diff --git a/tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.headers b/tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.headers deleted file mode 100644 index bcc6f0734d5..00000000000 --- a/tests/wpt/tests/html/document-isolation-policy/reporting-subresource-corp.tentative.https.html.headers +++ /dev/null @@ -1 +0,0 @@ -Document-Isolation-Policy: isolate-and-require-corp diff --git a/tests/wpt/tests/html/document-isolation-policy/resources/common.js b/tests/wpt/tests/html/document-isolation-policy/resources/common.js index df4bfcfc7d5..64c1f8df416 100644 --- a/tests/wpt/tests/html/document-isolation-policy/resources/common.js +++ b/tests/wpt/tests/html/document-isolation-policy/resources/common.js @@ -1,5 +1,8 @@ + const executor_path = '/common/dispatcher/executor.html?pipe='; +const remote_executor_path = '/common/dispatcher/remote-executor.html?pipe='; const executor_worker_path = '/common/dispatcher/executor-worker.js?pipe='; +const remote_executor_worker_path = '/common/dispatcher/remote-executor-worker.js?pipe='; const executor_service_worker_path = '/common/dispatcher/executor-service-worker.js?pipe='; // COEP @@ -93,6 +96,79 @@ const newCredentiallessIframe = (parent_token, child_origin) => { return sub_document_token; }; +// The following functions create remote execution contexts with the matching +// origins and headers. The first return value is the uuid that can be used +// to instantiate a RemoteContext object. The second return value is the URL of +// the context that was created. +async function createIframeContext(t, origin, header) { + const uuid = token(); + const frame_url = origin + remote_executor_path + header + '&uuid=' + uuid; + const frame = await with_iframe(frame_url); + t.add_cleanup(() => frame.remove()); + return [uuid, frame_url]; +} + +async function createDedicatedWorkerContext(t, origin, header) { + const iframe_uuid = token(); + const frame_url = origin + remote_executor_path + header + '&uuid=' + iframe_uuid; + const frame = await with_iframe(frame_url); + t.add_cleanup(() => frame.remove()); + + const uuid = token(); + const worker_url = origin + remote_executor_worker_path + '&uuid=' + uuid; + const ctx = new RemoteContext(iframe_uuid); + await ctx.execute_script( + (url) => { + const worker = new Worker(url); + }, [worker_url]); + return [uuid, worker_url]; +} + +async function createSharedWorkerContext(t, origin, header) { + const uuid = token(); + const worker_url = origin + remote_executor_worker_path + header + '&uuid=' + uuid; + const worker = new SharedWorker(worker_url); + worker.addEventListener('error', t.unreached_func('Worker.onerror')); + return [uuid, worker_url]; +} + +async function createIframeWithSWContext(t, origin, header) { + // Register a service worker with no headers. + const uuid = token(); + const frame_url = origin + remote_executor_path + header + '&uuid=' + uuid; + const service_worker_url = origin + executor_service_worker_path; + const reg = await service_worker_unregister_and_register( + t, service_worker_url, frame_url); + const worker = reg.installing || reg.waiting || reg.active; + worker.addEventListener('error', t.unreached_func('Worker.onerror')); + + const frame = await with_iframe(frame_url); + t.add_cleanup(() => { + reg.unregister(); + frame.remove(); + }); + return [uuid, frame_url]; +} + +// A common interface for building the 4 type of execution contexts. Outputs the +// token needed to create the RemoteContext. +async function getTokenFromEnvironment(t, environment, headers) { + switch(environment) { + case "document": + const iframe_context = await createIframeContext(t, window.origin, headers); + return iframe_context[0]; + case "dedicated_worker": + const dedicated_worker_context = await createDedicatedWorkerContext(t, window.origin, headers); + return dedicated_worker_context[0]; + case "shared_worker": + const shared_worker_context = await createSharedWorkerContext(t, window.origin, headers); + return shared_worker_context[0]; + case "service_worker": + const sw_context = await createIframeWithSWContext(t, window.origin, headers); + return sw_context[0]; + } +} + // A common interface for building the 4 type of execution contexts: // It outputs: [ // - The token to communicate with the environment. diff --git a/tests/wpt/tests/html/document-isolation-policy/resources/report.py b/tests/wpt/tests/html/document-isolation-policy/resources/report.py new file mode 100644 index 00000000000..3b677a91fdd --- /dev/null +++ b/tests/wpt/tests/html/document-isolation-policy/resources/report.py @@ -0,0 +1,42 @@ +import json + +def main(request, response): + response.headers.set(b'Access-Control-Allow-Origin', b'*') + response.headers.set(b'Access-Control-Allow-Methods', b'OPTIONS, GET, POST') + response.headers.set(b'Access-Control-Allow-Headers', b'Content-Type') + response.headers.set(b'Cache-Control', b'no-cache, no-store, must-revalidate') + response.headers.set(b'Cross-Origin-Resource-Policy', b'cross-origin') + + # CORS preflight + if request.method == u'OPTIONS': + return u'' + + uuidMap = { + b'endpoint': b'01234567-0123-0123-0123-0123456789AB', + b'report-only-endpoint': b'01234567-0123-0123-0123-0123456789CD' + } + key = 0 + if b'endpoint' in request.GET: + key = uuidMap.get(request.GET[b'endpoint'], 0) + + if b'key' in request.GET: + key = request.GET[b'key'] + + if key == 0: + response.status = 400 + return u'invalid endpoint' + + path = u'/'.join(request.url_parts.path.split(u'/')[:-1]) + u'/' + if request.method == u'POST': + reports = request.server.stash.take(key, path) or [] + for report in json.loads(request.body): + reports.append(report) + request.server.stash.put(key, reports, path) + return u'done' + + if request.method == u'GET': + response.headers.set(b'Content-Type', b'application/json') + return json.dumps(request.server.stash.take(key, path) or []) + + response.status = 400 + return u'invalid method' diff --git a/tests/wpt/tests/html/semantics/popovers/popover-focus-tabindex.html b/tests/wpt/tests/html/semantics/popovers/popover-focus-tabindex.html new file mode 100644 index 00000000000..f9c2342ba5e --- /dev/null +++ b/tests/wpt/tests/html/semantics/popovers/popover-focus-tabindex.html @@ -0,0 +1,41 @@ + + +Popover focus behaviors + + + + + + + + + + +
+ First other focusable element + +
+ Popover with +
+ Second other focusable element +
+ diff --git a/tests/wpt/tests/resources/testdriver.js b/tests/wpt/tests/resources/testdriver.js index 15f3a4b7cc7..460f879878f 100644 --- a/tests/wpt/tests/resources/testdriver.js +++ b/tests/wpt/tests/resources/testdriver.js @@ -1437,7 +1437,7 @@ * @param {String} sample - A `virtual pressure state * `_ * such as "critical". - * @param {number} estimate - Optional, A `virtual own contribution estimate` + * @param {number} own_contribution_estimate - Optional, A `virtual own contribution estimate` * `_ * @param {WindowProxy} [context=null] - Browsing context in which to * run the call, or null for the @@ -1449,8 +1449,8 @@ * virtual pressure source of the given type does not * exist). */ - update_virtual_pressure_source: function(source_type, sample, estimate, context=null) { - return window.test_driver_internal.update_virtual_pressure_source(source_type, sample, estimate, context); + update_virtual_pressure_source: function(source_type, sample, own_contribution_estimate, context=null) { + return window.test_driver_internal.update_virtual_pressure_source(source_type, sample, own_contribution_estimate, context); }, /** @@ -1748,7 +1748,7 @@ throw new Error("create_virtual_pressure_source() is not implemented by testdriver-vendor.js"); }, - async update_virtual_pressure_source(source_type, sample, estimate, context=null) { + async update_virtual_pressure_source(source_type, sample, own_contribution_estimate, context=null) { throw new Error("update_virtual_pressure_source() is not implemented by testdriver-vendor.js"); }, diff --git a/tests/wpt/tests/screen-capture/tentative/getdisplaymedia-captured-surface-resolution.https.html b/tests/wpt/tests/screen-capture/tentative/getdisplaymedia-captured-surface-resolution.https.html index a1e7997ca69..6064bced90b 100644 --- a/tests/wpt/tests/screen-capture/tentative/getdisplaymedia-captured-surface-resolution.https.html +++ b/tests/wpt/tests/screen-capture/tentative/getdisplaymedia-captured-surface-resolution.https.html @@ -39,7 +39,7 @@ assert_greater_than(settings.physicalHeight, 0); assert_equals(settings.physicalWidth / screenDetails.screens[0].devicePixelRatio, settings.logicalWidth); assert_equals(settings.physicalHeight / screenDetails.screens[0].devicePixelRatio, settings.logicalHeight); - assert_equals(screenDetails.screens[0].devicePixelRatio, settings.pixelRatio); + assert_equals(screenDetails.screens[0].devicePixelRatio, settings.screenPixelRatio); assert_equals(capabilities.width.max, settings.physicalWidth); assert_equals(capabilities.height.max, settings.physicalHeight); }; @@ -64,7 +64,7 @@ assert_greater_than(settings.physicalHeight, 0); assert_equals(settings.physicalWidth / screenDetails.screens[0].devicePixelRatio, settings.logicalWidth); assert_equals(settings.physicalHeight / screenDetails.screens[0].devicePixelRatio, settings.logicalHeight); - assert_equals(screenDetails.screens[0].devicePixelRatio, settings.pixelRatio); + assert_equals(screenDetails.screens[0].devicePixelRatio, settings.screenPixelRatio); assert_equals(capabilities.width.max, settings.physicalWidth); assert_equals(capabilities.height.max, settings.physicalHeight); }; @@ -87,7 +87,7 @@ assert_greater_than(settings.physicalHeight, 0); assert_equals(settings.physicalWidth / window.devicePixelRatio, settings.logicalWidth); assert_equals(settings.physicalHeight / window.devicePixelRatio, settings.logicalHeight); - assert_equals(window.devicePixelRatio, settings.pixelRatio); + assert_equals(window.devicePixelRatio, settings.screenPixelRatio); assert_equals(capabilities.width.max, settings.physicalWidth); assert_equals(capabilities.height.max, settings.physicalHeight); }; @@ -123,7 +123,7 @@ assert_equals(oldPhysicalHeight, settings.physicalHeight); assert_equals(oldPhysicalWidth / screenDetails.screens[0].devicePixelRatio, settings.logicalWidth); assert_equals(oldPhysicalHeight / screenDetails.screens[0].devicePixelRatio, settings.logicalHeight); - assert_equals(screenDetails.screens[0].devicePixelRatio, settings.pixelRatio); + assert_equals(screenDetails.screens[0].devicePixelRatio, settings.screenPixelRatio); assert_equals(capabilities.width.max, settings.physicalWidth); assert_equals(capabilities.height.max, settings.physicalHeight); }; @@ -159,7 +159,7 @@ assert_equals(oldPhysicalHeight, settings.physicalHeight); assert_equals(oldPhysicalWidth / screenDetails.screens[0].devicePixelRatio, settings.logicalWidth); assert_equals(oldPhysicalHeight / screenDetails.screens[0].devicePixelRatio, settings.logicalHeight); - assert_equals(screenDetails.screens[0].devicePixelRatio, settings.pixelRatio); + assert_equals(screenDetails.screens[0].devicePixelRatio, settings.screenPixelRatio); assert_equals(capabilities.width.max, settings.physicalWidth); assert_equals(capabilities.height.max, settings.physicalHeight); }; @@ -193,7 +193,7 @@ assert_equals(oldPhysicalHeight, settings.physicalHeight); assert_equals(oldPhysicalWidth / window.devicePixelRatio, settings.logicalWidth); assert_equals(oldPhysicalHeight / window.devicePixelRatio, settings.logicalHeight); - assert_equals(window.devicePixelRatio, settings.pixelRatio); + assert_equals(window.devicePixelRatio, settings.screenPixelRatio); assert_equals(capabilities.width.max, settings.physicalWidth); assert_equals(capabilities.height.max, settings.physicalHeight); }; diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-getanimations.tentative.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-getanimations.tentative.html new file mode 100644 index 00000000000..08d509d8cb2 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger-getanimations.tentative.html @@ -0,0 +1,68 @@ + + + + + + + + + +
+
+
+
+
+
+
+ + + diff --git a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger.html b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger.html index dd4820dfe5f..7506fb05829 100644 --- a/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger.html +++ b/tests/wpt/tests/scroll-animations/animation-trigger/animation-trigger.html @@ -24,13 +24,13 @@ .target { animation: myAnim linear 0.5s forwards; } - .scroll_target { + #scroll_target { animation-trigger: repeat scroll(inline) 150px 200px 100px 250px; } - .view_target { + #view_target { animation-trigger: state view(x) contain 10% contain 90% cover 10% cover 90%; } - .deferred_target { + #deferred_target { animation-trigger: alternate --viewtimeline contain 5% contain 80% cover 5% cover 80%; } .scroller { @@ -108,15 +108,7 @@ promise_test(async() => { await waitForNextFrame(); - // Grabbing a reference to the animation and *then* adding the class - // which confers the trigger properties is a workaround to the fact that - // if the scroll-based trigger were already in place, the animation - // would be idle, getAnimations would not include it, and we would not - // be able to get a reference to it. - // TODO: if the definition for getAnimations changes such that it should - // include un-triggered animations, we should remove this workaround. const animation = scroll_target.getAnimations()[0]; - scroll_target.classList.add("scroll_target"); const trigger = animation.trigger; await waitForNextFrame(); @@ -136,7 +128,6 @@ promise_test(async() => { await waitForNextFrame(); const animation = view_target.getAnimations()[0]; - view_target.classList.add("view_target"); const trigger = animation.trigger; await waitForNextFrame(); @@ -157,7 +148,6 @@ promise_test(async() => { await waitForNextFrame(); const animation = deferred_target.getAnimations()[0]; - deferred_target.classList.add("deferred_target"); const trigger = animation.trigger; await waitForNextFrame(); diff --git a/tests/wpt/tests/svg/painting/reftests/WEB_FEATURES.yml b/tests/wpt/tests/svg/painting/reftests/WEB_FEATURES.yml new file mode 100644 index 00000000000..123f8c0419a --- /dev/null +++ b/tests/wpt/tests/svg/painting/reftests/WEB_FEATURES.yml @@ -0,0 +1,4 @@ +features: +- name: context-fill-stroke + files: + - paint-context-* diff --git a/tests/wpt/tests/tools/lint/tests/test_file_lints.py b/tests/wpt/tests/tools/lint/tests/test_file_lints.py index 92270e38a69..f6311043293 100644 --- a/tests/wpt/tests/tools/lint/tests/test_file_lints.py +++ b/tests/wpt/tests/tools/lint/tests/test_file_lints.py @@ -1236,6 +1236,34 @@ def test_invalid_web_features_file(): assert errors == [] +def test_duplicate_keys_invalid_web_features_file(): + code = b"""\ +features: +- name: feature1 + files: + - feature1-* +features: +- name: feature2 + files: + - "feature2-*" +""" + # Check when the value is named correctly. It should find the error. + errors = check_file_contents("", "css/WEB_FEATURES.yml", io.BytesIO(code)) + check_errors(errors) + + assert errors == [ + ('INVALID-WEB-FEATURES-FILE', + 'The WEB_FEATURES.yml file contains an invalid structure', + "css/WEB_FEATURES.yml", + None), + ] + + # Check when the value is named incorrectly. It should not find the error. + errors = check_file_contents("", "css/OTHER_WEB_FEATURES.yml", io.BytesIO(code)) + check_errors(errors) + + assert errors == [] + def test_css_missing_file_manual(): errors = check_file_contents("", "css/foo/bar-manual.html", io.BytesIO(b"")) check_errors(errors) diff --git a/tests/wpt/tests/tools/metadata/yaml/load.py b/tests/wpt/tests/tools/metadata/yaml/load.py index 831f7e8fff1..c6813f23392 100644 --- a/tests/wpt/tests/tools/metadata/yaml/load.py +++ b/tests/wpt/tests/tools/metadata/yaml/load.py @@ -3,9 +3,24 @@ from ..meta.schema import SchemaValue import yaml +# PyYaml does not currently handle unique keys. +# https://github.com/yaml/pyyaml/issues/165#issuecomment-430074049 +# In that issue, there are workarounds to it. +# https://gist.github.com/pypt/94d747fe5180851196eb?permalink_comment_id=4015118#gistcomment-4015118 + +class UniqueKeyLoader(yaml.SafeLoader): + def construct_mapping(self, node: yaml.MappingNode, deep: bool = False) -> Dict[Any, Any]: + mapping = set() + for key_node, value_node in node.value: + key = self.construct_object(key_node, deep=deep) # type: ignore + if key in mapping: + raise ValueError(f"Duplicate {key!r} key found in YAML.") + mapping.add(key) + return super().construct_mapping(node, deep) + def load_data_to_dict(f: IO[bytes]) -> Dict[str, Any]: try: - raw_data = yaml.safe_load(f) + raw_data = yaml.load(f, Loader=UniqueKeyLoader) return SchemaValue.from_dict(raw_data) except Exception as e: raise e diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/actions.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/actions.py index 06d58e7e87b..10b5eeb6b94 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/actions.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/actions.py @@ -498,8 +498,8 @@ class UpdateVirtualPressureSourceAction: def __call__(self, payload): source_type = payload["source_type"] sample = payload["sample"] - estimate = payload["estimate"] - return self.protocol.pressure.update_virtual_pressure_source(source_type, sample, estimate) + own_contribution_estimate = payload["own_contribution_estimate"] + return self.protocol.pressure.update_virtual_pressure_source(source_type, sample, own_contribution_estimate) class RemoveVirtualPressureSourceAction: name = "remove_virtual_pressure_source" diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py index 67f11aefa00..110466e47ab 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executormarionette.py @@ -721,7 +721,7 @@ class MarionetteVirtualPressureSourceProtocolPart(VirtualPressureSourceProtocolP def create_virtual_pressure_source(self, source_type, metadata): raise NotImplementedError("create_virtual_pressure_source not yet implemented") - def update_virtual_pressure_source(self, source_type, sample, estimate): + def update_virtual_pressure_source(self, source_type, sample, own_contribution_estimate): raise NotImplementedError("update_virtual_pressure_source not yet implemented") def remove_virtual_pressure_source(self, source_type): diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py index d0c1f9e64a4..45ddb57c9ae 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/executorwebdriver.py @@ -685,8 +685,8 @@ class WebDriverVirtualPressureSourceProtocolPart(VirtualPressureSourceProtocolPa body.update(metadata) return self.webdriver.send_session_command("POST", "pressuresource", body) - def update_virtual_pressure_source(self, source_type, sample, estimate): - body = {"sample": sample, "estimate": estimate} + def update_virtual_pressure_source(self, source_type, sample, own_contribution_estimate): + body = {"sample": sample, "own_contribution_estimate": own_contribution_estimate} return self.webdriver.send_session_command("POST", "pressuresource/%s" % source_type, body) def remove_virtual_pressure_source(self, source_type): diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py index 53a7b437848..5190b266401 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/executors/protocol.py @@ -1009,7 +1009,7 @@ class VirtualPressureSourceProtocolPart(ProtocolPart): pass @abstractmethod - def update_virtual_pressure_source(self, source_type, sample, estimate): + def update_virtual_pressure_source(self, source_type, sample, own_contribution_estimate): pass @abstractmethod diff --git a/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js b/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js index 71c1be2732f..5d37cf5e15f 100644 --- a/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js +++ b/tests/wpt/tests/tools/wptrunner/wptrunner/testdriver-extra.js @@ -468,8 +468,8 @@ return create_context_action("create_virtual_pressure_source", context, {source_type, metadata}); }; - window.test_driver_internal.update_virtual_pressure_source = function(source_type, sample, estimate, context=null) { - return create_context_action("update_virtual_pressure_source", context, {source_type, sample, estimate}); + window.test_driver_internal.update_virtual_pressure_source = function(source_type, sample, own_contribution_estimate, context=null) { + return create_context_action("update_virtual_pressure_source", context, {source_type, sample, own_contribution_estimate}); }; window.test_driver_internal.remove_virtual_pressure_source = function(source_type, context=null) { diff --git a/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js b/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js index 9cfd90d17f2..21f39b1fc18 100644 --- a/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js +++ b/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js @@ -25,6 +25,12 @@ const gCSSProperties1 = { { type: 'discrete', options: [ [ 'flex-start', 'flex-end' ] ] } ] }, + 'anchor-name': { + // https://drafts.csswg.org/css-anchor-position-1/#name + types: [ + { type: 'discrete', options: [ [ 'none', '--anchor' ] ] } + ] + }, 'anchor-scope': { // https://drafts.csswg.org/css-anchor-position-1/#anchor-scope types: [ @@ -1279,6 +1285,30 @@ const gCSSProperties2 = { { type: 'discrete', options: [ [ 'absolute', 'fixed' ] ] } ] }, + 'position-anchor': { + // https://drafts.csswg.org/css-anchor-position-1/#position-anchor + types: [ + { type: 'discrete', options: [ [ 'auto', '--anchor' ] ] } + ] + }, + 'position-visibility': { + // https://drafts.csswg.org/css-anchor-position-1/#position-visibility + types: [ + { type: 'discrete', options: [ [ 'always', 'anchors-valid' ] ] } + ] + }, + 'position-try-fallbacks': { + // https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks + types: [ + { type: 'discrete', options: [ [ 'none', 'flip-block' ] ] } + ] + }, + 'position-try-order': { + // https://drafts.csswg.org/css-anchor-position-1/#position-try-order-property + types: [ + { type: 'discrete', options: [ [ 'normal', 'most-width' ] ] } + ] + }, 'quotes': { // https://drafts.csswg.org/css-content-3/#propdef-quotes types: [ diff --git a/tests/wpt/tests/webrtc/rtp-stats-lifetime.https.html b/tests/wpt/tests/webrtc/rtp-stats-lifetime.https.html new file mode 100644 index 00000000000..4ddd6ad4f16 --- /dev/null +++ b/tests/wpt/tests/webrtc/rtp-stats-lifetime.https.html @@ -0,0 +1,102 @@ + + + + + +