diff --git a/tests/wpt/meta-legacy-layout/MANIFEST.json b/tests/wpt/meta-legacy-layout/MANIFEST.json index 260a5519e4d..f4db97d8fae 100644 --- a/tests/wpt/meta-legacy-layout/MANIFEST.json +++ b/tests/wpt/meta-legacy-layout/MANIFEST.json @@ -28,6 +28,13 @@ {} ] ], + "add-detached-node.html": [ + "91aaa9c50004e0bb4c855791cf84aad542b9ef31", + [ + null, + {} + ] + ], "aom-in-destroyed-iframe.html": [ "d412892983a48aca624fcffa4100eb94b8109919", [ @@ -84,6 +91,13 @@ {} ] ], + "br-in-changed-subtree.html": [ + "77c9531650d789ff9e3dcaddfd41e35a92523d17", + [ + null, + {} + ] + ], "computed-accessible-child-of-pseudo-element.html": [ "5bc1249907480d42ab5bc8a8f342eb456895f142", [ @@ -375,35 +389,35 @@ }, "css-anchor-position": { "anchor-scroll-composited-scrolling-001-crash.html": [ - "d8fa3821cf5660f7f382bf8aee10c9ddd625b4c1", + "005a27393a23b8efc70b2f52bd3c1f479d36b70c", [ null, {} ] ], "anchor-scroll-composited-scrolling-002-crash.html": [ - "6e0af9f4dccef03b726628d21341a06ccc4ca4cd", + "83ce1468252532d4ddc3c8b5bb31bf1b9fcef9cf", [ null, {} ] ], "anchor-scroll-composited-scrolling-003-crash.html": [ - "046373377efe9ad7ec46fac88fa2e6126adc0e8b", + "594c844bfb5c7e374c19029ca02e84453ba5357a", [ null, {} ] ], "anchor-scroll-composited-scrolling-004-crash.html": [ - "12e7af0be4320ff50870efc11b7e9a1aa4f3ff52", + "226a1b099c3b120d4450dda13a6f0dffeacbf9ac", [ null, {} ] ], "anchor-scroll-composited-scrolling-005-crash.html": [ - "0a4427ae921b7f3effd9b8490929c055359a1e8c", + "639e2e064a79bfecac4eb131a4f3726e3d9bab3c", [ null, {} @@ -1128,6 +1142,13 @@ null, {} ] + ], + "scope-declaration-list-crash.html": [ + "c459da053a1a601c3b1c2edaa0ef9c7688261bc0", + [ + null, + {} + ] ] }, "css-contain": { @@ -1521,6 +1542,13 @@ {} ] ], + "content-visibility-with-float-crash.html": [ + "22f86775a3ab6b30943c79c4c8fc615b18f1922c", + [ + null, + {} + ] + ], "contentvisibility-nestedslot-crash.html": [ "fe6d79a694b530cf005f62f79ea4d971290bc887", [ @@ -1755,6 +1783,13 @@ null, {} ] + ], + "contain-nested-relayout-boundary.html": [ + "ce915728f48d0d3a564bf425c9c811bdd681e68c", + [ + null, + {} + ] ] } }, @@ -1768,6 +1803,13 @@ ] }, "css-flexbox": { + "button-column-wrap-crash.html": [ + "0741735d4e357af037169937229c96209c457ac7", + [ + null, + {} + ] + ], "column-intrinsic-size-aspect-ratio-crash.html": [ "595324845a2fee18427d9d7fdf813162ec43a5db", [ @@ -1940,6 +1982,13 @@ {} ] ], + "font-size-adjust-generic-font-fallback-crash.html": [ + "b2884e975a114a40c9986fac38a45527954c3691", + [ + null, + {} + ] + ], "infinite-size-crash.html": [ "d44cf4a37e26a772a4742a825a7422b795dfc9ee", [ @@ -3220,6 +3269,13 @@ {} ] ], + "first-line-float-mapped-attribute-crash.html": [ + "0cfecd3637bcdcce7b14f937057951fe090f0be0", + [ + null, + {} + ] + ], "first-line-inherited-transition-crash.html": [ "223a0060ebf9a5f9a564c7ccaef0aa09be663878", [ @@ -4501,6 +4557,13 @@ {} ] ], + "delete-immediately-after-changing-input-type-from-time.html": [ + "e608b8c86612d73f731d3127127e768328c7644c", + [ + null, + {} + ] + ], "delete-in-dd-editing-host-after-selectall-with-focus.html": [ "585cd17bb82d8b763168cb14b52fe7d18ec457aa", [ @@ -4964,7 +5027,7 @@ ] ], "remove-editing-host-during-forwarddelete.html": [ - "2b23c34607c3241e863cf5ea118ff08d2a9286b8", + "6013361ccb0e5078292beadc8fec537df9c325a2", [ null, {} @@ -5716,6 +5779,13 @@ } }, "popovers": { + "invoker-show-crash.html": [ + "7da57f9788f07c57c7e6d2c2a5d4cee94c7a3ee6", + [ + null, + {} + ] + ], "popover-dialog-crash.html": [ "e7579d5a3869958422fc07422fbb84124c8c635a", [ @@ -5736,6 +5806,13 @@ null, {} ] + ], + "popover-undefined-remove-crash.html": [ + "3c273ea6f344d179a3d010d20f0779b3721abb40", + [ + null, + {} + ] ] }, "scripting-1": { @@ -8787,6 +8864,15 @@ ] ] }, + "captured-mouse-events": { + "capturing-mouse-coordinates-manual.tentative.https.html": [ + "19b2d6964182f64743ded4f764cb4793759d86ba", + [ + null, + {} + ] + ] + }, "clipboard-apis": { "clipboard-file-manual.html": [ "e934f2fd0d17d2b960b4a7a4cb0205e4c3398deb", @@ -18155,6 +18241,15 @@ ] ] }, + "css-values": { + "absolute-length-units-manual.html": [ + "7528bbbbd4965507719093db7e18784bb20d6858", + [ + null, + {} + ] + ] + }, "css-writing-modes": { "alt-display-vertical-001-manual.html": [ "2e9de77ccb0e24f562c9b3f5bf6bccc3acef8870", @@ -31011,7 +31106,7 @@ }, "compat": { "webkit-background-origin-text.html": [ - "dd38690dd969465a0b392d8ec86a5a64fdc17a27", + "38dfbc86ba8c2dbffe4f9e424b60ecefb2247168", [ null, [ @@ -31031,7 +31126,7 @@ ], [ 0, - 4000 + 4400 ] ] ] @@ -31131,7 +31226,7 @@ ] ], "webkit-linear-gradient-line-bottom.html": [ - "ab45b5917d5764c2266d62b70269d3013ea19b4c", + "8e840f102552303ecca014768433a7a9977ddd5e", [ null, [ @@ -31151,7 +31246,7 @@ ], [ 0, - 4000 + 4400 ] ] ] @@ -31160,7 +31255,7 @@ ] ], "webkit-linear-gradient-line-left.html": [ - "795a97bbfe23c43bbe4fd5a0103df6093285fd04", + "22c2e0b04ce4b007d6f01588e245eefb1ea60933", [ null, [ @@ -31180,7 +31275,7 @@ ], [ 0, - 4000 + 4400 ] ] ] @@ -128602,7 +128697,7 @@ ] ], "anchor-position-top-layer-001.html": [ - "ffa1c1cbd1eabdf3267bef46a4c42ac63244566c", + "055459551b8c94cf884ca4ea5266e6c590e29cbc", [ null, [ @@ -128615,7 +128710,7 @@ ] ], "anchor-position-top-layer-002.html": [ - "849558f0f8c9e693164d73845c679720825fb8ed", + "a87a9d7eedd8995e7eba1753e26cfe4addbcd0c5", [ null, [ @@ -128628,7 +128723,7 @@ ] ], "anchor-position-top-layer-003.html": [ - "5012b52f5f94537458fdd8afd3944b9fae5eaa8e", + "96d5219c5ce5500d5a44f6c64e27a71587b43fba", [ null, [ @@ -128641,7 +128736,7 @@ ] ], "anchor-position-top-layer-004.html": [ - "84e9296a1094bd7158da910f3045254d1589c697", + "c986e3f98d3c7146cb1dea40351e562b33f0178d", [ null, [ @@ -128654,7 +128749,7 @@ ] ], "anchor-position-top-layer-005.html": [ - "6adf8961a4bdcfc8a593831260fb99fe96cc776f", + "cf39c77736738d571e5350730eb4f86afcfa5063", [ null, [ @@ -128667,7 +128762,7 @@ ] ], "anchor-position-top-layer-006.html": [ - "d2a39eae6d66ac8c60d1cd1ff58da9917f94a5ee", + "c13284b854843faf3a7a756c45dca9b6e374cc82", [ null, [ @@ -128680,7 +128775,7 @@ ] ], "anchor-scroll-001.html": [ - "fa42e33d9266a41e803f427f4bec729a4636a858", + "8609795c8a6d0207aeb0d5f840f6d820c7cd9025", [ null, [ @@ -128693,7 +128788,7 @@ ] ], "anchor-scroll-composited-scrolling-006.html": [ - "6b5f268f5548b3e6db472d4939f7076bed09a64d", + "6e57accc457f9fd341af6c3eead652f77c8e3e05", [ null, [ @@ -128706,7 +128801,7 @@ ] ], "anchor-scroll-fixedpos.html": [ - "ee7d22608b65570fe075e02542dbd877cd38cd82", + "a32ef3f7c497a6bd403109bb776e4efc15f2cfa2", [ null, [ @@ -128719,7 +128814,7 @@ ] ], "anchor-scroll-nested.html": [ - "964b02a5b04845537c2a98c5df2defe5b820483b", + "557f748c02988b6f230aedce8b1dad7d154b5df6", [ null, [ @@ -128732,7 +128827,7 @@ ] ], "anchor-scroll-update-001.html": [ - "9400136e9824a75e2ad99be3d358933d55c97196", + "f11797edadb669cfe870988f9f2ae02d0c74e032", [ null, [ @@ -128745,7 +128840,7 @@ ] ], "anchor-scroll-update-002.html": [ - "4e8fcbe295da59a075caf0a3b94c1fffeb69ab45", + "19447952b0be25d0407d0e4dea43795dcd0570dc", [ null, [ @@ -128758,7 +128853,7 @@ ] ], "anchor-scroll-update-003.html": [ - "0d3ec2830cbc2cda42978bd6102175903dec3797", + "57a524c483fd2fd7308620263b09f0a28bc95e59", [ null, [ @@ -128771,7 +128866,7 @@ ] ], "anchor-scroll-update-004.html": [ - "7d1aadc95dba487890ac89ba2bec93684af52383", + "d20a7b660a69428755a33b8c3cb47585a7594bf8", [ null, [ @@ -128784,7 +128879,7 @@ ] ], "anchor-scroll-update-005.html": [ - "5675507a47702ada4c4a738ca15cd57e432d151e", + "c2e7248c80c5ede1ac79384bfc42b51bae649b36", [ null, [ @@ -128797,7 +128892,7 @@ ] ], "anchor-scroll-update-006.html": [ - "7a8e675baa1b8d5aa3f81c0f4b3c291f93ddb279", + "2535c68f78738bae0f8f8e87cbb24ce8d0a35606", [ null, [ @@ -128810,7 +128905,7 @@ ] ], "anchor-scroll-update-007.html": [ - "b08bcc53ee7326615b7d3fc8ef2e8de9bbae9b63", + "4859f01d66084e5356d1e737224797f55b17fce5", [ null, [ @@ -128823,7 +128918,7 @@ ] ], "anchor-scroll-vlr.html": [ - "82d167f48d9521348459b67b75e5877616672663", + "00406c825e924bca5c5dd30d452fde1fc3fcc92a", [ null, [ @@ -128836,7 +128931,7 @@ ] ], "anchor-scroll-vrl.html": [ - "55b7355897447279bbad2a092603c0edf2dd8929", + "2432d72899343f2aa3d95b05a0918080980ef077", [ null, [ @@ -144688,7 +144783,139 @@ ], {} ] - ] + ], + "subgrid": { + "subgrid-container-fragmentation-001.html": [ + "959ff4a9053a20335081e6a7675845095f5b5a74", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "subgrid-container-fragmentation-002.html": [ + "9b28b37b4215759f2f5a5c1cff4774887b0da1b5", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "subgrid-container-fragmentation-003.html": [ + "3f1381a7b21db86f2dd727ed4785c758393769a9", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "subgrid-container-fragmentation-004.html": [ + "67c291fbc34e20f7edc020da2714ad82a8e989ad", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "subgrid-container-fragmentation-005.html": [ + "37babe299110bb5bbf488722ae3bafd5f68ba780", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "subgrid-item-fragmentation-001.html": [ + "1a26d816d0f99084d56beac62a8b46c73315c2bb", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "subgrid-item-fragmentation-002.html": [ + "24f7d997a3d81bab4d8bb729ff1db1c78ecda4ca", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "subgrid-item-fragmentation-003.html": [ + "49f0b5fc76568f8b1bdde0f621069ce54b0ff543", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "subgrid-item-fragmentation-004.html": [ + "85ed105f9605542ff0550b658ceb7405c0f0cb20", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "subgrid-item-fragmentation-005.html": [ + "3832f0d16e148ceef8176817abb60f3e00235844", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ] + } }, "increase-fragmentainer-size-tall-border.html": [ "b7e716b23c4e7db17ef667f30c771d2d1df1cb9a", @@ -159471,7 +159698,7 @@ ] ], "content-visibility-075.html": [ - "665cb923050fe195121e3be9e6b1f8a73bedb4d5", + "f7f834a68bbc72d57f46f53812e99c0b1860281c", [ null, [ @@ -159484,7 +159711,7 @@ ] ], "content-visibility-076.html": [ - "4ceff631b4ac3990af837cf521f0edcb8d7c36dc", + "15d0906f715473036be50e224a4b1ccbd4190a54", [ null, [ @@ -159587,6 +159814,19 @@ {} ] ], + "content-visibility-auto-nested-scroll.html": [ + "abd63f3eae3447a7aa608afbd7735b5ce5b33952", + [ + null, + [ + [ + "/css/css-contain/content-visibility/content-visibility-auto-nested-scroll-ref.html", + "==" + ] + ], + {} + ] + ], "content-visibility-auto-nested.html": [ "9fc7c03b3a7c8e91dca0536658c86682f7213408", [ @@ -159730,6 +159970,19 @@ {} ] ], + "content-visibility-with-popover-top-layer-and-auto-descendant.html": [ + "aed0227ef1d5b81776e48360c8db67175bea4e4a", + [ + null, + [ + [ + "/css/css-contain/content-visibility/content-visibility-with-popover-top-layer-and-auto-descendant-ref.html", + "==" + ] + ], + {} + ] + ], "content-visibility-with-popover-top-layer-hide-after-addition.html": [ "e3934bf46f80d7e22c0209470b8b7ed6f92e47cd", [ @@ -159821,6 +160074,19 @@ {} ] ], + "content-visibility-with-top-layer-and-auto-descendant.html": [ + "a55337bf44d02e742be98e257a26cdf8b0221b35", + [ + null, + [ + [ + "/css/css-contain/content-visibility/content-visibility-with-top-layer-and-auto-descendant-ref.html", + "==" + ] + ], + {} + ] + ], "content-visibility-with-top-layer-hide-after-addition.html": [ "54f632ffbdf58924b3f03643dbff09137ca324b9", [ @@ -159834,6 +160100,19 @@ {} ] ], + "content-visibility-with-top-layer-in-auto-subtree-removal.html": [ + "af7be8615260032798f7499dcd317638e6781701", + [ + null, + [ + [ + "/css/css-contain/content-visibility/container-with-child-ref.html", + "==" + ] + ], + {} + ] + ], "dynamic-change-paint-fully-obscuring-child-001.html": [ "781a11ca40a36b4ce5d99c6c0b665ee2ef4d4e2c", [ @@ -176661,6 +176940,32 @@ {} ] ], + "gap-020.html": [ + "2f0c02dfc1983583b1092e7ada827d499e632ef5", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "gap-021.html": [ + "5f37e94136f2ebc32b3dc4fcebac9efd9815d6d8", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "grandchild-span-height.html": [ "c087edb68d48036f5b3a45114a62d9db03a5a86e", [ @@ -176805,6 +177110,19 @@ ] ], "intrinsic-size": { + "auto-min-size-001.html": [ + "a026091aa793af8b664ef4f1c222c9d8d566848c", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "col-wrap-001.html": [ "45da5123896a7b6ebd430b1ea0b67f1965771ea7", [ @@ -191660,6 +191978,19 @@ ] }, "css-highlight-api": { + "highlight-priority-painting.html": [ + "89ae87359250001fb4105142e174f15b0c5896da", + [ + null, + [ + [ + "/css/css-highlight-api/highlight-priority-painting-ref.html", + "==" + ] + ], + {} + ] + ], "painting": { "css-highlight-painting-underline-offset-001.html": [ "534438089ca0afd4a565e615f43cd964db3a0eb6", @@ -193045,7 +193376,7 @@ ] ], "gradients-with-border.html": [ - "cfe751da6b4ed348a91de75be6eca84160e7f8c9", + "51a5412d2a25e7191f920828bfc392a39b07f266", [ null, [ @@ -193065,7 +193396,7 @@ ], [ 0, - 10955 + 11000 ] ] ] @@ -193578,7 +193909,7 @@ ] ], "image-orientation-mask-image.html": [ - "7bae0cf4dc336cebd621b50b335d760ade6ee2bd", + "2d5e5f6a1ed4d27e96ed5d14e88469e1a3bfb5bd", [ null, [ @@ -193594,11 +193925,11 @@ [ [ 0, - 2 + 1 ], [ 0, - 26 + 2 ] ] ] @@ -194382,7 +194713,7 @@ ] ], "multiple-position-color-stop-linear.html": [ - "806845da43b611b736494e360a9574b49ff85da0", + "206fbed20928eb434694f96b675b1de460224870", [ null, [ @@ -194402,7 +194733,7 @@ ], [ 0, - 3665 + 4000 ] ] ] @@ -197631,6 +197962,21 @@ ] }, "css-inline": { + "baseline-source": { + "baseline-source-inline-box.html": [ + "cc88067c285c226d961673baa567236c95ad489b", + [ + null, + [ + [ + "/css/css-inline/baseline-source/baseline-source-inline-box-ref.html", + "==" + ] + ], + {} + ] + ] + }, "empty-text-node-001.html": [ "eddf31ec59ccc206975b9947d1b4bf75e88063ed", [ @@ -198296,6 +198642,19 @@ ], {} ] + ], + "text-box-trim-half-leading-inline-box-003.html": [ + "4c7e33663b53fa22fa3578c3260701692d48f8b8", + [ + null, + [ + [ + "/css/css-inline/text-box-trim/text-box-trim-half-leading-inline-box-003-ref.html", + "==" + ] + ], + {} + ] ] } }, @@ -202350,6 +202709,19 @@ {} ] ], + "clip-path-xywh-interpolation-001.html": [ + "853195aa27c56d610c8f8737ff452de2f7087e51", + [ + null, + [ + [ + "/css/css-masking/clip-path/animations/clip-path-xywh-interpolation-001-ref.html", + "==" + ] + ], + {} + ] + ], "two-clip-path-animation-diff-length1.html": [ "f647c1af59095735217eb60e51291a64b79fce70", [ @@ -202404,7 +202776,7 @@ ] ], "clip-path-borderBox-1a.html": [ - "b7473fd66c0baeb43a1f1765ca1a435cb9eed450", + "a15ef09b3bd197b0ee3f43da35486f68ac4de0e0", [ null, [ @@ -202424,7 +202796,7 @@ ], [ 0, - 356 + 400 ] ] ] @@ -204175,6 +204547,61 @@ } ] ], + "clip-path-xywh-001.html": [ + "a3d55c277cad706fd36c94c73731b5f6c366fc0b", + [ + null, + [ + [ + "/css/css-masking/clip-path/reference/clip-path-rectangle-ref.html", + "==" + ] + ], + {} + ] + ], + "clip-path-xywh-002.html": [ + "be317ec0d489c640507e7491416914e0c891f6c8", + [ + null, + [ + [ + "/css/css-masking/clip-path/reference/clip-path-rectangle-ref.html", + "==" + ] + ], + {} + ] + ], + "clip-path-xywh-003.html": [ + "eb87c8ac36ed6862f7feb1e08a24ff584cbbb677", + [ + null, + [ + [ + "/css/css-masking/clip-path/reference/clip-path-xywh-003-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 2 + ], + [ + 0, + 30 + ] + ] + ] + ] + } + ] + ], "reference-local-url-with-base-001.html": [ "c65761bddfc095e0e85b4feaea4359516a8df5b1", [ @@ -205097,7 +205524,7 @@ ] ], "clip-path-shape-circle-003.svg": [ - "0a0432c1166e867d6fdb89ef3567450c992bcc5f", + "804e1e920a6930d8383dde596b6834cc31b574cb", [ null, [ @@ -205113,11 +205540,11 @@ [ [ 0, - 64 + 70 ], [ 0, - 184 + 210 ] ] ] @@ -205194,7 +205621,7 @@ ] ], "clip-path-shape-inset-001.svg": [ - "8176766a61e501824cb1dab80bc5620a8945d22a", + "bc8a4d810edf35dc37577cfba606ea4e5ab455d2", [ null, [ @@ -205203,11 +205630,27 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 50 + ], + [ + 0, + 200 + ] + ] + ] + ] + } ] ], "clip-path-shape-inset-002.svg": [ - "2793eda89912906f15bab79c5a3a3e35489cadb2", + "5e5b18990598e3ee43bad3aefeec57768679a153", [ null, [ @@ -205216,7 +205659,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 50 + ], + [ + 0, + 200 + ] + ] + ] + ] + } ] ], "clip-path-shape-polygon-001.svg": [ @@ -206061,7 +206520,7 @@ ] ], "mask-image-clip-exclude.html": [ - "375fe2de233ed44718e881f1fa5815f74f539415", + "21466670b01c3a41bc8afe7e2c2841c19e5d344b", [ null, [ @@ -206081,7 +206540,7 @@ ], [ 0, - 1764 + 2000 ] ] ] @@ -213632,6 +214091,19 @@ {} ] ], + "scrollbar-gutter-dynamic-003.html": [ + "f92beaaa477b48b5785e50c397ff818b71fd6f4c", + [ + null, + [ + [ + "/css/css-overflow/scrollbar-gutter-dynamic-003-ref.html", + "==" + ] + ], + {} + ] + ], "scrollbar-gutter-rtl-002.html": [ "8d0376defdfc69ecb44fc2134c81573e553db2bb", [ @@ -216237,7 +216709,7 @@ }, "overlay": { "overlay-transition-backdrop-entry.html": [ - "89299e3a8ea088d93e308f50966bca9372d3eff1", + "7db33eb85dea74e2c50a3e07e26f98eb97670afc", [ null, [ @@ -216250,7 +216722,7 @@ ] ], "overlay-transition-backdrop.html": [ - "b730e4334659c8f2d8071a651b7004583b6f96c3", + "fde933da5dbbbdbd769262944446e1c3f4416a91", [ null, [ @@ -216263,7 +216735,7 @@ ] ], "overlay-transition-finished.html": [ - "bf0aefac3f3d26376980bdb48ad8058210d77898", + "b2322389d06f102d5ee06e6979ab9fc1b140aa76", [ null, [ @@ -216276,7 +216748,7 @@ ] ], "overlay-transition-in-rendering.html": [ - "c794ec23a2d9bf9b6a2e44d760fcaef0cc550466", + "dc1b9ffe20caaa6480c800f79fd104d7fba92cc9", [ null, [ @@ -216289,7 +216761,7 @@ ] ], "overlay-transition-out-rendering.html": [ - "9c658c574cd99a17a2ab9679e925d3438a80491d", + "fea03951c5e9ae7062301f1bb1af75507ba76af3", [ null, [ @@ -217101,6 +217573,19 @@ {} ] ], + "position-relative-014.html": [ + "88edec0255ccc4dcadb531e17cc7660f04b2901a", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "position-relative-table-caption.html": [ "20ff62888008d0b344a6dfab01a0dee1aa173347", [ @@ -223485,6 +223970,71 @@ {} ] ], + "scrollbar-color-006.html": [ + "6a369299434c8eda080716274854df9e1b00f237", + [ + null, + [ + [ + "/css/css-scrollbars/scrollbar-color-006-ref.html", + "==" + ] + ], + {} + ] + ], + "scrollbar-color-007.html": [ + "876dd70af72b18a30fea22431d009016fb15bd83", + [ + null, + [ + [ + "/css/css-scrollbars/scrollbar-color-007-ref.html", + "==" + ] + ], + {} + ] + ], + "scrollbar-color-008.html": [ + "8241fe06459e1bec8725bc58351107b20ff892a2", + [ + null, + [ + [ + "/css/css-scrollbars/scrollbar-color-008-ref.html", + "==" + ] + ], + {} + ] + ], + "scrollbar-color-009.html": [ + "d11d2641bff98d8c69e95842797ddad130352ef9", + [ + null, + [ + [ + "/css/css-scrollbars/scrollbar-color-009-ref.html", + "==" + ] + ], + {} + ] + ], + "scrollbar-color-010.html": [ + "9b379eabd14317467fe4df38409dc69c15aac750", + [ + null, + [ + [ + "/css/css-scrollbars/scrollbar-color-010-ref.html", + "==" + ] + ], + {} + ] + ], "scrollbar-width-paint-001.html": [ "3621a65b39ed7d9e3b0afea4e1770427b31534de", [ @@ -224305,7 +224855,7 @@ "shape-image": { "gradients": { "shape-outside-linear-gradient-001.html": [ - "91550fefc72e0e704dfe0964893f3f834a8df29b", + "148b5cd6ef6bc43884428f880b01507bbab6c023", [ null, [ @@ -224325,7 +224875,7 @@ ], [ 0, - 8000 + 8700 ] ] ] @@ -224334,7 +224884,7 @@ ] ], "shape-outside-linear-gradient-002.html": [ - "c956d7b58386d41afdd2b757da6beef070a77474", + "2b17a3f81e6d242045aaffa28cbffefef1afddff", [ null, [ @@ -224354,7 +224904,7 @@ ], [ 0, - 7917 + 8700 ] ] ] @@ -224363,7 +224913,7 @@ ] ], "shape-outside-linear-gradient-003.html": [ - "3062aaed9584332ed89b618064df356673e138ae", + "e3f38a3c78da9a14ac40e3aca3f21476b92bccda", [ null, [ @@ -224383,7 +224933,7 @@ ], [ 0, - 7917 + 8700 ] ] ] @@ -242779,6 +243329,19 @@ {} ] ], + "text-transform-capitalize-034.html": [ + "4fa0bf8a25722a8cf627859ba85d5865fb73171c", + [ + null, + [ + [ + "/css/css-text/text-transform/text-transform-capitalize-034-ref.html", + "==" + ] + ], + {} + ] + ], "text-transform-full-size-kana-001.html": [ "8c532ff7238a08ac8062ab9c24e12571fbdf121e", [ @@ -255453,7 +256016,7 @@ ], "gradientTransform": { "svg-gradientTransform-001.html": [ - "6db774b3d2ca6dabac22654a25ca1b1e31d83fce", + "c953a692320aaec7237f6403e92be949258dcc82", [ null, [ @@ -255473,7 +256036,7 @@ ], [ 0, - 4000 + 4400 ] ] ] @@ -255482,7 +256045,7 @@ ] ], "svg-gradientTransform-combination-001.html": [ - "dbe942f1c36568edc23a7510033bffc94edb92f9", + "c43a0de30c83ce1fc7f8b25f1c645f44e64f9bd1", [ null, [ @@ -255502,7 +256065,7 @@ ], [ 0, - 16000 + 18000 ] ] ] @@ -255511,7 +256074,7 @@ ] ], "svg-gradientTransform-combination-003.html": [ - "76208d26c2178fc567c94a584de509dbc65a2df8", + "694119b6ec75ed07e17c5fbbdfceb5d1730d8416", [ null, [ @@ -255531,7 +256094,7 @@ ], [ 0, - 16000 + 18000 ] ] ] @@ -255646,7 +256209,7 @@ ] ], "svg-transform-group-009.html": [ - "da16c47f9849722e11a92d5d85d6950d5f3bb15e", + "58f4beeda9c2e207ac259f4567fef171ef0f3056", [ null, [ @@ -255655,7 +256218,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 2 + ] + ] + ] + ] + } ] ], "svg-transform-group-010.html": [ @@ -255776,7 +256355,7 @@ ] ], "svg-transform-nested-008.html": [ - "80b153344ec9fd9816a68da776b7ef8ba32ed792", + "8348aaeb8d9e5a8001ce9e129f7ac66b3310ae61", [ null, [ @@ -255785,11 +256364,27 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 50 + ] + ] + ] + ] + } ] ], "svg-transform-nested-009.html": [ - "bb747ea3303feaba5f036503aa6e4fe4f5ca3bc0", + "fe3b06ac2c564126e9bcc10203ea798655086563", [ null, [ @@ -255870,7 +256465,7 @@ ] ], "svg-transform-nested-014.html": [ - "e6da31a682c068badc52229ad25b2ad640be7dda", + "9da7a80c1011c3481bd6d6bed3441d8a5e63997c", [ null, [ @@ -255879,7 +256474,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 2 + ] + ] + ] + ] + } ] ], "svg-transform-nested-015.html": [ @@ -255935,7 +256546,7 @@ ] ], "svg-transform-nested-019.html": [ - "c3fb59ece6122d7129cfbb64ebef5239e71e8a72", + "4bb658d2f9ccc1d844141538b1e8cbc87396d684", [ null, [ @@ -255944,7 +256555,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 299 + ] + ] + ] + ] + } ] ], "svg-transform-nested-020.html": [ @@ -258078,7 +258705,7 @@ ] ], "svg-rotate-angle-45-001.html": [ - "ff5173753694d97ed5df47c190dc56575db48173", + "be3e4bead853a9c767b215783f8f6d6419a11338", [ null, [ @@ -258087,11 +258714,27 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 142 + ] + ] + ] + ] + } ] ], "svg-rotate-angle-45-011.html": [ - "94f1bf5121bfc09e5166217cc819284b1cec8a2f", + "d6164c0444d28211821aa8c569aa250c85a0d6fa", [ null, [ @@ -258100,11 +258743,27 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 142 + ] + ] + ] + ] + } ] ], "svg-rotate-angle-45-022.html": [ - "b4d7019a90ee45762134ddbeca5f86fc785a7739", + "4542f7597d03e5474a19f7174bb98bdad9608d4d", [ null, [ @@ -258113,7 +258772,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 142 + ] + ] + ] + ] + } ] ], "svg-rotate-angle-90-001.html": [ @@ -258623,32 +259298,16 @@ ] ], "skew-test1.html": [ - "cb1780976543e966e2001235e0d84d3a7b9898da", + "b96c2e04027efb60a4350ad25d9113f8873740b8", [ null, [ [ - "/css/css-transforms/reference/skew-test1-ref.html", + "/css/reference/ref-filled-green-100px-square.xht", "==" ] ], - { - "fuzzy": [ - [ - null, - [ - [ - 17, - 233 - ], - [ - 90, - 858 - ] - ] - ] - ] - } + {} ] ], "skewX": { @@ -259417,6 +260076,19 @@ ] ], "transform-box": { + "content-box-mutation-001.html": [ + "e9ddc8dcfac87df5d1c0677eb5d2945080fbddae", + [ + null, + [ + [ + "/css/css-transforms/transform-box/reference/cssbox-ref.html", + "==" + ] + ], + {} + ] + ], "cssbox-border-box.html": [ "d0176e367b4133cde295ecea8b14b1167d30fadf", [ @@ -259547,6 +260219,58 @@ {} ] ], + "stroke-box-mutation-001.html": [ + "c27238498179f1976625fb89a8dc063ad4938741", + [ + null, + [ + [ + "/css/css-transforms/transform-box/reference/svgbox-ref.html", + "==" + ] + ], + {} + ] + ], + "stroke-box-mutation-002.html": [ + "f460b8e26a263122cec50d806653e1d03842ea99", + [ + null, + [ + [ + "/css/css-transforms/transform-box/reference/svgbox-ref.html", + "==" + ] + ], + {} + ] + ], + "stroke-box-mutation-003.html": [ + "f82bf5acbcff1ec79be29affb9c9a0b6bd3dc464", + [ + null, + [ + [ + "/css/css-transforms/transform-box/reference/svgbox-ref.html", + "==" + ] + ], + {} + ] + ], + "stroke-box-mutation-004.html": [ + "51df8ebb91c54816968f00c0578d7b44b7473c8f", + [ + null, + [ + [ + "/css/css-transforms/transform-box/reference/svgbox-ref.html", + "==" + ] + ], + {} + ] + ], "svgbox-border-box.html": [ "921dba1d73881554b74e30deccd47f8696d6ad1b", [ @@ -259599,7 +260323,7 @@ {} ] ], - "svgbox-stroke-box.html": [ + "svgbox-stroke-box-001.html": [ "d2ca1411ae833fa87323c8e628b4cb6a5f414db4", [ null, @@ -259612,6 +260336,19 @@ {} ] ], + "svgbox-stroke-box-002.html": [ + "dd7d656eacfb382727f274716785947b426ddeb5", + [ + null, + [ + [ + "/css/css-transforms/transform-box/reference/svgbox-dasharray-ref.html", + "==" + ] + ], + {} + ] + ], "svgbox-view-box.html": [ "dbce635d6e78652c5f96904fa095f3d3f23ac134", [ @@ -277653,7 +278390,7 @@ }, "css-values": { "angle-units-001.html": [ - "38918d0439e13f92d9d417b5dac308ac720dadca", + "4491224f719a29acc03c5c2d122f68853c00d9f4", [ null, [ @@ -277673,7 +278410,7 @@ ], [ 0, - 4000 + 4400 ] ] ] @@ -277682,7 +278419,7 @@ ] ], "angle-units-002.html": [ - "fa00b01dc0e35ac6a07857be99cea7384c8f839f", + "729123b6d0ed8ab271daa650b2a02bcbcfb258de", [ null, [ @@ -277702,7 +278439,7 @@ ], [ 0, - 4000 + 4400 ] ] ] @@ -277711,7 +278448,7 @@ ] ], "angle-units-003.html": [ - "9ac677aad7f4a134fa9d90afff1a6978d8f99e4e", + "1fb929e1135c73063de2217ee26048826b5d0a13", [ null, [ @@ -277731,7 +278468,7 @@ ], [ 0, - 4000 + 4400 ] ] ] @@ -277740,7 +278477,7 @@ ] ], "angle-units-004.html": [ - "e1069a75cca10bf0f1a27ed1e697e6f13ee48d52", + "fee440a0d0280f23db1de19d449e31b9742f1aaf", [ null, [ @@ -277760,7 +278497,7 @@ ], [ 0, - 4000 + 4400 ] ] ] @@ -277769,7 +278506,7 @@ ] ], "angle-units-005.html": [ - "e67a3982f4f7d2530fefaa6dd912ff367949601c", + "55dbe683861b7f007ece39b4057df2386ea89069", [ null, [ @@ -277789,7 +278526,7 @@ ], [ 0, - 4000 + 4400 ] ] ] @@ -281585,7 +282322,7 @@ ] ], "vars-background-shorthand-001.html": [ - "df02a8f5efc7fc278f3633559720db38580b561e", + "6f41923da20d48b57f4c5dec8cfc025d957c262a", [ null, [ @@ -281605,7 +282342,7 @@ ], [ 0, - 17900 + 20000 ] ] ] @@ -281766,6 +282503,65 @@ } ] ], + "capture-with-opacity-zero-child.html": [ + "adcef1b4c5a528481521edc48b53d0f0b9f8c217", + [ + null, + [ + [ + "/css/css-view-transitions/capture-with-visibility-hidden-child-ref.html", + "==" + ] + ], + {} + ] + ], + "capture-with-visibility-hidden-child.html": [ + "5f4e73e6a60e21b936dc8b32442cc1cd53bca5fb", + [ + null, + [ + [ + "/css/css-view-transitions/capture-with-visibility-hidden-child-ref.html", + "==" + ] + ], + {} + ] + ], + "capture-with-visibility-mixed-descendants.html": [ + "fa9a40bf07748f6de782cc567981a24ce1d7c0e7", + [ + null, + [ + [ + "/css/css-view-transitions/capture-with-visibility-mixed-descendants-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + [ + "/css/css-view-transitions/capture-with-visibility-mixed-descendants.html", + "/css/css-view-transitions/capture-with-visibility-mixed-descendants-ref.html", + "==" + ], + [ + [ + 0, + 5 + ], + [ + 0, + 500 + ] + ] + ] + ] + } + ] + ], "content-smaller-than-box-size.html": [ "d2b8f63ca068ffc744b7b1a7b0ca8d1c25a32854", [ @@ -283623,7 +284419,7 @@ ] ], "new-element-on-start.html": [ - "e3ec5463bfd3797b18831063253324fdc8fd52c7", + "7e870e9d892195b5d6511013e70a6cf2f2ad8282", [ null, [ @@ -284665,7 +285461,7 @@ ] ], "web-animations-api.html": [ - "e0860b8f519b595af6b532d89d5818a59eab812e", + "6d8395ebb72e4a3ec8c7a663031361d602c4f25f", [ null, [ @@ -284696,6 +285492,19 @@ ] } ] + ], + "writing-mode-container-resize.html": [ + "359baaf5e855e67926ea55c214924dd747acad32", + [ + null, + [ + [ + "/css/css-view-transitions/writing-mode-container-resize-ref.html", + "==" + ] + ], + {} + ] ] }, "css-will-change": { @@ -292890,6 +293699,74 @@ {} ] ], + "date-input-appearance-native-horizontal.optional.html": [ + "10510d7ea10542445cb6e6b4cfafaaa746c2cdea", + [ + null, + [ + [ + "/css/css-writing-modes/forms/date-input-appearance-native-vertical.optional.html", + "!=" + ], + [ + "/css/css-writing-modes/forms/date-input-appearance-none-vertical.optional.html", + "!=" + ] + ], + {} + ] + ], + "date-input-appearance-native-vertical.optional.html": [ + "02b05748c1ef0c16d1b06a0a5771418dda125274", + [ + null, + [ + [ + "/css/css-writing-modes/forms/date-input-appearance-native-horizontal.optional.html", + "!=" + ], + [ + "/css/css-writing-modes/forms/date-input-appearance-none-horizontal.optional.html", + "!=" + ] + ], + {} + ] + ], + "date-input-appearance-none-horizontal.optional.html": [ + "6115e6f33ba12796f6c1a530ddaa81f176023fcf", + [ + null, + [ + [ + "/css/css-writing-modes/forms/date-input-appearance-none-vertical.optional.html", + "!=" + ], + [ + "/css/css-writing-modes/forms/date-input-appearance-native-vertical.optional.html", + "!=" + ] + ], + {} + ] + ], + "date-input-appearance-none-vertical.optional.html": [ + "e608ead51b7afbce992d15595664f791b977d5d1", + [ + null, + [ + [ + "/css/css-writing-modes/forms/date-input-appearance-none-horizontal.optional.html", + "!=" + ], + [ + "/css/css-writing-modes/forms/date-input-appearance-native-horizontal.optional.html", + "!=" + ] + ], + {} + ] + ], "meter-appearance-native-horizontal.optional.html": [ "7b25e1a9000d6c611c62c770871b7e32e4f8c696", [ @@ -298181,6 +299058,32 @@ {} ] ], + "text-combine-upright-rtl-001.html": [ + "d67e3cc2aef1db83957503b427e1111f3ade4532", + [ + null, + [ + [ + "/css/css-writing-modes/text-combine-upright-rtl-001-ref.html", + "==" + ] + ], + {} + ] + ], + "text-combine-upright-rtl-002.html": [ + "f4e2dc193e010b7632684a9e95ada9cadb36c7c0", + [ + null, + [ + [ + "/css/css-writing-modes/text-combine-upright-rtl-002-ref.html", + "==" + ] + ], + {} + ] + ], "text-combine-upright-shadow.html": [ "6b72ea34aa669bb3d6b7c13df21b00db5cfc9dd4", [ @@ -301337,6 +302240,84 @@ ], {} ] + ], + "filter-function-conic-gradient.html": [ + "fd5f3965d9b7ec4061a89f8b79bc03d5911bd005", + [ + null, + [ + [ + "/css/filter-effects/filter-function/filter-function-conic-gradient-ref.html", + "==" + ] + ], + {} + ] + ], + "filter-function-linear-gradient.html": [ + "de965b1e9a0ffa15c2a8df264e47c4fc72b0c689", + [ + null, + [ + [ + "/css/filter-effects/filter-function/filter-function-linear-gradient-ref.html", + "==" + ] + ], + {} + ] + ], + "filter-function-radial-gradient.html": [ + "a1d88677448587966f25a8db2ad68a59508058bd", + [ + null, + [ + [ + "/css/filter-effects/filter-function/filter-function-radial-gradient-ref.html", + "==" + ] + ], + {} + ] + ], + "filter-function-repeating-conic-gradient.html": [ + "8920a8b31c36a7c4258f06dfc0cd203a2c7441fa", + [ + null, + [ + [ + "/css/filter-effects/filter-function/filter-function-repeating-conic-gradient-ref.html", + "==" + ] + ], + {} + ] + ], + "filter-function-repeating-linear-gradient.html": [ + "dc81e0995bb125b9e84b09974fd7ec48d96e6266", + [ + null, + [ + [ + "/css/filter-effects/filter-function/filter-function-repeating-linear-gradient-ref.html", + "==" + ] + ], + {} + ] + ], + "filter-function-repeating-radial-gradient.html": [ + "ec6c9bf83cd638f3dd10610a8de584ef37112e54", + [ + null, + [ + [ + "/css/filter-effects/filter-function/filter-function-repeating-radial-gradient-ref.html", + "==" + ] + ], + {} + ] ] }, "filter-grayscale-001.html": [ @@ -304322,7 +305303,7 @@ ] ], "offset-path-shape-xywh-001.html": [ - "ace1ee1c639ca0dd612f54e2c08321ada3bf74d9", + "0360b2fa3f32f8e1587ce0c872ad208f5838cf0e", [ null, [ @@ -304335,7 +305316,7 @@ ] ], "offset-path-shape-xywh-002.html": [ - "65bf8aa2ee91543ce4ac81fcf132a3c83017f9bc", + "4c4f4ac86c1bab87b5a11678013a3470c7f733c0", [ null, [ @@ -304351,11 +305332,11 @@ [ [ 0, - 20 + 130 ], [ 0, - 20 + 250 ] ] ] @@ -304363,6 +305344,19 @@ } ] ], + "offset-path-shape-xywh-003.html": [ + "a03bea9e12dbb95f1aa273dc32e412aa2fa25689", + [ + null, + [ + [ + "/css/motion/offset-path-shape-xywh-003-ref.html", + "==" + ] + ], + {} + ] + ], "offset-path-string-001.html": [ "79d957d82b8e3c603ed16598f461a805c90681dd", [ @@ -308252,13 +309246,13 @@ "custom-elements": { "form-associated": { "ElementInternals-reportValidity-bubble.html": [ - "6ada4b473ab319fa57d83432c321e2d24b22ab87", + "adad00d90e0d391891fffb812f16084f04c62b8a", [ null, [ [ - "/custom-elements/form-associated/ElementInternals-reportValidity-bubble-ref.html", - "==" + "/custom-elements/form-associated/ElementInternals-reportValidity-bubble-notref.html", + "!=" ] ], {} @@ -309419,7 +310413,7 @@ ] ], "fullscreen-root-fills-page.html": [ - "f122e678f3fcd1b4c3c2d4673473a73a40a2ea3f", + "e2a6217346db1a4f7850446760f8be43532fa4d2", [ null, [ @@ -309505,6 +310499,84 @@ ], {} ] + ], + "fontVariantCaps-1.html": [ + "3240476ad0f03e9a1b3f37a242fe781b2a46d613", + [ + null, + [ + [ + "/html/canvas/element/drawing-text-to-the-canvas/reference/fontVariantCaps-1-ref.html", + "==" + ] + ], + {} + ] + ], + "fontVariantCaps-2.html": [ + "cbcb73b231ce9051cb1386e366a241dc980bc05c", + [ + null, + [ + [ + "/html/canvas/element/drawing-text-to-the-canvas/reference/fontVariantCaps-2-ref.html", + "!=" + ] + ], + {} + ] + ], + "fontVariantCaps-3.html": [ + "8c0761121efb0bfbdda0871d7d735ceeb5105cd3", + [ + null, + [ + [ + "/html/canvas/element/drawing-text-to-the-canvas/reference/fontVariantCaps-3-ref.html", + "==" + ] + ], + {} + ] + ], + "fontVariantCaps-4.html": [ + "62fe241838b2a9ab5d1656a4165266232fb4ec0d", + [ + null, + [ + [ + "/html/canvas/element/drawing-text-to-the-canvas/reference/fontVariantCaps-3-ref.html", + "==" + ] + ], + {} + ] + ], + "fontVariantCaps-5.html": [ + "a21169f8bb64781ca5235cfedcde562a3c8f85e3", + [ + null, + [ + [ + "/html/canvas/element/drawing-text-to-the-canvas/reference/fontVariantCaps-1-ref.html", + "==" + ] + ], + {} + ] + ], + "fontVariantCaps-6.html": [ + "6126c4e7b2f3ebf17e1fa8e79947750be1728beb", + [ + null, + [ + [ + "/html/canvas/element/drawing-text-to-the-canvas/reference/fontVariantCaps-2-ref.html", + "==" + ] + ], + {} + ] ] }, "filters": { @@ -310368,7 +311440,7 @@ ] ], "canvas.2d.fontStretch.condensed.html": [ - "2bda32082e3577757ca58dd460d0f0a478a7d647", + "72db41f007a503f5767b2f3a1812397cd74bad8c", [ null, [ @@ -310381,7 +311453,7 @@ ] ], "canvas.2d.fontStretch.expanded.html": [ - "c679ccb57b955ff255c9c6fb02bc65323d9b6edd", + "8a13ba13fcb633b4d1176fb3e2f31cb9ddf26dca", [ null, [ @@ -310394,7 +311466,7 @@ ] ], "canvas.2d.fontStretch.extra-condensed.html": [ - "a3a18c05c63143869a0bea7a2e93b69e796b14ca", + "afa910f62cef05a60a1398828069d5752be17fa8", [ null, [ @@ -310407,7 +311479,7 @@ ] ], "canvas.2d.fontStretch.extra-expanded.html": [ - "4f1bf6838dd1fb37a1125c96437105b23f6fe2f2", + "d10d4d931256cd827348162d7fb7c7a454f181ec", [ null, [ @@ -310420,7 +311492,7 @@ ] ], "canvas.2d.fontStretch.normal.html": [ - "b60d25f57942ed8a0325745a7994db513aeb6fde", + "e8fd66acad92fd00175bfbe77971f6312129d84e", [ null, [ @@ -310433,7 +311505,7 @@ ] ], "canvas.2d.fontStretch.semi-condensed.html": [ - "c356ee176efa56305f9d32a681f975c9b9907ab8", + "2ac97195958a3b979eb839cfce7016073f667f72", [ null, [ @@ -310446,7 +311518,7 @@ ] ], "canvas.2d.fontStretch.semi-expanded.html": [ - "bc9bb2bfa5121bdbe2e50937ff5f5f4fee4a60e7", + "3c9fa278947331ea355d4a60081a52f06ba155f4", [ null, [ @@ -310459,7 +311531,7 @@ ] ], "canvas.2d.fontStretch.ultra-condensed.html": [ - "62af7780927a78e93b528eb15293ff4a99e73d92", + "2b0426e976d97beca8873d2eb663c61d0ebb14f5", [ null, [ @@ -310472,7 +311544,7 @@ ] ], "canvas.2d.fontStretch.ultra-expanded.html": [ - "4faf47b07421b90a1d2e0842a58c2ad88c9c0df2", + "5b4979de864b0dcac967a8bae61b265546323a3f", [ null, [ @@ -312088,6 +313160,203 @@ {} ] ] + }, + "text": { + "canvas.2d.fontStretch.condensed.html": [ + "0cbd5e3c1f18935d04a18359caa8c91c89fd1806", + [ + null, + [ + [ + "/html/canvas/offscreen/text/canvas.2d.fontStretch-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas.2d.fontStretch.expanded.html": [ + "5ec853985fd9f9a575d9401786a0cdc27bf7fdb8", + [ + null, + [ + [ + "/html/canvas/offscreen/text/canvas.2d.fontStretch-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas.2d.fontStretch.extra-condensed.html": [ + "12843c53b82b1d46d33a1e1c2abe5c0eceaeab2c", + [ + null, + [ + [ + "/html/canvas/offscreen/text/canvas.2d.fontStretch-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas.2d.fontStretch.extra-expanded.html": [ + "20d801718aaf219cd0b35dcbd9c27b46ed15e868", + [ + null, + [ + [ + "/html/canvas/offscreen/text/canvas.2d.fontStretch-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas.2d.fontStretch.normal.html": [ + "786cb408e135366cd832b793dc5befef6ea44ba8", + [ + null, + [ + [ + "/html/canvas/offscreen/text/canvas.2d.fontStretch-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas.2d.fontStretch.semi-condensed.html": [ + "04bd5a80d006b4f6e6b97a04187d64dc4958b908", + [ + null, + [ + [ + "/html/canvas/offscreen/text/canvas.2d.fontStretch-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas.2d.fontStretch.semi-expanded.html": [ + "d86b7306878fe1962d635a51e01ba0cd2b56390e", + [ + null, + [ + [ + "/html/canvas/offscreen/text/canvas.2d.fontStretch-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas.2d.fontStretch.ultra-condensed.html": [ + "d78f6d0078c83210909f19065f448b8361ba207d", + [ + null, + [ + [ + "/html/canvas/offscreen/text/canvas.2d.fontStretch-ref.html", + "==" + ] + ], + {} + ] + ], + "canvas.2d.fontStretch.ultra-expanded.html": [ + "8b8f6f5698eb81262686f6179525bd35d2efc427", + [ + null, + [ + [ + "/html/canvas/offscreen/text/canvas.2d.fontStretch-ref.html", + "==" + ] + ], + {} + ] + ], + "fontVariantCaps-1.html": [ + "aed6f6603846d1e56e3eab775c72789102fe9f51", + [ + null, + [ + [ + "/html/canvas/offscreen/text/reference/fontVariantCaps-1-ref.html", + "==" + ] + ], + {} + ] + ], + "fontVariantCaps-2.html": [ + "7d8fc08cfe694a287ad5782ecddf6f297389f746", + [ + null, + [ + [ + "/html/canvas/offscreen/text/reference/fontVariantCaps-2-ref.html", + "!=" + ] + ], + {} + ] + ], + "fontVariantCaps-3.html": [ + "8e9ddd464a0b4493e130255e9977c93d32a45129", + [ + null, + [ + [ + "/html/canvas/offscreen/text/reference/fontVariantCaps-3-ref.html", + "==" + ] + ], + {} + ] + ], + "fontVariantCaps-4.html": [ + "d2f4439897d30f2810afaed39156232a14d8caa7", + [ + null, + [ + [ + "/html/canvas/offscreen/text/reference/fontVariantCaps-3-ref.html", + "==" + ] + ], + {} + ] + ], + "fontVariantCaps-5.html": [ + "57b6ca70776863d7f8fea40f0627582069e9ead4", + [ + null, + [ + [ + "/html/canvas/offscreen/text/reference/fontVariantCaps-1-ref.html", + "==" + ] + ], + {} + ] + ], + "fontVariantCaps-6.html": [ + "09ff6fab0c608935a37785f3be3ef72b05645f2c", + [ + null, + [ + [ + "/html/canvas/offscreen/text/reference/fontVariantCaps-2-ref.html", + "==" + ] + ], + {} + ] + ] } } }, @@ -318621,7 +319890,7 @@ ] ], "popover-anchor-scroll-display.html": [ - "9a14b44f04994cd6552862f16d94632d814fb45a", + "7ed6cf1adf8d11ce5ab121340879ea95dd170991", [ null, [ @@ -321518,6 +322787,164 @@ ] ] }, + "tables": { + "columnspan-rowspan-001.html": [ + "705ba64eb4c6f4641e3153b1e9a50779f4c7e2ff", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "columnspan-rowspan-002.html": [ + "92383c58e5a553b1831effdaf03bd93aeca35ff6", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "columnspan-rowspan-003.html": [ + "2a9b21580505695f87d976df5aeb6ae161b74fca", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "columnspan-rowspan-004.html": [ + "31c188421000dae27cc129a83942416b787d961a", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "columnspan-rowspan-005.html": [ + "d1fdd7a9c6006b6beda1333a765e8e168b84328b", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "columnspan-rowspan-006.html": [ + "774fcbfdc79f81c423d26fe493afcff7444dc3d4", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "dynamic-columnspan-rowspan-001a.html": [ + "c08c1a9fd49cea3b4d7a38dd63dcf48cb4e174d0", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "dynamic-columnspan-rowspan-001b.html": [ + "fdedd4297e62ec77efda39403a8eb06cd819dd4e", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "dynamic-columnspan-rowspan-001c.html": [ + "813c82b3de722651ae060783c387ef26836908bf", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "dynamic-columnspan-rowspan-002a.html": [ + "288048d57709a90e31f376f72e70c59a88790b64", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "dynamic-columnspan-rowspan-002b.html": [ + "47a68480065317c72b175e8b33771ee624910b06", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ], + "dynamic-columnspan-rowspan-002c.html": [ + "57d54defa808e2fd7058ba0eff2debeba515fc31", + [ + null, + [ + [ + "/mathml/presentation-markup/tables/columnspan-rowspan-ref.html", + "==" + ] + ], + {} + ] + ] + }, "tokens": { "dynamic-mtext-like-001.html": [ "8e42f7fa1797a0429dae47be4859d5c828c9f015", @@ -323315,6 +324742,19 @@ {} ] ], + "custom-property.html": [ + "d6fdda6752224f72ae64e3c9cc89685bfbe78a57", + [ + null, + [ + [ + "/scroll-animations/scroll-timelines/custom-property-ref.html", + "==" + ] + ], + {} + ] + ], "layout-changes-on-percentage-based-timeline.html": [ "c5a46a501e872fabfbd70526339e0c37a6b843c7", [ @@ -323759,6 +325199,21 @@ }, "svg": { "animations": { + "scripted": { + "animateMotion-animated-line.svg": [ + "5e853dab03a547f2e963e0ecc51048a9ea3ea307", + [ + null, + [ + [ + "/svg/embedded/reference/green-rect-100x100.svg", + "==" + ] + ], + {} + ] + ] + }, "use-animate-display-none-symbol.html": [ "6ae10ca8739dbedcc148bf7b398437131519d62b", [ @@ -324039,6 +325494,19 @@ {} ] ], + "foreign-object-containing-svg-in-svg-in-object.html": [ + "311697dd7bf135142f0920e108e2b0f726f39591", + [ + null, + [ + [ + "/svg/struct/reftests/reference/green-100x100.html", + "==" + ] + ], + {} + ] + ], "foreign-object-margin-collapsing.html": [ "49320f9573134b4d3ac85107f2e3326450f4b9a6", [ @@ -324439,6 +325907,32 @@ } }, "layout": { + "svg-foreign-relayout-001.html": [ + "2c8a8141526d0ddf759f32d038754ec919d93435", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], + "svg-foreign-relayout-002.html": [ + "cebc2d492d6dce9f134261c07ae2d9f68aa1b867", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "svg-intrinsic-size-invalidation.html": [ "7c3daf8e5c0c4b4c4cbb1f2ca38f237b480f8c9c", [ @@ -325697,6 +327191,19 @@ {} ] ], + "pattern-transform-01.svg": [ + "e3db18f2ed2762bd24a3cc51b7304888f4b0a53c", + [ + null, + [ + [ + "/svg/pservers/reftests/reference/pattern-transform-01-ref.svg", + "==" + ] + ], + {} + ] + ], "pattern-viewbox-01.svg": [ "618b8fc29e69d2624d5556d6bbcdba600ce21a4a", [ @@ -327135,6 +328642,19 @@ "web-animations": { "animation-model": { "keyframe-effects": { + "effect-value-opacity-replaced-effect-in-shadow-root.html": [ + "43e229856badb391109eb5fce2bcb29d52ba3461", + [ + null, + [ + [ + "/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-in-shadow-root-ref.html", + "==" + ] + ], + {} + ] + ], "effect-value-opacity-replaced-effect.html": [ "bef3bd3e8d27fd721dd373e4f33cbae1f6b5b2c0", [ @@ -330539,7 +332059,7 @@ }, "support": { ".azure-pipelines.yml": [ - "4dae0798b03e7635d64e47036ea4ffc2d2d5d557", + "3f31846aa59e3bc7b8f0235098febedeed97d317", [] ], ".gitattributes": [ @@ -330557,7 +332077,7 @@ ], "workflows": { "documentation.yml": [ - "4f1f3b2ed3846fc79b080fde2330162af7757d78", + "0d72edd3e7eb9fbbafcd0ab378edb397ea739d9b", [] ], "epochs.yml": [ @@ -330569,11 +332089,11 @@ [] ], "manifest.yml": [ - "457861edecd7742c8bdd41e817ded2e7a084a98d", + "a6e5e43caac28ac748382d0af559dcfdb522610d", [] ], "regen_certs.yml": [ - "e1691b779ff300b742310068e6bfe14eb547f0e0", + "4b5549d3aac86ac59493b2ca70dd650847ee4eee", [] ] } @@ -330635,11 +332155,19 @@ }, "private-aggregation": { "debug": { + "report-protected-audience": [ + "7ffdb70773d47d2e5943253d27520b5cece907ba", + [] + ], "report-shared-storage": [ "7ffdb70773d47d2e5943253d27520b5cece907ba", [] ] }, + "report-protected-audience": [ + "7ffdb70773d47d2e5943253d27520b5cece907ba", + [] + ], "report-shared-storage": [ "7ffdb70773d47d2e5943253d27520b5cece907ba", [] @@ -333726,6 +335254,10 @@ [] ], "support": { + "clear-site-data-cookie.py": [ + "eb50cb54ef867844ea741fe1fdb01df970e4deea", + [] + ], "controlled-endpoint.py": [ "bb4f464088e46438f993d66ae0da134bb4410c7b", [] @@ -333922,6 +335454,10 @@ "226bb1c3b10489842901a1184b2b8822d2976075", [] ], + "clear-site-data-client-hints.https.html.headers": [ + "226bb1c3b10489842901a1184b2b8822d2976075", + [] + ], "clear-site-data-cookies.https.html.headers": [ "226bb1c3b10489842901a1184b2b8822d2976075", [] @@ -374328,11 +375864,11 @@ [] ], "anchor-scroll-nested-ref.html": [ - "6190258f3cb50d4048eb843ba7c68ff191317b6f", + "a651114868b89528b009ab9ff6fdf489fc6ac67e", [] ], "anchor-scroll-ref.html": [ - "7935f3823fdda80f0639bbfa7b179b6fc10e3303", + "06d4a60e23a4822eee74c792bd143822625c9b96", [] ], "anchor-scroll-update-005-ref.html": [ @@ -374344,11 +375880,11 @@ [] ], "anchor-scroll-vlr-ref.html": [ - "cbb249e150db12585c3175b281678a6761cd9295", + "01be0823e36124d0d05ccdf403d801f11a1c7e2c", [] ], "anchor-scroll-vrl-ref.html": [ - "746dfee07448abd7cedd70791511e8612a63493d", + "2366a7dc097e619bc6bcd4eb06e347a877c7e166", [] ], "sticky-anchor-position-invalid-ref.html": [ @@ -378054,7 +379590,7 @@ [] ], "content-visibility-075-ref.html": [ - "11fbd762525b891a59c8a04f1bb3f6325e3fe7cc", + "e0c485c59f3be15b9ad3bffc2658b82a73b0380d", [] ], "content-visibility-078-ref.html": [ @@ -378073,6 +379609,10 @@ "bc00c86b8be8c7e27ec14c3b6b45522f184cb50b", [] ], + "content-visibility-auto-nested-scroll-ref.html": [ + "aad9b9b73efe854cb0324b55c461c51592cf7a00", + [] + ], "content-visibility-canvas-ref.html": [ "dbedcf18ad7200f3595ba70607fb023a1373edb7", [] @@ -378089,6 +379629,14 @@ "5e1e9bdde841828cbd4fc3d6cc165305361f4f36", [] ], + "content-visibility-with-popover-top-layer-and-auto-descendant-ref.html": [ + "211bb89a33eadb6f0f8b8b5703c39a7b1d6dc67f", + [] + ], + "content-visibility-with-top-layer-and-auto-descendant-ref.html": [ + "40a2d9acd35a7042b9664a81b34c61af437a607c", + [] + ], "content-with-popover-top-layer-ref.html": [ "59b2304d9efff8796c1191c5f22627c0e18c60a7", [] @@ -390142,7 +391690,7 @@ [] ], "positioned-grid-items-025-ref.html": [ - "803539a069c21f3979821984188187412002c8a3", + "b9e30e42863b159507a26918f2ca11c7b5f85514", [] ], "positioned-grid-items-negative-indices-001-ref.html": [ @@ -391326,6 +392874,10 @@ } }, "css-highlight-api": { + "highlight-priority-painting-ref.html": [ + "1865f1e104917ebeb3d6e9cb53de06977ea8623c", + [] + ], "painting": { "css-highlight-painting-underline-offset-001-ref.html": [ "3d01bccf55dd9c20e361551bc924d5c9353c503e", @@ -392470,6 +394022,12 @@ "42e669d316d4f470cf4d339fce632a6a69c583ca", [] ], + "baseline-source": { + "baseline-source-inline-box-ref.html": [ + "ef3077970a298a026ffaa2e0584ed5220ae10f59", + [] + ] + }, "empty-text-node-001-ref.html": [ "7ec7f1bdb0b910cb1b525535d3cc1a280a3b6136", [] @@ -392668,6 +394226,10 @@ "text-box-trim-half-leading-inline-box-002-ref.html": [ "0a615e6222cbe9c1cc656bc41b812619129eb2e5", [] + ], + "text-box-trim-half-leading-inline-box-003-ref.html": [ + "bf0fb3283d353a06707542838a15938837e7a025", + [] ] } }, @@ -393356,6 +394918,10 @@ "af164c30f06808c3394cf3210ca13bc41792d53c", [] ], + "clip-path-xywh-interpolation-001-ref.html": [ + "e3f646b3e049b0a04a00c59603f4c01045991a46", + [] + ], "two-clip-path-animation-diff-length1-ref.html": [ "0feacb50bae46f131931212122f2b5b0e96d9701", [] @@ -393558,6 +395124,10 @@ "f718ea6abfbab54333ba674ff0dcd320d8672bcd", [] ], + "clip-path-xywh-003-ref.html": [ + "12f219eca63d561c060fee3af79261fd257a394f", + [] + ], "green-100x100.html": [ "f718ea6abfbab54333ba674ff0dcd320d8672bcd", [] @@ -395528,6 +397098,10 @@ "b1db1a8cb719dad46703275cf66cc6b2c20708e8", [] ], + "scrollbar-gutter-dynamic-003-ref.html": [ + "259afc014ec4c5ece4af5bb62a0a2d2d44d867d7", + [] + ], "scrollbar-gutter-rtl-002-ref.html": [ "e6510a081353db996c4ead14ad6a167b90d48297", [] @@ -396296,7 +397870,7 @@ ], "resources": { "utils.js": [ - "8cf16e367f1d1c40324b7fb3df7edda87832b230", + "be51111fd37357e81596b8fbaba8c7a8e7a5093b", [] ] }, @@ -397480,7 +399054,7 @@ [] ], "common.js": [ - "b380fe80c88ebf4146c8048c3ce6ae4ea33a0d4b", + "2eb7f3c3a84d43589fbf0bac27cb9364a91b2640", [] ], "scroll-target-align-001-iframe.html": [ @@ -397530,6 +399104,26 @@ "389cf34b716ea17620c6a1d750ac5406945bf9ba", [] ], + "scrollbar-color-006-ref.html": [ + "f1822b81844458c30e857599838cace6660ddbef", + [] + ], + "scrollbar-color-007-ref.html": [ + "f1822b81844458c30e857599838cace6660ddbef", + [] + ], + "scrollbar-color-008-ref.html": [ + "f1822b81844458c30e857599838cace6660ddbef", + [] + ], + "scrollbar-color-009-ref.html": [ + "890179a21c68bc7051c1db252fb7550468bb952e", + [] + ], + "scrollbar-color-010-ref.html": [ + "890179a21c68bc7051c1db252fb7550468bb952e", + [] + ], "scrollbar-width-paint-001-ref.html": [ "42295b1fb9d7d7ef8622c729265e344117c65cc2", [] @@ -402275,6 +403869,10 @@ "7bbacef735c08e8f214f341d77179edc1b90d315", [] ], + "text-transform-capitalize-034-ref.html": [ + "c71e7d50eeca1f5624dbefc397e22e7dc82c94a8", + [] + ], "text-transform-fullwidth-002-ref.xht": [ "157a06d23bfc2c4c70fb12c74ba004c55062b25e", [] @@ -404279,10 +405877,6 @@ "3e90578504fcae95cea2e27be783ff741bd05dbc", [] ], - "skew-test1-ref.html": [ - "394de2b6c259f0f2f070f0bd2993c0e284b0e972", - [] - ], "subpixel-transform-changes-001-ref.html": [ "db26f0d006adffe8d719e068813be67725660090", [] @@ -404708,6 +406302,10 @@ "bee8bc70fe5d3ff49f7bd39d473bbb8a230f7d08", [] ], + "svgbox-dasharray-ref.html": [ + "ebcb699c7d108bd5d5b4967adb0f52d2dceb902d", + [] + ], "svgbox-ref.html": [ "c765ebe8665a71d2f79a9512dad4c9bd63756299", [] @@ -407500,6 +409098,14 @@ "859abdfb5f259021120d3810fa3fadce8be968c5", [] ], + "capture-with-visibility-hidden-child-ref.html": [ + "10067cc5212f467b6d6b62d7344d3b3a8c4dcaac", + [] + ], + "capture-with-visibility-mixed-descendants-ref.html": [ + "c47b31e4d5a3a2121bf8191c1e612b5a5f2f1663", + [] + ], "content-object-fit-fill-ref.html": [ "b86e0a95a172bcc191f17d954b2cf6bd710a1fd1", [] @@ -407965,6 +409571,10 @@ "web-animations-api-ref.html": [ "ab66e7d16df6acf73a4a4b88bd74a727876c966c", [] + ], + "writing-mode-container-resize-ref.html": [ + "3f8835ef94e6cda8718b61f31379c5dec5421104", + [] ] }, "css-will-change": { @@ -410292,6 +411902,14 @@ "e1b7b34b562c8c125c5a6b2dfa885f679ebf812c", [] ], + "text-combine-upright-rtl-001-ref.html": [ + "e3b1b1b6b4bf6ec5d101d9313e0c7e86aacd13ed", + [] + ], + "text-combine-upright-rtl-002-ref.html": [ + "6fb4feae9c630f5f53f5a2783a8902d6a56fdc35", + [] + ], "text-combine-upright-shadow-ref.html": [ "c56fb9d034e325071b1f65c9c520e13c154974c6", [] @@ -411201,6 +412819,30 @@ [] ], "filter-function": { + "filter-function-conic-gradient-ref.html": [ + "535feb40eba6a0a57ccfde85836bfcddfd200fc2", + [] + ], + "filter-function-linear-gradient-ref.html": [ + "6758f16fb65eaa6bc498c547df7d822f21c79aee", + [] + ], + "filter-function-radial-gradient-ref.html": [ + "8c1667a3aad804852b1c22babc3031f020dcbe3a", + [] + ], + "filter-function-repeating-conic-gradient-ref.html": [ + "fc104daaf03fb79547c0f12b38e92bbf498c94bb", + [] + ], + "filter-function-repeating-linear-gradient-ref.html": [ + "5aca26e04127ccbf7dd88c4bd28c0e328e49af99", + [] + ], + "filter-function-repeating-radial-gradient-ref.html": [ + "b91a8bed2fe561dcd8e47a3bcfb3ce6d1df30c9d", + [] + ], "resources": { "green-transparent-100x100.png": [ "fe89b0da37571c09e921a44c9efa05cbedc27620", @@ -411991,11 +413633,15 @@ [] ], "offset-path-shape-xywh-001-ref.html": [ - "12f9668dd5c8884368fe89104474d287bb04b28b", + "a7fd10c76e74720813bd2b74a378f1da76d84113", [] ], "offset-path-shape-xywh-002-ref.html": [ - "1b672d1d98e712667d6c8d819f0c97c49985fc7b", + "8b9ca37aa4a6cf516ae8d6d0c0c18d93bc3014c0", + [] + ], + "offset-path-shape-xywh-003-ref.html": [ + "ef371f45c5c401c92fb9166687650e104241725e", [] ], "offset-path-string-ref.html": [ @@ -412875,7 +414521,7 @@ [] ], "computed-testcommon.js": [ - "831baf311a308ad30f93755ac69d698767254ebb", + "31bf451ecf371ec1e45f11ea404ab4d0ea607b24", [] ], "delete-other-rule-crash.css": [ @@ -412907,11 +414553,11 @@ [] ], "interpolation-testcommon.js": [ - "ce180ff2f674ef67a856161039afbcf8e57de65f", + "7934127937674e35f0a4c8be9f3e53b2b24a0c28", [] ], "numeric-testcommon.js": [ - "3a39e2a973a6f7ab688379635f8fe714027c863d", + "ea1762e7fd7ab6f7317bab2caa67b72146932fe7", [] ], "parsing-testcommon.js": [ @@ -413064,8 +414710,8 @@ [] ], "form-associated": { - "ElementInternals-reportValidity-bubble-ref.html": [ - "54a438245c8ea807a71d35d449893b016a51d9a4", + "ElementInternals-reportValidity-bubble-notref.html": [ + "dda233296569d8ec855855434a4947d8a847a2c6", [] ] }, @@ -413503,7 +415149,7 @@ [] ], "making-a-testing-plan.md": [ - "a4007039ae4aa47ee2f06df784b34b48e8678214", + "eb96f31202e21fa2509781fead227931075c5e97", [] ], "manual.md": [ @@ -417874,7 +419520,7 @@ [] ], "response_block_probe.js": [ - "d23ad488af203f0a8b7de63beff9f9c3dd7e5dee", + "9c3b87bcbd33ba980cd15f2e717ec4a2925c65d3", [] ], "response_block_probe.js.headers": [ @@ -418047,106 +419693,6 @@ ] } }, - "local-network-access": { - "META.yml": [ - "944ce6f14a1204f048e00db3b7ea21da93037709", - [] - ], - "README.md": [ - "8995e3d7ef6ba5b7286c334842bd0b77426882a1", - [] - ], - "resources": { - "executor.html": [ - "d71212951cb63ebd310820d1df7c8789b5fbd316", - [] - ], - "fenced-frame-fetcher.https.html": [ - "b14601dba51d96e29340a43bde00f7b8af25fd9d", - [] - ], - "fenced-frame-fetcher.https.html.headers": [ - "6247f6d63211cd39dffca9fc507aefcdee586eba", - [] - ], - "fenced-frame-local-network-access-target.https.html": [ - "2b55e056f39834bbad4af96d2dc2549fbc400bf7", - [] - ], - "fenced-frame-local-network-access.https.html": [ - "860371f22396477f1af1a8d89aecf04893977222", - [] - ], - "fenced-frame-local-network-access.https.html.headers": [ - "6247f6d63211cd39dffca9fc507aefcdee586eba", - [] - ], - "fetcher.html": [ - "000a5cc25bb72b334d41ff05e7b8f22691f48f30", - [] - ], - "fetcher.js": [ - "3a1859876d406cebe9a2bbc63952d019ddc5ed06", - [] - ], - "iframed.html": [ - "c889c2882a45030fb1257db6be812a722475c9f3", - [] - ], - "iframer.html": [ - "304cc54ae4448b84bf43aad3279b2dd198add165", - [] - ], - "preflight.py": [ - "be3abdbb2a1850c6c68ed0064ee45645fa85496b", - [] - ], - "service-worker-bridge.html": [ - "816de535feaa83c224e76159d3defa571b1199fe", - [] - ], - "service-worker.js": [ - "bca71ad910cb189c2de6298b4ea59b5594aba637", - [] - ], - "shared-fetcher.js": [ - "30bde1e0542d144f9b5b0e47824802df13556ee2", - [] - ], - "shared-worker-blob-fetcher.html": [ - "a79869b2f96249969d44e5f18341fa1cbd094f4d", - [] - ], - "shared-worker-fetcher.html": [ - "4af4b1f23959e00c50d48a926f24d97edb8edb90", - [] - ], - "socket-opener.html": [ - "48d27216bedf9aa1daf4d2a4e96f860e9315a0c3", - [] - ], - "support.sub.js": [ - "ca8d2e61ee6406896b8a197296953dba514a7356", - [] - ], - "worker-blob-fetcher.html": [ - "5a50271e11b57d808b01a5849b1bee7d3dbeba28", - [] - ], - "worker-fetcher.html": [ - "bd155a532bd2d9dd2b5f96383cb8bde27a289856", - [] - ], - "worker-fetcher.js": [ - "aab49afe6f47c752884d407cfa48ef38e3b4a847", - [] - ], - "xhr-sender.html": [ - "b131fa41f9a8bf14c5c0a1aac8fcc2593bec6c42", - [] - ] - } - }, "metadata": { "META.yml": [ "85f0a7d2ee12616aa7a5698b346954829d8a8bb0", @@ -418469,6 +420015,14 @@ "820f8cace2143bfc45c0c301e84b6c29b8630068", [] ], + "script-asm-js-invalid.js": [ + "8d1bbd6abc8e5aae530325985ca4831389e56a84", + [] + ], + "script-asm-js-valid.js": [ + "79b375fe0547a72e76422f04b1c5462175739971", + [] + ], "script-iso-8559-1.js": [ "3bccb6af93eebb48e3fece216303c2ff05eea8e5", [] @@ -418521,6 +420075,106 @@ ] } }, + "private-network-access": { + "META.yml": [ + "944ce6f14a1204f048e00db3b7ea21da93037709", + [] + ], + "README.md": [ + "a69aab487239021088f944b0a8cee2dad4b3d111", + [] + ], + "resources": { + "executor.html": [ + "d71212951cb63ebd310820d1df7c8789b5fbd316", + [] + ], + "fenced-frame-fetcher.https.html": [ + "b14601dba51d96e29340a43bde00f7b8af25fd9d", + [] + ], + "fenced-frame-fetcher.https.html.headers": [ + "6247f6d63211cd39dffca9fc507aefcdee586eba", + [] + ], + "fenced-frame-local-network-access-target.https.html": [ + "2b55e056f39834bbad4af96d2dc2549fbc400bf7", + [] + ], + "fenced-frame-local-network-access.https.html": [ + "860371f22396477f1af1a8d89aecf04893977222", + [] + ], + "fenced-frame-local-network-access.https.html.headers": [ + "6247f6d63211cd39dffca9fc507aefcdee586eba", + [] + ], + "fetcher.html": [ + "000a5cc25bb72b334d41ff05e7b8f22691f48f30", + [] + ], + "fetcher.js": [ + "3a1859876d406cebe9a2bbc63952d019ddc5ed06", + [] + ], + "iframed.html": [ + "c889c2882a45030fb1257db6be812a722475c9f3", + [] + ], + "iframer.html": [ + "304cc54ae4448b84bf43aad3279b2dd198add165", + [] + ], + "preflight.py": [ + "be3abdbb2a1850c6c68ed0064ee45645fa85496b", + [] + ], + "service-worker-bridge.html": [ + "816de535feaa83c224e76159d3defa571b1199fe", + [] + ], + "service-worker.js": [ + "bca71ad910cb189c2de6298b4ea59b5594aba637", + [] + ], + "shared-fetcher.js": [ + "30bde1e0542d144f9b5b0e47824802df13556ee2", + [] + ], + "shared-worker-blob-fetcher.html": [ + "a79869b2f96249969d44e5f18341fa1cbd094f4d", + [] + ], + "shared-worker-fetcher.html": [ + "4af4b1f23959e00c50d48a926f24d97edb8edb90", + [] + ], + "socket-opener.html": [ + "48d27216bedf9aa1daf4d2a4e96f860e9315a0c3", + [] + ], + "support.sub.js": [ + "f72a57a2c35d2555fb5452c9cbb0bcb777251765", + [] + ], + "worker-blob-fetcher.html": [ + "5a50271e11b57d808b01a5849b1bee7d3dbeba28", + [] + ], + "worker-fetcher.html": [ + "bd155a532bd2d9dd2b5f96383cb8bde27a289856", + [] + ], + "worker-fetcher.js": [ + "aab49afe6f47c752884d407cfa48ef38e3b4a847", + [] + ], + "xhr-sender.html": [ + "b131fa41f9a8bf14c5c0a1aac8fcc2593bec6c42", + [] + ] + } + }, "range": { "resources": { "basic.html": [ @@ -418637,7 +420291,7 @@ "fledge": { "tentative": { "TODO": [ - "d50e49261164795e9f49e50100de04178bc5ff7f", + "96654d2c592e9c570073afc5da1620020040d24c", [] ], "resources": { @@ -418658,7 +420312,7 @@ [] ], "fledge-util.js": [ - "5a05764e74e971b0a9bb3f37e7320a388dbac414", + "36fb05615a770cad0ed777ccc718390613140e2d", [] ], "request-tracker.py": [ @@ -422592,6 +424246,18 @@ "direction-rtl-ref.html": [ "010526d667b0746a014aa5706b19c001cd16d67e", [] + ], + "fontVariantCaps-1-ref.html": [ + "8ea3c22be13dd3bf1421c3f80b121edcc8b2d3bc", + [] + ], + "fontVariantCaps-2-ref.html": [ + "c64f5d0ec2aea8307ea4ba5257498f2f236186e6", + [] + ], + "fontVariantCaps-3-ref.html": [ + "069fbfba8823e3e0f5fcf7ada4bd600b6dce1bbd", + [] ] } }, @@ -423198,7 +424864,7 @@ [] ], "canvas.2d.fontStretch-ref.html": [ - "4b3b28baf9dcb1dea96611bfdbfbce0a0aba7c3c", + "00ecdccad3743db0d0a1ec99850f80ea7964d512", [] ] }, @@ -424079,7 +425745,25 @@ "2d.text.draw.stroke.basic.png": [ "fb3b5b830d345d2aa858e41673e08f99977baf08", [] - ] + ], + "canvas.2d.fontStretch-ref.html": [ + "00ecdccad3743db0d0a1ec99850f80ea7964d512", + [] + ], + "reference": { + "fontVariantCaps-1-ref.html": [ + "942bcdec9cb938536738ef1f71a60cd1c85c9086", + [] + ], + "fontVariantCaps-2-ref.html": [ + "dbcb8abd76a544d8a5ab48b1f477fc54c7ba008f", + [] + ], + "fontVariantCaps-3-ref.html": [ + "8d96d0ab0320ea8412e0045f59b6a3ca18260242", + [] + ] + } } }, "resources": { @@ -429089,6 +430773,14 @@ } }, "urls": { + "base-url": { + "resources": { + "send-back-base-url.html": [ + "6fdf81d1db76a752283a740a45b79461aaae071a", + [] + ] + } + }, "resolving-urls": { "query-encoding": { "resources": { @@ -429114,14 +430806,6 @@ ] } } - }, - "terminology-0": { - "resources": { - "send-back-base-url.html": [ - "6fdf81d1db76a752283a740a45b79461aaae071a", - [] - ] - } } } }, @@ -431098,7 +432782,7 @@ [] ], "download_stash.py": [ - "a95fe37dd88e7db829edf3d260d3bdc3b7a7460e", + "11366a9c3f1d89cc378a142bbfa73bd8716062a7", [] ], "iframe-that-checks-contentDocument.html": [ @@ -432234,7 +433918,7 @@ [] ], "popover-anchor-scroll-display-ref.html": [ - "1bac806d11191823bdcf87b61693b00c7d507450", + "926a171e9af801d744ec3d84e185e066505b12b6", [] ], "popover-and-svg-ref.html": [ @@ -432283,7 +433967,7 @@ [] ], "popover-utils.js": [ - "4dc4d8138d80c1ee23a1addef0749241ac4f25b8", + "bc7643c21ab46d30f61bf5ad5bbffb9b434377bf", [] ] } @@ -433287,6 +434971,10 @@ "e6f5746eb743a338ad6fbd401715fed368e4cf74", [] ], + "module-import-referrer.js": [ + "8710f5c6213e0494e372a03cc1d8346da3f29622", + [] + ], "nested-imports-a.js": [ "a127aeb559a0a4d6eedccae19905088fa9fce4b9", [] @@ -436548,6 +438236,10 @@ "026e6823515d14e6069d5cb572e18a2a7413ffe4", [] ], + "test_win_open_with_interaction.html.ini": [ + "b1e77bd8e59cff54667270b01eb96cd19e7601e3", + [] + ], "virtual_authenticator.html.ini": [ "92cbbf37621e507fc30fd40013a9c5f9f6a6a567", [] @@ -436697,6 +438389,10 @@ "get_named_cookie.sub.https.html.headers": [ "3dc39a56736614f1d864bda185f368e3adba7419", [] + ], + "interacted_window.html": [ + "708cb9a84b5a28e4a3e586b9f05264907c2efb9c", + [] ] }, "webdriver": { @@ -436993,6 +438689,10 @@ "37b2c61dac94c1d571aa2f6afad24ca01696478b", [] ], + "captured-mouse-events.tentative.idl": [ + "7b081cd9fd8a8a161c98b0bce2597c8a8ffd9df6", + [] + ], "clipboard-apis.idl": [ "3f2c9ba6f28253f6febaf689e150d188d4fc3374", [] @@ -437045,6 +438745,10 @@ "d94b36cf885dbbde79bf3f513341ce20f979c675", [] ], + "css-anchor-position.idl": [ + "c5da3f43f72f1a6c56c41f4767102238aba3d7c8", + [] + ], "css-animation-worklet.idl": [ "82d34a3ea2a2dafb82abc7d1adfdea4641e826de", [] @@ -437601,10 +439305,6 @@ "1e84e79cd1503946088888d02a5da45d5af7c5fe", [] ], - "screen-capture-mouse-events.tentative.idl": [ - "7b081cd9fd8a8a161c98b0bce2597c8a8ffd9df6", - [] - ], "screen-capture.idl": [ "830b96d16fa976f739c73b11433ae0f3fac7b052", [] @@ -438261,7 +439961,7 @@ ] }, "lint.ignore": [ - "0aa529180668e8de05116192c2d170048e9e555c", + "457c93c2149bad23ff39cf176e145419e3c6dabb", [] ], "loading": { @@ -438986,6 +440686,12 @@ [] ] }, + "tables": { + "columnspan-rowspan-ref.html": [ + "400f6b01e3c492d69314d29f0edbfaa99edc25b5", + [] + ] + }, "tokens": { "dynamic-mtext-like-001-ref.html": [ "a145a8eb5124cfff82f9397af6cea58c39af05d1", @@ -441916,7 +443622,7 @@ [] ], "pointerevent_support.js": [ - "d65194db566d563b8e5518b60a0d274d64db01b5", + "56accf8561084c07170453ce8f91112d0ff5a5d9", [] ], "pointerlock": { @@ -442515,11 +444221,15 @@ "private-aggregation": { "resources": { "protected-audience-helper-module.js": [ - "0cf9e89e7b0d6bee1c46ea28fb29b5d9c3986fa6", + "abec6408862ad609438c7024a8f9a66e57f46325", + [] + ], + "protected_audience_event_level_report_handler.py": [ + "c77b9e19c8c1c7ad97bcad7d282bb00b49e196b2", [] ], "reports.py": [ - "2bb151afd785d712e6685fb068562ee5710641d2", + "0f6fd8255afcf3ec1d7f4fe95f14f24ce1d62578", [] ], "shared-storage-helper-module.js": [ @@ -444432,6 +446142,10 @@ "e260f575268e6cab7e30a7126002ab7504699de9", [] ], + "get-resourceID.js": [ + "3fe499226a405d170ab19db34d75056f53c42e10", + [] + ], "green-frame.html": [ "9613240ae38789a104d77d56f890ff62420934b0", [] @@ -444524,6 +446238,10 @@ "81c545efebe5f57d4cab2ba9ec294c4b0cadf672", [] ], + "loadingResources.js": [ + "e5d5d71982af058311c9a0beec8f0f01781970ee", + [] + ], "manifest.json": [ "e107c044d5d8a8a484652917b83902d5e19ed987", [] @@ -444640,6 +446358,10 @@ "2194c5d43a54137e0599671b60e6275b2917e710", [] ], + "test-initiator.js": [ + "f839b463c56d8f70969afffb721e887e54614290", + [] + ], "webperftestharness.js": [ "869ef3d74f77b585e14afc00a8dc90be09db970a", [] @@ -445281,7 +447003,7 @@ } }, "tox.ini": [ - "4fbeb67fb529177dd9ec1cde6ca7aa3062b9179c", + "12013a1a705fe561e021c7285c66d16185506e06", [] ], "wptserver.py": [ @@ -445548,6 +447270,10 @@ "58435be6312cb06f936117c631679663c4ed2b07", [] ], + "custom-property-ref.html": [ + "66e29cde65026e330ad07728ef498edb675682f3", + [] + ], "progress-based-effect-delay-ref.html": [ "59366a88dde86d0deedce5eeea58b9d6c98e0913", [] @@ -448371,6 +450097,32 @@ "2cd7f2f8f86a23d464b30feab0939931134810cc", [] ] + }, + "tentative": { + "static-router": { + "README.md": [ + "8826b3c78276fbf8c7f2ebee0498f40d817a30e9", + [] + ], + "resources": { + "direct.txt": [ + "f3d9861c137b2ddfdeff1690c544f57328df7447", + [] + ], + "simple.html": [ + "0c3e3e78707b14dcca98bf1a435a34f402b3dadd", + [] + ], + "static-router-sw.js": [ + "deb7a3e0b47c58f4ec292ce12a27850d28b1f956", + [] + ], + "test-helpers.sub.js": [ + "64a7f7d24fd2d36dcc914bb321538f576267f010", + [] + ] + } + } } } }, @@ -448410,7 +450162,7 @@ "focus-navigation": { "resources": { "focus-utils.js": [ - "c23581a15ecf26edfa453049bae2e737cdb59a3f", + "0cd4fd26f494eac4e518ec94b91bbd713721ca32", [] ], "shadow-dom.js": [ @@ -448758,22 +450510,38 @@ "1b63235b7cdffe9ebb43bfac3a01d5220e1519fb", [] ], + "set-key-value.https.html": [ + "ba0a24ceb2368b8e69e8f36fcf409efae7c414c0", + [] + ], "shared-storage-permissions-policy-helper.html": [ "d87092aad1d2efedf5d4245884e28e159880b2df", [] ], + "shared-storage-write.py": [ + "8770b11f09d75eeeaa00b8f2cd4f315cb8eba01c", + [] + ], "simple-module.js": [ - "5ebc149fd4a44527116eb71b63a06b9b4817499b", + "968afed31b9a86904d2389a7ae5a34d4d7624595", [] ], "util.js": [ - "a41b4de3a59f2d401c682cab707dafa40ef23f79", + "b8997e080dda97789df627cf62dcd560267c874e", [] ], "verify-get-undefined-module.js": [ "56bc2f51e2b2a19915f430ce863e398c90ba6e69", [] ], + "verify-key-not-found.https.html": [ + "f1c7919c19f2adb9c2e3840f149ec10ce710ab51", + [] + ], + "verify-key-value.https.html": [ + "20c469410492c8a3d600366a285eae9fdbde5ea0", + [] + ], "verify-storage-entries-module.js": [ "ee0c636cd1366ee359e8079c02a0102fab7c78f7", [] @@ -448794,6 +450562,14 @@ "shared-storage-permissions-policy-self.tentative.https.sub.html.headers": [ "36c95f2b087ba06f930731dbd16a54e913d588ca", [] + ], + "shared-storage-writable-permissions-policy-none.tentative.https.sub.html.headers": [ + "9903f7c578df6af6d2a43454e305aec6cffdfa5f", + [] + ], + "shared-storage-writable-permissions-policy-self.tentative.https.sub.html.headers": [ + "36c95f2b087ba06f930731dbd16a54e913d588ca", + [] ] }, "shared-storage-selecturl-limit": { @@ -449097,7 +450873,7 @@ [] ], "soft-navigation-helper.js": [ - "baf26be8b0bf7a06a3e85bc46769e62f796283a0", + "edc9331c26375e81c3b89b6ad891bdcd10d90e86", [] ] } @@ -450093,6 +451869,14 @@ }, "interact": { "scripted": { + "defer.js": [ + "0c0bfb1c23ea783b2ac695a6f3282e50b3e5b5c0", + [] + ], + "log.py": [ + "2a6cc3302962e4bc4fe1c180aea76bbf09ca68a4", + [] + ], "resources": { "blank.htm": [ "18ecdcb795c33d6ab7bbb43f647947defca5634d", @@ -450488,6 +452272,10 @@ "1c9c68bd9d5becec895d4cacac93082bc2defcec", [] ], + "pattern-transform-01-ref.svg": [ + "9ac036177b71a819f1451639c83acc5adf56fb39", + [] + ], "pattern-viewbox-01-ref.svg": [ "c9f6931deadd57bad20ae1dbbd529d595b14adfb", [] @@ -451089,7 +452877,7 @@ [] ], "requirements_tc.txt": [ - "b5618a8b9ddb25ff1c4f546c9ca377c9b6ba30ca", + "bd979ed97c282c46c484000deb3c1fceea701ab3", [] ], "run_tc.py": [ @@ -451131,7 +452919,7 @@ ], "tasks": { "test.yml": [ - "35dbbb1cb6456077b4b834ea449c611e337576b6", + "4e1abf950b5511bc17c1e3e457d7de649c51c64a", [] ] }, @@ -451167,7 +452955,7 @@ [] ], "test_valid.py": [ - "36833ec51ebdf7bcf388d5f5b877daa46e11eae3", + "f7e3d019128fb8951fcc109e6503a471b0107049", [] ] } @@ -451596,7 +453384,7 @@ [] ], "pytest.ini": [ - "3347ec6dbdbcbb20ab02875db0c086517abe1cda", + "81666e01db9e5b653df94dd6293fdf715a503f4a", [] ], "requirements_flake8.txt": [ @@ -451604,7 +453392,7 @@ [] ], "requirements_mypy.txt": [ - "3ccba120882235214683f186caf90ec3ac685365", + "26175e68b41781652731ecb074e2ac29188034cd", [] ], "requirements_pytest.txt": [ @@ -451612,7 +453400,7 @@ [] ], "requirements_tests.txt": [ - "c07c321de39ffa6ba4e8abc9c4cef7837e3d7291", + "1376520bdb49ca566db18b88b13a676f55bfa6f4", [] ], "runner": { @@ -458792,7 +460580,7 @@ } }, "tox.ini": [ - "5efbe9b37abc88e6467bef877e646ce865ee49b0", + "a4b747ac4fa1ac03bf483b04363abe8fad8774eb", [] ], "wave": { @@ -459201,7 +460989,7 @@ [] ], "requirements.txt": [ - "f814994b483e86b28d74de4bd5650295df420d2d", + "b2c151b8fe96a025ad3f6d659fb40ad4053f2b34", [] ], "resources": { @@ -459277,7 +461065,7 @@ ] }, "tox.ini": [ - "e1ee1b529412ff74b8a289bcacc18b3bdee50468", + "06bdfcd674383b7989ebf15345fd2d503516fd37", [] ], "utils": { @@ -459529,28 +461317,32 @@ [] ], "client.py": [ - "c0505dde1d1ffd44ab3834fe15739cf3809f7b2d", + "d8185d8e660a1ba8405bdcf0079d447467262fdc", [] ], "error.py": [ - "b681660f1a8eda58a0f51108af02b861035cd440", + "47f94d83d1300fec18415479436bf317a045f256", [] ], "modules": { "__init__.py": [ - "17503bbf583dddd9d754ef2d4182db5a470f4918", + "da5c14c4bf3405759f8036df6e2d0fa79238f163", [] ], "_module.py": [ "060010b2a331f8c93b8b6f98828d133e68ebe8bf", [] ], + "browser.py": [ + "adb977995054975fa7775a921a20cdec5f746abd", + [] + ], "browsing_context.py": [ - "a9b8d3f76824a86e62b8d351c9a88eae5794bca2", + "1de7cc0931c7a365ffe134666899d5628beabecd", [] ], "input.py": [ - "0670d1ebab48a207a40febb7f0667922cc042bbd", + "b2703843b18192b3e6234732b11c8066b4871589", [] ], "script.py": [ @@ -459580,7 +461372,7 @@ [] ], "transport.py": [ - "774c1c56686f7f5609ffbeeb49424d7a8c7d1e14", + "e1e16bdebadd5ac02a8c3ee744a078a6a4b7668d", [] ] } @@ -459621,7 +461413,7 @@ ] }, "requirements.txt": [ - "d3b88d7f0464318d610aa15f16fa7cc392af36b4", + "883b061589837d34d6a65c9b91a2f31fb7c81c01", [] ] }, @@ -459771,7 +461563,7 @@ ] }, "tox.ini": [ - "9e8b9d720f9c7243b87e7e92e0983f197da94679", + "4068f708986c4d5453c6447125c2a305ef378165", [] ], "update.py": [ @@ -459827,11 +461619,11 @@ ] }, "requirements.txt": [ - "32fd3ff8c9a5aaea9f18487d124b2e4973a18870", + "64a475dd4006333475f5fe75bf39d2f6eb3f3458", [] ], "requirements_chromium.txt": [ - "d3b88d7f0464318d610aa15f16fa7cc392af36b4", + "883b061589837d34d6a65c9b91a2f31fb7c81c01", [] ], "requirements_edge.txt": [ @@ -459839,15 +461631,15 @@ [] ], "requirements_firefox.txt": [ - "30a2b8a6bdb3967a6a81926d3382f43627d6d2ea", + "102b74609788f549144fd22079495999a03bd649", [] ], "requirements_ie.txt": [ - "788506b4ac3a2cb4bcf939ebacb900520719f8fe", + "aa272e2bfdd4ce0bccaa9ec9008f2dfa20c1997d", [] ], "requirements_opera.txt": [ - "788506b4ac3a2cb4bcf939ebacb900520719f8fe", + "aa272e2bfdd4ce0bccaa9ec9008f2dfa20c1997d", [] ], "requirements_safari.txt": [ @@ -459863,7 +461655,7 @@ [] ], "tox.ini": [ - "5aef267dad9116a60190f528493658bcb7c4176f", + "2a3f2bdf10952a56d3d9129fae681726d70780ab", [] ], "wptrunner": { @@ -461535,7 +463327,7 @@ [] ], "setters_tests.json": [ - "347caf49ab0520fc855b1ce51661498deee1c35e", + "82adf4cdce270b5b60a45a3845446be7faf14f64", [] ], "toascii.json": [ @@ -462103,6 +463895,10 @@ ] }, "keyframe-effects": { + "effect-value-opacity-replaced-effect-in-shadow-root-ref.html": [ + "792ca214cfb0c9b02609b484a95891bd1683bfe3", + [] + ], "effect-value-opacity-replaced-effect-ref.html": [ "792ca214cfb0c9b02609b484a95891bd1683bfe3", [] @@ -463140,7 +464936,7 @@ [] ], "README.md": [ - "accbcd438bf8131a019c0df630ecd05f240c6339", + "0a1324a1ac46c77aacfbec1691192f728c7bcd6e", [] ], "audio-data.crossOriginIsolated.https.any.js.headers": [ @@ -463227,6 +465023,14 @@ "e0d6a6bedcf12dad5ec45a768f638bf1cb1ec1e7", [] ], + "h265.annexb": [ + "7f613c5e9cdc8479fea13525d8dc1e83efd89f49", + [] + ], + "h265.mp4": [ + "1c1adb07630704920efd0721ac85f474ab7cbd6a", + [] + ], "image-decoder-utils.js": [ "eccab9b09a4ac32f5d792c82d99c2cc36f1e35ab", [] @@ -463324,14 +465128,20 @@ ], "bidi": { "__init__.py": [ - "821684620973f3f8a16557ae9839f9c8cb5574c7", + "eb412738a83aea7835c9f5f1feed9363a6028fc4", [] ], "browsing_context": { "__init__.py": [ - "e076885859e7e57dabe568c1e53fca05b9499f68", + "8abf012f27643292b42ceef5b963077b1ab0e330", [] ], + "activate": { + "__init__.py": [ + "5d0b52a5ac4497fbf6bb2f2ab3037048f78a0643", + [] + ] + }, "capture_screenshot": { "__init__.py": [ "64f25b9b861f879127a31f3aa8ed33fffbfb9caf", @@ -463368,6 +465178,12 @@ [] ] }, + "fragment_navigated": { + "__init__.py": [ + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + [] + ] + }, "get_tree": { "__init__.py": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", @@ -463443,16 +465259,16 @@ }, "input": { "__init__.py": [ - "7aa3355929e34e8116101a2fc775fc9bea44844a", + "17f1ae6eb3ef02f2fbd98ed46007443af2109120", [] ], "conftest.py": [ - "71a1152729ae3a7314570595d31acc4795736530", + "4cb61f8820175e7c8208f448bc5c35d81a85b21f", [] ], "perform_actions": { "__init__.py": [ - "e9be0fe6e8c38409a09293dee2415bb468ce58c4", + "fb5bffaebc2115759922c57ce17f13ae1d180c6e", [] ] }, @@ -463493,7 +465309,7 @@ ] }, "conftest.py": [ - "5a6c6551ff9667635085012af361c5e8c7647ab2", + "924d5a34c6d4899bea2d0c14efb013918f9ebbf1", [] ], "response_completed": { @@ -463541,7 +465357,7 @@ }, "script": { "__init__.py": [ - "de443c457801ead41e54d731427f0cbac8eaac65", + "caa1fe514aaf826b468ca570df3c62a58160f395", [] ], "add_preload_script": { @@ -463563,7 +465379,7 @@ ] }, "conftest.py": [ - "61b1e09382e96b1d4ee167cf24bbb60b190feeea", + "c3d39fcb9fda1e831a811e9b1725458240308f78", [] ], "disown": { @@ -463574,7 +465390,7 @@ }, "evaluate": { "__init__.py": [ - "8b137891791fe96927ad78e64b0aad7bded08bdc", + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", [] ] }, @@ -463949,7 +465765,7 @@ }, "perform_actions": { "__init__.py": [ - "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + "af87e197d2c8489ff27659a91d256cf69d4b097d", [] ], "conftest.py": [ @@ -464086,11 +465902,11 @@ [] ], "fixtures.py": [ - "957be6b0f462b1a7f1b61bcfb48cadb01c5f8f7d", + "6033e243552c91f8c9e4b55777232e6c5ac04b41", [] ], "fixtures_bidi.py": [ - "6e53bf7c24390d4bf24b019ddd6a9cbbb209e699", + "a4eab79ff87c4f31373a0cba0ec45494953f9029", [] ], "fixtures_http.py": [ @@ -482995,7 +484811,7 @@ ] ], "comp_host_language_label.html": [ - "221ff0e9fb1a3f85083504d45d9fddbcab9db226", + "aea9e011c4459cedd2f0985f0684090a1acdf71f", [ null, { @@ -490779,6 +492595,47 @@ ] ] }, + "captured-mouse-events": { + "capture-controller-oncapturedmousechange.https.html": [ + "d42ba4ed4611be06d8f3222258aa4857b12c7254", + [ + null, + {} + ] + ], + "captured-mouse-event-constructor-inherited.html": [ + "2e25091eb5c685f35c249fb5a1c649929fc8357e", + [ + null, + {} + ] + ], + "captured-mouse-event-constructor.html": [ + "e9cfe971c004098472723a494e91daaaa18012b4", + [ + null, + {} + ] + ], + "idlharness.https.window.js": [ + "1dda955b10b69beac8b889fa6b06899210d42c52", + [ + "captured-mouse-events/idlharness.https.window.html", + { + "script_metadata": [ + [ + "script", + "/resources/WebIDLParser.js" + ], + [ + "script", + "/resources/idlharness.js" + ] + ] + } + ] + ] + }, "clear-site-data": { "executionContexts.sub.html": [ "b3ae17576a3b09fe576c24d8d454b5ef504832a8", @@ -490808,6 +492665,34 @@ {} ] ], + "set-cookie-after-clear-all.https.html": [ + "73f6bafc252f6ef23139a77a86442e8099657e8e", + [ + null, + {} + ] + ], + "set-cookie-after-clear-cookies.https.html": [ + "69a99e7f5810a7f1edfb0eb5fee02899cc89cc6f", + [ + null, + {} + ] + ], + "set-cookie-before-clear-all.https.html": [ + "73bd3476fb7ee483ed7b82bdf7bbd29034069158", + [ + null, + {} + ] + ], + "set-cookie-before-clear-cookies.https.html": [ + "28ba79e9f852e4d589f8baed68a1dca19fc909c5", + [ + null, + {} + ] + ], "storage.https.html": [ "854c8f259e18d40c29aa8a555d0b3d2e1dd63ea4", [ @@ -491231,28 +493116,35 @@ ], "clear-site-data": { "clear-site-data-all.https.html": [ - "4abc620c9dc3e8586f715d43a4f839c9821133fe", + "a371f07fedf9fa4651e749a230266d76cbb53976", [ null, {} ] ], "clear-site-data-cache.https.html": [ - "bb1f8aa43e7930d0484e5cc8c18e2ba1c6b22d34", + "1be71bf8b03471ba954cc4b5242bf091a3480c13", + [ + null, + {} + ] + ], + "clear-site-data-client-hints.https.html": [ + "d37f62af8f8bd247d7ffd22d09518888393ea5b1", [ null, {} ] ], "clear-site-data-cookies.https.html": [ - "72b7f6794e9fceed910dfe0b309aa1fb16e5559f", + "e506b717e1bfde746289c22bb6dc66c6e62f73b1", [ null, {} ] ], "clear-site-data-storage.https.html": [ - "49578134f56767923415287c5ce60b8713713066", + "19bce9e91ee97da8d83d3e7a348faac117917bb4", [ null, {} @@ -502832,7 +504724,7 @@ ] ], "schemeful-navigation.tentative.html": [ - "5ead2a54c7f989353a1b496eea2ab5b1ff4b3b05", + "c1a86690dc90f569ad3c6eaa23f1e6d6c2589dae", [ null, { @@ -505173,119 +507065,112 @@ ] ], "anchor-scroll-002.html": [ - "88e8a754b5b1c81b75f3befabdf16216148b1317", + "8ef6f500a1f2fbc562def420ac79ca9939d50f03", [ null, {} ] ], "anchor-scroll-003.html": [ - "87d8153e7e37d845196dc0c3b6d58e92abf95a56", + "c1b31c0becf286b0b155578f29c6b7e9a6cd9e1e", [ null, {} ] ], "anchor-scroll-004.html": [ - "ce66a27422cac8f15eb1715c1f941d28703accfd", + "d08279118d9e9ca848fd9fb9e6e56fc77ade42ff", [ null, {} ] ], "anchor-scroll-005.html": [ - "82f3a23ac9c79184cdb033305364b8cf215536b7", - [ - null, - {} - ] - ], - "anchor-scroll-basics.html": [ - "6b2d96708bd44808f0cb7ce10a1b52e708e09eba", + "a9a7d24d2b9ccd9af9a9771f66c7a3da433a1efa", [ null, {} ] ], "anchor-scroll-fallback-position-001.html": [ - "a9a5d8c0ff4e84858c180eb440b514400ab97779", + "04518e5019349f74a2435f6c80318b2481f8fa15", [ null, {} ] ], "anchor-scroll-fallback-position-002.html": [ - "e51f675fffe1e935804a4bb970bbd4815305c15a", + "f30c35d390da9384d9a7deb7a7079ff8dc84a399", [ null, {} ] ], "anchor-scroll-fallback-position-003.html": [ - "ae212f919081ef6ef3a169ea4fae1cdaf01f7a26", + "60bc9b919af0cf027d760af66f567a55556e1161", [ null, {} ] ], "anchor-scroll-fallback-position-004.html": [ - "0227fa753ef434a8237061712db8e4433862ef20", + "99e4f9c30d1dd626773276c5e6af206641487d5f", [ null, {} ] ], "anchor-scroll-fallback-position-005.html": [ - "3dedd4d7e686505c10dcad99ca5f58f8cae38c2b", + "0adfe0834d850c000cbe0692446ec70d33036de1", [ null, {} ] ], "anchor-scroll-fallback-position-006.html": [ - "aa5f7c0abff3eb47b679cf7edd49d0915f44a34f", + "b4a1a24de69f7d3163226707de6f5ce35b1163ff", [ null, {} ] ], "anchor-scroll-fallback-position-007.html": [ - "cce0a74b90bea228d6ee5d5a5cbe02c11c9411f2", + "baa283ba94454071c682f3ae66bb3a1b45060dae", [ null, {} ] ], "anchor-scroll-fallback-position-008.html": [ - "1df6a7a1d41aa4a2b8ec78d804ec657a4094e2fa", + "ae625d5823982ed9f24ca80fb599f1f7332c0977", [ null, {} ] ], "anchor-scroll-fallback-position-009.html": [ - "c4bf76d759b3e98ed2ed836b6f1bec1aed250e0f", + "b355d476e6b7f6a323e7cdc69bc3a4a0a926256a", [ null, {} ] ], "anchor-scroll-fallback-position-010.html": [ - "ace94a071a700eeee3d053f4c4d321cf31cf459b", + "a0dd599b3b66effef00d28774783793a92349115", [ null, {} ] ], "anchor-scroll-fallback-position-011.html": [ - "722c45634ff2052c889be08d42fdc912a42df0a1", + "98fa4b5f86cd5239ea77f527d6cf6453ca0373a1", [ null, {} ] ], "anchor-scroll-js-expose.html": [ - "f19d010d35931bba86d39988d3f0d4db385cbd8b", + "1ef44d03c2202dfc053f27c0e12e2a397634267e", [ null, {} @@ -505368,6 +507253,13 @@ {} ] ], + "at-position-fallback-cssom.html": [ + "df295bf2d0adc79d7792775d29e8373a88609112", + [ + null, + {} + ] + ], "at-position-fallback-invalidation-shadow-dom.html": [ "162bfe940d4644dffa6ddbd0ddec8a22741a2eb9", [ @@ -505382,6 +507274,13 @@ {} ] ], + "idlharness.html": [ + "2679bb3740b99a20024ff2254037d42fb6793af7", + [ + null, + {} + ] + ], "position-fallback-001.html": [ "d28c71ec6813000296012a4fcab8787dbb3e8f5d", [ @@ -505410,6 +507309,48 @@ {} ] ], + "position-fallback-bounds-001.html": [ + "7735115e592dca0168cc3ac41e6762534de9bfa9", + [ + null, + {} + ] + ], + "position-fallback-bounds-002.html": [ + "7bd71216e7df9625d9901083151d1f1408de301f", + [ + null, + {} + ] + ], + "position-fallback-bounds-003.html": [ + "0e0e243a16e8637160738e0a2a17c1c37e017f0a", + [ + null, + {} + ] + ], + "position-fallback-bounds-004.html": [ + "ff982ea93e49f666a254ea6704332c576c7842bc", + [ + null, + {} + ] + ], + "position-fallback-bounds-005.html": [ + "deb546a1e2eca11f9928cdbbf85299cc0bdce29c", + [ + null, + {} + ] + ], + "position-fallback-bounds-006.html": [ + "5a19c59f3104aaa556186e7dfa93d237bf46ad79", + [ + null, + {} + ] + ], "position-fallback-bounds-basics.html": [ "3b8b67bd978f3361512222f75cd71f08143007b1", [ @@ -505753,7 +507694,7 @@ ] ], "display-interpolation.html": [ - "791e794c70fdf8ec8823504b8f014992c97fbf7a", + "4c3f8f8d217d62114e707b14b6476eb87ed231d7", [ null, {} @@ -508271,7 +510212,7 @@ ] ], "scope-invalidation.html": [ - "c5bdb6165852f445f870e78d5e77e812cff3a069", + "d41df57851e189ed9312435487c3cd72519eebe6", [ null, {} @@ -508292,7 +510233,7 @@ ] ], "scope-nesting.html": [ - "34a13a1cb1805f036afb9212dcd29d46ac5fbc97", + "05cdac9fc9457cd1b8e6b8f3434cbbd118aa3d1a", [ null, {} @@ -508305,8 +510246,8 @@ {} ] ], - "scope-shadow.html": [ - "100438f534b68a9d801fe6bf63343a352b4834e5", + "scope-shadow.tentative.html": [ + "7bcd2e63cf8800738e862853767f4da020ea9d79", [ null, {} @@ -508333,6 +510274,13 @@ {} ] ], + "scope-visited-cssom.html": [ + "aba4b752b2f04d84e6816df83a08ba0b282e1a6f", + [ + null, + {} + ] + ], "unset-value-storage.html": [ "97a27ff67b4ff0a15f279c6ca82190bf0009267f", [ @@ -508451,7 +510399,7 @@ ] ], "color-computed-rgb.html": [ - "1205d005125e25c2472330993367f71c8074d924", + "3b6fa2005681a1c4edf3cf8ffea6515bae35dc7b", [ null, {} @@ -508598,7 +510546,7 @@ ] ], "color-valid-rgb.html": [ - "eb50db02cb2c18f3838921881e0b3aa290715112", + "22054a18f90b2e0df6e60568bf48845809ca71e4", [ null, {} @@ -509893,7 +511841,7 @@ ] ], "content-visibility-interpolation.html": [ - "9e5551a6f84d135ebaf3a4b7b1b96f739456ac95", + "4b3cf856494e3ead5f8335abfd5fc6c7f63f11ea", [ null, {} @@ -512225,7 +514173,7 @@ ] ], "row-compat-001.html": [ - "cc6809243eec892387cd4039d8133060d61a26e2", + "1fb248acb8e9581a247dedc5fd85d161f0a4ecd1", [ null, {} @@ -513160,7 +515108,7 @@ ] ], "font-face-src-tech.html": [ - "fb7d92f8e4c99bc0a47aa198aafd3d00311c6449", + "0a58c34524f099a791b96df573b94ea36b5d7ee2", [ null, {} @@ -517519,6 +519467,13 @@ {} ] ], + "highlight-priority.html": [ + "ac0ef8a6cd35dd6e3d06267c9184b2fd455d037c", + [ + null, + {} + ] + ], "highlight-pseudo-computed.html": [ "e50f1801b0c0d0fb4f357f77f0a6cddd940bf389", [ @@ -518371,6 +520326,20 @@ null, {} ] + ], + "padding-block-interpolation.html": [ + "881c36e323d6e7b390856193e166b09ff6366b73", + [ + null, + {} + ] + ], + "padding-inline-interpolation.html": [ + "293493e3bc95e813ff198f904d06c72d4e833961", + [ + null, + {} + ] ] }, "getComputedStyle-listing.html": [ @@ -518962,7 +520931,7 @@ ] ], "interpolation.html": [ - "f580de9c76951a977a88da4375f61bb00bd77de5", + "e52d9e895916b3a74db21b7e377ca91e5d29ab19", [ null, {} @@ -519038,14 +521007,14 @@ ] ], "clip-path-computed.html": [ - "00a75cdefa8fb3c88dff5c5a14a8142f936b9d49", + "37b0193f461331ea5b44e2c00c6a8305df87b08e", [ null, {} ] ], "clip-path-invalid.html": [ - "1dbdb5acab0cc86ed0f98d79c245b24c147a7053", + "376cad3c520f116229e39ce5f3b064c0547a8de4", [ null, {} @@ -519059,7 +521028,7 @@ ] ], "clip-path-valid.html": [ - "fd268b429163854ecc5b64db8afc06ba0209f4b3", + "f495d46a24822a0008a70c067b4b35d10ee6a263", [ null, {} @@ -519693,14 +521662,14 @@ ] ], "parsing.html": [ - "063221ea0d9d02b93b677a3eaf172bc8f28f06b2", + "b189190f4125795c76997d32e3b5ce48b10fd140", [ null, {} ] ], - "serialize-group-rules-with-decls.tentative.html": [ - "c3b6bb7be749e27d3ead37d2f2d32ab37d350828", + "serialize-group-rules-with-decls.html": [ + "7e9aaafbeb894c2cbb2ff8acfb47b576f89da5c4", [ null, {} @@ -520456,7 +522425,7 @@ ] ], "overlay-transition.html": [ - "2d641c5466709626572072737461737128f39f61", + "9eae2115ff07a6f279843142a2a311f3fa3f73e4", [ null, {} @@ -521278,14 +523247,14 @@ ] ], "custom-property-transition-custom-ident.html": [ - "73898d350dbbf4715c2fe6f62056bcb3277182b0", + "2f5b55459d5b80c7c3e790579eb8f308f602367f", [ null, {} ] ], "custom-property-transition-image.html": [ - "30fe35db2bec8d73b906ad354a683d1614c70766", + "8498615a936f6d2b66c858ba8b93c77873680994", [ null, {} @@ -521327,7 +523296,7 @@ ] ], "custom-property-transition-mismatched-list.html": [ - "84473ca916afe1dedf1d47a80b3b5652193ff33a", + "e6ca781ce6409de32e8c3aca9c1e867647c3c1de", [ null, {} @@ -521383,21 +523352,21 @@ ] ], "custom-property-transition-transform-function.html": [ - "aa491555c73dfe1eab4e38bab482e5c5492d3bce", + "385c222cd0e8a4fb85a1ea22fe435e093767c566", [ null, {} ] ], "custom-property-transition-transform-list.html": [ - "8b7424fec5a0faaad0518775c4a3f13cd727ac9e", + "1e5cef194d09a6afcb59b386e160b22e1c6554cb", [ null, {} ] ], "custom-property-transition-url.html": [ - "4f22a9132598e1b4377a52f8d51de781f456fa2b", + "600e7ddb1db75dcb5cb1921dca4a1d03e7714c58", [ null, {} @@ -522552,7 +524521,7 @@ ], "input": { "keyboard.html": [ - "187ac0fb9e3ee5b12e73ec75d3cd4f465e6b319e", + "10796f23e7b6a8f1799834022057feb268e8fe1b", [ null, { @@ -522594,7 +524563,7 @@ ] ], "overflowing-snap-areas.html": [ - "08aff5ebaebf71d7a4683dd53aa2b5d9a14a8f30", + "a35799517fe54841d288a91f8ce79d8f298f48c4", [ null, {} @@ -522862,7 +524831,7 @@ ] ], "scroll-target-margin-005.html": [ - "d3b60270e602b07a1c2b9e14f48e840fe92b7c3b", + "9296202354fe9e1465657d500049c5647575935a", [ null, {} @@ -524779,7 +526748,7 @@ ] ], "auto-014.html": [ - "f34dbec396ff7e43db48e9d0b9321d94b42cfab4", + "a3e5769cfaee507a561ffb1657573caa8ba419d3", [ null, {} @@ -524850,7 +526819,7 @@ ] ], "contain-intrinsic-size-invalid.html": [ - "d50e582b2bbf125a67df84f84b26058080d7e760", + "481300b0df955afe7be12afbb8ae501295d5f9fd", [ null, {} @@ -529049,7 +531018,7 @@ ] ], "toggle-visibility.tentative.html": [ - "0a720fd454bd8c74e7f7b5d750416b3fb7be20f1", + "0704996e356cb9ffa55322ec02e307f2e39b7697", [ null, {} @@ -529711,7 +531680,7 @@ ] ], "all-with-discrete.tentative.html": [ - "a048bc7a1cc3958f5b2758369d30b3472771c388", + "e328060d680f8dd0bd0f6f1585e3f1b420578ee4", [ null, {} @@ -533437,21 +535406,21 @@ ] ], "acos-asin-atan-atan2-computed.html": [ - "bc547d588e74d9962d1c803d4e53d86fc573df63", + "82e9dde6223381541dc0759ef72c72b90b17dd63", [ null, {} ] ], "acos-asin-atan-atan2-invalid.html": [ - "2f94c49ac8cac5139e63a319822cc46d21c083ed", + "727fc4df18a59df19f1f90b37bd96e76d50359f6", [ null, {} ] ], "acos-asin-atan-atan2-serialize.html": [ - "8462fb2e5a5594c5ba7727eb28131ebb978ef5c1", + "73ededd44ba64b5bd0d95df56c7036c667d6f686", [ null, {} @@ -533712,7 +535681,7 @@ ] ], "clamp-length-serialize.html": [ - "d9b4e6f988d703a9b1381153e1dc42fcd0bd846e", + "36738447ed2a954daa1fff652dfe8fd9d63e24f2", [ null, {} @@ -533726,21 +535695,21 @@ ] ], "exp-log-compute.html": [ - "3fa240004426d6968f01808a4ab1f3fba3114522", + "9efc1a7721c754828380deb61b530950f7efcea2", [ null, {} ] ], "exp-log-invalid.html": [ - "7fa56dc5bc196933c95b172587430896f4594d51", + "281baac28920206e7bd3bbaddc1f7899d8d34de6", [ null, {} ] ], "exp-log-serialize.html": [ - "6108278d9624daad216f2bde26e6d65b7dd6f50f", + "8946540a1a8afc35c317fcd268f3a071402fe605", [ null, {} @@ -533782,21 +535751,21 @@ ] ], "hypot-pow-sqrt-computed.html": [ - "3cc85a5230ca8dfc6310daf76ae89278a364169f", + "6ac416c0f5b35b1123722e945bcbc73d6b9de68b", [ null, {} ] ], "hypot-pow-sqrt-invalid.html": [ - "edb3138012687d3a6d75a1bdc1a6623aec8deb1d", + "4b04e5358ed1b0ee7beb06700eff0bf8f5b0b29b", [ null, {} ] ], "hypot-pow-sqrt-serialize.html": [ - "ab8c28cc5924492f014c760f272e39b07bb95373", + "ffaaaf4531d7d3ecc2c90d92ff60c10f3c1f6928", [ null, {} @@ -534034,21 +536003,21 @@ ] ], "round-mod-rem-computed.html": [ - "2210f6e1fb57591974cb14cfdd1b10d6f5400068", + "e20315e28f96379d050b7c06cf54d92006b9addc", [ null, {} ] ], "round-mod-rem-invalid.html": [ - "99ef2c64b453ac0b56580378a1c4ab59577e90b4", + "c0857cc52623bba775ba222eead3795ec20f8c92", [ null, {} ] ], "round-mod-rem-serialize.html": [ - "aa7c768b952b3fa4c28618fbbd59451b827e828f", + "f4d8dd305c879cb88252ce6fd880270e71ae03fe", [ null, {} @@ -534069,7 +536038,7 @@ ] ], "signs-abs-serialize.html": [ - "ea3d0cb433bb9ae631d67dcd3b6b96d494baab6c", + "5c49604ada6c08e10a8c87a3de2a7233991f0fb2", [ null, {} @@ -534090,7 +536059,7 @@ ] ], "sin-cos-tan-serialize.html": [ - "72287d6f3c5111b6dcc44e667a66f018a87ba732", + "c6a25e960252632646c521d4b9624f01594c7da8", [ null, {} @@ -534544,7 +536513,14 @@ ] ], "event-pseudo-name.html": [ - "06e1f37db89de9fd89389d2ec99996ecdf918871", + "bccf64915d029ac5077414c2299b14c7ce88b99e", + [ + null, + {} + ] + ], + "group-animation-for-root-transition.html": [ + "6379ffaaabb43885170d8368b794fda61d151051", [ null, {} @@ -534567,7 +536543,7 @@ ] ], "mix-blend-mode-only-on-transition.html": [ - "5047a067cb7dbdd0c7296548653e6e99a720523b", + "4149142cf326e0de0deed808e99561ca89d9870a", [ null, {} @@ -534826,6 +536802,13 @@ {} ] ], + "text-input-baseline.html": [ + "35f44a6dc3d9156be50fcaada0afd1ce8a1f5a03", + [ + null, + {} + ] + ], "text-input-block-size.optional.html": [ "680e0b6532b1a28bc94238b079fd2ab8417966d7", [ @@ -538086,7 +540069,7 @@ ] ], "offset-interpolation.html": [ - "9c3747185dc8305cc6ce26422bfc5d95ebb62ff1", + "2ee011bd77a975e9b566d24658995693c574f620", [ null, {} @@ -538135,7 +540118,7 @@ ] ], "offset-path-interpolation-006.html": [ - "27bdd3d0c0e70ee334d548343241562c303df080", + "7ea118cb64b63acb491a90b8c88ce6d8b792b175", [ null, {} @@ -538242,21 +540225,21 @@ ] ], "offset-path-computed.html": [ - "5bd857f62d2fffa40a630518e1fbd371e00c2c64", + "9e1fca2f5276b440ed49f09fef087ec8748e0d75", [ null, {} ] ], "offset-path-parsing-invalid.html": [ - "0c8f3ea04cd48c50052903b64dda3262d60fea6f", + "f2123d130c026b9a301800de794b576dbcb2ff9e", [ null, {} ] ], "offset-path-parsing-valid.html": [ - "be74ed08a40815864c7abb7a72d16c87aa9d9902", + "bad3f1b2cbacb36c85de35a93e7fa19406cd438c", [ null, {} @@ -544708,7 +546691,7 @@ }, "parts": { "basic-dom-part-objects.tentative.html": [ - "fe992e2c79602014f00ab7a924953dd86a233dd7", + "ee35298e5dabbbd09b45842c1f4d7f38642e2e74", [ null, {} @@ -545554,6 +547537,15 @@ {} ] ], + "edit-context-inheritability.tentative.html": [ + "59c553d966f19a3512aba1673f5a4117f2d9e970", + [ + null, + { + "testdriver": true + } + ] + ], "edit-context-input.tentative.html": [ "0f05606a3564b4e27644e0035d42076ff6d1fda0", [ @@ -561474,7 +563466,7 @@ ] ], "event-click-visibilitychange.html": [ - "beb3ba3512d6e0ad800c8be041d0014a80ba375c", + "988be3623eea127ff7221ceca85281581c596ca3", [ null, { @@ -563809,7 +565801,7 @@ ] ], "disallowed-navigation-to-blob.https.html": [ - "9b299cd5e1e03641586004eb0b53ab14ce3bfd1b", + "3722609410745847a34b91555f3cd8e5b402d0bf", [ null, { @@ -563818,7 +565810,7 @@ ] ], "disallowed-navigation-to-data.https.html": [ - "7ab8edc7e11076ca33f4affa0a88a622e17afe8e", + "99c2e05bee3b491fe6f67976899527ec7bd1fa23", [ null, { @@ -563836,7 +565828,7 @@ ] ], "disallowed-navigations-dangling-markup-urn.https.html": [ - "1a5720b0343e485a374ab49cdafdecd63268e8c5", + "eceb2a4a901ebe82c6e0a38c4f237cae7cb43c88", [ null, { @@ -563854,7 +565846,7 @@ ] ], "disallowed-navigations.https.html": [ - "5cde50d4201beb36418fbb18399dec693d3d50d4", + "54fa95f16f469c59101e4f0c43206824770bcffe", [ null, { @@ -564489,6 +566481,13 @@ {} ] ], + "setting-null-config-navigates-to-about-blank.https.html": [ + "2595fd64c922b1e16220628fe1fa87fdf7c74f5f", + [ + null, + {} + ] + ], "show-directory-picker.https.html": [ "ae4494f51b94248ac97897220d76ead783629dde", [ @@ -566761,7 +568760,7 @@ ] ], "cors-keepalive.any.js": [ - "2df0c08b17f24adb83986530171b96796a5f9d18", + "f68d90ef9aaba9953d02eedbf8f6a9cb4909f126", [ "fetch/api/cors/cors-keepalive.any.html", { @@ -566770,6 +568769,10 @@ "global", "window" ], + [ + "timeout", + "long" + ], [ "title", "Fetch API: keepalive handling" @@ -566798,7 +568801,8 @@ "script", "../resources/utils.js" ] - ] + ], + "timeout": "long" } ] ], @@ -572765,8 +574769,8 @@ {} ] ], - "response_block.tentative.sub.https.html": [ - "860e0d3b93c130b6673bf226edddec2b2ffa9d0c", + "response_block.tentative.https.html": [ + "6b116000d45c79bb96f78e51b195db20015dc781", [ null, {} @@ -574667,1000 +576671,6 @@ ] ] }, - "local-network-access": { - "fenced-frame-subresource-fetch.tentative.https.window.js": [ - "2dff325e3e1bcffc885ac59b46dbe278c9d00c42", - [ - "fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=baseline", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "script", - "/fenced-frame/resources/utils.js" - ], - [ - "variant", - "?include=baseline" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-local", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "script", - "/fenced-frame/resources/utils.js" - ], - [ - "variant", - "?include=baseline" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-private", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "script", - "/fenced-frame/resources/utils.js" - ], - [ - "variant", - "?include=baseline" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "fetch/local-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-public", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "script", - "/fenced-frame/resources/utils.js" - ], - [ - "variant", - "?include=baseline" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ] - ], - "fenced-frame.tentative.https.window.js": [ - "bdef699afc4c9897b4d979b282fe937d5a3403e5", - [ - "fetch/local-network-access/fenced-frame.tentative.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/dispatcher/dispatcher.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "script", - "/fenced-frame/resources/utils.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ] - ], - "fetch-from-treat-as-public.https.window.js": [ - "084e03282f4f78cf10408647ffd7d9a2f274c0e7", - [ - "fetch/local-network-access/fetch-from-treat-as-public.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "fetch.https.window.js": [ - "dbc4f23f677c716ba439c508c42ee33f4b1b3233", - [ - "fetch/local-network-access/fetch.https.window.html?include=baseline", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "variant", - "?include=baseline" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ] - ] - } - ], - [ - "fetch/local-network-access/fetch.https.window.html?include=from-local", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "variant", - "?include=baseline" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ] - ] - } - ], - [ - "fetch/local-network-access/fetch.https.window.html?include=from-private", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "variant", - "?include=baseline" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ] - ] - } - ], - [ - "fetch/local-network-access/fetch.https.window.html?include=from-public", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "variant", - "?include=baseline" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ] - ] - } - ] - ], - "fetch.window.js": [ - "8ee54c905629293255551d560b240c5ac7086707", - [ - "fetch/local-network-access/fetch.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "iframe.tentative.https.window.js": [ - "7d9ee530077779ce8b2a9536cc3a1d174d0cc1ca", - [ - "fetch/local-network-access/iframe.tentative.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/dispatcher/dispatcher.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "iframe.tentative.window.js": [ - "c0770df83854c2c463febaaef65e073d46b4446a", - [ - "fetch/local-network-access/iframe.tentative.window.html", - { - "script_metadata": [ - [ - "script", - "/common/dispatcher/dispatcher.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "mixed-content-fetch.tentative.https.window.js": [ - "6f7d765617c9c1f8e2aec16422ad3c561c51a641", - [ - "fetch/local-network-access/mixed-content-fetch.tentative.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "nested-worker.https.window.js": [ - "3eeb435badb2d00404e0e214e1d42c4be2817f8a", - [ - "fetch/local-network-access/nested-worker.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "nested-worker.window.js": [ - "6d246e1c76d6c5f603c3e29430ae0586fdb9f5ad", - [ - "fetch/local-network-access/nested-worker.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "preflight-cache.https.window.js": [ - "87dbf501f628a25fa299240da5d5856f4366d8cc", - [ - "fetch/local-network-access/preflight-cache.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "redirect.https.window.js": [ - "efbd8f31f936ad22aac5685e04676177b1dc31d7", - [ - "fetch/local-network-access/redirect.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "service-worker-background-fetch.https.window.js": [ - "6369b166e21ef023c17ec5140282990092621990", - [ - "fetch/local-network-access/service-worker-background-fetch.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "service-worker-fetch.https.window.js": [ - "cb6d1f79b01f7c3fc7ba13884bd675bfd01d74a2", - [ - "fetch/local-network-access/service-worker-fetch.https.window.html?1-8", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "script", - "/common/subset-tests.js" - ], - [ - "variant", - "?1-8" - ], - [ - "variant", - "?9-last" - ] - ] - } - ], - [ - "fetch/local-network-access/service-worker-fetch.https.window.html?9-last", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "script", - "/common/subset-tests.js" - ], - [ - "variant", - "?1-8" - ], - [ - "variant", - "?9-last" - ] - ] - } - ] - ], - "service-worker-update.https.window.js": [ - "4882d235bb01c7498cf956ba5a46c0d496e66067", - [ - "fetch/local-network-access/service-worker-update.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "service-worker.https.window.js": [ - "046f662a1275a9b017784139e85b83f419e71098", - [ - "fetch/local-network-access/service-worker.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "shared-worker-blob-fetch.https.window.js": [ - "269abb7edc4ce9be544c08b6206d8a2994e45759", - [ - "fetch/local-network-access/shared-worker-blob-fetch.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "shared-worker-blob-fetch.window.js": [ - "d430ea7383771844bb8955e4c6be23c63e6adc59", - [ - "fetch/local-network-access/shared-worker-blob-fetch.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "shared-worker-fetch.https.window.js": [ - "e5f2b94920276e0360d1566e5d343886c4382b54", - [ - "fetch/local-network-access/shared-worker-fetch.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "shared-worker-fetch.window.js": [ - "9bc1a89beadc673afe783eb56b5e0b2560dbf408", - [ - "fetch/local-network-access/shared-worker-fetch.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "shared-worker.https.window.js": [ - "24ae10878281b153ba6a267a8b3cb3c30a38b628", - [ - "fetch/local-network-access/shared-worker.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "shared-worker.window.js": [ - "ffa8a360c7032138b89d48507b0d1dcb9a23d5a2", - [ - "fetch/local-network-access/shared-worker.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "websocket.https.window.js": [ - "0731896098bcefa614ebdf28765a04766b5e6cda", - [ - "fetch/local-network-access/websocket.https.window.html", - { - "script_metadata": [ - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "websocket.window.js": [ - "a44cfaedec78b2570e868f3b81ac59575c76bc54", - [ - "fetch/local-network-access/websocket.window.html", - { - "script_metadata": [ - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "worker-blob-fetch.window.js": [ - "e119746b8a6b298a2c57bde63f03a59d8e72d477", - [ - "fetch/local-network-access/worker-blob-fetch.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "worker-fetch.https.window.js": [ - "89e0c3cf1f35f0cf741957c3eb0bff38a4705d93", - [ - "fetch/local-network-access/worker-fetch.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "worker-fetch.window.js": [ - "4d6b12f06715a8aaa88e2a290531713c036df3c1", - [ - "fetch/local-network-access/worker-fetch.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "worker.https.window.js": [ - "a0f19314ee386c67445afa149faa301938ff1110", - [ - "fetch/local-network-access/worker.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "worker.window.js": [ - "118c0992544265603671862af5511f6e7220af28", - [ - "fetch/local-network-access/worker.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "xhr-from-treat-as-public.https.window.js": [ - "3aae3050d97d900c51ad6a3b31de67db6442deea", - [ - "fetch/local-network-access/xhr-from-treat-as-public.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ], - "xhr.https.window.js": [ - "4dc5da9912f1012bf72a9e689acfbc125d7c2923", - [ - "fetch/local-network-access/xhr.https.window.html?include=from-local", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ] - ] - } - ], - [ - "fetch/local-network-access/xhr.https.window.html?include=from-private", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ] - ] - } - ], - [ - "fetch/local-network-access/xhr.https.window.html?include=from-public", - { - "script_metadata": [ - [ - "script", - "/common/subset-tests-by-key.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ], - [ - "variant", - "?include=from-local" - ], - [ - "variant", - "?include=from-private" - ], - [ - "variant", - "?include=from-public" - ] - ] - } - ] - ], - "xhr.window.js": [ - "fa307dc559a76cb3cd3f70f76a3c904f4602a442", - [ - "fetch/local-network-access/xhr.window.html", - { - "script_metadata": [ - [ - "script", - "/common/utils.js" - ], - [ - "script", - "resources/support.sub.js" - ] - ] - } - ] - ] - }, "metadata": { "audio-worklet.https.html": [ "3b768ef0b5ddd2d13361629afd011e6987cb38d0", @@ -576574,7 +577584,7 @@ ] ], "known-mime-type.sub.any.js": [ - "66a63c8b28aacdbdcb06f2f3456c991b5749440a", + "b0521e8b363dcb1129618414311b0eb6fbb66c84", [ "fetch/orb/tentative/known-mime-type.sub.any.html", { @@ -576723,6 +577733,1036 @@ ] ] }, + "private-network-access": { + "fenced-frame-no-preflight-required.tentative.https.window.js": [ + "21233f61ea617cd8c53d598d5d6af14cf6b274dd", + [ + "fetch/private-network-access/fenced-frame-no-preflight-required.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "script", + "/fenced-frame/resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "fenced-frame-subresource-fetch.tentative.https.window.js": [ + "2dff325e3e1bcffc885ac59b46dbe278c9d00c42", + [ + "fetch/private-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=baseline", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "script", + "/fenced-frame/resources/utils.js" + ], + [ + "variant", + "?include=baseline" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/private-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-local", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "script", + "/fenced-frame/resources/utils.js" + ], + [ + "variant", + "?include=baseline" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/private-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-private", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "script", + "/fenced-frame/resources/utils.js" + ], + [ + "variant", + "?include=baseline" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/private-network-access/fenced-frame-subresource-fetch.tentative.https.window.html?include=from-public", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "script", + "/fenced-frame/resources/utils.js" + ], + [ + "variant", + "?include=baseline" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "fenced-frame.tentative.https.window.js": [ + "370cc9fbe9d28b002238ff027a44cfdea058ae73", + [ + "fetch/private-network-access/fenced-frame.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "script", + "/fenced-frame/resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "fetch-from-treat-as-public.tentative.https.window.js": [ + "084e03282f4f78cf10408647ffd7d9a2f274c0e7", + [ + "fetch/private-network-access/fetch-from-treat-as-public.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "fetch.tentative.https.window.js": [ + "dbc4f23f677c716ba439c508c42ee33f4b1b3233", + [ + "fetch/private-network-access/fetch.tentative.https.window.html?include=baseline", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "variant", + "?include=baseline" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ] + ] + } + ], + [ + "fetch/private-network-access/fetch.tentative.https.window.html?include=from-local", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "variant", + "?include=baseline" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ] + ] + } + ], + [ + "fetch/private-network-access/fetch.tentative.https.window.html?include=from-private", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "variant", + "?include=baseline" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ] + ] + } + ], + [ + "fetch/private-network-access/fetch.tentative.https.window.html?include=from-public", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "variant", + "?include=baseline" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ] + ] + } + ] + ], + "fetch.tentative.window.js": [ + "8ee54c905629293255551d560b240c5ac7086707", + [ + "fetch/private-network-access/fetch.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "iframe.tentative.https.window.js": [ + "0208b715eaf22384c1fbdca4d8f95dd0ceb7119e", + [ + "fetch/private-network-access/iframe.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "iframe.tentative.window.js": [ + "c0770df83854c2c463febaaef65e073d46b4446a", + [ + "fetch/private-network-access/iframe.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "mixed-content-fetch.tentative.https.window.js": [ + "54485dc70474023683f2a9f4f4fba1f0df0032af", + [ + "fetch/private-network-access/mixed-content-fetch.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "nested-worker.tentative.https.window.js": [ + "3eeb435badb2d00404e0e214e1d42c4be2817f8a", + [ + "fetch/private-network-access/nested-worker.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "nested-worker.tentative.window.js": [ + "6d246e1c76d6c5f603c3e29430ae0586fdb9f5ad", + [ + "fetch/private-network-access/nested-worker.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "preflight-cache.https.tentative.window.js": [ + "87dbf501f628a25fa299240da5d5856f4366d8cc", + [ + "fetch/private-network-access/preflight-cache.https.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "redirect.tentative.https.window.js": [ + "efbd8f31f936ad22aac5685e04676177b1dc31d7", + [ + "fetch/private-network-access/redirect.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "service-worker-background-fetch.tentative.https.window.js": [ + "6369b166e21ef023c17ec5140282990092621990", + [ + "fetch/private-network-access/service-worker-background-fetch.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "service-worker-fetch.tentative.https.window.js": [ + "cb6d1f79b01f7c3fc7ba13884bd675bfd01d74a2", + [ + "fetch/private-network-access/service-worker-fetch.tentative.https.window.html?1-8", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "script", + "/common/subset-tests.js" + ], + [ + "variant", + "?1-8" + ], + [ + "variant", + "?9-last" + ] + ] + } + ], + [ + "fetch/private-network-access/service-worker-fetch.tentative.https.window.html?9-last", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "script", + "/common/subset-tests.js" + ], + [ + "variant", + "?1-8" + ], + [ + "variant", + "?9-last" + ] + ] + } + ] + ], + "service-worker-update.tentative.https.window.js": [ + "4882d235bb01c7498cf956ba5a46c0d496e66067", + [ + "fetch/private-network-access/service-worker-update.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "service-worker.tentative.https.window.js": [ + "046f662a1275a9b017784139e85b83f419e71098", + [ + "fetch/private-network-access/service-worker.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "shared-worker-blob-fetch.tentative.https.window.js": [ + "269abb7edc4ce9be544c08b6206d8a2994e45759", + [ + "fetch/private-network-access/shared-worker-blob-fetch.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "shared-worker-blob-fetch.tentative.window.js": [ + "d430ea7383771844bb8955e4c6be23c63e6adc59", + [ + "fetch/private-network-access/shared-worker-blob-fetch.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "shared-worker-fetch.tentative.https.window.js": [ + "e5f2b94920276e0360d1566e5d343886c4382b54", + [ + "fetch/private-network-access/shared-worker-fetch.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "shared-worker-fetch.tentative.window.js": [ + "9bc1a89beadc673afe783eb56b5e0b2560dbf408", + [ + "fetch/private-network-access/shared-worker-fetch.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "shared-worker.tentative.https.window.js": [ + "24ae10878281b153ba6a267a8b3cb3c30a38b628", + [ + "fetch/private-network-access/shared-worker.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "shared-worker.tentative.window.js": [ + "ffa8a360c7032138b89d48507b0d1dcb9a23d5a2", + [ + "fetch/private-network-access/shared-worker.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "websocket.tentative.https.window.js": [ + "0731896098bcefa614ebdf28765a04766b5e6cda", + [ + "fetch/private-network-access/websocket.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "websocket.tentative.window.js": [ + "a44cfaedec78b2570e868f3b81ac59575c76bc54", + [ + "fetch/private-network-access/websocket.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "worker-blob-fetch.tentative.window.js": [ + "e119746b8a6b298a2c57bde63f03a59d8e72d477", + [ + "fetch/private-network-access/worker-blob-fetch.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "worker-fetch.tentative.https.window.js": [ + "89e0c3cf1f35f0cf741957c3eb0bff38a4705d93", + [ + "fetch/private-network-access/worker-fetch.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "worker-fetch.tentative.window.js": [ + "4d6b12f06715a8aaa88e2a290531713c036df3c1", + [ + "fetch/private-network-access/worker-fetch.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "worker.tentative.https.window.js": [ + "a0f19314ee386c67445afa149faa301938ff1110", + [ + "fetch/private-network-access/worker.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "worker.tentative.window.js": [ + "118c0992544265603671862af5511f6e7220af28", + [ + "fetch/private-network-access/worker.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "xhr-from-treat-as-public.tentative.https.window.js": [ + "3aae3050d97d900c51ad6a3b31de67db6442deea", + [ + "fetch/private-network-access/xhr-from-treat-as-public.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ], + "xhr.https.tentative.window.js": [ + "4dc5da9912f1012bf72a9e689acfbc125d7c2923", + [ + "fetch/private-network-access/xhr.https.tentative.window.html?include=from-local", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ] + ] + } + ], + [ + "fetch/private-network-access/xhr.https.tentative.window.html?include=from-private", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ] + ] + } + ], + [ + "fetch/private-network-access/xhr.https.tentative.window.html?include=from-public", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-private" + ], + [ + "variant", + "?include=from-public" + ] + ] + } + ] + ], + "xhr.tentative.window.js": [ + "fa307dc559a76cb3cd3f70f76a3c904f4602a442", + [ + "fetch/private-network-access/xhr.tentative.window.html", + { + "script_metadata": [ + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ] + ] + } + ] + ] + }, "range": { "blob.any.js": [ "1db3b248f6c3657cc7a54bc9f941016ae6787f59", @@ -577272,7 +579312,7 @@ ] ], "join-leave-ad-interest-group.https.sub.window.js": [ - "973c586ca4f1b3d35bd6c0814dc5fe3a012bbdda", + "d1d6d50e4b0bb0c42c5bdd1fc9ea2a46251f3db8", [ "fledge/tentative/join-leave-ad-interest-group.https.sub.window.html", { @@ -577288,8 +579328,13 @@ [ "script", "resources/fledge-util.js" + ], + [ + "timeout", + "long" ] - ] + ], + "timeout": "long" } ] ], @@ -581765,6 +583810,36 @@ } ] ], + "hasStorageAccess.tentative.https.window.js": [ + "bf33023793a4b32ea09162e5e43081e9a48928f1", + [ + "html/anonymous-iframe/hasStorageAccess.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/html/cross-origin-embedder-policy/credentialless/resources/common.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], "indexeddb.tentative.https.window.js": [ "d2749c6be2f8e2e9bce6ea00637374e8c44f7ed1", [ @@ -581878,6 +583953,66 @@ } ] ], + "requestStorageAccess.tentative.https.window.js": [ + "b7fbcd84eb020dc30510ed779c18e80d0453b895", + [ + "html/anonymous-iframe/requestStorageAccess.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/html/cross-origin-embedder-policy/credentialless/resources/common.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], + "requestStorageAccessFor.tentative.https.window.js": [ + "fa2fc6576f60fdb0bdfe4cebe832707ec4d64a5a", + [ + "html/anonymous-iframe/requestStorageAccessFor.tentative.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/html/cross-origin-embedder-policy/credentialless/resources/common.js" + ], + [ + "script", + "./resources/common.js" + ] + ] + } + ] + ], "require-corp-embed-anonymous-iframe.tentative.https.window.js": [ "ccaa41f9ef10d70c75a1f7bb5eb477f466070d48", [ @@ -585671,11 +587806,811 @@ } ] ], - "location-properties-smoke-test.html": [ - "1d1c1136a6dc9263a964218d6c50408176b7f83f", + "location-properties-smoke-test.window.js": [ + "45b61d07f5f58a7dfc8fb399052d506e93972ced", [ - null, - {} + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?assign", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?customproperty", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?hash", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?host", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?hostname", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?pathname", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?port", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?protocol", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?reload", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?search", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?toString", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ], + [ + "html/browsers/origin/cross-origin-objects/location-properties-smoke-test.window.html?valueOf", + { + "script_metadata": [ + [ + "variant", + "?assign" + ], + [ + "variant", + "?customproperty" + ], + [ + "variant", + "?hash" + ], + [ + "variant", + "?host" + ], + [ + "variant", + "?hostname" + ], + [ + "variant", + "?pathname" + ], + [ + "variant", + "?port" + ], + [ + "variant", + "?protocol" + ], + [ + "variant", + "?reload" + ], + [ + "variant", + "?search" + ], + [ + "variant", + "?toString" + ], + [ + "variant", + "?valueOf" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } ] ], "window-location-and-location-href-cross-realm-set.html": [ @@ -610883,7 +613818,7 @@ ] ], "iframe-popup-about-blank.https.window.js": [ - "cafb4c4f8c517367a71fbb362c51e810dbf0a18d", + "1247400a4e37d2f6bd52b2731c2a3eb7f84a7185", [ "html/cross-origin-opener-policy/tentative/restrict-properties/iframe-popup-about-blank.https.window.html", { @@ -611761,7 +614696,7 @@ ] ], "the-anchor-attribute-003.tentative.html": [ - "31cc4995554c9b74f1fbaaa9f5dd20afc30dae53", + "fe4657aabb33e63f58d7b623d1fd27d55e38b7c6", [ null, {} @@ -613144,12 +616079,76 @@ }, "urls": { "base-url": { + "base-url-detached-document.https.window.js": [ + "c51f425b7ac6505fec249c4ae90fb99bde7e54ea", + [ + "html/infrastructure/urls/base-url/base-url-detached-document.https.window.html", + {} + ] + ], + "base-url-javascript-nav.https.window.js": [ + "688eeaf384b70ca3ab2190de03b2a6fee7ded77e", + [ + "html/infrastructure/urls/base-url/base-url-javascript-nav.https.window.html", + {} + ] + ], "document-base-url-changes-about-srcdoc-2.https.html": [ "eac1eaf7d0a511a5de3a0d4906842bc065e90bea", [ null, {} ] + ], + "document-base-url-changes-after-nav-about-srcdoc.https.window.js": [ + "897647a45e1f41a2b3d1eae16a2fa1b6631e0da1", + [ + "html/infrastructure/urls/base-url/document-base-url-changes-after-nav-about-srcdoc.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ] + ] + } + ] + ], + "document-base-url-initiated-grand-parent.https.window.js": [ + "1983f02c267837a9152f94d91bdbde4b1c3add6d", + [ + "html/infrastructure/urls/base-url/document-base-url-initiated-grand-parent.https.window.html", + { + "script_metadata": [ + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ] + ] + } + ] + ], + "document-base-url-window-initiator-is-not-opener.https.window.js": [ + "ca3028d9cc3214a8110808f18cc7b76471cc2449", + [ + "html/infrastructure/urls/base-url/document-base-url-window-initiator-is-not-opener.https.window.html", + {} + ] + ], + "document-base-url-window-open-about-blank.https.window.js": [ + "1a60809023287f721faa7c96de40d38dd82d82a0", + [ + "html/infrastructure/urls/base-url/document-base-url-window-open-about-blank.https.window.html", + {} + ] ] }, "dynamic-changes-to-base-urls": { @@ -613745,42 +616744,6 @@ {} ] ], - "document-base-url-changes-after-nav-about-srcdoc.https.window.js": [ - "897647a45e1f41a2b3d1eae16a2fa1b6631e0da1", - [ - "html/infrastructure/urls/terminology-0/document-base-url-changes-after-nav-about-srcdoc.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/get-host-info.sub.js" - ] - ] - } - ] - ], - "document-base-url-initiated-grand-parent.https.window.js": [ - "1983f02c267837a9152f94d91bdbde4b1c3add6d", - [ - "html/infrastructure/urls/terminology-0/document-base-url-initiated-grand-parent.https.window.html", - { - "script_metadata": [ - [ - "script", - "/common/get-host-info.sub.js" - ], - [ - "script", - "/common/utils.js" - ], - [ - "script", - "/common/dispatcher/dispatcher.js" - ] - ] - } - ] - ], "document-base-url.html": [ "ee9d726481287a10f4048f307d74333e787fbca2", [ @@ -617646,7 +620609,7 @@ ] ], "preserves-pitch.html": [ - "1cf6c7639036edbc53c70ee71dc99edc6e224d58", + "d0f4d77a32b23f97e5ef00aaee4bc691683ea79b", [ null, { @@ -622097,9 +625060,9 @@ ] ], "selection-not-application.html": [ - "7771c3cf312d5514c0bc1d68d34109ac54e87f6d", + "063836cd23588bb832723664bf19256c9a646bdf", [ - null, + "html/semantics/forms/textfieldselection/selection-not-application.html?default", {} ], [ @@ -624099,7 +627062,7 @@ ] ], "dialog-cancel-events.html": [ - "03caab54ba5396a023334dc748d5f21f95185991", + "7133ce3ca04ec4c874e93a618ecf0e72065e7fd5", [ null, { @@ -624847,7 +627810,16 @@ ] ], "popover-focus-2.html": [ - "2fa1b7a23dee262e19c4c04f7243cecef1c0f0fd", + "b5ad7a586ee1c555ae43bcca81cd4ee2c3716edf", + [ + null, + { + "testdriver": true + } + ] + ], + "popover-focus-harness.html": [ + "a22a68ea2bdf2cc5ded85f93fe451f8d2f418baa", [ null, { @@ -624932,7 +627904,7 @@ ] ], "popover-light-dismiss.html": [ - "009d10609b09bb84733dd379fef72bb068d78396", + "eb148941fbf30073d0285be97117185923cfa604", [ null, { @@ -625049,7 +628021,7 @@ ] ], "togglePopover.html": [ - "115db8e2ac02c3610288a4b708b87f88828f8f34", + "388617fccc1081c4edcf9ac607ef82e007592119", [ null, {} @@ -625286,9 +628258,9 @@ ] ], "async-script.html": [ - "dea7f987bfa9a67a6662972b7965ac9f26df9b57", + "90f657679f922b92f8ac3737b44660e1562defb6", [ - null, + "html/semantics/scripting-1/the-script-element/defer-script/async-script.html?default", {} ], [ @@ -627971,6 +630943,13 @@ {} ] ], + "module-import-referrer.html": [ + "7348b88075ee54572b9fbce9ca58b6c38dab55ef", + [ + null, + {} + ] + ], "module-in-xhtml.xhtml": [ "1655e61a7c54e36ba119b8d8a31dc4c4db8ad344", [ @@ -628027,6 +631006,13 @@ {} ] ], + "referrer-policy-for-descendants.sub.html": [ + "cf8a3dce014efb4349d2f3bfcf49ae48b9ac78e8", + [ + null, + {} + ] + ], "referrer-same-origin.sub.html": [ "7d6d515a477ce50cf2123745e29e5a3738a3eaf6", [ @@ -634490,7 +637476,7 @@ ] ], "protocol.https.html": [ - "cc16260d702e9ebace9e8cb44f072b2c26043265", + "add78d2fd47ade772cadea38d5ecbfd2e51ef9b4", [ null, {} @@ -635312,7 +638298,7 @@ ] ], "inert-node-is-uneditable.html": [ - "23182b937cde52e8d55a88dbc8b440219d07f34f", + "983831a89fc93f75b8114626832d00fbaae73bc6", [ null, { @@ -635412,7 +638398,7 @@ ] ], "non-local-ports.sub.window.js": [ - "06ecb3ab21b9cee404bb3618117dd0511da076b3", + "8c9eb33c4f77ba1b7724a253a3f73d765d7425ab", [ "infrastructure/assumptions/non-local-ports.sub.window.html", {} @@ -635976,9 +638962,9 @@ ] ], "wpt-server-wpt-flags.sub.html": [ - "9af9cda4631de949791005698bcc1ff64f1083ba", + "682759d7c3849fa288b61f6e6f4ffea08b22fedf", [ - null, + "infrastructure/server/wpt-server-wpt-flags.sub.html?no_flag", {} ], [ @@ -636328,6 +639314,13 @@ } ] ], + "test_win_open_with_interaction.html": [ + "055b17ab19ec08b3fb8e43ec743eff8c1325962a", + [ + null, + {} + ] + ], "virtual_authenticator.html": [ "04c14719d41f2b8143ab348269d35b3f90cbc457", [ @@ -638534,7 +641527,7 @@ ] ], "content-visibility-auto-offscreen.html": [ - "9e4361b38b4c794da56ef631a137c2cc7836fea7", + "91dd8348cb6b12c5cf135902d4cd0ca9fddecbd6", [ null, {} @@ -639919,7 +642912,7 @@ ] ], "loaf-script-window-attribution.html": [ - "f54a1f23cb85c0296efe90df378429f8640c09e2", + "9602cdadd4b3b0e2c08f3ffe81b814042a6807a6", [ null, { @@ -641061,7 +644054,7 @@ ] ], "display-2.html": [ - "36a02952eb8f4799f18f270504545aeb76bf503d", + "1d0810beadbceb96d6516a394551ea7afca1bf27", [ null, {} @@ -642001,7 +644994,7 @@ ] ], "mediasource-worker-play-terminate-worker.html": [ - "d6496afd6f4b29c3866b11f5d9df5694c1f41597", + "fb3dc8add15b9753c8b42fffb3bb9e7490f8e356", [ null, {} @@ -647291,24 +650284,24 @@ }, "ordering-and-transition": { "anchor-download-intercept-reject.html": [ - "4869cedd2528e7d930925a14fc7ef5cd77e77681", + "bd7d968fb1ff4ebfc157ec64b8a23997d4bcb13c", [ - null, + "navigation-api/ordering-and-transition/anchor-download-intercept-reject.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/anchor-download-intercept-reject.html?currententrychange", + "navigation-api/ordering-and-transition/anchor-download-intercept-reject.html?no-currententrychange", {} ] ], "anchor-download-intercept.html": [ - "23326c827b7a272f61e875a180c1134fc8bdb660", + "38478e3c9a843983da70a90a573a108c64eaa880", [ - null, + "navigation-api/ordering-and-transition/anchor-download-intercept.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/anchor-download-intercept.html?currententrychange", + "navigation-api/ordering-and-transition/anchor-download-intercept.html?no-currententrychange", {} ] ], @@ -647320,35 +650313,35 @@ ] ], "back-same-document-intercept-reject.html": [ - "c0d4f550271371bbf496e50419b5cb1de25d3800", + "d1f15428f10adca6bef5996f7fc59e2df43bab8c", [ - null, + "navigation-api/ordering-and-transition/back-same-document-intercept-reject.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/back-same-document-intercept-reject.html?currententrychange", + "navigation-api/ordering-and-transition/back-same-document-intercept-reject.html?no-currententrychange", {} ] ], "back-same-document-intercept.html": [ - "7bd248bc9c5a77cbea9cb9494ebb45768b85eece", + "f66e1dfba8f1549c4373f24e7dab1d0f7be6d76d", [ - null, + "navigation-api/ordering-and-transition/back-same-document-intercept.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/back-same-document-intercept.html?currententrychange", + "navigation-api/ordering-and-transition/back-same-document-intercept.html?no-currententrychange", {} ] ], "back-same-document.html": [ - "76c3e99311ed3e792446d9b250d0bef48dbd2847", + "12b6a2aee938733fbb519f7a0bdeb24def79cfdd", [ - null, + "navigation-api/ordering-and-transition/back-same-document.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/back-same-document.html?currententrychange", + "navigation-api/ordering-and-transition/back-same-document.html?no-currententrychange", {} ] ], @@ -647367,13 +650360,13 @@ ] ], "intercept-async.html": [ - "f2ca0969506bb4323514c334986794cbc17815b7", + "d402340b068837ab29807f5d2b083565034e1e8c", [ - null, + "navigation-api/ordering-and-transition/intercept-async.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/intercept-async.html?currententrychange", + "navigation-api/ordering-and-transition/intercept-async.html?no-currententrychange", {} ] ], @@ -647385,46 +650378,46 @@ ] ], "location-href-double-intercept.html": [ - "36ae5ce4ab52b48a937bd01325371edddb366804", + "cc8b95b1b4d8ee2be89d9825e394cc17e59399f1", [ - null, + "navigation-api/ordering-and-transition/location-href-double-intercept.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/location-href-double-intercept.html?currententrychange", + "navigation-api/ordering-and-transition/location-href-double-intercept.html?no-currententrychange", {} ] ], "location-href-intercept-reentrant.html": [ - "3fabf52bfbab2b0bd9e5223879be3e70fa43a04b", + "8a5082148e77775629af391b4954314b4072a152", [ - null, + "navigation-api/ordering-and-transition/location-href-intercept-reentrant.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/location-href-intercept-reentrant.html?currententrychange", + "navigation-api/ordering-and-transition/location-href-intercept-reentrant.html?no-currententrychange", {} ] ], "location-href-intercept-reject.html": [ - "b4aeb726b3b59c73ea33bdf19755afabee1730c6", + "59b3d4884fb6f0f400cc40612c504169cd0b2987", [ - null, + "navigation-api/ordering-and-transition/location-href-intercept-reject.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/location-href-intercept-reject.html?currententrychange", + "navigation-api/ordering-and-transition/location-href-intercept-reject.html?no-currententrychange", {} ] ], "location-href-intercept.html": [ - "bb861d37ae54a5e75937deb550f624031538a54e", + "75f1d3d1d0286b96e97793e7eb03534ae95f5ff0", [ - null, + "navigation-api/ordering-and-transition/location-href-intercept.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/location-href-intercept.html?currententrychange", + "navigation-api/ordering-and-transition/location-href-intercept.html?no-currententrychange", {} ] ], @@ -647443,13 +650436,13 @@ ] ], "navigate-commit-after-transition-intercept.html": [ - "70a840e69239bc0a16a59a46f37b926dfad749a4", + "16c8796d6f45ce94f594280339596464e60b49cf", [ - null, + "navigation-api/ordering-and-transition/navigate-commit-after-transition-intercept.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/navigate-commit-after-transition-intercept.html?currententrychange", + "navigation-api/ordering-and-transition/navigate-commit-after-transition-intercept.html?no-currententrychange", {} ] ], @@ -647468,79 +650461,79 @@ ] ], "navigate-double-intercept.html": [ - "6ce67b9af644aeaad32a7be7f376f2eae61ba933", + "8baea7bf1ea00ccfa919cb178c12ce8deb16ad5d", [ - null, + "navigation-api/ordering-and-transition/navigate-double-intercept.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/navigate-double-intercept.html?currententrychange", + "navigation-api/ordering-and-transition/navigate-double-intercept.html?no-currententrychange", {} ] ], "navigate-in-transition-finished.html": [ - "9251cfe049d30ef3e73a2b25f4558bce7ed2066c", + "6f8b667ce314dae6c7ae06965dbf5369ca5d0a06", [ - null, + "navigation-api/ordering-and-transition/navigate-in-transition-finished.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/navigate-in-transition-finished.html?currententrychange", + "navigation-api/ordering-and-transition/navigate-in-transition-finished.html?no-currententrychange", {} ] ], "navigate-intercept-stop.html": [ - "5d126a8c2ff9b94a2de9f91be9ec3486f8c88e4a", + "189475d5de1edabd6d33032885b2f4aa9fdd1811", [ - null, + "navigation-api/ordering-and-transition/navigate-intercept-stop.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/navigate-intercept-stop.html?currententrychange", + "navigation-api/ordering-and-transition/navigate-intercept-stop.html?no-currententrychange", {} ] ], "navigate-intercept.html": [ - "f76f20bf85efae043115c968942af465b1435887", + "cdbd8f6ef668432b939477260c5f9b0ced1b80d0", [ - null, + "navigation-api/ordering-and-transition/navigate-intercept.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/navigate-intercept.html?currententrychange", + "navigation-api/ordering-and-transition/navigate-intercept.html?no-currententrychange", {} ] ], "navigate-same-document-intercept-reentrant.html": [ - "86f4e06731353659436ac90e1de6987238f884d7", + "0106e997c9fdc4f408fef6c77046ee877f7da4df", [ - null, + "navigation-api/ordering-and-transition/navigate-same-document-intercept-reentrant.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/navigate-same-document-intercept-reentrant.html?currententrychange", + "navigation-api/ordering-and-transition/navigate-same-document-intercept-reentrant.html?no-currententrychange", {} ] ], "navigate-same-document-intercept-reject.html": [ - "88c668e0e99e83b075233379ebab4b16b85a1935", + "6713edca2d9234ae7e90c04540ffe96894273a14", [ - null, + "navigation-api/ordering-and-transition/navigate-same-document-intercept-reject.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/navigate-same-document-intercept-reject.html?currententrychange", + "navigation-api/ordering-and-transition/navigate-same-document-intercept-reject.html?no-currententrychange", {} ] ], "navigate-same-document.html": [ - "589e1105e65a74655e218181835b20c83ac83fd2", + "fc506cef8bf481bee89b8cfd4f78843b95459305", [ - null, + "navigation-api/ordering-and-transition/navigate-same-document.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/navigate-same-document.html?currententrychange", + "navigation-api/ordering-and-transition/navigate-same-document.html?no-currententrychange", {} ] ], @@ -647552,24 +650545,24 @@ ] ], "reload-intercept-reject.html": [ - "334d2108ecdc26542e896261df9915ad08abd66b", + "7394ce4d17a06887d2c8281ad777e2c8fb8125ad", [ - null, + "navigation-api/ordering-and-transition/reload-intercept-reject.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/reload-intercept-reject.html?currententrychange", + "navigation-api/ordering-and-transition/reload-intercept-reject.html?no-currententrychange", {} ] ], "reload-intercept.html": [ - "8d4160a4d959f910423e840968163e787e205852", + "18ff6191c0d05078c097333f9a360d37f6bcdee6", [ - null, + "navigation-api/ordering-and-transition/reload-intercept.html?currententrychange", {} ], [ - "navigation-api/ordering-and-transition/reload-intercept.html?currententrychange", + "navigation-api/ordering-and-transition/reload-intercept.html?no-currententrychange", {} ] ], @@ -650102,7 +653095,7 @@ ] ], "payment-request-disallowed-when-hidden.https.html": [ - "aa59cde2ef0d579cbcc1e205b3d15f5b7c809c66", + "3a5eb010157c38fb16a33dbf504481991726a81d", [ null, { @@ -650926,6 +653919,53 @@ } ] ], + "performance-navigation-timing-reload.tentative.window.js": [ + "3e94c3a4487bd7bbbf02925f35e2520b816e0503", + [ + "performance-timeline/not-restored-reasons/performance-navigation-timing-reload.tentative.window.html", + { + "script_metadata": [ + [ + "title", + "RemoteContextHelper navigation using BFCache" + ], + [ + "script", + "./test-helper.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/get-host-info.sub.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js" + ], + [ + "script", + "/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js" + ], + [ + "script", + "/websockets/constants.sub.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], "performance-navigation-timing-same-origin-bfcache.tentative.window.js": [ "26fea56bbbc00bc92c8e11f0b82000f5911240e9", [ @@ -651392,6 +654432,13 @@ {} ] ], + "performance-entry-source-deleted-frame.html": [ + "8197060670797c928e070b9bd23a14603f37a275", + [ + null, + {} + ] + ], "performance-entry-source.html": [ "d10d3c5ed512b79cc9ea516de0d1d59d7959cedf", [ @@ -652689,7 +655736,7 @@ ] ], "pointerevent_mouse-pointer-preventdefault.html": [ - "549cbf55d8818291f412a1627765df9611ce614c", + "977c4e90cae61d19173354c69de280be0a74018a", [ null, { @@ -652899,6 +655946,33 @@ } ] ], + "pointerevent_bubble_ancestors_none.html": [ + "8908079cc8b3de1e8cb7892bbd39088df850a6bb", + [ + null, + { + "testdriver": true + } + ] + ], + "pointerevent_bubble_display_none.html": [ + "d4c6ba1db73f7aa7836b6d8c5d250fda6bdb63a1", + [ + null, + { + "testdriver": true + } + ] + ], + "pointerevent_bubble_mousedown_mouseup_different_target.html": [ + "c504e0df4357b168e359a5f7719edf0cb0d6d732", + [ + null, + { + "testdriver": true + } + ] + ], "pointerevent_capture_mouse.html": [ "61a933afd86a7e4c3e43e6ac9ae8b7e3707b1558", [ @@ -653217,7 +656291,7 @@ ] ], "pointerevent_pointercapture_in_frame.html": [ - "9edacd7d234633ebec2a12c0e42a4eb5b469c7aa", + "14be00968fad173347a0e29e0eb285d1283f12f6", [ "pointerevents/pointerevent_pointercapture_in_frame.html?mouse", { @@ -654482,6 +657556,13 @@ {} ] ], + "modulepreload-sri-importmap.html": [ + "d633fe1d51e113534568a79510951202ff33ff82", + [ + null, + {} + ] + ], "modulepreload-sri.html": [ "ea32a6a302525240573deb75b6e3f16b96b5e1eb", [ @@ -654853,8 +657934,15 @@ } }, "private-aggregation": { + "protected-audience-surface-failure.https.html": [ + "800bf503cf3972b32f6ce2cd25612c584e3d4adb", + [ + null, + {} + ] + ], "protected-audience-surface-success.https.html": [ - "417a6b145d6e06376ae1bf26b62cc9d1f7006386", + "b688d76c7f843205cd9bad58babb4c15d5a3b3ab", [ null, {} @@ -668744,6 +671832,29 @@ {} ] ], + "tentative": { + "document-initiated.html": [ + "eea2bb2761d79cbf77670fbb835b2ca489ed7e7d", + [ + null, + {} + ] + ], + "script-initiated.html": [ + "d6f3d1a32034a7daba50056d1028a8fe7e08df29", + [ + null, + {} + ] + ], + "stylesheet-initiated.html": [ + "d12e3d193d0837412fdb2cda9a78261fa527b911", + [ + null, + {} + ] + ] + }, "test_resource_timing.html": [ "f4e851abb203aca49194aef51646be673507078f", [ @@ -671138,6 +674249,13 @@ {} ] ], + "pseudo-on-scroller.html": [ + "8dd49ce4d8a913a54caef1ff8145cbaa187af550", + [ + null, + {} + ] + ], "scroll-timeline-axis-computed.html": [ "c942fb40932433dd4daf7dbb68557488bebb14e8", [ @@ -671705,6 +674823,13 @@ {} ] ], + "inline-subject.html": [ + "6b1d216dea154829b86defb2307caf508189a3c8", + [ + null, + {} + ] + ], "inline-view-timeline-current-time.tentative.html": [ "59d73d0cdf772475f0f0f573562ac840ae0b958d", [ @@ -671763,6 +674888,13 @@ ] ] }, + "svg-graphics-element.html": [ + "5f54646b6c3d64454ce3354f794aefb97f5202de", + [ + null, + {} + ] + ], "timeline-offset-in-keyframe.html": [ "1168893854297560262e03c28bdf71580955b8ae", [ @@ -675711,7 +678843,7 @@ ] ], "fetch-error.https.html": [ - "ca2f884a9b391acf273a877f5a47338b3fe1130f", + "e9fdf57431203e308f3bf9839d40bdf2b53f4918", [ null, {} @@ -676316,15 +679448,15 @@ ] ], "navigation-redirect.https.html": [ - "d7d3d5259a454d923d1e89004fcf55ce7e2e6bda", + "a87de56931638d0939e406aa95146699e5a63603", [ - null, + "service-workers/service-worker/navigation-redirect.https.html?client", { "timeout": "long" } ], [ - "service-workers/service-worker/navigation-redirect.https.html?client", + "service-workers/service-worker/navigation-redirect.https.html?default", { "timeout": "long" } @@ -676869,6 +680001,17 @@ {} ] ], + "tentative": { + "static-router": { + "static-router-subresource.https.html": [ + "721c2797603bb568172c6804b07e195d14d2018e", + [ + null, + {} + ] + ] + } + }, "uncontrolled-page.https.html": [ "e22ca8f0a91adf9fbcf64c77cd3d1d4df27956f3", [ @@ -678730,6 +681873,20 @@ {} ] ], + "blob-module-script-url-invalid-mime-type.tentative.https.sub.html": [ + "116facbcd5f558b3d186878a3247ba81ea9c7c4e", + [ + null, + {} + ] + ], + "blob-module-script-url.tentative.https.sub.html": [ + "53e47a0c8743793788f8ebb406564c068ace2514", + [ + null, + {} + ] + ], "combined-setters-and-operations.tentative.https.sub.html": [ "2c544b9b8e63f7a4c26d36ceea474dc96ac52ca0", [ @@ -678829,28 +681986,70 @@ ] ], "shared-storage-permissions-policy-default.tentative.https.sub.html": [ - "87fcdfe18706bf45617428e3092ebdcc4d070098", + "5439df2a0684331e63059e095396a9b2af89c17f", [ null, {} ] ], "shared-storage-permissions-policy-none.tentative.https.sub.html": [ - "1f64d9a538cd558241eb6724ab2193d83a90ac61", + "17a4bf1803ca33edb2d0259d14f484839c9aa3e5", [ null, {} ] ], "shared-storage-permissions-policy-self.tentative.https.sub.html": [ - "d3787f3caa54cddd025b12cef89e921ea5e62500", + "171325cdf8f0a909eac659e1dcbb334e50eef216", + [ + null, + {} + ] + ], + "shared-storage-writable-clear.tentative.https.sub.html": [ + "2d606d6bc17a3340b2124a04d831659e94bb1519", + [ + null, + {} + ] + ], + "shared-storage-writable-delete.tentative.https.sub.html": [ + "fc7f2fb90ee06411f55ecb8c3bf8da976bc4f628", [ null, {} ] ], "shared-storage-writable-insecure-context.tentative.http.sub.html": [ - "346321a41f46032dadf65a3abe4a69c3fb5f8dba", + "debb6cf9c56fb4cda8e72293e0de4b533648c845", + [ + null, + {} + ] + ], + "shared-storage-writable-permissions-policy-default.tentative.https.sub.html": [ + "4dae771f3f9b2d57cbd7d9d8e809da27714df64c", + [ + null, + {} + ] + ], + "shared-storage-writable-permissions-policy-none.tentative.https.sub.html": [ + "7f9584e6146d9ffb92be620de850bbb8125e6214", + [ + null, + {} + ] + ], + "shared-storage-writable-permissions-policy-self.tentative.https.sub.html": [ + "ca5ae16eff2e2ee545fb8eaf0c8999cec439c96b", + [ + null, + {} + ] + ], + "shared-storage-writable-setters.tentative.https.sub.html": [ + "066bf174de0a98971c83a0d07ca1f474b35ff39d", [ null, {} @@ -679333,7 +682532,7 @@ ] ], "dropped-entries.tentative.html": [ - "a1db721837748ebdec23cd740936948458c9044c", + "425f91a7c3ca4810d023661967c6550af92442af", [ null, { @@ -679370,7 +682569,7 @@ ] ], "image-lcp-followed-by-two-image-softnavs-lcp.tentative.html": [ - "1489ae1a94a811c9f098f0fca97edc50b53692ba", + "25151cdd79ea4f1127c4925b00930897bf13fae7", [ null, { @@ -679379,7 +682578,7 @@ ] ], "multiple-paint-entries-buffered.tentative.html": [ - "fcf5c023e4038a89b575f5c334e63fe1d25f7021", + "dbb945a0a811330a3efa74b8b34da3f7987e9f38", [ null, { @@ -679574,6 +682773,15 @@ "testdriver": true } ] + ], + "visited-link.tentative.html": [ + "e81c6f617345af3ad1e7147cdc74a872893e2ab0", + [ + null, + { + "testdriver": true + } + ] ] }, "speculation-rules": { @@ -679778,9 +682986,9 @@ ] ], "navigation-timing-requestStart-responseStart.https.html": [ - "9720d35d587d4ed43a1926f9f29fcd3a4eeba802", + "9c9371c4c31467cad8e3f1ed6f61685c9d1ed567", [ - null, + "speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html?default", {} ], [ @@ -679789,13 +682997,13 @@ ] ], "navigation-timing-sizes.https.html": [ - "26316e4ac352d7ba9c4901a2a32ae03720011f95", + "b3cca1c22dadf49b0f107c383e173b41c65c873b", [ - null, + "speculation-rules/prefetch/navigation-timing-sizes.https.html?bypass_cache=true", {} ], [ - "speculation-rules/prefetch/navigation-timing-sizes.https.html?bypass_cache=true", + "speculation-rules/prefetch/navigation-timing-sizes.https.html?default", {} ], [ @@ -681104,7 +684312,7 @@ ] ], "service-workers.https.html": [ - "f8ba64df34a5587b1350ea159ad065ffbff0424b", + "0f907c35aa10ef62bb4d5bbded5a72721ea740a2", [ null, { @@ -684275,30 +687483,14 @@ ] ], "from.any.js": [ - "04a03545ad5fe3ae18be591d8482cf3590ee02c5", - [ - null, - { - "jsshell": true, - "script_metadata": [ - [ - "global", - "window,worker,jsshell" - ], - [ - "script", - "../resources/test-utils.js" - ] - ] - } - ], + "d53206d4aec0c8f93aa3b82e0897a64159d17359", [ "streams/readable-streams/from.any.html", { "script_metadata": [ [ "global", - "window,worker,jsshell" + "window,worker" ], [ "script", @@ -684313,7 +687505,7 @@ "script_metadata": [ [ "global", - "window,worker,jsshell" + "window,worker" ], [ "script", @@ -684328,7 +687520,7 @@ "script_metadata": [ [ "global", - "window,worker,jsshell" + "window,worker" ], [ "script", @@ -684343,7 +687535,7 @@ "script_metadata": [ [ "global", - "window,worker,jsshell" + "window,worker" ], [ "script", @@ -688588,6 +691780,15 @@ ] ], "scripted": { + "async-01.svg": [ + "a56ef34ae547ac0f696b52f1d89cc25c3a826a80", + [ + null, + { + "timeout": "long" + } + ] + ], "composed.window.svg": [ "b63dcf024439446e0624f98cfa9f7ceb01544524", [ @@ -688595,6 +691796,13 @@ {} ] ], + "defer-01.svg": [ + "93e54c3f0ef644b5e447ec771b20dff43c2a07fc", + [ + null, + {} + ] + ], "ellipse-hittest.html": [ "70b54e0726fbfe349cebaac13d1b4101c2e50327", [ @@ -688616,6 +691824,13 @@ {} ] ], + "module-01.svg": [ + "ea70391e922aaa4a65826d28ed3bb7bb5c1a2dd0", + [ + null, + {} + ] + ], "rect-hittest-001.html": [ "4256628bc6a68684f8e99df81f255301a836e39a", [ @@ -702014,7 +705229,7 @@ ] ], "audiocontext-sinkid-constructor.https.html": [ - "2dedd6cd36d2874325e0a991ac7fc45d4a6632be", + "d2dc54aee6a7f93e846244e1f3ab88c3774cf917", [ null, {} @@ -702028,7 +705243,7 @@ ] ], "audiocontext-sinkid-state-change.https.html": [ - "c22f69c18da72bf88b06b29148072c1b84769bbf", + "8462b5261981f2b33de5682ce3e6130d69c01122", [ null, {} @@ -704772,7 +707987,7 @@ ] ], "full-cycle-test.https.any.js": [ - "7428f6074807f35e75e357909131b99f062b14f0", + "56671e683610ff412d08ba7999843246554ac7f4", [ "webcodecs/full-cycle-test.https.any.html?av1", { @@ -704808,6 +708023,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -704847,6 +708070,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -704886,6 +708117,108 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" + ] + ] + } + ], + [ + "webcodecs/full-cycle-test.https.any.html?h265_annexb", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "script", + "/webcodecs/video-encoder-utils.js" + ], + [ + "variant", + "?av1" + ], + [ + "variant", + "?vp8" + ], + [ + "variant", + "?vp9_p0" + ], + [ + "variant", + "?vp9_p2" + ], + [ + "variant", + "?h264_avc" + ], + [ + "variant", + "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" + ] + ] + } + ], + [ + "webcodecs/full-cycle-test.https.any.html?h265_hevc", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "script", + "/webcodecs/video-encoder-utils.js" + ], + [ + "variant", + "?av1" + ], + [ + "variant", + "?vp8" + ], + [ + "variant", + "?vp9_p0" + ], + [ + "variant", + "?vp9_p2" + ], + [ + "variant", + "?h264_avc" + ], + [ + "variant", + "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -704925,6 +708258,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -704964,6 +708305,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -705003,6 +708352,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -705042,6 +708399,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -705081,6 +708446,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -705120,6 +708493,108 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" + ] + ] + } + ], + [ + "webcodecs/full-cycle-test.https.any.worker.html?h265_annexb", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "script", + "/webcodecs/video-encoder-utils.js" + ], + [ + "variant", + "?av1" + ], + [ + "variant", + "?vp8" + ], + [ + "variant", + "?vp9_p0" + ], + [ + "variant", + "?vp9_p2" + ], + [ + "variant", + "?h264_avc" + ], + [ + "variant", + "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" + ] + ] + } + ], + [ + "webcodecs/full-cycle-test.https.any.worker.html?h265_hevc", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "script", + "/webcodecs/video-encoder-utils.js" + ], + [ + "variant", + "?av1" + ], + [ + "variant", + "?vp8" + ], + [ + "variant", + "?vp9_p0" + ], + [ + "variant", + "?vp9_p2" + ], + [ + "variant", + "?h264_avc" + ], + [ + "variant", + "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -705159,6 +708634,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -705198,6 +708681,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -705237,6 +708728,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706476,7 +709975,7 @@ ] ], "videoDecoder-codec-specific.https.any.js": [ - "31e14d81f3418879c5defd6f4953f7521ef5baaa", + "09e20379898aad8035f683f6f0065b977ed14436", [ "webcodecs/videoDecoder-codec-specific.https.any.html?av1", { @@ -706504,6 +710003,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706535,6 +710042,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706566,6 +710081,92 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" + ] + ] + } + ], + [ + "webcodecs/videoDecoder-codec-specific.https.any.html?h265_annexb", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?av1" + ], + [ + "variant", + "?vp8" + ], + [ + "variant", + "?vp9" + ], + [ + "variant", + "?h264_avc" + ], + [ + "variant", + "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" + ] + ] + } + ], + [ + "webcodecs/videoDecoder-codec-specific.https.any.html?h265_hevc", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?av1" + ], + [ + "variant", + "?vp8" + ], + [ + "variant", + "?vp9" + ], + [ + "variant", + "?h264_avc" + ], + [ + "variant", + "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706597,6 +710198,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706628,6 +710237,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706659,6 +710276,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706690,6 +710315,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706721,6 +710354,92 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" + ] + ] + } + ], + [ + "webcodecs/videoDecoder-codec-specific.https.any.worker.html?h265_annexb", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?av1" + ], + [ + "variant", + "?vp8" + ], + [ + "variant", + "?vp9" + ], + [ + "variant", + "?h264_avc" + ], + [ + "variant", + "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" + ] + ] + } + ], + [ + "webcodecs/videoDecoder-codec-specific.https.any.worker.html?h265_hevc", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?av1" + ], + [ + "variant", + "?vp8" + ], + [ + "variant", + "?vp9" + ], + [ + "variant", + "?h264_avc" + ], + [ + "variant", + "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706752,6 +710471,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706783,6 +710510,14 @@ [ "variant", "?h264_annexb" + ], + [ + "variant", + "?h265_hevc" + ], + [ + "variant", + "?h265_annexb" ] ] } @@ -706821,7 +710556,7 @@ ] ], "videoFrame-construction.any.js": [ - "a443cd66f23056e9d813d216a9bea09279119f2e", + "8e8a3eac18b74f3b5efd09c9fff6eb14be9a0c6a", [ "webcodecs/videoFrame-construction.any.html", { @@ -706910,7 +710645,7 @@ ] ], "videoFrame-construction.window.js": [ - "02f84215522aed4e3ede029342838119bd92fba2", + "6c9791cea6821a45e80f7928cdbc4d223ba3f6b1", [ "webcodecs/videoFrame-construction.window.html", { @@ -707089,7 +710824,7 @@ ] ], "videoFrame-serialization.crossAgentCluster.https.html": [ - "8fe7cf44cc686e041fc1fdc677c060905e7d76d0", + "27f624a8449ce4debdd77477f37a0ba18b65ba36", [ null, {} @@ -707321,7 +711056,7 @@ ] ], "class-string-iterator-prototype-object.any.js": [ - "f878eb7b35b0834accbfd24ddc7d0557334e094f", + "5ca549d69cff81521aa9fbc7a4ca6188f38c8e4f", [ "webidl/ecmascript-binding/class-string-iterator-prototype-object.any.html", {} @@ -712556,9 +716291,9 @@ }, "websockets": { "Close-1000-reason.any.js": [ - "6fc3c1fade8e70ca67fae93501e08b05624fefe6", + "79ad6a0418bd3a1a24dc2a27fbb8e82670e76741", [ - "websockets/Close-1000-reason.any.html", + "websockets/Close-1000-reason.any.html?default", { "script_metadata": [ [ @@ -712567,7 +716302,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712590,7 +716325,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712613,7 +716348,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712627,7 +716362,7 @@ } ], [ - "websockets/Close-1000-reason.any.worker.html", + "websockets/Close-1000-reason.any.worker.html?default", { "script_metadata": [ [ @@ -712636,7 +716371,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712659,7 +716394,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712682,7 +716417,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712697,9 +716432,9 @@ ] ], "Close-1000-verify-code.any.js": [ - "de50130660291f9cabb2db5f6780ac0189cda83a", + "c3a9274caa5ecde7a71956880743e2814abb1388", [ - "websockets/Close-1000-verify-code.any.html", + "websockets/Close-1000-verify-code.any.html?default", { "script_metadata": [ [ @@ -712708,7 +716443,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712731,7 +716466,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712754,7 +716489,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712768,7 +716503,7 @@ } ], [ - "websockets/Close-1000-verify-code.any.worker.html", + "websockets/Close-1000-verify-code.any.worker.html?default", { "script_metadata": [ [ @@ -712777,7 +716512,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712800,7 +716535,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712823,7 +716558,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712838,9 +716573,9 @@ ] ], "Close-1000.any.js": [ - "f3100c6caaa3d2524be6721e41153a123f86ef2d", + "2f535ba21af290e970e3d7a24f7e4bbf17e800d2", [ - "websockets/Close-1000.any.html", + "websockets/Close-1000.any.html?default", { "script_metadata": [ [ @@ -712849,7 +716584,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712872,7 +716607,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712895,7 +716630,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712909,7 +716644,7 @@ } ], [ - "websockets/Close-1000.any.worker.html", + "websockets/Close-1000.any.worker.html?default", { "script_metadata": [ [ @@ -712918,7 +716653,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712941,7 +716676,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712964,7 +716699,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -712979,9 +716714,9 @@ ] ], "Close-1005-verify-code.any.js": [ - "afa7d7b0d983fca5892cc602eae955f790a6b57f", + "28f84c8003f64ca59fc366fad27bf3ccec265b68", [ - "websockets/Close-1005-verify-code.any.html", + "websockets/Close-1005-verify-code.any.html?default", { "script_metadata": [ [ @@ -712990,7 +716725,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713013,7 +716748,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713036,7 +716771,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713050,7 +716785,7 @@ } ], [ - "websockets/Close-1005-verify-code.any.worker.html", + "websockets/Close-1005-verify-code.any.worker.html?default", { "script_metadata": [ [ @@ -713059,7 +716794,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713082,7 +716817,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713105,7 +716840,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713120,9 +716855,9 @@ ] ], "Close-1005.any.js": [ - "514d03ac632431737e821619a54309b8a250b41d", + "5055e283f309f1da2a38d6ec7f66a2e8e4fe9b2d", [ - "websockets/Close-1005.any.html", + "websockets/Close-1005.any.html?default", { "script_metadata": [ [ @@ -713131,7 +716866,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713154,7 +716889,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713177,7 +716912,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713191,7 +716926,7 @@ } ], [ - "websockets/Close-1005.any.worker.html", + "websockets/Close-1005.any.worker.html?default", { "script_metadata": [ [ @@ -713200,7 +716935,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713223,7 +716958,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713246,7 +716981,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713261,9 +716996,9 @@ ] ], "Close-2999-reason.any.js": [ - "95e481e53cf38c805b8af0c15a594296981289bf", + "6336c7db4f398cb365206ee374ce83d1de87d3fe", [ - "websockets/Close-2999-reason.any.html", + "websockets/Close-2999-reason.any.html?default", { "script_metadata": [ [ @@ -713272,7 +717007,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713295,7 +717030,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713318,7 +717053,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713332,7 +717067,7 @@ } ], [ - "websockets/Close-2999-reason.any.worker.html", + "websockets/Close-2999-reason.any.worker.html?default", { "script_metadata": [ [ @@ -713341,7 +717076,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713364,7 +717099,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713387,7 +717122,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713402,9 +717137,9 @@ ] ], "Close-3000-reason.any.js": [ - "2db122934c787abab8a4c4a7b398c54f763b9991", + "8e34ce7c0536cead607efcb02eff7a37074be05e", [ - "websockets/Close-3000-reason.any.html", + "websockets/Close-3000-reason.any.html?default", { "script_metadata": [ [ @@ -713413,7 +717148,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713436,7 +717171,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713459,7 +717194,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713473,7 +717208,7 @@ } ], [ - "websockets/Close-3000-reason.any.worker.html", + "websockets/Close-3000-reason.any.worker.html?default", { "script_metadata": [ [ @@ -713482,7 +717217,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713505,7 +717240,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713528,7 +717263,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713543,9 +717278,9 @@ ] ], "Close-3000-verify-code.any.js": [ - "bfa441f1ee4d6161c7c8f29a8d27d4145aef6795", + "a6703dec1680522fd20e1a6173682f1b985184e9", [ - "websockets/Close-3000-verify-code.any.html", + "websockets/Close-3000-verify-code.any.html?default", { "script_metadata": [ [ @@ -713554,7 +717289,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713577,7 +717312,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713600,7 +717335,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713614,7 +717349,7 @@ } ], [ - "websockets/Close-3000-verify-code.any.worker.html", + "websockets/Close-3000-verify-code.any.worker.html?default", { "script_metadata": [ [ @@ -713623,7 +717358,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713646,7 +717381,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713669,7 +717404,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713684,9 +717419,9 @@ ] ], "Close-4999-reason.any.js": [ - "3516dc2f462d97aa52a21f2d4d308c422423d12c", + "8c2a1c9ad911e9756b929bc66c86e4458361073e", [ - "websockets/Close-4999-reason.any.html", + "websockets/Close-4999-reason.any.html?default", { "script_metadata": [ [ @@ -713695,7 +717430,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713718,7 +717453,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713741,7 +717476,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713755,7 +717490,7 @@ } ], [ - "websockets/Close-4999-reason.any.worker.html", + "websockets/Close-4999-reason.any.worker.html?default", { "script_metadata": [ [ @@ -713764,7 +717499,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713787,7 +717522,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713810,7 +717545,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713825,9 +717560,9 @@ ] ], "Close-Reason-124Bytes.any.js": [ - "aa7fc8ffe83818daeb7faf630e2196f454d0735c", + "063b12be16f91da64bba0aadfb9ba0cd8e46d3de", [ - "websockets/Close-Reason-124Bytes.any.html", + "websockets/Close-Reason-124Bytes.any.html?default", { "script_metadata": [ [ @@ -713836,7 +717571,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713859,7 +717594,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713882,7 +717617,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713896,7 +717631,7 @@ } ], [ - "websockets/Close-Reason-124Bytes.any.worker.html", + "websockets/Close-Reason-124Bytes.any.worker.html?default", { "script_metadata": [ [ @@ -713905,7 +717640,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713928,7 +717663,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713951,7 +717686,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -713966,9 +717701,9 @@ ] ], "Close-delayed.any.js": [ - "212925bb93109b932812618e515acebe2e96dbb0", + "9e0a60cc6ae5671a93b2646aeea4893abdc9981f", [ - "websockets/Close-delayed.any.html", + "websockets/Close-delayed.any.html?default", { "script_metadata": [ [ @@ -713977,7 +717712,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714000,7 +717735,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714023,7 +717758,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714037,7 +717772,7 @@ } ], [ - "websockets/Close-delayed.any.worker.html", + "websockets/Close-delayed.any.worker.html?default", { "script_metadata": [ [ @@ -714046,7 +717781,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714069,7 +717804,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714092,7 +717827,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714107,9 +717842,9 @@ ] ], "Close-onlyReason.any.js": [ - "7c5d10d2a833b97a32863e498f30c225774828ba", + "243eb05e73eb89c847931939ca82c44ec217a24d", [ - "websockets/Close-onlyReason.any.html", + "websockets/Close-onlyReason.any.html?default", { "script_metadata": [ [ @@ -714118,7 +717853,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714141,7 +717876,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714164,7 +717899,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714178,7 +717913,7 @@ } ], [ - "websockets/Close-onlyReason.any.worker.html", + "websockets/Close-onlyReason.any.worker.html?default", { "script_metadata": [ [ @@ -714187,7 +717922,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714210,7 +717945,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714233,7 +717968,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714248,9 +717983,9 @@ ] ], "Close-readyState-Closed.any.js": [ - "bfd61c48c14aa28ca61f703937432a181f22cbd0", + "6c7b5f11322342f5c4090a400ff1ffb4661ab650", [ - "websockets/Close-readyState-Closed.any.html", + "websockets/Close-readyState-Closed.any.html?default", { "script_metadata": [ [ @@ -714259,7 +717994,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714282,7 +718017,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714305,7 +718040,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714319,7 +718054,7 @@ } ], [ - "websockets/Close-readyState-Closed.any.worker.html", + "websockets/Close-readyState-Closed.any.worker.html?default", { "script_metadata": [ [ @@ -714328,7 +718063,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714351,7 +718086,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714374,7 +718109,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714389,9 +718124,9 @@ ] ], "Close-readyState-Closing.any.js": [ - "554744d6297e3b843a288393c9c0969dce7ca96b", + "221130b8f71db5580165f0ace68fa434ebd828f5", [ - "websockets/Close-readyState-Closing.any.html", + "websockets/Close-readyState-Closing.any.html?default", { "script_metadata": [ [ @@ -714400,7 +718135,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714423,7 +718158,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714446,7 +718181,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714460,7 +718195,7 @@ } ], [ - "websockets/Close-readyState-Closing.any.worker.html", + "websockets/Close-readyState-Closing.any.worker.html?default", { "script_metadata": [ [ @@ -714469,7 +718204,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714492,7 +718227,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714515,7 +718250,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714530,9 +718265,9 @@ ] ], "Close-reason-unpaired-surrogates.any.js": [ - "647a1216b99ce4f89fe8f2bac65aa2f2bd35c1f6", + "e5a71d2735ec6d0a4f3050535852b6fa15d5a4b8", [ - "websockets/Close-reason-unpaired-surrogates.any.html", + "websockets/Close-reason-unpaired-surrogates.any.html?default", { "script_metadata": [ [ @@ -714541,7 +718276,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714564,7 +718299,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714587,7 +718322,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714601,7 +718336,7 @@ } ], [ - "websockets/Close-reason-unpaired-surrogates.any.worker.html", + "websockets/Close-reason-unpaired-surrogates.any.worker.html?default", { "script_metadata": [ [ @@ -714610,7 +718345,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714633,7 +718368,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714656,7 +718391,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714671,9 +718406,9 @@ ] ], "Close-server-initiated-close.any.js": [ - "c86793b23a1d8c9592d74c3f5e13dacd57e9a643", + "82fd457e1e7e00677ffa8929a8da61c4823bd4b1", [ - "websockets/Close-server-initiated-close.any.html", + "websockets/Close-server-initiated-close.any.html?default", { "script_metadata": [ [ @@ -714682,7 +718417,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714705,7 +718440,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714728,7 +718463,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714742,7 +718477,7 @@ } ], [ - "websockets/Close-server-initiated-close.any.worker.html", + "websockets/Close-server-initiated-close.any.worker.html?default", { "script_metadata": [ [ @@ -714751,7 +718486,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714774,7 +718509,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714797,7 +718532,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714812,9 +718547,9 @@ ] ], "Close-undefined.any.js": [ - "a8106c6f155a7aa8357529be3f39c1195ce686b9", + "e24ef0c3db8bc40242029706b23aac52aafae73e", [ - "websockets/Close-undefined.any.html", + "websockets/Close-undefined.any.html?default", { "script_metadata": [ [ @@ -714823,7 +718558,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714846,7 +718581,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714869,7 +718604,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714883,7 +718618,7 @@ } ], [ - "websockets/Close-undefined.any.worker.html", + "websockets/Close-undefined.any.worker.html?default", { "script_metadata": [ [ @@ -714892,7 +718627,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714915,7 +718650,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714938,7 +718673,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714953,9 +718688,9 @@ ] ], "Create-asciiSep-protocol-string.any.js": [ - "1221c5611459199e77f0e3dc67aadcb9292dfc45", + "d0102ce533c804bdd3dcf26e3729df6b55e4d5c8", [ - "websockets/Create-asciiSep-protocol-string.any.html", + "websockets/Create-asciiSep-protocol-string.any.html?default", { "script_metadata": [ [ @@ -714964,7 +718699,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -714987,7 +718722,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715010,7 +718745,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715024,7 +718759,7 @@ } ], [ - "websockets/Create-asciiSep-protocol-string.any.worker.html", + "websockets/Create-asciiSep-protocol-string.any.worker.html?default", { "script_metadata": [ [ @@ -715033,7 +718768,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715056,7 +718791,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715079,7 +718814,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715094,9 +718829,9 @@ ] ], "Create-blocked-port.any.js": [ - "c670009b25d4237bfc56955b5f85ca80ac830b62", + "2962312ff5f7fd8f09332a8124dd5fb559f2cb8b", [ - "websockets/Create-blocked-port.any.html", + "websockets/Create-blocked-port.any.html?default", { "script_metadata": [ [ @@ -715105,7 +718840,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715128,7 +718863,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715151,7 +718886,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715165,7 +718900,7 @@ } ], [ - "websockets/Create-blocked-port.any.worker.html", + "websockets/Create-blocked-port.any.worker.html?default", { "script_metadata": [ [ @@ -715174,7 +718909,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715197,7 +718932,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715220,7 +718955,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715235,9 +718970,9 @@ ] ], "Create-extensions-empty.any.js": [ - "1fba4bd2cc5a61556256167a97613d51517b210e", + "98a7d65ab5a86cf64c2d8e9ef19b935b79a45be5", [ - "websockets/Create-extensions-empty.any.html", + "websockets/Create-extensions-empty.any.html?default", { "script_metadata": [ [ @@ -715250,7 +718985,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715278,7 +719013,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715306,7 +719041,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715321,7 +719056,7 @@ } ], [ - "websockets/Create-extensions-empty.any.worker.html", + "websockets/Create-extensions-empty.any.worker.html?default", { "script_metadata": [ [ @@ -715334,7 +719069,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715362,7 +719097,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715390,7 +719125,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715439,9 +719174,9 @@ ] ], "Create-nonAscii-protocol-string.any.js": [ - "1b56cc914b7d4a2a311c0969791118c67ba51b7b", + "fda926a9d54842dc1dcf1cde974e700062dbae1c", [ - "websockets/Create-nonAscii-protocol-string.any.html", + "websockets/Create-nonAscii-protocol-string.any.html?default", { "script_metadata": [ [ @@ -715450,7 +719185,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715473,7 +719208,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715496,7 +719231,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715510,7 +719245,7 @@ } ], [ - "websockets/Create-nonAscii-protocol-string.any.worker.html", + "websockets/Create-nonAscii-protocol-string.any.worker.html?default", { "script_metadata": [ [ @@ -715519,7 +719254,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715542,7 +719277,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715565,7 +719300,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715591,9 +719326,9 @@ ] ], "Create-protocol-with-space.any.js": [ - "f49d1fec0c392f83e9c01f2ff6ca59d4df782d84", + "a85d4e5df9d615a0550a44c47cf5c163a7aa938b", [ - "websockets/Create-protocol-with-space.any.html", + "websockets/Create-protocol-with-space.any.html?default", { "script_metadata": [ [ @@ -715602,7 +719337,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715625,7 +719360,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715648,7 +719383,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715662,7 +719397,7 @@ } ], [ - "websockets/Create-protocol-with-space.any.worker.html", + "websockets/Create-protocol-with-space.any.worker.html?default", { "script_metadata": [ [ @@ -715671,7 +719406,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715694,7 +719429,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715717,7 +719452,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715732,9 +719467,9 @@ ] ], "Create-protocols-repeated-case-insensitive.any.js": [ - "41f78396fc3b77ad795eda099a87206e2411281d", + "1a508e87d380331bdd6f6f7071dc3c34f91f38c2", [ - "websockets/Create-protocols-repeated-case-insensitive.any.html", + "websockets/Create-protocols-repeated-case-insensitive.any.html?default", { "script_metadata": [ [ @@ -715743,7 +719478,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715766,7 +719501,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715789,7 +719524,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715803,7 +719538,7 @@ } ], [ - "websockets/Create-protocols-repeated-case-insensitive.any.worker.html", + "websockets/Create-protocols-repeated-case-insensitive.any.worker.html?default", { "script_metadata": [ [ @@ -715812,7 +719547,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715835,7 +719570,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715858,7 +719593,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715873,9 +719608,9 @@ ] ], "Create-protocols-repeated.any.js": [ - "fc7d1b6ad2ffd65c507670f67bd198057aedbc88", + "2f12a47f964b88f723b0072e56e23148094e7381", [ - "websockets/Create-protocols-repeated.any.html", + "websockets/Create-protocols-repeated.any.html?default", { "script_metadata": [ [ @@ -715884,7 +719619,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715907,7 +719642,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715930,7 +719665,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715944,7 +719679,7 @@ } ], [ - "websockets/Create-protocols-repeated.any.worker.html", + "websockets/Create-protocols-repeated.any.worker.html?default", { "script_metadata": [ [ @@ -715953,7 +719688,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715976,7 +719711,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -715999,7 +719734,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716014,9 +719749,9 @@ ] ], "Create-url-with-space.any.js": [ - "d1e1ea1cba924970db4755eccc83f79b166038aa", + "f2bea5b9d9f7639db8645d1d8e3f3dc67aab62b9", [ - "websockets/Create-url-with-space.any.html", + "websockets/Create-url-with-space.any.html?default", { "script_metadata": [ [ @@ -716025,7 +719760,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716048,7 +719783,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716071,7 +719806,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716085,7 +719820,7 @@ } ], [ - "websockets/Create-url-with-space.any.worker.html", + "websockets/Create-url-with-space.any.worker.html?default", { "script_metadata": [ [ @@ -716094,7 +719829,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716117,7 +719852,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716140,7 +719875,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716162,9 +719897,9 @@ ] ], "Create-valid-url-array-protocols.any.js": [ - "00ab1ca9873248013dfaab04720befb8c0083f1f", + "fe71fd7ca23c8b46608aaf18fbcdd6b6abbea5bd", [ - "websockets/Create-valid-url-array-protocols.any.html", + "websockets/Create-valid-url-array-protocols.any.html?default", { "script_metadata": [ [ @@ -716173,7 +719908,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716196,7 +719931,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716219,7 +719954,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716233,7 +719968,7 @@ } ], [ - "websockets/Create-valid-url-array-protocols.any.worker.html", + "websockets/Create-valid-url-array-protocols.any.worker.html?default", { "script_metadata": [ [ @@ -716242,7 +719977,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716265,7 +720000,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716288,7 +720023,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716303,9 +720038,9 @@ ] ], "Create-valid-url-binaryType-blob.any.js": [ - "59eec8e29d3e52648e21ace92a81df64bb65b1da", + "7840ff314ffacd69625909b0ff47d5397a512ca0", [ - "websockets/Create-valid-url-binaryType-blob.any.html", + "websockets/Create-valid-url-binaryType-blob.any.html?default", { "script_metadata": [ [ @@ -716314,7 +720049,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716337,7 +720072,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716360,7 +720095,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716374,7 +720109,7 @@ } ], [ - "websockets/Create-valid-url-binaryType-blob.any.worker.html", + "websockets/Create-valid-url-binaryType-blob.any.worker.html?default", { "script_metadata": [ [ @@ -716383,7 +720118,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716406,7 +720141,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716429,7 +720164,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716444,9 +720179,9 @@ ] ], "Create-valid-url-protocol-empty.any.js": [ - "9e1de6dab46c5d7e3bc8bcaf2a49bb227e7c2411", + "f18a9d89084955d4f50029c224fbed3e9e96dbba", [ - "websockets/Create-valid-url-protocol-empty.any.html", + "websockets/Create-valid-url-protocol-empty.any.html?default", { "script_metadata": [ [ @@ -716455,7 +720190,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716478,7 +720213,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716501,7 +720236,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716515,7 +720250,7 @@ } ], [ - "websockets/Create-valid-url-protocol-empty.any.worker.html", + "websockets/Create-valid-url-protocol-empty.any.worker.html?default", { "script_metadata": [ [ @@ -716524,7 +720259,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716547,7 +720282,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716570,7 +720305,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716585,9 +720320,9 @@ ] ], "Create-valid-url-protocol-setCorrectly.any.js": [ - "bb1f32fbce1fa6a823db5947cc691e52ae02d8b9", + "c5d06ac84c0f12b8fada569f7d2438cc4434a712", [ - "websockets/Create-valid-url-protocol-setCorrectly.any.html", + "websockets/Create-valid-url-protocol-setCorrectly.any.html?default", { "script_metadata": [ [ @@ -716596,7 +720331,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716619,7 +720354,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716642,7 +720377,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716656,7 +720391,7 @@ } ], [ - "websockets/Create-valid-url-protocol-setCorrectly.any.worker.html", + "websockets/Create-valid-url-protocol-setCorrectly.any.worker.html?default", { "script_metadata": [ [ @@ -716665,7 +720400,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716688,7 +720423,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716711,7 +720446,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716726,9 +720461,9 @@ ] ], "Create-valid-url-protocol-string.any.js": [ - "4f730db94f7ef2720f7d564e13b3740bd9554ba2", + "10e928d333f2024ece21144c1e18faceb2023966", [ - "websockets/Create-valid-url-protocol-string.any.html", + "websockets/Create-valid-url-protocol-string.any.html?default", { "script_metadata": [ [ @@ -716737,7 +720472,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716760,7 +720495,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716783,7 +720518,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716797,7 +720532,7 @@ } ], [ - "websockets/Create-valid-url-protocol-string.any.worker.html", + "websockets/Create-valid-url-protocol-string.any.worker.html?default", { "script_metadata": [ [ @@ -716806,7 +720541,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716829,7 +720564,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716852,7 +720587,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716867,9 +720602,9 @@ ] ], "Create-valid-url-protocol.any.js": [ - "599a9eb8f1b350cf79900620002c183aef4dd1d9", + "37b5a0e886ceb4c2ab9ebc791ab79e54c02f0d1e", [ - "websockets/Create-valid-url-protocol.any.html", + "websockets/Create-valid-url-protocol.any.html?default", { "script_metadata": [ [ @@ -716878,7 +720613,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716901,7 +720636,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716924,7 +720659,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716938,7 +720673,7 @@ } ], [ - "websockets/Create-valid-url-protocol.any.worker.html", + "websockets/Create-valid-url-protocol.any.worker.html?default", { "script_metadata": [ [ @@ -716947,7 +720682,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716970,7 +720705,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -716993,7 +720728,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717008,9 +720743,9 @@ ] ], "Create-valid-url.any.js": [ - "edb27f61d3c33c9028e4fd178d5a3d795ca23b1a", + "1df995fb8b0abe8fbecb6fc92069773a356dfe4f", [ - "websockets/Create-valid-url.any.html", + "websockets/Create-valid-url.any.html?default", { "script_metadata": [ [ @@ -717019,7 +720754,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717042,7 +720777,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717065,7 +720800,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717079,7 +720814,7 @@ } ], [ - "websockets/Create-valid-url.any.worker.html", + "websockets/Create-valid-url.any.worker.html?default", { "script_metadata": [ [ @@ -717088,7 +720823,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717111,7 +720846,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717134,7 +720869,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717149,9 +720884,9 @@ ] ], "Send-0byte-data.any.js": [ - "b984b641084a3cddbf1b757aa794532ab708000c", + "4176de411c6721cf53403035883f48bb81a86468", [ - "websockets/Send-0byte-data.any.html", + "websockets/Send-0byte-data.any.html?default", { "script_metadata": [ [ @@ -717160,7 +720895,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717183,7 +720918,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717206,7 +720941,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717220,7 +720955,7 @@ } ], [ - "websockets/Send-0byte-data.any.worker.html", + "websockets/Send-0byte-data.any.worker.html?default", { "script_metadata": [ [ @@ -717229,7 +720964,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717252,7 +720987,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717275,7 +721010,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717290,9 +721025,9 @@ ] ], "Send-65K-data.any.js": [ - "5c3437999b99a40e0676534a9748e4d503b34f3e", + "20e5ba7c94952b88ced569abce103f73adb7c8a1", [ - "websockets/Send-65K-data.any.html", + "websockets/Send-65K-data.any.html?default", { "script_metadata": [ [ @@ -717301,7 +721036,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717324,7 +721059,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717347,7 +721082,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717361,7 +721096,7 @@ } ], [ - "websockets/Send-65K-data.any.worker.html", + "websockets/Send-65K-data.any.worker.html?default", { "script_metadata": [ [ @@ -717370,7 +721105,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717393,7 +721128,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717416,7 +721151,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717431,9 +721166,9 @@ ] ], "Send-before-open.any.js": [ - "5982535583fbb5da6d9889450597314c5c29060c", + "4fdbf71c6f5f573f36752c30635e8281d8dd01f9", [ - "websockets/Send-before-open.any.html", + "websockets/Send-before-open.any.html?default", { "script_metadata": [ [ @@ -717442,7 +721177,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717465,7 +721200,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717488,7 +721223,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717502,7 +721237,7 @@ } ], [ - "websockets/Send-before-open.any.worker.html", + "websockets/Send-before-open.any.worker.html?default", { "script_metadata": [ [ @@ -717511,7 +721246,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717534,7 +721269,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717557,7 +721292,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717572,9 +721307,9 @@ ] ], "Send-binary-65K-arraybuffer.any.js": [ - "1e02ac2d37f99c5ab4d4d8b3639786b1a738db46", + "6bee660bb38b4d3bae62cb9b9731b45546be1820", [ - "websockets/Send-binary-65K-arraybuffer.any.html", + "websockets/Send-binary-65K-arraybuffer.any.html?default", { "script_metadata": [ [ @@ -717583,7 +721318,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717606,7 +721341,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717629,7 +721364,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717643,7 +721378,7 @@ } ], [ - "websockets/Send-binary-65K-arraybuffer.any.worker.html", + "websockets/Send-binary-65K-arraybuffer.any.worker.html?default", { "script_metadata": [ [ @@ -717652,7 +721387,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717675,7 +721410,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717698,7 +721433,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717713,9 +721448,9 @@ ] ], "Send-binary-arraybuffer.any.js": [ - "5c985edd61638688eb73dd4ca7912372d123cac9", + "0b34e0cfc937096f2afef3dc0d9e23359036a85c", [ - "websockets/Send-binary-arraybuffer.any.html", + "websockets/Send-binary-arraybuffer.any.html?default", { "script_metadata": [ [ @@ -717724,7 +721459,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717747,7 +721482,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717770,7 +721505,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717784,7 +721519,7 @@ } ], [ - "websockets/Send-binary-arraybuffer.any.worker.html", + "websockets/Send-binary-arraybuffer.any.worker.html?default", { "script_metadata": [ [ @@ -717793,7 +721528,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717816,7 +721551,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717839,7 +721574,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717854,9 +721589,9 @@ ] ], "Send-binary-arraybufferview-float32.any.js": [ - "9a8e3426f49c3ae6815f2a672be0c716569fdd0c", + "47ee5b1170b8d20ba217395e693ecdceb774810a", [ - "websockets/Send-binary-arraybufferview-float32.any.html", + "websockets/Send-binary-arraybufferview-float32.any.html?default", { "script_metadata": [ [ @@ -717865,7 +721600,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717888,7 +721623,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717911,7 +721646,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717925,7 +721660,7 @@ } ], [ - "websockets/Send-binary-arraybufferview-float32.any.worker.html", + "websockets/Send-binary-arraybufferview-float32.any.worker.html?default", { "script_metadata": [ [ @@ -717934,7 +721669,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717957,7 +721692,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717980,7 +721715,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -717995,9 +721730,9 @@ ] ], "Send-binary-arraybufferview-float64.any.js": [ - "d71d2d8c58f5d5d0d285320d59e0f42c13e4031c", + "78bcb13d43f3f776ffbe16e3ef62dd3ee9ab379b", [ - "websockets/Send-binary-arraybufferview-float64.any.html", + "websockets/Send-binary-arraybufferview-float64.any.html?default", { "script_metadata": [ [ @@ -718006,7 +721741,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718029,7 +721764,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718052,7 +721787,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718066,7 +721801,7 @@ } ], [ - "websockets/Send-binary-arraybufferview-float64.any.worker.html", + "websockets/Send-binary-arraybufferview-float64.any.worker.html?default", { "script_metadata": [ [ @@ -718075,7 +721810,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718098,7 +721833,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718121,7 +721856,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718136,9 +721871,9 @@ ] ], "Send-binary-arraybufferview-int16-offset.any.js": [ - "bb77d300ad1f9c1d435a0c5e7b648b8e4d1f2b60", + "3dd64552b01c55d7c7d061493ac88e4aec311fb1", [ - "websockets/Send-binary-arraybufferview-int16-offset.any.html", + "websockets/Send-binary-arraybufferview-int16-offset.any.html?default", { "script_metadata": [ [ @@ -718147,7 +721882,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718170,7 +721905,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718193,7 +721928,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718207,7 +721942,7 @@ } ], [ - "websockets/Send-binary-arraybufferview-int16-offset.any.worker.html", + "websockets/Send-binary-arraybufferview-int16-offset.any.worker.html?default", { "script_metadata": [ [ @@ -718216,7 +721951,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718239,7 +721974,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718262,7 +721997,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718277,9 +722012,9 @@ ] ], "Send-binary-arraybufferview-int32.any.js": [ - "f4312e410ab738f086b576fe656c9a4046fff266", + "853ba39b4b51ebfcb132938d71728289d4318b36", [ - "websockets/Send-binary-arraybufferview-int32.any.html", + "websockets/Send-binary-arraybufferview-int32.any.html?default", { "script_metadata": [ [ @@ -718288,7 +722023,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718311,7 +722046,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718334,7 +722069,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718348,7 +722083,7 @@ } ], [ - "websockets/Send-binary-arraybufferview-int32.any.worker.html", + "websockets/Send-binary-arraybufferview-int32.any.worker.html?default", { "script_metadata": [ [ @@ -718357,7 +722092,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718380,7 +722115,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718403,7 +722138,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718418,9 +722153,9 @@ ] ], "Send-binary-arraybufferview-int8.any.js": [ - "f2374fb413908548f9d9d5e4ada145dbac4af4cb", + "aa90020bba84f1234972cb7eef0127732fe8c149", [ - "websockets/Send-binary-arraybufferview-int8.any.html", + "websockets/Send-binary-arraybufferview-int8.any.html?default", { "script_metadata": [ [ @@ -718429,7 +722164,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718452,7 +722187,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718475,7 +722210,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718489,7 +722224,7 @@ } ], [ - "websockets/Send-binary-arraybufferview-int8.any.worker.html", + "websockets/Send-binary-arraybufferview-int8.any.worker.html?default", { "script_metadata": [ [ @@ -718498,7 +722233,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718521,7 +722256,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718544,7 +722279,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718559,9 +722294,9 @@ ] ], "Send-binary-arraybufferview-uint16-offset-length.any.js": [ - "f917a3af007d8ca29df385c1397dbcb6378f526f", + "a3c1f326a59420bd9779b5b368432e967352086d", [ - "websockets/Send-binary-arraybufferview-uint16-offset-length.any.html", + "websockets/Send-binary-arraybufferview-uint16-offset-length.any.html?default", { "script_metadata": [ [ @@ -718570,7 +722305,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718593,7 +722328,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718616,7 +722351,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718630,7 +722365,7 @@ } ], [ - "websockets/Send-binary-arraybufferview-uint16-offset-length.any.worker.html", + "websockets/Send-binary-arraybufferview-uint16-offset-length.any.worker.html?default", { "script_metadata": [ [ @@ -718639,7 +722374,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718662,7 +722397,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718685,7 +722420,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718700,9 +722435,9 @@ ] ], "Send-binary-arraybufferview-uint32-offset.any.js": [ - "33758dc65449e5fd662abd042be6373a1fd1abbe", + "fede995450ca7123b8ca4da9f4631d29a63fb7d1", [ - "websockets/Send-binary-arraybufferview-uint32-offset.any.html", + "websockets/Send-binary-arraybufferview-uint32-offset.any.html?default", { "script_metadata": [ [ @@ -718711,7 +722446,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718734,7 +722469,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718757,7 +722492,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718771,7 +722506,7 @@ } ], [ - "websockets/Send-binary-arraybufferview-uint32-offset.any.worker.html", + "websockets/Send-binary-arraybufferview-uint32-offset.any.worker.html?default", { "script_metadata": [ [ @@ -718780,7 +722515,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718803,7 +722538,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718826,7 +722561,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718841,9 +722576,9 @@ ] ], "Send-binary-arraybufferview-uint8-offset-length.any.js": [ - "1d256dbdca128771040325541ecb61f72a3e42c5", + "de3ae00f27060031a79712641153eb946486781d", [ - "websockets/Send-binary-arraybufferview-uint8-offset-length.any.html", + "websockets/Send-binary-arraybufferview-uint8-offset-length.any.html?default", { "script_metadata": [ [ @@ -718852,7 +722587,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718875,7 +722610,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718898,7 +722633,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718912,7 +722647,7 @@ } ], [ - "websockets/Send-binary-arraybufferview-uint8-offset-length.any.worker.html", + "websockets/Send-binary-arraybufferview-uint8-offset-length.any.worker.html?default", { "script_metadata": [ [ @@ -718921,7 +722656,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718944,7 +722679,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718967,7 +722702,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -718982,9 +722717,9 @@ ] ], "Send-binary-arraybufferview-uint8-offset.any.js": [ - "43e9fe6849919049af67a66c8b71cc3b5f159c14", + "089174b384dc43cd57ffb11de4088d50a58d1502", [ - "websockets/Send-binary-arraybufferview-uint8-offset.any.html", + "websockets/Send-binary-arraybufferview-uint8-offset.any.html?default", { "script_metadata": [ [ @@ -718993,7 +722728,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719016,7 +722751,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719039,7 +722774,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719053,7 +722788,7 @@ } ], [ - "websockets/Send-binary-arraybufferview-uint8-offset.any.worker.html", + "websockets/Send-binary-arraybufferview-uint8-offset.any.worker.html?default", { "script_metadata": [ [ @@ -719062,7 +722797,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719085,7 +722820,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719108,7 +722843,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719123,9 +722858,9 @@ ] ], "Send-binary-blob.any.js": [ - "56c89a1b53c4e5e87fa30c3b64f669f7dfe94d78", + "5131b716b4fb90bf8387dc1b1e12d3b82c894812", [ - "websockets/Send-binary-blob.any.html", + "websockets/Send-binary-blob.any.html?default", { "script_metadata": [ [ @@ -719134,7 +722869,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719157,7 +722892,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719180,7 +722915,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719194,7 +722929,7 @@ } ], [ - "websockets/Send-binary-blob.any.worker.html", + "websockets/Send-binary-blob.any.worker.html?default", { "script_metadata": [ [ @@ -719203,7 +722938,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719226,7 +722961,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719249,7 +722984,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719264,9 +722999,9 @@ ] ], "Send-data.any.js": [ - "203ab54dffc62b9b7b28e8344d573a0e911b9570", + "a606ada310d2e529a6325df4679dc4ab83ddd6ac", [ - "websockets/Send-data.any.html", + "websockets/Send-data.any.html?default", { "script_metadata": [ [ @@ -719275,7 +723010,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719298,7 +723033,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719321,7 +723056,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719335,7 +723070,7 @@ } ], [ - "websockets/Send-data.any.worker.html", + "websockets/Send-data.any.worker.html?default", { "script_metadata": [ [ @@ -719344,7 +723079,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719367,7 +723102,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719390,7 +723125,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719405,14 +723140,14 @@ ] ], "Send-data.worker.js": [ - "b141fb382070307751b742f6f5f516fc32872264", + "5a8bdd5fa3a489fd107f84fc7801a224f9d9b853", [ - "websockets/Send-data.worker.html", + "websockets/Send-data.worker.html?default", { "script_metadata": [ [ "variant", - "" + "?default" ], [ "variant", @@ -719431,7 +723166,7 @@ "script_metadata": [ [ "variant", - "" + "?default" ], [ "variant", @@ -719450,7 +723185,7 @@ "script_metadata": [ [ "variant", - "" + "?default" ], [ "variant", @@ -719465,9 +723200,9 @@ ] ], "Send-null.any.js": [ - "a12eaf9c591af8ddfe95c75aef34cb5fd309d160", + "e621bb892bbd84590dc22343eef4e900abb2631e", [ - "websockets/Send-null.any.html", + "websockets/Send-null.any.html?default", { "script_metadata": [ [ @@ -719476,7 +723211,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719499,7 +723234,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719522,7 +723257,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719536,7 +723271,7 @@ } ], [ - "websockets/Send-null.any.worker.html", + "websockets/Send-null.any.worker.html?default", { "script_metadata": [ [ @@ -719545,7 +723280,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719568,7 +723303,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719591,7 +723326,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719606,9 +723341,9 @@ ] ], "Send-paired-surrogates.any.js": [ - "e2dc004bfcf4e9e5d1b71d65d8c69b2fd6efc715", + "51e4fb965e269c2389d1bbfeabcfd2eb4bdddbb2", [ - "websockets/Send-paired-surrogates.any.html", + "websockets/Send-paired-surrogates.any.html?default", { "script_metadata": [ [ @@ -719617,7 +723352,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719640,7 +723375,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719663,7 +723398,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719677,7 +723412,7 @@ } ], [ - "websockets/Send-paired-surrogates.any.worker.html", + "websockets/Send-paired-surrogates.any.worker.html?default", { "script_metadata": [ [ @@ -719686,7 +723421,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719709,7 +723444,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719732,7 +723467,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719747,9 +723482,9 @@ ] ], "Send-unicode-data.any.js": [ - "f22094a243c96d1cb0777db3cfa975bf0fbff9e3", + "a3556b26ab21de4632c0ccfe57788896c22027f6", [ - "websockets/Send-unicode-data.any.html", + "websockets/Send-unicode-data.any.html?default", { "script_metadata": [ [ @@ -719758,7 +723493,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719781,7 +723516,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719804,7 +723539,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719818,7 +723553,7 @@ } ], [ - "websockets/Send-unicode-data.any.worker.html", + "websockets/Send-unicode-data.any.worker.html?default", { "script_metadata": [ [ @@ -719827,7 +723562,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719850,7 +723585,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719873,7 +723608,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719888,9 +723623,9 @@ ] ], "Send-unpaired-surrogates.any.js": [ - "1cb5d0ac9cd49647fc384c077dbbc194a4edb051", + "cbbcc6ebf64c24790e3819c3b588b64bae9aa313", [ - "websockets/Send-unpaired-surrogates.any.html", + "websockets/Send-unpaired-surrogates.any.html?default", { "script_metadata": [ [ @@ -719899,7 +723634,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719922,7 +723657,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719945,7 +723680,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719959,7 +723694,7 @@ } ], [ - "websockets/Send-unpaired-surrogates.any.worker.html", + "websockets/Send-unpaired-surrogates.any.worker.html?default", { "script_metadata": [ [ @@ -719968,7 +723703,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -719991,7 +723726,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720014,7 +723749,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720369,9 +724104,9 @@ ], "binary": { "001.html": [ - "21ffff40eb0f3fb225cecc2b698c54d779ab8d0b", + "077bf79def3e19252bc2afe26180b68c6d7d32ce", [ - null, + "websockets/binary/001.html?default", {} ], [ @@ -720384,9 +724119,9 @@ ] ], "002.html": [ - "ffd1ee7a7a27510d88c23501791adef70e57572d", + "558777694bbc6b414f2de27531297ff0686e86a3", [ - null, + "websockets/binary/002.html?default", { "timeout": "long" } @@ -720405,9 +724140,9 @@ ] ], "004.html": [ - "76bb902cf95b258d802a8c315179179cfd5a7822", + "8ca4e923ea09b20445f1080f7babc64e2438cdc1", [ - null, + "websockets/binary/004.html?default", { "timeout": "long" } @@ -720426,9 +724161,9 @@ ] ], "005.html": [ - "9b8b2c4edfd54049044e77e9d9d9ec0309c567a5", + "e89f4c0e837f866ad023e68b4fbd853af75bc9ed", [ - null, + "websockets/binary/005.html?default", {} ], [ @@ -720442,9 +724177,9 @@ ] }, "binaryType-wrong-value.any.js": [ - "007510d030bff14d1cc0d5198f850d5ad5e96a48", + "683fb47bede98427e2d8afb8f6dda33367683c34", [ - "websockets/binaryType-wrong-value.any.html", + "websockets/binaryType-wrong-value.any.html?default", { "script_metadata": [ [ @@ -720453,7 +724188,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720476,7 +724211,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720499,7 +724234,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720513,7 +724248,7 @@ } ], [ - "websockets/binaryType-wrong-value.any.worker.html", + "websockets/binaryType-wrong-value.any.worker.html?default", { "script_metadata": [ [ @@ -720522,7 +724257,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720545,7 +724280,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720568,7 +724303,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720583,9 +724318,9 @@ ] ], "bufferedAmount-unchanged-by-sync-xhr.any.js": [ - "b247ee56f62f3f82e6bbae4f42022afcf6ffa6ff", + "c15536d76749fb6792316bc0446cc8a09d3d9c55", [ - "websockets/bufferedAmount-unchanged-by-sync-xhr.any.html", + "websockets/bufferedAmount-unchanged-by-sync-xhr.any.html?default", { "script_metadata": [ [ @@ -720598,7 +724333,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720625,7 +724360,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720652,7 +724387,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720666,7 +724401,7 @@ } ], [ - "websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker.html", + "websockets/bufferedAmount-unchanged-by-sync-xhr.any.sharedworker.html?default", { "script_metadata": [ [ @@ -720679,7 +724414,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720706,7 +724441,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720733,7 +724468,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720747,7 +724482,7 @@ } ], [ - "websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html", + "websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker.html?default", { "script_metadata": [ [ @@ -720760,7 +724495,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720787,7 +724522,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720814,7 +724549,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720829,9 +724564,9 @@ ] ], "close-invalid.any.js": [ - "3223063765ab09f26fdbbe43b13aa0b04322368a", + "c964c8391d5de900b7e78fabc8c74fd1390bf2b3", [ - "websockets/close-invalid.any.html", + "websockets/close-invalid.any.html?default", { "script_metadata": [ [ @@ -720840,7 +724575,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720863,7 +724598,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720886,7 +724621,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720900,7 +724635,7 @@ } ], [ - "websockets/close-invalid.any.worker.html", + "websockets/close-invalid.any.worker.html?default", { "script_metadata": [ [ @@ -720909,7 +724644,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720932,7 +724667,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720955,7 +724690,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -720971,9 +724706,9 @@ ], "closing-handshake": { "002.html": [ - "b0e39a955ce415fcd1b8e228de1a0560862c28b9", + "8d1e43b6de9193e1281e38bb009bd5827a5798fd", [ - null, + "websockets/closing-handshake/002.html?default", {} ], [ @@ -720986,9 +724721,9 @@ ] ], "003.html": [ - "72eb09d8337c8d3760257a34b719a3e3f8f345c6", + "43e1603d34fe7219b75f50450a9be4b7df3b071e", [ - null, + "websockets/closing-handshake/003.html?default", {} ], [ @@ -721001,9 +724736,9 @@ ] ], "004.html": [ - "eb89ad33857c45f4f0043e19b369bd17e0b662ac", + "96411ea63903ec0f217c90fee546fc53a6c85562", [ - null, + "websockets/closing-handshake/004.html?default", {} ], [ @@ -721018,9 +724753,9 @@ }, "constructor": { "001.html": [ - "0c39a0ee71b5968a0c4643a947771a87e2ea22e5", + "13493e3430fe77c3546752d164f8369a966af8af", [ - null, + "websockets/constructor/001.html?default", {} ], [ @@ -721033,9 +724768,9 @@ ] ], "004.html": [ - "e599bf224ae0fe7667bfa08ff2d92be206648d0b", + "814321089bed722550e1239cf22ead9915108b29", [ - null, + "websockets/constructor/004.html?default", {} ], [ @@ -721048,9 +724783,9 @@ ] ], "005.html": [ - "377d9c4217a8cb6fbe447f766d3315b5681979ff", + "9d467def3f9cb5b3ca7905b4a04ba5644e25f8a1", [ - null, + "websockets/constructor/005.html?default", {} ], [ @@ -721063,9 +724798,9 @@ ] ], "006.html": [ - "65178e001652a8ea9c56dcf8df0263c058b8d489", + "59875830da2778ee5bc701031a1b61c7ea9407cf", [ - null, + "websockets/constructor/006.html?default", {} ], [ @@ -721078,9 +724813,9 @@ ] ], "007.html": [ - "647f4202a1743b79fb8c17985d1c79d491076aeb", + "e126d1aa0f8d69a01a74ee7c0a858b5e1603f3bf", [ - null, + "websockets/constructor/007.html?default", {} ], [ @@ -721093,9 +724828,9 @@ ] ], "008.html": [ - "de7fb457bae97024bc3a331eeab23886e4d8c15b", + "e10c652134e246b98ce5170bfdb0dc0852b42950", [ - null, + "websockets/constructor/008.html?default", {} ], [ @@ -721104,9 +724839,9 @@ ] ], "009.html": [ - "4e69a839ebdeeaff58b361091563601722f5f4ae", + "f8123c2c86defa22e1f08b4569c21deeadfea291", [ - null, + "websockets/constructor/009.html?default", {} ], [ @@ -721119,9 +724854,9 @@ ] ], "010.html": [ - "0adf2b13f9bdaea74a8f150990242b47d8227630", + "e5bc6ecc36ed8137b7b315f8479db87972a62615", [ - null, + "websockets/constructor/010.html?default", {} ], [ @@ -721134,9 +724869,9 @@ ] ], "011.html": [ - "9b7f114dc034f92f76863b368a60132c6cd9006d", + "33b09dbaf8f4af424f27ede742c1db8267a2191e", [ - null, + "websockets/constructor/011.html?default", {} ], [ @@ -721149,9 +724884,9 @@ ] ], "012.html": [ - "34723616728e47abbe3513ca80928a9b38873ed1", + "ba2b6b2df06994192180455385f8944e89d30e55", [ - null, + "websockets/constructor/012.html?default", {} ], [ @@ -721164,9 +724899,9 @@ ] ], "013.html": [ - "53b0400a2d64627f51060b21e56eddfd62af2614", + "d599fde528a02155e1e92f31b3a3551c0a6e74aa", [ - null, + "websockets/constructor/013.html?default", { "timeout": "long" } @@ -721185,9 +724920,9 @@ ] ], "014.html": [ - "f3f38ad2788bf75a0cbb9da1e461c67315506f6f", + "afa0dac4c1d5436354e0082b7ec9b2445fe155d8", [ - null, + "websockets/constructor/014.html?default", { "timeout": "long" } @@ -721200,9 +724935,9 @@ ] ], "016.html": [ - "7a5c9a9e0721c68c6e3b3b5c16b5aac4386ad24a", + "18605056dd65cb73565313feaf4c0928fa8e5469", [ - null, + "websockets/constructor/016.html?default", {} ], [ @@ -721215,9 +724950,9 @@ ] ], "017.html": [ - "5087290f3ca0445620fe4d0430756b0fd9f729d8", + "e1795b175e39124bdb95868a152239159807da17", [ - null, + "websockets/constructor/017.html?default", {} ], [ @@ -721230,9 +724965,9 @@ ] ], "018.html": [ - "f4d6ab30d9532df78e81bbb31c2b1a5f1bb41cd2", + "71f7376496a8d6174de8cb05913da7c0a7049cc0", [ - null, + "websockets/constructor/018.html?default", {} ], [ @@ -721245,9 +724980,9 @@ ] ], "019.html": [ - "a0ec6c3ad78304ff0858c57fe0271b37fd2c4065", + "8fbb1cbfff66d37147711eed048574239e595567", [ - null, + "websockets/constructor/019.html?default", {} ], [ @@ -721260,9 +724995,9 @@ ] ], "020.html": [ - "f050a1b8fa97e24d06b26e505f77e6fa8744bc23", + "e4d61f366ea185c518c826d272fa570afa1790b5", [ - null, + "websockets/constructor/020.html?default", {} ], [ @@ -721275,9 +725010,9 @@ ] ], "021.html": [ - "039d74b0430fe2b653ef2dba15a71b49a1f289e9", + "d3854feeb474f764df8672db6400eee252934163", [ - null, + "websockets/constructor/021.html?default", {} ], [ @@ -721290,9 +725025,9 @@ ] ], "022.html": [ - "a55d8f349d7d71c9605da2e3e37bb6c66e9ea717", + "fd53c0f29ab53dbc4066e41c4740f038aed418e8", [ - null, + "websockets/constructor/022.html?default", {} ], [ @@ -721306,9 +725041,9 @@ ] }, "constructor.any.js": [ - "c92dda4567c5a0399cc0b6eb84d71c523b3c7ee8", + "0cef2065f6d8a052c4721faef03a5d169cb4ab01", [ - "websockets/constructor.any.html", + "websockets/constructor.any.html?default", { "script_metadata": [ [ @@ -721317,7 +725052,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721340,7 +725075,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721363,7 +725098,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721377,7 +725112,7 @@ } ], [ - "websockets/constructor.any.worker.html", + "websockets/constructor.any.worker.html?default", { "script_metadata": [ [ @@ -721386,7 +725121,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721409,7 +725144,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721432,7 +725167,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721448,9 +725183,9 @@ ], "cookies": { "001.html": [ - "c43947fa877c76e87f3a393dff363cf0d5fd2d57", + "abec94e4b10aa13089631b6d0faf96344a4da2b0", [ - null, + "websockets/cookies/001.html?default", {} ], [ @@ -721463,9 +725198,9 @@ ] ], "002.html": [ - "1a5e03e335146e2832f1e43450d8e15e5b495a54", + "758ce473a9127c52a8f675e155dcbd766dbb0ecc", [ - null, + "websockets/cookies/002.html?default", {} ], [ @@ -721478,9 +725213,9 @@ ] ], "003.html": [ - "2af47354028362cf05222702975b969a51ea2e44", + "9f770aef220c1425a4211c02319d10747a15a677", [ - null, + "websockets/cookies/003.html?default", {} ], [ @@ -721493,9 +725228,9 @@ ] ], "004.html": [ - "efc3a9f84d4937a9dffe131faa693c3943b4ac97", + "523dabaf6359bf16397fc1faada69c69c33f8f24", [ - null, + "websockets/cookies/004.html?default", {} ], [ @@ -721504,9 +725239,9 @@ ] ], "005.html": [ - "8940d95127ff0b504380e6c4c39109c13661b1d7", + "f3e334c1df760e68681bdaaa9542e9019e61bce1", [ - null, + "websockets/cookies/005.html?default", { "timeout": "long" } @@ -721519,9 +725254,9 @@ ] ], "006.html": [ - "3c74363a4324fc16353712e492ce2f4e9a80d1c7", + "6e12bfac6c0d3c92bf5793b62c6a3ed1ecae9641", [ - null, + "websockets/cookies/006.html?default", {} ], [ @@ -721534,9 +725269,9 @@ ] ], "007.html": [ - "2c214a1dbb0d19ea63b7f7af483eb7c686341513", + "3e69bfc09d57b03044a7dd4fa0e28220a7c5c590", [ - null, + "websockets/cookies/007.html?default", { "timeout": "long" } @@ -721563,9 +725298,9 @@ ] }, "eventhandlers.any.js": [ - "7bccd47139b1056a4e9cf3f6cf51e2fd26f072bc", + "f596328b923a9d9bf3259cef2257d63a851317b6", [ - "websockets/eventhandlers.any.html", + "websockets/eventhandlers.any.html?default", { "script_metadata": [ [ @@ -721574,7 +725309,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721597,7 +725332,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721620,7 +725355,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721634,7 +725369,7 @@ } ], [ - "websockets/eventhandlers.any.worker.html", + "websockets/eventhandlers.any.worker.html?default", { "script_metadata": [ [ @@ -721643,7 +725378,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721666,7 +725401,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721689,7 +725424,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -721704,9 +725439,9 @@ ] ], "extended-payload-length.html": [ - "23caedc461c475da25b5dea07aa6a8399c9183e1", + "92e3802c352176b7d0cd2bdaa3aec8f8e90277ea", [ - null, + "websockets/extended-payload-length.html?default", { "timeout": "long" } @@ -721760,9 +725495,9 @@ "interfaces": { "CloseEvent": { "clean-close.html": [ - "db253761f63700b7bf3012a4879edeaa76f62135", + "8614028fd0546663be851520a6ddf9581a808524", [ - null, + "websockets/interfaces/CloseEvent/clean-close.html?default", {} ], [ @@ -721792,9 +725527,9 @@ "WebSocket": { "bufferedAmount": { "bufferedAmount-arraybuffer.html": [ - "258eaa782797bf94a5a7ce4030a4d64f5eb60cc9", + "5d2bfd076cb22e43d22a87cb554cf538083beed2", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html?default", {} ], [ @@ -721807,9 +725542,9 @@ ] ], "bufferedAmount-blob.html": [ - "ac5140de6cc572f1a0b1f9fcf23a4e3722667440", + "d0028dae0f40d9d2aaf7b04c5db09a3952dc8367", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html?default", {} ], [ @@ -721822,9 +725557,9 @@ ] ], "bufferedAmount-defineProperty-getter.html": [ - "df1c3a5bb22bc9b77215792b0aefdd1dd60b18e8", + "ea6e70cfcf74b07b1f74fa5560334aaf3d325821", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html?default", {} ], [ @@ -721833,9 +725568,9 @@ ] ], "bufferedAmount-defineProperty-setter.html": [ - "b65ed9e9b72b894ca2122916d45b6c7db7da4a6b", + "8f0fa5c806483c6d0b2df0b4da58cae8e1c94b39", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-setter.html?default", {} ], [ @@ -721844,9 +725579,9 @@ ] ], "bufferedAmount-deleting.html": [ - "0d8c456e5ca4be48e64df59dfb4f473ebcbc37a0", + "1d99636bf01c7828404a5bbda9d00eb4d1cac412", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-deleting.html?default", {} ], [ @@ -721855,9 +725590,9 @@ ] ], "bufferedAmount-getting.html": [ - "307f595ec2dd7effcdf94bcd6a57918e2b830baa", + "92bcea60822624a02105d909fc452f855e2e87f3", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html?default", {} ], [ @@ -721870,9 +725605,9 @@ ] ], "bufferedAmount-initial.html": [ - "7c66d20282613c24464b17a42464be486762e99c", + "be37b6dea0ed08570053df4d0f77e61614e89df5", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html?default", {} ], [ @@ -721881,9 +725616,9 @@ ] ], "bufferedAmount-large.html": [ - "e599614103b4d3abafdda20db8176dee1578380e", + "18c5482535282de2e9c6a2724a28199b61934c75", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-large.html?default", { "timeout": "long" } @@ -721902,9 +725637,9 @@ ] ], "bufferedAmount-readonly.html": [ - "951aaea57b760bdcce0f14c143c4002d46f9bcd0", + "152da696e1af92e71f02ff9c2fde8ca590dec0a8", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html?default", {} ], [ @@ -721913,9 +725648,9 @@ ] ], "bufferedAmount-unicode.html": [ - "ba25caeb220e5d201d62616ea31a5b8e5f5007cc", + "ab01f3c790102f3a589db712324116269b157b82", [ - null, + "websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-unicode.html?default", {} ], [ @@ -721930,9 +725665,9 @@ }, "close": { "close-basic.html": [ - "b9059414954f0450d633cd47b17cc6165a43d16e", + "b646ca41679857484d73ae0306efa46e51c699d4", [ - null, + "websockets/interfaces/WebSocket/close/close-basic.html?default", {} ], [ @@ -721941,9 +725676,9 @@ ] ], "close-connecting.html": [ - "6151b7b1a765db538daa10072c5ea3eafa2eb913", + "de038ca09f0ea6b24419e9ae3da1c621b6302f3c", [ - null, + "websockets/interfaces/WebSocket/close/close-connecting.html?default", { "timeout": "long" } @@ -721956,9 +725691,9 @@ ] ], "close-multiple.html": [ - "7c6192555a939f7620b082ca224ec283eee93b26", + "e440d80179ec33abd235b7829feaf78816492204", [ - null, + "websockets/interfaces/WebSocket/close/close-multiple.html?default", {} ], [ @@ -721967,9 +725702,9 @@ ] ], "close-nested.html": [ - "0a1c86ccd0381dba9efdee5864158a2e94478651", + "74b8fa0c48c390f076f53db25735ab960a8c353e", [ - null, + "websockets/interfaces/WebSocket/close/close-nested.html?default", {} ], [ @@ -721978,9 +725713,9 @@ ] ], "close-replace.html": [ - "3607f8d8c313a0815dd191610cad1e2ca7c2a191", + "e9d2364794c19473681e8707843b6ee5b6c6fa1b", [ - null, + "websockets/interfaces/WebSocket/close/close-replace.html?default", {} ], [ @@ -721989,9 +725724,9 @@ ] ], "close-return.html": [ - "5988605cf6ce848b68bc7d2aa8a1344ae9515d1e", + "e74c9b076d40e40fc9826411708dfc1e6093ba72", [ - null, + "websockets/interfaces/WebSocket/close/close-return.html?default", {} ], [ @@ -722002,9 +725737,9 @@ }, "constants": { "001.html": [ - "9701047662f0a1ff75e76ea6fe23587e2b06d7c5", + "7d79bf5d7b4df89d36ac813097fd94e64b322c22", [ - null, + "websockets/interfaces/WebSocket/constants/001.html?default", {} ], [ @@ -722013,9 +725748,9 @@ ] ], "002.html": [ - "46ad3b1fb1aa343acb41a18e8bb5ecf65142fc86", + "6810bc6c292092c66375083bd1bb3443664911a3", [ - null, + "websockets/interfaces/WebSocket/constants/002.html?default", {} ], [ @@ -722024,9 +725759,9 @@ ] ], "003.html": [ - "01127e023553cf351639ab94c22ec9469dae7160", + "4a86af8b1c1b473cbd7eb452c1a2ea452d7ac1c2", [ - null, + "websockets/interfaces/WebSocket/constants/003.html?default", {} ], [ @@ -722035,9 +725770,9 @@ ] ], "004.html": [ - "035e099b65626fc7850fed2984f217465d8bde27", + "2ca3830b721e98ab34a1af838348e8ca6d4a1673", [ - null, + "websockets/interfaces/WebSocket/constants/004.html?default", {} ], [ @@ -722046,9 +725781,9 @@ ] ], "005.html": [ - "8e3de05a6097f7583a9b0e791255e546b6e4ae30", + "26d5b24d2cfc4abf22f69d3d719989ca7cd8954d", [ - null, + "websockets/interfaces/WebSocket/constants/005.html?default", {} ], [ @@ -722057,9 +725792,9 @@ ] ], "006.html": [ - "9dcd1941593f2d0123ed3ca977ba6f57be6262a0", + "78126c86f51a5bbac4534331babf6bd4746e5781", [ - null, + "websockets/interfaces/WebSocket/constants/006.html?default", {} ], [ @@ -722070,9 +725805,9 @@ }, "events": { "001.html": [ - "2043f0dd84715eff0bbd0ecc3c05bf17b2c78521", + "88dcf9e424143abf97a1947ecd1b8dafc8e1f28f", [ - null, + "websockets/interfaces/WebSocket/events/001.html?default", {} ], [ @@ -722085,9 +725820,9 @@ ] ], "002.html": [ - "df8e9f73d54508b72a0875fe9231fbdf4b8a785c", + "481730800c26d38b782f51bf64fb3d82514c7a69", [ - null, + "websockets/interfaces/WebSocket/events/002.html?default", {} ], [ @@ -722100,9 +725835,9 @@ ] ], "003.html": [ - "f03ab49be6702749b33d751f565fc91817f797ce", + "a5373ecded2c03368a79328c194d7d3b18569d88", [ - null, + "websockets/interfaces/WebSocket/events/003.html?default", {} ], [ @@ -722111,9 +725846,9 @@ ] ], "004.html": [ - "f3698263ed526252dab3a7fb7cdff4e45e615a0d", + "9c5144cefa8aae68a6bf7982304ace6954154c91", [ - null, + "websockets/interfaces/WebSocket/events/004.html?default", {} ], [ @@ -722122,9 +725857,9 @@ ] ], "006.html": [ - "76930516c85b8442f73ec3b588c23840489ee559", + "de2f55694d8315918eda49728e6aab75459c6fd1", [ - null, + "websockets/interfaces/WebSocket/events/006.html?default", {} ], [ @@ -722133,9 +725868,9 @@ ] ], "007.html": [ - "c009f48a97b852b2ea629eb2514c6e789e0b0ba1", + "0fe7241ecf52e3a2382af2acd5c870d3a7ebeb3d", [ - null, + "websockets/interfaces/WebSocket/events/007.html?default", {} ], [ @@ -722148,9 +725883,9 @@ ] ], "008.html": [ - "eb46efbb1a3e0abe217605449c82b275232cd4e6", + "066eb0922e3579c7101e07f0d32511945e6c06bf", [ - null, + "websockets/interfaces/WebSocket/events/008.html?default", {} ], [ @@ -722159,9 +725894,9 @@ ] ], "009.html": [ - "1194fb8b090a6b02d8c5e6ff61ba7cbe765e2b9e", + "b9e56e2fbd88164a6236bd6275396a77d9c78985", [ - null, + "websockets/interfaces/WebSocket/events/009.html?default", {} ], [ @@ -722170,9 +725905,9 @@ ] ], "010.html": [ - "ccdbc4dbf98bb98b69fa69b14eafb246c5fb9790", + "360e7d9bd243e19164ad907e80df59b57d594cd4", [ - null, + "websockets/interfaces/WebSocket/events/010.html?default", {} ], [ @@ -722181,9 +725916,9 @@ ] ], "011.html": [ - "4bb0ef391c2b8cc047bf4f65620d5fcedce550a5", + "f64857579e91304d89a6eefdf8a4e7283ce944c3", [ - null, + "websockets/interfaces/WebSocket/events/011.html?default", {} ], [ @@ -722192,9 +725927,9 @@ ] ], "012.html": [ - "d2f39194fd96b83f54ee06502614ae3f4b30ddc9", + "bdd63e3f693a595d7273fa6081dfd66bd947d417", [ - null, + "websockets/interfaces/WebSocket/events/012.html?default", {} ], [ @@ -722203,9 +725938,9 @@ ] ], "013.html": [ - "121f6e6c3048af9789a25d42548b427021361a6c", + "9e251c62171a4b392327d96de625b3de609126ae", [ - null, + "websockets/interfaces/WebSocket/events/013.html?default", {} ], [ @@ -722214,9 +725949,9 @@ ] ], "014.html": [ - "a427ce98c58e2d19439889dd69200103b7dd40fe", + "9fcd8b3f6a909fa378da24cdc737b6914d00fc6d", [ - null, + "websockets/interfaces/WebSocket/events/014.html?default", {} ], [ @@ -722225,9 +725960,9 @@ ] ], "015.html": [ - "663ccca80d0cec8949a1e9114bbfdb7b1cfe3e55", + "5089c0fb676cc493f0cf4b6e20b3c3d2c70fe465", [ - null, + "websockets/interfaces/WebSocket/events/015.html?default", {} ], [ @@ -722240,9 +725975,9 @@ ] ], "016.html": [ - "fcd14c854cefe400b12038078c7bfd788f6c0a0e", + "8b5aaf9f42c0414d869bb0e9b705ddb6d04cdb85", [ - null, + "websockets/interfaces/WebSocket/events/016.html?default", { "timeout": "long" } @@ -722261,9 +725996,9 @@ ] ], "017.html": [ - "9208261c1212478638676bc4886bbf84eb6876c6", + "a9f06eaf7df9d2018882287824e382d3622f6e8b", [ - null, + "websockets/interfaces/WebSocket/events/017.html?default", {} ], [ @@ -722276,9 +726011,9 @@ ] ], "018.html": [ - "3dc36d0c5f118bf9b8f0e0e0f593fbf14b82a0ff", + "a340c69f451663f6a2d0e8d7ca7a54457e432f09", [ - null, + "websockets/interfaces/WebSocket/events/018.html?default", {} ], [ @@ -722291,9 +726026,9 @@ ] ], "019.html": [ - "cbc271d9e63a95286b3536692820fd99675cb3ec", + "deb079f81aaf825beb6e1c2224e581bf6acfd01d", [ - null, + "websockets/interfaces/WebSocket/events/019.html?default", {} ], [ @@ -722302,9 +726037,9 @@ ] ], "020.html": [ - "34c1f35312bdc5b2701382e8b36fddeb71a6a054", + "f43b0af93f75494a15c5c24a28862b5ec04e0b3f", [ - null, + "websockets/interfaces/WebSocket/events/020.html?default", {} ], [ @@ -722315,9 +726050,9 @@ }, "extensions": { "001.html": [ - "4f86da57b8da9c839d642f27981cd26d737a6e1c", + "bd26483a7910161d53aae7c52c708f4a4858fc96", [ - null, + "websockets/interfaces/WebSocket/extensions/001.html?default", {} ], [ @@ -722328,9 +726063,9 @@ }, "protocol": { "protocol-initial.html": [ - "33c123abacbfa0f0e32fbbe9aec51c294bc274ad", + "2e7bf665576496d80303de6c27fc40fb590d014d", [ - null, + "websockets/interfaces/WebSocket/protocol/protocol-initial.html?default", {} ], [ @@ -722341,9 +726076,9 @@ }, "readyState": { "001.html": [ - "b8f96740cafbafb2931862ae25ceafc8a30878e8", + "15b73fdb7c62fa90cc2c22f50d36c40baf5e3b5c", [ - null, + "websockets/interfaces/WebSocket/readyState/001.html?default", {} ], [ @@ -722352,9 +726087,9 @@ ] ], "002.html": [ - "b86e128059c2f3047cfe4e40d8a78f79a635cfa1", + "239e5d7cf8de6a089acace2321650d5cb039f964", [ - null, + "websockets/interfaces/WebSocket/readyState/002.html?default", {} ], [ @@ -722363,9 +726098,9 @@ ] ], "003.html": [ - "0143480721717284a648fcb58a72d160cb449732", + "65d86c437f7ca0e8b74242593c4c010f6887ad10", [ - null, + "websockets/interfaces/WebSocket/readyState/003.html?default", {} ], [ @@ -722374,9 +726109,9 @@ ] ], "004.html": [ - "7864f0e853d80708b2148c330067fb142324dbd3", + "0645816a6c52ca3e18885a69d8da6cd617977c8b", [ - null, + "websockets/interfaces/WebSocket/readyState/004.html?default", {} ], [ @@ -722385,9 +726120,9 @@ ] ], "005.html": [ - "c42939316a576d027becb48a53e4595ddae11b9b", + "bee179ffcbb09b985a7676dff04a7ea1b66ced48", [ - null, + "websockets/interfaces/WebSocket/readyState/005.html?default", {} ], [ @@ -722396,9 +726131,9 @@ ] ], "006.html": [ - "993655abd93bc793094c65ca1bd752dd3ab1db58", + "4290c008363ad01b50dc7266f9c5def01c7a1e2b", [ - null, + "websockets/interfaces/WebSocket/readyState/006.html?default", {} ], [ @@ -722407,9 +726142,9 @@ ] ], "007.html": [ - "f9ab27a40536d0b0c69bd0b89e413e025f152129", + "69b5d9c9a9920fe8bf746cd7dec8b812dfe589fc", [ - null, + "websockets/interfaces/WebSocket/readyState/007.html?default", {} ], [ @@ -722418,9 +726153,9 @@ ] ], "008.html": [ - "5dcd362ce9a33393067d21b04c06e2927792a362", + "d085a7f4e30ad4a3626c2e4049678bfa83c4edf2", [ - null, + "websockets/interfaces/WebSocket/readyState/008.html?default", {} ], [ @@ -722431,9 +726166,9 @@ }, "send": { "001.html": [ - "e99ce7722f3859c1cacadeadd948591d6db10f5c", + "8abc655f5d8db0d0aa5cac091e40f3ae37e1a1fa", [ - null, + "websockets/interfaces/WebSocket/send/001.html?default", {} ], [ @@ -722442,9 +726177,9 @@ ] ], "002.html": [ - "8a384df32db1ec4a6cd278fff9726c700a7523f6", + "a51c67762ca2cca91ef1391c59ae6dfdcb69ea5f", [ - null, + "websockets/interfaces/WebSocket/send/002.html?default", {} ], [ @@ -722453,9 +726188,9 @@ ] ], "003.html": [ - "d5aa6c57667e8cea54d5704cfa9baf1958bd9081", + "069f24cde5a5d7172c5c5629aca2998266f36562", [ - null, + "websockets/interfaces/WebSocket/send/003.html?default", {} ], [ @@ -722464,9 +726199,9 @@ ] ], "004.html": [ - "63fd83a7e9fa3acc2506be006756d68dcfbd5030", + "7125d1922a3588b64e461a3cb235566f468fcbeb", [ - null, + "websockets/interfaces/WebSocket/send/004.html?default", {} ], [ @@ -722475,9 +726210,9 @@ ] ], "005.html": [ - "ddba5bf4a3eafad4648f628fc4d25c933c9045aa", + "5da4600771e60bdc511d9d414bb05ae12ad45d47", [ - null, + "websockets/interfaces/WebSocket/send/005.html?default", { "timeout": "long" } @@ -722490,9 +726225,9 @@ ] ], "006.html": [ - "a7c00b154f12898e2f2a022aa9c23434d8d595f1", + "4095c0ba6b9829085090e47d11d015fa247426f5", [ - null, + "websockets/interfaces/WebSocket/send/006.html?default", {} ], [ @@ -722505,9 +726240,9 @@ ] ], "007.html": [ - "e2a8999e2fa6e3d025f26b6e856c2a0275bf9d01", + "6a5614257a3556246175591f25c51f639cb145fa", [ - null, + "websockets/interfaces/WebSocket/send/007.html?default", {} ], [ @@ -722520,9 +726255,9 @@ ] ], "008.html": [ - "7b6125b8c8ef11e4bfbc3942d21a0133050f2b97", + "709c066aded5c2353cce8a6c39a8c09a9d3575c9", [ - null, + "websockets/interfaces/WebSocket/send/008.html?default", {} ], [ @@ -722531,9 +726266,9 @@ ] ], "009.html": [ - "65d9270ecb36c82f83b2162332104546e6d3f754", + "57da896ea653ed29284f46903c3059d63765e397", [ - null, + "websockets/interfaces/WebSocket/send/009.html?default", {} ], [ @@ -722546,9 +726281,9 @@ ] ], "010.html": [ - "4e4f5c57b825fe1d6d458a4222c57354b5c059da", + "4a008b610c56c4dfc8c4e60aa10a4e25c1221adf", [ - null, + "websockets/interfaces/WebSocket/send/010.html?default", { "timeout": "long" } @@ -722561,9 +726296,9 @@ ] ], "011.html": [ - "bcf0422a3180b2b82e4a9f7b237952719a28061b", + "5f63c4471caa63622f8fb567a122685b10bd8927", [ - null, + "websockets/interfaces/WebSocket/send/011.html?default", {} ], [ @@ -722576,9 +726311,9 @@ ] ], "012.html": [ - "058ab9f6214bfbae8c831c5016340f819704ddf0", + "9876c7bdd32963a4579dfe88a7baae8c4c0cde84", [ - null, + "websockets/interfaces/WebSocket/send/012.html?default", {} ], [ @@ -722593,9 +726328,9 @@ }, "url": { "001.html": [ - "76f68b9093348f7735b907ced7479caa1162acf9", + "6c7306d0388aea603c7178174857d79d0ca26de3", [ - null, + "websockets/interfaces/WebSocket/url/001.html?default", {} ], [ @@ -722604,9 +726339,9 @@ ] ], "002.html": [ - "b7e74eecea9a283207891b055554e81d34dc6413", + "e1cc6d0c01390a598e061f1c741b54200511edc5", [ - null, + "websockets/interfaces/WebSocket/url/002.html?default", {} ], [ @@ -722615,9 +726350,9 @@ ] ], "003.html": [ - "5a98b50f55b790e48e96bde9c097c7c7f31327fe", + "aaae33a4ccacd1529f8f28d122e2630bbf581e6a", [ - null, + "websockets/interfaces/WebSocket/url/003.html?default", {} ], [ @@ -722626,9 +726361,9 @@ ] ], "004.html": [ - "a3c90c73d9104311f7d3b8af96f8c44e7fb8e910", + "7db5e1e425436922c86543dc782f221342fdfc99", [ - null, + "websockets/interfaces/WebSocket/url/004.html?default", {} ], [ @@ -722637,9 +726372,9 @@ ] ], "005.html": [ - "f897b88de0d8ec99fc382b7fb68b1d0fbc0aba57", + "00a5d9002465451dc7e50f4b00033f6f89941ffb", [ - null, + "websockets/interfaces/WebSocket/url/005.html?default", {} ], [ @@ -722648,9 +726383,9 @@ ] ], "006.html": [ - "8c4e29aa83645b059451ebcf3d6c0841a400c8d4", + "6e837704051e42f27017cbaeeb65ba865da3559c", [ - null, + "websockets/interfaces/WebSocket/url/006.html?default", {} ], [ @@ -722659,9 +726394,9 @@ ] ], "resolve.html": [ - "0526872d56f836e62e4ab61cc5f1b2ef7343648e", + "24520738274fe945965d96b053720cfffd0a36a9", [ - null, + "websockets/interfaces/WebSocket/url/resolve.html?default", {} ], [ @@ -722674,9 +726409,9 @@ }, "keeping-connection-open": { "001.html": [ - "a5d7207dec4bf07aef054284a3453f97c3b4f756", + "ab5bd1a54014ae6fb2d196db5890b9d320f558d4", [ - null, + "websockets/keeping-connection-open/001.html?default", { "timeout": "long" } @@ -722778,9 +726513,9 @@ }, "opening-handshake": { "001.html": [ - "cbc0355e2bd6c1a42e1eb54b183f7d5edfaf672c", + "d8585d833ba40a8d7a7b7d75fa4dd0fbf215d32a", [ - null, + "websockets/opening-handshake/001.html?default", {} ], [ @@ -722793,9 +726528,9 @@ ] ], "002.html": [ - "27b85602d44da1d2e33b2b8a3f0e4df07280850c", + "00d8dccaeeeed332ca1d61da39483253df2ab047", [ - null, + "websockets/opening-handshake/002.html?default", { "timeout": "long" } @@ -722821,9 +726556,9 @@ ] ], "003.html": [ - "f21219f5b5abca260e12a96907ea9463b255c4fb", + "1fc7535d5035f59f4c1f9d7158bbde6c3f7ce93b", [ - null, + "websockets/opening-handshake/003.html?default", { "timeout": "long" } @@ -722836,9 +726571,9 @@ ] ], "005.html": [ - "219760c51898e0d0f56ca42b6cf8725c34db14c2", + "dcbd8dfebb5f10ff4d92d5d6ea891aec3f78c9dd", [ - null, + "websockets/opening-handshake/005.html?default", {} ], [ @@ -722873,9 +726608,9 @@ ] ], "remove-own-iframe-during-onerror.window.js": [ - "c3d5235e7c573706fbf2ae19083b1c7ae0b6da71", + "aa1cf6028f211bb631a55bd50927457915ea2f98", [ - "websockets/remove-own-iframe-during-onerror.window.html", + "websockets/remove-own-iframe-during-onerror.window.html?default", { "script_metadata": [ [ @@ -722888,7 +726623,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -722916,7 +726651,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -722944,7 +726679,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -722961,9 +726696,9 @@ ], "security": { "001.html": [ - "106c5dca6290e8fecdc258b17c39eb172f2e7153", + "a34ae3963933a3591f183195bebc9a24eb8f912e", [ - null, + "websockets/security/001.html?default", {} ], [ @@ -722972,9 +726707,9 @@ ] ], "002.html": [ - "402af947c50d80831487ecb0300f65f3fd5b94c5", + "3286cca980f5f00729f92cd505a9239ffe6c231a", [ - null, + "websockets/security/002.html?default", {} ], [ @@ -722984,9 +726719,9 @@ ] }, "send-many-64K-messages-with-backpressure.any.js": [ - "e93231f2df9e491f4a98d36cf21306f7bba12283", + "78c244b262c8871ff6d20c31eeb245adf40b4bce", [ - "websockets/send-many-64K-messages-with-backpressure.any.html", + "websockets/send-many-64K-messages-with-backpressure.any.html?default", { "script_metadata": [ [ @@ -723003,7 +726738,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723035,7 +726770,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723067,7 +726802,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723082,7 +726817,7 @@ } ], [ - "websockets/send-many-64K-messages-with-backpressure.any.serviceworker.html", + "websockets/send-many-64K-messages-with-backpressure.any.serviceworker.html?default", { "script_metadata": [ [ @@ -723099,7 +726834,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723131,7 +726866,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723163,7 +726898,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723178,7 +726913,7 @@ } ], [ - "websockets/send-many-64K-messages-with-backpressure.any.sharedworker.html", + "websockets/send-many-64K-messages-with-backpressure.any.sharedworker.html?default", { "script_metadata": [ [ @@ -723195,7 +726930,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723227,7 +726962,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723259,7 +726994,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723274,7 +727009,7 @@ } ], [ - "websockets/send-many-64K-messages-with-backpressure.any.worker.html", + "websockets/send-many-64K-messages-with-backpressure.any.worker.html?default", { "script_metadata": [ [ @@ -723291,7 +727026,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723323,7 +727058,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -723355,7 +727090,7 @@ ], [ "variant", - "" + "?default" ], [ "variant", @@ -724583,9 +728318,9 @@ }, "unload-a-document": { "001.html": [ - "e7cc60d593baa11155aa34dc4a162ad41d2e12cf", + "28ce9c4614b38a2aed227bdbcc40b84cedcb5cb9", [ - null, + "websockets/unload-a-document/001.html?default", {} ], [ @@ -724598,9 +728333,9 @@ ] ], "002.html": [ - "013f5266bf919a5a13a2be69cd06037e45cf4554", + "f79b3b7297668a16eb166b039cb0b7d20bba61e3", [ - null, + "websockets/unload-a-document/002.html?default", { "timeout": "long" } @@ -724635,9 +728370,9 @@ ] ], "005.html": [ - "fc4b02cbb298baf9242cace3b1ea27db10711466", + "1abb1b552f37a10615a4db552510b68038fa23c6", [ - null, + "websockets/unload-a-document/005.html?default", { "timeout": "long" } @@ -725187,7 +728922,7 @@ ] ], "close.https.any.js": [ - "de675036f3d7ea4a7e2aaf5bf88bdfb35a173f3a", + "77b3055c1de27fc5cd0268f3c434efa2b6a39958", [ "webtransport/close.https.any.html", { @@ -734014,6 +737749,13 @@ {} ] ], + "responsexml-invalid-type.html": [ + "57ba462551ffc27b9246c82e116dc871e35ad5da", + [ + null, + {} + ] + ], "responsexml-media-type.htm": [ "ece413d51b89e83681f50ced7a35f9d65899ddcf", [ @@ -755031,15 +758773,6 @@ ] ] }, - "css-values": { - "absolute_length_units.html": [ - "7528bbbbd4965507719093db7e18784bb20d6858", - [ - null, - {} - ] - ] - }, "css-view-transitions": { "shared-transition-author-style.manual.html": [ "d757c8cf0dc3972e360c9e91b2ea900b97a16b47", @@ -756774,6 +760507,22 @@ "tests": { "bidi": { "browsing_context": { + "activate": { + "activate.py": [ + "3d20a4f6464b9d9b4930b3bb2ef0578a2181ad74", + [ + null, + {} + ] + ], + "invalid.py": [ + "06a5dafa36cc04e21dfe12bb390dc936ad27d618", + [ + null, + {} + ] + ] + }, "capture_screenshot": { "capture_screenshot.py": [ "0ee4c8ed274ce31295d2cbf8f4229e7135ea2b28", @@ -756832,8 +760581,15 @@ ] }, "create": { + "background.py": [ + "cf9a167022c1419d6bf51758d0272c361e47eccc", + [ + null, + {} + ] + ], "invalid.py": [ - "2d60e08476e0f08ef1e6809574ab9f3db8422223", + "5de171b1b61dd73d3546acf8e68a9c327bd5bb87", [ null, {} @@ -756863,6 +760619,22 @@ ] ] }, + "fragment_navigated": { + "fragment_navigated.py": [ + "affedfdf5883768d076ab8076c2ec1e57b7630ac", + [ + null, + {} + ] + ], + "history_api.py": [ + "5343b432605debd49de780c1dcda8a2d8a8ce1ef", + [ + null, + {} + ] + ] + }, "get_tree": { "frames.py": [ "b1936d31d0b7a5e3c27ce1a4193f3f8e3a63811c", @@ -757070,7 +760842,7 @@ }, "set_viewport": { "invalid.py": [ - "a649972ae18352ad0cce493b68cddbd86fb8ddb7", + "87f98352c6eba91f4000d463eb7951a64b6fe5a9", [ null, {} @@ -757097,7 +760869,7 @@ "input": { "perform_actions": { "invalid.py": [ - "2fb45cd8321e93b8f08d894495dafcf84909a07c", + "19b7a57dd11b9294f339706fd2acf08acdb71b97", [ null, {} @@ -757111,7 +760883,7 @@ ] ], "key_events.py": [ - "79cecce5cedee5d7a63fdba458dfae590760ee26", + "f01f327b23441d9a6ed098abc8c013d1325d3b12", [ null, { @@ -757148,7 +760920,7 @@ ] ], "pointer_origin.py": [ - "1f67e6700ceee0972ecdd1d24e443edf9f939bde", + "8667574602d2363d7a16fb74ae346de20cd0f5ab", [ null, {} @@ -757345,21 +761117,35 @@ }, "call_function": { "arguments.py": [ - "0cb571038b76242f6b2e33b787217eba36dd78fe", + "32a4a6a2b8f22ab7d5b1bf1ec7485f0a2c379cfb", [ null, {} ] ], "await_promise.py": [ - "f31d35cd801055711467b38af8c5b6ad4ace8a01", + "1711b0be62d829e6d48ea5257aeaca9eb4a08927", + [ + null, + {} + ] + ], + "channel.py": [ + "730f16a13aab5b5100f3d34b00c69ba716a6044a", [ null, {} ] ], "exception_details.py": [ - "97f38d5aaae60a735fbfdc1c2d7f94b374e8aa91", + "25b27e407dbe6990ab765b6b39b63b735fc8283a", + [ + null, + {} + ] + ], + "exception_details_await_promise.py": [ + "6860158edce623479e1cf6513b159affd15aefde", [ null, {} @@ -757380,7 +761166,7 @@ ] ], "invalid.py": [ - "800c4e26a637231ef3610f00dc78817b8f1f3d8a", + "cfe5711e63bed061462fb1cd5da75e023883b5fb", [ null, {} @@ -757393,6 +761179,13 @@ {} ] ], + "primitive_values.py": [ + "d7cdd78b9c1062c714c1a8c87c707f56c2867466", + [ + null, + {} + ] + ], "realm.py": [ "a8830230ee31f2ebcd5184ed67a3564e345cc4f8", [ @@ -757400,8 +761193,15 @@ {} ] ], - "result.py": [ - "df989c407ee7dbf0a083e29697f9559fd733dbdd", + "remote_reference.py": [ + "8bf055e34d24d4f86a2d5a7b07ed3763e46d674e", + [ + null, + {} + ] + ], + "remote_values.py": [ + "88c8c793bec7bd77b7337ec16e5bb966453a5158", [ null, {} @@ -757436,14 +761236,14 @@ ] ], "strict_mode.py": [ - "1a9fd4f10823a526f27bc7aaeae32f1f263c9e13", + "92567132752ad4d3844043034c3fd964640a3e98", [ null, {} ] ], "this.py": [ - "baa4e65b28560f85d76aefded41d9365fad5a0fd", + "c4f7bf06223b50d93ce87444cc9ef0a527d3fb8d", [ null, {} @@ -757491,21 +761291,28 @@ }, "evaluate": { "await_promise.py": [ - "e99b65750657627974a3d6557abdcd59405359f4", + "fd330847e1527801f7ee6710519ec8e9a796c53c", [ null, {} ] ], "evaluate.py": [ - "5a8cf61a17068c643a505f547e138b2788a1a259", + "34889877c26dc558c741222b0586426718f0139b", [ null, {} ] ], "exception_details.py": [ - "fa5d5c4ae2ce34091786916557142ece7cda802f", + "f01d23e7bc946f18d77509230397a82892ce38c6", + [ + null, + {} + ] + ], + "exception_details_await_promise.py": [ + "2a88f83db2affe8d7c306518ae34a52d75f9092e", [ null, {} @@ -757532,8 +761339,15 @@ {} ] ], - "result.py": [ - "faea80a86b60fa5939899640f5dfeaf69628fb67", + "primitive_values.py": [ + "6ca053c0365030f37c0b4c576793b463415dadec", + [ + null, + {} + ] + ], + "remote_values.py": [ + "9e6a16a59c2455d9d7005fea084cf8c5b3daafd1", [ null, {} @@ -757561,7 +761375,7 @@ ] ], "strict_mode.py": [ - "bcaebb51f4e1cfebfc124fdaf4b8d11a7e499937", + "386d03b08d82b6a32c8458ec49db95595a32b75d", [ null, {} @@ -758846,8 +762660,17 @@ ] }, "perform_actions": { + "invalid.py": [ + "6c3f134140565dd4319bde7c092703227f2ff888", + [ + null, + { + "timeout": "long" + } + ] + ], "key.py": [ - "6c34452082aebbfe2f83a879bea44a75ed2bea1f", + "7809fcd01a9a07d8842bf4c8d8a2e38fd0e59d0f", [ null, {} @@ -758884,7 +762707,14 @@ ] ], "none.py": [ - "4fadec40a45cd685ac856551f557b9178abb6040", + "b94a8f162d736b858e4564dde3b13a40ef7595c2", + [ + null, + {} + ] + ], + "perform.py": [ + "30333942189c6f01ece57e49e45be9c5a5412e70", [ null, {} @@ -758912,7 +762742,7 @@ ] ], "pointer_mouse.py": [ - "31d08491ccb832e951bcc7598f3795ec4a38a796", + "152447aeefdf143bf5643d836ca35b47f383b9da", [ null, { @@ -758935,7 +762765,7 @@ ] ], "pointer_pen.py": [ - "e9cd103301ee7ab965098e7ba048917014b057d7", + "fcd1aba9474eb44e066dde3e755058a939d1d87f", [ null, { @@ -758944,7 +762774,7 @@ ] ], "pointer_touch.py": [ - "7f940f6203c16a7f7bc019f3fe06af3da8330f59", + "6c8e2f3fa6e2a9cb909ba8a0865d9f3d720003d4", [ null, { @@ -758969,7 +762799,7 @@ ] ], "user_prompts.py": [ - "820edbe32cbe0ade5fd63966002003e841f67dd4", + "872325bb313dc92359bfaf813f84ac14cfd3a943", [ null, { @@ -758977,15 +762807,8 @@ } ] ], - "validity.py": [ - "9c056b197d25808864e36dd7a58040a0dbff4abc", - [ - null, - {} - ] - ], "wheel.py": [ - "7ee0ae79f773ecf3b5fd0ef1a23ebea51ea0900e", + "c83c90df3dea93f150666b7d6ac7bd774c541cc5", [ null, {} diff --git a/tests/wpt/meta-legacy-layout/css/CSS2/linebox/inline-negative-margin-001.html.ini b/tests/wpt/meta-legacy-layout/css/CSS2/linebox/inline-negative-margin-001.html.ini index 5e3a96e5999..a057f038339 100644 --- a/tests/wpt/meta-legacy-layout/css/CSS2/linebox/inline-negative-margin-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/CSS2/linebox/inline-negative-margin-001.html.ini @@ -8,5 +8,8 @@ [[data-expected-height\] 3] expected: FAIL - [[data-expected-height\] 4] + [[data-expected-height\] 1] + expected: FAIL + + [[data-expected-height\] 2] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-animations/display-interpolation.html.ini b/tests/wpt/meta-legacy-layout/css/css-animations/display-interpolation.html.ini index 71ded03effe..cc21c992bb3 100644 --- a/tests/wpt/meta-legacy-layout/css/css-animations/display-interpolation.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-animations/display-interpolation.html.ini @@ -160,3 +160,15 @@ [CSS Transitions: property from [inline\] to [block\] at (0.3) should be [block\]] expected: FAIL + + [CSS Transitions with transition: all: property from [block\] to [none\] at (-1) should be [block\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [block\] to [none\] at (0) should be [block\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [block\] to [none\] at (0.1) should be [block\]] + expected: FAIL + + [CSS Transitions with transition: all: property from [block\] to [none\] at (0.9) should be [block\]] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-color/animation/opacity-animation-ending-correctly-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-color/animation/opacity-animation-ending-correctly-001.html.ini deleted file mode 100644 index 304b1579ca4..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-color/animation/opacity-animation-ending-correctly-001.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[opacity-animation-ending-correctly-001.html] - expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-computed-rgb.html.ini b/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-computed-rgb.html.ini index 9626e373b42..b75acf833be 100644 --- a/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-computed-rgb.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-computed-rgb.html.ini @@ -46,3 +46,51 @@ [Property color value 'rgba(none none none / 50%)'] expected: FAIL + + [Property color value 'rgb(calc(infinity), 0, 0)' [Red channel resolves positive infinity to 255\]] + expected: FAIL + + [Property color value 'rgb(0, calc(infinity), 0)' [Green channel resolves positive infinity to 255\]] + expected: FAIL + + [Property color value 'rgb(0, 0, calc(infinity))' [Blue channel resolves positive infinity to 255\]] + expected: FAIL + + [Property color value 'rgba(0, 0, 0, calc(infinity))' [Alpha channel resolves positive infinity to fully opaque\]] + expected: FAIL + + [Property color value 'rgb(calc(-infinity), 0, 0)' [Red channel resolves negative infinity to zero\]] + expected: FAIL + + [Property color value 'rgb(0, calc(-infinity), 0)' [Green channel resolves negative infinity to zero\]] + expected: FAIL + + [Property color value 'rgb(0, 0, calc(-infinity))' [Blue channel resolves negative infinity to zero\]] + expected: FAIL + + [Property color value 'rgba(0, 0, 0, calc(-infinity))' [Alpha channel resolves negative infinity to fully transparent\]] + expected: FAIL + + [Property color value 'rgb(calc(NaN), 0, 0)' [Red channel resolves NaN to zero\]] + expected: FAIL + + [Property color value 'rgb(0, calc(NaN), 0)' [Green channel resolves NaN to zero\]] + expected: FAIL + + [Property color value 'rgb(0, 0, calc(NaN))' [Blue channel resolves NaN to zero\]] + expected: FAIL + + [Property color value 'rgba(0, 0, 0, calc(NaN))' [Alpha channel resolves NaN to zero\]] + expected: FAIL + + [Property color value 'rgb(calc(0 / 0), 0, 0)' [Red channel resolves NaN equivalent calc statements to zero\]] + expected: FAIL + + [Property color value 'rgb(0, calc(0 / 0), 0)' [Green channel resolves NaN equivalent calc statements to zero\]] + expected: FAIL + + [Property color value 'rgb(0, 0, calc(0 / 0))' [Blue channel resolves NaN equivalent calc statements to zero\]] + expected: FAIL + + [Property color value 'rgba(0, 0, 0, calc(0 / 0))' [Alpha channel resolves NaN equivalent calc statements to zero\]] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-valid-rgb.html.ini b/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-valid-rgb.html.ini index d80e615f3f7..bfebcf5899f 100644 --- a/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-valid-rgb.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-color/parsing/color-valid-rgb.html.ini @@ -46,3 +46,51 @@ [e.style['color'\] = "rgba(none none none / 50%)" should set the property value] expected: FAIL + + [e.style['color'\] = "rgb(calc(infinity), 0, 0)" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(0, calc(infinity), 0)" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(0, 0, calc(infinity))" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgba(0, 0, 0, calc(infinity))" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(calc(-infinity), 0, 0)" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(0, calc(-infinity), 0)" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(0, 0, calc(-infinity))" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgba(0, 0, 0, calc(-infinity))" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(calc(NaN), 0, 0)" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(0, calc(NaN), 0)" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(0, 0, calc(NaN))" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgba(0, 0, 0, calc(NaN))" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(calc(0 / 0), 0, 0)" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(0, calc(0 / 0), 0)" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgb(0, 0, calc(0 / 0))" should set the property value] + expected: FAIL + + [e.style['color'\] = "rgba(0, 0, 0, calc(0 / 0))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-flexbox/gap-020.html.ini b/tests/wpt/meta-legacy-layout/css/css-flexbox/gap-020.html.ini new file mode 100644 index 00000000000..6467c8613ed --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-flexbox/gap-020.html.ini @@ -0,0 +1,2 @@ +[gap-020.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-flexbox/gap-021.html.ini b/tests/wpt/meta-legacy-layout/css/css-flexbox/gap-021.html.ini new file mode 100644 index 00000000000..f5cd3e963da --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-flexbox/gap-021.html.ini @@ -0,0 +1,2 @@ +[gap-021.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-flexbox/intrinsic-size/auto-min-size-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-flexbox/intrinsic-size/auto-min-size-001.html.ini new file mode 100644 index 00000000000..327238a6199 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-flexbox/intrinsic-size/auto-min-size-001.html.ini @@ -0,0 +1,2 @@ +[auto-min-size-001.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-flexbox/intrinsic-size/row-compat-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-flexbox/intrinsic-size/row-compat-001.html.ini index 190812d66dd..f149d6c50f6 100644 --- a/tests/wpt/meta-legacy-layout/css/css-flexbox/intrinsic-size/row-compat-001.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-flexbox/intrinsic-size/row-compat-001.html.ini @@ -4,3 +4,9 @@ [#bug1454306 2] expected: FAIL + + [#wrapping-broke .flex 1] + expected: FAIL + + [#gmail-tables .flex 3] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-face-src-tech.html.ini b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-face-src-tech.html.ini index 8f0bb9f3aab..a94d19411ac 100644 --- a/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-face-src-tech.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-fonts/parsing/font-face-src-tech.html.ini @@ -109,3 +109,9 @@ [Check that src: url("foo.ttf") tech(color), url("bar.html") is valid] expected: FAIL + + [Check that src: url("foo.ttf") tech(xyzzy, features-opentype) is invalid] + expected: FAIL + + [Check that src: url("foo.ttf") tech(features-opentype, xyzzy) is invalid] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-text/line-breaking/segment-break-transformation-unremovable-4.html.ini b/tests/wpt/meta-legacy-layout/css/css-text/line-breaking/segment-break-transformation-unremovable-4.html.ini new file mode 100644 index 00000000000..f0661e4609d --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-text/line-breaking/segment-break-transformation-unremovable-4.html.ini @@ -0,0 +1,2 @@ +[segment-break-transformation-unremovable-4.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-text/text-transform/text-transform-capitalize-034.html.ini b/tests/wpt/meta-legacy-layout/css/css-text/text-transform/text-transform-capitalize-034.html.ini new file mode 100644 index 00000000000..06ea12663c6 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-text/text-transform/text-transform-capitalize-034.html.ini @@ -0,0 +1,2 @@ +[text-transform-capitalize-034.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/content-box-mutation-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/content-box-mutation-001.html.ini new file mode 100644 index 00000000000..ed69147c0b9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/content-box-mutation-001.html.ini @@ -0,0 +1,2 @@ +[content-box-mutation-001.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/stroke-box-mutation-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/stroke-box-mutation-001.html.ini new file mode 100644 index 00000000000..ba18b73f813 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/stroke-box-mutation-001.html.ini @@ -0,0 +1,2 @@ +[stroke-box-mutation-001.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/stroke-box-mutation-003.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/stroke-box-mutation-003.html.ini new file mode 100644 index 00000000000..5cf203d0133 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/stroke-box-mutation-003.html.ini @@ -0,0 +1,2 @@ +[stroke-box-mutation-003.html] + expected: TIMEOUT diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/svgbox-stroke-box-001.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/svgbox-stroke-box-001.html.ini new file mode 100644 index 00000000000..3e9458c4ce2 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/svgbox-stroke-box-001.html.ini @@ -0,0 +1,2 @@ +[svgbox-stroke-box-001.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/svgbox-stroke-box.html.ini b/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/svgbox-stroke-box.html.ini deleted file mode 100644 index dc663e13f6c..00000000000 --- a/tests/wpt/meta-legacy-layout/css/css-transforms/transform-box/svgbox-stroke-box.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[svgbox-stroke-box.html] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-transitions/all-with-discrete.tentative.html.ini b/tests/wpt/meta-legacy-layout/css/css-transitions/all-with-discrete.tentative.html.ini index 681921b3a6d..ff695ed450d 100644 --- a/tests/wpt/meta-legacy-layout/css/css-transitions/all-with-discrete.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-transitions/all-with-discrete.tentative.html.ini @@ -4,3 +4,6 @@ [all without an explicit discrete property should not animate.] expected: FAIL + + [transition:all with transition-animation-type:discrete should animate discrete properties.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/css-values/sin-cos-tan-serialize.html.ini b/tests/wpt/meta-legacy-layout/css/css-values/sin-cos-tan-serialize.html.ini index 552f6ffd0cc..102a346eec9 100644 --- a/tests/wpt/meta-legacy-layout/css/css-values/sin-cos-tan-serialize.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-values/sin-cos-tan-serialize.html.ini @@ -286,3 +286,93 @@ ['scale(calc(calc(tan(-infinity))))' as a specified value should serialize as 'scale(calc(NaN))'.] expected: FAIL + + ['scale(sin(180deg))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(calc(sin(180deg)))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(cos(180deg))' as a specified value should serialize as 'scale(calc(-1))'.] + expected: FAIL + + ['scale(calc(cos(180deg)))' as a specified value should serialize as 'scale(calc(-1))'.] + expected: FAIL + + ['scale(tan(180deg))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(calc(tan(180deg)))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(sin(270deg))' as a specified value should serialize as 'scale(calc(-1))'.] + expected: FAIL + + ['scale(calc(sin(270deg)))' as a specified value should serialize as 'scale(calc(-1))'.] + expected: FAIL + + ['scale(cos(270deg))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(calc(cos(270deg)))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(tan(270deg))' as a specified value should serialize as 'scale(calc(-infinity))'.] + expected: FAIL + + ['scale(calc(tan(270deg)))' as a specified value should serialize as 'scale(calc(-infinity))'.] + expected: FAIL + + ['scale(sin(-180deg))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(calc(sin(-180deg)))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(cos(-180deg))' as a specified value should serialize as 'scale(calc(-1))'.] + expected: FAIL + + ['scale(calc(cos(-180deg)))' as a specified value should serialize as 'scale(calc(-1))'.] + expected: FAIL + + ['scale(tan(-180deg))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(calc(tan(-180deg)))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(sin(-270deg))' as a specified value should serialize as 'scale(calc(1))'.] + expected: FAIL + + ['scale(calc(sin(-270deg)))' as a specified value should serialize as 'scale(calc(1))'.] + expected: FAIL + + ['scale(cos(-270deg))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(calc(cos(-270deg)))' as a specified value should serialize as 'scale(calc(0))'.] + expected: FAIL + + ['scale(tan(-270deg))' as a specified value should serialize as 'scale(calc(infinity))'.] + expected: FAIL + + ['scale(calc(tan(-270deg)))' as a specified value should serialize as 'scale(calc(infinity))'.] + expected: FAIL + + ['scale(calc(sin(NaN)))' as a specified value should serialize as 'scale(calc(NaN))'.] + expected: FAIL + + ['scale(calc(calc(sin(NaN))))' as a specified value should serialize as 'scale(calc(NaN))'.] + expected: FAIL + + ['scale(calc(cos(NaN)))' as a specified value should serialize as 'scale(calc(NaN))'.] + expected: FAIL + + ['scale(calc(calc(cos(NaN))))' as a specified value should serialize as 'scale(calc(NaN))'.] + expected: FAIL + + ['scale(calc(tan(NaN)))' as a specified value should serialize as 'scale(calc(NaN))'.] + expected: FAIL + + ['scale(calc(calc(tan(NaN))))' as a specified value should serialize as 'scale(calc(NaN))'.] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/meta-legacy-layout/css/cssom-view/elementsFromPoint-iframes.html.ini new file mode 100644 index 00000000000..314c2710dc9 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/cssom-view/elementsFromPoint-iframes.html.ini @@ -0,0 +1,3 @@ +[elementsFromPoint-iframes.html] + [elementsFromPoint on the root document for points in iframe elements] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-linear-gradient.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-linear-gradient.html.ini new file mode 100644 index 00000000000..cf993624965 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-linear-gradient.html.ini @@ -0,0 +1,2 @@ +[filter-function-linear-gradient.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-radial-gradient.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-radial-gradient.html.ini new file mode 100644 index 00000000000..1a857a7ced3 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-radial-gradient.html.ini @@ -0,0 +1,2 @@ +[filter-function-radial-gradient.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-repeating-linear-gradient.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-repeating-linear-gradient.html.ini new file mode 100644 index 00000000000..899d8b1e0be --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-repeating-linear-gradient.html.ini @@ -0,0 +1,2 @@ +[filter-function-repeating-linear-gradient.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-repeating-radial-gradient.html.ini b/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-repeating-radial-gradient.html.ini new file mode 100644 index 00000000000..e1f259e2536 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/css/filter-effects/filter-function/filter-function-repeating-radial-gradient.html.ini @@ -0,0 +1,2 @@ +[filter-function-repeating-radial-gradient.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/custom-elements/form-associated/ElementInternals-reportValidity-bubble.html.ini b/tests/wpt/meta-legacy-layout/custom-elements/form-associated/ElementInternals-reportValidity-bubble.html.ini new file mode 100644 index 00000000000..a5c8e0c2919 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/custom-elements/form-associated/ElementInternals-reportValidity-bubble.html.ini @@ -0,0 +1,2 @@ +[ElementInternals-reportValidity-bubble.html] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/dom/parts/basic-dom-part-objects.tentative.html.ini b/tests/wpt/meta-legacy-layout/dom/parts/basic-dom-part-objects.tentative.html.ini index cf3cf7f5f97..f58726dcbd8 100644 --- a/tests/wpt/meta-legacy-layout/dom/parts/basic-dom-part-objects.tentative.html.ini +++ b/tests/wpt/meta-legacy-layout/dom/parts/basic-dom-part-objects.tentative.html.ini @@ -4,3 +4,66 @@ [DOM mutation support] expected: FAIL + + [Basic imperative DOM Parts object construction (Document)] + expected: FAIL + + [Cloning (Document)] + expected: FAIL + + [Cloning Element (Document)] + expected: FAIL + + [Cloning Text (Document)] + expected: FAIL + + [Cloning Comment (Document)] + expected: FAIL + + [Cloning CDATASection (Document)] + expected: FAIL + + [Cloning ProcessingInstruction (Document)] + expected: FAIL + + [DOM mutation support (Document)] + expected: FAIL + + [ChildNodePart children manipulation (Document)] + expected: FAIL + + [Basic imperative DOM Parts object construction (DocumentFragment)] + expected: FAIL + + [Cloning (DocumentFragment)] + expected: FAIL + + [Cloning Element (DocumentFragment)] + expected: FAIL + + [Cloning Text (DocumentFragment)] + expected: FAIL + + [Cloning Comment (DocumentFragment)] + expected: FAIL + + [Cloning CDATASection (DocumentFragment)] + expected: FAIL + + [Cloning ProcessingInstruction (DocumentFragment)] + expected: FAIL + + [DOM mutation support (DocumentFragment)] + expected: FAIL + + [ChildNodePart children manipulation (DocumentFragment)] + expected: FAIL + + [Basic declarative DOM Parts (Main Document)] + expected: FAIL + + [Basic declarative DOM Parts (Template)] + expected: FAIL + + [Basic declarative DOM Parts (Clone)] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/api/redirect/redirect-keepalive.any.js.ini b/tests/wpt/meta-legacy-layout/fetch/api/redirect/redirect-keepalive.any.js.ini index f61eb5b8e17..73c79c76452 100644 --- a/tests/wpt/meta-legacy-layout/fetch/api/redirect/redirect-keepalive.any.js.ini +++ b/tests/wpt/meta-legacy-layout/fetch/api/redirect/redirect-keepalive.any.js.ini @@ -1,5 +1,4 @@ [redirect-keepalive.any.html] - expected: TIMEOUT [[keepalive\][new window\][unload\] same-origin redirect] expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/fetch/corb/response_block.tentative.https.html.ini b/tests/wpt/meta-legacy-layout/fetch/corb/response_block.tentative.https.html.ini new file mode 100644 index 00000000000..88568d4df07 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/fetch/corb/response_block.tentative.https.html.ini @@ -0,0 +1,6 @@ +[response_block.tentative.https.html] + [ORB: Expect error response from + +
    + + + + + + +
+ + diff --git a/tests/wpt/tests/accessibility/crashtests/br-in-changed-subtree.html b/tests/wpt/tests/accessibility/crashtests/br-in-changed-subtree.html new file mode 100644 index 00000000000..77c9531650d --- /dev/null +++ b/tests/wpt/tests/accessibility/crashtests/br-in-changed-subtree.html @@ -0,0 +1,5 @@ + +
    + +

    +
\ No newline at end of file diff --git a/tests/wpt/tests/accname/name/comp_host_language_label.html b/tests/wpt/tests/accname/name/comp_host_language_label.html index 221ff0e9fb1..aea9e011c44 100644 --- a/tests/wpt/tests/accname/name/comp_host_language_label.html +++ b/tests/wpt/tests/accname/name/comp_host_language_label.html @@ -11,19 +11,160 @@ +

AccName: Host Language Label Tests

Tests the #comp_host_language_label portions of the AccName Name Computation algorithm.

- - - +

HTML input with value, alt, etc.

+ + + + + +

HTML input label/for

+ +
+
+
+
+
+ + + + + + +
+
+
+
+
+ +
+ +
+
+
+
+
+ + +

HTML input label encapsulation

+ +
+
+
+
+
+ + + + + + +
+
+
+
+
+ +
+ +
+
+
+
+
+ + + + + + +

HTML select

+ + + +
+ - + select label + +
+ + - + +

HTML img/picture

+ + +image label + + + picture label + + + + +

HTML fieldset/legend

+
+ fieldset legend label +
+
+ + +

HTML table/caption

+ + + + +
table caption label
abc
123
+ + +

SVG title

+ + + circle label + + + + rect label + + + polygon label + +
+ + + group label + + + +
+ + + + + + + diff --git a/tests/wpt/tests/captured-mouse-events/captured-mouse-event-constructor-inherited.html b/tests/wpt/tests/captured-mouse-events/captured-mouse-event-constructor-inherited.html new file mode 100644 index 00000000000..2e25091eb5c --- /dev/null +++ b/tests/wpt/tests/captured-mouse-events/captured-mouse-event-constructor-inherited.html @@ -0,0 +1,29 @@ + + + + + + + diff --git a/tests/wpt/tests/captured-mouse-events/captured-mouse-event-constructor.html b/tests/wpt/tests/captured-mouse-events/captured-mouse-event-constructor.html new file mode 100644 index 00000000000..e9cfe971c00 --- /dev/null +++ b/tests/wpt/tests/captured-mouse-events/captured-mouse-event-constructor.html @@ -0,0 +1,68 @@ + + + + + + + diff --git a/tests/wpt/tests/captured-mouse-events/capturing-mouse-coordinates-manual.tentative.https.html b/tests/wpt/tests/captured-mouse-events/capturing-mouse-coordinates-manual.tentative.https.html new file mode 100644 index 00000000000..19b2d696418 --- /dev/null +++ b/tests/wpt/tests/captured-mouse-events/capturing-mouse-coordinates-manual.tentative.https.html @@ -0,0 +1,119 @@ + + +

Capturing mouse coordinates

+ + + + +
    +
  1. + and share this window as a + captured surface. +
  2. +
  3. Move the mouse near the top left corner of the window.
  4. +
  5. Move the mouse near the top right corner of the window.
  6. +
  7. Move the mouse near the bottom right corner of the window.
  8. +
  9. Move the mouse near the bottom left corner of the window.
  10. +
  11. Move the mouse near the center of the window.
  12. +
  13. Move the mouse outside the window.
  14. +
  15. Move the mouse inside the window.
  16. +
+

+
+
+ diff --git a/tests/wpt/tests/captured-mouse-events/idlharness.https.window.js b/tests/wpt/tests/captured-mouse-events/idlharness.https.window.js new file mode 100644 index 00000000000..1dda955b10b --- /dev/null +++ b/tests/wpt/tests/captured-mouse-events/idlharness.https.window.js @@ -0,0 +1,11 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +'use strict'; + +// https://screen-share.github.io/captured-mouse-events/ + +idl_test( + ['captured-mouse-events.tentative'], + ['html', 'dom'] +); diff --git a/tests/wpt/tests/clear-site-data/set-cookie-after-clear-all.https.html b/tests/wpt/tests/clear-site-data/set-cookie-after-clear-all.https.html new file mode 100644 index 00000000000..73f6bafc252 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/set-cookie-after-clear-all.https.html @@ -0,0 +1,23 @@ + + + + + + + diff --git a/tests/wpt/tests/clear-site-data/set-cookie-after-clear-cookies.https.html b/tests/wpt/tests/clear-site-data/set-cookie-after-clear-cookies.https.html new file mode 100644 index 00000000000..69a99e7f581 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/set-cookie-after-clear-cookies.https.html @@ -0,0 +1,23 @@ + + + + + + + diff --git a/tests/wpt/tests/clear-site-data/set-cookie-before-clear-all.https.html b/tests/wpt/tests/clear-site-data/set-cookie-before-clear-all.https.html new file mode 100644 index 00000000000..73bd3476fb7 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/set-cookie-before-clear-all.https.html @@ -0,0 +1,23 @@ + + + + + + + diff --git a/tests/wpt/tests/clear-site-data/set-cookie-before-clear-cookies.https.html b/tests/wpt/tests/clear-site-data/set-cookie-before-clear-cookies.https.html new file mode 100644 index 00000000000..28ba79e9f85 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/set-cookie-before-clear-cookies.https.html @@ -0,0 +1,23 @@ + + + + + + + diff --git a/tests/wpt/tests/clear-site-data/support/clear-site-data-cookie.py b/tests/wpt/tests/clear-site-data/support/clear-site-data-cookie.py new file mode 100644 index 00000000000..eb50cb54ef8 --- /dev/null +++ b/tests/wpt/tests/clear-site-data/support/clear-site-data-cookie.py @@ -0,0 +1,16 @@ +""" +Step 2/3 (/clear-site-data/set-cookie-{}-clear-{}.https.html) +""" +def main(request, response): + headers = [(b"Content-Type", b"text/html")] + clear_site_data_header = (b"Clear-Site-Data", b"\"" + request.GET.first(b"target", b"*") + b"\"") + set_cookie_header = (b"Set-Cookie", b"testSetWithClear=true") + if request.GET.first(b"location") == b"after": + headers = headers + [clear_site_data_header, set_cookie_header] + else: + headers = headers + [set_cookie_header, clear_site_data_header] + content = u''' + ''' + return 200, headers, content diff --git a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-all.https.html b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-all.https.html index 4abc620c9dc..a371f07fedf 100644 --- a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-all.https.html +++ b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-all.https.html @@ -21,7 +21,6 @@ async_test(t => { // Step 7 window.addEventListener("message", t.step_func(e => { assert_equals(e.data, "MissingDeviceMemory"); - new_window.close(); t.done(); }), {once: true}); @@ -31,6 +30,7 @@ async_test(t => { // Step 1 new_window = window.open("/client-hints/clear-site-data/resources/check-client-hints.py"); + t.add_cleanup(() => new_window.close()); }, "Clear-Site-Data for * should remove all client hints."); diff --git a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-cache.https.html b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-cache.https.html index bb1f8aa43e7..1be71bf8b03 100644 --- a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-cache.https.html +++ b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-cache.https.html @@ -21,7 +21,6 @@ async_test(t => { // Step 7 window.addEventListener("message", t.step_func(e => { assert_equals(e.data, "MissingDeviceMemory"); - new_window.close(); t.done(); }), {once: true}); @@ -31,6 +30,7 @@ async_test(t => { // Step 1 new_window = window.open("/client-hints/clear-site-data/resources/check-client-hints.py"); + t.add_cleanup(() => new_window.close()); }, "Clear-Site-Data for cache should remove all client hints."); diff --git a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-client-hints.https.html b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-client-hints.https.html new file mode 100644 index 00000000000..d37f62af8f8 --- /dev/null +++ b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-client-hints.https.html @@ -0,0 +1,37 @@ + + + + + + + diff --git a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-client-hints.https.html.headers b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-client-hints.https.html.headers new file mode 100644 index 00000000000..226bb1c3b10 --- /dev/null +++ b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-client-hints.https.html.headers @@ -0,0 +1 @@ +Accept-CH: Sec-CH-Device-Memory diff --git a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-cookies.https.html b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-cookies.https.html index 72b7f6794e9..e506b717e1b 100644 --- a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-cookies.https.html +++ b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-cookies.https.html @@ -21,7 +21,6 @@ async_test(t => { // Step 7 window.addEventListener("message", t.step_func(e => { assert_equals(e.data, "MissingDeviceMemory"); - new_window.close(); t.done(); }), {once: true}); @@ -31,6 +30,7 @@ async_test(t => { // Step 1 new_window = window.open("/client-hints/clear-site-data/resources/check-client-hints.py"); + t.add_cleanup(() => new_window.close()); }, "Clear-Site-Data for cookies should remove all client hints."); diff --git a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-storage.https.html b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-storage.https.html index 49578134f56..19bce9e91ee 100644 --- a/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-storage.https.html +++ b/tests/wpt/tests/client-hints/clear-site-data/clear-site-data-storage.https.html @@ -21,7 +21,6 @@ async_test(t => { // Step 7 window.addEventListener("message", t.step_func(e => { assert_equals(e.data, "HadDeviceMemory"); - new_window.close(); t.done(); }), {once: true}); @@ -31,6 +30,7 @@ async_test(t => { // Step 1 new_window = window.open("/client-hints/clear-site-data/resources/check-client-hints.py"); + t.add_cleanup(() => new_window.close()); }, "Clear-Site-Data for storage should not remove all client hints."); diff --git a/tests/wpt/tests/compat/webkit-background-origin-text.html b/tests/wpt/tests/compat/webkit-background-origin-text.html index dd38690dd96..38dfbc86ba8 100644 --- a/tests/wpt/tests/compat/webkit-background-origin-text.html +++ b/tests/wpt/tests/compat/webkit-background-origin-text.html @@ -3,7 +3,7 @@ webkit-background-origin should not accept text as value - + diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-002.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-002.html index 88e8a754b5b..8ef6f500a1f 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-002.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-002.html @@ -1,5 +1,5 @@ -Tests anchor-scroll resolving name conflicts +Tests anchor positioned scrolling resolving name conflicts @@ -45,7 +45,7 @@ body { height: 50px; top: anchor(--a1 top); left: anchor(--a1 right); - anchor-scroll: --a1; + anchor-default: --a1; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-003.html index 87d8153e7e3..c1b31c0becf 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-003.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-003.html @@ -1,5 +1,5 @@ -Tests anchor-scroll with fragmented containing block +Tests anchor positioned scrolling with fragmented containing block @@ -47,7 +47,7 @@ body { position: absolute; left: anchor(--a left); bottom: anchor(--a top); - anchor-scroll: --a; + anchor-default: --a; width: 50px; height: 50px; background: lime; @@ -72,5 +72,5 @@ promise_test(async () => { let targetRect = target.getBoundingClientRect(); assert_equals(targetRect.top, 30); -}, 'anchor-scroll should work in fragmented containing block'); +}, 'Scrolling should work in fragmented containing block'); diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-004.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-004.html index ce66a27422c..d08279118d9 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-004.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-004.html @@ -1,6 +1,6 @@ -Tests anchor-scroll with relatively positioned inline containers +Tests anchor positioned scrolling with relatively positioned inline containers @@ -32,7 +32,7 @@ body { .target { position: absolute; - anchor-scroll: --a; + anchor-default: --a; top: anchor(--a bottom); left: anchor(--a left); color: lime; diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-005.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-005.html index 82f3a23ac9c..a9a7d24d2b9 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-005.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-005.html @@ -1,5 +1,5 @@ -Tests 'anchor-scroll' with anchor in fixed-positioned scroller +Tests scrolling with anchor in fixed-positioned scroller @@ -33,7 +33,7 @@ body { width: 100px; height: 100px; bottom: anchor(--a top); - anchor-scroll: --a; + anchor-default: --a; background: lime; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-basics.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-basics.html deleted file mode 100644 index 6b2d96708bd..00000000000 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-basics.html +++ /dev/null @@ -1,44 +0,0 @@ - -Tests basics of the 'anchor-scroll' property - - - - - - - - - -
-
-
- - diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html index d8fa3821cf5..005a27393a2 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-001-crash.html @@ -1,5 +1,5 @@ -Tests that anchor-scroll doesn't crash renderer when anchor is in a scroller whose content doesn't overflow +Tests that scrolling doesn't crash renderer when anchor is in a scroller whose content doesn't overflow diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html index 046373377ef..594c844bfb5 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-003-crash.html @@ -1,6 +1,6 @@ -Tests that anchor-scroll doesn't crash renderer when scroller becomes non-scroller +Tests that scrolling doesn't crash renderer when scroller becomes non-scroller @@ -23,7 +23,7 @@ position: fixed; top: anchor(--a bottom); left: anchor(--a left); - anchor-scroll: --a; + anchor-default: --a; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html index 12e7af0be43..226a1b099c3 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-004-crash.html @@ -1,6 +1,6 @@ -Tests that anchor-scroll doesn't crash renderer when scroller's content no longer overflows, and target precedes scroller in DOM +Tests that scrolling doesn't crash renderer when scroller's content no longer overflows, and target precedes scroller in DOM @@ -23,7 +23,7 @@ position: fixed; top: anchor(--a bottom); left: anchor(--a left); - anchor-scroll: --a; + anchor-default: --a; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html index 0a4427ae921..639e2e064a7 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-005-crash.html @@ -1,6 +1,6 @@ -Tests that anchor-scroll doesn't crash renderer with `overflow: hidden` scroller +Tests that scrolling doesn't crash renderer with `overflow: hidden` scroller @@ -23,7 +23,7 @@ position: fixed; top: anchor(--a bottom); left: anchor(--a left); - anchor-scroll: --a; + anchor-default: --a; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-006.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-006.html index 6b5f268f554..6e57accc457 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-006.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-composited-scrolling-006.html @@ -1,6 +1,6 @@ -Tests anchor-scroll element paint order in composited scrolling +Tests anchor-positioned element paint order in composited scrolling @@ -29,7 +29,7 @@ body { background: red; left: 0; bottom: anchor(--a top); - anchor-scroll: --a; + anchor-default: --a; } #overlap { position: absolute; diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-001.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-001.html index a9a5d8c0ff4..04518e50193 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-001.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-001.html @@ -35,7 +35,7 @@ #anchored { position: absolute; background: green; - anchor-scroll: --a; + anchor-default: --a; position-fallback: --fallback; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-002.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-002.html index e51f675fffe..f30c35d390d 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-002.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-002.html @@ -31,7 +31,7 @@ body { width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; top: anchor(--a top); position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-003.html index ae212f91908..60bc9b919af 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-003.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-003.html @@ -38,7 +38,7 @@ width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-004.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-004.html index 0227fa753ef..99e4f9c30d1 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-004.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-004.html @@ -33,7 +33,7 @@ body { width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-005.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-005.html index 3dedd4d7e68..0adfe0834d8 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-005.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-005.html @@ -32,7 +32,7 @@ body { width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; top: anchor(--a top); position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-006.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-006.html index aa5f7c0abff..b4a1a24de69 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-006.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-006.html @@ -28,7 +28,7 @@ body { width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-007.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-007.html index cce0a74b90b..baa283ba944 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-007.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-007.html @@ -32,7 +32,7 @@ html { width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-008.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-008.html index 1df6a7a1d41..ae625d58239 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-008.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-008.html @@ -33,7 +33,7 @@ html { width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-009.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-009.html index c4bf76d759b..b355d476e6b 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-009.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-009.html @@ -32,7 +32,7 @@ html { width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-010.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-010.html index ace94a071a7..a0dd599b3b6 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-010.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-010.html @@ -33,7 +33,7 @@ html { width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-011.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-011.html index 722c45634ff..98fa4b5f86c 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-011.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fallback-position-011.html @@ -45,7 +45,7 @@ width: 100px; height: 100px; background: green; - anchor-scroll: --a; + anchor-default: --a; position-fallback: --pf; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fixedpos.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fixedpos.html index ee7d22608b6..a32ef3f7c49 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fixedpos.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-fixedpos.html @@ -1,5 +1,5 @@ -Tests that anchor-scroll adjusts location of fixed-positioned elements correctly +Tests that scroll adjustments of fixed-positioned elements are applied correctly @@ -22,7 +22,7 @@ div { #anchored { position: fixed; - anchor-scroll: --a1; + anchor-default: --a1; left: anchor(--a1 right); top: anchor(--a1 top); background: green; diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-js-expose.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-js-expose.html index f19d010d359..1ef44d03c22 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-js-expose.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-js-expose.html @@ -1,6 +1,6 @@ -Tests that anchor element's actual rendered location is property exposed via JS APIs under anchor-scroll - +Tests that anchored element's actual rendered location is property exposed via JS APIs under scrolling + @@ -35,7 +35,7 @@ bottom: anchor(--anchor top); width: 100px; height: 100px; - anchor-scroll: --anchor; + anchor-default: --anchor; background-color: green; } @@ -50,11 +50,11 @@ diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-nested.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-nested.html index 964b02a5b04..557f748c029 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-nested.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-nested.html @@ -1,6 +1,6 @@ -Tests anchor-scroll with nested scroll containers +Tests anchor positioning with nested scroll containers @@ -41,7 +41,7 @@ body { width: 50px; height: 50px; left: anchor(--anchor left); - anchor-scroll: --anchor; + anchor-default: --anchor; } .above { diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-001.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-001.html index 9400136e982..f11797edadb 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-001.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-001.html @@ -1,6 +1,6 @@ -Basic of anchor-scroll: anchored elements should keep "pinned" to the anchor during anchor scroll updates +Anchored elements should keep "pinned" to the anchor during scroll updates @@ -41,7 +41,7 @@ body { position: absolute; left: anchor(--anchor left); bottom: anchor(--anchor top); - anchor-scroll: --anchor; + anchor-default: --anchor; } #outer-anchored { @@ -49,7 +49,7 @@ body { position: absolute; left: anchor(--anchor left); top: anchor(--anchor bottom); - anchor-scroll: --anchor; + anchor-default: --anchor; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-002.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-002.html index 4e8fcbe295d..19447952b0b 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-002.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-002.html @@ -1,6 +1,6 @@ -Basic of anchor-scroll: anchored elements should update location on `anchor-scroll` property changes +Anchored elements should update location on `anchor-default` property changes @@ -75,8 +75,8 @@ function raf() { async function runTest() { await raf(); await raf(); - document.getElementById('inner-anchored').style.anchorScroll = '--anchor'; - document.getElementById('outer-anchored').style.anchorScroll = '--anchor'; + document.getElementById('inner-anchored').style.anchorDefault = '--anchor'; + document.getElementById('outer-anchored').style.anchorDefault = '--anchor'; document.documentElement.classList.remove('reftest-wait'); } runTest(); diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-003.html index 0d3ec2830cb..57a524c483f 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-003.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-003.html @@ -1,6 +1,6 @@ -Basic of anchor-scroll: anchored elements should update location on anchor's `anchor-name` property changes +Anchored elements should update location on anchor's `anchor-name` property changes @@ -37,7 +37,7 @@ body { position: absolute; left: anchor(--anchor left); bottom: anchor(--anchor top); - anchor-scroll: --anchor; + anchor-default: --anchor; } #outer-anchored { @@ -45,7 +45,7 @@ body { position: absolute; left: anchor(--anchor left); top: anchor(--anchor bottom); - anchor-scroll: --anchor; + anchor-default: --anchor; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-004.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-004.html index 7d1aadc95db..d20a7b660a6 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-004.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-004.html @@ -1,6 +1,6 @@ -Basic of anchor-scroll: anchored elements should update location on anchor's layout changes +Anchored elements should update location on anchor's layout changes @@ -49,7 +49,7 @@ body { position: absolute; left: anchor(--anchor left); bottom: anchor(--anchor top); - anchor-scroll: --anchor; + anchor-default: --anchor; } #outer-anchored { @@ -57,7 +57,7 @@ body { position: absolute; left: anchor(--anchor left); top: anchor(--anchor bottom); - anchor-scroll: --anchor; + anchor-default: --anchor; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-005.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-005.html index 5675507a477..c2e7248c80c 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-005.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-005.html @@ -24,7 +24,7 @@ background-color: green; top: anchor(--a top); left: 0; - anchor-scroll: --a; + anchor-default: --a; }
@@ -49,7 +49,7 @@ async function runTest() { scroller.classList.add('changed'); document.documentElement.classList.remove('reftest-wait'); - // Should change scroll offset and anchor-scroll adjustment to 200. + // Should change scroll offset and scroll adjustment to 200. } runTest(); diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-006.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-006.html index 7a8e675baa1..2535c68f787 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-006.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-006.html @@ -24,7 +24,7 @@ background-color: green; top: anchor(--a top); left: 0; - anchor-scroll: --a; + anchor-default: --a; }
@@ -49,7 +49,7 @@ async function runTest() { document.getElementById('spacer').classList.add('changed'); document.documentElement.classList.remove('reftest-wait'); - // Should change scroll offset and anchor-scroll adjustment to 200. + // Should change scroll offset and scroll adjustment to 200. } runTest(); diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-007.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-007.html index b08bcc53ee7..4859f01d660 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-007.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-update-007.html @@ -37,7 +37,7 @@ body { position: absolute; left: anchor(--anchor left); bottom: anchor(--anchor top); - anchor-scroll: --anchor; + anchor-default: --anchor; } #outer-anchored { @@ -45,7 +45,7 @@ body { position: fixed; left: anchor(--anchor left); top: anchor(--anchor bottom); - anchor-scroll: --anchor; + anchor-default: --anchor; } diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-vlr.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-vlr.html index 82d167f48d9..00406c825e9 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-vlr.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-vlr.html @@ -1,7 +1,7 @@ -Tests that anchor-scroll works in vertical-lr writing mode +Tests that anchor positioned scrolling works in vertical-lr writing mode - + diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-vrl.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-vrl.html index 55b73558974..2432d728993 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-vrl.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-vrl.html @@ -1,7 +1,7 @@ -Tests that anchor-scroll works in vertical-rl writing mode +Tests that anchor positioned scrolling works in vertical-rl writing mode - + diff --git a/tests/wpt/tests/css/css-anchor-position/at-position-fallback-cssom.html b/tests/wpt/tests/css/css-anchor-position/at-position-fallback-cssom.html new file mode 100644 index 00000000000..df295bf2d0a --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/at-position-fallback-cssom.html @@ -0,0 +1,81 @@ + +Tests the CSSOM interfaces of @position-fallback and @try rules + + + + + +
+
+
+ + diff --git a/tests/wpt/tests/css/css-anchor-position/idlharness.html b/tests/wpt/tests/css/css-anchor-position/idlharness.html new file mode 100644 index 00000000000..2679bb3740b --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/idlharness.html @@ -0,0 +1,37 @@ + +CSS Anchor Positioning IDL tests + + + + + + + + + diff --git a/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-001.html b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-001.html new file mode 100644 index 00000000000..7735115e592 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-001.html @@ -0,0 +1,82 @@ + +Tests basic functionalities of 'position-fallback-bounds' + + + + + + + + + + +
+
+
+
+ + +
+ + +
+ diff --git a/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-002.html b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-002.html new file mode 100644 index 00000000000..7bd71216e7d --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-002.html @@ -0,0 +1,85 @@ + +Tests 'position-fallback-bounds' with mixed writing modes + + + + + + + + + + +
+
+
+
+ + +
+ + +
+ diff --git a/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-003.html b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-003.html new file mode 100644 index 00000000000..0e0e243a16e --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-003.html @@ -0,0 +1,96 @@ + +Tests basic interaction between 'position-fallback-bounds' and scrolling + + + + + + + + +
+
+
+ + diff --git a/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-004.html b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-004.html new file mode 100644 index 00000000000..ff982ea93e4 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-004.html @@ -0,0 +1,98 @@ + +Tests complex interaction between 'position-fallback-bounds' and scrolling + + + + + + + + +
+
+
+ +
+
+
+ +
+ + diff --git a/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-005.html b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-005.html new file mode 100644 index 00000000000..deb546a1e2e --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-005.html @@ -0,0 +1,75 @@ + +Tests relayout after 'position-fallback-bounds' change + + + + + + + + +
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-006.html b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-006.html new file mode 100644 index 00000000000..5a19c59f310 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/position-fallback-bounds-006.html @@ -0,0 +1,64 @@ + +Tests 'position-fallback-bounds' should work without default anchor + + + + + + + + +
+
+
+ + diff --git a/tests/wpt/tests/css/css-anchor-position/reference/anchor-scroll-nested-ref.html b/tests/wpt/tests/css/css-anchor-position/reference/anchor-scroll-nested-ref.html index 6190258f3cb..a651114868b 100644 --- a/tests/wpt/tests/css/css-anchor-position/reference/anchor-scroll-nested-ref.html +++ b/tests/wpt/tests/css/css-anchor-position/reference/anchor-scroll-nested-ref.html @@ -1,5 +1,5 @@ -Tests anchor-scroll with nested scroll containers +Tests anchor positioned scrolling with nested scroll containers +

+ PASS if no crash. +

diff --git a/tests/wpt/tests/css/css-cascade/scope-invalidation.html b/tests/wpt/tests/css/css-cascade/scope-invalidation.html index c5bdb616585..d41df57851e 100644 --- a/tests/wpt/tests/css/css-cascade/scope-invalidation.html +++ b/tests/wpt/tests/css/css-cascade/scope-invalidation.html @@ -349,3 +349,216 @@ test_scope_invalidation(document.currentScript, () => { assert_green(b); }, 'Scope limit with :has()'); + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/css/css-cascade/scope-nesting.html b/tests/wpt/tests/css/css-cascade/scope-nesting.html index 34a13a1cb18..05cdac9fc94 100644 --- a/tests/wpt/tests/css/css-cascade/scope-nesting.html +++ b/tests/wpt/tests/css/css-cascade/scope-nesting.html @@ -167,4 +167,170 @@ test((t) => { assert_equals(getComputedStyle(div).zIndex, '2'); }, 'Nesting-selector within :scope rule (double nested)'); - \ No newline at end of file + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/css/css-cascade/scope-shadow.html b/tests/wpt/tests/css/css-cascade/scope-shadow.html deleted file mode 100644 index 100438f534b..00000000000 --- a/tests/wpt/tests/css/css-cascade/scope-shadow.html +++ /dev/null @@ -1,60 +0,0 @@ - -@scope - ShadowDOM - - - - - -
- -
- - -
- -
- diff --git a/tests/wpt/tests/css/css-cascade/scope-shadow.tentative.html b/tests/wpt/tests/css/css-cascade/scope-shadow.tentative.html new file mode 100644 index 00000000000..7bcd2e63cf8 --- /dev/null +++ b/tests/wpt/tests/css/css-cascade/scope-shadow.tentative.html @@ -0,0 +1,122 @@ + +@scope - ShadowDOM + + + + + + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ +
+
+
+
+ diff --git a/tests/wpt/tests/css/css-cascade/scope-visited-cssom.html b/tests/wpt/tests/css/css-cascade/scope-visited-cssom.html new file mode 100644 index 00000000000..aba4b752b2f --- /dev/null +++ b/tests/wpt/tests/css/css-cascade/scope-visited-cssom.html @@ -0,0 +1,314 @@ + +@scope - :visited and CSSOM + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/css/css-color/parsing/color-computed-rgb.html b/tests/wpt/tests/css/css-color/parsing/color-computed-rgb.html index 1205d005125..3b6fa200568 100644 --- a/tests/wpt/tests/css/css-color/parsing/color-computed-rgb.html +++ b/tests/wpt/tests/css/css-color/parsing/color-computed-rgb.html @@ -85,6 +85,25 @@ tests = [ ["rgba(0%, 0%, 0%, 0%)", "rgba(0, 0, 0, 0)", "Percent alpha values are accepted in rgb/rgba"], ["rgba(0%, 0%, 0%)", "rgb(0, 0, 0)", "RGB and RGBA are synonyms"], ["rgba(0, 0, 0)", "rgb(0, 0, 0)", "RGB and RGBA are synonyms"], + + // calc(+/-infinity) remains infinity but calc(NaN) becomes zero for all channels. + // See: https://github.com/w3c/csswg-drafts/issues/8629 + ["rgb(calc(infinity), 0, 0)", "rgb(255, 0, 0)", "Red channel resolves positive infinity to 255"], + ["rgb(0, calc(infinity), 0)", "rgb(0, 255, 0)", "Green channel resolves positive infinity to 255"], + ["rgb(0, 0, calc(infinity))", "rgb(0, 0, 255)", "Blue channel resolves positive infinity to 255"], + ["rgba(0, 0, 0, calc(infinity))", "rgb(0, 0, 0)", "Alpha channel resolves positive infinity to fully opaque"], + ["rgb(calc(-infinity), 0, 0)", "rgb(0, 0, 0)", "Red channel resolves negative infinity to zero"], + ["rgb(0, calc(-infinity), 0)", "rgb(0, 0, 0)", "Green channel resolves negative infinity to zero"], + ["rgb(0, 0, calc(-infinity))", "rgb(0, 0, 0)", "Blue channel resolves negative infinity to zero"], + ["rgba(0, 0, 0, calc(-infinity))", "rgba(0, 0, 0, 0)", "Alpha channel resolves negative infinity to fully transparent"], + ["rgb(calc(NaN), 0, 0)", "rgb(0, 0, 0)", "Red channel resolves NaN to zero"], + ["rgb(0, calc(NaN), 0)", "rgb(0, 0, 0)", "Green channel resolves NaN to zero"], + ["rgb(0, 0, calc(NaN))", "rgb(0, 0, 0)", "Blue channel resolves NaN to zero"], + ["rgba(0, 0, 0, calc(NaN))", "rgba(0, 0, 0, 0)", "Alpha channel resolves NaN to zero"], + ["rgb(calc(0 / 0), 0, 0)", "rgb(0, 0, 0)", "Red channel resolves NaN equivalent calc statements to zero"], + ["rgb(0, calc(0 / 0), 0)", "rgb(0, 0, 0)", "Green channel resolves NaN equivalent calc statements to zero"], + ["rgb(0, 0, calc(0 / 0))", "rgb(0, 0, 0)", "Blue channel resolves NaN equivalent calc statements to zero"], + ["rgba(0, 0, 0, calc(0 / 0))", "rgba(0, 0, 0, 0)", "Alpha channel resolves NaN equivalent calc statements to zero"], ]; for (const test of tests) { diff --git a/tests/wpt/tests/css/css-color/parsing/color-valid-rgb.html b/tests/wpt/tests/css/css-color/parsing/color-valid-rgb.html index eb50db02cb2..22054a18f90 100644 --- a/tests/wpt/tests/css/css-color/parsing/color-valid-rgb.html +++ b/tests/wpt/tests/css/css-color/parsing/color-valid-rgb.html @@ -40,6 +40,24 @@ test_valid_value("color", "rgba(-2 3 4 / .5)", "rgba(0, 3, 4, 0.5)"); test_valid_value("color", "rgba(-20% 20% 40% / 50%)", "rgba(0, 51, 102, 0.5)"); test_valid_value("color", "rgba(257 30 40 / 50%)", "rgba(255, 30, 40, 0.5)"); test_valid_value("color", "rgba(250% 20% 40% / .5)", "rgba(255, 51, 102, 0.5)"); + +// Test non-finite values. See: https://github.com/w3c/csswg-drafts/issues/8629 +test_valid_value("color", "rgb(calc(infinity), 0, 0)", "rgb(calc(infinity), 0, 0)"); +test_valid_value("color", "rgb(0, calc(infinity), 0)", "rgb(0, calc(infinity), 0)"); +test_valid_value("color", "rgb(0, 0, calc(infinity))", "rgb(0, 0, calc(infinity))"); +test_valid_value("color", "rgba(0, 0, 0, calc(infinity))", "rgba(0, 0, 0, calc(infinity))"); +test_valid_value("color", "rgb(calc(-infinity), 0, 0)", "rgb(calc(-infinity), 0, 0)"); +test_valid_value("color", "rgb(0, calc(-infinity), 0)", "rgb(0, calc(-infinity), 0)"); +test_valid_value("color", "rgb(0, 0, calc(-infinity))", "rgb(0, 0, calc(-infinity))"); +test_valid_value("color", "rgba(0, 0, 0, calc(-infinity))", "rgba(0, 0, 0, calc(-infinity))"); +test_valid_value("color", "rgb(calc(NaN), 0, 0)", "rgb(calc(NaN), 0, 0)"); +test_valid_value("color", "rgb(0, calc(NaN), 0)", "rgb(0, calc(NaN), 0)"); +test_valid_value("color", "rgb(0, 0, calc(NaN))", "rgb(0, 0, calc(NaN))"); +test_valid_value("color", "rgba(0, 0, 0, calc(NaN))", "rgba(0, 0, 0, calc(NaN))"); +test_valid_value("color", "rgb(calc(0 / 0), 0, 0)", "rgb(calc(NaN), 0, 0)"); +test_valid_value("color", "rgb(0, calc(0 / 0), 0)", "rgb(0, calc(NaN), 0)"); +test_valid_value("color", "rgb(0, 0, calc(0 / 0))", "rgb(0, 0, calc(NaN))"); +test_valid_value("color", "rgba(0, 0, 0, calc(0 / 0))", "rgba(0, 0, 0, calc(NaN))"); diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-075-ref.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-075-ref.html index 11fbd762525..e0c485c59f3 100644 --- a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-075-ref.html +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-075-ref.html @@ -9,10 +9,10 @@ -
-
-
PASS
-
-
+
+
+
PASS
+
+
+ + + +
+
+
content with content-visibility: auto
+
+ + diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-auto-nested-scroll.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-auto-nested-scroll.html new file mode 100644 index 00000000000..abd63f3eae3 --- /dev/null +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-auto-nested-scroll.html @@ -0,0 +1,41 @@ + + + +Content Visibility: content in nested `content-visibility: auto` element can be scrolled to + + + + + + + + + + + + +
+
+
content with content-visibility: auto
+
diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-interpolation.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-interpolation.html index 9e5551a6f84..4b3cf856494 100644 --- a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-interpolation.html +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-interpolation.html @@ -26,10 +26,9 @@ const alwaysHidden = [ test_interpolation({ property: 'content-visibility', + animationType: 'discrete', from: 'visible', to: 'hidden', - // transition:all is not supposed to allow content-visibility to be transitioned. - 'CSS Transitions with transition: all': alwaysHidden, }, [ {at: -1, expect: 'visible'}, {at: 0, expect: 'visible'}, @@ -41,10 +40,9 @@ test_interpolation({ test_interpolation({ property: 'content-visibility', + animationType: 'discrete', from: 'hidden', to: 'visible', - // transition:all is not supposed to allow content-visibility to be transitioned. - 'CSS Transitions with transition: all': alwaysVisible, }, [ {at: -1, expect: 'hidden'}, {at: 0, expect: 'hidden'}, diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-float-crash.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-float-crash.html new file mode 100644 index 00000000000..22f86775a3a --- /dev/null +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-float-crash.html @@ -0,0 +1,12 @@ + + + + + + + diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-popover-top-layer-and-auto-descendant-ref.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-popover-top-layer-and-auto-descendant-ref.html new file mode 100644 index 00000000000..211bb89a33e --- /dev/null +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-popover-top-layer-and-auto-descendant-ref.html @@ -0,0 +1,13 @@ + + +CSS Content Visibility: content-visibility: auto descendant in popover is shown on showPopover" + + +
+
+ Test passes if this is visible +
+ + diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-popover-top-layer-and-auto-descendant.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-popover-top-layer-and-auto-descendant.html new file mode 100644 index 00000000000..aed0227ef1d --- /dev/null +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-popover-top-layer-and-auto-descendant.html @@ -0,0 +1,31 @@ + + + +CSS Content Visibility: content-visibility: auto descendant in popover is shown on showPopover + + + + + + + + +
+
+ Test passes if this is visible +
+ + + diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-top-layer-and-auto-descendant-ref.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-top-layer-and-auto-descendant-ref.html new file mode 100644 index 00000000000..40a2d9acd35 --- /dev/null +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-top-layer-and-auto-descendant-ref.html @@ -0,0 +1,13 @@ + + +CSS Content Visibility: content-visibility: auto descendant in dialog is shown on showModal" + + +
+ + Test passes if this is visible + + + diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-top-layer-and-auto-descendant.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-top-layer-and-auto-descendant.html new file mode 100644 index 00000000000..a55337bf44d --- /dev/null +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-top-layer-and-auto-descendant.html @@ -0,0 +1,31 @@ + + + +CSS Content Visibility: content-visibility: auto descendant in dialog is shown on showModal + + + + + + + + +
+ + Test passes if this is visible + + + + diff --git a/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-top-layer-in-auto-subtree-removal.html b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-top-layer-in-auto-subtree-removal.html new file mode 100644 index 00000000000..af7be861526 --- /dev/null +++ b/tests/wpt/tests/css/css-contain/content-visibility/content-visibility-with-top-layer-in-auto-subtree-removal.html @@ -0,0 +1,43 @@ + + + +CSS Content Visibility: test top layer dialog removal in on-screen c-v:auto subtree + + + + + + + + + +
+Test passes if you can see this text and a green box. +
+FAIL
+
+ + diff --git a/tests/wpt/tests/css/css-contain/crashtests/contain-nested-relayout-boundary.html b/tests/wpt/tests/css/css-contain/crashtests/contain-nested-relayout-boundary.html new file mode 100644 index 00000000000..ce915728f48 --- /dev/null +++ b/tests/wpt/tests/css/css-contain/crashtests/contain-nested-relayout-boundary.html @@ -0,0 +1,11 @@ + +
+
+ +
+
+ diff --git a/tests/wpt/tests/css/css-flexbox/button-column-wrap-crash.html b/tests/wpt/tests/css/css-flexbox/button-column-wrap-crash.html new file mode 100644 index 00000000000..0741735d4e3 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/button-column-wrap-crash.html @@ -0,0 +1,5 @@ + + + +
popover
+ + diff --git a/tests/wpt/tests/html/semantics/popovers/popover-anchor-scroll-display-ref.html b/tests/wpt/tests/html/semantics/popovers/popover-anchor-scroll-display-ref.html index 1bac806d111..926a171e9af 100644 --- a/tests/wpt/tests/html/semantics/popovers/popover-anchor-scroll-display-ref.html +++ b/tests/wpt/tests/html/semantics/popovers/popover-anchor-scroll-display-ref.html @@ -6,7 +6,6 @@

There should be a green box attached to the right side of each orange box.

-
diff --git a/tests/wpt/tests/html/semantics/popovers/popover-anchor-scroll-display.html b/tests/wpt/tests/html/semantics/popovers/popover-anchor-scroll-display.html index 9a14b44f049..7ed6cf1adf8 100644 --- a/tests/wpt/tests/html/semantics/popovers/popover-anchor-scroll-display.html +++ b/tests/wpt/tests/html/semantics/popovers/popover-anchor-scroll-display.html @@ -22,12 +22,6 @@
- -
-
-
-
-
@@ -65,13 +59,6 @@ anchor-default: --anchor2; left: anchor(right); top: anchor(top); - anchor-scroll: default; - } - #popover3 { - anchor-default: --fake-anchor; - left: anchor(implicit right); - top: anchor(implicit top); - anchor-scroll: implicit; } diff --git a/tests/wpt/tests/html/semantics/popovers/popover-focus-2.html b/tests/wpt/tests/html/semantics/popovers/popover-focus-2.html index 2fa1b7a23de..b5ad7a586ee 100644 --- a/tests/wpt/tests/html/semantics/popovers/popover-focus-2.html +++ b/tests/wpt/tests/html/semantics/popovers/popover-focus-2.html @@ -35,29 +35,27 @@ } @@ -101,7 +103,7 @@ promise_test(async t => { promise_test(async t => { circular0.focus(); await sendEnter(); // Activate the invoker - await verifyFocusOrder([circular0, circular1, circular2, circular3, circular4]); + await verifyFocusOrder([circular0, circular1, circular2, circular3, circular4],'circular reference'); popover4.hidePopover(); }, "Circular reference tab navigation"); diff --git a/tests/wpt/tests/html/semantics/popovers/popover-focus-harness.html b/tests/wpt/tests/html/semantics/popovers/popover-focus-harness.html new file mode 100644 index 00000000000..a22a68ea2bd --- /dev/null +++ b/tests/wpt/tests/html/semantics/popovers/popover-focus-harness.html @@ -0,0 +1,25 @@ + + +Popover utils - harness test + + + + + + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/popovers/popover-light-dismiss.html b/tests/wpt/tests/html/semantics/popovers/popover-light-dismiss.html index 009d10609b0..eb148941fbf 100644 --- a/tests/wpt/tests/html/semantics/popovers/popover-light-dismiss.html +++ b/tests/wpt/tests/html/semantics/popovers/popover-light-dismiss.html @@ -326,6 +326,7 @@ await new test_driver.Actions() .scroll(0, 0, 0, 50, {origin: popover6}) .send(); + await waitForRender(); assert_true(popover6.matches(':popover-open'),'popover6 should stay open'); assert_equals(popover6.scrollTop,50,'popover6 should be scrolled'); popover6.hidePopover(); diff --git a/tests/wpt/tests/html/semantics/popovers/popover-undefined-remove-crash.html b/tests/wpt/tests/html/semantics/popovers/popover-undefined-remove-crash.html new file mode 100644 index 00000000000..3c273ea6f34 --- /dev/null +++ b/tests/wpt/tests/html/semantics/popovers/popover-undefined-remove-crash.html @@ -0,0 +1,12 @@ + + + + +
+PO +
+ + diff --git a/tests/wpt/tests/html/semantics/popovers/resources/popover-utils.js b/tests/wpt/tests/html/semantics/popovers/resources/popover-utils.js index 4dc4d8138d8..bc7643c21ab 100644 --- a/tests/wpt/tests/html/semantics/popovers/resources/popover-utils.js +++ b/tests/wpt/tests/html/semantics/popovers/resources/popover-utils.js @@ -21,19 +21,18 @@ async function sendTab() { await new test_driver.send_keys(document.documentElement,kTab); await waitForRender(); } -// Waiting for crbug.com/893480: -// async function sendShiftTab() { -// await waitForRender(); -// const kShift = '\uE008'; -// const kTab = '\uE004'; -// await new test_driver.Actions() -// .keyDown(kShift) -// .keyDown(kTab) -// .keyUp(kTab) -// .keyUp(kShift) -// .send(); -// await waitForRender(); -// } +async function sendShiftTab() { + await waitForRender(); + const kShift = '\uE008'; + const kTab = '\uE004'; + await new test_driver.Actions() + .keyDown(kShift) + .keyDown(kTab) + .keyUp(kTab) + .keyUp(kShift) + .send(); + await waitForRender(); +} async function sendEscape() { await waitForRender(); await new test_driver.send_keys(document.documentElement,'\uE00C'); // Escape diff --git a/tests/wpt/tests/html/semantics/popovers/togglePopover.html b/tests/wpt/tests/html/semantics/popovers/togglePopover.html index 115db8e2ac0..388617fccc1 100644 --- a/tests/wpt/tests/html/semantics/popovers/togglePopover.html +++ b/tests/wpt/tests/html/semantics/popovers/togglePopover.html @@ -44,4 +44,36 @@ test(() => { // but every way to prevent that from hiding the popover also throws an // exception, so the return value is not testable. }, `togglePopover's return value should reflect what the end state is, not just the force parameter.`); + +test(() => { + const popover = document.createElement('div'); + document.body.appendChild(popover); + + assert_throws_dom('NotSupportedError', () => popover.togglePopover(), + 'togglePopover() should throw an exception when the element has no popover attribute.'); + assert_throws_dom('NotSupportedError', () => popover.togglePopover(true), + 'togglePopover(true) should throw an exception when the element has no popover attribute.'); + assert_throws_dom('NotSupportedError', () => popover.togglePopover(false), + 'togglePopover(false) should throw an exception when the element has no popover attribute.'); + + popover.setAttribute('popover', 'auto'); + popover.remove(); + + assert_throws_dom('InvalidStateError', () => popover.togglePopover(), + 'togglePopover() should throw an exception when the element is disconnected.'); + assert_throws_dom('InvalidStateError', () => popover.togglePopover(true), + 'togglePopover(true) should throw an exception when the element is disconnected.'); + assert_throws_dom('InvalidStateError', () => popover.togglePopover(false), + 'togglePopover(false) should throw an exception when the element is disconnected.'); + + document.body.appendChild(popover); + // togglePopover(false) should not throw just because the popover is already hidden. + popover.togglePopover(false); + popover.showPopover(); + // togglePopover(true) should not throw just because the popover is already showing. + popover.togglePopover(true); + + // cleanup + popover.hidePopover(); +}, 'togglePopover should throw an exception when there is no popover attribute.'); diff --git a/tests/wpt/tests/html/semantics/scripting-1/the-script-element/defer-script/async-script.html b/tests/wpt/tests/html/semantics/scripting-1/the-script-element/defer-script/async-script.html index dea7f987bfa..90f657679f9 100644 --- a/tests/wpt/tests/html/semantics/scripting-1/the-script-element/defer-script/async-script.html +++ b/tests/wpt/tests/html/semantics/scripting-1/the-script-element/defer-script/async-script.html @@ -3,7 +3,7 @@ - + diff --git a/tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/module-import-referrer.html b/tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/module-import-referrer.html new file mode 100644 index 00000000000..7348b88075e --- /dev/null +++ b/tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/module-import-referrer.html @@ -0,0 +1,48 @@ + + + +Referrer for module imports + + + + + + + + diff --git a/tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/module-import-referrer.js b/tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/module-import-referrer.js new file mode 100644 index 00000000000..8710f5c6213 --- /dev/null +++ b/tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/module-import-referrer.js @@ -0,0 +1,2 @@ +export { referrer as referrerExternalStatic } from "./resources/referrer-checker.py?name=external-static" +export const { referrer: referrerExternalDynamic } = await import("./resources/referrer-checker.py?name=external-dynamic"); diff --git a/tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/referrer-policy-for-descendants.sub.html b/tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/referrer-policy-for-descendants.sub.html new file mode 100644 index 00000000000..cf8a3dce014 --- /dev/null +++ b/tests/wpt/tests/html/semantics/scripting-1/the-script-element/module/referrer-policy-for-descendants.sub.html @@ -0,0 +1,91 @@ + + + +Module script descendants use the referrer policy on their ancestor, if one exists + + + + + + + + + diff --git a/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html b/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html index cc16260d702..add78d2fd47 100644 --- a/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html +++ b/tests/wpt/tests/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol.https.html @@ -77,7 +77,6 @@ test(() => { 'http://foobar.example.com/%s', 'mailto:%s@example.com', 'mailto:%s', - `ftp://${location.host}/%s`, `chrome://${location.host}/%s`, `foo://${location.host}/%s`, URL.createObjectURL(new Blob()) + "#%s", @@ -104,7 +103,6 @@ test(() => { 'cid', 'data', 'file', - 'ftp', 'http', 'https', 'javascript', @@ -170,6 +168,8 @@ test(() => { /* safelisted schemes listed in * https://html.spec.whatwg.org/multipage/system-state.html#safelisted-scheme */ 'bitcoin', + 'ftp', + 'ftps', 'geo', 'im', 'irc', @@ -181,6 +181,7 @@ test(() => { 'news', 'nntp', 'openpgp4fpr', + 'sftp', 'sip', 'sms', 'smsto', diff --git a/tests/wpt/tests/inert/inert-node-is-uneditable.html b/tests/wpt/tests/inert/inert-node-is-uneditable.html index 23182b937cd..983831a89fc 100644 --- a/tests/wpt/tests/inert/inert-node-is-uneditable.html +++ b/tests/wpt/tests/inert/inert-node-is-uneditable.html @@ -7,6 +7,7 @@ + @@ -16,15 +17,18 @@ var notEditable = document.querySelector('#not-editable'); var editable = document.querySelector('#editable'); +function sendKey(key) { + return new test_driver.Actions() + .keyDown(key) + .keyUp(key) + .send(); +} + promise_test(async function() { notEditable.focus(); var oldValue = notEditable.textContent; assert_equals(oldValue, "I'm not editable."); - await promise_rejects_js( - this, - Error, - test_driver.send_keys(notEditable, 'a'), - "send_keys should reject for non-interactive elements"); + await sendKey('a'); assert_equals(notEditable.textContent, oldValue); }, "Can't edit inert contenteditable"); @@ -32,7 +36,7 @@ promise_test(async () => { editable.focus(); var oldValue = editable.textContent; assert_equals(oldValue, "I'm editable."); - await test_driver.send_keys(editable, 'a'); + await sendKey('a'); assert_not_equals(editable.textContent, oldValue); }, "Can edit non-inert contenteditable"); diff --git a/tests/wpt/tests/infrastructure/assumptions/non-local-ports.sub.window.js b/tests/wpt/tests/infrastructure/assumptions/non-local-ports.sub.window.js index 06ecb3ab21b..8c9eb33c4f7 100644 --- a/tests/wpt/tests/infrastructure/assumptions/non-local-ports.sub.window.js +++ b/tests/wpt/tests/infrastructure/assumptions/non-local-ports.sub.window.js @@ -3,10 +3,10 @@ // See the corresponding WPT RFC: // https://github.com/web-platform-tests/rfcs/blob/master/rfcs/address_space_overrides.md // -// These ports are used to test the Local Network Access specification: -// https://wicg.github.io/local-network-access/ +// These ports are used to test the Private Network Access specification: +// https://wicg.github.io/private-network-access/ // -// More tests can be found in `fetch/local-network-access/`. +// More tests can be found in `fetch/private-network-access/`. const alternatePorts = { httpPrivate: "{{ports[http-private][0]}}", diff --git a/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/test_win_open_with_interaction.html.ini b/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/test_win_open_with_interaction.html.ini new file mode 100644 index 00000000000..b1e77bd8e59 --- /dev/null +++ b/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/test_win_open_with_interaction.html.ini @@ -0,0 +1,5 @@ +[test_win_open_with_interaction.html] + expected: [OK, TIMEOUT] + + [Tests pointer move/click in a window opened with `window.open.`] + expected: [FAIL, TIMEOUT, PASS] diff --git a/tests/wpt/tests/infrastructure/server/wpt-server-wpt-flags.sub.html b/tests/wpt/tests/infrastructure/server/wpt-server-wpt-flags.sub.html index 9af9cda4631..682759d7c38 100644 --- a/tests/wpt/tests/infrastructure/server/wpt-server-wpt-flags.sub.html +++ b/tests/wpt/tests/infrastructure/server/wpt-server-wpt-flags.sub.html @@ -5,7 +5,7 @@ - + diff --git a/tests/wpt/tests/infrastructure/testdriver/interacted_window.html b/tests/wpt/tests/infrastructure/testdriver/interacted_window.html new file mode 100644 index 00000000000..708cb9a84b5 --- /dev/null +++ b/tests/wpt/tests/infrastructure/testdriver/interacted_window.html @@ -0,0 +1,31 @@ + + + + + + +The quick brown fox jumps over the lazy dog + + + diff --git a/tests/wpt/tests/infrastructure/testdriver/test_win_open_with_interaction.html b/tests/wpt/tests/infrastructure/testdriver/test_win_open_with_interaction.html new file mode 100644 index 00000000000..055b17ab19e --- /dev/null +++ b/tests/wpt/tests/infrastructure/testdriver/test_win_open_with_interaction.html @@ -0,0 +1,39 @@ + + + + + + + + diff --git a/tests/wpt/tests/interfaces/screen-capture-mouse-events.tentative.idl b/tests/wpt/tests/interfaces/captured-mouse-events.tentative.idl similarity index 100% rename from tests/wpt/tests/interfaces/screen-capture-mouse-events.tentative.idl rename to tests/wpt/tests/interfaces/captured-mouse-events.tentative.idl diff --git a/tests/wpt/tests/interfaces/css-anchor-position.idl b/tests/wpt/tests/interfaces/css-anchor-position.idl new file mode 100644 index 00000000000..c5da3f43f72 --- /dev/null +++ b/tests/wpt/tests/interfaces/css-anchor-position.idl @@ -0,0 +1,11 @@ +// Source: CSS Anchor Positioning (https://drafts.csswg.org/css-anchor-position-1/) + +[Exposed=Window] +interface CSSPositionFallbackRule : CSSGroupingRule { + readonly attribute CSSOMString name; +}; + +[Exposed=Window] +interface CSSTryRule : CSSRule { + [SameObject, PutForwards=cssText] readonly attribute CSSStyleDeclaration style; +}; diff --git a/tests/wpt/tests/layout-instability/content-visibility-auto-offscreen.html b/tests/wpt/tests/layout-instability/content-visibility-auto-offscreen.html index 9e4361b38b4..91dd8348cb6 100644 --- a/tests/wpt/tests/layout-instability/content-visibility-auto-offscreen.html +++ b/tests/wpt/tests/layout-instability/content-visibility-auto-offscreen.html @@ -22,14 +22,14 @@ promise_test(async () => { target.style.top = '100100px'; await watcher.promise; - const expectedScore = computeExpectedScore(100 * 100, 100); - assert_equals(watcher.score, expectedScore); + const expectedScore = computeExpectedScore(100 * 100, 1); + assert_approx_equals(watcher.score, expectedScore, 1e-8, "before scroll to top"); - // No new layout shift should be reported when target is scrolled out of screeen. + // No new layout shift should be reported when target is scrolled out of screen. window.scrollTo(0, 0); await waitForAnimationFrames(2); - assert_equals(watcher.score, expectedScore); + assert_approx_equals(watcher.score, expectedScore, 1e-8, "after scroll to top"); }, 'off-screen content-visibility:auto'); + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-002.html b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-002.html new file mode 100644 index 00000000000..92383c58e5a --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-002.html @@ -0,0 +1,70 @@ + + + + + columnspan/rowspan + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-003.html b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-003.html new file mode 100644 index 00000000000..2a9b2158050 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-003.html @@ -0,0 +1,60 @@ + + + + + columnspan/rowspan + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-004.html b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-004.html new file mode 100644 index 00000000000..31c18842100 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-004.html @@ -0,0 +1,57 @@ + + + + + columnspan/rowspan + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-005.html b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-005.html new file mode 100644 index 00000000000..d1fdd7a9c60 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-005.html @@ -0,0 +1,57 @@ + + + + + columnspan/rowspan + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-006.html b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-006.html new file mode 100644 index 00000000000..774fcbfdc79 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-006.html @@ -0,0 +1,57 @@ + + + + + columnspan/rowspan + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-ref.html b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-ref.html new file mode 100644 index 00000000000..400f6b01e3c --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/columnspan-rowspan-ref.html @@ -0,0 +1,22 @@ + + + + + columnspan/rowspan (reference) + + + +

This test passes if you see a green square.

+ + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-001a.html b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-001a.html new file mode 100644 index 00000000000..c08c1a9fd49 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-001a.html @@ -0,0 +1,110 @@ + + + + + dynamic columnspan/rowspan + + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-001b.html b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-001b.html new file mode 100644 index 00000000000..fdedd4297e6 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-001b.html @@ -0,0 +1,110 @@ + + + + + dynamic columnspan/rowspan + + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-001c.html b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-001c.html new file mode 100644 index 00000000000..813c82b3de7 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-001c.html @@ -0,0 +1,113 @@ + + + + + dynamic columnspan/rowspan + + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-002a.html b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-002a.html new file mode 100644 index 00000000000..288048d5770 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-002a.html @@ -0,0 +1,78 @@ + + + + + dynamic columnspan/rowspan + + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-002b.html b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-002b.html new file mode 100644 index 00000000000..47a68480065 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-002b.html @@ -0,0 +1,78 @@ + + + + + dynamic columnspan/rowspan + + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-002c.html b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-002c.html new file mode 100644 index 00000000000..57d54defa80 --- /dev/null +++ b/tests/wpt/tests/mathml/presentation-markup/tables/dynamic-columnspan-rowspan-002c.html @@ -0,0 +1,84 @@ + + + + + dynamic columnspan/rowspan + + + + + + + +

This test passes if you see a green square.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/mathml/relations/css-styling/display-2.html b/tests/wpt/tests/mathml/relations/css-styling/display-2.html index 36a02952eb8..1d0810beadb 100644 --- a/tests/wpt/tests/mathml/relations/css-styling/display-2.html +++ b/tests/wpt/tests/mathml/relations/css-styling/display-2.html @@ -28,6 +28,9 @@ X\ X\ X\ + X\ + X\ + X\ `, "inline display": `XXX`, "inline-block display": `XXX`, @@ -112,7 +115,7 @@ let mathtest = templates[key]. replace(/X/g, ``); let reference = mathtest. - replace(/maction|math|mfrac|mmultiscripts|mover|mover|mpadded|mrow|mspace|msubsup|msub|msup|mtable|munderover|munder/g, "div"); + replace(/maction|math|mfrac|mmultiscripts|mover|mover|mpadded|mrow|mspace|msubsup|msub|msup|mtable|munderover|munder|msqrt|mroot|mtext/g, "div"); document.body.insertAdjacentHTML("beforeend", `
\
${key}:${mathtest}
\
${key}:${reference}
\ diff --git a/tests/wpt/tests/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html b/tests/wpt/tests/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html index d6496afd6f4..fb3dc8add15 100644 --- a/tests/wpt/tests/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html +++ b/tests/wpt/tests/media-source/dedicated-worker/mediasource-worker-play-terminate-worker.html @@ -7,13 +7,15 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-reload.tentative.window.js b/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-reload.tentative.window.js new file mode 100644 index 00000000000..3e94c3a4487 --- /dev/null +++ b/tests/wpt/tests/performance-timeline/not-restored-reasons/performance-navigation-timing-reload.tentative.window.js @@ -0,0 +1,51 @@ +// META: title=RemoteContextHelper navigation using BFCache +// META: script=./test-helper.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/common/get-host-info.sub.js +// META: script=/common/utils.js +// META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js +// META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js +// META: script=/websockets/constants.sub.js +// META: timeout=long + +'use strict'; +const {ORIGIN, REMOTE_ORIGIN} = get_host_info(); + +// Ensure that notRestoredReasons reset after the server redirect. +promise_test(async t => { + const rcHelper = new RemoteContextHelper(); + // Open a window with noopener so that BFCache will work. + const rc1 = await rcHelper.addWindow( + /*config=*/ null, /*options=*/ {features: 'noopener'}); + const rc1_url = await rc1.executeScript(() => { + return location.href; + }); + // Use WebSocket to block BFCache. + await useWebSocket(rc1); + + // Check the BFCache result and the reported reasons. + await assertBFCacheEligibility(rc1, /*shouldRestoreFromBFCache=*/ false); + await assertNotRestoredReasonsEquals( + rc1, + /*blocked=*/ true, + /*url=*/ rc1_url, + /*src=*/ null, + /*id=*/ null, + /*name=*/ null, + /*reasons=*/['WebSocket'], + /*children=*/[]); + + // Reload. + await rc1.navigate(() => { + location.reload(); + }, []); + + // Becauase of the reload, notRestoredReasons is reset. + const navigation_entry = await rc1.executeScript(() => { + return performance.getEntriesByType('navigation')[0]; + }); + + assert_equals( + navigation_entry.notRestoredReasons, null, + 'Expected notRestoredReasons is null.'); +}); diff --git a/tests/wpt/tests/performance-timeline/tentative/performance-entry-source-deleted-frame.html b/tests/wpt/tests/performance-timeline/tentative/performance-entry-source-deleted-frame.html new file mode 100644 index 00000000000..81970606707 --- /dev/null +++ b/tests/wpt/tests/performance-timeline/tentative/performance-entry-source-deleted-frame.html @@ -0,0 +1,39 @@ + + + + + + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/pointerevents/compat/pointerevent_mouse-pointer-preventdefault.html b/tests/wpt/tests/pointerevents/compat/pointerevent_mouse-pointer-preventdefault.html index 549cbf55d88..977c4e90cae 100644 --- a/tests/wpt/tests/pointerevents/compat/pointerevent_mouse-pointer-preventdefault.html +++ b/tests/wpt/tests/pointerevents/compat/pointerevent_mouse-pointer-preventdefault.html @@ -1,143 +1,117 @@ +Effect of pointer event prevent-default on compat mouse event - + -

Verifies the effect of pointer event prevent-default on following pointer & mouse events.

-
+
+
+ +
+
diff --git a/tests/wpt/tests/pointerevents/pointerevent_bubble_ancestors_none.html b/tests/wpt/tests/pointerevents/pointerevent_bubble_ancestors_none.html new file mode 100644 index 00000000000..8908079cc8b --- /dev/null +++ b/tests/wpt/tests/pointerevents/pointerevent_bubble_ancestors_none.html @@ -0,0 +1,34 @@ + + + +PointerEvent: Events still bubble to ancestors with pointer-events: none + + + + + + + + +
+
+ +
+
+ + + diff --git a/tests/wpt/tests/pointerevents/pointerevent_bubble_display_none.html b/tests/wpt/tests/pointerevents/pointerevent_bubble_display_none.html new file mode 100644 index 00000000000..d4c6ba1db73 --- /dev/null +++ b/tests/wpt/tests/pointerevents/pointerevent_bubble_display_none.html @@ -0,0 +1,40 @@ + + + +PointerEvent: Events still bubble to ancestors with display: none + + + + + + + + +
+
+ +
+
+ + + diff --git a/tests/wpt/tests/pointerevents/pointerevent_bubble_mousedown_mouseup_different_target.html b/tests/wpt/tests/pointerevents/pointerevent_bubble_mousedown_mouseup_different_target.html new file mode 100644 index 00000000000..c504e0df435 --- /dev/null +++ b/tests/wpt/tests/pointerevents/pointerevent_bubble_mousedown_mouseup_different_target.html @@ -0,0 +1,50 @@ + + + +PointerEvent: Events still bubble to ancestors with mousedown causes mouseup to be a different target + + + + + + + + + +
+
+ +
+
+ + + diff --git a/tests/wpt/tests/pointerevents/pointerevent_pointercapture_in_frame.html b/tests/wpt/tests/pointerevents/pointerevent_pointercapture_in_frame.html index 9edacd7d234..14be00968fa 100644 --- a/tests/wpt/tests/pointerevents/pointerevent_pointercapture_in_frame.html +++ b/tests/wpt/tests/pointerevents/pointerevent_pointercapture_in_frame.html @@ -142,11 +142,9 @@ function run() { var watcher_promise = pointerdown_happened.then(()=>{ // For this test we're going to wait for both pointerup and lostpointercapture, // as pointerup fires on innerFrame on Windows (see crbug.com/1186788) - var watch_outer_frame_for_pointerup = new EventWatcher(t, document.getElementById('outerFrame'), ["pointerup"], eventTimeout()); - return watch_outer_frame_for_pointerup.wait_for(["pointerup"]).then(()=>{ - var watch_outer_frame_for_lostpointercapture = new EventWatcher(t, document.getElementById('outerFrame'), ["lostpointercapture"], eventTimeout()); - return watch_outer_frame_for_lostpointercapture.wait_for(["lostpointercapture"]); - }); + var watch_outer_frame_for_pointerup_and_lostpointercapture = + new EventWatcher(t, document.getElementById('outerFrame'), ["pointerup", "lostpointercapture"], eventTimeout()); + return watch_outer_frame_for_pointerup_and_lostpointercapture.wait_for(["pointerup", "lostpointercapture"]); }); await new test_driver.Actions() diff --git a/tests/wpt/tests/pointerevents/pointerevent_support.js b/tests/wpt/tests/pointerevents/pointerevent_support.js index d65194db566..56accf85610 100644 --- a/tests/wpt/tests/pointerevents/pointerevent_support.js +++ b/tests/wpt/tests/pointerevents/pointerevent_support.js @@ -475,33 +475,56 @@ function arePointerEventsBeforeCompatMouseEvents(events) { // Returns a |Promise| that gets resolved with the event object when |target| // receives an event of type |event_type|. -function getEvent(event_type, target) { +// +// The optional |test| parameter adds event handler cleanup for the case |test| +// terminates before the event is received. +function getEvent(event_type, target, test) { return new Promise(resolve => { - target.addEventListener(event_type, e => resolve(e), { once: true }); + const listener = e => resolve(e); + target.addEventListener(event_type, listener, { once: true }); + if (test) { + test.add_cleanup(() => + target.removeEventListener(event_type, listener, { once: true })); + } }); } // Returns a |Promise| that gets resolved with |event.data| when |window| -// receives from |source| a "message" event whose |event.data.type| matches the string -// |message_data_type|. -function getMessageData(message_data_type, source) { +// receives from |source| a "message" event whose |event.data.type| matches the +// string |message_data_type|. +// +// The optional |test| parameter adds event handler cleanup for the case |test| +// terminates before a matching event is received. +function getMessageData(message_data_type, source, test) { return new Promise(resolve => { - function waitAndRemove(e) { + const listener = e => { if (e.source != source || !e.data || e.data.type != message_data_type) return; - window.removeEventListener("message", waitAndRemove); + window.removeEventListener("message", listener); resolve(e.data); } - window.addEventListener("message", waitAndRemove); + + window.addEventListener("message", listener); + if (test) { + test.add_cleanup(() => + window.removeEventListener("message", listener)); + } }); } -function preventDefaultPointerdownOnce(target) { - return new Promise( - (resolve) => { - target.addEventListener("pointerdown", (event) => { - event.preventDefault(); - resolve(); - }, { once: true }); - }); +// The optional |test| parameter adds event handler cleanup for the case |test| +// terminates before the event is received. +function preventDefaultPointerdownOnce(target, test) { + return new Promise((resolve) => { + const listener = e => { + e.preventDefault(); + resolve(); + } + + target.addEventListener("pointerdown", listener, { once: true }); + if (test) { + test.add_cleanup(() => + target.removeEventListener("pointerdown", listener, { once: true })); + } + }); } diff --git a/tests/wpt/tests/preload/modulepreload-sri-importmap.html b/tests/wpt/tests/preload/modulepreload-sri-importmap.html new file mode 100644 index 00000000000..d633fe1d51e --- /dev/null +++ b/tests/wpt/tests/preload/modulepreload-sri-importmap.html @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/tests/wpt/tests/private-aggregation/protected-audience-surface-failure.https.html b/tests/wpt/tests/private-aggregation/protected-audience-surface-failure.https.html new file mode 100644 index 00000000000..800bf503cf3 --- /dev/null +++ b/tests/wpt/tests/private-aggregation/protected-audience-surface-failure.https.html @@ -0,0 +1,69 @@ + + + + + + + + + diff --git a/tests/wpt/tests/private-aggregation/protected-audience-surface-success.https.html b/tests/wpt/tests/private-aggregation/protected-audience-surface-success.https.html index 417a6b145d6..b688d76c7f8 100644 --- a/tests/wpt/tests/private-aggregation/protected-audience-surface-success.https.html +++ b/tests/wpt/tests/private-aggregation/protected-audience-surface-success.https.html @@ -5,85 +5,93 @@ - +promise_test(async test => { + const uuid = generateUuid(); + const contribution = '{ bucket: 1n, value: 0 }'; + + await runReportTest(test, uuid, + { reportResult: + `privateAggregation.contributeToHistogram(${contribution}); + sendReportTo('${createWritingUrl(uuid)}');` + }, + /*expectedNumReports=*/ 1); +}, 'contributeToHistogram() with zero value in reportResult()'); + +promise_test(async test => { + const uuid = generateUuid(); + const contribution = '{ bucket: 1n, value: 2.3 }'; + + await runReportTest(test, uuid, + { generateBid: + `privateAggregation.contributeToHistogram(${contribution}); + forDebuggingOnly.reportAdAuctionWin('${createWritingUrl(uuid)}');` + }, + /*expectedNumReports=*/ 1); +}, 'contributeToHistogram() with non-integer value in generateBid()'); + + diff --git a/tests/wpt/tests/private-aggregation/resources/protected-audience-helper-module.js b/tests/wpt/tests/private-aggregation/resources/protected-audience-helper-module.js index 0cf9e89e7b0..abec6408862 100644 --- a/tests/wpt/tests/private-aggregation/resources/protected-audience-helper-module.js +++ b/tests/wpt/tests/private-aggregation/resources/protected-audience-helper-module.js @@ -4,22 +4,68 @@ "use strict;" -// Directory of fledge -const FLEDGE_DIR = '/fledge/tentative/'; const FULL_URL = window.location.href; let BASE_URL = FULL_URL.substring(0, FULL_URL.lastIndexOf('/') + 1) const BASE_PATH = (new URL(BASE_URL)).pathname; const DEFAULT_INTEREST_GROUP_NAME = 'default name'; -// Use python source files under fledge directory -BASE_URL = BASE_URL.replace(BASE_PATH, FLEDGE_DIR); +// Use python script files under fledge directory +const FLEDGE_DIR = '/fledge/tentative/'; +const FLEDGE_BASE_URL = BASE_URL.replace(BASE_PATH, FLEDGE_DIR); + +// Sleep method that waits for prescribed number of milliseconds. +const sleep = ms => new Promise(resolve => step_timeout(resolve, ms)); // Generates a UUID by token. -function generateUuid(test) { +function generateUuid() { let uuid = token(); return uuid; } +// Creates a URL that will be sent to the handler. +// `uuid` is used to identify the stash shard to use. +// `operate` is used to set action as write or read. +// `report` is used to carry the message for write requests. +function createReportingUrl(uuid, operation, report = 'default-report') { + let url = new URL(`${window.location.origin}${BASE_PATH}resources/protected_audience_event_level_report_handler.py`); + url.searchParams.append('uuid', uuid); + url.searchParams.append('operation', operation); + + if (report) + url.searchParams.append('report', report); + + return url.toString(); +} + +function createWritingUrl(uuid, report) { + return createReportingUrl(uuid, 'write'); +} + +function createReadingUrl(uuid) { + return createReportingUrl(uuid, 'read'); +} + +async function waitForObservedReports(uuid, expectedNumReports, timeout = 1000 /*ms*/) { + expectedReports = Array(expectedNumReports).fill('default-report'); + const reportUrl = createReadingUrl(uuid); + let startTime = performance.now(); + + while (performance.now() - startTime < timeout) { + let response = await fetch(reportUrl, { credentials: 'omit', mode: 'cors' }); + let actualReports = await response.json(); + + // If expected number of reports have been observed, compare with list of + // all expected reports and exit. + if (actualReports.length == expectedReports.length) { + assert_array_equals(actualReports.sort(), expectedReports); + return; + } + + await sleep(/*ms=*/ 100); + } + assert_unreached("Report fetching timed out: " + uuid); +} + // Creates a bidding script with the provided code in the method bodies. The // bidding script's generateBid() method will return a bid of 9 for the first // ad, after the passed in code in the "generateBid" input argument has been @@ -27,7 +73,7 @@ function generateUuid(test) { // // The default reportWin() method is empty. function createBiddingScriptUrl(params = {}) { - let url = new URL(`${BASE_URL}resources/bidding-logic.sub.py`); + let url = new URL(`${FLEDGE_BASE_URL}resources/bidding-logic.sub.py`); if (params.generateBid) url.searchParams.append('generateBid', params.generateBid); if (params.reportWin) @@ -47,7 +93,7 @@ function createBiddingScriptUrl(params = {}) { // // The default reportResult() method is empty. function createDecisionScriptUrl(uuid, params = {}) { - let url = new URL(`${BASE_URL}resources/decision-logic.sub.py`); + let url = new URL(`${FLEDGE_BASE_URL}resources/decision-logic.sub.py`); url.searchParams.append('uuid', uuid); if (params.scoreAd) url.searchParams.append('scoreAd', params.scoreAd); @@ -63,7 +109,7 @@ function createDecisionScriptUrl(uuid, params = {}) { // by the decision logic script before accepting a bid. "uuid" is expected to // be last. function createRenderUrl(uuid, script) { - let url = new URL(`${BASE_URL}resources/fenced-frame.sub.py`); + let url = new URL(`${FLEDGE_BASE_URL}resources/fenced-frame.sub.py`); if (script) url.searchParams.append('script', script); url.searchParams.append('uuid', uuid); @@ -132,23 +178,24 @@ async function runBasicFledgeTestExpectingNoWinner(test, testConfig) { } // Test helper for report phase of auctions that lets the caller specify the -// body of reportResult() and reportWin(). -// -// Passing worklets in null will cause the test fail. -// -// Null worklets test cases are handled under -// fledge. -async function runReportTest(test, uuid, reportResult, reportWin) { - assert_not_equals(reportResult, null) - assert_not_equals(reportWin, null) +// body of scoreAd(), reportResult(), generateBid() and reportWin(). +async function runReportTest(test, uuid, codeToInsert, expectedNumReports = 0) { + let generateBid = codeToInsert.generateBid; + let scoreAd = codeToInsert.scoreAd; + let reportWin = codeToInsert.reportWin; + let reportResult = codeToInsert.reportResult; let interestGroupOverrides = - { biddingLogicUrl: createBiddingScriptUrl({ reportWin }) }; + { biddingLogicUrl: createBiddingScriptUrl({ generateBid, reportWin }) }; await joinInterestGroup(test, uuid, interestGroupOverrides); await runBasicFledgeAuctionAndNavigate( test, uuid, { decisionLogicUrl: createDecisionScriptUrl( - uuid, { reportResult }) + uuid, { scoreAd, reportResult }) }); + + if (expectedNumReports) { + await waitForObservedReports(uuid, expectedNumReports); + } } diff --git a/tests/wpt/tests/private-aggregation/resources/protected_audience_event_level_report_handler.py b/tests/wpt/tests/private-aggregation/resources/protected_audience_event_level_report_handler.py new file mode 100644 index 00000000000..c77b9e19c8c --- /dev/null +++ b/tests/wpt/tests/private-aggregation/resources/protected_audience_event_level_report_handler.py @@ -0,0 +1,43 @@ +"""Handler to receive message from protected audience worklets, such as +sendReportTo() and forDebuggingOnly.reportAdAuctionWin(). + +This handler only supports read and write operations from the URL parameters. +""" + +import json +from typing import List, Tuple + +from wptserve.request import Request +from wptserve.response import Response + +Header = Tuple[str, str] +ResponseTuple = Tuple[int, List[Header], str] + +def main(request: Request, response: Response) -> ResponseTuple: + operation = request.GET.first(b"operation").decode('utf-8') + uuid = request.GET.first(b"uuid").decode('utf-8') + if operation == "read": + with request.server.stash.lock: + stash_reports = request.server.stash.take(key=uuid) + if stash_reports is None: + stash_reports = [] + else: + request.server.stash.put(key=uuid, value=stash_reports) + + return 200, [("Content-Type", "application/json")], json.dumps(stash_reports) + elif operation == "write": + report = request.GET.first(b"report").decode('utf-8') + + if report is None: + return 400, [("Content-Type", "application/json")], json.dumps({'error': 'Missing report.', 'uuid': uuid}) + + with request.server.stash.lock: + stash_reports = request.server.stash.take(key=uuid) + if stash_reports is None: + stash_reports = [] + stash_reports.append(report) + request.server.stash.put(key=uuid, value=stash_reports) + + return 200, [("Content-Type", "application/json")], json.dumps({'msg': 'Recorded report ' + uuid}) + else: + return 400, [("Content-Type", "application/json")], json.dumps({'error': 'Invalid operation.', 'uuid': uuid}) diff --git a/tests/wpt/tests/private-aggregation/resources/reports.py b/tests/wpt/tests/private-aggregation/resources/reports.py index 2bb151afd78..0f6fd8255af 100644 --- a/tests/wpt/tests/private-aggregation/resources/reports.py +++ b/tests/wpt/tests/private-aggregation/resources/reports.py @@ -1,6 +1,6 @@ """Methods for the report-shared-storage and report-protected-audience endpoints (including debug endpoints)""" import json -from typing import List, Optional, Tuple +from typing import List, Optional, Tuple, Union import urllib.parse from wptserve.request import Request @@ -13,7 +13,7 @@ REPORTS_KEY = "9d285691-4386-45ad-9a79-d2ec29557bfe" CLEAR_STASH_AS_BYTES = isomorphic_encode("clear_stash") Header = Tuple[str, str] -Status = Tuple[int, str] +Status = Union[int, Tuple[int, str]] Response = Tuple[Status, List[Header], str] def get_request_origin(request: Request) -> str: diff --git a/tests/wpt/tests/resource-timing/resources/get-resourceID.js b/tests/wpt/tests/resource-timing/resources/get-resourceID.js new file mode 100644 index 00000000000..3fe499226a4 --- /dev/null +++ b/tests/wpt/tests/resource-timing/resources/get-resourceID.js @@ -0,0 +1,30 @@ +function getResourceID(resourceName) { + return new Promise((resolve) => { + const observer = new PerformanceObserver((list) => { + const entries = list.getEntriesByType("resource"); + for (const entry of entries) { + if (entry.name.endsWith(resourceName)) { + observer.disconnect(); + resolve(`${entry.name}/${entry.startTime}`); + return; + } + } + }); + observer.observe({ entryTypes: ["resource"] }); + }); +} + +function getDocumentResourceID() { + return new Promise((resolve) => { + const observer = new PerformanceObserver((list) => { + const entries = list.getEntriesByType("navigation"); + if (entries.length > 0) { + observer.disconnect(); + const [entry] = entries; + const { name, startTime } = entry; + resolve(`${name}/${startTime}`); + } + }); + observer.observe({ entryTypes: ["navigation"] }); + }); +} diff --git a/tests/wpt/tests/resource-timing/resources/loadingResources.js b/tests/wpt/tests/resource-timing/resources/loadingResources.js new file mode 100644 index 00000000000..e5d5d71982a --- /dev/null +++ b/tests/wpt/tests/resource-timing/resources/loadingResources.js @@ -0,0 +1,21 @@ +//Fetching the Stylesheet +var link = document.createElement("link"); +link.rel = "stylesheet"; +link.href = "../resources/empty_style.css"; +document.head.appendChild(link); + +// Fetching an image +var img = document.createElement("img"); +img.src = "/images/blue.png"; +img.alt = "Sample Image for testing initiator Attribute"; +document.body.appendChild(img); + +//Inserting a html document in an iframe +var iframe = document.createElement("iframe"); +iframe.src = "../resources/green.html"; +document.body.appendChild(iframe); + +// Inserting a script element +var script = document.createElement("script"); +script.src = "../resources/empty.js"; +document.body.appendChild(script); diff --git a/tests/wpt/tests/resource-timing/resources/test-initiator.js b/tests/wpt/tests/resource-timing/resources/test-initiator.js new file mode 100644 index 00000000000..f839b463c56 --- /dev/null +++ b/tests/wpt/tests/resource-timing/resources/test-initiator.js @@ -0,0 +1,16 @@ +function testResourceInitiator(resourceName, expectedInitiator) { + return new Promise(resolve => { + const observer = new PerformanceObserver(list => { + const entries = list.getEntriesByType('resource'); + for (const entry of entries) { + if (entry.name.endsWith(resourceName)) { + observer.disconnect(); + assert_equals(entry.initiator, expectedInitiator, `Test ${resourceName} initiator`); + resolve(); + return; + } + } + }); + observer.observe({entryTypes: ['resource']}); + }); +} \ No newline at end of file diff --git a/tests/wpt/tests/resource-timing/tentative/document-initiated.html b/tests/wpt/tests/resource-timing/tentative/document-initiated.html new file mode 100644 index 00000000000..eea2bb2761d --- /dev/null +++ b/tests/wpt/tests/resource-timing/tentative/document-initiated.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Sample Image for testing initiator Attribute + + + + + diff --git a/tests/wpt/tests/resource-timing/tentative/script-initiated.html b/tests/wpt/tests/resource-timing/tentative/script-initiated.html new file mode 100644 index 00000000000..d6f3d1a3203 --- /dev/null +++ b/tests/wpt/tests/resource-timing/tentative/script-initiated.html @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/resource-timing/tentative/stylesheet-initiated.html b/tests/wpt/tests/resource-timing/tentative/stylesheet-initiated.html new file mode 100644 index 00000000000..d12e3d193d0 --- /dev/null +++ b/tests/wpt/tests/resource-timing/tentative/stylesheet-initiated.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/resources/test/tox.ini b/tests/wpt/tests/resources/test/tox.ini index 4fbeb67fb52..12013a1a705 100644 --- a/tests/wpt/tests/resources/test/tox.ini +++ b/tests/wpt/tests/resources/test/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py37,py38,py39,py310 +envlist = py37,py38,py39,py310,py311 skipsdist=True [testenv] diff --git a/tests/wpt/tests/scroll-animations/css/pseudo-on-scroller.html b/tests/wpt/tests/scroll-animations/css/pseudo-on-scroller.html new file mode 100644 index 00000000000..8dd49ce4d8a --- /dev/null +++ b/tests/wpt/tests/scroll-animations/css/pseudo-on-scroller.html @@ -0,0 +1,55 @@ + + + + + + Animating pseduo-element on scroller + + + + + + + +
+
+ + + diff --git a/tests/wpt/tests/scroll-animations/scroll-timelines/custom-property-ref.html b/tests/wpt/tests/scroll-animations/scroll-timelines/custom-property-ref.html new file mode 100644 index 00000000000..66e29cde650 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/scroll-timelines/custom-property-ref.html @@ -0,0 +1,34 @@ + + + + + + + + + +
+
+ + + diff --git a/tests/wpt/tests/scroll-animations/scroll-timelines/custom-property.html b/tests/wpt/tests/scroll-animations/scroll-timelines/custom-property.html new file mode 100644 index 00000000000..d6fdda67522 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/scroll-timelines/custom-property.html @@ -0,0 +1,46 @@ + + + + + + + + + + +
+
+ + + diff --git a/tests/wpt/tests/scroll-animations/view-timelines/inline-subject.html b/tests/wpt/tests/scroll-animations/view-timelines/inline-subject.html new file mode 100644 index 00000000000..6b1d216dea1 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/view-timelines/inline-subject.html @@ -0,0 +1,50 @@ + + + + + + View Timeline attached to an SVG graphics element + + + +
+
+

Hello world

+
+
+ + + + + + diff --git a/tests/wpt/tests/scroll-animations/view-timelines/svg-graphics-element.html b/tests/wpt/tests/scroll-animations/view-timelines/svg-graphics-element.html new file mode 100644 index 00000000000..5f54646b6c3 --- /dev/null +++ b/tests/wpt/tests/scroll-animations/view-timelines/svg-graphics-element.html @@ -0,0 +1,40 @@ + + + + + + View Timeline attached to an SVG graphics element + + + + + + + + + + + + diff --git a/tests/wpt/tests/service-workers/service-worker/fetch-error.https.html b/tests/wpt/tests/service-workers/service-worker/fetch-error.https.html index ca2f884a9b3..e9fdf574312 100644 --- a/tests/wpt/tests/service-workers/service-worker/fetch-error.https.html +++ b/tests/wpt/tests/service-workers/service-worker/fetch-error.https.html @@ -21,12 +21,8 @@ promise_test(async (test) => { const iframe = await with_iframe(scope); test.add_cleanup(() => iframe.remove()); const response = await iframe.contentWindow.fetch("fetch-error-test"); - try { - await response.text(); - assert_unreached(); - } catch (error) { - assert_true(error.message.includes("Sorry")); - } + return promise_rejects_js(test, iframe.contentWindow.TypeError, + response.text(), 'text() should reject'); }, "Make sure a load that makes progress does not time out"); diff --git a/tests/wpt/tests/service-workers/service-worker/navigation-redirect.https.html b/tests/wpt/tests/service-workers/service-worker/navigation-redirect.https.html index d7d3d5259a4..a87de569316 100644 --- a/tests/wpt/tests/service-workers/service-worker/navigation-redirect.https.html +++ b/tests/wpt/tests/service-workers/service-worker/navigation-redirect.https.html @@ -1,8 +1,8 @@ Service Worker: Navigation redirection - - + + diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/README.md b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/README.md new file mode 100644 index 00000000000..8826b3c7827 --- /dev/null +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/README.md @@ -0,0 +1,4 @@ +A test stuite for the ServiceWorker Static Routing API. + +WICG proposal: https://github.com/WICG/proposals/issues/102 +Specification PR: https://github.com/w3c/ServiceWorker/pull/1686 diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/direct.txt b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/direct.txt new file mode 100644 index 00000000000..f3d9861c137 --- /dev/null +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/direct.txt @@ -0,0 +1 @@ +Network diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/simple.html b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/simple.html new file mode 100644 index 00000000000..0c3e3e78707 --- /dev/null +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/simple.html @@ -0,0 +1,3 @@ + +Simple +Here's a simple html file. diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/static-router-sw.js b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/static-router-sw.js new file mode 100644 index 00000000000..deb7a3e0b47 --- /dev/null +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/static-router-sw.js @@ -0,0 +1,19 @@ +'use strict'; + +self.addEventListener('install', e => { + e.registerRouter({ + condition: {urlPattern: "*.txt"}, + source: "network" + }); + self.skipWaiting(); +}); + +self.addEventListener('activate', e => { + e.waitUntil(clients.claim()); +}); + +self.addEventListener('fetch', function(event) { + const url = new URL(event.request.url); + const nonce = url.searchParams.get('nonce'); + event.respondWith(new Response(nonce)); +}); diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/test-helpers.sub.js b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/test-helpers.sub.js new file mode 100644 index 00000000000..64a7f7d24fd --- /dev/null +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/test-helpers.sub.js @@ -0,0 +1,303 @@ +// Copied from +// service-workers/service-worker/resources/testharness-helpers.js to be used under tentative. + +// Adapter for testharness.js-style tests with Service Workers + +/** + * @param options an object that represents RegistrationOptions except for scope. + * @param options.type a WorkerType. + * @param options.updateViaCache a ServiceWorkerUpdateViaCache. + * @see https://w3c.github.io/ServiceWorker/#dictdef-registrationoptions + */ +function service_worker_unregister_and_register(test, url, scope, options) { + if (!scope || scope.length == 0) + return Promise.reject(new Error('tests must define a scope')); + + if (options && options.scope) + return Promise.reject(new Error('scope must not be passed in options')); + + options = Object.assign({ scope: scope }, options); + return service_worker_unregister(test, scope) + .then(function() { + return navigator.serviceWorker.register(url, options); + }) + .catch(unreached_rejection(test, + 'unregister and register should not fail')); +} + +// This unregisters the registration that precisely matches scope. Use this +// when unregistering by scope. If no registration is found, it just resolves. +function service_worker_unregister(test, scope) { + var absoluteScope = (new URL(scope, window.location).href); + return navigator.serviceWorker.getRegistration(scope) + .then(function(registration) { + if (registration && registration.scope === absoluteScope) + return registration.unregister(); + }) + .catch(unreached_rejection(test, 'unregister should not fail')); +} + +function service_worker_unregister_and_done(test, scope) { + return service_worker_unregister(test, scope) + .then(test.done.bind(test)); +} + +function unreached_fulfillment(test, prefix) { + return test.step_func(function(result) { + var error_prefix = prefix || 'unexpected fulfillment'; + assert_unreached(error_prefix + ': ' + result); + }); +} + +// Rejection-specific helper that provides more details +function unreached_rejection(test, prefix) { + return test.step_func(function(error) { + var reason = error.message || error.name || error; + var error_prefix = prefix || 'unexpected rejection'; + assert_unreached(error_prefix + ': ' + reason); + }); +} + +/** + * Adds an iframe to the document and returns a promise that resolves to the + * iframe when it finishes loading. The caller is responsible for removing the + * iframe later if needed. + * + * @param {string} url + * @returns {HTMLIFrameElement} + */ +function with_iframe(url) { + return new Promise(function(resolve) { + var frame = document.createElement('iframe'); + frame.className = 'test-iframe'; + frame.src = url; + frame.onload = function() { resolve(frame); }; + document.body.appendChild(frame); + }); +} + +function normalizeURL(url) { + return new URL(url, self.location).toString().replace(/#.*$/, ''); +} + +function wait_for_update(test, registration) { + if (!registration || registration.unregister == undefined) { + return Promise.reject(new Error( + 'wait_for_update must be passed a ServiceWorkerRegistration')); + } + + return new Promise(test.step_func(function(resolve) { + var handler = test.step_func(function() { + registration.removeEventListener('updatefound', handler); + resolve(registration.installing); + }); + registration.addEventListener('updatefound', handler); + })); +} + +// Return true if |state_a| is more advanced than |state_b|. +function is_state_advanced(state_a, state_b) { + if (state_b === 'installing') { + switch (state_a) { + case 'installed': + case 'activating': + case 'activated': + case 'redundant': + return true; + } + } + + if (state_b === 'installed') { + switch (state_a) { + case 'activating': + case 'activated': + case 'redundant': + return true; + } + } + + if (state_b === 'activating') { + switch (state_a) { + case 'activated': + case 'redundant': + return true; + } + } + + if (state_b === 'activated') { + switch (state_a) { + case 'redundant': + return true; + } + } + return false; +} + +function wait_for_state(test, worker, state) { + if (!worker || worker.state == undefined) { + return Promise.reject(new Error( + 'wait_for_state needs a ServiceWorker object to be passed.')); + } + if (worker.state === state) + return Promise.resolve(state); + + if (is_state_advanced(worker.state, state)) { + return Promise.reject(new Error( + `Waiting for ${state} but the worker is already ${worker.state}.`)); + } + return new Promise(test.step_func(function(resolve, reject) { + worker.addEventListener('statechange', test.step_func(function() { + if (worker.state === state) + resolve(state); + + if (is_state_advanced(worker.state, state)) { + reject(new Error( + `The state of the worker becomes ${worker.state} while waiting` + + `for ${state}.`)); + } + })); + })); +} + +// Declare a test that runs entirely in the ServiceWorkerGlobalScope. The |url| +// is the service worker script URL. This function: +// - Instantiates a new test with the description specified in |description|. +// The test will succeed if the specified service worker can be successfully +// registered and installed. +// - Creates a new ServiceWorker registration with a scope unique to the current +// document URL. Note that this doesn't allow more than one +// service_worker_test() to be run from the same document. +// - Waits for the new worker to begin installing. +// - Imports tests results from tests running inside the ServiceWorker. +function service_worker_test(url, description) { + // If the document URL is https://example.com/document and the script URL is + // https://example.com/script/worker.js, then the scope would be + // https://example.com/script/scope/document. + var scope = new URL('scope' + window.location.pathname, + new URL(url, window.location)).toString(); + promise_test(function(test) { + return service_worker_unregister_and_register(test, url, scope) + .then(function(registration) { + add_completion_callback(function() { + registration.unregister(); + }); + return wait_for_update(test, registration) + .then(function(worker) { + return fetch_tests_from_worker(worker); + }); + }); + }, description); +} + +function base_path() { + return location.pathname.replace(/\/[^\/]*$/, '/'); +} + +function test_login(test, origin, username, password, cookie) { + return new Promise(function(resolve, reject) { + with_iframe( + origin + base_path() + + 'resources/fetch-access-control-login.html') + .then(test.step_func(function(frame) { + var channel = new MessageChannel(); + channel.port1.onmessage = test.step_func(function() { + frame.remove(); + resolve(); + }); + frame.contentWindow.postMessage( + {username: username, password: password, cookie: cookie}, + origin, [channel.port2]); + })); + }); +} + +function test_websocket(test, frame, url) { + return new Promise(function(resolve, reject) { + var ws = new frame.contentWindow.WebSocket(url, ['echo', 'chat']); + var openCalled = false; + ws.addEventListener('open', test.step_func(function(e) { + assert_equals(ws.readyState, 1, "The WebSocket should be open"); + openCalled = true; + ws.close(); + }), true); + + ws.addEventListener('close', test.step_func(function(e) { + assert_true(openCalled, "The WebSocket should be closed after being opened"); + resolve(); + }), true); + + ws.addEventListener('error', reject); + }); +} + +function login_https(test) { + var host_info = get_host_info(); + return test_login(test, host_info.HTTPS_REMOTE_ORIGIN, + 'username1s', 'password1s', 'cookie1') + .then(function() { + return test_login(test, host_info.HTTPS_ORIGIN, + 'username2s', 'password2s', 'cookie2'); + }); +} + +function websocket(test, frame) { + return test_websocket(test, frame, get_websocket_url()); +} + +function get_websocket_url() { + return 'wss://{{host}}:{{ports[wss][0]}}/echo'; +} + +// The navigator.serviceWorker.register() method guarantees that the newly +// installing worker is available as registration.installing when its promise +// resolves. However some tests test installation using a element where +// it is possible for the installing worker to have already become the waiting +// or active worker. So this method is used to get the newest worker when these +// tests need access to the ServiceWorker itself. +function get_newest_worker(registration) { + if (registration.installing) + return registration.installing; + if (registration.waiting) + return registration.waiting; + if (registration.active) + return registration.active; +} + +function register_using_link(script, options) { + var scope = options.scope; + var link = document.createElement('link'); + link.setAttribute('rel', 'serviceworker'); + link.setAttribute('href', script); + link.setAttribute('scope', scope); + document.getElementsByTagName('head')[0].appendChild(link); + return new Promise(function(resolve, reject) { + link.onload = resolve; + link.onerror = reject; + }) + .then(() => navigator.serviceWorker.getRegistration(scope)); +} + +function with_sandboxed_iframe(url, sandbox) { + return new Promise(function(resolve) { + var frame = document.createElement('iframe'); + frame.sandbox = sandbox; + frame.src = url; + frame.onload = function() { resolve(frame); }; + document.body.appendChild(frame); + }); +} + +// Registers, waits for activation, then unregisters on a sample scope. +// +// This can be used to wait for a period of time needed to register, +// activate, and then unregister a service worker. When checking that +// certain behavior does *NOT* happen, this is preferable to using an +// arbitrary delay. +async function wait_for_activation_on_sample_scope(t, window_or_workerglobalscope) { + const script = '/service-workers/service-worker/resources/empty-worker.js'; + const scope = 'resources/there/is/no/there/there?' + Date.now(); + let registration = await window_or_workerglobalscope.navigator.serviceWorker.register(script, { scope }); + await wait_for_state(t, registration.installing, 'activated'); + await registration.unregister(); +} + diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-subresource.https.html b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-subresource.https.html new file mode 100644 index 00000000000..721c2797603 --- /dev/null +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-subresource.https.html @@ -0,0 +1,48 @@ + + +Static Router: simply skip fetch handler if pattern matches + + + + + + diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/resources/focus-utils.js b/tests/wpt/tests/shadow-dom/focus-navigation/resources/focus-utils.js index c23581a15ec..0cd4fd26f49 100644 --- a/tests/wpt/tests/shadow-dom/focus-navigation/resources/focus-utils.js +++ b/tests/wpt/tests/shadow-dom/focus-navigation/resources/focus-utils.js @@ -1,10 +1,8 @@ 'use strict'; -async function navigateFocusForward() { - return new test_driver.Actions() - .keyDown('\uE004') - .keyUp('\uE004') - .send(); +function navigateFocusForward() { + // TAB = '\ue004' + return test_driver.send_keys(document.body, "\ue004"); } async function navigateFocusBackward() { @@ -150,4 +148,4 @@ async function assert_focus_navigation_forward_with_shadow_root(elements) { async function assert_focus_navigation_backward_with_shadow_root(elements) { return assert_focus_navigation_elements_with_shadow_root(elements, 'backward'); -} \ No newline at end of file +} diff --git a/tests/wpt/tests/shared-storage/blob-module-script-url-invalid-mime-type.tentative.https.sub.html b/tests/wpt/tests/shared-storage/blob-module-script-url-invalid-mime-type.tentative.https.sub.html new file mode 100644 index 00000000000..116facbcd5f --- /dev/null +++ b/tests/wpt/tests/shared-storage/blob-module-script-url-invalid-mime-type.tentative.https.sub.html @@ -0,0 +1,35 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/blob-module-script-url.tentative.https.sub.html b/tests/wpt/tests/shared-storage/blob-module-script-url.tentative.https.sub.html new file mode 100644 index 00000000000..53e47a0c874 --- /dev/null +++ b/tests/wpt/tests/shared-storage/blob-module-script-url.tentative.https.sub.html @@ -0,0 +1,48 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/resources/set-key-value.https.html b/tests/wpt/tests/shared-storage/resources/set-key-value.https.html new file mode 100644 index 00000000000..ba0a24ceb23 --- /dev/null +++ b/tests/wpt/tests/shared-storage/resources/set-key-value.https.html @@ -0,0 +1,20 @@ + + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/resources/shared-storage-write.py b/tests/wpt/tests/shared-storage/resources/shared-storage-write.py new file mode 100644 index 00000000000..8770b11f09d --- /dev/null +++ b/tests/wpt/tests/shared-storage/resources/shared-storage-write.py @@ -0,0 +1,16 @@ +from wptserve.utils import isomorphic_decode +from wptserve.utils import isomorphic_encode +from urllib.parse import unquote + +def unescape_query_value(query_value_bytes): + return isomorphic_encode(unquote(isomorphic_decode(query_value_bytes))) + +def main(request, response): + writable_header = request.headers.get( + b"Shared-Storage-Writable", + b"NO_SHARED_STORAGE_WRITABLE_HEADER") + response.headers.append(b"Access-Control-Allow-Origin", b"*") + if writable_header == b"?1" and b'write' in request.GET: + write_header = unescape_query_value(request.GET[b'write']) + response.headers.append(b"Shared-Storage-Write", write_header) + response.content = writable_header diff --git a/tests/wpt/tests/shared-storage/resources/simple-module.js b/tests/wpt/tests/shared-storage/resources/simple-module.js index 5ebc149fd4a..968afed31b9 100644 --- a/tests/wpt/tests/shared-storage/resources/simple-module.js +++ b/tests/wpt/tests/shared-storage/resources/simple-module.js @@ -26,5 +26,18 @@ class VerifyKeyValue { } } +class VerifyKeyNotFound { + async run(urls, data) { + if (data && data.hasOwnProperty('expectedKey')) { + const value = await sharedStorage.get(data['expectedKey']); + if (typeof value === 'undefined') { + return 1; + } + } + return -1; + } +} + register('test-url-selection-operation', TestURLSelectionOperation); register('verify-key-value', VerifyKeyValue); +register('verify-key-not-found', VerifyKeyNotFound); diff --git a/tests/wpt/tests/shared-storage/resources/util.js b/tests/wpt/tests/shared-storage/resources/util.js index a41b4de3a59..b8997e080dd 100644 --- a/tests/wpt/tests/shared-storage/resources/util.js +++ b/tests/wpt/tests/shared-storage/resources/util.js @@ -1,3 +1,5 @@ +// META: script=/common/utils.js +// META: script=/fenced-frame/resources/utils.js 'use strict'; async function IsSharedStorageSelectUrlAllowedByPermissionsPolicy() { @@ -113,3 +115,72 @@ function validateSelectURLResult(result, resolve_to_config) { return result.startsWith('urn:uuid:'); } + +function updateUrlToUseNewOrigin(url, newOriginString) { + const origin = url.origin; + return new URL(url.toString().replace(origin, newOriginString)); +} + +function appendExpectedKeyAndValue(url, expectedKey, expectedValue) { + url.searchParams.append('expectedKey', expectedKey); + url.searchParams.append('expectedValue', expectedValue); + return url; +} + +function parseExpectedKeyAndValueData() { + const url = new URL(location.href); + const key = url.searchParams.get('expectedKey'); + const value = url.searchParams.get('expectedValue'); + return {'expectedKey': key, 'expectedValue': value}; +} + +function appendExpectedKey(url, expectedKey) { + url.searchParams.append('expectedKey', expectedKey); + return url; +} + +function parseExpectedKeyData() { + const url = new URL(location.href); + const key = url.searchParams.get('expectedKey'); + return {'expectedKey': key}; +} + +async function verifyKeyValueForOrigin(key, value, origin) { + const outerKey = token(); + const innerKey = token(); + let iframeUrl = generateURL( + '/shared-storage/resources/verify-key-value.https.html', + [outerKey, innerKey]); + iframeUrl = updateUrlToUseNewOrigin(iframeUrl, origin); + appendExpectedKeyAndValue(iframeUrl, key, value); + + attachIFrame(iframeUrl); + const result = await nextValueFromServer(outerKey); + assert_equals(result, 'verify_key_value_loaded'); +} + +async function verifyKeyNotFoundForOrigin(key, origin) { + const outerKey = token(); + const innerKey = token(); + let iframeUrl = generateURL( + '/shared-storage/resources/verify-key-not-found.https.html', + [outerKey, innerKey]); + iframeUrl = updateUrlToUseNewOrigin(iframeUrl, origin); + appendExpectedKey(iframeUrl, key); + + attachIFrame(iframeUrl); + const result = await nextValueFromServer(outerKey); + assert_equals(result, 'verify_key_not_found_loaded'); +} + +async function setKeyValueForOrigin(key, value, origin) { + const outerKey = token(); + let setIframeUrl = generateURL( + '/shared-storage/resources/set-key-value.https.html', [outerKey]); + setIframeUrl = updateUrlToUseNewOrigin(setIframeUrl, origin); + appendExpectedKeyAndValue(setIframeUrl, key, value); + + attachIFrame(setIframeUrl); + const result = await nextValueFromServer(outerKey); + assert_equals(result, 'set_key_value_loaded'); +} diff --git a/tests/wpt/tests/shared-storage/resources/verify-key-not-found.https.html b/tests/wpt/tests/shared-storage/resources/verify-key-not-found.https.html new file mode 100644 index 00000000000..f1c7919c19f --- /dev/null +++ b/tests/wpt/tests/shared-storage/resources/verify-key-not-found.https.html @@ -0,0 +1,34 @@ + + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/resources/verify-key-value.https.html b/tests/wpt/tests/shared-storage/resources/verify-key-value.https.html new file mode 100644 index 00000000000..20c46941049 --- /dev/null +++ b/tests/wpt/tests/shared-storage/resources/verify-key-value.https.html @@ -0,0 +1,34 @@ + + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-default.tentative.https.sub.html b/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-default.tentative.https.sub.html index 87fcdfe1870..5439df2a068 100644 --- a/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-default.tentative.https.sub.html +++ b/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-default.tentative.https.sub.html @@ -25,8 +25,5 @@ test_feature_availability('shared-storage', t, cross_origin_src, expect_feature_available_default); }, header + ' allows sharedStorage in cross-origin iframes.'); - - // TODO(crbug.com/1434529): Add tests with - // `fetch(, {sharedStorageWritable: true})`. diff --git a/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-none.tentative.https.sub.html b/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-none.tentative.https.sub.html index 1f64d9a538c..17a4bf1803c 100644 --- a/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-none.tentative.https.sub.html +++ b/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-none.tentative.https.sub.html @@ -25,8 +25,5 @@ test_feature_availability('shared-storage', t, cross_origin_src, expect_feature_unavailable_default); }, header + ' disallows sharedStorage in cross-origin iframes.'); - - // TODO(crbug.com/1434529): Add tests with - // `fetch(, {sharedStorageWritable: true})`. diff --git a/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-self.tentative.https.sub.html b/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-self.tentative.https.sub.html index d3787f3caa5..171325cdf8f 100644 --- a/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-self.tentative.https.sub.html +++ b/tests/wpt/tests/shared-storage/shared-storage-permissions-policy-self.tentative.https.sub.html @@ -25,8 +25,5 @@ test_feature_availability('shared-storage', t, cross_origin_src, expect_feature_unavailable_default); }, header + ' disallows sharedStorage in cross-origin iframes.'); - - // TODO(crbug.com/1434529): Add tests with - // `fetch(, {sharedStorageWritable: true})`, including redirects. diff --git a/tests/wpt/tests/shared-storage/shared-storage-writable-clear.tentative.https.sub.html b/tests/wpt/tests/shared-storage/shared-storage-writable-clear.tentative.https.sub.html new file mode 100644 index 00000000000..2d606d6bc17 --- /dev/null +++ b/tests/wpt/tests/shared-storage/shared-storage-writable-clear.tentative.https.sub.html @@ -0,0 +1,50 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/shared-storage-writable-delete.tentative.https.sub.html b/tests/wpt/tests/shared-storage/shared-storage-writable-delete.tentative.https.sub.html new file mode 100644 index 00000000000..fc7f2fb90ee --- /dev/null +++ b/tests/wpt/tests/shared-storage/shared-storage-writable-delete.tentative.https.sub.html @@ -0,0 +1,52 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/shared-storage-writable-insecure-context.tentative.http.sub.html b/tests/wpt/tests/shared-storage/shared-storage-writable-insecure-context.tentative.http.sub.html index 346321a41f4..debb6cf9c56 100644 --- a/tests/wpt/tests/shared-storage/shared-storage-writable-insecure-context.tentative.http.sub.html +++ b/tests/wpt/tests/shared-storage/shared-storage-writable-insecure-context.tentative.http.sub.html @@ -7,11 +7,13 @@ promise_test(async t => { try { - new Request('./resources/simple-module.js', {sharedStorageWritable: true}); + new Request('./resources/simple-module.js', + {sharedStorageWritable: true}); } catch (e) { assert_equals(e.name, 'TypeError'); - assert_equals(e.message, `Failed to construct 'Request': sharedStorageWritable: ` + - `sharedStorage operations are only available in secure contexts.`); + assert_equals(e.message, `Failed to construct 'Request': ` + + `sharedStorageWritable: sharedStorage operations ` + + `are only available in secure contexts.`); return; } assert_unreached("did not reject"); diff --git a/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-default.tentative.https.sub.html b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-default.tentative.https.sub.html new file mode 100644 index 00000000000..4dae771f3f9 --- /dev/null +++ b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-default.tentative.https.sub.html @@ -0,0 +1,64 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-none.tentative.https.sub.html b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-none.tentative.https.sub.html new file mode 100644 index 00000000000..7f9584e6146 --- /dev/null +++ b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-none.tentative.https.sub.html @@ -0,0 +1,33 @@ + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-none.tentative.https.sub.html.headers b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-none.tentative.https.sub.html.headers new file mode 100644 index 00000000000..9903f7c578d --- /dev/null +++ b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-none.tentative.https.sub.html.headers @@ -0,0 +1 @@ +Permissions-Policy: shared-storage=() diff --git a/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-self.tentative.https.sub.html b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-self.tentative.https.sub.html new file mode 100644 index 00000000000..ca5ae16eff2 --- /dev/null +++ b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-self.tentative.https.sub.html @@ -0,0 +1,63 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-self.tentative.https.sub.html.headers b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-self.tentative.https.sub.html.headers new file mode 100644 index 00000000000..36c95f2b087 --- /dev/null +++ b/tests/wpt/tests/shared-storage/shared-storage-writable-permissions-policy-self.tentative.https.sub.html.headers @@ -0,0 +1 @@ +Permissions-Policy: shared-storage=(self) diff --git a/tests/wpt/tests/shared-storage/shared-storage-writable-setters.tentative.https.sub.html b/tests/wpt/tests/shared-storage/shared-storage-writable-setters.tentative.https.sub.html new file mode 100644 index 00000000000..066bf174de0 --- /dev/null +++ b/tests/wpt/tests/shared-storage/shared-storage-writable-setters.tentative.https.sub.html @@ -0,0 +1,47 @@ + + + + + + + + + + diff --git a/tests/wpt/tests/soft-navigation-heuristics/dropped-entries.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/dropped-entries.tentative.html index a1db7218377..425f91a7c3c 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/dropped-entries.tentative.html +++ b/tests/wpt/tests/soft-navigation-heuristics/dropped-entries.tentative.html @@ -24,6 +24,9 @@ link: link, clicks: 52, extraValidations: async (entries, options)=>{ + if (!performance.softNavPaintMetricsSupported) { + return; + } const [paint_entries, paint_options] = await new Promise(resolve => { new PerformanceObserver((list, obs, options) => resolve([list.getEntries(), options])).observe( diff --git a/tests/wpt/tests/soft-navigation-heuristics/image-lcp-followed-by-two-image-softnavs-lcp.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/image-lcp-followed-by-two-image-softnavs-lcp.tentative.html index 1489ae1a94a..25151cdd79e 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/image-lcp-followed-by-two-image-softnavs-lcp.tentative.html +++ b/tests/wpt/tests/soft-navigation-heuristics/image-lcp-followed-by-two-image-softnavs-lcp.tentative.html @@ -19,6 +19,9 @@ const link = document.getElementById("link"); promise_test(async t => { + if (!performance.softNavPaintMetricsSupported) { + return; + } validatePaintEntries('first-contentful-paint', 1); validatePaintEntries('first-paint', 1); const preClickLcp = await getLcpEntries(); diff --git a/tests/wpt/tests/soft-navigation-heuristics/multiple-paint-entries-buffered.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/multiple-paint-entries-buffered.tentative.html index fcf5c023e40..dbb945a0a81 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/multiple-paint-entries-buffered.tentative.html +++ b/tests/wpt/tests/soft-navigation-heuristics/multiple-paint-entries-buffered.tentative.html @@ -24,6 +24,9 @@ link: link, clicks: 4, extraValidations: async (entries, options)=>{ + if (!performance.softNavPaintMetricsSupported) { + return; + } const paint_entries = await new Promise(resolve => { new PerformanceObserver(list => resolve(list.getEntries())).observe( {type: 'paint', buffered: true, diff --git a/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js index baf26be8b0b..edc9331c263 100644 --- a/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js +++ b/tests/wpt/tests/soft-navigation-heuristics/resources/soft-navigation-helper.js @@ -20,11 +20,15 @@ const testSoftNavigation = const testName = options.testName; const pushUrl = readValue(options.pushUrl, true); const eventType = readValue(options.eventType, "click"); + const expectLCP = options.validate != 'no-lcp'; promise_test(async t => { + await waitInitialLCP(); const preClickLcp = await getLcpEntries(); setEvent(t, link, pushState, addContent, pushUrl, eventType); for (let i = 0; i < clicks; ++i) { - let paint_entries_promise = waitOnPaintEntriesPromise(); + const firstClick = (i === 0); + let paint_entries_promise = + waitOnPaintEntriesPromise(expectLCP && firstClick); clicked = false; click(link); @@ -43,18 +47,20 @@ const testSoftNavigation = await validateSoftNavigationEntry( clicks, extraValidations, pushUrl); - await runEntryValidations(preClickLcp, clicks + 1); + await runEntryValidations(preClickLcp, clicks + 1, expectLCP); }, testName); }; const testNavigationApi = (testName, navigateEventHandler, link) => { promise_test(async t => { - const preClickLcp = await getLcpEntries(); navigation.addEventListener('navigate', navigateEventHandler); const navigated = new Promise(resolve => { navigation.addEventListener('navigatesuccess', resolve); navigation.addEventListener('navigateerror', resolve); }); + await waitInitialLCP(); + const preClickLcp = await getLcpEntries(); + let paint_entries_promise = waitOnPaintEntriesPromise(); click(link); await new Promise(resolve => { (new PerformanceObserver(() => resolve())).observe({ @@ -62,6 +68,7 @@ const testNavigationApi = (testName, navigateEventHandler, link) => { }); }); await navigated; + await paint_entries_promise; assert_equals(document.softNavigations, 1, 'Soft Navigation detected'); await validateSoftNavigationEntry(1, () => {}, 'foobar.html'); @@ -87,23 +94,38 @@ const testSoftNavigationNotDetected = options => { }, options.testName); }; -const runEntryValidations = async (preClickLcp, entries_expected_number = 2) => { +const runEntryValidations = + async (preClickLcp, entries_expected_number = 2, expect_lcp = true) => { await validatePaintEntries('first-contentful-paint', entries_expected_number); await validatePaintEntries('first-paint', entries_expected_number); const postClickLcp = await getLcpEntries(); const postClickLcpWithoutSoftNavs = await getLcpEntriesWithoutSoftNavs(); - assert_greater_than( - postClickLcp.length, preClickLcp.length, - 'Soft navigation should have triggered at least an LCP entry'); + if (expect_lcp) { + assert_greater_than( + postClickLcp.length, preClickLcp.length, + 'Soft navigation should have triggered at least an LCP entry'); + } else { + assert_equals( + postClickLcp.length, preClickLcp.length, + 'Soft navigation should not have triggered an LCP entry'); + } assert_equals( postClickLcpWithoutSoftNavs.length, preClickLcp.length, 'Soft navigation should not have triggered an LCP entry when the ' + 'observer did not opt in'); - assert_not_equals( - postClickLcp[postClickLcp.length - 1].size, - preClickLcp[preClickLcp.length - 1].size, - 'Soft navigation LCP element should not have identical size to the hard ' + - 'navigation LCP element'); + if (expect_lcp) { + assert_not_equals( + postClickLcp[postClickLcp.length - 1].size, + preClickLcp[preClickLcp.length - 1].size, + 'Soft navigation LCP element should not have identical size to the hard ' + + 'navigation LCP element'); + } else { + assert_equals( + postClickLcp[postClickLcp.length - 1].size, + preClickLcp[preClickLcp.length - 1].size, + 'Soft navigation LCP element should have an identical size to the hard ' + + 'navigation LCP element'); + } }; const click = link => { @@ -176,6 +198,9 @@ const validateSoftNavigationEntry = async (clicks, extraValidations, }; const validatePaintEntries = async (type, entries_number) => { + if (!performance.softNavPaintMetricsSupported) { + return; + } const expected_entries_number = Math.min(entries_number, MAX_PAINT_ENTRIES); const entries = await new Promise(resolve => { const entries = []; @@ -202,6 +227,15 @@ const validatePaintEntries = async (type, entries_number) => { } }; +const waitInitialLCP = () => { + return new Promise(resolve => { + new PerformanceObserver(list => resolve()).observe({ + type: 'largest-contentful-paint', + buffered: true + }); + }); +} + const getLcpEntries = async () => { const entries = await new Promise(resolve => { (new PerformanceObserver(list => resolve( @@ -224,6 +258,7 @@ const getLcpEntriesWithoutSoftNavs = async () => { const addImage = async (element) => { const img = new Image(); img.src = '/images/blue.png' + "?" + Math.random(); + img.id="imagelcp"; await img.decode(); element.appendChild(img); }; @@ -231,29 +266,43 @@ const addImageToMain = async () => { await addImage(document.getElementById('main')); }; -const addTextToDivOnMain = () => { - const main = document.getElementById("main"); - const prevDiv = document.getElementsByTagName("div")[0]; - if (prevDiv) { - main.removeChild(prevDiv); - } - const div = document.createElement("div"); - const text = document.createTextNode("Lorem Ipsum"); - div.appendChild(text); - div.style="font-size: 3em"; - main.appendChild(div); -} - -const waitOnPaintEntriesPromise = () => { - return new Promise((resolve, reject) => { - const paint_entries = [] - new PerformanceObserver(list => { - paint_entries.push(...list.getEntries()); - if (paint_entries.length == 2) { - resolve(); - } else if (paint_entries.length > 2) { - reject(); +const addTextToDivOnMain = + () => { + const main = document.getElementById("main"); + const prevDiv = document.getElementsByTagName("div")[0]; + if (prevDiv) { + main.removeChild(prevDiv); } - }).observe({type: 'paint', includeSoftNavigationObservations: true}); + const div = document.createElement("div"); + const text = document.createTextNode("Lorem Ipsum"); + div.appendChild(text); + div.style = "font-size: 3em"; + main.appendChild(div); + } + +const waitOnPaintEntriesPromise = (expectLCP = true) => { + return new Promise((resolve, reject) => { + if (performance.softNavPaintMetricsSupported) { + const paint_entries = [] + new PerformanceObserver(list => { + paint_entries.push(...list.getEntries()); + if (paint_entries.length == 2) { + resolve(); + } else if (paint_entries.length > 2) { + reject(); + } + }).observe({type: 'paint', includeSoftNavigationObservations: true}); + } else if (expectLCP) { + new PerformanceObserver(list => { + resolve(); + }).observe({ + type: 'largest-contentful-paint', + includeSoftNavigationObservations: true + }); + } else { + step_timeout( + () => requestAnimationFrame(() => requestAnimationFrame(resolve)), + 100); + } }); }; diff --git a/tests/wpt/tests/soft-navigation-heuristics/visited-link.tentative.html b/tests/wpt/tests/soft-navigation-heuristics/visited-link.tentative.html new file mode 100644 index 00000000000..e81c6f61734 --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/visited-link.tentative.html @@ -0,0 +1,43 @@ + + + + +Soft navigation visited link paint tests. + + + + + + + +
+ Click me! + link +
+ + + diff --git a/tests/wpt/tests/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html b/tests/wpt/tests/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html index 9720d35d587..9c9371c4c31 100644 --- a/tests/wpt/tests/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html +++ b/tests/wpt/tests/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html @@ -6,7 +6,7 @@ - + - + diff --git a/tests/wpt/tests/speculation-rules/prerender/service-workers.https.html b/tests/wpt/tests/speculation-rules/prerender/service-workers.https.html index f8ba64df34a..0f907c35aa1 100644 --- a/tests/wpt/tests/speculation-rules/prerender/service-workers.https.html +++ b/tests/wpt/tests/speculation-rules/prerender/service-workers.https.html @@ -1,5 +1,5 @@ -Same-origin prerendering can access Indexed Database +Service Workers APIs with prerendering @@ -44,7 +44,7 @@ promise_test(async t => { resolve({prerendering: document.prerendering}); }); }); - }, scope); + }, [scope]); await new Promise(resolve => t.step_timeout(resolve, ACTIVATION_DELAY)); @@ -68,7 +68,7 @@ promise_test(async t => { await reg.unregister(); return {prerendering: document.prerendering}; })(); - }, uid); + }, [uid]); await new Promise(resolve => t.step_timeout(resolve, ACTIVATION_DELAY)); @@ -92,7 +92,7 @@ promise_test(async t => { await reg.update(); return {prerendering: document.prerendering}; })(); - }, uid); + }, [uid]); await new Promise(resolve => t.step_timeout(resolve, ACTIVATION_DELAY)); diff --git a/tests/wpt/tests/streams/readable-streams/from.any.js b/tests/wpt/tests/streams/readable-streams/from.any.js index 04a03545ad5..d53206d4aec 100644 --- a/tests/wpt/tests/streams/readable-streams/from.any.js +++ b/tests/wpt/tests/streams/readable-streams/from.any.js @@ -1,4 +1,4 @@ -// META: global=window,worker,jsshell +// META: global=window,worker // META: script=../resources/test-utils.js 'use strict'; diff --git a/tests/wpt/tests/svg/animations/scripted/animateMotion-animated-line.svg b/tests/wpt/tests/svg/animations/scripted/animateMotion-animated-line.svg new file mode 100644 index 00000000000..5e853dab03a --- /dev/null +++ b/tests/wpt/tests/svg/animations/scripted/animateMotion-animated-line.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/svg/extensibility/foreignObject/foreign-object-containing-svg-in-svg-in-object.html b/tests/wpt/tests/svg/extensibility/foreignObject/foreign-object-containing-svg-in-svg-in-object.html new file mode 100644 index 00000000000..311697dd7bf --- /dev/null +++ b/tests/wpt/tests/svg/extensibility/foreignObject/foreign-object-containing-svg-in-svg-in-object.html @@ -0,0 +1,15 @@ + +An <svg> wrapped in a <foreignObject> in an <object> + + + diff --git a/tests/wpt/tests/svg/interact/scripted/async-01.svg b/tests/wpt/tests/svg/interact/scripted/async-01.svg new file mode 100644 index 00000000000..a56ef34ae54 --- /dev/null +++ b/tests/wpt/tests/svg/interact/scripted/async-01.svg @@ -0,0 +1,29 @@ + + + async on script + + + + + + + + + + + diff --git a/tests/wpt/tests/svg/interact/scripted/defer-01.svg b/tests/wpt/tests/svg/interact/scripted/defer-01.svg new file mode 100644 index 00000000000..93e54c3f0ef --- /dev/null +++ b/tests/wpt/tests/svg/interact/scripted/defer-01.svg @@ -0,0 +1,25 @@ + + + defer on script + + + + + + + + + + + diff --git a/tests/wpt/tests/svg/interact/scripted/defer.js b/tests/wpt/tests/svg/interact/scripted/defer.js new file mode 100644 index 00000000000..0c0bfb1c23e --- /dev/null +++ b/tests/wpt/tests/svg/interact/scripted/defer.js @@ -0,0 +1,4 @@ +t.step(() => { + assert_equals(script_run_status, "deferred", "script run status"); +}); +t.done(); diff --git a/tests/wpt/tests/svg/interact/scripted/log.py b/tests/wpt/tests/svg/interact/scripted/log.py new file mode 100644 index 00000000000..2a6cc330296 --- /dev/null +++ b/tests/wpt/tests/svg/interact/scripted/log.py @@ -0,0 +1,13 @@ +import time + +def main(request, response): + response.headers.append(b"Content-Type", b"text/javascript") + try: + script_id = int(request.GET.first(b"id")) + delay = int(request.GET.first(b"sec")) + except: + response.set_error(400, u"Invalid parameter") + + time.sleep(int(delay)) + + return u"log('%s')" % script_id diff --git a/tests/wpt/tests/svg/interact/scripted/module-01.svg b/tests/wpt/tests/svg/interact/scripted/module-01.svg new file mode 100644 index 00000000000..ea70391e922 --- /dev/null +++ b/tests/wpt/tests/svg/interact/scripted/module-01.svg @@ -0,0 +1,20 @@ + + + script type="module" + + + + + + + + diff --git a/tests/wpt/tests/svg/layout/svg-foreign-relayout-001.html b/tests/wpt/tests/svg/layout/svg-foreign-relayout-001.html new file mode 100644 index 00000000000..2c8a8141526 --- /dev/null +++ b/tests/wpt/tests/svg/layout/svg-foreign-relayout-001.html @@ -0,0 +1,14 @@ + + + +

Test passes if there is a filled green square.

+ + + + + + diff --git a/tests/wpt/tests/svg/layout/svg-foreign-relayout-002.html b/tests/wpt/tests/svg/layout/svg-foreign-relayout-002.html new file mode 100644 index 00000000000..cebc2d492d6 --- /dev/null +++ b/tests/wpt/tests/svg/layout/svg-foreign-relayout-002.html @@ -0,0 +1,14 @@ + + + +

Test passes if there is a filled green square.

+ + + + + + diff --git a/tests/wpt/tests/svg/pservers/reftests/pattern-transform-01.svg b/tests/wpt/tests/svg/pservers/reftests/pattern-transform-01.svg new file mode 100644 index 00000000000..e3db18f2ed2 --- /dev/null +++ b/tests/wpt/tests/svg/pservers/reftests/pattern-transform-01.svg @@ -0,0 +1,15 @@ + + + Pattern: with patternTransform + + + + + + + + + + + diff --git a/tests/wpt/tests/svg/pservers/reftests/reference/pattern-transform-01-ref.svg b/tests/wpt/tests/svg/pservers/reftests/reference/pattern-transform-01-ref.svg new file mode 100644 index 00000000000..9ac036177b7 --- /dev/null +++ b/tests/wpt/tests/svg/pservers/reftests/reference/pattern-transform-01-ref.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/tests/wpt/tests/tools/ci/requirements_tc.txt b/tests/wpt/tests/tools/ci/requirements_tc.txt index b5618a8b9dd..bd979ed97c2 100644 --- a/tests/wpt/tests/tools/ci/requirements_tc.txt +++ b/tests/wpt/tests/tools/ci/requirements_tc.txt @@ -1,4 +1,4 @@ pygithub==1.58.2 pyyaml==6.0 requests==2.31.0 -taskcluster==52.0.0 +taskcluster==54.3.1 diff --git a/tests/wpt/tests/tools/ci/tc/tasks/test.yml b/tests/wpt/tests/tools/ci/tc/tasks/test.yml index 35dbbb1cb64..4e1abf950b5 100644 --- a/tests/wpt/tests/tools/ci/tc/tasks/test.yml +++ b/tests/wpt/tests/tools/ci/tc/tasks/test.yml @@ -118,16 +118,15 @@ components: - python3.7-dev - python3.7-venv - tox-python3_10: + tox-python3_11: env: - TOXENV: py310 + TOXENV: py311 PY_COLORS: "0" install: - - python3.10 - - python3.10-distutils - - python3.10-dev - - python3.10-venv - + - python3.11 + - python3.11-distutils + - python3.11-dev + - python3.11-venv tests-affected: options: browser: @@ -425,13 +424,13 @@ tasks: run-job: - tools_unittest - - tools/ unittests (Python 3.10): + - tools/ unittests (Python 3.11): description: >- - Unit tests for tools running under Python 3.10, excluding wptrunner + Unit tests for tools running under Python 3.11, excluding wptrunner use: - wpt-base - trigger-pr - - tox-python3_10 + - tox-python3_11 command: ./tools/ci/ci_tools_unittest.sh env: HYPOTHESIS_PROFILE: ci @@ -461,13 +460,13 @@ tasks: run-job: - wpt_integration - - tools/ integration tests (Python 3.10): + - tools/ integration tests (Python 3.11): description: >- - Integration tests for tools running under Python 3.10 + Integration tests for tools running under Python 3.11 use: - wpt-base - trigger-pr - - tox-python3_10 + - tox-python3_11 command: ./tools/ci/ci_tools_integration_test.sh install: - libnss3-tools @@ -502,13 +501,13 @@ tasks: run-job: - resources_unittest - - resources/ tests (Python 3.10): + - resources/ tests (Python 3.11): description: >- - Tests for testharness.js and other files in resources/ under Python 3.10 + Tests for testharness.js and other files in resources/ under Python 3.11 use: - wpt-base - trigger-pr - - tox-python3_10 + - tox-python3_11 command: ./tools/ci/ci_resources_unittest.sh install: - libnss3-tools diff --git a/tests/wpt/tests/tools/ci/tc/tests/test_valid.py b/tests/wpt/tests/tools/ci/tc/tests/test_valid.py index 36833ec51eb..f7e3d019128 100644 --- a/tests/wpt/tests/tools/ci/tc/tests/test_valid.py +++ b/tests/wpt/tests/tools/ci/tc/tests/test_valid.py @@ -154,11 +154,11 @@ def test_verify_payload(): ("pr_event.json", True, {".taskcluster.yml", ".travis.yml", "tools/ci/start.sh"}, ['lint', 'tools/ unittests (Python 3.7)', - 'tools/ unittests (Python 3.10)', + 'tools/ unittests (Python 3.11)', 'tools/ integration tests (Python 3.7)', - 'tools/ integration tests (Python 3.10)', + 'tools/ integration tests (Python 3.11)', 'resources/ tests (Python 3.7)', - 'resources/ tests (Python 3.10)', + 'resources/ tests (Python 3.11)', 'download-firefox-nightly', 'infrastructure/ tests', 'sink-task']), @@ -176,7 +176,7 @@ def test_verify_payload(): ("pr_event_tests_affected.json", True, {"resources/testharness.js"}, ['lint', 'resources/ tests (Python 3.7)', - 'resources/ tests (Python 3.10)', + 'resources/ tests (Python 3.11)', 'download-firefox-nightly', 'infrastructure/ tests', 'sink-task']), diff --git a/tests/wpt/tests/tools/pytest.ini b/tests/wpt/tests/tools/pytest.ini index 3347ec6dbdb..81666e01db9 100644 --- a/tests/wpt/tests/tools/pytest.ini +++ b/tests/wpt/tests/tools/pytest.ini @@ -20,6 +20,10 @@ filterwarnings = ignore:This method will be removed in .*\.\s+Use 'parser\.read_file\(\)' instead\.:DeprecationWarning:mozversion # ignore mozversion not cleanly closing .ini files ignore:unclosed file.*\.ini:ResourceWarning:mozversion + # mozdevice uses pipes module + ignore:'pipes' is deprecated and slated for removal in Python 3:DeprecationWarning + # mozrunner uses telnetlib module + ignore:'telnetlib' is deprecated and slated for removal in Python 3:DeprecationWarning # https://github.com/web-platform-tests/wpt/issues/39366 always:The metaschema specified by \$schema was not found\. Using the latest draft to validate, but this will raise an error in the future\.:DeprecationWarning # https://github.com/web-platform-tests/wpt/issues/39359 diff --git a/tests/wpt/tests/tools/requirements_mypy.txt b/tests/wpt/tests/tools/requirements_mypy.txt index 3ccba120882..26175e68b41 100644 --- a/tests/wpt/tests/tools/requirements_mypy.txt +++ b/tests/wpt/tests/tools/requirements_mypy.txt @@ -1,4 +1,4 @@ -mypy==1.3.0 +mypy==1.4.1 mypy-extensions==1.0.0 toml==0.10.2 tomli==2.0.1 @@ -7,7 +7,7 @@ types-atomicwrites==1.4.5.1 types-python-dateutil==2.8.19.13 types-PyYAML==6.0.12.10 types-requests==2.31.0.1 -types-setuptools==67.8.0.0 +types-setuptools==68.0.0.2 types-six==1.16.21.8 types-ujson==5.7.0.5 types-urllib3==1.26.25.13 diff --git a/tests/wpt/tests/tools/requirements_tests.txt b/tests/wpt/tests/tools/requirements_tests.txt index c07c321de39..1376520bdb4 100644 --- a/tests/wpt/tests/tools/requirements_tests.txt +++ b/tests/wpt/tests/tools/requirements_tests.txt @@ -2,4 +2,4 @@ httpx[http2]==0.24.1 json-e==4.5.2 jsonschema==4.17.3 pyyaml==6.0 -taskcluster==52.0.0 +taskcluster==54.3.1 diff --git a/tests/wpt/tests/tools/tox.ini b/tests/wpt/tests/tools/tox.ini index 5efbe9b37ab..a4b747ac4fa 100644 --- a/tests/wpt/tests/tools/tox.ini +++ b/tests/wpt/tests/tools/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py37,py38,py39,py310,{py37,py38,py39,py310}-{flake8,mypy} +envlist = py37,py38,py39,py310,py311,{py37,py38,py39,py310,py311}-{flake8,mypy} skipsdist=True skip_missing_interpreters=False diff --git a/tests/wpt/tests/tools/wave/requirements.txt b/tests/wpt/tests/tools/wave/requirements.txt index f814994b483..b2c151b8fe9 100644 --- a/tests/wpt/tests/tools/wave/requirements.txt +++ b/tests/wpt/tests/tools/wave/requirements.txt @@ -1,2 +1,2 @@ -ua-parser==0.16.1 +ua-parser==0.18.0 python-dateutil==2.8.2 diff --git a/tests/wpt/tests/tools/wave/tox.ini b/tests/wpt/tests/tools/wave/tox.ini index e1ee1b52941..06bdfcd6743 100644 --- a/tests/wpt/tests/tools/wave/tox.ini +++ b/tests/wpt/tests/tools/wave/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py37,py38,py39,py310 +envlist = py37,py38,py39,py310,py311 skipsdist=True skip_missing_interpreters = False diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/client.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/client.py index c0505dde1d1..d8185d8e660 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/client.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/client.py @@ -90,10 +90,11 @@ class BidiSession: # Modules. # For each module, have a property representing that module - self.session = modules.Session(self) + self.browser = modules.Browser(self) self.browsing_context = modules.BrowsingContext(self) self.input = modules.Input(self) self.script = modules.Script(self) + self.session = modules.Session(self) @property def event_loop(self): diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/error.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/error.py index b681660f1a8..47f94d83d13 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/error.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/error.py @@ -71,6 +71,10 @@ class UnknownErrorException(BidiException): error_code = "unknown error" +class UnsupportedOperationException(BidiException): + error_code = "unsupported operation" + + def from_error_details(error: str, message: str, stacktrace: Optional[str]) -> BidiException: """Create specific WebDriver BiDi exception class from error details. diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/__init__.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/__init__.py index 17503bbf583..da5c14c4bf3 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/__init__.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/__init__.py @@ -1,6 +1,7 @@ # flake8: noqa -from .session import Session +from .browser import Browser from .browsing_context import BrowsingContext from .input import Input from .script import Script +from .session import Session diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browser.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browser.py new file mode 100644 index 00000000000..adb97799505 --- /dev/null +++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browser.py @@ -0,0 +1,9 @@ +from typing import Any, Mapping + +from ._module import BidiModule, command + + +class Browser(BidiModule): + @command + def close(self) -> Mapping[str, Any]: + return {} diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browsing_context.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browsing_context.py index a9b8d3f7682..1de7cc0931c 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browsing_context.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/browsing_context.py @@ -5,6 +5,11 @@ from ._module import BidiModule, command class BrowsingContext(BidiModule): + @command + def activate(self, + context: str) -> Mapping[str, Any]: + return {"context": context} + @command def capture_screenshot(self, context: str) -> Mapping[str, Any]: params: MutableMapping[str, Any] = {"context": context} @@ -28,12 +33,16 @@ class BrowsingContext(BidiModule): @command def create(self, type_hint: str, - reference_context: Optional[str] = None) -> Mapping[str, Any]: + reference_context: Optional[str] = None, + background: Optional[bool] = None) -> Mapping[str, Any]: params: MutableMapping[str, Any] = {"type": type_hint} if reference_context is not None: params["referenceContext"] = reference_context + if background is not None: + params["background"] = background + return params @create.result diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/input.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/input.py index 0670d1ebab4..b2703843b18 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/input.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/input.py @@ -14,9 +14,9 @@ from typing import (Any, from ._module import BidiModule, command - InputSourceType = TypeVar('InputSourceType', bound="InputSource") + class Action: action_type: ClassVar[str] @@ -38,6 +38,7 @@ class PauseAction(Action): class KeyAction(Action): + def __init__(self, key: str): self.value = key @@ -46,6 +47,7 @@ class KeyAction(Action): rv["value"] = self.value return rv + class KeyUpAction(KeyAction): action_type = "keyUp" @@ -55,6 +57,7 @@ class KeyDownAction(KeyAction): class PointerAction(Action): + def __init__(self, button: Optional[int] = None, x: Optional[int] = None, @@ -132,10 +135,19 @@ class PointerDownAction(PointerAction): twist: Optional[int] = None, altitude_angle: Optional[float] = None, azimuth_angle: Optional[float] = None): - super().__init__(button=button, x=None, y=None, duration=None, - origin=None, width=width, height=height, pressure=pressure, - tangential_pressure=tangential_pressure, tilt_x=tilt_x, - tilt_y=tilt_y, twist=twist, altitude_angle=altitude_angle, + super().__init__(button=button, + x=None, + y=None, + duration=None, + origin=None, + width=width, + height=height, + pressure=pressure, + tangential_pressure=tangential_pressure, + tilt_x=tilt_x, + tilt_y=tilt_y, + twist=twist, + altitude_angle=altitude_angle, azimuth_angle=azimuth_angle) @@ -153,10 +165,19 @@ class PointerUpAction(PointerAction): twist: Optional[int] = None, altitude_angle: Optional[float] = None, azimuth_angle: Optional[float] = None): - super().__init__(button=button, x=None, y=None, duration=None, - origin=None, width=width, height=height, pressure=pressure, - tangential_pressure=tangential_pressure, tilt_x=tilt_x, - tilt_y=tilt_y, twist=twist, altitude_angle=altitude_angle, + super().__init__(button=button, + x=None, + y=None, + duration=None, + origin=None, + width=width, + height=height, + pressure=pressure, + tangential_pressure=tangential_pressure, + tilt_x=tilt_x, + tilt_y=tilt_y, + twist=twist, + altitude_angle=altitude_angle, azimuth_angle=azimuth_angle) @@ -166,7 +187,7 @@ class PointerMoveAction(PointerAction): def __init__(self, x: int, y: int, - duration:Optional[int] = None, + duration: Optional[int] = None, origin: Optional[Union[str, Mapping[str, Any]]] = None, width: Optional[int] = None, height: Optional[int] = None, @@ -177,10 +198,19 @@ class PointerMoveAction(PointerAction): twist: Optional[int] = None, altitude_angle: Optional[float] = None, azimuth_angle: Optional[float] = None): - super().__init__(button=None, x=x, y=y, duration=duration, - origin=origin, width=width, height=height, pressure=pressure, - tangential_pressure=tangential_pressure, tilt_x=tilt_x, - tilt_y=tilt_y, twist=twist, altitude_angle=altitude_angle, + super().__init__(button=None, + x=x, + y=y, + duration=duration, + origin=origin, + width=width, + height=height, + pressure=pressure, + tangential_pressure=tangential_pressure, + tilt_x=tilt_x, + tilt_y=tilt_y, + twist=twist, + altitude_angle=altitude_angle, azimuth_angle=azimuth_angle) @@ -235,14 +265,13 @@ class InputSource: for i in range(total_ticks - len(self)): actions.append(PauseAction().to_json()) - return {"id": self.id, - "type": self.input_type, - "actions": actions} + return {"id": self.id, "type": self.input_type, "actions": actions} def done(self) -> List[Action]: return self.actions - def pause(self: InputSourceType, duration: Optional[int] = None) -> InputSourceType: + def pause(self: InputSourceType, + duration: Optional[int] = None) -> InputSourceType: self.actions.append(PauseAction(duration)) return self @@ -291,7 +320,9 @@ class PointerInputSource(InputSource): duration: Optional[int] = None, origin: Union[str, Mapping[str, Any]] = "viewport", **kwargs: Any) -> "PointerInputSource": - self.actions.append(PointerMoveAction(x, y, duration=duration, origin=origin, **kwargs)) + self.actions.append( + PointerMoveAction(x, y, duration=duration, origin=origin, + **kwargs)) return self @@ -315,6 +346,7 @@ class WheelInputSource(InputSource): class Actions: + def __init__(self) -> None: self.input_sources: List[InputSource] = [] self.seen_names: MutableMapping[str, Set[str]] = defaultdict(set) @@ -342,8 +374,12 @@ class Actions: def add_key(self, input_id: Optional[str] = None) -> "KeyInputSource": return self._add_source(KeyInputSource, input_id) - def add_pointer(self, input_id: Optional[str] = None, pointer_type: str = "mouse") -> "PointerInputSource": - return self._add_source(PointerInputSource, input_id, pointer_type=pointer_type) + def add_pointer(self, + input_id: Optional[str] = None, + pointer_type: str = "mouse") -> "PointerInputSource": + return self._add_source(PointerInputSource, + input_id, + pointer_type=pointer_type) def add_wheel(self, input_id: Optional[str] = None) -> "WheelInputSource": return self._add_source(WheelInputSource, input_id) @@ -354,6 +390,7 @@ class Actions: class Input(BidiModule): + @command def perform_actions(self, actions: Union[Actions, List[Any]], diff --git a/tests/wpt/tests/tools/webdriver/webdriver/transport.py b/tests/wpt/tests/tools/webdriver/webdriver/transport.py index 774c1c56686..e1e16bdebad 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/transport.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/transport.py @@ -92,7 +92,7 @@ class Response: headers = ResponseHeaders(http_response.getheaders()) except ValueError: raise ValueError("Failed to decode response body as JSON:\n" + - http_response.read()) + http_response.read()) return cls(http_response.status, body, headers) @@ -222,7 +222,7 @@ class HTTPWireProtocol: payload = json.dumps(body, cls=encoder, **codec_kwargs) except ValueError: raise ValueError("Failed to encode request body as JSON:\n" - "%s" % json.dumps(body, indent=2)) + "%s" % json.dumps(body, indent=2)) # When the timeout triggers, the TestRunnerManager thread will reuse # this connection to check if the WebDriver its alive and we may end diff --git a/tests/wpt/tests/tools/webtransport/requirements.txt b/tests/wpt/tests/tools/webtransport/requirements.txt index d3b88d7f046..883b0615898 100644 --- a/tests/wpt/tests/tools/webtransport/requirements.txt +++ b/tests/wpt/tests/tools/webtransport/requirements.txt @@ -1 +1 @@ -aioquic==0.9.20 +aioquic==0.9.21 diff --git a/tests/wpt/tests/tools/wpt/tox.ini b/tests/wpt/tests/tools/wpt/tox.ini index 9e8b9d720f9..4068f708986 100644 --- a/tests/wpt/tests/tools/wpt/tox.ini +++ b/tests/wpt/tests/tools/wpt/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py37,py38,py39,py310 +envlist = py37,py38,py39,py310,py311 skipsdist=True skip_missing_interpreters = False diff --git a/tests/wpt/tests/tools/wptrunner/requirements.txt b/tests/wpt/tests/tools/wptrunner/requirements.txt index 32fd3ff8c9a..64a475dd400 100644 --- a/tests/wpt/tests/tools/wptrunner/requirements.txt +++ b/tests/wpt/tests/tools/wptrunner/requirements.txt @@ -2,7 +2,7 @@ html5lib==1.1 mozdebug==0.3.0 mozinfo==1.2.2 # https://bugzilla.mozilla.org/show_bug.cgi?id=1621226 mozlog==8.0.0 -mozprocess==1.3.0 +mozprocess==1.3.1 packaging==23.1 pillow==9.5.0 requests==2.31.0 diff --git a/tests/wpt/tests/tools/wptrunner/requirements_chromium.txt b/tests/wpt/tests/tools/wptrunner/requirements_chromium.txt index d3b88d7f046..883b0615898 100644 --- a/tests/wpt/tests/tools/wptrunner/requirements_chromium.txt +++ b/tests/wpt/tests/tools/wptrunner/requirements_chromium.txt @@ -1 +1 @@ -aioquic==0.9.20 +aioquic==0.9.21 diff --git a/tests/wpt/tests/tools/wptrunner/requirements_firefox.txt b/tests/wpt/tests/tools/wptrunner/requirements_firefox.txt index 30a2b8a6bdb..102b7460978 100644 --- a/tests/wpt/tests/tools/wptrunner/requirements_firefox.txt +++ b/tests/wpt/tests/tools/wptrunner/requirements_firefox.txt @@ -1,6 +1,6 @@ marionette_driver==3.3.0 mozcrash==2.2.0 -mozdevice==4.1.0 +mozdevice==4.1.1 mozinstall==2.0.1 mozleak==0.2 mozprofile==2.5.0 diff --git a/tests/wpt/tests/tools/wptrunner/requirements_ie.txt b/tests/wpt/tests/tools/wptrunner/requirements_ie.txt index 788506b4ac3..aa272e2bfdd 100644 --- a/tests/wpt/tests/tools/wptrunner/requirements_ie.txt +++ b/tests/wpt/tests/tools/wptrunner/requirements_ie.txt @@ -1,2 +1,2 @@ -mozprocess==1.3.0 +mozprocess==1.3.1 selenium==4.10.0 diff --git a/tests/wpt/tests/tools/wptrunner/requirements_opera.txt b/tests/wpt/tests/tools/wptrunner/requirements_opera.txt index 788506b4ac3..aa272e2bfdd 100644 --- a/tests/wpt/tests/tools/wptrunner/requirements_opera.txt +++ b/tests/wpt/tests/tools/wptrunner/requirements_opera.txt @@ -1,2 +1,2 @@ -mozprocess==1.3.0 +mozprocess==1.3.1 selenium==4.10.0 diff --git a/tests/wpt/tests/tools/wptrunner/tox.ini b/tests/wpt/tests/tools/wptrunner/tox.ini index 5aef267dad9..2a3f2bdf109 100644 --- a/tests/wpt/tests/tools/wptrunner/tox.ini +++ b/tests/wpt/tests/tools/wptrunner/tox.ini @@ -2,7 +2,7 @@ xfail_strict=true [tox] -envlist = py310-{base,chrome,edge,firefox,ie,opera,safari,sauce,servo,webkit,webkitgtk_minibrowser,epiphany},{py37,py38,py39}-base +envlist = py311-{base,chrome,edge,firefox,ie,opera,safari,sauce,servo,webkit,webkitgtk_minibrowser,epiphany},{py37,py38,py39,py310}-base skip_missing_interpreters = False [testenv] diff --git a/tests/wpt/tests/url/resources/setters_tests.json b/tests/wpt/tests/url/resources/setters_tests.json index 347caf49ab0..82adf4cdce2 100644 --- a/tests/wpt/tests/url/resources/setters_tests.json +++ b/tests/wpt/tests/url/resources/setters_tests.json @@ -2021,6 +2021,24 @@ "href": "sc:/space%20", "pathname": "/space%20" } + }, + { + "comment": "Trailing space should be encoded", + "href": "http://example.net", + "new_value": " ", + "expected": { + "href": "http://example.net/%20", + "pathname": "/%20" + } + }, + { + "comment": "Trailing C0 control should be encoded", + "href": "http://example.net", + "new_value": "\u0000", + "expected": { + "href": "http://example.net/%00", + "pathname": "/%00" + } } ], "search": [ @@ -2141,6 +2159,24 @@ "href": "sc:space #fragment", "search": "" } + }, + { + "comment": "Trailing space should be encoded", + "href": "http://example.net", + "new_value": " ", + "expected": { + "href": "http://example.net/?%20", + "search": "?%20" + } + }, + { + "comment": "Trailing C0 control should be encoded", + "href": "http://example.net", + "new_value": "\u0000", + "expected": { + "href": "http://example.net/?%00", + "search": "?%00" + } } ], "hash": [ @@ -2311,6 +2347,24 @@ "href": "sc:space ?query", "hash": "" } + }, + { + "comment": "Trailing space should be encoded", + "href": "http://example.net", + "new_value": " ", + "expected": { + "href": "http://example.net/#%20", + "hash": "#%20" + } + }, + { + "comment": "Trailing C0 control should be encoded", + "href": "http://example.net", + "new_value": "\u0000", + "expected": { + "href": "http://example.net/#%00", + "hash": "#%00" + } } ], "href": [ diff --git a/tests/wpt/tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-in-shadow-root-ref.html b/tests/wpt/tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-in-shadow-root-ref.html new file mode 100644 index 00000000000..792ca214cfb --- /dev/null +++ b/tests/wpt/tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-in-shadow-root-ref.html @@ -0,0 +1,9 @@ + + +
diff --git a/tests/wpt/tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-in-shadow-root.html b/tests/wpt/tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-in-shadow-root.html new file mode 100644 index 00000000000..43e229856ba --- /dev/null +++ b/tests/wpt/tests/web-animations/animation-model/keyframe-effects/effect-value-opacity-replaced-effect-in-shadow-root.html @@ -0,0 +1,26 @@ + + + + +The effect value of consecutive animations targeting 'opacity' in a shadow root + + + + + + + + diff --git a/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-constructor.https.html b/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-constructor.https.html index 2dedd6cd36d..d2dc54aee6a 100644 --- a/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-constructor.https.html +++ b/tests/wpt/tests/webaudio/the-audio-api/the-audiocontext-interface/audiocontext-sinkid-constructor.https.html @@ -2,8 +2,8 @@ Test AudioContext constructor with sinkId options - - + + diff --git a/tests/wpt/tests/webcodecs/README.md b/tests/wpt/tests/webcodecs/README.md index accbcd438bf..0a1324a1ac4 100644 --- a/tests/wpt/tests/webcodecs/README.md +++ b/tests/wpt/tests/webcodecs/README.md @@ -13,7 +13,7 @@ any people can regenerate or update the file in the future. * When updating the sample offsets and descriptions for tests using mp4 files, it's easiest to use [mp4box.js](https://gpac.github.io/mp4box.js/test/filereader.html). * Sample offsets can be copied from the "Sample View" tab after unchecking all but offset and size. Use a multi-line edit mode and clang-format to quickly format entries. * Description entries can be found under moov.trak.mdia.minf.stbl.stsd in box view. - * avc1.avcC has an offset, size in the same view. Add 8 to offset and subtract 8 from the size to get the values the tests want. + * avc1.avcC or hvc1.hvcC has an offset, size in the same view. Add 8 to offset and subtract 8 from the size to get the values the tests want. * If you use ffprobe -show_packets to get sample offsets, you may need to add 4 to each `pos` value. You can tell if you need to by whether or not tests pass. ## List of Test Files @@ -98,6 +98,16 @@ ffmpeg -f lavfi -i testsrc=rate=10:n=1 -t 1 -pix_fmt yuv420p -vcodec h264 -tune ffmpeg -i h264.mp4 -codec copy -bsf:v h264_mp4toannexb -f h264 h264.annexb ``` +### h265.mp4 +``` +ffmpeg -f lavfi -i testsrc=rate=10:n=1 -t 1 -pix_fmt yuv420p -vcodec hevc -tag:v hvc1 -tune zerolatency h265.mp4 +``` + +### h265.annexb +``` +ffmpeg -i h265.mp4 -codec copy -bsf:v hevc_mp4toannexb -f hevc h265.annexb +``` + ### sfx.adts ``` sox -n -r 48000 sfx.wav synth 1 sine 480 diff --git a/tests/wpt/tests/webcodecs/full-cycle-test.https.any.js b/tests/wpt/tests/webcodecs/full-cycle-test.https.any.js index 7428f607480..56671e68361 100644 --- a/tests/wpt/tests/webcodecs/full-cycle-test.https.any.js +++ b/tests/wpt/tests/webcodecs/full-cycle-test.https.any.js @@ -6,27 +6,58 @@ // META: variant=?vp9_p2 // META: variant=?h264_avc // META: variant=?h264_annexb +// META: variant=?h265_hevc +// META: variant=?h265_annexb var ENCODER_CONFIG = null; promise_setup(async () => { const config = { // FIXME: H.264 has embedded color space information too. - '?av1': {codec: 'av01.0.04M.08', hasEmbeddedColorSpace: true}, - '?vp8': {codec: 'vp8', hasEmbeddedColorSpace: false}, - '?vp9_p0': {codec: 'vp09.00.10.08', hasEmbeddedColorSpace: true}, - '?vp9_p2': {codec: 'vp09.02.10.10', hasEmbeddedColorSpace: true}, + '?av1': { + codec: 'av01.0.04M.08', + hasEmbeddedColorSpace: true, + hardwareAcceleration: 'prefer-software', + }, + '?vp8': { + codec: 'vp8', + hasEmbeddedColorSpace: false, + hardwareAcceleration: 'prefer-software', + }, + '?vp9_p0': { + codec: 'vp09.00.10.08', + hasEmbeddedColorSpace: true, + hardwareAcceleration: 'prefer-software', + }, + '?vp9_p2': { + codec: 'vp09.02.10.10', + hasEmbeddedColorSpace: true, + hardwareAcceleration: 'prefer-software', + }, '?h264_avc': { codec: 'avc1.42001E', avc: {format: 'avc'}, - hasEmbeddedColorSpace: true + hasEmbeddedColorSpace: true, + hardwareAcceleration: 'prefer-software', }, '?h264_annexb': { codec: 'avc1.42001E', avc: {format: 'annexb'}, - hasEmbeddedColorSpace: true + hasEmbeddedColorSpace: true, + hardwareAcceleration: 'prefer-software', + }, + '?h265_hevc': { + codec: 'hvc1.1.6.L123.00', + hevc: {format: 'hevc'}, + hasEmbeddedColorSpace: true, + hardwareAcceleration: 'prefer-hardware', + }, + '?h265_annexb': { + codec: 'hvc1.1.6.L123.00', + hevc: {format: 'annexb'}, + hasEmbeddedColorSpace: true, + hardwareAcceleration: 'prefer-hardware', } }[location.search]; - config.hardwareAcceleration = 'prefer-software'; config.width = 320; config.height = 200; config.bitrate = 1000000; diff --git a/tests/wpt/tests/webcodecs/h265.annexb b/tests/wpt/tests/webcodecs/h265.annexb new file mode 100644 index 00000000000..7f613c5e9cd Binary files /dev/null and b/tests/wpt/tests/webcodecs/h265.annexb differ diff --git a/tests/wpt/tests/webcodecs/h265.mp4 b/tests/wpt/tests/webcodecs/h265.mp4 new file mode 100644 index 00000000000..1c1adb07630 Binary files /dev/null and b/tests/wpt/tests/webcodecs/h265.mp4 differ diff --git a/tests/wpt/tests/webcodecs/videoDecoder-codec-specific.https.any.js b/tests/wpt/tests/webcodecs/videoDecoder-codec-specific.https.any.js index 31e14d81f34..09e20379898 100644 --- a/tests/wpt/tests/webcodecs/videoDecoder-codec-specific.https.any.js +++ b/tests/wpt/tests/webcodecs/videoDecoder-codec-specific.https.any.js @@ -4,6 +4,8 @@ // META: variant=?vp9 // META: variant=?h264_avc // META: variant=?h264_annexb +// META: variant=?h265_hevc +// META: variant=?h265_annexb const AV1_DATA = { src: 'av1.mp4', @@ -99,6 +101,43 @@ const H264_ANNEXB_DATA = { ] }; +const H265_HEVC_DATA = { + src: 'h265.mp4', + config: { + codec: 'hev1.1.6.L60.90', + description: {offset: 5821, size: 2406}, + codedWidth: 320, + codedHeight: 240, + displayAspectWidth: 320, + displayAspectHeight: 240, + }, + chunks: [ + {offset: 44, size: 2515}, {offset: 2559, size: 279}, + {offset: 2838, size: 327}, {offset: 3165, size: 329}, + {offset: 3494, size: 308}, {offset: 3802, size: 292}, + {offset: 4094, size: 352}, {offset: 4446, size: 296}, + {offset: 4742, size: 216}, {offset: 4958, size: 344} + ] +}; + +const H265_ANNEXB_DATA = { + src: 'h265.annexb', + config: { + codec: 'hev1.1.6.L60.90', + codedWidth: 320, + codedHeight: 240, + displayAspectWidth: 320, + displayAspectHeight: 240, + }, + chunks: [ + {offset: 0, size: 4894}, {offset: 4894, size: 279}, + {offset: 5173, size: 327}, {offset: 5500, size: 329}, + {offset: 5829, size: 308}, {offset: 6137, size: 292}, + {offset: 6429, size: 352}, {offset: 6781, size: 296}, + {offset: 7077, size: 216}, {offset: 7293, size: 344} + ] +}; + // Allows mutating `callbacks` after constructing the VideoDecoder, wraps calls // in t.step(). function createVideoDecoder(t, callbacks) { @@ -158,7 +197,9 @@ promise_setup(async () => { '?vp8': VP8_DATA, '?vp9': VP9_DATA, '?h264_avc': H264_AVC_DATA, - '?h264_annexb': H264_ANNEXB_DATA + '?h264_annexb': H264_ANNEXB_DATA, + '?h265_hevc': H265_HEVC_DATA, + '?h265_annexb': H265_ANNEXB_DATA }[location.search]; // Fetch the media data and prepare buffers. diff --git a/tests/wpt/tests/webcodecs/videoFrame-construction.any.js b/tests/wpt/tests/webcodecs/videoFrame-construction.any.js index a443cd66f23..8e8a3eac18b 100644 --- a/tests/wpt/tests/webcodecs/videoFrame-construction.any.js +++ b/tests/wpt/tests/webcodecs/videoFrame-construction.any.js @@ -517,11 +517,11 @@ test(t => { 1, 2, // v ]); let frame = new VideoFrame(data, vfInit); - assert_true(frame.colorSpace.primaries == null, 'color primaries'); - assert_true(frame.colorSpace.transfer == null, 'color transfer'); - assert_true(frame.colorSpace.matrix == null, 'color matrix'); - assert_true(frame.colorSpace.fullRange == null, 'color range'); -}, 'Test planar constructed I420 VideoFrame with null colorSpace values'); + assert_true(frame.colorSpace.primaries !== undefined, 'color primaries'); + assert_true(frame.colorSpace.transfer !== undefined, 'color transfer'); + assert_true(frame.colorSpace.matrix !== undefined, 'color matrix'); + assert_true(frame.colorSpace.fullRange !== undefined, 'color range'); +}, 'Test planar can construct I420 VideoFrame with null colorSpace values'); test(t => { let fmt = 'I420A'; diff --git a/tests/wpt/tests/webcodecs/videoFrame-construction.window.js b/tests/wpt/tests/webcodecs/videoFrame-construction.window.js index 02f84215522..6c9791cea68 100644 --- a/tests/wpt/tests/webcodecs/videoFrame-construction.window.js +++ b/tests/wpt/tests/webcodecs/videoFrame-construction.window.js @@ -9,11 +9,15 @@ promise_test(async t => { }, 'Test that timestamp is required when constructing VideoFrame from HTMLImageElement'); promise_test(async t => { - let svgImageElement = document.createElementNS('http://www.w3.org/2000/svg','image'); - let loadPromise = new Promise(r => svgImageElement.onload = r); + const svgDocument = document.createElementNS('http://www.w3.org/2000/svg','svg'); + document.body.appendChild(svgDocument); + const svgImageElement = document.createElementNS('http://www.w3.org/2000/svg','image'); + svgDocument.appendChild(svgImageElement); + const loadPromise = new Promise(r => svgImageElement.onload = r); svgImageElement.setAttributeNS('http://www.w3.org/1999/xlink','href','data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=='); await loadPromise; verifyTimestampRequiredToConstructFrame(svgImageElement); + document.body.removeChild(svgDocument); }, 'Test that timestamp is required when constructing VideoFrame from SVGImageElement'); promise_test(async t => { diff --git a/tests/wpt/tests/webcodecs/videoFrame-serialization.crossAgentCluster.https.html b/tests/wpt/tests/webcodecs/videoFrame-serialization.crossAgentCluster.https.html index 8fe7cf44cc6..27f624a8449 100644 --- a/tests/wpt/tests/webcodecs/videoFrame-serialization.crossAgentCluster.https.html +++ b/tests/wpt/tests/webcodecs/videoFrame-serialization.crossAgentCluster.https.html @@ -58,6 +58,7 @@ const SAMEORIGIN_BASE = get_host_info().HTTPS_ORIGIN; const CROSSORIGIN_BASE = get_host_info().HTTPS_NOTSAMESITE_ORIGIN; const SAMEORIGIN_HELPER = SAMEORIGIN_BASE + HELPER; const CROSSORIGIN_HELPER = CROSSORIGIN_BASE + HELPER; +const SERVICE_WORKER = 'videoFrame-serialization.crossAgentCluster.serviceworker.js'; promise_test(async () => { const target = (await appendIframe(SAMEORIGIN_HELPER)).contentWindow; @@ -85,14 +86,27 @@ promise_test(async () => { assert_equals(received.timestamp, 30); }, 'Verify frames can be passed back and forth between main and worker'); +promise_test(async () => { + const encodedScriptText = btoa("self.onmessage = (e) => { postMessage(e.data);};"); + const scriptURL = 'data:text/javascript;base64,' + encodedScriptText; + const worker = new Worker(scriptURL); + let frame = createVideoFrame(40); + worker.postMessage(frame); + const received = await new Promise(resolve => worker.onmessage = e => { + resolve(e.data); + }); + assert_equals(received.toString(), '[object VideoFrame]'); + assert_equals(received.timestamp, 40); +}, 'Verify frames can be passed back and forth between main and data-url worker'); + promise_test(async () => { const blob = new Blob([document.querySelector('#sharedWorkerCode').textContent], { type: 'text/javascript', }); const worker = new SharedWorker(window.URL.createObjectURL(blob)); - let frame = createVideoFrame(40); + let frame = createVideoFrame(50); worker.port.postMessage(frame); - worker.port.postMessage({'id': 40}); + worker.port.postMessage({'id': 50}); const received = await new Promise(resolve => worker.port.onmessage = e => { resolve(e.data); }); @@ -100,11 +114,11 @@ promise_test(async () => { }, 'Verify frames cannot be passed to sharedworker'); promise_test(async () => { - navigator.serviceWorker.register('videoFrame-serialization.crossAgentCluster.serviceworker.js'); + navigator.serviceWorker.register(SERVICE_WORKER); navigator.serviceWorker.ready.then((registration) => { - let frame = createVideoFrame(50); + let frame = createVideoFrame(60); registration.active.postMessage(frame); - registration.active.postMessage({'id': 50}); + registration.active.postMessage({'id': 60}); }); const received = await new Promise(resolve => navigator.serviceWorker.onmessage = (e) => { resolve(e.data); @@ -114,14 +128,14 @@ promise_test(async () => { promise_test(async () => { const target = (await appendIframe(SAMEORIGIN_HELPER)).contentWindow; - let frame = createVideoFrame(60); + let frame = createVideoFrame(70); assert_true(await canTransferVideoFrame(target, frame)); assert_true(isFrameClosed(frame)); }, 'Verify frames can be transferred within the same agent clusters'); promise_test(async () => { const target = (await appendIframe(CROSSORIGIN_HELPER)).contentWindow; - let frame = createVideoFrame(70); + let frame = createVideoFrame(80); assert_false(await canTransferVideoFrame(target, frame)); }, 'Verify frames cannot be transferred accross the different agent clusters'); @@ -130,23 +144,36 @@ promise_test(async () => { type: 'text/javascript', }); const worker = new Worker(window.URL.createObjectURL(blob)); - let frame = createVideoFrame(80); + let frame = createVideoFrame(90); worker.postMessage({frame: frame, transfer: true}, [frame]); const received = await new Promise(resolve => worker.onmessage = e => { resolve(e.data); }); assert_equals(received.toString(), '[object VideoFrame]'); - assert_equals(received.timestamp, 80); + assert_equals(received.timestamp, 90); }, 'Verify frames can be transferred back and forth between main and worker'); +promise_test(async () => { + const encodedScriptText = btoa("self.onmessage = (e) => { let f = e.data; postMessage(f, [f]); };"); + const scriptURL = 'data:text/javascript;base64,' + encodedScriptText; + const worker = new Worker(scriptURL); + let frame = createVideoFrame(100); + worker.postMessage(frame, [frame]); + const received = await new Promise(resolve => worker.onmessage = e => { + resolve(e.data); + }); + assert_equals(received.toString(), '[object VideoFrame]'); + assert_equals(received.timestamp, 100); +}, 'Verify frames can be transferred back and forth between main and data-url worker'); + promise_test(async () => { const blob = new Blob([document.querySelector('#sharedWorkerCode').textContent], { type: 'text/javascript', }); const worker = new SharedWorker(window.URL.createObjectURL(blob)); - let frame = createVideoFrame(90); + let frame = createVideoFrame(110); worker.port.postMessage(frame, [frame]); - worker.port.postMessage({'id': 90}); + worker.port.postMessage({'id': 110}); const received = await new Promise(resolve => worker.port.onmessage = e => { resolve(e.data); }); @@ -154,11 +181,11 @@ promise_test(async () => { }, 'Verify frames cannot be transferred to a sharedworker'); promise_test(async () => { - navigator.serviceWorker.register('videoFrame-serialization.crossAgentCluster.serviceworker.js'); + navigator.serviceWorker.register(SERVICE_WORKER); navigator.serviceWorker.ready.then((registration) => { - let frame = createVideoFrame(100); + let frame = createVideoFrame(120); registration.active.postMessage(frame, [frame]); - registration.active.postMessage({'id': 100}); + registration.active.postMessage({'id': 120}); }); const received = await new Promise(resolve => navigator.serviceWorker.onmessage = (e) => { resolve(e.data); @@ -179,7 +206,7 @@ promise_test(async () => { }, 'Verify frames is unavailable in sharedworker'); promise_test(async () => { - navigator.serviceWorker.register('videoFrame-serialization.crossAgentCluster.serviceworker.js'); + navigator.serviceWorker.register(SERVICE_WORKER); let registration = await navigator.serviceWorker.ready; registration.active.postMessage('create-frame'); const received = await new Promise(resolve => navigator.serviceWorker.onmessage = (e) => { diff --git a/tests/wpt/tests/webdriver/tests/bidi/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/__init__.py index 82168462097..eb412738a83 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/__init__.py +++ b/tests/wpt/tests/webdriver/tests/bidi/__init__.py @@ -1,4 +1,4 @@ -from typing import Any, Callable +from typing import Any, Callable, Dict from webdriver.bidi.modules.script import ContextTarget @@ -67,11 +67,7 @@ def int_interval(start: int, end: int) -> Callable[[Any], None]: return _ -def positive_int(actual: Any) -> None: - assert isinstance(actual, int) and actual > 0 - - -async def create_console_api_message(bidi_session, context, text): +async def create_console_api_message(bidi_session, context: str, text: str): await bidi_session.script.call_function( function_declaration="""(text) => console.log(text)""", arguments=[{"type": "string", "value": text}], @@ -81,13 +77,7 @@ async def create_console_api_message(bidi_session, context, text): return text -async def get_device_pixel_ratio(bidi_session, context): - """Get the DPR of the context. - - :param bidi_session: BiDiSession - :param context: Browsing context ID - :returns: (float) devicePixelRatio. - """ +async def get_device_pixel_ratio(bidi_session, context: str) -> float: result = await bidi_session.script.call_function( function_declaration="""() => { return window.devicePixelRatio; @@ -97,7 +87,7 @@ async def get_device_pixel_ratio(bidi_session, context): return result["value"] -async def get_viewport_dimensions(bidi_session, context): +async def get_viewport_dimensions(bidi_session, context: str): expression = """ ({ height: window.innerHeight || document.documentElement.clientHeight, @@ -113,7 +103,7 @@ async def get_viewport_dimensions(bidi_session, context): return remote_mapping_to_dict(result["value"]) -def remote_mapping_to_dict(js_object): +def remote_mapping_to_dict(js_object) -> Dict: obj = {} for key, value in js_object: obj[key] = value["value"] diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/__init__.py index e076885859e..8abf012f276 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/__init__.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/__init__.py @@ -1,3 +1,7 @@ +from typing import Any, Mapping + +from webdriver.bidi.modules.script import ContextTarget + from .. import ( any_int, any_string, @@ -64,3 +68,13 @@ def assert_navigation_info(event, expected_navigation_info): if "url" in expected_navigation_info: assert event["url"] == expected_navigation_info["url"] + + +async def get_visibility_state(bidi_session, context: Mapping[str, Any]) -> str: + result = await bidi_session.script.call_function( + function_declaration="""() => { + return document.visibilityState; + }""", + target=ContextTarget(context["context"]), + await_promise=False) + return result["value"] diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/activate/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/activate/__init__.py new file mode 100644 index 00000000000..5d0b52a5ac4 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/activate/__init__.py @@ -0,0 +1,16 @@ +from typing import Any, Mapping + +from webdriver.bidi.modules.script import ContextTarget + + +async def is_selector_focused(bidi_session, context: Mapping[str, Any], selector: str) -> bool: + result = await bidi_session.script.call_function( + function_declaration="""(selector) => { + return document.querySelector(selector) === document.activeElement; + }""", + arguments=[ + {"type": "string", "value": selector}, + ], + target=ContextTarget(context["context"]), + await_promise=False) + return result["value"] diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/activate/activate.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/activate/activate.py new file mode 100644 index 00000000000..3d20a4f6464 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/activate/activate.py @@ -0,0 +1,70 @@ +import pytest + +from webdriver.bidi.modules.script import ContextTarget +from . import get_visibility_state, is_selector_focused + +@pytest.mark.asyncio +async def test_activate(bidi_session, new_tab): + assert await get_visibility_state(bidi_session, new_tab) == 'hidden' + + await bidi_session.browsing_context.activate(context=new_tab["context"]) + + assert await get_visibility_state(bidi_session, new_tab) == 'visible' + + +@pytest.mark.asyncio +async def test_deactivates_other_contexts(bidi_session, new_tab, top_context): + await bidi_session.browsing_context.activate(context=top_context["context"]) + + assert await get_visibility_state(bidi_session, top_context) == 'visible' + assert await get_visibility_state(bidi_session, new_tab) == 'hidden' + + await bidi_session.browsing_context.activate(context=new_tab["context"]) + + assert await get_visibility_state(bidi_session, top_context) == 'hidden' + assert await get_visibility_state(bidi_session, new_tab) == 'visible' + + +@pytest.mark.asyncio +async def test_keeps_focused_area(bidi_session, inline, new_tab, top_context): + await bidi_session.browsing_context.activate(context=new_tab["context"]) + assert await get_visibility_state(bidi_session, new_tab) == 'visible' + + await bidi_session.browsing_context.navigate(context=new_tab["context"], + url=inline(""), + wait="complete") + + await bidi_session.script.evaluate( + expression="""document.querySelector("input").focus()""", + target=ContextTarget(new_tab["context"]), + await_promise=False) + + assert await is_selector_focused(bidi_session, new_tab, "input") + + await bidi_session.browsing_context.activate(context=top_context["context"]) + assert await get_visibility_state(bidi_session, new_tab) == 'hidden' + assert await is_selector_focused(bidi_session, new_tab, "input") + + await bidi_session.browsing_context.activate(context=new_tab["context"]) + assert await get_visibility_state(bidi_session, new_tab) == 'visible' + assert await is_selector_focused(bidi_session, new_tab, "input") + + +@pytest.mark.asyncio +async def test_double_activation(bidi_session, inline, new_tab, top_context): + await bidi_session.browsing_context.activate(context=new_tab["context"]) + assert await get_visibility_state(bidi_session, new_tab) == 'visible' + + await bidi_session.browsing_context.navigate(context=new_tab["context"], + url=inline(""), + wait="complete") + assert await is_selector_focused(bidi_session, new_tab, "input") + + await bidi_session.browsing_context.activate(context=new_tab["context"]) + assert await get_visibility_state(bidi_session, new_tab) == 'visible' + assert await is_selector_focused(bidi_session, new_tab, "input") + + # Activate again. + await bidi_session.browsing_context.activate(context=new_tab["context"]) + assert await get_visibility_state(bidi_session, new_tab) == 'visible' + assert await is_selector_focused(bidi_session, new_tab, "input") diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/activate/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/activate/invalid.py new file mode 100644 index 00000000000..06a5dafa36c --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/activate/invalid.py @@ -0,0 +1,37 @@ +import pytest +import webdriver.bidi.error as error + +pytestmark = pytest.mark.asyncio + +@pytest.mark.parametrize("value", [None, False, 42, {}, []]) +async def test_params_context_invalid_type(bidi_session, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.activate( + context=value + ) + + +@pytest.mark.parametrize("value", ["", "somestring"]) +async def test_params_context_invalid_value(bidi_session, value): + with pytest.raises(error.NoSuchFrameException): + await bidi_session.browsing_context.activate( + context=value + ) + + +@pytest.mark.asyncio +async def test_params_context_iframe(bidi_session, new_tab, get_test_page): + url = get_test_page(as_frame=True) + await bidi_session.browsing_context.navigate( + context=new_tab["context"], + url=url, + wait="complete") + + contexts = await bidi_session.browsing_context.get_tree(root=new_tab["context"]) + assert len(contexts) == 1 + frames = contexts[0]["children"] + assert len(frames) == 1 + frame_context = frames[0]["context"] + + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.activate(context=frame_context) diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/create/background.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/create/background.py new file mode 100644 index 00000000000..cf9a167022c --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/create/background.py @@ -0,0 +1,25 @@ +import pytest + +pytestmark = pytest.mark.asyncio + +from .. import get_visibility_state + +@pytest.mark.parametrize("type_hint", ["tab", "window"]) +async def test_background_default_false(bidi_session, type_hint): + new_context = await bidi_session.browsing_context.create(type_hint=type_hint) + + try: + assert await get_visibility_state(bidi_session, new_context) == "visible" + finally: + await bidi_session.browsing_context.close(context=new_context["context"]) + + +@pytest.mark.parametrize("type_hint", ["tab", "window"]) +@pytest.mark.parametrize("background", [True, False]) +async def test_background(bidi_session, type_hint, background): + new_context = await bidi_session.browsing_context.create(type_hint=type_hint, background=background) + + try: + assert await get_visibility_state(bidi_session, new_context) == ("hidden" if background else "visible") + finally: + await bidi_session.browsing_context.close(context=new_context["context"]) diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/create/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/create/invalid.py index 2d60e08476e..5de171b1b61 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/create/invalid.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/create/invalid.py @@ -51,3 +51,9 @@ async def test_params_type_invalid_type(bidi_session, value): async def test_params_type_invalid_value(bidi_session, value): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.create(type_hint=value) + + +@pytest.mark.parametrize("value", [None, '', 42, {}, []]) +async def test_params_background_invalid_type(bidi_session, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.browsing_context.create(type_hint="tab", background = value) diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py new file mode 100644 index 00000000000..affedfdf588 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/fragment_navigated.py @@ -0,0 +1,311 @@ +import pytest + +from tests.support.sync import AsyncPoll +from webdriver.bidi.modules.script import ContextTarget +from webdriver.error import TimeoutException + +from ... import any_int, any_string, recursive_compare, int_interval +from .. import assert_navigation_info + +pytestmark = pytest.mark.asyncio + +EMPTY_PAGE = "/webdriver/tests/bidi/support/empty.html" +FRAGMENT_NAVIGATED_EVENT = "browsingContext.fragmentNavigated" + + +async def test_unsubscribe(bidi_session, url, top_context): + await bidi_session.browsing_context.navigate( + context=top_context["context"], url=url(EMPTY_PAGE), wait="complete" + ) + + await bidi_session.session.subscribe(events=[FRAGMENT_NAVIGATED_EVENT]) + await bidi_session.session.unsubscribe(events=[FRAGMENT_NAVIGATED_EVENT]) + + # Track all received browsingContext.fragmentNavigated events in the events array + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener = bidi_session.add_event_listener( + FRAGMENT_NAVIGATED_EVENT, on_event + ) + + # When navigation reaches complete state, + # we should have received a browsingContext.fragmentNavigated event + await bidi_session.browsing_context.navigate( + context=top_context["context"], url=url(EMPTY_PAGE + '#foo'), wait="complete" + ) + + assert len(events) == 0 + + remove_listener() + + +async def test_subscribe(bidi_session, subscribe_events, url, new_tab, wait_for_event): + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=url(EMPTY_PAGE), wait="complete" + ) + + await subscribe_events(events=[FRAGMENT_NAVIGATED_EVENT]) + + on_entry = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + target_url = url(EMPTY_PAGE + '#foo') + await bidi_session.browsing_context.navigate(context=new_tab["context"], url=target_url, wait="complete") + event = await on_entry + + assert_navigation_info(event, {"context": new_tab["context"], "url": target_url}) + + +async def test_timestamp(bidi_session, current_time, subscribe_events, url, new_tab, wait_for_event): + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=url(EMPTY_PAGE), wait="complete" + ) + + await subscribe_events(events=[FRAGMENT_NAVIGATED_EVENT]) + + time_start = await current_time() + + on_entry = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + target_url = url(EMPTY_PAGE + '#foo') + await bidi_session.browsing_context.navigate(context=new_tab["context"], url=target_url, wait="complete") + event = await on_entry + + time_end = await current_time() + + assert_navigation_info( + event, + {"context": new_tab["context"], "timestamp": int_interval(time_start, time_end)} + ) + + +async def test_navigation_id( + bidi_session, new_tab, url, subscribe_events, wait_for_event +): + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=url(EMPTY_PAGE), wait="complete" + ) + + await subscribe_events([FRAGMENT_NAVIGATED_EVENT]) + + on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + + target_url = url(EMPTY_PAGE + '#foo'); + result = await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=target_url, wait="complete") + + recursive_compare( + { + 'context': new_tab["context"], + 'navigation': result["navigation"], + 'timestamp': any_int, + 'url': target_url + }, + await on_frame_navigated, + ) + + +async def test_url_with_base_tag(bidi_session, subscribe_events, inline, new_tab, wait_for_event): + url = inline("""""") + await bidi_session.browsing_context.navigate(context=new_tab["context"], url=url, wait="complete") + + await subscribe_events(events=[FRAGMENT_NAVIGATED_EVENT]) + + on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + + target_url = url + '#foo'; + await bidi_session.browsing_context.navigate(context=new_tab["context"], url=target_url, wait="complete") + + recursive_compare( + { + 'context': new_tab["context"], + 'url': target_url + }, + await on_frame_navigated, + ) + + +async def test_iframe( + bidi_session, new_tab, url, inline, subscribe_events, wait_for_event +): + initial_url = url(EMPTY_PAGE + '#foo') + parent_url = inline(f"") + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=parent_url, wait="complete" + ) + all_contexts = await bidi_session.browsing_context.get_tree() + + # about:blank + a new tab are top-level contexts. + assert len(all_contexts) == 2 + parent_info = all_contexts[1] + assert len(parent_info["children"]) == 1 + child_info = parent_info["children"][0] + + await subscribe_events([FRAGMENT_NAVIGATED_EVENT]) + + on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + + target_url = url(EMPTY_PAGE + '#bar') + await bidi_session.browsing_context.navigate( + context=child_info["context"], url=target_url, wait="complete") + + recursive_compare( + { + 'context': child_info["context"], + 'timestamp': any_int, + 'url': target_url + }, + await on_frame_navigated, + ) + + +@pytest.mark.parametrize( + "hash_before, hash_after", + [ + ("", "#foo"), + ("#foo", "#bar"), + ("#foo", "#foo"), + ] +) +async def test_document_location( + bidi_session, new_tab, url, subscribe_events, wait_for_event, hash_before, hash_after +): + target_context = new_tab["context"] + + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=url(EMPTY_PAGE + hash_before), wait="complete" + ) + + await subscribe_events([FRAGMENT_NAVIGATED_EVENT]) + + on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + + target_url = url(EMPTY_PAGE + hash_after) + + await bidi_session.script.call_function( + raw_result=True, + function_declaration="""(url) => { + document.location = url; + }""", + arguments=[ + {"type": "string", "value": target_url}, + ], + await_promise=False, + target=ContextTarget(target_context), + ) + + recursive_compare( + { + 'context': target_context, + 'timestamp': any_int, + 'url': target_url + }, + await on_frame_navigated, + ) + + +@pytest.mark.parametrize( + "hash_before, hash_after", + [ + ("", "#foo"), + ("#foo", "#bar"), + ("#foo", "#foo"), + ] +) +async def test_browsing_context_navigate( + bidi_session, new_tab, url, subscribe_events, wait_for_event, hash_before, hash_after +): + target_context = new_tab["context"] + + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=url(EMPTY_PAGE + hash_before), wait="complete" + ) + + await subscribe_events([FRAGMENT_NAVIGATED_EVENT]) + + on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + + target_url = url(EMPTY_PAGE + hash_after) + + await bidi_session.browsing_context.navigate( + context=target_context, url=target_url, wait="complete") + + recursive_compare( + { + 'context': target_context, + 'timestamp': any_int, + 'url': target_url + }, + await on_frame_navigated, + ) + + +@pytest.mark.parametrize("type_hint", ["tab", "window"]) +async def test_new_context(bidi_session, subscribe_events, type_hint): + await subscribe_events(events=[FRAGMENT_NAVIGATED_EVENT]) + + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener = bidi_session.add_event_listener(FRAGMENT_NAVIGATED_EVENT, on_event) + + await bidi_session.browsing_context.create(type_hint=type_hint) + + wait = AsyncPoll(bidi_session, timeout=0.5) + with pytest.raises(TimeoutException): + await wait.until(lambda _: len(events) > 0) + + remove_listener() + + +async def test_document_write(bidi_session, subscribe_events, top_context): + await subscribe_events(events=[FRAGMENT_NAVIGATED_EVENT]) + + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener = bidi_session.add_event_listener(FRAGMENT_NAVIGATED_EVENT, on_event) + + await bidi_session.script.evaluate( + expression="""document.open(); document.write("

Replaced

"); document.close();""", + target=ContextTarget(top_context["context"]), + await_promise=False + ) + + wait = AsyncPoll(bidi_session, timeout=0.5) + with pytest.raises(TimeoutException): + await wait.until(lambda _: len(events) > 0) + + remove_listener() + + +@pytest.mark.parametrize( + "before, after", + [ + ("", "?foo"), + ("#foo", ""), + ] +) +async def test_regular_navigation(bidi_session, subscribe_events, url, new_tab, before, after): + await bidi_session.browsing_context.navigate(context=new_tab["context"], url=url(EMPTY_PAGE) + before, wait="complete") + + await subscribe_events(events=[FRAGMENT_NAVIGATED_EVENT]) + + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener = bidi_session.add_event_listener(FRAGMENT_NAVIGATED_EVENT, on_event) + + await bidi_session.browsing_context.navigate(context=new_tab["context"], url=url(EMPTY_PAGE + after), wait="complete") + + wait = AsyncPoll(bidi_session, timeout=0.5) + with pytest.raises(TimeoutException): + await wait.until(lambda _: len(events) > 0) + + remove_listener() diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py new file mode 100644 index 00000000000..5343b432605 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/fragment_navigated/history_api.py @@ -0,0 +1,56 @@ +import pytest + +from webdriver.bidi.modules.script import ContextTarget + +from ... import any_int, recursive_compare + +pytestmark = pytest.mark.asyncio + +EMPTY_PAGE = "/webdriver/tests/bidi/support/empty.html" +FRAGMENT_NAVIGATED_EVENT = "browsingContext.fragmentNavigated" + + +@pytest.mark.parametrize( + "hash_before, hash_after", + [ + ("", "#foo"), + ("#foo", "#bar"), + ("#foo", "#foo"), + ("#bar", ""), + ] +) +async def test_history_push_state( + bidi_session, new_tab, url, subscribe_events, wait_for_event, hash_before, hash_after +): + target_context = new_tab["context"] + + await bidi_session.browsing_context.navigate( + context=new_tab["context"], url=url(EMPTY_PAGE + hash_before), wait="complete" + ) + + await subscribe_events([FRAGMENT_NAVIGATED_EVENT]) + + on_frame_navigated = wait_for_event(FRAGMENT_NAVIGATED_EVENT) + + target_url = url(EMPTY_PAGE + hash_after) + + await bidi_session.script.call_function( + raw_result=True, + function_declaration="""(url) => { + history.pushState(null, null, url); + }""", + arguments=[ + {"type": "string", "value": target_url}, + ], + await_promise=False, + target=ContextTarget(target_context), + ) + + recursive_compare( + { + 'context': target_context, + 'timestamp': any_int, + 'url': target_url + }, + await on_frame_navigated, + ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/invalid.py index a649972ae18..87f98352c6e 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/invalid.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/set_viewport/invalid.py @@ -3,8 +3,10 @@ import pytest import webdriver.bidi.error as error +pytestmark = pytest.mark.asyncio + + @pytest.mark.parametrize("value", [None, False, 42, {}, []]) -@pytest.mark.asyncio async def test_params_context_invalid_type(bidi_session, value): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.set_viewport(context=value, viewport={ @@ -13,13 +15,11 @@ async def test_params_context_invalid_type(bidi_session, value): }) -@pytest.mark.asyncio async def test_params_context_invalid_value(bidi_session): with pytest.raises(error.NoSuchFrameException): await bidi_session.browsing_context.set_viewport(context="_invalid_") -@pytest.mark.asyncio async def test_params_context_iframe(bidi_session, new_tab, get_test_page): url = get_test_page(as_frame=True) await bidi_session.browsing_context.navigate( @@ -38,14 +38,12 @@ async def test_params_context_iframe(bidi_session, new_tab, get_test_page): @pytest.mark.parametrize("viewport", [False, 42, "", {}, [], {"width": 100}, {"height": 100}]) -@pytest.mark.asyncio async def test_params_viewport_invalid_type(bidi_session, new_tab, viewport): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.set_viewport(context=new_tab["context"], viewport=viewport) -@pytest.mark.parametrize("width", [None, False, "", {}, []]) -@pytest.mark.asyncio +@pytest.mark.parametrize("width", [None, False, "", 42.1, {}, []]) async def test_params_viewport_width_invalid_type(bidi_session, new_tab, width): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.set_viewport(context=new_tab["context"], viewport={ @@ -54,8 +52,7 @@ async def test_params_viewport_width_invalid_type(bidi_session, new_tab, width): }) -@pytest.mark.parametrize("height", [None, False, "", {}, []]) -@pytest.mark.asyncio +@pytest.mark.parametrize("height", [None, False, "", 42.1, {}, []]) async def test_params_viewport_height_invalid_type(bidi_session, new_tab, height): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.set_viewport(context=new_tab["context"], viewport={ @@ -69,7 +66,6 @@ async def test_params_viewport_height_invalid_type(bidi_session, new_tab, height {"width": 100, "height": -1}, {"width": -1, "height": -1}, ], ids=["width negative", "height negative", "both negative"]) -@pytest.mark.asyncio async def test_params_viewport_invalid_value(bidi_session, new_tab, viewport): with pytest.raises(error.InvalidArgumentException): await bidi_session.browsing_context.set_viewport(context=new_tab["context"], viewport=viewport) diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/input/__init__.py index 7aa3355929e..17f1ae6eb3e 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/input/__init__.py +++ b/tests/wpt/tests/webdriver/tests/bidi/input/__init__.py @@ -18,7 +18,7 @@ async def get_events(bidi_session, context): # example: turn "U+d83d" (6 chars) into u"\ud83d" (1 char) if "key" in e and e["key"].startswith("U+"): key = e["key"] - hex_suffix = key[key.index("+") + 1 :] + hex_suffix = key[key.index("+") + 1:] e["key"] = chr(int(hex_suffix, 16)) # WebKit sets code as 'Unidentified' for unidentified key codes, but diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/conftest.py b/tests/wpt/tests/webdriver/tests/bidi/input/conftest.py index 71a1152729a..4cb61f88201 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/input/conftest.py +++ b/tests/wpt/tests/webdriver/tests/bidi/input/conftest.py @@ -3,7 +3,6 @@ import pytest_asyncio from webdriver.bidi.modules.script import ContextTarget -from tests.support.keys import Keys @pytest.fixture def get_focused_key_input(bidi_session, top_context): diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/__init__.py index e9be0fe6e8c..fb5bffaebc2 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/__init__.py +++ b/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/__init__.py @@ -2,12 +2,17 @@ from webdriver.bidi.modules.script import ContextTarget from ... import get_viewport_dimensions, remote_mapping_to_dict + async def get_inview_center_bidi(bidi_session, context, element): - elem_rect = await get_element_rect(bidi_session, context=context, element=element) - viewport_rect = await get_viewport_dimensions(bidi_session, context=context) + elem_rect = await get_element_rect(bidi_session, + context=context, + element=element) + viewport_rect = await get_viewport_dimensions(bidi_session, + context=context) x = { - "left": max(0, min(elem_rect["x"], elem_rect["x"] + elem_rect["width"])), + "left": max(0, min(elem_rect["x"], + elem_rect["x"] + elem_rect["width"])), "right": min( viewport_rect["width"], max(elem_rect["x"], elem_rect["x"] + elem_rect["width"]), @@ -15,7 +20,8 @@ async def get_inview_center_bidi(bidi_session, context, element): } y = { - "top": max(0, min(elem_rect["y"], elem_rect["y"] + elem_rect["height"])), + "top": max(0, min(elem_rect["y"], + elem_rect["y"] + elem_rect["height"])), "bottom": min( viewport_rect["height"], max(elem_rect["y"], elem_rect["y"] + elem_rect["height"]), diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/invalid.py index 2fb45cd8321..19b7a57dd11 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/invalid.py +++ b/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/invalid.py @@ -47,7 +47,7 @@ async def test_params_actions_invalid_value_multiple_codepoints( @pytest.mark.parametrize("missing", ["x", "y"]) async def test_params_actions_missing_coordinates(bidi_session, top_context, missing): actions = Actions() - pointer_input_source = actions.add_pointer().pointer_move(x=0, y=0) + actions.add_pointer().pointer_move(x=0, y=0) json_actions = actions.to_json() pointer_input_source_json = json_actions[-1]["actions"] @@ -64,7 +64,7 @@ async def test_params_actions_missing_wheel_property( bidi_session, top_context, missing ): actions = Actions() - wheel_input_source = actions.add_wheel().scroll(x=0, y=0, delta_x=5, delta_y=10) + actions.add_wheel().scroll(x=0, y=0, delta_x=5, delta_y=10) json_actions = actions.to_json() wheel_input_actions_json = json_actions[-1]["actions"] @@ -162,6 +162,7 @@ async def test_params_actions_origin_invalid_value_serialized_element( actions=actions, context=top_context["context"] ) + @pytest.mark.parametrize( "expression", [ diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/key_events.py b/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/key_events.py index 79cecce5ced..f01f327b234 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/key_events.py +++ b/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/key_events.py @@ -20,9 +20,10 @@ pytestmark = pytest.mark.asyncio (Keys.ESCAPE, "ESCAPE"), (Keys.RIGHT, "RIGHT"), ], + ) async def test_non_printable_key_sends_events( - bidi_session, top_context, setup_key_test, key, event + bidi_session, top_context, key, event ): code = ALL_EVENTS[event]["code"] value = ALL_EVENTS[event]["key"] @@ -143,11 +144,9 @@ async def test_key_printable_key( @pytest.mark.parametrize("use_keyup", [True, False]) -async def test_key_printable_sequence( - bidi_session, top_context, setup_key_test, use_keyup -): +async def test_key_printable_sequence(bidi_session, top_context, use_keyup): actions = Actions() - key_source = actions.add_key() + actions.add_key() if use_keyup: actions.add_key().send_keys("ab") else: @@ -166,7 +165,7 @@ async def test_key_printable_sequence( {"code": "KeyB", "key": "b", "type": "keypress"}, {"code": "KeyB", "key": "b", "type": "keyup"}, ] - expected = [e for e in expected if use_keyup or e["type"] is not "keyup"] + expected = [e for e in expected if use_keyup or e["type"] != "keyup"] (events, expected) = filter_supported_key_events(all_events, expected) assert events == expected @@ -232,7 +231,7 @@ async def test_key_special_key_sends_keydown( assert len(keys_value) == 0 -async def test_key_space(bidi_session, top_context, setup_key_test): +async def test_key_space(bidi_session, top_context): actions = Actions() ( actions.add_key() @@ -257,7 +256,7 @@ async def test_key_space(bidi_session, top_context, setup_key_test): assert events[0] == events[1] -async def test_keyup_only_sends_no_events(bidi_session, top_context, setup_key_test): +async def test_keyup_only_sends_no_events(bidi_session, top_context): actions = Actions() actions.add_key().key_up("a") await bidi_session.input.perform_actions( diff --git a/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/pointer_origin.py b/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/pointer_origin.py index 1f67e6700ce..8667574602d 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/pointer_origin.py +++ b/tests/wpt/tests/webdriver/tests/bidi/input/perform_actions/pointer_origin.py @@ -3,10 +3,6 @@ import pytest from webdriver.bidi.modules.input import Actions, get_element_origin from webdriver.bidi.modules.script import ContextTarget -from tests.support.asserts import assert_move_to_coordinates -from tests.support.helpers import filter_dict - -from .. import get_events from . import ( get_inview_center_bidi, remote_mapping_to_dict, @@ -26,10 +22,12 @@ async def get_click_coordinates(bidi_session, context): return remote_mapping_to_dict(result["value"]) -async def test_viewport_inside(bidi_session, top_context, get_actions_origin_page): +async def test_viewport_inside(bidi_session, top_context, + get_actions_origin_page): point = {"x": 50, "y": 50} - url = get_actions_origin_page("width: 100px; height: 50px; background: green;") + url = get_actions_origin_page( + "width: 100px; height: 50px; background: green;") await bidi_session.browsing_context.navigate( context=top_context["context"], url=url, @@ -38,20 +36,22 @@ async def test_viewport_inside(bidi_session, top_context, get_actions_origin_pag actions = Actions() actions.add_pointer().pointer_move(x=point["x"], y=point["y"]) - await bidi_session.input.perform_actions( - actions=actions, context=top_context["context"] - ) + await bidi_session.input.perform_actions(actions=actions, + context=top_context["context"]) - click_coords = await get_click_coordinates(bidi_session, context=top_context) + click_coords = await get_click_coordinates(bidi_session, + context=top_context) assert click_coords["x"] == pytest.approx(point["x"], abs=1.0) assert click_coords["y"] == pytest.approx(point["y"], abs=1.0) -async def test_pointer_inside(bidi_session, top_context, get_actions_origin_page): +async def test_pointer_inside(bidi_session, top_context, + get_actions_origin_page): start_point = {"x": 50, "y": 50} offset = {"x": 10, "y": 5} - url = get_actions_origin_page("width: 100px; height: 50px; background: green;") + url = get_actions_origin_page( + "width: 100px; height: 50px; background: green;") await bidi_session.browsing_context.navigate( context=top_context["context"], url=url, @@ -59,19 +59,20 @@ async def test_pointer_inside(bidi_session, top_context, get_actions_origin_page ) actions = Actions() - ( - actions.add_pointer() - .pointer_move(x=start_point["x"], y=start_point["y"]) - .pointer_move(x=offset["x"], y=offset["y"], origin="pointer") - ) + (actions.add_pointer().pointer_move( + x=start_point["x"], y=start_point["y"]).pointer_move(x=offset["x"], + y=offset["y"], + origin="pointer")) - await bidi_session.input.perform_actions( - actions=actions, context=top_context["context"] - ) + await bidi_session.input.perform_actions(actions=actions, + context=top_context["context"]) - click_coords = await get_click_coordinates(bidi_session, context=top_context) - assert click_coords["x"] == pytest.approx(start_point["x"] + offset["x"], abs=1.0) - assert click_coords["y"] == pytest.approx(start_point["y"] + offset["y"], abs=1.0) + click_coords = await get_click_coordinates(bidi_session, + context=top_context) + assert click_coords["x"] == pytest.approx(start_point["x"] + offset["x"], + abs=1.0) + assert click_coords["y"] == pytest.approx(start_point["y"] + offset["y"], + abs=1.0) @pytest.mark.parametrize( @@ -101,23 +102,28 @@ async def test_element_center_point_with_offset( ) elem = await get_element("#inner") - center = await get_inview_center_bidi(bidi_session, context=top_context, element=elem) + center = await get_inview_center_bidi(bidi_session, + context=top_context, + element=elem) actions = Actions() - actions.add_pointer().pointer_move(x=offset_x, y=offset_y, origin=get_element_origin(elem)) - await bidi_session.input.perform_actions( - actions=actions, context=top_context["context"] - ) + actions.add_pointer().pointer_move(x=offset_x, + y=offset_y, + origin=get_element_origin(elem)) + await bidi_session.input.perform_actions(actions=actions, + context=top_context["context"]) - click_coords = await get_click_coordinates(bidi_session, context=top_context) + click_coords = await get_click_coordinates(bidi_session, + context=top_context) assert click_coords["x"] == pytest.approx(center["x"] + offset_x, abs=1.0) assert click_coords["y"] == pytest.approx(center["y"] + offset_y, abs=1.0) -async def test_element_larger_than_viewport( - bidi_session, top_context, get_actions_origin_page, get_element -): - url = get_actions_origin_page("width: 300vw; height: 300vh; background: green;") +async def test_element_larger_than_viewport(bidi_session, top_context, + get_actions_origin_page, + get_element): + url = get_actions_origin_page( + "width: 300vw; height: 300vh; background: green;") await bidi_session.browsing_context.navigate( context=top_context["context"], url=url, @@ -125,14 +131,18 @@ async def test_element_larger_than_viewport( ) elem = await get_element("#inner") - center = await get_inview_center_bidi(bidi_session, context=top_context, element=elem) + center = await get_inview_center_bidi(bidi_session, + context=top_context, + element=elem) actions = Actions() - actions.add_pointer().pointer_move(x=0, y=0, origin=get_element_origin(elem)) - await bidi_session.input.perform_actions( - actions=actions, context=top_context["context"] - ) + actions.add_pointer().pointer_move(x=0, + y=0, + origin=get_element_origin(elem)) + await bidi_session.input.perform_actions(actions=actions, + context=top_context["context"]) - click_coords = await get_click_coordinates(bidi_session, context=top_context) + click_coords = await get_click_coordinates(bidi_session, + context=top_context) assert click_coords["x"] == pytest.approx(center["x"], abs=1.0) assert click_coords["y"] == pytest.approx(center["y"], abs=1.0) diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/conftest.py b/tests/wpt/tests/webdriver/tests/bidi/network/conftest.py index 5a6c6551ff9..924d5a34c6d 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/network/conftest.py +++ b/tests/wpt/tests/webdriver/tests/bidi/network/conftest.py @@ -19,7 +19,7 @@ def fetch(bidi_session, top_context, configuration): method_arg = f"method: '{method}'," headers_arg = "" - if headers != None: + if headers is not None: headers_arg = f"headers: {json.dumps(headers)}," timeout_in_seconds = timeout_in_seconds * configuration["timeout_multiplier"] diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/script/__init__.py index de443c45780..caa1fe514aa 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/__init__.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/__init__.py @@ -1,5 +1,5 @@ +from __future__ import annotations from typing import Any, Callable, Mapping - from .. import any_int, any_string, recursive_compare @@ -60,3 +60,145 @@ def any_stack_frame(actual: Any) -> None: assert "url" in actual any_string(actual["url"]) + + +"""Format: List[(expression, expected)]""" +PRIMITIVE_VALUES: list[tuple[str, dict]] = [ + ("undefined", {"type": "undefined"}), + ("null", {"type": "null"}), + ("'foobar'", {"type": "string", "value": "foobar"}), + ("'2'", {"type": "string", "value": "2"}), + ("Number.NaN", {"type": "number", "value": "NaN"}), + ("-0", {"type": "number", "value": "-0"}), + ("Infinity", {"type": "number", "value": "Infinity"}), + ("-Infinity", {"type": "number", "value": "-Infinity"}), + ("3", {"type": "number", "value": 3}), + ("1.4", {"type": "number", "value": 1.4}), + ("true", {"type": "boolean", "value": True}), + ("false", {"type": "boolean", "value": False}), + ("42n", {"type": "bigint", "value": "42"}), +] + + +"""Format: List[(expression, expected)]""" +REMOTE_VALUES: list[tuple[str, dict]] = [ + ("(Symbol('foo'))", {"type": "symbol", },), + ( + "[1, 'foo', true, new RegExp(/foo/g), [1]]", + { + "type": "array", + "value": [ + {"type": "number", "value": 1}, + {"type": "string", "value": "foo"}, + {"type": "boolean", "value": True}, + { + "type": "regexp", + "value": { + "pattern": "foo", + "flags": "g", + }, + }, + {"type": "array"}, + ], + }, + ), + ( + "({'foo': {'bar': 'baz'}, 'qux': 'quux', 1: 'fred', '2': 'thud'})", + { + "type": "object", + "value": [ + ["1", {"type": "string", "value": "fred"}], + ["2", {"type": "string", "value": "thud"}], + ["foo", {"type": "object"}], + ["qux", {"type": "string", "value": "quux"}], + ], + }, + ), + ("(()=>{})", {"type": "function", },), + ("(function(){})", {"type": "function", },), + ("(async ()=>{})", {"type": "function", },), + ("(async function(){})", {"type": "function", },), + ("(function*() { yield 'a'; })", { + "type": "function", + }), + ( + "new RegExp(/foo/g)", + { + "type": "regexp", + "value": { + "pattern": "foo", + "flags": "g", + }, + }, + ), + ( + "new Date(1654004849000)", + { + "type": "date", + "value": "2022-05-31T13:47:29.000Z", + }, + ), + ( + "new Map([[1, 2], ['foo', 'bar'], [true, false], ['baz', [1]]])", + { + "type": "map", + "value": [ + [ + {"type": "number", "value": 1}, + {"type": "number", "value": 2}, + ], + ["foo", {"type": "string", "value": "bar"}], + [ + {"type": "boolean", "value": True}, + {"type": "boolean", "value": False}, + ], + ["baz", {"type": "array"}], + ], + }, + ), + ( + "new Set([1, 'foo', true, [1], new Map([[1,2]])])", + { + "type": "set", + "value": [ + {"type": "number", "value": 1}, + {"type": "string", "value": "foo"}, + {"type": "boolean", "value": True}, + {"type": "array"}, + {"type": "map"}, + ], + }, + ), + ("new WeakMap()", {"type": "weakmap", },), + ("new WeakSet()", {"type": "weakset", },), + ("new Error('SOME_ERROR_TEXT')", {"type": "error"},), + ("([1, 2][Symbol.iterator]())", { + "type": "iterator", + }), + ("new Proxy({}, {})", { + "type": "proxy", + }), + ("(function*() { yield 'a'; })()", { + "type": "generator", + }), + ("Promise.resolve()", {"type": "promise", },), + ("new Int32Array()", {"type": "typedarray", },), + ("new ArrayBuffer()", {"type": "arraybuffer", },), + ( + "document.createElement('div')", + { + "sharedId": any_string, + "type": "node", + 'value': { + 'attributes': {}, + 'childNodeCount': 0, + 'localName': 'div', + 'namespaceURI': 'http://www.w3.org/1999/xhtml', + 'nodeType': 1, + 'shadowRoot': None, + } + }, + ), + ("window", {"type": "window", },), + ("new URL('https://example.com')", {"type": "object", },), +] diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/arguments.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/arguments.py index 0cb571038b7..32a4a6a2b8f 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/arguments.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/arguments.py @@ -1,9 +1,8 @@ import pytest -from tests.support.sync import AsyncPoll -import webdriver.bidi.error as error -from webdriver.bidi.modules.script import ContextTarget, SerializationOptions +from webdriver.bidi.modules.script import ContextTarget -from ... import any_string, recursive_compare +from ... import recursive_compare +from .. import PRIMITIVE_VALUES @pytest.mark.asyncio @@ -20,23 +19,7 @@ async def test_default_arguments(bidi_session, top_context): @pytest.mark.asyncio -@pytest.mark.parametrize( - "argument, expected", - [ - ({"type": "undefined"}, "undefined"), - ({"type": "null"}, "null"), - ({"type": "string", "value": "foobar"}, "'foobar'"), - ({"type": "string", "value": "2"}, "'2'"), - ({"type": "number", "value": "-0"}, "-0"), - ({"type": "number", "value": "Infinity"}, "Infinity"), - ({"type": "number", "value": "-Infinity"}, "-Infinity"), - ({"type": "number", "value": 3}, "3"), - ({"type": "number", "value": 1.4}, "1.4"), - ({"type": "boolean", "value": True}, "true"), - ({"type": "boolean", "value": False}, "false"), - ({"type": "bigint", "value": "42"}, "42n"), - ], -) +@pytest.mark.parametrize("expected, argument", PRIMITIVE_VALUES) async def test_primitive_value(bidi_session, top_context, argument, expected): result = await bidi_session.script.call_function( function_declaration=f"""(arg) => {{ @@ -132,547 +115,3 @@ async def test_local_value(bidi_session, top_context, argument, expected_type): ) recursive_compare(argument, result) - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - "setup_expression, function_declaration, expected", - [ - ( - "Symbol('foo')", - "(symbol) => symbol.toString()", - {"type": "string", "value": "Symbol(foo)"}, - ), - ("[1,2]", "(array) => array[0]", {"type": "number", "value": 1}), - ( - "new RegExp('foo')", - "(regexp) => regexp.source", - {"type": "string", "value": "foo"}, - ), - ( - "new Date(1654004849000)", - "(date) => date.toISOString()", - {"type": "string", "value": "2022-05-31T13:47:29.000Z"}, - ), - ( - "new Map([['foo', 'bar']])", - "(map) => map.get('foo')", - {"type": "string", "value": "bar"}, - ), - ( - "new Set(['foo'])", - "(set) => set.has('foo')", - {"type": "boolean", "value": True}, - ), - ( - "{const weakMap = new WeakMap(); weakMap.set(weakMap, 'foo')}", - "(weakMap)=> weakMap.get(weakMap)", - {"type": "string", "value": "foo"}, - ), - ( - "{const weakSet = new WeakSet(); weakSet.add(weakSet)}", - "(weakSet)=> weakSet.has(weakSet)", - {"type": "boolean", "value": True}, - ), - ( - "new Error('error message')", - "(error) => error.message", - {"type": "string", "value": "error message"}, - ), - ( - "new SyntaxError('syntax error message')", - "(error) => error.message", - {"type": "string", "value": "syntax error message"}, - ), - ( - "new Promise((resolve) => resolve(3))", - "(promise) => promise", - {"type": "number", "value": 3}, - ), - ( - "new Int8Array(2)", - "(int8Array) => int8Array.length", - {"type": "number", "value": 2}, - ), - ( - "new ArrayBuffer(8)", - "(arrayBuffer) => arrayBuffer.byteLength", - {"type": "number", "value": 8}, - ), - ("() => true", "(func) => func()", {"type": "boolean", "value": True}), - ( - "(function() {return false;})", - "(func) => func()", - {"type": "boolean", "value": False}, - ), - ( - "window.foo = 3; window", - "(window) => window.foo", - {"type": "number", "value": 3}, - ), - ( - "window.url = new URL('https://example.com'); window.url", - "(url) => url.hostname", - {"type": "string", "value": "example.com"}, - ), - ( - "({SOME_PROPERTY:'SOME_VALUE'})", - "(obj) => obj.SOME_PROPERTY", - {"type": "string", "value": "SOME_VALUE"}, - ), - ], -) -async def test_remote_reference_argument( - bidi_session, top_context, setup_expression, function_declaration, expected -): - remote_value_result = await bidi_session.script.evaluate( - expression=setup_expression, - await_promise=False, - result_ownership="root", - target=ContextTarget(top_context["context"]), - ) - remote_value_handle = remote_value_result.get("handle") - - assert isinstance(remote_value_handle, str) - - result = await bidi_session.script.call_function( - function_declaration=function_declaration, - arguments=[{"handle": remote_value_handle}], - await_promise=True if remote_value_result["type"] == "promise" else False, - target=ContextTarget(top_context["context"]), - ) - - assert result == expected - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - "value_fn, function_declaration", - [ - ( - lambda value: value, - "function(arg) { return arg === window.SOME_OBJECT; }", - ), - ( - lambda value: ({"type": "object", "value": [["nested", value]]}), - "function(arg) { return arg.nested === window.SOME_OBJECT; }", - ), - ( - lambda value: ({"type": "array", "value": [value]}), - "function(arg) { return arg[0] === window.SOME_OBJECT; }", - ), - ( - lambda value: ({"type": "map", "value": [["foobar", value]]}), - "function(arg) { return arg.get('foobar') === window.SOME_OBJECT; }", - ), - ( - lambda value: ({"type": "set", "value": [value]}), - "function(arg) { return arg.has(window.SOME_OBJECT); }", - ), - ], -) -async def test_remote_reference_deserialization( - bidi_session, top_context, call_function, evaluate, value_fn, function_declaration -): - remote_value = await evaluate( - "window.SOME_OBJECT = { SOME_PROPERTY: 'SOME_VALUE' }; window.SOME_OBJECT", - result_ownership="root", - ) - - # Check that a remote value can be successfully deserialized as an "argument" - # parameter and compared against the original object in the page. - result = await call_function( - function_declaration=function_declaration, - arguments=[value_fn(remote_value)], - ) - assert result == {"type": "boolean", "value": True} - - # Reload the page to cleanup the state - await bidi_session.browsing_context.navigate( - context=top_context["context"], url=top_context["url"], wait="complete" - ) - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - "setup_expression, expected_node_type", - [ - ("document.querySelector('img')", 1), - ("document.querySelector('input#button').attributes[0]", 2), - ("document.querySelector('#with-text-node').childNodes[0]", 3), - ("""document.createProcessingInstruction("xml-stylesheet", "href='foo.css'")""", 7), - ("document.querySelector('#with-comment').childNodes[0]", 8), - ("document", 9), - ("document.doctype", 10), - ("document.createDocumentFragment()", 11), - ("document.querySelector('#custom-element').shadowRoot", 11), - ], - ids=[ - "element", - "attribute", - "text node", - "processing instruction", - "comment", - "document", - "doctype", - "document fragment", - "shadow root", - ] -) -async def test_remote_reference_node_argument( - bidi_session, get_test_page, top_context, setup_expression, expected_node_type -): - await bidi_session.browsing_context.navigate( - context=top_context['context'], url=get_test_page(), wait="complete" - ) - - remote_reference = await bidi_session.script.evaluate( - expression=setup_expression, - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - - result = await bidi_session.script.call_function( - function_declaration="(node) => node.nodeType", - arguments=[remote_reference], - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - - assert result == {"type": "number", "value": expected_node_type} - - -@pytest.mark.asyncio -async def test_remote_reference_node_cdata(bidi_session, inline, top_context): - xml_page = inline("""CDATA section: & ]]>.""", doctype="xml") - - await bidi_session.browsing_context.navigate( - context=top_context['context'], url=xml_page, wait="complete" - ) - - remote_reference = await bidi_session.script.evaluate( - expression="document.querySelector('foo').childNodes[1]", - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - - result = await bidi_session.script.call_function( - function_declaration="(node) => node.nodeType", - arguments=[remote_reference], - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - - assert result == {"type": "number", "value": 4} - - -@pytest.mark.asyncio -async def test_remote_reference_sharedId_precedence_over_handle( - bidi_session, get_test_page, top_context -): - await bidi_session.browsing_context.navigate( - context=top_context['context'], url=get_test_page(), wait="complete" - ) - - remote_reference = await bidi_session.script.evaluate( - expression="document.querySelector('img')", - await_promise=False, - result_ownership="root", - target=ContextTarget(top_context["context"]), - ) - - assert "handle" in remote_reference - # Invalidate shared reference to trigger a "no such node" error - remote_reference["sharedId"] = "foo" - - with pytest.raises(error.NoSuchNodeException): - await bidi_session.script.call_function( - function_declaration="(node) => node.nodeType", - arguments=[remote_reference], - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - "expression, function_declaration, expected", - [ - ( - "document.getElementsByTagName('span')", - "(collection) => collection.item(0)", - { - "type": "node", - "sharedId": any_string, - "value": { - "attributes": {}, - "childNodeCount": 0, - "children": [], - "localName": "span", - "namespaceURI": "http://www.w3.org/1999/xhtml", - "nodeType": 1 - } - } - ), - ( - "document.querySelectorAll('span')", - "(nodeList) => nodeList.item(0)", - { - "type": "node", - "sharedId": any_string, - "value": { - "attributes": {}, - "childNodeCount": 0, - "children": [], - "localName": "span", - "namespaceURI": "http://www.w3.org/1999/xhtml", - "nodeType": 1 - } - } - ), - ], ids=[ - "htmlcollection", - "nodelist" - ] -) -async def test_remote_reference_dom_collection( - bidi_session, - inline, - top_context, - call_function, - expression, - function_declaration, - expected -): - page_url = inline("""

""") - await bidi_session.browsing_context.navigate( - context=top_context['context'], url=page_url, wait="complete" - ) - - remote_value = await bidi_session.script.evaluate( - expression=expression, - result_ownership="root", - target=ContextTarget(top_context["context"]), - await_promise=False, - ) - - # Check that a remote value can be successfully deserialized as an "argument" - # parameter and the first element be extracted. - result = await call_function( - function_declaration=function_declaration, - arguments=[remote_value], - serialization_options=SerializationOptions(max_dom_depth=1), - ) - - recursive_compare(expected, result) - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - "channel, expected_data", - [ - ( - {"type": "channel", "value": {"channel": "channel_name"}}, - { - "type": "object", - "value": [ - ["foo", {"type": "string", "value": "bar"}], - [ - "baz", - { - "type": "object", - "value": [["1", {"type": "number", "value": 2}]], - }, - ], - ], - }, - ), - ( - { - "type": "channel", - "value": { - "channel": "channel_name", - "serializationOptions": { - "maxObjectDepth": 0 - }, - }, - }, - {"type": "object"}, - ), - ( - { - "type": "channel", - "value": {"channel": "channel_name", "ownership": "root"}, - }, - { - "handle": any_string, - "type": "object", - "value": [ - ["foo", {"type": "string", "value": "bar"}], - [ - "baz", - { - "type": "object", - "value": [["1", {"type": "number", "value": 2}]], - }, - ], - ], - }, - ), - ], - ids=["default", "with serializationOptions", "with ownership"], -) -async def test_channel( - bidi_session, top_context, subscribe_events, wait_for_event, channel, expected_data -): - await subscribe_events(["script.message"]) - - on_script_message = wait_for_event("script.message") - result = await bidi_session.script.call_function( - raw_result=True, - function_declaration="""(channel) => channel({'foo': 'bar', 'baz': {'1': 2}})""", - arguments=[channel], - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - event_data = await on_script_message - - recursive_compare( - { - "channel": "channel_name", - "data": expected_data, - "source": { - "realm": result["realm"], - "context": top_context["context"], - }, - }, - event_data, - ) - - -@pytest.mark.asyncio -async def test_channel_with_multiple_arguments( - bidi_session, top_context, subscribe_events, wait_for_event -): - await subscribe_events(["script.message"]) - - on_script_message = wait_for_event("script.message") - result = await bidi_session.script.call_function( - raw_result=True, - function_declaration="""(channel) => channel('will_be_send', 'will_be_ignored')""", - arguments=[{"type": "channel", "value": {"channel": "channel_name"}}], - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - - event_data = await on_script_message - - recursive_compare( - { - "channel": "channel_name", - "data": {"type": "string", "value": "will_be_send"}, - "source": { - "realm": result["realm"], - "context": top_context["context"], - }, - }, - event_data, - ) - - -@pytest.mark.asyncio -async def test_two_channels( - bidi_session, - top_context, - subscribe_events, -): - await subscribe_events(["script.message"]) - - # Track all received script.message events in the events array - events = [] - - async def on_event(method, data): - events.append(data) - - remove_listener = bidi_session.add_event_listener("script.message", on_event) - - result = await bidi_session.script.call_function( - raw_result=True, - function_declaration="""(channel_1, channel_2) => { - channel_1('message_from_channel_1'); - channel_2('message_from_channel_2') - }""", - arguments=[ - {"type": "channel", "value": {"channel": "channel_name_1"}}, - {"type": "channel", "value": {"channel": "channel_name_2"}}, - ], - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - - # Wait for both events - wait = AsyncPoll(bidi_session, timeout=0.5) - await wait.until(lambda _: len(events) == 2) - - recursive_compare( - { - "channel": "channel_name_1", - "data": {"type": "string", "value": "message_from_channel_1"}, - "source": { - "realm": result["realm"], - "context": top_context["context"], - }, - }, - events[0], - ) - - recursive_compare( - { - "channel": "channel_name_2", - "data": {"type": "string", "value": "message_from_channel_2"}, - "source": { - "realm": result["realm"], - "context": top_context["context"], - }, - }, - events[1], - ) - - remove_listener() - - -@pytest.mark.asyncio -async def test_channel_and_nonchannel_arguments( - bidi_session, - top_context, - wait_for_event, - subscribe_events, -): - await subscribe_events(["script.message"]) - - on_script_message = wait_for_event("script.message") - result = await bidi_session.script.call_function( - raw_result=True, - function_declaration="""(string, channel) => { - channel(string); - }""", - arguments=[ - {"type": "string", "value": "foo"}, - {"type": "channel", "value": {"channel": "channel_name"}}, - ], - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - event_data = await on_script_message - - recursive_compare( - { - "channel": "channel_name", - "data": {"type": "string", "value": "foo"}, - "source": { - "realm": result["realm"], - "context": top_context["context"], - }, - }, - event_data, - ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/await_promise.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/await_promise.py index f31d35cd801..1711b0be62d 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/await_promise.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/await_promise.py @@ -2,8 +2,7 @@ import pytest from webdriver.bidi.modules.script import ContextTarget, ScriptEvaluateResultException -from ... import any_int, any_string, recursive_compare -from .. import any_stack_trace +from ... import recursive_compare @pytest.mark.asyncio diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/channel.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/channel.py new file mode 100644 index 00000000000..730f16a13aa --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/channel.py @@ -0,0 +1,216 @@ +import pytest +from tests.support.sync import AsyncPoll +from webdriver.bidi.modules.script import ContextTarget + +from ... import any_string, recursive_compare + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + "channel, expected_data", + [ + ( + {"type": "channel", "value": {"channel": "channel_name"}}, + { + "type": "object", + "value": [ + ["foo", {"type": "string", "value": "bar"}], + [ + "baz", + { + "type": "object", + "value": [["1", {"type": "number", "value": 2}]], + }, + ], + ], + }, + ), + ( + { + "type": "channel", + "value": { + "channel": "channel_name", + "serializationOptions": { + "maxObjectDepth": 0 + }, + }, + }, + {"type": "object"}, + ), + ( + { + "type": "channel", + "value": {"channel": "channel_name", "ownership": "root"}, + }, + { + "handle": any_string, + "type": "object", + "value": [ + ["foo", {"type": "string", "value": "bar"}], + [ + "baz", + { + "type": "object", + "value": [["1", {"type": "number", "value": 2}]], + }, + ], + ], + }, + ), + ], + ids=["default", "with serializationOptions", "with ownership"], +) +async def test_channel( + bidi_session, top_context, subscribe_events, wait_for_event, channel, expected_data +): + await subscribe_events(["script.message"]) + + on_script_message = wait_for_event("script.message") + result = await bidi_session.script.call_function( + raw_result=True, + function_declaration="""(channel) => channel({'foo': 'bar', 'baz': {'1': 2}})""", + arguments=[channel], + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + event_data = await on_script_message + + recursive_compare( + { + "channel": "channel_name", + "data": expected_data, + "source": { + "realm": result["realm"], + "context": top_context["context"], + }, + }, + event_data, + ) + + +@pytest.mark.asyncio +async def test_channel_with_multiple_arguments( + bidi_session, top_context, subscribe_events, wait_for_event +): + await subscribe_events(["script.message"]) + + on_script_message = wait_for_event("script.message") + result = await bidi_session.script.call_function( + raw_result=True, + function_declaration="""(channel) => channel('will_be_send', 'will_be_ignored')""", + arguments=[{"type": "channel", "value": {"channel": "channel_name"}}], + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + + event_data = await on_script_message + + recursive_compare( + { + "channel": "channel_name", + "data": {"type": "string", "value": "will_be_send"}, + "source": { + "realm": result["realm"], + "context": top_context["context"], + }, + }, + event_data, + ) + + +@pytest.mark.asyncio +async def test_two_channels( + bidi_session, + top_context, + subscribe_events, +): + await subscribe_events(["script.message"]) + + # Track all received script.message events in the events array + events = [] + + async def on_event(method, data): + events.append(data) + + remove_listener = bidi_session.add_event_listener("script.message", on_event) + + result = await bidi_session.script.call_function( + raw_result=True, + function_declaration="""(channel_1, channel_2) => { + channel_1('message_from_channel_1'); + channel_2('message_from_channel_2') + }""", + arguments=[ + {"type": "channel", "value": {"channel": "channel_name_1"}}, + {"type": "channel", "value": {"channel": "channel_name_2"}}, + ], + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + + # Wait for both events + wait = AsyncPoll(bidi_session, timeout=0.5) + await wait.until(lambda _: len(events) == 2) + + recursive_compare( + { + "channel": "channel_name_1", + "data": {"type": "string", "value": "message_from_channel_1"}, + "source": { + "realm": result["realm"], + "context": top_context["context"], + }, + }, + events[0], + ) + + recursive_compare( + { + "channel": "channel_name_2", + "data": {"type": "string", "value": "message_from_channel_2"}, + "source": { + "realm": result["realm"], + "context": top_context["context"], + }, + }, + events[1], + ) + + remove_listener() + + +@pytest.mark.asyncio +async def test_channel_and_nonchannel_arguments( + bidi_session, + top_context, + wait_for_event, + subscribe_events, +): + await subscribe_events(["script.message"]) + + on_script_message = wait_for_event("script.message") + result = await bidi_session.script.call_function( + raw_result=True, + function_declaration="""(string, channel) => { + channel(string); + }""", + arguments=[ + {"type": "string", "value": "foo"}, + {"type": "channel", "value": {"channel": "channel_name"}}, + ], + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + event_data = await on_script_message + + recursive_compare( + { + "channel": "channel_name", + "data": {"type": "string", "value": "foo"}, + "source": { + "realm": result["realm"], + "context": top_context["context"], + }, + }, + event_data, + ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/exception_details.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/exception_details.py index 97f38d5aaae..25b27e407db 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/exception_details.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/exception_details.py @@ -2,7 +2,35 @@ import pytest from webdriver.bidi.modules.script import ContextTarget, ScriptEvaluateResultException from ... import any_int, any_string, recursive_compare -from .. import any_stack_trace +from .. import any_stack_trace, PRIMITIVE_VALUES, REMOTE_VALUES + + +@pytest.mark.asyncio +@pytest.mark.parametrize("expression, expected", PRIMITIVE_VALUES + REMOTE_VALUES) +@pytest.mark.asyncio +async def test_exception_details(bidi_session, top_context, expression, expected): + function_declaration = f"()=>{{ throw {expression} }}" + + with pytest.raises(ScriptEvaluateResultException) as exception: + await bidi_session.script.call_function( + function_declaration=function_declaration, + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + + recursive_compare( + { + "realm": any_string, + "exceptionDetails": { + "columnNumber": any_int, + "exception": expected, + "lineNumber": any_int, + "stackTrace": any_stack_trace, + "text": any_string, + }, + }, + exception.value.result, + ) @pytest.mark.asyncio @@ -28,159 +56,6 @@ async def test_invalid_function(bidi_session, top_context): ) -@pytest.mark.asyncio -@pytest.mark.parametrize("await_promise", [True, False]) -@pytest.mark.parametrize( - "expression, expected", - [ - ("undefined", {"type": "undefined"}), - ("null", {"type": "null"}), - ("'foobar'", {"type": "string", "value": "foobar"}), - ("'2'", {"type": "string", "value": "2"}), - ("Number.NaN", {"type": "number", "value": "NaN"}), - ("-0", {"type": "number", "value": "-0"}), - ("Infinity", {"type": "number", "value": "Infinity"}), - ("-Infinity", {"type": "number", "value": "-Infinity"}), - ("3", {"type": "number", "value": 3}), - ("1.4", {"type": "number", "value": 1.4}), - ("true", {"type": "boolean", "value": True}), - ("false", {"type": "boolean", "value": False}), - ("42n", {"type": "bigint", "value": "42"}), - ("(Symbol('foo'))", {"type": "symbol", },), - ( - "[1, 'foo', true, new RegExp(/foo/g), [1]]", - { - "type": "array", - "value": [ - {"type": "number", "value": 1}, - {"type": "string", "value": "foo"}, - {"type": "boolean", "value": True}, - { - "type": "regexp", - "value": { - "pattern": "foo", - "flags": "g", - }, - }, - {"type": "array"}, - ], - }, - ), - ( - "({'foo': {'bar': 'baz'}, 'qux': 'quux'})", - { - "type": "object", - "value": [ - ["foo", {"type": "object"}], - ["qux", {"type": "string", "value": "quux"}], - ], - }, - ), - ("(()=>{})", {"type": "function", },), - ("(function(){})", {"type": "function", },), - ("(async ()=>{})", {"type": "function", },), - ("(async function(){})", {"type": "function", },), - ( - "new RegExp(/foo/g)", - { - "type": "regexp", - "value": { - "pattern": "foo", - "flags": "g", - }, - }, - ), - ( - "new Date(1654004849000)", - { - "type": "date", - "value": "2022-05-31T13:47:29.000Z", - }, - ), - ( - "new Map([[1, 2], ['foo', 'bar'], [true, false], ['baz', [1]]])", - { - "type": "map", - "value": [ - [ - {"type": "number", "value": 1}, - {"type": "number", "value": 2}, - ], - ["foo", {"type": "string", "value": "bar"}], - [ - {"type": "boolean", "value": True}, - {"type": "boolean", "value": False}, - ], - ["baz", {"type": "array"}], - ], - }, - ), - ( - "new Set([1, 'foo', true, [1], new Map([[1,2]])])", - { - "type": "set", - "value": [ - {"type": "number", "value": 1}, - {"type": "string", "value": "foo"}, - {"type": "boolean", "value": True}, - {"type": "array"}, - {"type": "map"}, - ], - }, - ), - ("new WeakMap()", {"type": "weakmap", },), - ("new WeakSet()", {"type": "weakset", },), - ("new Error('SOME_ERROR_TEXT')", {"type": "error"},), - # TODO(sadym): add `iterator` test. - # TODO(sadym): add `generator` test. - # TODO(sadym): add `proxy` test. - ("Promise.resolve()", {"type": "promise", },), - ("new Int32Array()", {"type": "typedarray", },), - ("new ArrayBuffer()", {"type": "arraybuffer", },), - ( - "document.createElement('div')", - { - "type": "node", - 'value': { - 'attributes': {}, - 'childNodeCount': 0, - 'localName': 'div', - 'namespaceURI': 'http://www.w3.org/1999/xhtml', - 'nodeType': 1, - } - }, - ), - ("window", {"type": "window", },), - ], -) -@pytest.mark.asyncio -async def test_exception_details(bidi_session, top_context, await_promise, expression, expected): - function_declaration = f"()=>{{ throw {expression} }}" - if await_promise: - function_declaration = "async" + function_declaration - - with pytest.raises(ScriptEvaluateResultException) as exception: - await bidi_session.script.call_function( - function_declaration=function_declaration, - await_promise=await_promise, - target=ContextTarget(top_context["context"]), - ) - - recursive_compare( - { - "realm": any_string, - "exceptionDetails": { - "columnNumber": any_int, - "exception": expected, - "lineNumber": any_int, - "stackTrace": any_stack_trace, - "text": any_string, - }, - }, - exception.value.result, - ) - - @pytest.mark.asyncio @pytest.mark.parametrize("chained", [True, False]) async def test_rejected_promise(bidi_session, top_context, chained): diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/exception_details_await_promise.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/exception_details_await_promise.py new file mode 100644 index 00000000000..6860158edce --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/exception_details_await_promise.py @@ -0,0 +1,33 @@ +import pytest +from webdriver.bidi.modules.script import ContextTarget, ScriptEvaluateResultException + +from ... import any_int, any_string, recursive_compare +from .. import any_stack_trace, PRIMITIVE_VALUES, REMOTE_VALUES + + +@pytest.mark.asyncio +@pytest.mark.parametrize("expression, expected", PRIMITIVE_VALUES + REMOTE_VALUES) +@pytest.mark.asyncio +async def test_exception_details(bidi_session, top_context, expression, expected): + function_declaration = f"async()=>{{ throw {expression} }}" + + with pytest.raises(ScriptEvaluateResultException) as exception: + await bidi_session.script.call_function( + function_declaration=function_declaration, + await_promise=True, + target=ContextTarget(top_context["context"]), + ) + + recursive_compare( + { + "realm": any_string, + "exceptionDetails": { + "columnNumber": any_int, + "exception": expected, + "lineNumber": any_int, + "stackTrace": any_stack_trace, + "text": any_string, + }, + }, + exception.value.result, + ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/invalid.py index 800c4e26a63..cfe5711e63b 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/invalid.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/invalid.py @@ -405,7 +405,7 @@ async def test_params_max_object_depth_invalid_value(bidi_session, top_context): @pytest.mark.parametrize("include_shadow_tree", [False, 42, {}, []]) -async def test_params_max_object_depth_invalid_type(bidi_session, top_context, include_shadow_tree): +async def test_params_include_shadow_tree_invalid_type(bidi_session, top_context, include_shadow_tree): with pytest.raises(error.InvalidArgumentException): await bidi_session.script.call_function( function_declaration="(arg) => arg", @@ -414,7 +414,7 @@ async def test_params_max_object_depth_invalid_type(bidi_session, top_context, i await_promise=True) -async def test_params_max_object_depth_invalid_value(bidi_session, top_context): +async def test_params_include_shadow_tree_invalid_value(bidi_session, top_context): with pytest.raises(error.InvalidArgumentException): await bidi_session.script.call_function( function_declaration="(arg) => arg", diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/primitive_values.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/primitive_values.py new file mode 100644 index 00000000000..d7cdd78b9c1 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/primitive_values.py @@ -0,0 +1,22 @@ +import pytest + +from webdriver.bidi.modules.script import ContextTarget +from .. import PRIMITIVE_VALUES + + +@pytest.mark.asyncio +@pytest.mark.parametrize("await_promise", [True, False]) +@pytest.mark.parametrize("expression, expected", PRIMITIVE_VALUES) +async def test_primitive_values(bidi_session, top_context, expression, + expected, await_promise): + function_declaration = f"()=>{expression}" + if await_promise: + function_declaration = "async" + function_declaration + + result = await bidi_session.script.call_function( + function_declaration=function_declaration, + await_promise=await_promise, + target=ContextTarget(top_context["context"]), + ) + + assert result == expected diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/remote_reference.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/remote_reference.py new file mode 100644 index 00000000000..8bf055e34d2 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/remote_reference.py @@ -0,0 +1,338 @@ +import pytest +import webdriver.bidi.error as error +from webdriver.bidi.modules.script import ContextTarget, SerializationOptions + +from ... import any_string, recursive_compare + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + "setup_expression, function_declaration, expected", + [ + ( + "Symbol('foo')", + "(symbol) => symbol.toString()", + {"type": "string", "value": "Symbol(foo)"}, + ), + ("[1,2]", "(array) => array[0]", {"type": "number", "value": 1}), + ( + "new RegExp('foo')", + "(regexp) => regexp.source", + {"type": "string", "value": "foo"}, + ), + ( + "new Date(1654004849000)", + "(date) => date.toISOString()", + {"type": "string", "value": "2022-05-31T13:47:29.000Z"}, + ), + ( + "new Map([['foo', 'bar']])", + "(map) => map.get('foo')", + {"type": "string", "value": "bar"}, + ), + ( + "new Set(['foo'])", + "(set) => set.has('foo')", + {"type": "boolean", "value": True}, + ), + ( + "{const weakMap = new WeakMap(); weakMap.set(weakMap, 'foo')}", + "(weakMap)=> weakMap.get(weakMap)", + {"type": "string", "value": "foo"}, + ), + ( + "{const weakSet = new WeakSet(); weakSet.add(weakSet)}", + "(weakSet)=> weakSet.has(weakSet)", + {"type": "boolean", "value": True}, + ), + ( + "new Error('error message')", + "(error) => error.message", + {"type": "string", "value": "error message"}, + ), + ( + "new SyntaxError('syntax error message')", + "(error) => error.message", + {"type": "string", "value": "syntax error message"}, + ), + ( + "new Promise((resolve) => resolve(3))", + "(promise) => promise", + {"type": "number", "value": 3}, + ), + ( + "new Int8Array(2)", + "(int8Array) => int8Array.length", + {"type": "number", "value": 2}, + ), + ( + "new ArrayBuffer(8)", + "(arrayBuffer) => arrayBuffer.byteLength", + {"type": "number", "value": 8}, + ), + ("() => true", "(func) => func()", {"type": "boolean", "value": True}), + ( + "(function() {return false;})", + "(func) => func()", + {"type": "boolean", "value": False}, + ), + ( + "window.foo = 3; window", + "(window) => window.foo", + {"type": "number", "value": 3}, + ), + ( + "window.url = new URL('https://example.com'); window.url", + "(url) => url.hostname", + {"type": "string", "value": "example.com"}, + ), + ( + "({SOME_PROPERTY:'SOME_VALUE'})", + "(obj) => obj.SOME_PROPERTY", + {"type": "string", "value": "SOME_VALUE"}, + ), + ], +) +async def test_remote_reference_argument( + bidi_session, top_context, setup_expression, function_declaration, expected +): + remote_value_result = await bidi_session.script.evaluate( + expression=setup_expression, + await_promise=False, + result_ownership="root", + target=ContextTarget(top_context["context"]), + ) + remote_value_handle = remote_value_result.get("handle") + + assert isinstance(remote_value_handle, str) + + result = await bidi_session.script.call_function( + function_declaration=function_declaration, + arguments=[{"handle": remote_value_handle}], + await_promise=True if remote_value_result["type"] == "promise" else False, + target=ContextTarget(top_context["context"]), + ) + + assert result == expected + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + "value_fn, function_declaration", + [ + ( + lambda value: value, + "function(arg) { return arg === window.SOME_OBJECT; }", + ), + ( + lambda value: ({"type": "object", "value": [["nested", value]]}), + "function(arg) { return arg.nested === window.SOME_OBJECT; }", + ), + ( + lambda value: ({"type": "array", "value": [value]}), + "function(arg) { return arg[0] === window.SOME_OBJECT; }", + ), + ( + lambda value: ({"type": "map", "value": [["foobar", value]]}), + "function(arg) { return arg.get('foobar') === window.SOME_OBJECT; }", + ), + ( + lambda value: ({"type": "set", "value": [value]}), + "function(arg) { return arg.has(window.SOME_OBJECT); }", + ), + ], +) +async def test_remote_reference_deserialization( + bidi_session, top_context, call_function, evaluate, value_fn, function_declaration +): + remote_value = await evaluate( + "window.SOME_OBJECT = { SOME_PROPERTY: 'SOME_VALUE' }; window.SOME_OBJECT", + result_ownership="root", + ) + + # Check that a remote value can be successfully deserialized as an "argument" + # parameter and compared against the original object in the page. + result = await call_function( + function_declaration=function_declaration, + arguments=[value_fn(remote_value)], + ) + assert result == {"type": "boolean", "value": True} + + # Reload the page to cleanup the state + await bidi_session.browsing_context.navigate( + context=top_context["context"], url=top_context["url"], wait="complete" + ) + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + "setup_expression, expected_node_type", + [ + ("document.querySelector('img')", 1), + ("document.querySelector('input#button').attributes[0]", 2), + ("document.querySelector('#with-text-node').childNodes[0]", 3), + ("""document.createProcessingInstruction("xml-stylesheet", "href='foo.css'")""", 7), + ("document.querySelector('#with-comment').childNodes[0]", 8), + ("document", 9), + ("document.doctype", 10), + ("document.createDocumentFragment()", 11), + ("document.querySelector('#custom-element').shadowRoot", 11), + ], + ids=[ + "element", + "attribute", + "text node", + "processing instruction", + "comment", + "document", + "doctype", + "document fragment", + "shadow root", + ] +) +async def test_remote_reference_node_argument( + bidi_session, get_test_page, top_context, setup_expression, expected_node_type +): + await bidi_session.browsing_context.navigate( + context=top_context['context'], url=get_test_page(), wait="complete" + ) + + remote_reference = await bidi_session.script.evaluate( + expression=setup_expression, + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + + result = await bidi_session.script.call_function( + function_declaration="(node) => node.nodeType", + arguments=[remote_reference], + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + + assert result == {"type": "number", "value": expected_node_type} + + +@pytest.mark.asyncio +async def test_remote_reference_node_cdata(bidi_session, inline, top_context): + xml_page = inline("""CDATA section: & ]]>.""", doctype="xml") + + await bidi_session.browsing_context.navigate( + context=top_context['context'], url=xml_page, wait="complete" + ) + + remote_reference = await bidi_session.script.evaluate( + expression="document.querySelector('foo').childNodes[1]", + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + + result = await bidi_session.script.call_function( + function_declaration="(node) => node.nodeType", + arguments=[remote_reference], + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + + assert result == {"type": "number", "value": 4} + + +@pytest.mark.asyncio +async def test_remote_reference_sharedId_precedence_over_handle( + bidi_session, get_test_page, top_context +): + await bidi_session.browsing_context.navigate( + context=top_context['context'], url=get_test_page(), wait="complete" + ) + + remote_reference = await bidi_session.script.evaluate( + expression="document.querySelector('img')", + await_promise=False, + result_ownership="root", + target=ContextTarget(top_context["context"]), + ) + + assert "handle" in remote_reference + # Invalidate shared reference to trigger a "no such node" error + remote_reference["sharedId"] = "foo" + + with pytest.raises(error.NoSuchNodeException): + await bidi_session.script.call_function( + function_declaration="(node) => node.nodeType", + arguments=[remote_reference], + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + "expression, function_declaration, expected", + [ + ( + "document.getElementsByTagName('span')", + "(collection) => collection.item(0)", + { + "type": "node", + "sharedId": any_string, + "value": { + "attributes": {}, + "childNodeCount": 0, + "children": [], + "localName": "span", + "namespaceURI": "http://www.w3.org/1999/xhtml", + "nodeType": 1 + } + } + ), + ( + "document.querySelectorAll('span')", + "(nodeList) => nodeList.item(0)", + { + "type": "node", + "sharedId": any_string, + "value": { + "attributes": {}, + "childNodeCount": 0, + "children": [], + "localName": "span", + "namespaceURI": "http://www.w3.org/1999/xhtml", + "nodeType": 1 + } + } + ), + ], ids=[ + "htmlcollection", + "nodelist" + ] +) +async def test_remote_reference_dom_collection( + bidi_session, + inline, + top_context, + call_function, + expression, + function_declaration, + expected +): + page_url = inline("""

""") + await bidi_session.browsing_context.navigate( + context=top_context['context'], url=page_url, wait="complete" + ) + + remote_value = await bidi_session.script.evaluate( + expression=expression, + result_ownership="root", + target=ContextTarget(top_context["context"]), + await_promise=False, + ) + + # Check that a remote value can be successfully deserialized as an "argument" + # parameter and the first element be extracted. + result = await call_function( + function_declaration=function_declaration, + arguments=[remote_value], + serialization_options=SerializationOptions(max_dom_depth=1), + ) + + recursive_compare(expected, result) diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/remote_values.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/remote_values.py new file mode 100644 index 00000000000..88c8c793bec --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/remote_values.py @@ -0,0 +1,45 @@ +import pytest + +from webdriver.bidi.modules.script import ContextTarget, SerializationOptions +from ... import recursive_compare +from .. import REMOTE_VALUES + +pytestmark = pytest.mark.asyncio + + +@pytest.mark.parametrize("await_promise", [True, False]) +@pytest.mark.parametrize("expression, expected", REMOTE_VALUES) +async def test_remote_values(bidi_session, top_context, await_promise, + expression, expected): + function_declaration = f"()=>{expression}" + if await_promise: + function_declaration = "async" + function_declaration + + result = await bidi_session.script.call_function( + function_declaration=function_declaration, + await_promise=await_promise, + target=ContextTarget(top_context["context"]), + serialization_options=SerializationOptions(max_object_depth=1), + ) + + recursive_compare(expected, result) + + +async def test_remote_value_promise_await(bidi_session, top_context): + result = await bidi_session.script.call_function( + function_declaration="()=>Promise.resolve(42)", + await_promise=True, + target=ContextTarget(top_context["context"]), + ) + + assert result == {"type": "number", "value": 42} + + +async def test_remote_value_promise_no_await(bidi_session, top_context): + result = await bidi_session.script.call_function( + function_declaration="()=>Promise.resolve(42)", + await_promise=False, + target=ContextTarget(top_context["context"]), + ) + + assert result == {"type": "promise"} diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/result.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/result.py deleted file mode 100644 index df989c407ee..00000000000 --- a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/result.py +++ /dev/null @@ -1,163 +0,0 @@ -import pytest - -from webdriver.bidi.modules.script import ContextTarget, SerializationOptions - -pytestmark = pytest.mark.asyncio - -@pytest.mark.parametrize("await_promise", [True, False]) -@pytest.mark.parametrize( - "expression, expected", - [ - ("undefined", {"type": "undefined"}), - ("null", {"type": "null"}), - ("'foobar'", {"type": "string", "value": "foobar"}), - ("'2'", {"type": "string", "value": "2"}), - ("Number.NaN", {"type": "number", "value": "NaN"}), - ("-0", {"type": "number", "value": "-0"}), - ("Infinity", {"type": "number", "value": "Infinity"}), - ("-Infinity", {"type": "number", "value": "-Infinity"}), - ("3", {"type": "number", "value": 3}), - ("1.4", {"type": "number", "value": 1.4}), - ("true", {"type": "boolean", "value": True}), - ("false", {"type": "boolean", "value": False}), - ("42n", {"type": "bigint", "value": "42"}), - ], -) -async def test_primitive_values(bidi_session, top_context, await_promise, expression, expected): - function_declaration = f"()=>{expression}" - if await_promise: - function_declaration = "async" + function_declaration - - result = await bidi_session.script.call_function( - function_declaration=function_declaration, - await_promise=await_promise, - target=ContextTarget(top_context["context"]), - ) - - assert result == expected - - -@pytest.mark.parametrize("await_promise", [True, False]) -@pytest.mark.parametrize( - "expression, expected", - [ - ("(Symbol('foo'))", {"type": "symbol"}), - ( - "[1, 'foo', true, new RegExp(/foo/g), [1]]", - { - "type": "array", - "value": [ - {"type": "number", "value": 1}, - {"type": "string", "value": "foo"}, - {"type": "boolean", "value": True}, - { - "type": "regexp", - "value": { - "pattern": "foo", - "flags": "g", - }, - }, - {"type": "array"}, - ], - }, - ), - ( - "({'foo': {'bar': 'baz'}, 'qux': 'quux', 1: 'fred', '2': 'thud'})", - { - "type": "object", - "value": [ - ["1", {"type": "string", "value": "fred"}], - ["2", {"type": "string", "value": "thud"}], - ["foo", {"type": "object"}], - ["qux", {"type": "string", "value": "quux"}], - ], - }, - ), - ("(()=>{})", {"type": "function"}), - ("(function(){})", {"type": "function"}), - ("(async ()=>{})", {"type": "function"}), - ("(async function(){})", {"type": "function"}), - ( - "new RegExp(/foo/g)", - {"type": "regexp", "value": {"pattern": "foo", "flags": "g"}}, - ), - ( - "new Date(1654004849000)", - {"type": "date", "value": "2022-05-31T13:47:29.000Z"}, - ), - ( - "new Map([[1, 2], ['foo', 'bar'], [true, false], ['baz', [1]]])", - { - "type": "map", - "value": [ - [ - {"type": "number", "value": 1}, - {"type": "number", "value": 2}, - ], - ["foo", {"type": "string", "value": "bar"}], - [ - {"type": "boolean", "value": True}, - {"type": "boolean", "value": False}, - ], - ["baz", {"type": "array"}], - ], - }, - ), - ( - "new Set([1, 'foo', true, [1], new Map([[1,2]])])", - { - "type": "set", - "value": [ - {"type": "number", "value": 1}, - {"type": "string", "value": "foo"}, - {"type": "boolean", "value": True}, - {"type": "array"}, - {"type": "map"}, - ], - }, - ), - ("new WeakMap()", {"type": "weakmap"}), - ("new WeakSet()", {"type": "weakset"}), - ("new Error('SOME_ERROR_TEXT')", {"type": "error"}), - # TODO(sadym): add `iterator` test. - # TODO(sadym): add `generator` test. - # TODO(sadym): add `proxy` test. - ("new Int32Array()", {"type": "typedarray"}), - ("new ArrayBuffer()", {"type": "arraybuffer"}), - ("window", {"type": "window"}), - ("new URL('https://example.com')", {"type": "object", },), - ], -) -async def test_remote_values(bidi_session, top_context, await_promise, expression, expected): - function_declaration = f"()=>{expression}" - if await_promise: - function_declaration = "async" + function_declaration - - result = await bidi_session.script.call_function( - function_declaration=function_declaration, - await_promise=await_promise, - target=ContextTarget(top_context["context"]), - serialization_options=SerializationOptions(max_object_depth=1), - ) - - assert result == expected - - -async def test_remote_value_promise_await(bidi_session, top_context): - result = await bidi_session.script.call_function( - function_declaration="()=>Promise.resolve(42)", - await_promise=True, - target=ContextTarget(top_context["context"]), - ) - - assert result == {"type": "number", "value": 42} - - -async def test_remote_value_promise_no_await(bidi_session, top_context): - result = await bidi_session.script.call_function( - function_declaration="()=>Promise.resolve(42)", - await_promise=False, - target=ContextTarget(top_context["context"]), - ) - - assert result == {"type": "promise"} diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/strict_mode.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/strict_mode.py index 1a9fd4f1082..92567132752 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/strict_mode.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/strict_mode.py @@ -1,8 +1,8 @@ import pytest from webdriver.bidi.modules.script import ContextTarget, ScriptEvaluateResultException -from ... import any_int, any_string, recursive_compare -from .. import any_stack_trace, specific_error_response +from ... import recursive_compare +from .. import specific_error_response @pytest.mark.asyncio @@ -25,7 +25,8 @@ async def test_strict_mode(bidi_session, top_context): ) assert result == { "type": "number", - "value": 1} + "value": 1, + } # Access created by the previous command `SOME_VARIABLE`. result = await bidi_session.script.call_function( @@ -35,4 +36,5 @@ async def test_strict_mode(bidi_session, top_context): ) assert result == { "type": "number", - "value": 1} + "value": 1, + } diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/this.py b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/this.py index baa4e65b285..c4f7bf06223 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/call_function/this.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/call_function/this.py @@ -15,14 +15,15 @@ async def test_this(bidi_session, top_context): "some_property", { "type": "number", - "value": 42 + "value": 42, }]]}, await_promise=False, target=ContextTarget(top_context["context"])) assert result == { 'type': 'number', - 'value': 42} + 'value': 42, + } @pytest.mark.asyncio @@ -99,7 +100,7 @@ async def test_remote_value_deserialization( "value": { "channel": "channel_name", "serializationOptions": { - "maxObjectDepth": 0 + "maxObjectDepth": 0, }, }, }, @@ -130,7 +131,7 @@ async def test_channel( function_declaration="function() { return this({'foo': 'bar'}) }", await_promise=False, target=ContextTarget(top_context["context"]), - this=channel + this=channel, ) event_data = await on_entry_added diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/conftest.py b/tests/wpt/tests/webdriver/tests/bidi/script/conftest.py index 61b1e09382e..c3d39fcb9fd 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/conftest.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/conftest.py @@ -17,9 +17,9 @@ def call_function(bidi_session, top_context): serialization_options: Optional[SerializationOptions] = None, ) -> Mapping[str, Any]: if sandbox is None: - target = ContextTarget(top_context["context"]) + target = ContextTarget(context) else: - target = ContextTarget(top_context["context"], sandbox) + target = ContextTarget(context, sandbox) result = await bidi_session.script.call_function( function_declaration=function_declaration, @@ -51,9 +51,9 @@ def evaluate(bidi_session, top_context): serialization_options: Optional[SerializationOptions] = None, ) -> Mapping[str, Any]: if sandbox is None: - target = ContextTarget(top_context["context"]) + target = ContextTarget(context) else: - target = ContextTarget(top_context["context"], sandbox) + target = ContextTarget(context, sandbox) result = await bidi_session.script.evaluate( expression=expression, diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/__init__.py index 8b137891791..e69de29bb2d 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/__init__.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/__init__.py @@ -1 +0,0 @@ - diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/await_promise.py b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/await_promise.py index e99b6575065..fd330847e15 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/await_promise.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/await_promise.py @@ -3,7 +3,7 @@ import pytest from webdriver.bidi.modules.script import ContextTarget, ScriptEvaluateResultException from ... import any_int, any_string, recursive_compare -from .. import any_stack_trace +from .. import any_stack_trace, PRIMITIVE_VALUES @pytest.mark.asyncio @@ -120,25 +120,10 @@ async def test_await_resolve_map(bidi_session, top_context): } -@pytest.mark.parametrize( - "expression, expected, type", - [ - ("undefined", None, "undefined"), - ("null", None, "null"), - ('"text"', "text", "string"), - ("42", 42, "number"), - ("Number.NaN", "NaN", "number"), - ("-0", "-0", "number"), - ("Infinity", "Infinity", "number"), - ("-Infinity", "-Infinity", "number"), - ("true", True, "boolean"), - ("false", False, "boolean"), - ("42n", "42", "bigint"), - ], -) +@pytest.mark.parametrize("expression, expected", PRIMITIVE_VALUES) @pytest.mark.asyncio async def test_await_resolve_primitive( - bidi_session, top_context, expression, expected, type + bidi_session, top_context, expression, expected ): result = await bidi_session.script.evaluate( expression=f"Promise.resolve({expression})", @@ -146,10 +131,7 @@ async def test_await_resolve_primitive( target=ContextTarget(top_context["context"]), ) - if expected is None: - assert result == {"type": type} - else: - assert result == {"type": type, "value": expected} + assert result == expected @pytest.mark.asyncio diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/evaluate.py b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/evaluate.py index 5a8cf61a170..34889877c26 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/evaluate.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/evaluate.py @@ -5,7 +5,7 @@ from ... import recursive_compare @pytest.mark.asyncio -async def test_eval(bidi_session, top_context): +async def test_evaluate(bidi_session, top_context): result = await bidi_session.script.evaluate( expression="1 + 2", target=ContextTarget(top_context["context"]), diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/exception_details.py b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/exception_details.py index fa5d5c4ae2c..f01d23e7bc9 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/exception_details.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/exception_details.py @@ -2,7 +2,33 @@ import pytest from webdriver.bidi.modules.script import ContextTarget, ScriptEvaluateResultException from ... import any_int, any_string, recursive_compare -from .. import any_stack_trace +from .. import any_stack_trace, PRIMITIVE_VALUES, REMOTE_VALUES + + +@pytest.mark.asyncio +@pytest.mark.parametrize("expression, expected", PRIMITIVE_VALUES + REMOTE_VALUES) +async def test_exception_details(bidi_session, top_context, expression, + expected): + with pytest.raises(ScriptEvaluateResultException) as exception: + await bidi_session.script.evaluate( + expression=f"throw {expression}", + target=ContextTarget(top_context["context"]), + await_promise=False, + ) + + recursive_compare( + { + "realm": any_string, + "exceptionDetails": { + "columnNumber": any_int, + "exception": expected, + "lineNumber": any_int, + "stackTrace": any_stack_trace, + "text": any_string, + }, + }, + exception.value.result, + ) @pytest.mark.asyncio @@ -28,160 +54,6 @@ async def test_invalid_script(bidi_session, top_context): ) -@pytest.mark.asyncio -@pytest.mark.parametrize("await_promise", [True, False]) -@pytest.mark.parametrize( - "expression, expected", - [ - ("undefined", {"type": "undefined"}), - ("null", {"type": "null"}), - ("'foobar'", {"type": "string", "value": "foobar"}), - ("'2'", {"type": "string", "value": "2"}), - ("Number.NaN", {"type": "number", "value": "NaN"}), - ("-0", {"type": "number", "value": "-0"}), - ("Infinity", {"type": "number", "value": "Infinity"}), - ("-Infinity", {"type": "number", "value": "-Infinity"}), - ("3", {"type": "number", "value": 3}), - ("1.4", {"type": "number", "value": 1.4}), - ("true", {"type": "boolean", "value": True}), - ("false", {"type": "boolean", "value": False}), - ("42n", {"type": "bigint", "value": "42"}), - ("(Symbol('foo'))", {"type": "symbol", },), - ( - "[1, 'foo', true, new RegExp(/foo/g), [1]]", - { - "type": "array", - "value": [ - {"type": "number", "value": 1}, - {"type": "string", "value": "foo"}, - {"type": "boolean", "value": True}, - { - "type": "regexp", - "value": { - "pattern": "foo", - "flags": "g", - }, - }, - {"type": "array"}, - ], - }, - ), - ( - "({'foo': {'bar': 'baz'}, 'qux': 'quux'})", - { - "type": "object", - "value": [ - ["foo", {"type": "object"}], - ["qux", {"type": "string", "value": "quux"}], - ], - }, - ), - ("(()=>{})", {"type": "function", },), - ("(function(){})", {"type": "function", },), - ("(async ()=>{})", {"type": "function", },), - ("(async function(){})", {"type": "function", },), - ( - "new RegExp(/foo/g)", - { - "type": "regexp", - "value": { - "pattern": "foo", - "flags": "g", - }, - }, - ), - ( - "new Date(1654004849000)", - { - "type": "date", - "value": "2022-05-31T13:47:29.000Z", - }, - ), - ( - "new Map([[1, 2], ['foo', 'bar'], [true, false], ['baz', [1]]])", - { - "type": "map", - "value": [ - [ - {"type": "number", "value": 1}, - {"type": "number", "value": 2}, - ], - ["foo", {"type": "string", "value": "bar"}], - [ - {"type": "boolean", "value": True}, - {"type": "boolean", "value": False}, - ], - ["baz", {"type": "array"}], - ], - }, - ), - ( - "new Set([1, 'foo', true, [1], new Map([[1,2]])])", - { - "type": "set", - "value": [ - {"type": "number", "value": 1}, - {"type": "string", "value": "foo"}, - {"type": "boolean", "value": True}, - {"type": "array"}, - {"type": "map"}, - ], - }, - ), - ("new WeakMap()", {"type": "weakmap", },), - ("new WeakSet()", {"type": "weakset", },), - ("new Error('SOME_ERROR_TEXT')", {"type": "error"},), - # TODO(sadym): add `iterator` test. - # TODO(sadym): add `generator` test. - # TODO(sadym): add `proxy` test. - ("Promise.resolve()", {"type": "promise", },), - ("new Int32Array()", {"type": "typedarray", },), - ("new ArrayBuffer()", {"type": "arraybuffer", },), - ( - "document.createElement('div')", - { - "type": "node", - 'value': { - 'attributes': {}, - 'childNodeCount': 0, - 'localName': 'div', - 'namespaceURI': 'http://www.w3.org/1999/xhtml', - 'nodeType': 1, - } - }, - ), - ("window", {"type": "window", },), - ], -) -@pytest.mark.asyncio -async def test_exception_details(bidi_session, top_context, await_promise, expression, expected): - if await_promise: - expression = f"Promise.reject({expression})" - else: - expression = f"throw {expression}" - - with pytest.raises(ScriptEvaluateResultException) as exception: - await bidi_session.script.evaluate( - expression=expression, - target=ContextTarget(top_context["context"]), - await_promise=await_promise, - ) - - recursive_compare( - { - "realm": any_string, - "exceptionDetails": { - "columnNumber": any_int, - "exception": expected, - "lineNumber": any_int, - "stackTrace": any_stack_trace, - "text": any_string, - }, - }, - exception.value.result, - ) - - @pytest.mark.asyncio @pytest.mark.parametrize("chained", [True, False]) async def test_rejected_promise(bidi_session, top_context, chained): diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/exception_details_await_promise.py b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/exception_details_await_promise.py new file mode 100644 index 00000000000..2a88f83db2a --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/exception_details_await_promise.py @@ -0,0 +1,32 @@ +import pytest +from webdriver.bidi.modules.script import ContextTarget, ScriptEvaluateResultException + +from ... import any_int, any_string, recursive_compare +from .. import any_stack_trace, PRIMITIVE_VALUES, REMOTE_VALUES + + +@pytest.mark.asyncio +@pytest.mark.parametrize("expression, expected", PRIMITIVE_VALUES + REMOTE_VALUES) +async def test_exception_details_await_promise( + bidi_session, top_context, expression, expected +): + with pytest.raises(ScriptEvaluateResultException) as exception: + await bidi_session.script.evaluate( + expression=f"Promise.reject({expression})", + target=ContextTarget(top_context["context"]), + await_promise=True, + ) + + recursive_compare( + { + "realm": any_string, + "exceptionDetails": { + "columnNumber": any_int, + "exception": expected, + "lineNumber": any_int, + "stackTrace": any_stack_trace, + "text": any_string, + }, + }, + exception.value.result, + ) diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/primitive_values.py b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/primitive_values.py new file mode 100644 index 00000000000..6ca053c0365 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/primitive_values.py @@ -0,0 +1,16 @@ +import pytest +from webdriver.bidi.modules.script import ContextTarget +from .. import PRIMITIVE_VALUES + + +@pytest.mark.asyncio +@pytest.mark.parametrize("expression, expected", PRIMITIVE_VALUES) +async def test_primitive_values(bidi_session, top_context, expression, + expected): + result = await bidi_session.script.evaluate( + expression=expression, + target=ContextTarget(top_context["context"]), + await_promise=True, + ) + + assert result == expected diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/remote_values.py b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/remote_values.py new file mode 100644 index 00000000000..9e6a16a59c2 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/remote_values.py @@ -0,0 +1,17 @@ +import pytest +from webdriver.bidi.modules.script import ContextTarget, SerializationOptions +from ... import recursive_compare +from .. import REMOTE_VALUES + + +@pytest.mark.asyncio +@pytest.mark.parametrize("expression, expected", REMOTE_VALUES) +async def test_remote_values(bidi_session, top_context, expression, expected): + result = await bidi_session.script.evaluate( + expression=expression, + target=ContextTarget(top_context["context"]), + await_promise=False, + serialization_options=SerializationOptions(max_object_depth=1), + ) + + recursive_compare(expected, result) diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/result.py b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/result.py deleted file mode 100644 index faea80a86b6..00000000000 --- a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/result.py +++ /dev/null @@ -1,143 +0,0 @@ -import pytest -from webdriver.bidi.modules.script import ContextTarget, SerializationOptions - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - "expression, expected", - [ - ("undefined", {"type": "undefined"}), - ("null", {"type": "null"}), - ("'foobar'", {"type": "string", "value": "foobar"}), - ("'2'", {"type": "string", "value": "2"}), - ("Number.NaN", {"type": "number", "value": "NaN"}), - ("-0", {"type": "number", "value": "-0"}), - ("Infinity", {"type": "number", "value": "Infinity"}), - ("-Infinity", {"type": "number", "value": "-Infinity"}), - ("3", {"type": "number", "value": 3}), - ("1.4", {"type": "number", "value": 1.4}), - ("true", {"type": "boolean", "value": True}), - ("false", {"type": "boolean", "value": False}), - ("42n", {"type": "bigint", "value": "42"}), - ], -) -async def test_primitive_values(bidi_session, top_context, expression, expected): - result = await bidi_session.script.evaluate( - expression=expression, - target=ContextTarget(top_context["context"]), - await_promise=True, - ) - - assert result == expected - - -@pytest.mark.asyncio -@pytest.mark.parametrize( - "expression, expected", - [ - ("(Symbol('foo'))", {"type": "symbol", },), - ( - "[1, 'foo', true, new RegExp(/foo/g), [1]]", - { - "type": "array", - "value": [ - {"type": "number", "value": 1}, - {"type": "string", "value": "foo"}, - {"type": "boolean", "value": True}, - { - "type": "regexp", - "value": { - "pattern": "foo", - "flags": "g", - }, - }, - {"type": "array"}, - ], - }, - ), - ( - "({'foo': {'bar': 'baz'}, 'qux': 'quux', 1: 'fred', '2': 'thud'})", - { - "type": "object", - "value": [ - ["1", {"type": "string", "value": "fred"}], - ["2", {"type": "string", "value": "thud"}], - ["foo", {"type": "object"}], - ["qux", {"type": "string", "value": "quux"}], - ], - }, - ), - ("(()=>{})", {"type": "function", },), - ("(function(){})", {"type": "function", },), - ("(async ()=>{})", {"type": "function", },), - ("(async function(){})", {"type": "function", },), - ( - "new RegExp(/foo/g)", - { - "type": "regexp", - "value": { - "pattern": "foo", - "flags": "g", - }, - }, - ), - ( - "new Date(1654004849000)", - { - "type": "date", - "value": "2022-05-31T13:47:29.000Z", - }, - ), - ( - "new Map([[1, 2], ['foo', 'bar'], [true, false], ['baz', [1]]])", - { - "type": "map", - "value": [ - [ - {"type": "number", "value": 1}, - {"type": "number", "value": 2}, - ], - ["foo", {"type": "string", "value": "bar"}], - [ - {"type": "boolean", "value": True}, - {"type": "boolean", "value": False}, - ], - ["baz", {"type": "array"}], - ], - }, - ), - ( - "new Set([1, 'foo', true, [1], new Map([[1,2]])])", - { - "type": "set", - "value": [ - {"type": "number", "value": 1}, - {"type": "string", "value": "foo"}, - {"type": "boolean", "value": True}, - {"type": "array"}, - {"type": "map"}, - ], - }, - ), - ("new WeakMap()", {"type": "weakmap", },), - ("new WeakSet()", {"type": "weakset", },), - ("new Error('SOME_ERROR_TEXT')", {"type": "error"},), - # TODO(sadym): add `iterator` test. - # TODO(sadym): add `generator` test. - # TODO(sadym): add `proxy` test. - ("Promise.resolve()", {"type": "promise", },), - ("new Int32Array()", {"type": "typedarray", },), - ("new ArrayBuffer()", {"type": "arraybuffer", },), - ("window", {"type": "window", },), - ("new URL('https://example.com')", {"type": "object", },), - ] -) -async def test_remote_values(bidi_session, top_context, expression, expected): - result = await bidi_session.script.evaluate( - expression=expression, - target=ContextTarget(top_context["context"]), - await_promise=False, - serialization_options=SerializationOptions(max_object_depth=1), - ) - - assert result == expected diff --git a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/strict_mode.py b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/strict_mode.py index bcaebb51f4e..386d03b08d8 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/strict_mode.py +++ b/tests/wpt/tests/webdriver/tests/bidi/script/evaluate/strict_mode.py @@ -1,8 +1,8 @@ import pytest from webdriver.bidi.modules.script import ContextTarget, ScriptEvaluateResultException -from ... import any_int, any_string, recursive_compare -from .. import any_stack_trace, specific_error_response +from ... import recursive_compare +from .. import specific_error_response @pytest.mark.asyncio diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/__init__.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/__init__.py index e69de29bb2d..af87e197d2c 100644 --- a/tests/wpt/tests/webdriver/tests/classic/perform_actions/__init__.py +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/__init__.py @@ -0,0 +1,33 @@ +def assert_pointer_events(session, expected_events, target, pointer_type): + events = session.execute_script("return window.recordedEvents;") + assert len(events) == len(expected_events) + event_types = [e["type"] for e in events] + assert expected_events == event_types + + for e in events: + assert e["target"] == target + assert e["pointerType"] == pointer_type + + +def record_pointer_events(session, element): + # Record basic mouse / pointer events on a given element. + session.execute_script( + """ + window.recordedEvents = []; + function onPointerEvent(event) { + window.recordedEvents.push({ + "pointerType": event.pointerType, + "target": event.target.id, + "type": event.type, + }); + } + arguments[0].addEventListener("pointerdown", onPointerEvent); + arguments[0].addEventListener("pointerup", onPointerEvent); + """, + args=(element,), + ) +def perform_actions(session, actions): + return session.transport.send( + "POST", + "/session/{session_id}/actions".format(session_id=session.session_id), + {"actions": actions}) diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/invalid.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/invalid.py new file mode 100644 index 00000000000..6c3f1341405 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/invalid.py @@ -0,0 +1,823 @@ +# META: timeout=long + +import pytest + +from tests.support.asserts import assert_error +from . import perform_actions + + +MAX_INT = 9007199254740991 +MIN_INT = -MAX_INT + + +def create_pointer_common_object(pointer_action, overrides): + action = { + "type": pointer_action, + "width": 0, + "height": 0, + "pressure": 0.0, + "tangentialPressure": 0.0, + "twist": 0, + "tiltX": 0, + "tiltY": 0, + } + + if pointer_action == "pointerMove": + action.update({"x": 0, "y": 0}) + else: + action.update({"button": 0}) + + action.update(overrides) + + return action + + +@pytest.mark.parametrize("value", [None, "foo", True, 42, {}]) +def test_input_source_action_sequence_invalid_type(session, value): + response = perform_actions(session, value) + assert_error(response, "invalid argument") + + +def test_input_source_action_sequence_missing_type(session): + actions = [ + { + "id": "foo", + "actions": [], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +def test_input_source_action_sequence_missing_id(session, action_type): + actions = [ + { + "type": action_type, + "actions": [], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +def test_input_source_action_sequence_missing_actions(session, action_type): + actions = [ + { + "type": action_type, + "id": "foo", + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", [None, True, 42, [], {}]) +def test_input_source_action_sequence_type_invalid_type(session, value): + actions = [ + { + "type": value, + "id": "foo", + "actions": [], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +def test_input_source_action_sequence_type_invalid_value(session): + for invalid_value in ["", "nones", "keys", "pointers", "wheels"]: + actions = [ + { + "type": invalid_value, + "id": "foo", + "actions": [], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +@pytest.mark.parametrize("value", [None, True, 42, [], {}]) +def test_input_source_action_sequence_id_invalid_type(session, action_type, value): + actions = [ + { + "type": action_type, + "id": value, + "actions": [], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +@pytest.mark.parametrize("value", [None, "foo", True, 42, {}]) +def test_input_source_action_sequence_actions_invalid_type(session, action_type, value): + actions = [ + { + "type": action_type, + "id": "foo", + "actions": value, + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", [None, "foo", True, 42, []]) +def test_input_source_action_sequence_pointer_parameters_invalid_type(session, value): + actions = [{"type": "pointer", "id": "foo", "actions": [], "parameters": value}] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", [None, True, 42, [], {}]) +def test_input_source_action_sequence_pointer_parameters_pointer_type_invalid_type( + session, value +): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [], + "parameters": { + "pointerType": value, + }, + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", ["", "mouses", "pens", "touchs"]) +def test_input_source_action_sequence_pointer_parameters_pointer_type_invalid_value( + session, value +): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [], + "parameters": { + "pointerType": value, + }, + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +@pytest.mark.parametrize("value", [None, True, 42, [], {}]) +def test_input_source_action_sequence_actions_type_invalid_type( + session, action_type, value +): + actions = [ + { + "type": action_type, + "id": "foo", + "actions": [ + { + "type": value, + "duration": 0, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +@pytest.mark.parametrize("value", ["", "pauses"]) +def test_input_source_action_sequence_actions_subtype_invalid_value( + session, action_type, value +): + actions = [ + { + "type": value, + "id": "foo", + "actions": [ + { + "type": value, + "duration": 0, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +@pytest.mark.parametrize("value", [None, "foo", True, 0.1, [], {}]) +def test_input_source_action_sequence_actions_pause_duration_invalid_type( + session, action_type, value +): + actions = [ + { + "type": action_type, + "id": "foo", + "actions": [ + { + "type": "pause", + "duration": value, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +@pytest.mark.parametrize("value", [-1, MAX_INT + 1]) +def test_input_source_action_sequence_actions_pause_duration_invalid_value( + session, action_type, value +): + actions = [ + { + "type": action_type, + "id": "foo", + "actions": [{"type": "pause", "duration": value}], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", ["", "pauses"]) +def test_null_action_type_invalid_value(session, value): + actions = [ + { + "type": "none", + "id": "foo", + "actions": [ + { + "type": value, + "duration": 0, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", ["", "keyDowns", "keyUps"]) +def test_key_action_subtype_invalid_value(session, value): + actions = [ + { + "type": "key", + "id": "foo", + "actions": [ + { + "type": value, + "value": "f", + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("key_action", ["keyDown", "keyUp"]) +@pytest.mark.parametrize("value", [None, True, 42, [], {}]) +def test_key_action_value_invalid_type(session, key_action, value): + actions = [ + { + "type": "key", + "id": "foo", + "actions": [ + { + "type": key_action, + "value": value, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", ["", "pointerDowns", "pointerMoves", "pointerUps"]) +def test_pointer_action_subtype_invalid_value(session, value): + if value == "pointerMoves": + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [ + { + "type": "pointerMoves", + "x": 0, + "y": 0, + } + ], + } + ] + else: + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [ + { + "type": value, + "button": 0, + } + ], + } + ] + + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("coordinate", ["x", "y"]) +@pytest.mark.parametrize("value", [None, "foo", True, 0.1, [], {}]) +def test_pointer_action_move_coordinate_invalid_type(session, coordinate, value): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [ + { + "type": "pointerMove", + "x": value if coordinate == "x" else 0, + "y": value if coordinate == "y" else 0, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("coordinate", ["x", "y"]) +@pytest.mark.parametrize("value", [MIN_INT - 1, MAX_INT + 1]) +def test_pointer_action_move_coordinate_invalid_value(session, coordinate, value): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [ + { + "type": "pointerMove", + "x": value if coordinate == "x" else 0, + "y": value if coordinate == "y" else 0, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", [None, True, 42, [], {}]) +def test_pointer_action_move_origin_invalid_type(session, value): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [{"type": "pointerMove", "x": 0, "y": 0, "origin": value}], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", ["", "pointers", "viewports"]) +def test_pointer_action_move_origin_invalid_value(session, value): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [{"type": "pointerMove", "x": 0, "y": 0, "origin": value}], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize( + "value", + [ + {"frame-075b-4da1-b6ba-e579c2d3230a": "foo"}, + {"shadow-6066-11e4-a52e-4f735466cecf": "foo"}, + {"window-fcc6-11e5-b4f8-330a88ab9d7f": "foo"}, + ], + ids=["frame", "shadow", "window"], +) +def test_pointer_action_move_origin_element_invalid_type(session, value): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [{"type": "pointerMove", "x": 0, "y": 0, "origin": value}], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +def test_pointer_action_move_origin_element_invalid_value(session): + value = {"element-6066-11e4-a52e-4f735466cecf": "foo"} + + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [{"type": "pointerMove", "x": 0, "y": 0, "origin": value}], + } + ] + response = perform_actions(session, actions) + assert_error(response, "no such element") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerUp"]) +def test_pointer_action_up_down_button_missing(session, pointer_action): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [ + { + "type": pointer_action, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerUp"]) +@pytest.mark.parametrize("value", [None, "foo", True, 0.1, [], {}]) +def test_pointer_action_up_down_button_invalid_type(session, pointer_action, value): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [ + { + "type": pointer_action, + "button": value, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerUp"]) +@pytest.mark.parametrize("value", [-1, MAX_INT + 1]) +def test_pointer_action_up_down_button_invalid_value(session, pointer_action, value): + actions = [ + { + "type": "pointer", + "id": "foo", + "actions": [ + { + "type": pointer_action, + "button": value, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerMove", "pointerUp"]) +@pytest.mark.parametrize("dimension", ["width", "height"]) +@pytest.mark.parametrize("value", [None, "foo", True, 0.1, [], {}]) +def test_pointer_action_common_properties_dimensions_invalid_type( + session, dimension, pointer_action, value +): + action = create_pointer_common_object( + pointer_action, + { + "width": value if dimension == "width" else 0, + "height": value if dimension == "height" else 0, + }, + ) + + response = perform_actions( + session, [{"type": "pointer", "id": "foo", "actions": [action]}] + ) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerMove", "pointerUp"]) +@pytest.mark.parametrize("dimension", ["width", "height"]) +@pytest.mark.parametrize("value", [MIN_INT - 1, MAX_INT + 1]) +def test_pointer_action_common_properties_dimensions_invalid_value( + session, dimension, pointer_action, value +): + action = create_pointer_common_object( + pointer_action, + { + "width": value if dimension == "width" else 0, + "height": value if dimension == "height" else 0, + }, + ) + + response = perform_actions( + session, [{"type": "pointer", "id": "foo", "actions": [action]}] + ) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerMove", "pointerUp"]) +@pytest.mark.parametrize("pressure", ["pressure", "tangentialPressure"]) +@pytest.mark.parametrize("value", [None, "foo", True, [], {}]) +def test_pointer_action_common_properties_pressure_invalid_type( + session, pointer_action, pressure, value +): + action = create_pointer_common_object( + pointer_action, + { + "pressure": value if pressure == "pressure" else 0.0, + "tangentialPressure": value if pressure == "tangentialPressure" else 0.0, + }, + ) + + response = perform_actions( + session, [{"type": "pointer", "id": "foo", "actions": [action]}] + ) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerMove", "pointerUp"]) +@pytest.mark.parametrize("value", [None, "foo", True, 0.1, [], {}]) +def test_pointer_action_common_properties_twist_invalid_type( + session, pointer_action, value +): + action = create_pointer_common_object(pointer_action, {"twist": value}) + + response = perform_actions( + session, [{"type": "pointer", "id": "foo", "actions": [action]}] + ) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerMove", "pointerUp"]) +@pytest.mark.parametrize("value", [-1, 360]) +def test_pointer_action_common_properties_twist_invalid_value( + session, pointer_action, value +): + action = create_pointer_common_object(pointer_action, {"twist": value}) + + response = perform_actions( + session, [{"type": "pointer", "id": "foo", "actions": [action]}] + ) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerMove", "pointerUp"]) +@pytest.mark.parametrize("angle", ["altitudeAngle", "azimuthAngle"]) +@pytest.mark.parametrize("value", [None, "foo", True, [], {}]) +def test_pointer_action_common_properties_angle_invalid_type( + session, pointer_action, angle, value +): + action = create_pointer_common_object( + pointer_action, + { + "altitudeAngle": value if angle == "altitudeAngle" else 0.0, + "azimuthAngle": value if angle == "azimuthAngle" else 0.0, + }, + ) + + response = perform_actions( + session, [{"type": "pointer", "id": "foo", "actions": [action]}] + ) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerMove", "pointerUp"]) +@pytest.mark.parametrize("tilt", ["tiltX", "tiltY"]) +@pytest.mark.parametrize("value", [None, "foo", True, 0.1, [], {}]) +def test_pointer_action_common_properties_tilt_invalid_type( + session, pointer_action, tilt, value +): + action = create_pointer_common_object( + pointer_action, + { + "tiltX": value if tilt == "tiltX" else 0, + "tiltY": value if tilt == "tiltY" else 0, + }, + ) + + response = perform_actions( + session, [{"type": "pointer", "id": "foo", "actions": [action]}] + ) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("pointer_action", ["pointerDown", "pointerMove", "pointerUp"]) +@pytest.mark.parametrize("tilt", ["tiltX", "tiltY"]) +@pytest.mark.parametrize("value", [-91, 91]) +def test_pointer_action_common_properties_tilt_invalid_value( + session, pointer_action, tilt, value +): + action = create_pointer_common_object( + pointer_action, + { + "tiltX": value if tilt == "tiltX" else 0, + "tiltY": value if tilt == "tiltY" else 0, + }, + ) + + response = perform_actions( + session, [{"type": "pointer", "id": "foo", "actions": [action]}] + ) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("coordinate", ["x", "y"]) +@pytest.mark.parametrize("value", [None, "foo", True, 0.1, [], {}]) +def test_wheel_action_scroll_coordinate_invalid_type(session, coordinate, value): + actions = [ + { + "type": "wheel", + "id": "foo", + "actions": [ + { + "type": "scroll", + "x": value if coordinate == "x" else 0, + "y": value if coordinate == "y" else 0, + "deltaX": 0, + "deltaY": 0, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("coordinate", ["x", "y"]) +@pytest.mark.parametrize("value", [MIN_INT - 1, MAX_INT + 1]) +def test_wheel_action_scroll_coordinate_invalid_value(session, coordinate, value): + actions = [ + { + "type": "wheel", + "id": "foo", + "actions": [ + { + "type": "scroll", + "x": value if coordinate == "x" else 0, + "y": value if coordinate == "y" else 0, + "deltaX": 0, + "deltaY": 0, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("delta", ["x", "y"]) +@pytest.mark.parametrize("value", [None, "foo", True, 0.1, [], {}]) +def test_wheel_action_scroll_delta_invalid_type(session, delta, value): + actions = [ + { + "type": "wheel", + "id": "foo", + "actions": [ + { + "type": "scroll", + "x": 0, + "y": 0, + "deltaX": value if delta == "x" else 0, + "deltaY": value if delta == "y" else 0, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("delta", ["x", "y"]) +@pytest.mark.parametrize("value", [MIN_INT - 1, MAX_INT + 1]) +def test_wheel_action_scroll_delta_invalid_value(session, delta, value): + actions = [ + { + "type": "wheel", + "id": "foo", + "actions": [ + { + "type": "scroll", + "deltaX": value if delta == "x" else 0, + "deltaY": value if delta == "y" else 0, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", [None, True, 42, [], {}]) +def test_wheel_action_scroll_origin_invalid_type(session, value): + actions = [ + { + "type": "wheel", + "id": "foo", + "actions": [ + { + "type": "scroll", + "x": 0, + "y": 0, + "deltaX": 0, + "deltaY": 0, + "origin": value, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize("value", ["", "pointers", "viewports"]) +def test_wheel_action_scroll_origin_invalid_value(session, value): + actions = [ + { + "type": "wheel", + "id": "foo", + "actions": [ + { + "type": "scroll", + "x": 0, + "y": 0, + "deltaX": 0, + "deltaY": 0, + "origin": value, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +@pytest.mark.parametrize( + "value", + [ + {"frame-075b-4da1-b6ba-e579c2d3230a": "foo"}, + {"shadow-6066-11e4-a52e-4f735466cecf": "foo"}, + {"window-fcc6-11e5-b4f8-330a88ab9d7f": "foo"}, + ], + ids=["frame", "shadow", "window"], +) +def test_wheel_action_scroll_origin_element_invalid_type(session, value): + actions = [ + { + "type": "wheel", + "id": "foo", + "actions": [ + { + "type": "scroll", + "x": 0, + "y": 0, + "deltaX": 0, + "deltaY": 0, + "origin": value, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "invalid argument") + + +def test_wheel_action_scroll_origin_element_invalid_value(session): + value = {"element-6066-11e4-a52e-4f735466cecf": "foo"} + + actions = [ + { + "type": "wheel", + "id": "foo", + "actions": [ + { + "type": "scroll", + "x": 0, + "y": 0, + "deltaX": 0, + "deltaY": 0, + "origin": value, + } + ], + } + ] + response = perform_actions(session, actions) + assert_error(response, "no such element") diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/key.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/key.py index 6c34452082a..7809fcd01a9 100644 --- a/tests/wpt/tests/webdriver/tests/classic/perform_actions/key.py +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/key.py @@ -36,3 +36,27 @@ def test_backspace_erases_keys(session, key_reporter, key_chain): .perform() assert get_keys(key_reporter) == "ef" + + +@pytest.mark.parametrize("mode", ["open", "closed"]) +@pytest.mark.parametrize("nested", [False, True], ids=["outer", "inner"]) +def test_element_in_shadow_tree(session, get_test_page, key_chain, mode, nested): + session.url = get_test_page( + shadow_doc="

", + shadow_root_mode=mode, + nested_shadow_dom=nested, + ) + + shadow_root = session.find.css("custom-element", all=False).shadow_root + + if nested: + shadow_root = shadow_root.find_element( + "css selector", "inner-custom-element" + ).shadow_root + + input_el = shadow_root.find_element("css selector", "input") + input_el.click() + + key_chain.key_down("a").key_up("a").perform() + + assert input_el.property("value") == "a" diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/none.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/none.py index 4fadec40a45..b94a8f162d7 100644 --- a/tests/wpt/tests/webdriver/tests/classic/perform_actions/none.py +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/none.py @@ -1,12 +1,5 @@ from tests.support.asserts import assert_error, assert_success - - -def perform_actions(session, actions): - return session.transport.send( - "POST", - "/session/{session_id}/actions".format(**vars(session)), - {"actions": actions}, - ) +from . import perform_actions def test_null_response_value(session, none_chain): diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/perform.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/perform.py new file mode 100644 index 00000000000..30333942189 --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/perform.py @@ -0,0 +1,55 @@ +import pytest + +from tests.support.asserts import assert_success +from . import perform_actions + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +def test_input_source_action_sequence_actions_pause_duration_valid( + session, action_type +): + for valid_duration in [0, 1]: + actions = [ + { + "type": action_type, + "id": "foo", + "actions": [{"type": "pause", "duration": valid_duration}], + } + ] + response = perform_actions(session, actions) + assert_success(response) + + +@pytest.mark.parametrize("action_type", ["none", "key", "pointer", "wheel"]) +def test_input_source_action_sequence_actions_pause_duration_missing( + session, action_type +): + actions = [ + { + "type": action_type, + "id": "foo", + "actions": [ + { + "type": "pause", + } + ], + } + ] + response = perform_actions(session, actions) + assert_success(response) + + +@pytest.mark.parametrize("action_type", ["none", "key", "wheel"]) +def test_input_source_action_sequence_pointer_parameters_not_processed( + session, action_type +): + actions = [ + { + "type": action_type, + "id": "foo", + "actions": [], + "parameters": True, + } + ] + response = perform_actions(session, actions) + assert_success(response) diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_mouse.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_mouse.py index 31d08491ccb..152447aeefd 100644 --- a/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_mouse.py +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_mouse.py @@ -13,6 +13,8 @@ from tests.support.asserts import assert_move_to_coordinates from tests.support.helpers import filter_dict from tests.support.sync import Poll +from . import assert_pointer_events, record_pointer_events + def test_null_response_value(session, mouse_chain): value = mouse_chain.click().perform() @@ -101,6 +103,36 @@ def test_click_element_center(session, test_actions_page, mouse_chain): assert e["target"] == "outer" +@pytest.mark.parametrize("mode", ["open", "closed"]) +@pytest.mark.parametrize("nested", [False, True], ids=["outer", "inner"]) +def test_click_element_in_shadow_tree( + session, get_test_page, mouse_chain, mode, nested +): + session.url = get_test_page( + shadow_doc=""" +
+
""", + shadow_root_mode=mode, + nested_shadow_dom=nested, + ) + + shadow_root = session.find.css("custom-element", all=False).shadow_root + if nested: + shadow_root = shadow_root.find_element("css selector", "inner-custom-element").shadow_root + + target = shadow_root.find_element("css selector", "#pointer-target") + record_pointer_events(session, target) + + mouse_chain.click(element=target).perform() + assert_pointer_events( + session, + expected_events=["pointerdown", "pointerup"], + target="pointer-target", + pointer_type="mouse", + ) + + def test_click_navigation(session, url, inline): destination = url("/webdriver/tests/support/html/test_actions.html") start = inline("destination".format(destination)) diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_pen.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_pen.py index e9cd103301e..fcd1aba9474 100644 --- a/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_pen.py +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_pen.py @@ -10,6 +10,8 @@ from tests.classic.perform_actions.support.mouse import ( ) from tests.classic.perform_actions.support.refine import get_events +from . import assert_pointer_events, record_pointer_events + def test_null_response_value(session, pen_chain): value = pen_chain.click().perform() @@ -34,6 +36,44 @@ def test_stale_element_reference(session, stale_element, pen_chain, as_frame): pen_chain.click(element=element).perform() +@pytest.mark.parametrize("mode", ["open", "closed"]) +@pytest.mark.parametrize("nested", [False, True], ids=["outer", "inner"]) +def test_pen_pointer_in_shadow_tree( + session, get_test_page, pen_chain, mode, nested +): + session.url = get_test_page( + shadow_doc=""" +
+
""", + shadow_root_mode=mode, + nested_shadow_dom=nested, + ) + + shadow_root = session.find.css("custom-element", all=False).shadow_root + + if nested: + shadow_root = shadow_root.find_element( + "css selector", "inner-custom-element" + ).shadow_root + + target = shadow_root.find_element("css selector", "#pointer-target") + + record_pointer_events(session, target) + + pen_chain.pointer_move(0, 0, origin=target) \ + .pointer_down() \ + .pointer_up() \ + .perform() + + assert_pointer_events( + session, + expected_events=["pointerdown", "pointerup"], + target="pointer-target", + pointer_type="pen", + ) + + def test_pen_pointer_properties(session, test_actions_pointer_page, pen_chain): pointerArea = session.find.css("#pointerArea", all=False) center = get_inview_center(pointerArea.rect, get_viewport_rect(session)) diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_touch.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_touch.py index 7f940f6203c..6c8e2f3fa6e 100644 --- a/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_touch.py +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/pointer_touch.py @@ -9,6 +9,7 @@ from tests.classic.perform_actions.support.mouse import ( ) from tests.classic.perform_actions.support.refine import get_events +from . import assert_pointer_events, record_pointer_events def test_null_response_value(session, touch_chain): value = touch_chain.click().perform() @@ -33,6 +34,41 @@ def test_stale_element_reference(session, stale_element, touch_chain, as_frame): touch_chain.click(element=element).perform() +@pytest.mark.parametrize("mode", ["open", "closed"]) +@pytest.mark.parametrize("nested", [False, True], ids=["outer", "inner"]) +def test_touch_pointer_in_shadow_tree( + session, get_test_page, touch_chain, mode, nested +): + session.url = get_test_page( + shadow_doc=""" +
+
""", + shadow_root_mode=mode, + nested_shadow_dom=nested, + ) + + shadow_root = session.find.css("custom-element", all=False).shadow_root + + if nested: + shadow_root = shadow_root.find_element( + "css selector", "inner-custom-element" + ).shadow_root + + target = shadow_root.find_element("css selector", "#pointer-target") + + record_pointer_events(session, target) + + touch_chain.pointer_move(0, 0, origin=target).pointer_down().pointer_up().perform() + + assert_pointer_events( + session, + expected_events=["pointerdown", "pointerup"], + target="pointer-target", + pointer_type="touch", + ) + + def test_touch_pointer_properties(session, test_actions_pointer_page, touch_chain): pointerArea = session.find.css("#pointerArea", all=False) center = get_inview_center(pointerArea.rect, get_viewport_rect(session)) diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/user_prompts.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/user_prompts.py index 820edbe32cb..872325bb313 100644 --- a/tests/wpt/tests/webdriver/tests/classic/perform_actions/user_prompts.py +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/user_prompts.py @@ -4,7 +4,7 @@ import pytest from tests.classic.perform_actions.support.refine import get_keys from tests.support.asserts import assert_error, assert_success, assert_dialog_handled - +from . import perform_actions actions = [{ "type": "key", @@ -16,13 +16,6 @@ actions = [{ }] -def perform_actions(session, actions): - return session.transport.send( - "POST", - "/session/{session_id}/actions".format(session_id=session.session_id), - {"actions": actions}) - - @pytest.fixture def check_user_prompt_closed_without_exception(session, create_dialog, key_chain, key_reporter): def check_user_prompt_closed_without_exception(dialog_type, retval): diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/validity.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/validity.py deleted file mode 100644 index 9c056b197d2..00000000000 --- a/tests/wpt/tests/webdriver/tests/classic/perform_actions/validity.py +++ /dev/null @@ -1,80 +0,0 @@ -import pytest - -from tests.support.asserts import assert_error, assert_success - - -def perform_actions(session, actions): - return session.transport.send( - "POST", - "/session/{session_id}/actions".format(session_id=session.session_id), - {"actions": actions}) - - -@pytest.mark.parametrize("action_type", ["none", "key", "pointer"]) -def test_pause_duration_invalid_type(session, action_type): - for invalid_type in [0.1, None, "foo", True, [], {}]: - actions = [{ - "type": action_type, - "id": "foobar", - "actions": [{ - "type": "pause", - "duration": invalid_type - }] - }] - response = perform_actions(session, actions) - assert_error(response, "invalid argument") - - -@pytest.mark.parametrize("action_type", ["none", "key", "pointer"]) -def test_pause_duration_invalid_value(session, action_type): - actions = [{ - "type": action_type, - "id": "foobar", - "actions": [{ - "type": "pause", - "duration": -1 - }] - }] - response = perform_actions(session, actions) - assert_error(response, "invalid argument") - - -@pytest.mark.parametrize("action_type", ["none", "key", "pointer"]) -def test_pause_duration_valid(session, action_type): - for valid_duration in [0, 1]: - actions = [{ - "type": action_type, - "id": "foobar", - "actions": [{ - "type": "pause", - "duration": valid_duration - }] - }] - response = perform_actions(session, actions) - assert_success(response) - - -@pytest.mark.parametrize("action_type", ["none", "key", "pointer"]) -def test_pause_without_duration(session, action_type): - actions = [{ - "type": action_type, - "id": "foobar", - "actions": [{ - "type": "pause", - }] - }] - response = perform_actions(session, actions) - assert_success(response) - - -@pytest.mark.parametrize("action_type", ["none", "key", "pointer"]) -def test_action_without_id(session, action_type): - actions = [{ - "type": action_type, - "actions": [{ - "type": "pause", - "duration": 1 - }] - }] - response = perform_actions(session, actions) - assert_error(response, "invalid argument") diff --git a/tests/wpt/tests/webdriver/tests/classic/perform_actions/wheel.py b/tests/wpt/tests/webdriver/tests/classic/perform_actions/wheel.py index 7ee0ae79f77..c83c90df3de 100644 --- a/tests/wpt/tests/webdriver/tests/classic/perform_actions/wheel.py +++ b/tests/wpt/tests/webdriver/tests/classic/perform_actions/wheel.py @@ -64,6 +64,56 @@ def test_wheel_scroll_iframe(session, test_actions_scroll_page, wheel_chain): assert events[0]["target"] == "iframeContent" +@pytest.mark.parametrize("mode", ["open", "closed"]) +@pytest.mark.parametrize("nested", [False, True], ids=["outer", "inner"]) +def test_wheel_scroll_shadow_tree(session, get_test_page, wheel_chain, mode, nested): + session.url = get_test_page( + shadow_doc=""" +
+
+
""", + shadow_root_mode=mode, + nested_shadow_dom=nested, + ) + + shadow_root = session.find.css("custom-element", all=False).shadow_root + + if nested: + shadow_root = shadow_root.find_element( + "css selector", "inner-custom-element" + ).shadow_root + + scrollable = shadow_root.find_element("css selector", "#scrollableShadowTree") + + # Add a simplified event recorder to track events in the test ShadowRoot. + session.execute_script( + """ + window.wheelEvents = []; + arguments[0].addEventListener("wheel", + function(event) { + window.wheelEvents.push({ + "deltaX": event.deltaX, + "deltaY": event.deltaY, + "target": event.target.id + }); + } + ); + """, + args=(scrollable,), + ) + + wheel_chain.scroll(0, 0, 5, 10, origin=scrollable).perform() + + events = session.execute_script("return window.wheelEvents;") or [] + assert len(events) == 1 + assert events[0]["deltaX"] >= 5 + assert events[0]["deltaY"] >= 10 + assert events[0]["target"] == "scrollableShadowTreeContent" + + @pytest.mark.parametrize("missing", ["x", "y", "deltaX", "deltaY"]) def test_wheel_missing_prop(session, test_actions_scroll_page, wheel_chain, missing): session.execute_script("document.scrollingElement.scrollTop = 0") diff --git a/tests/wpt/tests/webdriver/tests/support/fixtures.py b/tests/wpt/tests/webdriver/tests/support/fixtures.py index 957be6b0f46..6033e243552 100644 --- a/tests/wpt/tests/webdriver/tests/support/fixtures.py +++ b/tests/wpt/tests/webdriver/tests/support/fixtures.py @@ -31,7 +31,7 @@ def pytest_configure(config): ) -def pytest_sessionfinish(session, exitstatus): +def pytest_sessionfinish(): # Cleanup at the end of a test run global _current_session @@ -421,16 +421,16 @@ def test_page_with_pdf_js(inline): """ % encoded_pdf_data) diff --git a/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py b/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py index 6e53bf7c243..a4eab79ff87 100644 --- a/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py +++ b/tests/wpt/tests/webdriver/tests/support/fixtures_bidi.py @@ -39,18 +39,18 @@ async def add_preload_script(bidi_session): @pytest_asyncio.fixture async def subscribe_events(bidi_session): - subscriptions = []; - async def subscribe_events(events, contexts = None): - await bidi_session.session.subscribe(events=events, contexts=contexts) - subscriptions.append((events, contexts)) + subscriptions = [] + + async def subscribe_events(events, contexts=None): + await bidi_session.session.subscribe(events=events, contexts=contexts) + subscriptions.append((events, contexts)) yield subscribe_events for events, contexts in reversed(subscriptions): try: - await bidi_session.session.unsubscribe( - events=events, contexts=contexts - ) + await bidi_session.session.unsubscribe(events=events, + contexts=contexts) except (InvalidArgumentException, NoSuchFrameException): pass @@ -59,9 +59,13 @@ async def subscribe_events(bidi_session): async def new_tab(bidi_session): """Open and focus a new tab to run the test in a foreground tab.""" new_tab = await bidi_session.browsing_context.create(type_hint='tab') + yield new_tab - # Close the tab. - await bidi_session.browsing_context.close(context=new_tab["context"]) + + try: + await bidi_session.browsing_context.close(context=new_tab["context"]) + except NoSuchFrameException: + print(f"Tab with id {new_tab['context']} has already been closed") @pytest.fixture @@ -77,10 +81,11 @@ def send_blocking_command(bidi_session): def wait_for_event(bidi_session, event_loop): """Wait until the BiDi session emits an event and resolve the event data.""" remove_listeners = [] + def wait_for_event(event_name: str): future = event_loop.create_future() - async def on_event(method, data): + async def on_event(_, data): remove_listener() remove_listeners.remove(remove_listener) future.set_result(data) @@ -95,6 +100,7 @@ def wait_for_event(bidi_session, event_loop): for remove_listener in remove_listeners: remove_listener() + @pytest.fixture def current_time(bidi_session, top_context): """Get the current time stamp in ms from the remote end. @@ -113,17 +119,17 @@ def current_time(bidi_session, top_context): @pytest.fixture -def add_and_remove_iframe(bidi_session, inline): +def add_and_remove_iframe(bidi_session): """Create a frame, wait for load, and remove it. Return the frame's context id, which allows to test for invalid browsing context references. """ - async def closed_frame(context, url=inline("test-frame")): + + async def closed_frame(context): initial_contexts = await bidi_session.browsing_context.get_tree(root=context["context"]) resp = await bidi_session.script.call_function( - function_declaration= - """(url) => { + function_declaration="""(url) => { const iframe = document.createElement("iframe"); // Once we're confident implementations support returning the iframe, just // return that directly. For now generate a unique id to use as a handle. @@ -131,7 +137,7 @@ def add_and_remove_iframe(bidi_session, inline): iframe.id = id; iframe.src = url; document.documentElement.lastElementChild.append(iframe); - return new Promise(resolve => iframe.onload = () => resolve(id)) + return new Promise(resolve => iframe.onload = () => resolve(id)); }""", target={"context": context["context"]}, await_promise=True) @@ -172,7 +178,7 @@ def get_pdf_content(bidi_session, top_context, load_pdf_bidi): await load_pdf_bidi(encoded_pdf_data=encoded_pdf_data, context=context) result = await bidi_session.script.call_function( - function_declaration="""() => { return window.getText()}""", + function_declaration="() => { return window.getText(); }", target=ContextTarget(context), await_promise=True, ) @@ -207,6 +213,7 @@ def assert_pdf_dimensions(render_pdf_to_png_bidi): png = await render_pdf_to_png_bidi(pdf) width, height = png_dimensions(png) + # account for potential rounding errors assert (height - 1) <= cm_to_px(expected_dimensions["height"]) <= (height + 1) assert (width - 1) <= cm_to_px(expected_dimensions["width"]) <= (width + 1) @@ -341,7 +348,8 @@ def render_pdf_to_png_bidi(bidi_session, new_tab, url): assert 0 <= index < len(value) image_string = value[index]["value"] - image_string_without_data_type = image_string[image_string.find(",") + 1 :] + image_string_without_data_type = image_string[image_string.find(",") + + 1:] return base64.b64decode(image_string_without_data_type) diff --git a/tests/wpt/tests/webidl/ecmascript-binding/class-string-iterator-prototype-object.any.js b/tests/wpt/tests/webidl/ecmascript-binding/class-string-iterator-prototype-object.any.js index f878eb7b35b..5ca549d69cf 100644 --- a/tests/wpt/tests/webidl/ecmascript-binding/class-string-iterator-prototype-object.any.js +++ b/tests/wpt/tests/webidl/ecmascript-binding/class-string-iterator-prototype-object.any.js @@ -49,10 +49,3 @@ test(t => { assert_equals(Object.prototype.toString.call(iteratorProto), "[object URLSearchParams Iterator]"); }, "Object.prototype.toString applied after nulling the prototype"); - -// This test must be last. -test(() => { - delete iteratorProto[Symbol.toStringTag]; - - assert_equals(Object.prototype.toString.call(iteratorProto), "[object Object]", "prototype"); -}, "Object.prototype.toString applied after deleting @@toStringTag"); diff --git a/tests/wpt/tests/websockets/Close-1000-reason.any.js b/tests/wpt/tests/websockets/Close-1000-reason.any.js index 6fc3c1fade8..79ad6a0418b 100644 --- a/tests/wpt/tests/websockets/Close-1000-reason.any.js +++ b/tests/wpt/tests/websockets/Close-1000-reason.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-1000-verify-code.any.js b/tests/wpt/tests/websockets/Close-1000-verify-code.any.js index de501306602..c3a9274caa5 100644 --- a/tests/wpt/tests/websockets/Close-1000-verify-code.any.js +++ b/tests/wpt/tests/websockets/Close-1000-verify-code.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-1000.any.js b/tests/wpt/tests/websockets/Close-1000.any.js index f3100c6caaa..2f535ba21af 100644 --- a/tests/wpt/tests/websockets/Close-1000.any.js +++ b/tests/wpt/tests/websockets/Close-1000.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-1005-verify-code.any.js b/tests/wpt/tests/websockets/Close-1005-verify-code.any.js index afa7d7b0d98..28f84c8003f 100644 --- a/tests/wpt/tests/websockets/Close-1005-verify-code.any.js +++ b/tests/wpt/tests/websockets/Close-1005-verify-code.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-1005.any.js b/tests/wpt/tests/websockets/Close-1005.any.js index 514d03ac632..5055e283f30 100644 --- a/tests/wpt/tests/websockets/Close-1005.any.js +++ b/tests/wpt/tests/websockets/Close-1005.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-2999-reason.any.js b/tests/wpt/tests/websockets/Close-2999-reason.any.js index 95e481e53cf..6336c7db4f3 100644 --- a/tests/wpt/tests/websockets/Close-2999-reason.any.js +++ b/tests/wpt/tests/websockets/Close-2999-reason.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-3000-reason.any.js b/tests/wpt/tests/websockets/Close-3000-reason.any.js index 2db122934c7..8e34ce7c053 100644 --- a/tests/wpt/tests/websockets/Close-3000-reason.any.js +++ b/tests/wpt/tests/websockets/Close-3000-reason.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-3000-verify-code.any.js b/tests/wpt/tests/websockets/Close-3000-verify-code.any.js index bfa441f1ee4..a6703dec168 100644 --- a/tests/wpt/tests/websockets/Close-3000-verify-code.any.js +++ b/tests/wpt/tests/websockets/Close-3000-verify-code.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-4999-reason.any.js b/tests/wpt/tests/websockets/Close-4999-reason.any.js index 3516dc2f462..8c2a1c9ad91 100644 --- a/tests/wpt/tests/websockets/Close-4999-reason.any.js +++ b/tests/wpt/tests/websockets/Close-4999-reason.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-Reason-124Bytes.any.js b/tests/wpt/tests/websockets/Close-Reason-124Bytes.any.js index aa7fc8ffe83..063b12be16f 100644 --- a/tests/wpt/tests/websockets/Close-Reason-124Bytes.any.js +++ b/tests/wpt/tests/websockets/Close-Reason-124Bytes.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Close-delayed.any.js b/tests/wpt/tests/websockets/Close-delayed.any.js index 212925bb931..9e0a60cc6ae 100644 --- a/tests/wpt/tests/websockets/Close-delayed.any.js +++ b/tests/wpt/tests/websockets/Close-delayed.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-onlyReason.any.js b/tests/wpt/tests/websockets/Close-onlyReason.any.js index 7c5d10d2a83..243eb05e73e 100644 --- a/tests/wpt/tests/websockets/Close-onlyReason.any.js +++ b/tests/wpt/tests/websockets/Close-onlyReason.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-readyState-Closed.any.js b/tests/wpt/tests/websockets/Close-readyState-Closed.any.js index bfd61c48c14..6c7b5f11322 100644 --- a/tests/wpt/tests/websockets/Close-readyState-Closed.any.js +++ b/tests/wpt/tests/websockets/Close-readyState-Closed.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-readyState-Closing.any.js b/tests/wpt/tests/websockets/Close-readyState-Closing.any.js index 554744d6297..221130b8f71 100644 --- a/tests/wpt/tests/websockets/Close-readyState-Closing.any.js +++ b/tests/wpt/tests/websockets/Close-readyState-Closing.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-reason-unpaired-surrogates.any.js b/tests/wpt/tests/websockets/Close-reason-unpaired-surrogates.any.js index 647a1216b99..e5a71d2735e 100644 --- a/tests/wpt/tests/websockets/Close-reason-unpaired-surrogates.any.js +++ b/tests/wpt/tests/websockets/Close-reason-unpaired-surrogates.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Close-server-initiated-close.any.js b/tests/wpt/tests/websockets/Close-server-initiated-close.any.js index c86793b23a1..82fd457e1e7 100644 --- a/tests/wpt/tests/websockets/Close-server-initiated-close.any.js +++ b/tests/wpt/tests/websockets/Close-server-initiated-close.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Close-undefined.any.js b/tests/wpt/tests/websockets/Close-undefined.any.js index a8106c6f155..e24ef0c3db8 100644 --- a/tests/wpt/tests/websockets/Close-undefined.any.js +++ b/tests/wpt/tests/websockets/Close-undefined.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Create-asciiSep-protocol-string.any.js b/tests/wpt/tests/websockets/Create-asciiSep-protocol-string.any.js index 1221c561145..d0102ce533c 100644 --- a/tests/wpt/tests/websockets/Create-asciiSep-protocol-string.any.js +++ b/tests/wpt/tests/websockets/Create-asciiSep-protocol-string.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Create-blocked-port.any.js b/tests/wpt/tests/websockets/Create-blocked-port.any.js index c670009b25d..2962312ff5f 100644 --- a/tests/wpt/tests/websockets/Create-blocked-port.any.js +++ b/tests/wpt/tests/websockets/Create-blocked-port.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Create-extensions-empty.any.js b/tests/wpt/tests/websockets/Create-extensions-empty.any.js index 1fba4bd2cc5..98a7d65ab5a 100644 --- a/tests/wpt/tests/websockets/Create-extensions-empty.any.js +++ b/tests/wpt/tests/websockets/Create-extensions-empty.any.js @@ -1,6 +1,6 @@ // META: timeout=long // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Create-nonAscii-protocol-string.any.js b/tests/wpt/tests/websockets/Create-nonAscii-protocol-string.any.js index 1b56cc914b7..fda926a9d54 100644 --- a/tests/wpt/tests/websockets/Create-nonAscii-protocol-string.any.js +++ b/tests/wpt/tests/websockets/Create-nonAscii-protocol-string.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Create-protocol-with-space.any.js b/tests/wpt/tests/websockets/Create-protocol-with-space.any.js index f49d1fec0c3..a85d4e5df9d 100644 --- a/tests/wpt/tests/websockets/Create-protocol-with-space.any.js +++ b/tests/wpt/tests/websockets/Create-protocol-with-space.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Create-protocols-repeated-case-insensitive.any.js b/tests/wpt/tests/websockets/Create-protocols-repeated-case-insensitive.any.js index 41f78396fc3..1a508e87d38 100644 --- a/tests/wpt/tests/websockets/Create-protocols-repeated-case-insensitive.any.js +++ b/tests/wpt/tests/websockets/Create-protocols-repeated-case-insensitive.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Create-protocols-repeated.any.js b/tests/wpt/tests/websockets/Create-protocols-repeated.any.js index fc7d1b6ad2f..2f12a47f964 100644 --- a/tests/wpt/tests/websockets/Create-protocols-repeated.any.js +++ b/tests/wpt/tests/websockets/Create-protocols-repeated.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Create-url-with-space.any.js b/tests/wpt/tests/websockets/Create-url-with-space.any.js index d1e1ea1cba9..f2bea5b9d9f 100644 --- a/tests/wpt/tests/websockets/Create-url-with-space.any.js +++ b/tests/wpt/tests/websockets/Create-url-with-space.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Create-valid-url-array-protocols.any.js b/tests/wpt/tests/websockets/Create-valid-url-array-protocols.any.js index 00ab1ca9873..fe71fd7ca23 100644 --- a/tests/wpt/tests/websockets/Create-valid-url-array-protocols.any.js +++ b/tests/wpt/tests/websockets/Create-valid-url-array-protocols.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Create-valid-url-binaryType-blob.any.js b/tests/wpt/tests/websockets/Create-valid-url-binaryType-blob.any.js index 59eec8e29d3..7840ff314ff 100644 --- a/tests/wpt/tests/websockets/Create-valid-url-binaryType-blob.any.js +++ b/tests/wpt/tests/websockets/Create-valid-url-binaryType-blob.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Create-valid-url-protocol-empty.any.js b/tests/wpt/tests/websockets/Create-valid-url-protocol-empty.any.js index 9e1de6dab46..f18a9d89084 100644 --- a/tests/wpt/tests/websockets/Create-valid-url-protocol-empty.any.js +++ b/tests/wpt/tests/websockets/Create-valid-url-protocol-empty.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Create-valid-url-protocol-setCorrectly.any.js b/tests/wpt/tests/websockets/Create-valid-url-protocol-setCorrectly.any.js index bb1f32fbce1..c5d06ac84c0 100644 --- a/tests/wpt/tests/websockets/Create-valid-url-protocol-setCorrectly.any.js +++ b/tests/wpt/tests/websockets/Create-valid-url-protocol-setCorrectly.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Create-valid-url-protocol-string.any.js b/tests/wpt/tests/websockets/Create-valid-url-protocol-string.any.js index 4f730db94f7..10e928d333f 100644 --- a/tests/wpt/tests/websockets/Create-valid-url-protocol-string.any.js +++ b/tests/wpt/tests/websockets/Create-valid-url-protocol-string.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Create-valid-url-protocol.any.js b/tests/wpt/tests/websockets/Create-valid-url-protocol.any.js index 599a9eb8f1b..37b5a0e886c 100644 --- a/tests/wpt/tests/websockets/Create-valid-url-protocol.any.js +++ b/tests/wpt/tests/websockets/Create-valid-url-protocol.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Create-valid-url.any.js b/tests/wpt/tests/websockets/Create-valid-url.any.js index edb27f61d3c..1df995fb8b0 100644 --- a/tests/wpt/tests/websockets/Create-valid-url.any.js +++ b/tests/wpt/tests/websockets/Create-valid-url.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-0byte-data.any.js b/tests/wpt/tests/websockets/Send-0byte-data.any.js index b984b641084..4176de411c6 100644 --- a/tests/wpt/tests/websockets/Send-0byte-data.any.js +++ b/tests/wpt/tests/websockets/Send-0byte-data.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Send-65K-data.any.js b/tests/wpt/tests/websockets/Send-65K-data.any.js index 5c3437999b9..20e5ba7c949 100644 --- a/tests/wpt/tests/websockets/Send-65K-data.any.js +++ b/tests/wpt/tests/websockets/Send-65K-data.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-before-open.any.js b/tests/wpt/tests/websockets/Send-before-open.any.js index 5982535583f..4fdbf71c6f5 100644 --- a/tests/wpt/tests/websockets/Send-before-open.any.js +++ b/tests/wpt/tests/websockets/Send-before-open.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Send-binary-65K-arraybuffer.any.js b/tests/wpt/tests/websockets/Send-binary-65K-arraybuffer.any.js index 1e02ac2d37f..6bee660bb38 100644 --- a/tests/wpt/tests/websockets/Send-binary-65K-arraybuffer.any.js +++ b/tests/wpt/tests/websockets/Send-binary-65K-arraybuffer.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-arraybuffer.any.js b/tests/wpt/tests/websockets/Send-binary-arraybuffer.any.js index 5c985edd616..0b34e0cfc93 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybuffer.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybuffer.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-arraybufferview-float32.any.js b/tests/wpt/tests/websockets/Send-binary-arraybufferview-float32.any.js index 9a8e3426f49..47ee5b1170b 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybufferview-float32.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybufferview-float32.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-arraybufferview-float64.any.js b/tests/wpt/tests/websockets/Send-binary-arraybufferview-float64.any.js index d71d2d8c58f..78bcb13d43f 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybufferview-float64.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybufferview-float64.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-arraybufferview-int16-offset.any.js b/tests/wpt/tests/websockets/Send-binary-arraybufferview-int16-offset.any.js index bb77d300ad1..3dd64552b01 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybufferview-int16-offset.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybufferview-int16-offset.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-arraybufferview-int32.any.js b/tests/wpt/tests/websockets/Send-binary-arraybufferview-int32.any.js index f4312e410ab..853ba39b4b5 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybufferview-int32.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybufferview-int32.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-arraybufferview-int8.any.js b/tests/wpt/tests/websockets/Send-binary-arraybufferview-int8.any.js index f2374fb4139..aa90020bba8 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybufferview-int8.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybufferview-int8.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint16-offset-length.any.js b/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint16-offset-length.any.js index f917a3af007..a3c1f326a59 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint16-offset-length.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint16-offset-length.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint32-offset.any.js b/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint32-offset.any.js index 33758dc6544..fede995450c 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint32-offset.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint32-offset.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint8-offset-length.any.js b/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint8-offset-length.any.js index 1d256dbdca1..de3ae00f270 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint8-offset-length.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint8-offset-length.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint8-offset.any.js b/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint8-offset.any.js index 43e9fe68499..089174b384d 100644 --- a/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint8-offset.any.js +++ b/tests/wpt/tests/websockets/Send-binary-arraybufferview-uint8-offset.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-binary-blob.any.js b/tests/wpt/tests/websockets/Send-binary-blob.any.js index 56c89a1b53c..5131b716b4f 100644 --- a/tests/wpt/tests/websockets/Send-binary-blob.any.js +++ b/tests/wpt/tests/websockets/Send-binary-blob.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-data.any.js b/tests/wpt/tests/websockets/Send-data.any.js index 203ab54dffc..a606ada310d 100644 --- a/tests/wpt/tests/websockets/Send-data.any.js +++ b/tests/wpt/tests/websockets/Send-data.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Send-data.worker.js b/tests/wpt/tests/websockets/Send-data.worker.js index b141fb38207..5a8bdd5fa3a 100644 --- a/tests/wpt/tests/websockets/Send-data.worker.js +++ b/tests/wpt/tests/websockets/Send-data.worker.js @@ -1,4 +1,4 @@ -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/Send-null.any.js b/tests/wpt/tests/websockets/Send-null.any.js index a12eaf9c591..e621bb892bb 100644 --- a/tests/wpt/tests/websockets/Send-null.any.js +++ b/tests/wpt/tests/websockets/Send-null.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-paired-surrogates.any.js b/tests/wpt/tests/websockets/Send-paired-surrogates.any.js index e2dc004bfcf..51e4fb965e2 100644 --- a/tests/wpt/tests/websockets/Send-paired-surrogates.any.js +++ b/tests/wpt/tests/websockets/Send-paired-surrogates.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-unicode-data.any.js b/tests/wpt/tests/websockets/Send-unicode-data.any.js index f22094a243c..a3556b26ab2 100644 --- a/tests/wpt/tests/websockets/Send-unicode-data.any.js +++ b/tests/wpt/tests/websockets/Send-unicode-data.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wpt_flags=h2 // META: variant=?wss diff --git a/tests/wpt/tests/websockets/Send-unpaired-surrogates.any.js b/tests/wpt/tests/websockets/Send-unpaired-surrogates.any.js index 1cb5d0ac9cd..cbbcc6ebf64 100644 --- a/tests/wpt/tests/websockets/Send-unpaired-surrogates.any.js +++ b/tests/wpt/tests/websockets/Send-unpaired-surrogates.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/binary/001.html b/tests/wpt/tests/websockets/binary/001.html index 21ffff40eb0..077bf79def3 100644 --- a/tests/wpt/tests/websockets/binary/001.html +++ b/tests/wpt/tests/websockets/binary/001.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/binary/002.html b/tests/wpt/tests/websockets/binary/002.html index ffd1ee7a7a2..558777694bb 100644 --- a/tests/wpt/tests/websockets/binary/002.html +++ b/tests/wpt/tests/websockets/binary/002.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/binary/004.html b/tests/wpt/tests/websockets/binary/004.html index 76bb902cf95..8ca4e923ea0 100644 --- a/tests/wpt/tests/websockets/binary/004.html +++ b/tests/wpt/tests/websockets/binary/004.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/binary/005.html b/tests/wpt/tests/websockets/binary/005.html index 9b8b2c4edfd..e89f4c0e837 100644 --- a/tests/wpt/tests/websockets/binary/005.html +++ b/tests/wpt/tests/websockets/binary/005.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/binaryType-wrong-value.any.js b/tests/wpt/tests/websockets/binaryType-wrong-value.any.js index 007510d030b..683fb47bede 100644 --- a/tests/wpt/tests/websockets/binaryType-wrong-value.any.js +++ b/tests/wpt/tests/websockets/binaryType-wrong-value.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js b/tests/wpt/tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js index b247ee56f62..c15536d7674 100644 --- a/tests/wpt/tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js +++ b/tests/wpt/tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.js @@ -1,6 +1,6 @@ // META: script=constants.sub.js // META: global=window,dedicatedworker,sharedworker -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/close-invalid.any.js b/tests/wpt/tests/websockets/close-invalid.any.js index 3223063765a..c964c8391d5 100644 --- a/tests/wpt/tests/websockets/close-invalid.any.js +++ b/tests/wpt/tests/websockets/close-invalid.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/closing-handshake/002.html b/tests/wpt/tests/websockets/closing-handshake/002.html index b0e39a955ce..8d1e43b6de9 100644 --- a/tests/wpt/tests/websockets/closing-handshake/002.html +++ b/tests/wpt/tests/websockets/closing-handshake/002.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/closing-handshake/003.html b/tests/wpt/tests/websockets/closing-handshake/003.html index 72eb09d8337..43e1603d34f 100644 --- a/tests/wpt/tests/websockets/closing-handshake/003.html +++ b/tests/wpt/tests/websockets/closing-handshake/003.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/closing-handshake/004.html b/tests/wpt/tests/websockets/closing-handshake/004.html index eb89ad33857..96411ea6390 100644 --- a/tests/wpt/tests/websockets/closing-handshake/004.html +++ b/tests/wpt/tests/websockets/closing-handshake/004.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor.any.js b/tests/wpt/tests/websockets/constructor.any.js index c92dda4567c..0cef2065f6d 100644 --- a/tests/wpt/tests/websockets/constructor.any.js +++ b/tests/wpt/tests/websockets/constructor.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/constructor/001.html b/tests/wpt/tests/websockets/constructor/001.html index 0c39a0ee71b..13493e3430f 100644 --- a/tests/wpt/tests/websockets/constructor/001.html +++ b/tests/wpt/tests/websockets/constructor/001.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/004.html b/tests/wpt/tests/websockets/constructor/004.html index e599bf224ae..814321089be 100644 --- a/tests/wpt/tests/websockets/constructor/004.html +++ b/tests/wpt/tests/websockets/constructor/004.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/005.html b/tests/wpt/tests/websockets/constructor/005.html index 377d9c4217a..9d467def3f9 100644 --- a/tests/wpt/tests/websockets/constructor/005.html +++ b/tests/wpt/tests/websockets/constructor/005.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/006.html b/tests/wpt/tests/websockets/constructor/006.html index 65178e00165..59875830da2 100644 --- a/tests/wpt/tests/websockets/constructor/006.html +++ b/tests/wpt/tests/websockets/constructor/006.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/007.html b/tests/wpt/tests/websockets/constructor/007.html index 647f4202a17..e126d1aa0f8 100644 --- a/tests/wpt/tests/websockets/constructor/007.html +++ b/tests/wpt/tests/websockets/constructor/007.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/008.html b/tests/wpt/tests/websockets/constructor/008.html index de7fb457bae..e10c652134e 100644 --- a/tests/wpt/tests/websockets/constructor/008.html +++ b/tests/wpt/tests/websockets/constructor/008.html @@ -3,7 +3,7 @@ - +
- +
diff --git a/tests/wpt/tests/websockets/constructor/010.html b/tests/wpt/tests/websockets/constructor/010.html index 0adf2b13f9b..e5bc6ecc36e 100644 --- a/tests/wpt/tests/websockets/constructor/010.html +++ b/tests/wpt/tests/websockets/constructor/010.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/011.html b/tests/wpt/tests/websockets/constructor/011.html index 9b7f114dc03..33b09dbaf8f 100644 --- a/tests/wpt/tests/websockets/constructor/011.html +++ b/tests/wpt/tests/websockets/constructor/011.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/012.html b/tests/wpt/tests/websockets/constructor/012.html index 34723616728..ba2b6b2df06 100644 --- a/tests/wpt/tests/websockets/constructor/012.html +++ b/tests/wpt/tests/websockets/constructor/012.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/013.html b/tests/wpt/tests/websockets/constructor/013.html index 53b0400a2d6..d599fde528a 100644 --- a/tests/wpt/tests/websockets/constructor/013.html +++ b/tests/wpt/tests/websockets/constructor/013.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/014.html b/tests/wpt/tests/websockets/constructor/014.html index f3f38ad2788..afa0dac4c1d 100644 --- a/tests/wpt/tests/websockets/constructor/014.html +++ b/tests/wpt/tests/websockets/constructor/014.html @@ -4,7 +4,7 @@ - +
- +
diff --git a/tests/wpt/tests/websockets/constructor/017.html b/tests/wpt/tests/websockets/constructor/017.html index 5087290f3ca..e1795b175e3 100644 --- a/tests/wpt/tests/websockets/constructor/017.html +++ b/tests/wpt/tests/websockets/constructor/017.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/018.html b/tests/wpt/tests/websockets/constructor/018.html index f4d6ab30d95..71f7376496a 100644 --- a/tests/wpt/tests/websockets/constructor/018.html +++ b/tests/wpt/tests/websockets/constructor/018.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/019.html b/tests/wpt/tests/websockets/constructor/019.html index a0ec6c3ad78..8fbb1cbfff6 100644 --- a/tests/wpt/tests/websockets/constructor/019.html +++ b/tests/wpt/tests/websockets/constructor/019.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/020.html b/tests/wpt/tests/websockets/constructor/020.html index f050a1b8fa9..e4d61f366ea 100644 --- a/tests/wpt/tests/websockets/constructor/020.html +++ b/tests/wpt/tests/websockets/constructor/020.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/021.html b/tests/wpt/tests/websockets/constructor/021.html index 039d74b0430..d3854feeb47 100644 --- a/tests/wpt/tests/websockets/constructor/021.html +++ b/tests/wpt/tests/websockets/constructor/021.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/constructor/022.html b/tests/wpt/tests/websockets/constructor/022.html index a55d8f349d7..fd53c0f29ab 100644 --- a/tests/wpt/tests/websockets/constructor/022.html +++ b/tests/wpt/tests/websockets/constructor/022.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/cookies/001.html b/tests/wpt/tests/websockets/cookies/001.html index c43947fa877..abec94e4b10 100644 --- a/tests/wpt/tests/websockets/cookies/001.html +++ b/tests/wpt/tests/websockets/cookies/001.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/cookies/002.html b/tests/wpt/tests/websockets/cookies/002.html index 1a5e03e3351..758ce473a91 100644 --- a/tests/wpt/tests/websockets/cookies/002.html +++ b/tests/wpt/tests/websockets/cookies/002.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/cookies/003.html b/tests/wpt/tests/websockets/cookies/003.html index 2af47354028..9f770aef220 100644 --- a/tests/wpt/tests/websockets/cookies/003.html +++ b/tests/wpt/tests/websockets/cookies/003.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/cookies/004.html b/tests/wpt/tests/websockets/cookies/004.html index efc3a9f84d4..523dabaf635 100644 --- a/tests/wpt/tests/websockets/cookies/004.html +++ b/tests/wpt/tests/websockets/cookies/004.html @@ -3,7 +3,7 @@ - +
- +
- +
diff --git a/tests/wpt/tests/websockets/cookies/007.html b/tests/wpt/tests/websockets/cookies/007.html index 2c214a1dbb0..3e69bfc09d5 100644 --- a/tests/wpt/tests/websockets/cookies/007.html +++ b/tests/wpt/tests/websockets/cookies/007.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/eventhandlers.any.js b/tests/wpt/tests/websockets/eventhandlers.any.js index 7bccd47139b..f596328b923 100644 --- a/tests/wpt/tests/websockets/eventhandlers.any.js +++ b/tests/wpt/tests/websockets/eventhandlers.any.js @@ -1,5 +1,5 @@ // META: script=constants.sub.js -// META: variant= +// META: variant=?default // META: variant=?wss // META: variant=?wpt_flags=h2 diff --git a/tests/wpt/tests/websockets/extended-payload-length.html b/tests/wpt/tests/websockets/extended-payload-length.html index 23caedc461c..92e3802c352 100644 --- a/tests/wpt/tests/websockets/extended-payload-length.html +++ b/tests/wpt/tests/websockets/extended-payload-length.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/CloseEvent/clean-close.html b/tests/wpt/tests/websockets/interfaces/CloseEvent/clean-close.html index db253761f63..8614028fd05 100644 --- a/tests/wpt/tests/websockets/interfaces/CloseEvent/clean-close.html +++ b/tests/wpt/tests/websockets/interfaces/CloseEvent/clean-close.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html index 258eaa78279..5d2bfd076cb 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-arraybuffer.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html index ac5140de6cc..d0028dae0f4 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-blob.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html index df1c3a5bb22..ea6e70cfcf7 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-defineProperty-getter.html @@ -4,7 +4,7 @@ - +
- +
- +
- +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html index 7c66d202826..be37b6dea0e 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-initial.html @@ -4,7 +4,7 @@ - +
- +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html index 951aaea57b7..152da696e1a 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-readonly.html @@ -4,7 +4,7 @@ - +
- +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/close/close-basic.html b/tests/wpt/tests/websockets/interfaces/WebSocket/close/close-basic.html index b9059414954..b646ca41679 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/close/close-basic.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/close/close-basic.html @@ -3,7 +3,7 @@ - +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/events/002.html b/tests/wpt/tests/websockets/interfaces/WebSocket/events/002.html index df8e9f73d54..481730800c2 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/events/002.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/events/002.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/events/003.html b/tests/wpt/tests/websockets/interfaces/WebSocket/events/003.html index f03ab49be67..a5373ecded2 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/events/003.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/events/003.html @@ -3,7 +3,7 @@ - +
- +
- +
- +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/events/008.html b/tests/wpt/tests/websockets/interfaces/WebSocket/events/008.html index eb46efbb1a3..066eb0922e3 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/events/008.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/events/008.html @@ -3,7 +3,7 @@ - +
- +
- +
- +
- +
- +
- +
- +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/events/016.html b/tests/wpt/tests/websockets/interfaces/WebSocket/events/016.html index fcd14c854ce..8b5aaf9f42c 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/events/016.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/events/016.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/events/017.html b/tests/wpt/tests/websockets/interfaces/WebSocket/events/017.html index 9208261c121..a9f06eaf7df 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/events/017.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/events/017.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/events/018.html b/tests/wpt/tests/websockets/interfaces/WebSocket/events/018.html index 3dc36d0c5f1..a340c69f451 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/events/018.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/events/018.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/events/019.html b/tests/wpt/tests/websockets/interfaces/WebSocket/events/019.html index cbc271d9e63..deb079f81aa 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/events/019.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/events/019.html @@ -3,7 +3,7 @@ - +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
- +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/send/007.html b/tests/wpt/tests/websockets/interfaces/WebSocket/send/007.html index e2a8999e2fa..6a5614257a3 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/send/007.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/send/007.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/send/008.html b/tests/wpt/tests/websockets/interfaces/WebSocket/send/008.html index 7b6125b8c8e..709c066aded 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/send/008.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/send/008.html @@ -4,7 +4,7 @@ - +
- +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/send/010.html b/tests/wpt/tests/websockets/interfaces/WebSocket/send/010.html index 4e4f5c57b82..4a008b610c5 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/send/010.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/send/010.html @@ -5,7 +5,7 @@ - +
- +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/send/012.html b/tests/wpt/tests/websockets/interfaces/WebSocket/send/012.html index 058ab9f6214..9876c7bdd32 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/send/012.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/send/012.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/interfaces/WebSocket/url/001.html b/tests/wpt/tests/websockets/interfaces/WebSocket/url/001.html index 76f68b90933..6c7306d0388 100644 --- a/tests/wpt/tests/websockets/interfaces/WebSocket/url/001.html +++ b/tests/wpt/tests/websockets/interfaces/WebSocket/url/001.html @@ -3,7 +3,7 @@ - +
- +
- +
- +
- +
- +
- +
- +
diff --git a/tests/wpt/tests/websockets/opening-handshake/001.html b/tests/wpt/tests/websockets/opening-handshake/001.html index cbc0355e2bd..d8585d833ba 100644 --- a/tests/wpt/tests/websockets/opening-handshake/001.html +++ b/tests/wpt/tests/websockets/opening-handshake/001.html @@ -3,7 +3,7 @@ - +
diff --git a/tests/wpt/tests/websockets/opening-handshake/002.html b/tests/wpt/tests/websockets/opening-handshake/002.html index 27b85602d44..00d8dccaeee 100644 --- a/tests/wpt/tests/websockets/opening-handshake/002.html +++ b/tests/wpt/tests/websockets/opening-handshake/002.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/websockets/opening-handshake/003.html b/tests/wpt/tests/websockets/opening-handshake/003.html index f21219f5b5a..1fc7535d503 100644 --- a/tests/wpt/tests/websockets/opening-handshake/003.html +++ b/tests/wpt/tests/websockets/opening-handshake/003.html @@ -5,7 +5,7 @@ - +
- +
- +
- +
- +

Test requires popup blocker disabled

diff --git a/tests/wpt/tests/websockets/unload-a-document/002.html b/tests/wpt/tests/websockets/unload-a-document/002.html index 013f5266bf9..f79b3b72976 100644 --- a/tests/wpt/tests/websockets/unload-a-document/002.html +++ b/tests/wpt/tests/websockets/unload-a-document/002.html @@ -5,7 +5,7 @@ - +

Test requires popup blocker disabled

diff --git a/tests/wpt/tests/websockets/unload-a-document/005.html b/tests/wpt/tests/websockets/unload-a-document/005.html index fc4b02cbb29..1abb1b552f3 100644 --- a/tests/wpt/tests/websockets/unload-a-document/005.html +++ b/tests/wpt/tests/websockets/unload-a-document/005.html @@ -4,7 +4,7 @@ - +
diff --git a/tests/wpt/tests/webtransport/close.https.any.js b/tests/wpt/tests/webtransport/close.https.any.js index de675036f3d..77b3055c1de 100644 --- a/tests/wpt/tests/webtransport/close.https.any.js +++ b/tests/wpt/tests/webtransport/close.https.any.js @@ -28,6 +28,19 @@ promise_test(async t => { assert_equals(info.close_info.reason, '', 'reason'); }, 'close'); +promise_test(async t => { + const wt = new WebTransport(webtransport_url('echo.py')); + wt.close(); + try { + await wt.closed; + } catch(e) { + await promise_rejects_exactly(t, e, wt.ready, 'ready promise should be rejected'); + assert_true(e instanceof WebTransportError); + assert_equals(e.source, 'session', 'source'); + assert_equals(e.streamErrorCode, null, 'streamErrorCode'); + } +}, 'close without waiting for ready'); + promise_test(async t => { const id = token(); const wt = new WebTransport(webtransport_url(`client-close.py?token=${id}`)); diff --git a/tests/wpt/tests/xhr/responsexml-invalid-type.html b/tests/wpt/tests/xhr/responsexml-invalid-type.html new file mode 100644 index 00000000000..57ba462551f --- /dev/null +++ b/tests/wpt/tests/xhr/responsexml-invalid-type.html @@ -0,0 +1,21 @@ + + + +XMLHttpRequest: response with an invalid responseXML document + + + + + + +