diff --git a/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini index b275cb58343..292dc852b9f 100644 --- a/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/meta/FileAPI/url/url-with-fetch.any.js.ini @@ -12,6 +12,3 @@ [Revoke blob URL after creating Request, then clone Request, will fetch] expected: FAIL - - [Revoke blob URL after calling fetch, fetch should succeed] - expected: FAIL diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index 06c1af4f347..7f48199d343 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -1187,6 +1187,13 @@ ] ], "flexbox": { + "auto-height-flex-item-in-multicol-crash.html": [ + "82dec303cc1196c375355c5d4738fe34018e7119", + [ + null, + {} + ] + ], "button-in-multicol-crash.html": [ "30e373542a6975127232d07232cfe8fc2ccf4800", [ @@ -4350,6 +4357,13 @@ {} ] ], + "double-parent-pseudo-in-placeholder-crash.html": [ + "24945db5427d0f5e5308d439aa3669205c438a70", + [ + null, + {} + ] + ], "implicit-parent-insertion-crash.html": [ "4be1e1c8f9ed31c386c70bd8744219346ef4637e", [ @@ -5973,6 +5987,13 @@ ] ] }, + "if-range-with-attr-crash.html": [ + "0943f1856244cea3f929a2a2bcacd5b43ff7f6f6", + [ + null, + {} + ] + ], "max-function-crash.html": [ "7b483efb6af873ecee72230add71a153c921dacc", [ @@ -6008,6 +6029,13 @@ {} ] ], + "typed-arithmetic-inside-calc-crash.html": [ + "485c9967a9794b8536f88e66594814070ebcaadd", + [ + null, + {} + ] + ], "viewport-units-scrollbars-crash.html": [ "ba433d9f025295740f63615190db9376ca733fd4", [ @@ -6462,6 +6490,13 @@ {} ] ], + "kernelUnitLength-crash.html": [ + "adb769bc060ca33c8db81c90c7b8fddc1e6ec95a", + [ + null, + {} + ] + ], "multiple-references-id-crash-001.html": [ "9ee04e1015d3c9fc04e8fab240a15d59ae92892d", [ @@ -7255,6 +7290,13 @@ {} ] ], + "insertHTML-before-comment-at-end-of-editing-host.html": [ + "57f32a367a41fc22af75dda7d3764a194417179d", + [ + null, + {} + ] + ], "insertText-at-end-of-text-in-body.html": [ "763697314be630a81fd7019e71784bd57f5beaf7", [ @@ -25927,7 +25969,7 @@ "navigation-api": { "scroll-behavior": { "after-transition-with-history-scroll-restoration-manual.html": [ - "bc2ce230ce729dcc5cc8bfcd0100ab0aa75d22ba", + "93e7168f85ce4a993b697a70b2060cf4418cc90e", [ null, {} @@ -126910,7 +126952,7 @@ ] ], "anchor-scroll-update-005.html": [ - "9c32bda6fcc62089a58071d99936cfbffb863f56", + "299ed46421c82e7742db059d1bb9ff176d0fb65d", [ null, [ @@ -126923,7 +126965,7 @@ ] ], "anchor-scroll-update-006.html": [ - "d896d9ca53747b582b0c5de0bdb7ac899c9cd1d8", + "74596d5edfe01bdf643ed3e740843185bbf9afc3", [ null, [ @@ -127170,7 +127212,7 @@ ] ], "position-try-fallbacks-004.html": [ - "9c66d9ff0a0b52d213896d7db2dd7f6b67732b02", + "c46af7c371658a0f29fe265f653afbbd3ff23373", [ null, [ @@ -127442,6 +127484,19 @@ {} ] ], + "position-visibility-initial.html": [ + "9adf0c64d270584552c526f5961fc4d8540ea4be", + [ + null, + [ + [ + "/css/css-anchor-position/position-visibility-initial-ref.html", + "==" + ] + ], + {} + ] + ], "position-visibility-no-overflow-scroll.html": [ "f646f819cddfbf955b36eb7b7d17802a040f9bef", [ @@ -127495,7 +127550,7 @@ ] ], "position-visibility-remove-anchors-visible.html": [ - "3408642ad2b4017c140020f21c76a6055af55b67", + "0e26b51e307ff21fddad76690977b581e87b408d", [ null, [ @@ -127520,6 +127575,19 @@ {} ] ], + "pseudo-element-implicit-anchor.html": [ + "a7192670cc1a7e604eb13da817ff3d1f9c5ed4db", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "sticky-anchor-position-invalid.html": [ "d1efeed5f29263fe3a16d60cbdaf9d2c26357ce5", [ @@ -127611,6 +127679,32 @@ {} ] ], + "transform-007.tentative.html": [ + "77216bfe2657ba9fb77639ef4924a9f76ebe8108", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], + "transform-008.tentative.html": [ + "ffbedaabbb8095eda6aef25f85a4698ea6a8ed73", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square.xht", + "==" + ] + ], + {} + ] + ], "vertical-aligned-table-cell.html": [ "9b16621b7132fdf92856f65eaf7a8450c1fc7b63", [ @@ -164703,151 +164797,8 @@ {} ] ], - "content-none-details.html": [ - "6ac94c3e865aaf808fb9cdb1f11807c2e43a3e8c", - [ - null, - [ - [ - "/css/css-content/content-none-details-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-fieldset.html": [ - "4ada3b7b01d79e38abc171edf4bf7607fb856cef", - [ - null, - [ - [ - "/css/css-content/content-none-fieldset-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-input.html": [ - "5cc76ba11de411520a880aac2f582f9f9068c165", - [ - null, - [ - [ - "/css/css-content/content-none-input-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-math.html": [ - "2d5e78f678f62ee5c3ded1680875f4cefe3bc737", - [ - null, - [ - [ - "/css/css-content/content-none-math-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-option.html": [ - "5eff47776119aecfccd8efcf728eac1d0b116be3", - [ - null, - [ - [ - "/css/css-content/content-none-option-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-root-block.html": [ - "c8d15df3eafe1e9a2f8d0b4485c7538c9ccec749", - [ - null, - [ - [ - "/css/css-content/content-none-root-block-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-root-columns.html": [ - "b3fceb1c4f4d4f8bb5304430ff19b73903f58b11", - [ - null, - [ - [ - "/css/css-content/content-none-root-columns-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-root-flex.html": [ - "0b6c6cab14f078006224898e032add1022eb6ebb", - [ - null, - [ - [ - "/css/css-content/content-none-root-flex-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-root-grid.html": [ - "e97f7848acb82fe154a00776b909f87ac2f0f904", - [ - null, - [ - [ - "/css/css-content/content-none-root-grid-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-root-ruby.html": [ - "8434d9619068e5f48539ee0d942412372e31c813", - [ - null, - [ - [ - "/css/css-content/content-none-root-ruby-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-root-table.html": [ - "92e4a7730b938f1f155ef2fff5f044f3ee531e68", - [ - null, - [ - [ - "/css/css-content/content-none-root-table-ref.html", - "==" - ] - ], - {} - ] - ], "content-none-select-1.html": [ - "450dd66e216be980689be8cc56f8f2fe91d27bfa", + "73fe4b0d04f1073cd60c13c83354064442108384", [ null, [ @@ -164861,58 +164812,6 @@ } ] ], - "content-none-select-2.html": [ - "4b8f0f5c3247a383eab241a116ca48c010d19b3c", - [ - null, - [ - [ - "/css/css-content/content-none-select-2-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-span-dynamic.html": [ - "078be9928a61603987467c2a97bf5a27985a19a3", - [ - null, - [ - [ - "/css/css-content/content-none-span-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-span.html": [ - "b963869cfeed60f2423b970c707a91e3ce838b22", - [ - null, - [ - [ - "/css/css-content/content-none-span-ref.html", - "==" - ] - ], - {} - ] - ], - "content-none-table.html": [ - "723e2e41467db17fd6ad5af5ec0e9e44d0ce9a89", - [ - null, - [ - [ - "/css/css-content/content-none-table-ref.html", - "==" - ] - ], - {} - ] - ], "element-replacement-alt.html": [ "e9ee9344c268faabb238f651b1335a5b9db47351", [ @@ -172695,7 +172594,7 @@ ] ], "flex-align-baseline-column-vert-lr-rtl-wrap-reverse.html": [ - "767c129b057b75defe26f3fce7d52b2eb3f7aa68", + "318c603627415f548bc9677a24f468dff0bc2d42", [ null, [ @@ -172708,7 +172607,7 @@ ] ], "flex-align-baseline-column-vert-rl-rtl-wrap-reverse.html": [ - "9608301aa1a2c6cd444edee072d95f236583ca3d", + "937741b004435e7c9df957dff962eab284fa4078", [ null, [ @@ -189673,6 +189572,58 @@ {} ] ], + "grid-gap-decorations-048.html": [ + "0943502fcf53dcd1959e00f6c37e57d0066787c8", + [ + null, + [ + [ + "/css/css-gaps/grid/grid-gap-decorations-048-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-049.html": [ + "7eeeb0341d9247c71e15a4c738819c44f083833a", + [ + null, + [ + [ + "/css/css-gaps/grid/grid-gap-decorations-049-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-050.html": [ + "93b160bdc115db4e234c0018eb3c4aa2551768bb", + [ + null, + [ + [ + "/css/css-gaps/grid/grid-gap-decorations-050-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-gap-decorations-051.html": [ + "9197ffd1dacdca43ffbf829aa31dbe10679c5e48", + [ + null, + [ + [ + "/css/css-gaps/grid/grid-gap-decorations-051-ref.html", + "==" + ] + ], + {} + ] + ], "grid-gap-decorations-38.html": [ "8b87bcd4860ac50a1c2f3de98cec9599bebb77a3", [ @@ -190266,6 +190217,32 @@ {} ] ], + "grid-abspos-staticpos-align-self-center-large-border-padding.html": [ + "e238346f14d786ef8ac1c55697dc41d206d4754b", + [ + null, + [ + [ + "/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding-ref.html", + "==" + ] + ], + {} + ] + ], + "grid-abspos-staticpos-align-self-center.html": [ + "3d0ef3348d0d25812add0c98ff69b26084e76cc8", + [ + null, + [ + [ + "/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-ref.html", + "==" + ] + ], + {} + ] + ], "grid-abspos-staticpos-align-self-end-large-border-padding.html": [ "09647be71c9c63f01703f66bf666e7315b39558f", [ @@ -196077,6 +196054,32 @@ {} ] ], + "grid-size-with-orthogonal-child-001.html": [ + "30871f380f0102adb9b52ebc400bba6ca4ed3e64", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], + "grid-size-with-orthogonal-child-002.html": [ + "3787d1690ee0560c15492612f2465840aa0f342e", + [ + null, + [ + [ + "/css/reference/ref-filled-green-100px-square-only.html", + "==" + ] + ], + {} + ] + ], "grid-size-with-orthogonal-child-dynamic.html": [ "d1223b9fa0c404c61eb32c44ea66b9b99f02919c", [ @@ -205796,7 +205799,7 @@ ] ], "object-fit-contain-png-001c.html": [ - "0f8195157e310cd69c05dcfd8a786972b981d2f1", + "4a3f2d7bdb5c70c432160c22a6fd1d22651908bc", [ null, [ @@ -205805,27 +205808,11 @@ "==" ] ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 20 - ], - [ - 0, - 2000 - ] - ] - ] - ] - } + {} ] ], "object-fit-contain-png-001e.html": [ - "20a5f8ae560f4755081ae0a6e3bf6346b487626c", + "9305af6a4912acd1139e825e6c9c532bc48b18df", [ null, [ @@ -205838,7 +205825,7 @@ ] ], "object-fit-contain-png-001i.html": [ - "6605be2e1a4f79367a73128eb7e2d09f6bfc878a", + "92ce77507010de871f52886d9ff3704fb7b24946", [ null, [ @@ -205851,7 +205838,7 @@ ] ], "object-fit-contain-png-001o.html": [ - "36761156bb30da613fb9605dab69464af4552380", + "23df4364707f152c1d1253eb50381526138302bd", [ null, [ @@ -205864,7 +205851,7 @@ ] ], "object-fit-contain-png-001p.html": [ - "ac00ec44d1d7b387353e3eebc75ded6261b7f57b", + "a723276037e1abecb185aff9c22d1cfeee13573c", [ null, [ @@ -205877,7 +205864,7 @@ ] ], "object-fit-contain-png-002c.html": [ - "14834316a32efbf8f80c4612a93951e0fa792c51", + "ed24f460ff5551f9553b7c49f4795ec396d6b328", [ null, [ @@ -205886,27 +205873,11 @@ "==" ] ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 20 - ], - [ - 0, - 2000 - ] - ] - ] - ] - } + {} ] ], "object-fit-contain-png-002e.html": [ - "6132fdc27d66fe7dc195016d30177be77318ef45", + "8427589cb99e2537255e4fb536d9e05763aad177", [ null, [ @@ -205919,7 +205890,7 @@ ] ], "object-fit-contain-png-002i.html": [ - "222ac9e7356c18c40108ffa445c91b2386d90366", + "ed1220db4aa22f103257053de8657160dcf56b86", [ null, [ @@ -205932,7 +205903,7 @@ ] ], "object-fit-contain-png-002o.html": [ - "6e0b555e57ea26a95e11584719f3e371c733320a", + "c4594287f9f2627fefe1482b2aea0cdd1ef085ff", [ null, [ @@ -205945,7 +205916,7 @@ ] ], "object-fit-contain-png-002p.html": [ - "97a150e582ab6931108c0e6844fe536e5ae50b22", + "d1c08361e0e731e6627f8e03fe5cd933eb326753", [ null, [ @@ -206374,7 +206345,7 @@ ] ], "object-fit-cover-png-001c.html": [ - "2a0071a01ce0cd423b6b03537c8f4e9cfe766ad5", + "d2a05491ebf1a541918254f10ef19023c79f02dc", [ null, [ @@ -206387,7 +206358,7 @@ ] ], "object-fit-cover-png-001e.html": [ - "1091e01b7aa8fe4e1227e8f1f01bf11231b6f232", + "159ff7280d06cd8082d6cc3c0f96d006f08be0b0", [ null, [ @@ -206400,7 +206371,7 @@ ] ], "object-fit-cover-png-001i.html": [ - "8db4683c2746c4447b1c0105abdeb35dec97370b", + "918ce0705c132b293c1669523cf06cfd13e3a8d9", [ null, [ @@ -206413,7 +206384,7 @@ ] ], "object-fit-cover-png-001o.html": [ - "8e40b532ca44869a306b4e32747c4a38385eca06", + "293f6ef332f119a8c95508d3c2ab667164f6938b", [ null, [ @@ -206426,7 +206397,7 @@ ] ], "object-fit-cover-png-001p.html": [ - "a75a977a37b131b062cc3f94651b97fa97a5b67c", + "ab74190b2562de6c55c42319f829154b85dc3002", [ null, [ @@ -206439,7 +206410,7 @@ ] ], "object-fit-cover-png-002c.html": [ - "66836651fb48eea95f704b379ce455486d792e4d", + "9ecacd14421cf641a2577356fbb93373b8064504", [ null, [ @@ -206452,7 +206423,7 @@ ] ], "object-fit-cover-png-002e.html": [ - "8dab30ccfd1da3b09f82f3f7a244c5a8c065b139", + "0c53c87a1df10e80640f0f42469861500f24a420", [ null, [ @@ -206465,7 +206436,7 @@ ] ], "object-fit-cover-png-002i.html": [ - "1866fde155d4e4be4f523d6df24f06c83e6962a2", + "81c2a1e546b0b2bcfd33ab139bbdba235f7ea949", [ null, [ @@ -206478,7 +206449,7 @@ ] ], "object-fit-cover-png-002o.html": [ - "a36ddbfce8e8bcb3f072157e1e7a196601d42b54", + "ab97054d7fc318365813866dad7f1779d6a1a34f", [ null, [ @@ -206491,7 +206462,7 @@ ] ], "object-fit-cover-png-002p.html": [ - "36222054b03d04f8c9ae1ece2f206bf366fb69be", + "6f2333a803fa83ebce982d6a05344725663f2dd9", [ null, [ @@ -206842,7 +206813,7 @@ ] ], "object-fit-fill-png-001c.html": [ - "0e2a3883fe2f05a2c89dbc0d87617aa965097330", + "200e5f471161ed81c0d0ee0a837ac4f2633738ab", [ null, [ @@ -206851,27 +206822,11 @@ "==" ] ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 20 - ], - [ - 0, - 3200 - ] - ] - ] - ] - } + {} ] ], "object-fit-fill-png-001e.html": [ - "08aa6b23fe21f2005fbc26327d823b1a90fb48eb", + "37955a592c2a298bec03a11e15a9476eee4c5f4a", [ null, [ @@ -206884,7 +206839,7 @@ ] ], "object-fit-fill-png-001i.html": [ - "90692c30cb58edaab49c411080bd074d351c87ae", + "19ce5ba32a6f7c31dabe5c13349eac9dc76b6c45", [ null, [ @@ -206897,7 +206852,7 @@ ] ], "object-fit-fill-png-001o.html": [ - "b57528b125d33546241bd7218d92efb5bc7dfb24", + "a5dbb0d8ad205577fed407c4b91c44ee0d8d3c9e", [ null, [ @@ -206910,7 +206865,7 @@ ] ], "object-fit-fill-png-001p.html": [ - "1e30e7aef4c76ca3b25ad6ec50b7c048e008dc30", + "e081d138943e9e0e1bc86465010916a87fe83dd5", [ null, [ @@ -206923,7 +206878,7 @@ ] ], "object-fit-fill-png-002c.html": [ - "43bcced9f26c672c641bd5e1c6e48855ad1b23dc", + "d0eb7a59f86fbd450abd61562daf48edc0774c6a", [ null, [ @@ -206932,27 +206887,11 @@ "==" ] ], - { - "fuzzy": [ - [ - null, - [ - [ - 0, - 20 - ], - [ - 0, - 3200 - ] - ] - ] - ] - } + {} ] ], "object-fit-fill-png-002e.html": [ - "d5903c2004de7332521ff948344634a501dff15d", + "9e2edb7aecf44310135d227a3f3273eb61a4c73e", [ null, [ @@ -206965,7 +206904,7 @@ ] ], "object-fit-fill-png-002i.html": [ - "b5abd3d800168e6511baa6fae0a8dad4209e98de", + "3ad7a562fe9de37cb77bc26c9ae59611581bfe5e", [ null, [ @@ -206978,7 +206917,7 @@ ] ], "object-fit-fill-png-002o.html": [ - "a8904f2a4eda6b3617e26218e40e3ada559fc931", + "f12d0d2de5215786f7c4e53e9ed17ca375f0b6e8", [ null, [ @@ -206991,7 +206930,7 @@ ] ], "object-fit-fill-png-002p.html": [ - "e0b44135ec9102bf74e1a59a3b38627e100233cc", + "cccdad6c38d883dec87d273b03b7566722a5150f", [ null, [ @@ -207316,7 +207255,7 @@ ] ], "object-fit-none-png-001c.html": [ - "fe483baa96345ad682987f9a4bc222644c8c1cf2", + "358ab0795c6013bc86a51392614bf51be5c5cf4e", [ null, [ @@ -207329,7 +207268,7 @@ ] ], "object-fit-none-png-001e.html": [ - "91be966a408915dc62518561216fec88955f3496", + "a48dfacaea7a306870a0012d1c9d84ad98e7b862", [ null, [ @@ -207342,7 +207281,7 @@ ] ], "object-fit-none-png-001i.html": [ - "39d7e475c3b3c58ae853a38e832f7e494962f942", + "4b30e6ad9c194b30739bbb4ec1007c36132b20c9", [ null, [ @@ -207355,7 +207294,7 @@ ] ], "object-fit-none-png-001o.html": [ - "f1d702a5c64fdb5e88355e580b0a0900999c675a", + "c494fda47e12bc6a9f0d98577b33b9d66c0fe9df", [ null, [ @@ -207368,7 +207307,7 @@ ] ], "object-fit-none-png-001p.html": [ - "85edee908041b34d4ee1ebc5fe7190bb29a29efa", + "408872629cf503101cb5c78df228abb08c4f7d3e", [ null, [ @@ -207381,7 +207320,7 @@ ] ], "object-fit-none-png-002c.html": [ - "09bc836d024bffd1f614f97067f50ece6fdb76ed", + "ac2feadba19d505a41bfe7425331af13a93574a0", [ null, [ @@ -207394,7 +207333,7 @@ ] ], "object-fit-none-png-002e.html": [ - "ce3e07e7df5686ce8c9b5116401cc5f28b11c411", + "26f229828f8ae79c9c891298764bc077cd265895", [ null, [ @@ -207407,7 +207346,7 @@ ] ], "object-fit-none-png-002i.html": [ - "1f33b5758ac29023264fe9d7b90c540b6e895d03", + "1cf85d615d081a59269159a76a5e1e5aaebc29e2", [ null, [ @@ -207420,7 +207359,7 @@ ] ], "object-fit-none-png-002o.html": [ - "2b1083628e5157795fb26c22662c7cac5505c269", + "704fdc8723209d8cd44733a7f5e839725170013f", [ null, [ @@ -207433,7 +207372,7 @@ ] ], "object-fit-none-png-002p.html": [ - "656515ddebd05f8d99d9eebf31f7c96c6636ef0e", + "b231b41c8b63657420fd1e2309dafb9c1171ca65", [ null, [ @@ -207758,7 +207697,7 @@ ] ], "object-fit-scale-down-png-001c.html": [ - "5b8116ecbcb6e3343c0316e6d5a1f31c97afe3bd", + "da79c09f364a1ee98df0bad538cbbdd5405b0a8b", [ null, [ @@ -207771,7 +207710,7 @@ ] ], "object-fit-scale-down-png-001e.html": [ - "c2f587405fdaeaf8484c57081757059dbb77823c", + "3221baef0def0d39a4d1ea7931602d41ebd4f1a1", [ null, [ @@ -207784,7 +207723,7 @@ ] ], "object-fit-scale-down-png-001i.html": [ - "0fd12092459632a4d1b744c740d02eb6297ddac9", + "941122117f254f3a9d03b140a119e6ea2ddba3ce", [ null, [ @@ -207797,7 +207736,7 @@ ] ], "object-fit-scale-down-png-001o.html": [ - "bed477d0481ecae3d44a6a26ec193187338d639a", + "0dd14abdd26d4662ef3b995eac4f9385fcde9486", [ null, [ @@ -207810,7 +207749,7 @@ ] ], "object-fit-scale-down-png-001p.html": [ - "ff152315ff99651f4fa689c937f592f31cf881e7", + "37a3bdfbf317ff9789fecd9b9fedef2898647165", [ null, [ @@ -207823,7 +207762,7 @@ ] ], "object-fit-scale-down-png-002c.html": [ - "626f379f1c7ca6934e57e22fc3b2cd1fa0fad6bc", + "f65f9c08d35183899bb1315f8419a1b2016ae748", [ null, [ @@ -207836,7 +207775,7 @@ ] ], "object-fit-scale-down-png-002e.html": [ - "4190c5f1f38bb4dfdec3f6e04d2466df5715b7ee", + "9b470a62a283eadf4f6796a7ab48ed9b23269c84", [ null, [ @@ -207849,7 +207788,7 @@ ] ], "object-fit-scale-down-png-002i.html": [ - "dc3fcc2a41a6abc4cc91e839a65646b4348d9bcc", + "bb313d77c190bbf7cc4ec58a161df8432b853555", [ null, [ @@ -207862,7 +207801,7 @@ ] ], "object-fit-scale-down-png-002o.html": [ - "f7dcca2ecc5b90f110b69b98b739a39ac6e77f84", + "a431dc3759b32e5b95d9126e89d8eb623e691ae8", [ null, [ @@ -207875,7 +207814,7 @@ ] ], "object-fit-scale-down-png-002p.html": [ - "6d05ee0b254f9560b49a6be77c22252e0d4e03b1", + "72311728b089c05d530342356b138892357e640a", [ null, [ @@ -208200,7 +208139,7 @@ ] ], "object-position-png-001c.html": [ - "20ff1cb935c0d2ea72c06f6c79a69ad42a614ef2", + "4ecf6b1dfd85a7fafecbc2a00a6f7d8eb53f3d06", [ null, [ @@ -208213,7 +208152,7 @@ ] ], "object-position-png-001e.html": [ - "cdf35a1fc7a45e9ea86692a2ac92eb4781f9334e", + "55aab9450e76936a55aea061095a09e2e5ec89da", [ null, [ @@ -208226,7 +208165,7 @@ ] ], "object-position-png-001i.html": [ - "d3e2622b4066fdbc7db8e24b724b66cc264cec9c", + "9bc1d59ac4a45f47cdf53ed5b017e4c7846ef7f1", [ null, [ @@ -208239,7 +208178,7 @@ ] ], "object-position-png-001o.html": [ - "cdf0e0b5302a51a673ab6aecb57b642d6a358c5e", + "3a7ce9ccd405a594fe25d83fa25ed10a0507a242", [ null, [ @@ -208252,7 +208191,7 @@ ] ], "object-position-png-001p.html": [ - "8b80b9c5bf3e5cb694691b4996134d4d37aba575", + "74824ae4ec9fad5a2ead62d72f3c10d9979fd7fa", [ null, [ @@ -208265,7 +208204,7 @@ ] ], "object-position-png-002c.html": [ - "5ad030ffb601de16d0ff8f259aff8fc194a1a363", + "b5cbf2ed15a825798059a458ad9571547944d61d", [ null, [ @@ -208278,7 +208217,7 @@ ] ], "object-position-png-002e.html": [ - "749948ae4c4bd7ce12926bc016a23cbdea572963", + "e80bdcc6c0e10cf5e907edc4bad3fe91e5b44034", [ null, [ @@ -208291,7 +208230,7 @@ ] ], "object-position-png-002i.html": [ - "88b4a150013c22bf8f291a3adef48bb3734763a8", + "cbb184eacabf779069b3bb9ae14b53723d0215eb", [ null, [ @@ -208304,7 +208243,7 @@ ] ], "object-position-png-002o.html": [ - "0d507900f8293bfbd0b38f536ef830878a8cd9b0", + "b8a40602486b1d2bddda3c00945b511444cb8827", [ null, [ @@ -208317,7 +208256,7 @@ ] ], "object-position-png-002p.html": [ - "00ace782bc375135a349b3d415b7b9949513c8c2", + "dfbb067878b85663cdd3b5e401be231cc2c26043", [ null, [ @@ -228718,6 +228657,58 @@ {} ] ], + "block-ellipsis-repaint-001.html": [ + "b8ba9872f9958ae4b4ec23a669910e37fe091f6e", + [ + null, + [ + [ + "/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-001-ref.html", + "==" + ] + ], + {} + ] + ], + "block-ellipsis-repaint-002.html": [ + "321d7ef093165afc6ae111ff855b603520115632", + [ + null, + [ + [ + "/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-002-ref.html", + "==" + ] + ], + {} + ] + ], + "block-ellipsis-repaint-003.html": [ + "cf902c627e74af0aa675ca56c074a78c4b8aef81", + [ + null, + [ + [ + "/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-003-ref.html", + "==" + ] + ], + {} + ] + ], + "block-ellipsis-repaint-004.html": [ + "23c32d409422f3c7291313cb7204e37a3d80f8ed", + [ + null, + [ + [ + "/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-004-ref.html", + "==" + ] + ], + {} + ] + ], "line-clamp-001.html": [ "c8cfcb1066de1a1d5c98e147c8e47499069046be", [ @@ -267853,7 +267844,7 @@ ] ], "text-spacing-trim-fallback-001.html": [ - "1a13be3b30635d036d3b990c8084c19e8efe9171", + "3c31fec2cb05cecf05034419a7592f7c96c8d2af", [ null, [ @@ -307632,8 +307623,8 @@ ], "urls": { "cross-origin": { - "url-image-crossorigin-anonymous-negative.sub.html": [ - "f5066a55d2b5488110df132730c70e4be39973e2", + "url-image-cross-origin-anonymous-negative.sub.html": [ + "c0eb5d451488fd8d3ceddf31c6f21d2b1c725c7b", [ null, [ @@ -307645,8 +307636,8 @@ {} ] ], - "url-image-crossorigin-anonymous.sub.html": [ - "0a45eda33d7315d1a2e6e45bb722bd671c1b5bdb", + "url-image-cross-origin-anonymous.sub.html": [ + "83ce64f57dd349f8b438b5d387f769acadba886d", [ null, [ @@ -307658,8 +307649,8 @@ {} ] ], - "url-image-crossorigin-use-credentials-negative.sub.html": [ - "952f953d8443b6873d5348e5fee8473ac506f07b", + "url-image-cross-origin-use-credentials-negative.sub.html": [ + "73fc57dcbd4d71885a54e2ee4fa046b9f1b89032", [ null, [ @@ -307671,8 +307662,8 @@ {} ] ], - "url-image-crossorigin-use-credentials.sub.html": [ - "f592a02c4869ded268bd6e4822ae48957ddd82ff", + "url-image-cross-origin-use-credentials.sub.html": [ + "a978de931fe32986fccd0f5b7118866738004e7b", [ null, [ @@ -307687,8 +307678,8 @@ }, "referrer-policy": { "no-referrer": { - "url-image-referrerpolicy-cross-origin.sub.html": [ - "30a52a848a4fc3b696d65cad27263fbb5753a1bc", + "url-image-referrer-policy-cross-origin.sub.html": [ + "dbfd63b23e60004beac72b1cce63e96d55884caf", [ null, [ @@ -307700,8 +307691,8 @@ {} ] ], - "url-image-referrerpolicy-same-origin.sub.html": [ - "ebbff834b92fe084e779a91ad38a882d8640e098", + "url-image-referrer-policy-same-origin.sub.html": [ + "c25f059ded9bdefc9aead48c2611cfd344a19f1e", [ null, [ @@ -307715,8 +307706,8 @@ ] }, "no-referrer-when-downgrade": { - "url-image-referrerpolicy-cross-origin.sub.html": [ - "ce51df67c027ca74a8c033f78530dc7f1d1f9701", + "url-image-referrer-policy-cross-origin.sub.html": [ + "e960d92fe70e208a699849300e3475f96e884261", [ null, [ @@ -307728,8 +307719,8 @@ {} ] ], - "url-image-referrerpolicy-same-origin.sub.html": [ - "6860e7386bf65b16be804952df14d9613d742073", + "url-image-referrer-policy-same-origin.sub.html": [ + "b374f7176297cf3f3f60bcf9589c9862b047c0f0", [ null, [ @@ -307743,8 +307734,8 @@ ] }, "origin": { - "url-image-referrerpolicy-cross-origin.sub.html": [ - "14a8172d6e354693c5fd0857223e3c3601833588", + "url-image-referrer-policy-cross-origin.sub.html": [ + "5bf82ea74974afeb25ff1152048413194536c087", [ null, [ @@ -307756,8 +307747,8 @@ {} ] ], - "url-image-referrerpolicy-same-origin.sub.html": [ - "1cc6f011c12ee992c4414446fe8cb569aab49a70", + "url-image-referrer-policy-same-origin.sub.html": [ + "378c24c9e1d8547c048f4d0d98b283b57229062a", [ null, [ @@ -307771,8 +307762,8 @@ ] }, "origin-when-cross-origin": { - "url-image-referrerpolicy-cross-origin.sub.html": [ - "6285f2f0e5de1dd3e0f3a405eb226926bad660ae", + "url-image-referrer-policy-cross-origin.sub.html": [ + "600f2b17c729c895c5e1321af2a05e3f937c5bf3", [ null, [ @@ -307784,8 +307775,8 @@ {} ] ], - "url-image-referrerpolicy-same-origin.sub.html": [ - "eb4e081e94013b5ceb5cfa8e637c5074c4e69a5d", + "url-image-referrer-policy-same-origin.sub.html": [ + "469bbdcdf43c8dd1355700ab757f2b6b2e3e852e", [ null, [ @@ -307799,8 +307790,8 @@ ] }, "same-origin": { - "url-image-referrerpolicy-cross-origin.sub.html": [ - "de23eb1f0954c05d617e1e2b28e8d1ff743f6aa2", + "url-image-referrer-policy-cross-origin.sub.html": [ + "3c2280ef1f0cabd624761dab6114b9a4e35b5609", [ null, [ @@ -307812,8 +307803,8 @@ {} ] ], - "url-image-referrerpolicy-same-origin.sub.html": [ - "866affc6d9fb61d1f4e88a88355e8cb362684497", + "url-image-referrer-policy-same-origin.sub.html": [ + "62ba453f92d235d0ee8671e2538e6cf595f90f2c", [ null, [ @@ -307827,8 +307818,8 @@ ] }, "strict-origin": { - "url-image-referrerpolicy-cross-origin.sub.html": [ - "b17ac4b4ef7d39e1f700bb4c0b969fc1e7d4401a", + "url-image-referrer-policy-cross-origin.sub.html": [ + "8fbbc15cfe475bccc39253540844751df83be046", [ null, [ @@ -307840,8 +307831,8 @@ {} ] ], - "url-image-referrerpolicy-same-origin.sub.html": [ - "dadf1c58d526c1e6674d67d54a5f1e1cc65ffa42", + "url-image-referrer-policy-same-origin.sub.html": [ + "678eb9a6d466d6150667eaae3ec847668af91315", [ null, [ @@ -307855,8 +307846,8 @@ ] }, "strict-origin-when-cross-origin": { - "url-image-referrerpolicy-cross-origin.sub.html": [ - "1e66fbf659f821cbf3335dca2147e7c7a636528e", + "url-image-referrer-policy-cross-origin.sub.html": [ + "c90b28fc01effd3ef4098b3f4fc26bf63f68ea91", [ null, [ @@ -307868,8 +307859,8 @@ {} ] ], - "url-image-referrerpolicy-same-origin.sub.html": [ - "57f5351a5a1bcf8c33c3607c720fa0bac934ba0b", + "url-image-referrer-policy-same-origin.sub.html": [ + "92a328959325ac8a8576bf3b63a2aa85cbcb7001", [ null, [ @@ -307883,8 +307874,8 @@ ] }, "unsafe-url": { - "url-image-referrerpolicy-cross-origin.sub.html": [ - "dc5a3d5143598159090c35db4560389aa5b6cae3", + "url-image-referrer-policy-cross-origin.sub.html": [ + "cebe8759157ad22348d715512e322630dacbc3c6", [ null, [ @@ -307896,8 +307887,8 @@ {} ] ], - "url-image-referrerpolicy-same-origin.sub.html": [ - "7eaba535f142aeb4d00704f7096c62ba99dab4b8", + "url-image-referrer-policy-same-origin.sub.html": [ + "b7a8497df18e01b7f4af9b3911a1933cc544bf8a", [ null, [ @@ -310949,7 +310940,7 @@ ] ], "column-span-during-transition-doesnt-skip.html": [ - "67e6b5d5d0008ac08cb23214ed291c1375f9e236", + "81d4f93eccbd6d37d8f231f4e73b58993343218b", [ null, [ @@ -310958,7 +310949,23 @@ "==" ] ], - {} + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 100000 + ] + ] + ] + ] + } ] ], "content-smaller-than-box-size.html": [ @@ -313222,6 +313229,35 @@ } ] ], + "group-children-sizing-with-border-props.html": [ + "a3b35d83cf5686823387f3340b20fde9c98d865c", + [ + null, + [ + [ + "/css/css-view-transitions/nested/group-children-sizing-with-border-props-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 70 + ], + [ + 0, + 500 + ] + ] + ] + ] + } + ] + ], "group-children-sizing-with-border.html": [ "cb0cf819b428ed19b2e9c0071ce8ea2304aca0bf", [ @@ -315315,6 +315351,19 @@ } ] ], + "implicit-contain.html": [ + "03368e850f2fe6deb1b9a72f2c9f41c15255ecc3", + [ + null, + [ + [ + "/css/css-view-transitions/scoped/implicit-contain-ref.html", + "==" + ] + ], + {} + ] + ], "nested-scope.html": [ "b9cc25c3338912ae91da453c20924dd5cc90e294", [ @@ -316806,6 +316855,19 @@ ], {} ] + ], + "zoom-pseudo-image.html": [ + "3a79995dc6b256123f2bc575af1191cbce581160", + [ + null, + [ + [ + "/css/css-viewport/zoom/zoom-pseudo-image-ref.html", + "==" + ] + ], + {} + ] ] } }, @@ -331058,6 +331120,19 @@ {} ] ], + "text-combine-upright-gen-con-001.html": [ + "88e1ef16a9431d866d3535e8a12c499114612c20", + [ + null, + [ + [ + "/css/css-writing-modes/text-combine-upright-gen-con-001-ref.html", + "==" + ] + ], + {} + ] + ], "text-combine-upright-inherit-all-001.html": [ "6bb0a13b396335b3588ab980d95887b2a715496e", [ @@ -333585,7 +333660,7 @@ ] ], "backdrop-filter-plus-filter.html": [ - "5c83faae8686bd1b22f655f9aac2c50f1ab32a0a", + "e68d28ce6ca9f7aebacda93038b56f4f5e90a8ac", [ null, [ @@ -333605,7 +333680,7 @@ ], [ 0, - 210 + 298 ] ] ] @@ -373566,6 +373641,19 @@ {} ] ], + "image-sizing-min-content.tentative.svg": [ + "fc3f493750494af0552a0786664012d1f9223852", + [ + null, + [ + [ + "/svg/styling/image-sizing-min-content-expected.svg", + "==" + ] + ], + {} + ] + ], "invalidation": { "nth-child-of-class.svg": [ "a91f421337ceeaade2072cee54b29b6eeeda6a01", @@ -373594,6 +373682,188 @@ ] ] }, + "nested-svg-sizing-auto.tentative.svg": [ + "21ebe5bf6929b11e1d4e07a13a02b04bfebe5c96", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-full-circle-ref.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-calc-size.tentative.svg": [ + "1517f897b4904299a6db867ab71b41be17e49b52", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-full-circle-ref.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-calc.tentative.svg": [ + "ba409e5c7ee79ea8d5965a5e5f4f635194fd942b", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-expected.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-ems.tentative.svg": [ + "59574e6ec5ca046482a36b9c4c55b979ac295fc8", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-expected.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-fit-content.tentative.svg": [ + "02678cdb978142074be939104ea2bf507e56b469", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-full-circle-ref.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-inherit.tentative.svg": [ + "871ef77d9f6b134ece4ab692f47cadbd09565c12", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-full-circle-ref.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-initial.tentative.svg": [ + "65c65244bee1ef7a0fd87fc1714b3522e36e997e", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-full-circle-ref.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-max-content.tentative.svg": [ + "7650e4055046c5174533eea6b86976d39abfe38b", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-full-circle-ref.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-min-content.tentative.svg": [ + "871b66a816b4b20a45415208972dd18183a21cc4", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-full-circle-ref.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-percent.tentative.svg": [ + "150e409305a48e5db1a8e93be972a867c3e338e8", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-expected.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-rems.tentative.svg": [ + "44a5cb6001dda3439da22d64ce8682a5a4a736d2", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-expected.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-stretch.tentative.svg": [ + "f6fb436631bd7f556da108198da6d729f197f138", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-full-circle-ref.svg", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-viewport-units-with-ICB.tentative.html": [ + "a53911f39959d9e2ab6b3675b693b828d50bf31c", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-viewport-units-with-ICB-expected.html", + "==" + ] + ], + {} + ] + ], + "nested-svg-sizing-viewport-units.tentative.svg": [ + "387e97cb185f264b716c00b5d255dae2424370da", + [ + null, + [ + [ + "/svg/styling/nested-svg-sizing-expected.svg", + "==" + ] + ], + {} + ] + ], "nested-svg-sizing-with-use.svg": [ "5f3c4eed49024530cf05e0f832877974aa2b9d20", [ @@ -402982,50 +403252,6 @@ [] ] }, - "cookie-store": { - "META.yml": [ - "4bbc6311bdceece7580ba9c38344081e0b4aba57", - [] - ], - "README.md": [ - "b8a1d0a6098492b615dfae8a1e5e44ade8a2f3db", - [] - ], - "resources": { - "always_changing_sw.sub.js": [ - "9fdf99848fa50316e275cd6636a5755270a9bb1e", - [] - ], - "cookie-test-helpers.js": [ - "82ca135f88e423440c3c3fd2bb02df4ed39aa436", - [] - ], - "cookie_helper.py": [ - "71dd8b82ee7eb50054455724bc4c018b22f20949", - [] - ], - "domain_parsing-child.sub.https.html": [ - "96a063990710b60105a1cb665f48a7c7449e1fe1", - [] - ], - "empty_sw.js": [ - "2b0ae226121503789d63d405670becb09e51b833", - [] - ], - "helper_iframe.sub.html": [ - "d5cae23d160ef8ac5a57820eee1d8239ad637532", - [] - ], - "helpers.js": [ - "8d5dddef6577fc534a68c9e8415854e4c64901fd", - [] - ] - }, - "serviceworker_cookieStore_cross_origin.js": [ - "fa1c4084fd45f1334a24d658d8c881e17291c915", - [] - ] - }, "cookies": { "META.yml": [ "d0743949b6a122d8bd0adf7b1ed0181f0c51429d", @@ -403372,6 +403598,50 @@ } } }, + "cookiestore": { + "META.yml": [ + "a1d0ed48c87d9a2399674991726a5185aa9ebb41", + [] + ], + "README.md": [ + "d767a7b46811811f39c43598fb0848d828a69ec8", + [] + ], + "resources": { + "always_changing_sw.sub.js": [ + "9fdf99848fa50316e275cd6636a5755270a9bb1e", + [] + ], + "cookie-test-helpers.js": [ + "82ca135f88e423440c3c3fd2bb02df4ed39aa436", + [] + ], + "cookie_helper.py": [ + "71dd8b82ee7eb50054455724bc4c018b22f20949", + [] + ], + "domain_parsing-child.sub.https.html": [ + "96a063990710b60105a1cb665f48a7c7449e1fe1", + [] + ], + "empty_sw.js": [ + "2b0ae226121503789d63d405670becb09e51b833", + [] + ], + "helper_iframe.sub.html": [ + "d5cae23d160ef8ac5a57820eee1d8239ad637532", + [] + ], + "helpers.js": [ + "8d5dddef6577fc534a68c9e8415854e4c64901fd", + [] + ] + }, + "serviceworker_cookieStore_cross_origin.js": [ + "fa1c4084fd45f1334a24d658d8c881e17291c915", + [] + ] + }, "core-aam": { "META.yml": [ "f150c4fe065b7569c673c4e4007882063d723bef", @@ -421450,6 +421720,10 @@ "5a364aa7847a13e5c786708f5f97dd0dd718649d", [] ], + "position-visibility-initial-ref.html": [ + "17798173804b41258690ed22f1169a529bca42fe", + [] + ], "position-visibility-no-overflow-ref.html": [ "d6e64d0d107664532f657d8774df1aeda6e038f9", [] @@ -426634,64 +426908,8 @@ "b6c86aa684b43c789f13ff5f97f240be5619bcb3", [] ], - "content-none-details-ref.html": [ - "ea844dc030207a6da5cdcfa9443887878c6324c8", - [] - ], - "content-none-fieldset-ref.html": [ - "49a86e7a0f7fa736618c4e1aa836b4c3feddc34c", - [] - ], - "content-none-input-ref.html": [ - "faa3ba3734c628a5db4e732d5b655f16b2cd81f3", - [] - ], - "content-none-math-ref.html": [ - "5e43f2ece4d1c7edf8a1609fe6168e933003fdff", - [] - ], - "content-none-option-ref.html": [ - "336c5bfb94bea7e6855f85a214cfcb2e99841a38", - [] - ], - "content-none-root-block-ref.html": [ - "e3c2adb4178e5d40f15a7d7967d3cb375d36723f", - [] - ], - "content-none-root-columns-ref.html": [ - "661c064ad3dfbd7ac359b77d956df1b1e439f4e1", - [] - ], - "content-none-root-flex-ref.html": [ - "b14e9f14f9376de03d562b8f12892ecdc27239dd", - [] - ], - "content-none-root-grid-ref.html": [ - "9b092c664b93ce01ccf2ec41a2a885c7148267ad", - [] - ], - "content-none-root-ruby-ref.html": [ - "cfb0ecd86622da02b8684d9ce915bb1fd20731cd", - [] - ], - "content-none-root-table-ref.html": [ - "d32fdf05256b41802f9dd2fe9ffa1feb0d4b1991", - [] - ], "content-none-select-1-ref.html": [ - "5fef3a498cd36b2ab4d89b14448ecc334c259260", - [] - ], - "content-none-select-2-ref.html": [ - "4848b57d9578ffd7478ce59d05231abd2119f900", - [] - ], - "content-none-span-ref.html": [ - "cec124a3d4574104240243f1f6e44d95fcbd333c", - [] - ], - "content-none-table-ref.html": [ - "ec5d16721067a71ffe76fd43b60826fca6d735a9", + "0c1f7184a6f3d66df4f35e747743e3a1ee3ee39c", [] ], "element-replacement-alt-ref.html": [ @@ -438391,6 +438609,22 @@ "b002cf0fb3a3481e476ee6fc5adfed14b8d19f79", [] ], + "grid-gap-decorations-048-ref.html": [ + "0e34c5af2767b847c5384df9b6333a8b73cdb5a9", + [] + ], + "grid-gap-decorations-049-ref.html": [ + "fda312af62dd4206f6e30dafcae063d9688d2b06", + [] + ], + "grid-gap-decorations-050-ref.html": [ + "72dbb2c3385f00886c662998cf9ce75a1c6881b7", + [] + ], + "grid-gap-decorations-051-ref.html": [ + "cafaa519cce2ff943218d3f7e61a11ee535c66c7", + [] + ], "subgrid": { "subgrid-gap-decorations-012-ref.html": [ "bcb16d454899cd69314fddecc2f6883e14ed49b5", @@ -438541,6 +438775,14 @@ "ddb89d1fb2a3601509dbf19219b03b91c930ae84", [] ], + "grid-abspos-staticpos-align-self-center-large-border-padding-ref.html": [ + "f9b3436eebb305d7fb5274adc4b5ae5cc8f29094", + [] + ], + "grid-abspos-staticpos-align-self-center-ref.html": [ + "3f6fd20356c32abd681638f9ad63a0b8884438a7", + [] + ], "grid-abspos-staticpos-align-self-end-large-border-padding-ref.html": [ "7f2a5ad8377f9948d7640673eb76cfac3edfa3cd", [] @@ -441117,11 +441359,11 @@ [] ], "object-fit-contain-png-001-ref.html": [ - "b9f158093e76b7e9dc94648dcbaf6fbc74aed130", + "c0de70405a62b3b0bb33b99a8514c062d83d1aed", [] ], "object-fit-contain-png-002-ref.html": [ - "804bde94c1b0cb342e7e7a8a4d52cebd8b955278", + "20999a7d46f7ae75e905db55ac10cdfab32c3dbe", [] ], "object-fit-contain-svg-001-ref.html": [ @@ -441153,11 +441395,11 @@ [] ], "object-fit-cover-png-001-ref.html": [ - "96a1ec64b216a9c31e51e63401fe0892732c4755", + "11509a2a9dc456be71052431e694168af4b49d15", [] ], "object-fit-cover-png-002-ref.html": [ - "9dc589abeb6643624a45276f279155d94611788d", + "ac44c265ffc9a1d073eec31210de36f100ef4cd0", [] ], "object-fit-cover-svg-001-ref.html": [ @@ -441193,11 +441435,11 @@ [] ], "object-fit-fill-png-001-ref.html": [ - "19a03a19e47d71754d2218963378c18a0c19c088", + "d554c145a8d15f9a26b87c76ceb239af04894e70", [] ], "object-fit-fill-png-002-ref.html": [ - "b05469cf6e34d6a8934f8288f93e4c2ce957f2a8", + "c273a2d7b4b5305fc40ac792cbba838854238e86", [] ], "object-fit-fill-svg-001-ref.html": [ @@ -441225,11 +441467,11 @@ [] ], "object-fit-none-png-001-ref.html": [ - "bd25ed754e00edb04923c99f971813e09b758fa5", + "ffff406deee9441ba5e04691a70775569ce9a2cd", [] ], "object-fit-none-png-002-ref.html": [ - "8273d3b21e5b573a86cf78956afd66a7c74d4240", + "f3a0469aae468047d269556c351423e8ff5f9579", [] ], "object-fit-none-svg-001-ref.html": [ @@ -441257,11 +441499,11 @@ [] ], "object-fit-scale-down-png-001-ref.html": [ - "abf3788be2aef342b3318c4c7be8ecab65e15622", + "f0d81cc14500a7c546f9f8b042d8a57035aeaef8", [] ], "object-fit-scale-down-png-002-ref.html": [ - "3e516985f8cf0de6f5aa8fc1db62eb4acad198a6", + "2bdc7b7f66894fbdb493326eecdd3a6bfe0a9676", [] ], "object-fit-scale-down-svg-001-ref.html": [ @@ -441289,11 +441531,11 @@ [] ], "object-position-png-001-ref.html": [ - "1027cfc35ca607644225491df66616ce3f53eaab", + "93f6c877f94d28411ec5afd410ce7d9a5b0e9b97", [] ], "object-position-png-002-ref.html": [ - "bd14f9cfc5754834031a23c1170a1b60f05d49f6", + "3b5ceb7c33c86149269d08a2c64344955f5fc58d", [] ], "object-position-svg-001-ref.html": [ @@ -441788,7 +442030,7 @@ [] ], "template-object-fit-ref.html": [ - "068c74b4e41aa34cb19478e7441dda90215e5175", + "6063eb748f8614a9891c5f6abecf8acbf5816262", [] ], "template-object-fit-test.html": [ @@ -441796,11 +442038,11 @@ [] ], "template-object-position-ref.html": [ - "19661f41f6fb0b5b8fd979c1c0b2902b1d559260", + "93f358156e158f159c451cf11f31615e1ec57cda", [] ], "template-object-position-test.html": [ - "fb4b3ad3c7aeab61f44c394926735a97a8767d3c", + "b3cab1682a707e4599e8706aa572fbcd4b830c51", [] ] } @@ -445206,6 +445448,22 @@ "1e89789852b9ed51a0ae9e6ab6995ad996b8f438", [] ], + "block-ellipsis-repaint-001-ref.html": [ + "8a805980b2ed896a73dc888212bd491e83b28734", + [] + ], + "block-ellipsis-repaint-002-ref.html": [ + "b26e59787be50531d8ea4d125ba50530c798d9e1", + [] + ], + "block-ellipsis-repaint-003-ref.html": [ + "95c319f38bee0c9f1c03c80492be360968fe2657", + [] + ], + "block-ellipsis-repaint-004-ref.html": [ + "ec5756fb1c81c4bc84f93b8f39bcc0125eaf6809", + [] + ], "line-clamp-010-ref.html": [ "46ca731c5446db88ba4e5fc8a3d6b8b43c4fc056", [] @@ -454092,7 +454350,7 @@ [] ], "text-spacing-trim-fallback-001-ref.html": [ - "d3f72b2ecee9848c1a9460ce2bda82bef848798e", + "cf5086157127d353204396127dee1c6701e5899a", [] ], "text-spacing-trim-feature-001-ref.html": [ @@ -460070,12 +460328,12 @@ "2c39a087e9eeb786967751acbbbda112ad590ff9", [] ], - "image-referrerpolicy.py": [ + "image-referrer-policy.py": [ "cff09165f1047eae0b7f94008d076cc3a417c282", [] ], - "image-referrerpolicy.sub.js": [ - "4fc9d46218f154736106c3294a77ce695f21ce1b", + "image-referrer-policy.sub.js": [ + "52152278d86a3d14bff8d3c9faa9bc33c98dc0d1", [] ], "relative-urls.css": [ @@ -460749,6 +461007,10 @@ "4f994bd03f67c7e73b03bb58b8eec220cb7720c5", [] ], + "group-children-sizing-with-border-props-ref.html": [ + "c914fa25218ae99cb628293587b8be08c51b670f", + [] + ], "group-children-sizing-with-border-ref.html": [ "f1a484400e77b69372808af4d40c376c9a00aa14", [] @@ -461071,6 +461333,10 @@ "ce087d8846316fb1e4f5c0b2d1087bf73763ec0f", [] ], + "implicit-contain-ref.html": [ + "165296957bf93c5483857a5e6b8a82db754c711f", + [] + ], "nested-scope-ref.html": [ "951c0928687dcd6edb32e8e3aa7307bf3d6b3923", [] @@ -461364,6 +461630,10 @@ "zoom-precision-ref.html": [ "b24d903e5ba7479158a806506ad75057da827b70", [] + ], + "zoom-pseudo-image-ref.html": [ + "2378659761f59587d05ec73fba39ac4b12f388a0", + [] ] } }, @@ -463772,6 +464042,10 @@ "a0cba009aa5a3f5b3e397821a3228651af32390d", [] ], + "text-combine-upright-gen-con-001-ref.html": [ + "521a3f0c4a2bbafc484c3fcd7e405a8e042de512", + [] + ], "text-combine-upright-line-breaking-rules-001-ref.html": [ "e1b7b34b562c8c125c5a6b2dfa885f679ebf812c", [] @@ -469715,7 +469989,7 @@ [] ], "setmediakeys-to-multiple-video-elements.js": [ - "4c7faef69d0e8b8501b53be6050cf3b028909fdb", + "843d37e7a52d34d874f31dbe432df3e7fa6580f6", [] ], "setmediakeys.js": [ @@ -470370,7 +470644,7 @@ ], "fedcm": { "disconnect-iframe.html": [ - "ae97011a53535b66ae619132ae91a2d763bc1dad", + "acead8071d348183165ed454ab7c1ae6fddf15cf", [] ], "intercept_service_worker.js": [ @@ -470391,7 +470665,7 @@ ] }, "fedcm-helper.sub.js": [ - "d370ea6e374c0eb7272201452baac874771dce82", + "045e9fad6f59419dfed30dbd4348cfa15d8d26a3", [] ], "fedcm-helper.sub.js.headers": [ @@ -470403,7 +470677,7 @@ [] ], "fedcm-iframe.html": [ - "085d6128976f9852f638fd5b0c17912db13ea011", + "e814b4c15db63e79ed7e3b8c624e733044df1654", [] ], "fedcm-mock.js": [ @@ -472408,7 +472682,7 @@ [] ], "fetch-later.html": [ - "955f815d940bf853a9c84a367bf2023d9738e1a0", + "b295be116c731c5ceec2d222ecd999fc5342d5c6", [] ], "get_beacon.py": [ @@ -472515,8 +472789,20 @@ "fb306f99d3c8269a09109bcd4f473dd55adf52ba", [] ], + "iframer.html": [ + "ede09bc6b0ac5d41cc5d7e21c5c21ae222a79953", + [] + ], + "navigate.html": [ + "5796cb41be50d49ae635015a4f501748308b7277", + [] + ], + "openee.html": [ + "2e06a8d0328ca2cef71ea901a5383c9f9536fc78", + [] + ], "support.sub.js": [ - "09e234c5f24218f556109881f50c6551286e252f", + "157c2b400666cc4240539528f7ede306c67ab733", [] ], "target.py": [ @@ -474437,6 +474723,10 @@ "cd0f08ca4f8d4bff4828034df9332b7a69d4fdd7", [] ], + "NotoSansCJKjp-Regular-subset-halt-300C.otf": [ + "a7fb34672445f8756168c694976957ac41896966", + [] + ], "NotoSansCJKjp-Regular-subset-halt-FF1A.otf": [ "159aec5f717017658ac416a789722e3ae937f196", [] @@ -474454,7 +474744,7 @@ [] ], "subset.sh": [ - "899db77945df516444a327b88e6e3db79f421de1", + "5f5ebbd83408542a240132f57e5e996fb51f98da", [] ] }, @@ -474771,7 +475061,7 @@ [] ], "FileSystemBaseHandle-buckets.js": [ - "9654755148a871e8af19a16aab93208eaa24e6e8", + "c67cb1de64960dc144c49e15c9b0e8bb603dbbee", [] ], "FileSystemBaseHandle-getUniqueId.js": [ @@ -490962,6 +491252,10 @@ "7decc7bc6035e60e6613e55cbb4dafef0b68dab9", [] ], + "script-src-event-handler-framed.sub.html": [ + "7b9e0edeb979e8d04c583d9b3080c388ddab1e17", + [] + ], "script-src-framed.sub.html": [ "baab01075022601ed258866a0b98a6d07129f5fb", [] @@ -490986,8 +491280,12 @@ "08609b1c12a0c79fc0fb8f260777b91fff85eec7", [] ], + "script-src-unsupported-language-framed.sub.html": [ + "62b2c4c017b49ac2dc7e01bc1382a2cc9b10aa39", + [] + ], "script-src-unsupported-type-framed.sub.html": [ - "1f38560ee152a61623667b2be9057296d05453c6", + "78e71941b358cc231b3190cdbf4aab4548611a88", [] ], "svg-image-href-framed.sub.html": [ @@ -491226,7 +491524,7 @@ [] ], "script-src-unsupported-type-nonspeculative.sub.html": [ - "94098b5c77539d7d49d4cb4c3ced4cea3a98ff68", + "dc8343c382406383b25ce8e41d2bad8ab7085a1f", [] ], "svg-image-href-nonspeculative.sub.html": [ @@ -491299,7 +491597,7 @@ }, "tools": { "generate.py": [ - "f0db885814b8997cd80ff34121132607d7e71c17", + "b3b577d9e1069b1dd2140f2a2499d51fa4947ff1", [] ] } @@ -493915,8 +494213,8 @@ "177c5b9f11d4e1dd48ebb407529a4e567d030f1a", [] ], - "cookie-store.idl": [ - "8a000cac0b262de89a1c265755d8a5aeb2985271", + "cookiestore.idl": [ + "ecb277756cc89869423f91e7f7d57b19789b1114", [] ], "crash-reporting.idl": [ @@ -494419,6 +494717,10 @@ "6b258642c3b1a037ce33e59229d75d1a384a5f25", [] ], + "origin.tentative.idl": [ + "c2f9117133934d44f2a95cf4dc4d545afd454eef", + [] + ], "page-lifecycle.idl": [ "26de11c23d0c160f383fb2d6513b6a2ffbb1c6bd", [] @@ -495313,7 +495615,7 @@ } }, "lint.ignore": [ - "75a20041d5f3e08c58230f3583474ef3f4143af1", + "5571f01eb8ad3be8340bf382beaabbcacc3cd08e", [] ], "loading": { @@ -498160,7 +498462,7 @@ [] ], "opaque-origin-page.html": [ - "98e2c1b3175722ce87bc7694bc1915ceadc52920", + "ff4556ed5ce5cd17b3b28ed469a8112e46918415", [] ], "post-entries-length-to-top.html": [ @@ -498211,7 +498513,7 @@ [] ], "back-forward-opaque-origin-page.html": [ - "ec633639524aaa04917eb38505e47a59d9686e24", + "b62b573b5f2d1cd6972c8d0579e5b2a8b34af91a", [] ], "helpers.js": [ @@ -498249,6 +498551,12 @@ ] } }, + "resources": { + "helpers.mjs": [ + "2208dab3b0b875843f62721d2c07d4f0b4471d33", + [] + ] + }, "state": { "resources": { "helpers.js": [ @@ -503196,7 +503504,7 @@ [] ], "testharness.js": [ - "b5847ed406ae5af7f8493df3adbee90e318b8ebc", + "f495b62458ba75b8021c9f62ccadc4e0f4eaa3c9", [] ], "testharness.js.headers": [ @@ -509632,6 +509940,10 @@ "3342e9347c319bacd632dd20399dca03f9fe69e9", [] ], + "image-sizing-min-content-expected.svg": [ + "9e9b69901f3772eac2049d292008e2c18197c582", + [] + ], "invalidation": { "nth-child-of-class-ref.svg": [ "780bb9f3f68551d37dac298dfff7cf1ac55597ab", @@ -509642,6 +509954,14 @@ "a8fa5211842b3a351660e047626517aeafe960b5", [] ], + "nested-svg-sizing-full-circle-ref.svg": [ + "f35ab0d4e2f8fa9fbc5d44ae5f6d83e71c684fc1", + [] + ], + "nested-svg-sizing-viewport-units-with-ICB-expected.html": [ + "4f3762c520665c3a0fdb2673091eb4db8a133942", + [] + ], "nested-svg-sizing-with-use-expected.svg": [ "daef973aa5d1b0ae0a5c29cc3d94e8f893273ace", [] @@ -521044,7 +521364,7 @@ [] ], "network.py": [ - "0339d968ca251b54dba2b8d25645676291650d05", + "92db722870583c32461f81dd8a4533b0f300deb9", [] ], "permissions.py": [ @@ -523803,7 +524123,7 @@ [] ], "testharness.js": [ - "7c1ded21d0e266612d49cfe9eef89c24f704cf84", + "ff96f572077231d2e5949b08473ea9a3e3ea7a24", [] ], "testharnessreport.js": [ @@ -524712,7 +525032,7 @@ "animation-model": { "animation-types": { "property-list.js": [ - "21f39b1fc185345f3794cb9f0f28865e10c7ceb6", + "f11f20dfaae7098af00700313ce4b1fccb8834ac", [] ], "property-types.js": [ @@ -526650,6 +526970,12 @@ [] ] }, + "remove_data_collector": { + "__init__.py": [ + "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", + [] + ] + }, "remove_intercept": { "__init__.py": [ "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391", @@ -527382,7 +527708,7 @@ [] ], "helpers.py": [ - "9a7de51a417adb47fc6c6956df4e5b79a9767fac", + "8db6a6078e0a48482fab2d0359ab4e3cc7a44892", [] ], "html": { @@ -527980,11 +528306,11 @@ [] ], "script-transform-generateKeyFrame.js": [ - "5e68ee1fb9be8133501ee3f5338f4335bd4901de", + "bf8b7535ba9e0c9292ddcb90d7efaf27d149756b", [] ], "script-transform-sendKeyFrameRequest.js": [ - "361d7ce0235794b8a39201b5869a38f6720c80ca", + "990b43d2e5fe1cb3e70d2e0908047c29e5004caf", [] ], "script-transform-worker.js": [ @@ -558260,7 +558586,7 @@ ] }, "getRandomValues.any.js": [ - "574134eb76dcd8ea059c531c88841477736fbed6", + "aecd38efd60bac63a28673241039d2743e5b911f", [ "WebCryptoAPI/getRandomValues.any.html", {} @@ -559895,7 +560221,7 @@ ] ], "detector.https.window.js": [ - "f52064696f33bdf1fdcc4d4cec56a24eaa35be6b", + "0ccbe8955d3721416acaca62043d451f0acd5719", [ "ai/language_detection/detector.https.window.html", { @@ -560616,7 +560942,7 @@ ] ], "translator.optional.https.window.js": [ - "1b2519cf2f0ed9c8b030fa1b2c6c79b000621478", + "ceb7846bf3695dc9c2ff5c0037f026cc0235d139", [ "ai/translator/translator.optional.https.window.html", { @@ -561595,7 +561921,7 @@ ] ], "fetch.https.window.js": [ - "1756a0e6e3fc3259bd26dd37d43e890ae0e9a7b0", + "6a2f6ee6711a0f1f8e1bbe9c74be18082e2b3f1d", [ "background-fetch/fetch.https.window.html", { @@ -580494,6 +580820,13 @@ {} ] ], + "style-src-elem-allowed-src-blocked-link.html": [ + "ce4dae7aeaaeed710cf093ba0f2efaa050f2aebf", + [ + null, + {} + ] + ], "style-src-elem-allowed-src-blocked.html": [ "c15cf0bcf64cb535de38235bf1971cd7e4e7f1d0", [ @@ -581445,1191 +581778,6 @@ ] ] }, - "cookie-store": { - "change_eventhandler_for_already_expired.https.window.js": [ - "f3bbe0ea560974e9486941384e75a58d2d6a4637", - [ - "cookie-store/change_eventhandler_for_already_expired.https.window.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Test that setting an already-expired cookie does not trigger an event." - ], - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ] - ], - "change_eventhandler_for_document_cookie.https.window.js": [ - "1937ebdae35942840dc3b641b5907f334048f3fb", - [ - "cookie-store/change_eventhandler_for_document_cookie.https.window.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Observing 'change' events in document when cookies set via document.cookie" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ] - ], - "change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js": [ - "8517995acfe746bbff09243597d6d319e3af1bc2", - [ - "cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Observing 'change' events in document when cookies set via Set-Cookie header" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ] - ], - "change_eventhandler_for_no_change.https.window.js": [ - "5f9c2927433fc408c70c005789dc0bcc34d46caa", - [ - "cookie-store/change_eventhandler_for_no_change.https.window.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Test that setting a duplicate cookie does not fire a second event." - ], - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ] - ], - "change_eventhandler_for_no_name_and_no_value.https.window.js": [ - "4498caf59689cc3da875d1c56937f6d2a235cb5d", - [ - "cookie-store/change_eventhandler_for_no_name_and_no_value.https.window.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Observing 'change' events in document when modifications API is called with blank arguments" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ] - ], - "change_eventhandler_for_no_name_equals_in_value.https.window.js": [ - "13d721786c9a140b05ed5291c6096c894053f78b", - [ - "cookie-store/change_eventhandler_for_no_name_equals_in_value.https.window.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Observing 'change' events in document when setting a cookie value containing \"=\"" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ] - ], - "change_eventhandler_for_no_name_multiple_values.https.window.js": [ - "60c6c16518ae767d2dab68e62af8967b9890072b", - [ - "cookie-store/change_eventhandler_for_no_name_multiple_values.https.window.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Observing 'change' events in document when modifications API is called multiple times with a blank name" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ] - ], - "cookieListItem_attributes.https.any.js": [ - "b42a745d3e4e1a9f4c8a0c6e7d9c04c02f8d1340", - [ - "cookie-store/cookieListItem_attributes.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieListItem attributes" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieListItem_attributes.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieListItem attributes" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStoreManager_getSubscriptions_empty.https.any.js": [ - "8cfd732f304509582ff8c9be97e8e90e6c06e8ed", - [ - "cookie-store/cookieStoreManager_getSubscriptions_empty.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: ServiceWorker without cookie change subscriptions" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ] - } - ], - [ - "cookie-store/cookieStoreManager_getSubscriptions_empty.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: ServiceWorker without cookie change subscriptions" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ] - } - ] - ], - "cookieStoreManager_getSubscriptions_multiple.https.any.js": [ - "9e153d03aae798371d4c28649de7126f18aefe76", - [ - "cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: ServiceWorker with multiple cookie change subscriptions" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ] - } - ], - [ - "cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: ServiceWorker with multiple cookie change subscriptions" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ] - } - ] - ], - "cookieStoreManager_getSubscriptions_single.https.any.js": [ - "98ec19df3f1881666a48f2f920000c3a11b67f82", - [ - "cookie-store/cookieStoreManager_getSubscriptions_single.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: ServiceWorker with one cookie change subscription" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ] - } - ], - [ - "cookie-store/cookieStoreManager_getSubscriptions_single.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: ServiceWorker with one cookie change subscription" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ] - } - ] - ], - "cookieStore_delete.sub.https.html": [ - "8cdfae6776dd88183479f7c1378be814f8c66105", - [ - null, - {} - ] - ], - "cookieStore_delete_arguments.https.any.js": [ - "27b54f5a8dcdbe25230b04a101ca0fb0b3c9851d", - [ - "cookie-store/cookieStore_delete_arguments.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.delete() arguments" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_delete_arguments.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.delete() arguments" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_delete_basic.https.any.js": [ - "08a1fac5afe1ed5c2713e60674fadc3d0be7e620", - [ - "cookie-store/cookieStore_delete_basic.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.delete() return type" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_delete_basic.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.delete() return type" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_event_arguments.https.window.js": [ - "bcb698eeb0d6ce760033ba628120ebf7772a1084", - [ - "cookie-store/cookieStore_event_arguments.https.window.html", - {} - ] - ], - "cookieStore_event_basic.https.window.js": [ - "c0075d6adcdd9a3438dfd3df622bf35883bf4110", - [ - "cookie-store/cookieStore_event_basic.https.window.html", - {} - ] - ], - "cookieStore_event_delete.https.window.js": [ - "d0fee1ab1d03cd3835f3b9e5828d4aef7eb45710", - [ - "cookie-store/cookieStore_event_delete.https.window.html", - {} - ] - ], - "cookieStore_event_overwrite.https.window.js": [ - "427e7dcbb7ce0ff1627a2f45a2a407d1c0189dc3", - [ - "cookie-store/cookieStore_event_overwrite.https.window.html", - {} - ] - ], - "cookieStore_getAll_arguments.https.any.js": [ - "868246f606f4ace75f807eef584d263114778f4b", - [ - "cookie-store/cookieStore_getAll_arguments.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.getAll() arguments" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_getAll_arguments.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.getAll() arguments" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_getAll_multiple.https.any.js": [ - "10dcacbd688d6c23364e3e8e1b946196cd0b4387", - [ - "cookie-store/cookieStore_getAll_multiple.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.getAll() with multiple cookies" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_getAll_multiple.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.getAll() with multiple cookies" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_getAll_set_basic.https.any.js": [ - "dee78e1867c7e0be04e779b4bfd949250540c289", - [ - "cookie-store/cookieStore_getAll_set_basic.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Interaction between cookieStore.set() and cookieStore.getAll()" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_getAll_set_basic.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Interaction between cookieStore.set() and cookieStore.getAll()" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_getAll_set_creation_url.https.any.js": [ - "d09c4aad4f87712afd70faf8111ee21f88d5f1a8", - [ - "cookie-store/cookieStore_getAll_set_creation_url.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.set()/getAll() with Document URL changing" - ], - [ - "global", - "window" - ] - ] - } - ] - ], - "cookieStore_get_arguments.https.any.js": [ - "d6ea0edef6a3d4e0cc69d4455d6672ddd433deda", - [ - "cookie-store/cookieStore_get_arguments.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.get() arguments" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_get_arguments.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.get() arguments" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_get_delete_basic.https.any.js": [ - "9337669afd5b61d821e9945bd2f3299d8afb8bad", - [ - "cookie-store/cookieStore_get_delete_basic.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Interaction between cookieStore.set() and cookieStore.delete()" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_get_delete_basic.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Interaction between cookieStore.set() and cookieStore.delete()" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_get_set_across_frames.https.html": [ - "f7c737b422e559107bb210d0cea9267829e10ba7", - [ - null, - {} - ] - ], - "cookieStore_get_set_across_origins.sub.https.html": [ - "004e37630ac76016846b7a33633f583242b23a55", - [ - null, - {} - ] - ], - "cookieStore_get_set_basic.https.any.js": [ - "127f758f5f0b8154dccc74f2b6e81d3b0d2562a9", - [ - "cookie-store/cookieStore_get_set_basic.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Interaction between cookieStore.set() and cookieStore.get()" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_get_set_basic.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Interaction between cookieStore.set() and cookieStore.get()" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_get_set_creation_url.https.any.js": [ - "71f8108095f0e78518f73f5086eb0d2d4dee1253", - [ - "cookie-store/cookieStore_get_set_creation_url.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.set()/get() with Document URL changing" - ], - [ - "global", - "window" - ] - ] - } - ] - ], - "cookieStore_get_set_creation_url.sub.https.html": [ - "216885298a58829d64653d7e1947fe3e6ec52012", - [ - null, - {} - ] - ], - "cookieStore_get_set_ordering.https.any.js": [ - "fe564e55fc4a6d9111a1be35888a750d5ccba9ac", - [ - "cookie-store/cookieStore_get_set_ordering.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Cookie ordering" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_get_set_ordering.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: Cookie ordering" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_in_detached_frame.https.html": [ - "cd2bd79e686cd9b31b9252412e9e9a069cd779be", - [ - null, - {} - ] - ], - "cookieStore_opaque_origin.https.html": [ - "94a13fe63f9acbb369c448c5e339286f1d6ebf4b", - [ - null, - {} - ] - ], - "cookieStore_set_arguments.https.any.js": [ - "37744cb7c88d05edf6b6126aed9f3f09daf112a7", - [ - "cookie-store/cookieStore_set_arguments.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.set() arguments" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_set_arguments.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.set() arguments" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_set_domain_parsing.sub.https.html": [ - "4326e2a2d0256a528beb382b02bb2c9eee50c55f", - [ - null, - { - "testdriver": true - } - ] - ], - "cookieStore_set_domain_parsing.tentative.sub.https.html": [ - "b7af61e3979c5ac7f8983bbd0adbf87da61a6950", - [ - null, - { - "testdriver": true - } - ] - ], - "cookieStore_set_limit.https.any.js": [ - "0bd9ceec08d55308fba01e46270d6b16e0b35043", - [ - "cookie-store/cookieStore_set_limit.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.delete() return type" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_set_limit.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.delete() return type" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_special_names.https.any.js": [ - "36761b4493995e1bc41d56068b95b745b4cea3c5", - [ - "cookie-store/cookieStore_special_names.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.set()/get()/delete() for cookies with special names" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ], - [ - "cookie-store/cookieStore_special_names.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.set()/get()/delete() for cookies with special names" - ], - [ - "global", - "window,serviceworker" - ] - ] - } - ] - ], - "cookieStore_subscribe_arguments.https.any.js": [ - "ca5f55d645be5188177eeb0b03a51a175a7f9e64", - [ - "cookie-store/cookieStore_subscribe_arguments.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.subscribe() arguments" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ] - } - ], - [ - "cookie-store/cookieStore_subscribe_arguments.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookieStore.subscribe() arguments" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ] - } - ] - ], - "cookieStore_subscriptions_empty.https.window.js": [ - "907a34b4de6632f5e91adbcd606839a92eead320", - [ - "cookie-store/cookieStore_subscriptions_empty.https.window.html", - { - "script_metadata": [ - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ] - } - ] - ], - "encoding.https.any.js": [ - "f5d2ca15e717a0837f1e08031ab682db5aa965ea", - [ - "cookie-store/encoding.https.any.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookie encoding" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ], - [ - "cookie-store/encoding.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookie encoding" - ], - [ - "global", - "window,serviceworker" - ], - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ] - ], - "httponly_cookies.https.window.js": [ - "836f47da3f6e0f8f2c89445d1b2fbdfdf9ddc9e6", - [ - "cookie-store/httponly_cookies.https.window.html", - { - "script_metadata": [ - [ - "script", - "resources/cookie-test-helpers.js" - ] - ] - } - ] - ], - "idlharness.https.any.js": [ - "6312f3c4ba3a1525df8955a5a7b7ddab4485a90a", - [ - "cookie-store/idlharness.https.any.html", - { - "script_metadata": [ - [ - "global", - "window,worker" - ], - [ - "timeout", - "long" - ], - [ - "script", - "/resources/WebIDLParser.js" - ], - [ - "script", - "/resources/idlharness.js" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ], - "timeout": "long" - } - ], - [ - "cookie-store/idlharness.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "global", - "window,worker" - ], - [ - "timeout", - "long" - ], - [ - "script", - "/resources/WebIDLParser.js" - ], - [ - "script", - "/resources/idlharness.js" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ], - "timeout": "long" - } - ], - [ - "cookie-store/idlharness.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "global", - "window,worker" - ], - [ - "timeout", - "long" - ], - [ - "script", - "/resources/WebIDLParser.js" - ], - [ - "script", - "/resources/idlharness.js" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ], - "timeout": "long" - } - ], - [ - "cookie-store/idlharness.https.any.worker.html", - { - "script_metadata": [ - [ - "global", - "window,worker" - ], - [ - "timeout", - "long" - ], - [ - "script", - "/resources/WebIDLParser.js" - ], - [ - "script", - "/resources/idlharness.js" - ], - [ - "script", - "/service-workers/service-worker/resources/test-helpers.sub.js" - ] - ], - "timeout": "long" - } - ] - ], - "serviceworker_cookieStore_cross_origin.https.sub.html": [ - "6879c5da926384b2be6969b5585c8e2a75539f75", - [ - null, - {} - ] - ], - "serviceworker_cookieStore_subscriptions_reset.https.html": [ - "a1124e9220150ea48e016d805ead1f210a247a25", - [ - null, - {} - ] - ], - "serviceworker_cookiechange_eventhandler_already_expired.https.any.js": [ - "c40fdbeb6f108db1ea6e100c833a03c3fedbfc19", - [ - "cookie-store/serviceworker_cookiechange_eventhandler_already_expired.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookiechange event in ServiceWorker with already-expired cookie." - ], - [ - "global", - "serviceworker" - ] - ] - } - ] - ], - "serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.js": [ - "30d8d70940dae248b3b5cba030056daac78b32a6", - [ - "cookie-store/serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookiechange event in ServiceWorker with mismatched subscription" - ], - [ - "global", - "serviceworker" - ] - ] - } - ] - ], - "serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.js": [ - "ef7cadf4c9e6553192c84610dd1d1692dd7248f6", - [ - "cookie-store/serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookiechange event in ServiceWorker with multiple subscriptions" - ], - [ - "global", - "serviceworker" - ] - ] - } - ] - ], - "serviceworker_cookiechange_eventhandler_no_change.https.any.js": [ - "fb2e2db7381fea7cbd3463576e126e1581a32d97", - [ - "cookie-store/serviceworker_cookiechange_eventhandler_no_change.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookiechange event in ServiceWorker with already-expired cookie." - ], - [ - "global", - "serviceworker" - ] - ] - } - ] - ], - "serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.js": [ - "f8b1c1b7aa96f13ec40df6dfdfef2c605c447468", - [ - "cookie-store/serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookiechange event in ServiceWorker with overlapping subscriptions" - ], - [ - "global", - "serviceworker" - ] - ] - } - ] - ], - "serviceworker_cookiechange_eventhandler_single_subscription.https.any.js": [ - "3ccb4b303d90165eed0f7830ac1faed56ee29bba", - [ - "cookie-store/serviceworker_cookiechange_eventhandler_single_subscription.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: cookiechange event in ServiceWorker with single subscription" - ], - [ - "global", - "serviceworker" - ] - ] - } - ] - ], - "serviceworker_oncookiechange_eventhandler_single_subscription.https.any.js": [ - "8def2440897b931c2af4402654a92ca89c34ea98", - [ - "cookie-store/serviceworker_oncookiechange_eventhandler_single_subscription.https.any.serviceworker.html", - { - "script_metadata": [ - [ - "title", - "Cookie Store API: oncookiechange event in ServiceWorker with single subscription" - ], - [ - "global", - "serviceworker" - ] - ] - } - ] - ] - }, "cookies": { "attributes": { "attributes-ctl.sub.html": [ @@ -582838,7 +581986,7 @@ ] ], "scheme-bound-cookies.https.html": [ - "e7f1158fe1d3768a967be1b69bd55e5e368dd8a0", + "f738d61e9f51866bbc269e5a52585167a73a032e", [ null, {} @@ -583347,6 +582495,1191 @@ ] } }, + "cookiestore": { + "change_eventhandler_for_already_expired.https.window.js": [ + "f3bbe0ea560974e9486941384e75a58d2d6a4637", + [ + "cookiestore/change_eventhandler_for_already_expired.https.window.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Test that setting an already-expired cookie does not trigger an event." + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], + "change_eventhandler_for_document_cookie.https.window.js": [ + "1937ebdae35942840dc3b641b5907f334048f3fb", + [ + "cookiestore/change_eventhandler_for_document_cookie.https.window.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Observing 'change' events in document when cookies set via document.cookie" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], + "change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js": [ + "8517995acfe746bbff09243597d6d319e3af1bc2", + [ + "cookiestore/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Observing 'change' events in document when cookies set via Set-Cookie header" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], + "change_eventhandler_for_no_change.https.window.js": [ + "5f9c2927433fc408c70c005789dc0bcc34d46caa", + [ + "cookiestore/change_eventhandler_for_no_change.https.window.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Test that setting a duplicate cookie does not fire a second event." + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], + "change_eventhandler_for_no_name_and_no_value.https.window.js": [ + "4498caf59689cc3da875d1c56937f6d2a235cb5d", + [ + "cookiestore/change_eventhandler_for_no_name_and_no_value.https.window.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Observing 'change' events in document when modifications API is called with blank arguments" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], + "change_eventhandler_for_no_name_equals_in_value.https.window.js": [ + "13d721786c9a140b05ed5291c6096c894053f78b", + [ + "cookiestore/change_eventhandler_for_no_name_equals_in_value.https.window.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Observing 'change' events in document when setting a cookie value containing \"=\"" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], + "change_eventhandler_for_no_name_multiple_values.https.window.js": [ + "60c6c16518ae767d2dab68e62af8967b9890072b", + [ + "cookiestore/change_eventhandler_for_no_name_multiple_values.https.window.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Observing 'change' events in document when modifications API is called multiple times with a blank name" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], + "cookieListItem_attributes.https.any.js": [ + "b42a745d3e4e1a9f4c8a0c6e7d9c04c02f8d1340", + [ + "cookiestore/cookieListItem_attributes.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieListItem attributes" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieListItem_attributes.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieListItem attributes" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStoreManager_getSubscriptions_empty.https.any.js": [ + "8cfd732f304509582ff8c9be97e8e90e6c06e8ed", + [ + "cookiestore/cookieStoreManager_getSubscriptions_empty.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: ServiceWorker without cookie change subscriptions" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ], + [ + "cookiestore/cookieStoreManager_getSubscriptions_empty.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: ServiceWorker without cookie change subscriptions" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ] + ], + "cookieStoreManager_getSubscriptions_multiple.https.any.js": [ + "e2538013c93220ec79c08bee4d79c07a0b342620", + [ + "cookiestore/cookieStoreManager_getSubscriptions_multiple.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: ServiceWorker with multiple cookie change subscriptions" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ], + [ + "cookiestore/cookieStoreManager_getSubscriptions_multiple.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: ServiceWorker with multiple cookie change subscriptions" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ] + ], + "cookieStoreManager_getSubscriptions_single.https.any.js": [ + "4f1053266043636e7ed2c004f2942ae3fac9164b", + [ + "cookiestore/cookieStoreManager_getSubscriptions_single.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: ServiceWorker with one cookie change subscription" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ], + [ + "cookiestore/cookieStoreManager_getSubscriptions_single.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: ServiceWorker with one cookie change subscription" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ] + ], + "cookieStore_delete.sub.https.html": [ + "150b768a558cc780c615416d9f422996d2d4f57f", + [ + null, + {} + ] + ], + "cookieStore_delete_arguments.https.any.js": [ + "27b54f5a8dcdbe25230b04a101ca0fb0b3c9851d", + [ + "cookiestore/cookieStore_delete_arguments.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.delete() arguments" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_delete_arguments.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.delete() arguments" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_delete_basic.https.any.js": [ + "08a1fac5afe1ed5c2713e60674fadc3d0be7e620", + [ + "cookiestore/cookieStore_delete_basic.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.delete() return type" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_delete_basic.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.delete() return type" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_event_arguments.https.window.js": [ + "bcb698eeb0d6ce760033ba628120ebf7772a1084", + [ + "cookiestore/cookieStore_event_arguments.https.window.html", + {} + ] + ], + "cookieStore_event_basic.https.window.js": [ + "c0075d6adcdd9a3438dfd3df622bf35883bf4110", + [ + "cookiestore/cookieStore_event_basic.https.window.html", + {} + ] + ], + "cookieStore_event_delete.https.window.js": [ + "d0fee1ab1d03cd3835f3b9e5828d4aef7eb45710", + [ + "cookiestore/cookieStore_event_delete.https.window.html", + {} + ] + ], + "cookieStore_event_overwrite.https.window.js": [ + "427e7dcbb7ce0ff1627a2f45a2a407d1c0189dc3", + [ + "cookiestore/cookieStore_event_overwrite.https.window.html", + {} + ] + ], + "cookieStore_getAll_arguments.https.any.js": [ + "868246f606f4ace75f807eef584d263114778f4b", + [ + "cookiestore/cookieStore_getAll_arguments.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.getAll() arguments" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_getAll_arguments.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.getAll() arguments" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_getAll_multiple.https.any.js": [ + "10dcacbd688d6c23364e3e8e1b946196cd0b4387", + [ + "cookiestore/cookieStore_getAll_multiple.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.getAll() with multiple cookies" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_getAll_multiple.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.getAll() with multiple cookies" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_getAll_set_basic.https.any.js": [ + "dee78e1867c7e0be04e779b4bfd949250540c289", + [ + "cookiestore/cookieStore_getAll_set_basic.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Interaction between cookieStore.set() and cookieStore.getAll()" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_getAll_set_basic.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Interaction between cookieStore.set() and cookieStore.getAll()" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_getAll_set_creation_url.https.any.js": [ + "d09c4aad4f87712afd70faf8111ee21f88d5f1a8", + [ + "cookiestore/cookieStore_getAll_set_creation_url.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.set()/getAll() with Document URL changing" + ], + [ + "global", + "window" + ] + ] + } + ] + ], + "cookieStore_get_arguments.https.any.js": [ + "d6ea0edef6a3d4e0cc69d4455d6672ddd433deda", + [ + "cookiestore/cookieStore_get_arguments.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.get() arguments" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_get_arguments.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.get() arguments" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_get_delete_basic.https.any.js": [ + "9337669afd5b61d821e9945bd2f3299d8afb8bad", + [ + "cookiestore/cookieStore_get_delete_basic.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Interaction between cookieStore.set() and cookieStore.delete()" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_get_delete_basic.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Interaction between cookieStore.set() and cookieStore.delete()" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_get_set_across_frames.https.html": [ + "5537f52c04bfe422a77248c5a8dc2154b95453da", + [ + null, + {} + ] + ], + "cookieStore_get_set_across_origins.sub.https.html": [ + "665e781ef9edab4218288bf34e4482c0c4399627", + [ + null, + {} + ] + ], + "cookieStore_get_set_basic.https.any.js": [ + "127f758f5f0b8154dccc74f2b6e81d3b0d2562a9", + [ + "cookiestore/cookieStore_get_set_basic.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Interaction between cookieStore.set() and cookieStore.get()" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_get_set_basic.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Interaction between cookieStore.set() and cookieStore.get()" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_get_set_creation_url.https.any.js": [ + "71f8108095f0e78518f73f5086eb0d2d4dee1253", + [ + "cookiestore/cookieStore_get_set_creation_url.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.set()/get() with Document URL changing" + ], + [ + "global", + "window" + ] + ] + } + ] + ], + "cookieStore_get_set_creation_url.sub.https.html": [ + "d5ef7917ef990e0e01b1501ad0b9dae7be386a63", + [ + null, + {} + ] + ], + "cookieStore_get_set_ordering.https.any.js": [ + "fe564e55fc4a6d9111a1be35888a750d5ccba9ac", + [ + "cookiestore/cookieStore_get_set_ordering.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Cookie ordering" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_get_set_ordering.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: Cookie ordering" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_in_detached_frame.https.html": [ + "3acfc99820fe7ed0af4b37835905ef6986e81a77", + [ + null, + {} + ] + ], + "cookieStore_opaque_origin.https.html": [ + "649b486394164280b05333abb36789c3e4f5f418", + [ + null, + {} + ] + ], + "cookieStore_set_arguments.https.any.js": [ + "ce715b7f6c0fec061e4322fc18d32ebcdbddc490", + [ + "cookiestore/cookieStore_set_arguments.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.set() arguments" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_set_arguments.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.set() arguments" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_set_domain_parsing.sub.https.html": [ + "4326e2a2d0256a528beb382b02bb2c9eee50c55f", + [ + null, + { + "testdriver": true + } + ] + ], + "cookieStore_set_domain_parsing.tentative.sub.https.html": [ + "0f91e74256ff9df8fae48ea5e66f1005a31048bf", + [ + null, + { + "testdriver": true + } + ] + ], + "cookieStore_set_limit.https.any.js": [ + "0bd9ceec08d55308fba01e46270d6b16e0b35043", + [ + "cookiestore/cookieStore_set_limit.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.delete() return type" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_set_limit.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.delete() return type" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_special_names.https.any.js": [ + "36761b4493995e1bc41d56068b95b745b4cea3c5", + [ + "cookiestore/cookieStore_special_names.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.set()/get()/delete() for cookies with special names" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ], + [ + "cookiestore/cookieStore_special_names.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.set()/get()/delete() for cookies with special names" + ], + [ + "global", + "window,serviceworker" + ] + ] + } + ] + ], + "cookieStore_subscribe_arguments.https.any.js": [ + "451ba36a373ebf7ace94353323b80046584578b9", + [ + "cookiestore/cookieStore_subscribe_arguments.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.subscribe() arguments" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ], + [ + "cookiestore/cookieStore_subscribe_arguments.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookieStore.subscribe() arguments" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ] + ], + "cookieStore_subscriptions_empty.https.window.js": [ + "907a34b4de6632f5e91adbcd606839a92eead320", + [ + "cookiestore/cookieStore_subscriptions_empty.https.window.html", + { + "script_metadata": [ + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ] + } + ] + ], + "encoding.https.any.js": [ + "f5d2ca15e717a0837f1e08031ab682db5aa965ea", + [ + "cookiestore/encoding.https.any.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookie encoding" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ], + [ + "cookiestore/encoding.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookie encoding" + ], + [ + "global", + "window,serviceworker" + ], + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], + "httponly_cookies.https.window.js": [ + "836f47da3f6e0f8f2c89445d1b2fbdfdf9ddc9e6", + [ + "cookiestore/httponly_cookies.https.window.html", + { + "script_metadata": [ + [ + "script", + "resources/cookie-test-helpers.js" + ] + ] + } + ] + ], + "idlharness.https.any.js": [ + "2ffa714420bfc11161f2c59dc54b568e43afd214", + [ + "cookiestore/idlharness.https.any.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/resources/WebIDLParser.js" + ], + [ + "script", + "/resources/idlharness.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ], + "timeout": "long" + } + ], + [ + "cookiestore/idlharness.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/resources/WebIDLParser.js" + ], + [ + "script", + "/resources/idlharness.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ], + "timeout": "long" + } + ], + [ + "cookiestore/idlharness.https.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/resources/WebIDLParser.js" + ], + [ + "script", + "/resources/idlharness.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ], + "timeout": "long" + } + ], + [ + "cookiestore/idlharness.https.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,worker" + ], + [ + "timeout", + "long" + ], + [ + "script", + "/resources/WebIDLParser.js" + ], + [ + "script", + "/resources/idlharness.js" + ], + [ + "script", + "/service-workers/service-worker/resources/test-helpers.sub.js" + ] + ], + "timeout": "long" + } + ] + ], + "serviceworker_cookieStore_cross_origin.https.sub.html": [ + "beaa867aafa2b70733ff4adcc8a8093158b5caaa", + [ + null, + {} + ] + ], + "serviceworker_cookieStore_subscriptions_reset.https.html": [ + "695430c8fce15f6cc5e81bf45e0261ca1e36cf6b", + [ + null, + {} + ] + ], + "serviceworker_cookiechange_eventhandler_already_expired.https.any.js": [ + "4ccf245e1ca583cbd47361fcfed5994916a6dae2", + [ + "cookiestore/serviceworker_cookiechange_eventhandler_already_expired.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookiechange event in ServiceWorker with already-expired cookie." + ], + [ + "global", + "serviceworker" + ] + ] + } + ] + ], + "serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.js": [ + "1dfd6a2177c1875e1dc6bfc39e0bd00823d44d34", + [ + "cookiestore/serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookiechange event in ServiceWorker with mismatched subscription" + ], + [ + "global", + "serviceworker" + ] + ] + } + ] + ], + "serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.js": [ + "bc7199e7d366640a5d2765642f27cf825c5d082c", + [ + "cookiestore/serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookiechange event in ServiceWorker with multiple subscriptions" + ], + [ + "global", + "serviceworker" + ] + ] + } + ] + ], + "serviceworker_cookiechange_eventhandler_no_change.https.any.js": [ + "fbbeeda4031c67b3d1a905cca27829e7486aef12", + [ + "cookiestore/serviceworker_cookiechange_eventhandler_no_change.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookiechange event in ServiceWorker with already-expired cookie." + ], + [ + "global", + "serviceworker" + ] + ] + } + ] + ], + "serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.js": [ + "9ed65c73a816b7f0036dbf587f276c687d8498d4", + [ + "cookiestore/serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookiechange event in ServiceWorker with overlapping subscriptions" + ], + [ + "global", + "serviceworker" + ] + ] + } + ] + ], + "serviceworker_cookiechange_eventhandler_single_subscription.https.any.js": [ + "a9db40dd544904fe99e0a92083918c889746be98", + [ + "cookiestore/serviceworker_cookiechange_eventhandler_single_subscription.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: cookiechange event in ServiceWorker with single subscription" + ], + [ + "global", + "serviceworker" + ] + ] + } + ] + ], + "serviceworker_oncookiechange_eventhandler_single_subscription.https.any.js": [ + "24b91706cb3c22766b5a269e2bff667f9f18320c", + [ + "cookiestore/serviceworker_oncookiechange_eventhandler_single_subscription.https.any.serviceworker.html", + { + "script_metadata": [ + [ + "title", + "Cookie Store API: oncookiechange event in ServiceWorker with single subscription" + ], + [ + "global", + "serviceworker" + ] + ] + } + ] + ] + }, "core-aam": { "role": { "roles-contextual.html": [ @@ -586013,7 +586346,7 @@ ] ], "anchor-getComputedStyle-002.html": [ - "753634a3f42e7d874af3f63a2c5c05fd375d9558", + "862856bdb19b91468279a53398d9e599ad0bbaef", [ null, {} @@ -586146,14 +586479,14 @@ ] ], "anchor-name-multicol-003.html": [ - "02fd1c164d65865940a1506ffe15c927d3324c05", + "d1f3c38b87c275caa3d10fa3e8cb8c47bb2b338d", [ null, {} ] ], "anchor-name-multicol-004.html": [ - "fdd1772359ff609af103adce8fe5c673e360f8cf", + "3b1f060e1b1acbc439417525ac3ea71b7962f845", [ null, {} @@ -586258,7 +586591,7 @@ ] ], "anchor-position-grid-001.html": [ - "7bd389b39d8d6642f02181e475bbc5eaa7322f2d", + "006c4b851d5a582d5fe18ee8d27a3378dfab29b4", [ null, {} @@ -586300,21 +586633,21 @@ ] ], "anchor-position-multicol-002.html": [ - "6ca4c22d8cd1e4f86a2d06e1a32460b16b7c756b", + "b4a4a7a4c189ba84cb00f60c5cc94cdf1a557105", [ null, {} ] ], "anchor-position-multicol-003.html": [ - "d23779ad9bf88ee4b49f9c9bdc97d3ce47d2a509", + "f2a4b9343f311caf86647228afc7b1e7c7593815", [ null, {} ] ], "anchor-position-multicol-004.html": [ - "8f7a3dad12915ddbea9bd88077694434d0a17b48", + "0137ad53d13b6888d2bf3663226177aff07e79de", [ null, {} @@ -586349,7 +586682,7 @@ ] ], "anchor-position-multicol-fixed-001.html": [ - "b94680816e9aca235b7e499e1d902fbd95dd442e", + "062021877968296ca2c87086692a85487065673e", [ null, {} @@ -586397,6 +586730,13 @@ {} ] ], + "anchor-positioned-containing-block-resize.html": [ + "79c788b15a736d504fe9b5b241573fdddf26ad37", + [ + null, + {} + ] + ], "anchor-query-custom-property-registration.html": [ "af211a0ee5d8336dbd4b67c33a371907a5675d19", [ @@ -586868,7 +587208,7 @@ ] ], "position-visibility-computed.html": [ - "1ba494ca3322d5771d099b4ecac97813df3ffc25", + "e32280b3a14de8ff0626d3811890be81ef68242d", [ null, {} @@ -586955,7 +587295,7 @@ ] ], "position-area-computed.html": [ - "0acc853eb9048cab3d5c2a5e10082ffa489abe59", + "4b3fb62af8ccbb2f72125bd5fd2b4612f5283d4a", [ null, {} @@ -586983,7 +587323,7 @@ ] ], "position-area-parsing.html": [ - "e6de6d7e2696266c02c41919a10c136ce621e90d", + "c8d7687cc88d4904b5626a17eddeb1bf06051c50", [ null, {} @@ -587319,7 +587659,7 @@ ] ], "try-tactic-position-area.html": [ - "e050dbccef2b5679229c8df8ba02535e989ed23e", + "ab5d95f2fe9c3ccf1533ab4c4e912540a5edde3c", [ null, {} @@ -591208,7 +591548,7 @@ ] ], "opacity-computed.html": [ - "27d9316415f24bf8e398cc992508b0036935291c", + "5ce304cc1af7627058d165fa57082614122ca41f", [ null, {} @@ -591222,7 +591562,7 @@ ] ], "opacity-valid.html": [ - "ad65ad6df2bbbc6f4f2119441200f6bc1396d91b", + "5a36ec39ae4ccdf1c4cafec26bdbe3074ad0060f", [ null, {} @@ -591462,7 +591802,7 @@ ] ], "at-container-style-parsing.html": [ - "2890727ad4ce3a3e8fb397e0707cc0a5b7bc3e69", + "1bb5e1a7e7bda911ef746b232b4aad571401cf77", [ null, {} @@ -594025,7 +594365,7 @@ ] ], "flex-abspos-staticpos-align-self-006.html": [ - "3c03636b35ea5e3bcec9a3fa0075205647e6bb91", + "c36a6d1574773ad37cae8efe14c91e8764042425", [ null, {} @@ -604435,6 +604775,13 @@ {} ] ], + "offsetProps-002.html": [ + "9bfaeea20ea5e12440f7a5aa5fba3ac48894a900", + [ + null, + {} + ] + ], "parsing": { "column-count-computed.html": [ "702632d2dd4d306368951af65e9c32d7f2e2f554", @@ -605329,6 +605676,15 @@ } ] ], + "scroll-button-and-scroll-marker-not-in-event-path.html": [ + "019589548414949cf54c7a30523f293f40805d9a", + [ + null, + { + "testdriver": true + } + ] + ], "scroll-button-disabled-no-focus.html": [ "a88977068742f03bdd4929ff1e3f96e581d9ba2d", [ @@ -609917,6 +610273,13 @@ {} ] ], + "resnap-on-overflowing-snap-area.html": [ + "e0af5f315874f0558f0138bddfe57c2116d29ff4", + [ + null, + {} + ] + ], "resnap-on-reconstructing-frame.html": [ "d046608815aff119e443a17594a4947bea2ce587", [ @@ -609954,7 +610317,7 @@ ] ], "snap-at-user-scroll-end.html": [ - "8643b3c1486a294709b1445f32c9eb54e4305164", + "0ed0b07fd565fe2e5c5ffc0f0bcd36039360ca0c", [ null, { @@ -616561,7 +616924,7 @@ ] ], "text-decoration-computed.html": [ - "c0783969ab30346955c4a46190ab836acdcbab51", + "94804170b4bb20908ef5db558cf2051e80833c4f", [ null, {} @@ -622302,7 +622665,7 @@ ] ], "if-conditionals.html": [ - "a299b267af5011f94160705cbd1fe0ec2cb58e51", + "1167172e542d1ed53a4217c0799fa3eb3cec9dcf", [ null, {} @@ -622584,7 +622947,7 @@ ] ], "progress-invalid.html": [ - "f135487e1c4dd0cef9d99652c7c10a8ebe44070a", + "1d6993a895429df956965df108ae02421b980bf0", [ null, {} @@ -622960,21 +623323,21 @@ ] ], "url-request-modifiers-computed.sub.html": [ - "bc8c4ad95df7a33a64b92d240cf68d14594745b2", + "20c570a5c8e7a7e210b260d94b856f4d2043277d", [ null, {} ] ], "url-request-modifiers-invalid.sub.html": [ - "c30edfbaeaae9f3a610c5c6e12becdae85ff1ebb", + "f0e1a59053f8a27d3db382dbc5919b0a81d533b5", [ null, {} ] ], "url-request-modifiers-serialize.sub.html": [ - "cca9f2ccf9b04719e8266d56fde09fb0154fcb47", + "e60a0a268d4389d2ee715f394f05ae55a9a2bba8", [ null, {} @@ -623758,6 +624121,15 @@ ] ] }, + "nested": { + "group-children-animations.html": [ + "d4c3aa77818d676246a2796372687a3313c13c62", + [ + null, + {} + ] + ] + }, "no-crash-set-exception.html": [ "b57fce0d73f27878efe733877201f05df9239bf0", [ @@ -626692,6 +627064,13 @@ {} ] ], + "offsetParent-fixed.html": [ + "a2c4255a77729066fedc1ba21101cb123a396380", + [ + null, + {} + ] + ], "offsetParent_element_test.html": [ "dc2f8e91f1dcbd4ef6f21c1b920765cbc0bad1f5", [ @@ -627971,6 +628350,13 @@ {} ] ], + "at-custom-media-cssom.html": [ + "1b018592c3fe7f11129550aa20e9f8322e9d3ee9", + [ + null, + {} + ] + ], "display-mode.html": [ "4ade16799f9db32f502df643f33094e5a2552e70", [ @@ -630389,8 +630775,8 @@ {} ] ], - "behaves-like-button.tentative.html": [ - "719ce316681d4bef8e6fd33c4fa2b7620db5c5eb", + "behaves-like-button-with-popover.tentative.html": [ + "13f6aebc431d7c89a65760aa1e084951abda8a4e", [ null, { @@ -631875,7 +632261,7 @@ ] ], "create.tentative.https.html": [ - "3e17d5b0853b38b36cb640ee665a12c398eb4ed3", + "a6e0114e33d3fac09f12472ca8310d09dbbebd32", [ null, { @@ -631925,7 +632311,7 @@ ] ], "get.tentative.https.html": [ - "7c1e6631da7cebe849958bb92201348c150c8c0d", + "1549bba673b2f4ea86d48ef670155212823bff42", [ null, { @@ -640899,6 +641285,15 @@ {} ] ], + "mathml-html-serializtion-on-copy.html": [ + "4440bf87d77189c1c729b020b4c2fd52e9f3b798", + [ + null, + { + "testdriver": true + } + ] + ], "merge-span-with-style-after-backspace-having-contenteditable.html": [ "651ec1c56c8ec8526ddc763d5d9fc0368371286f", [ @@ -642931,6 +643326,13 @@ {} ] ], + "text-not-observed-when-changed.html": [ + "baabf87cdcd44df14e2188d5b92b3883f63133bf", + [ + null, + {} + ] + ], "text-with-display-style.html": [ "94e89fcf7270b43634b4c651c961d539a38f59fa", [ @@ -658245,7 +658647,7 @@ ] ], "fedcm-accounts-endpoint-rejects-redirects.https.html": [ - "ae3b52a5789ec96193a35b62c60fc8ee67bf13b4", + "8e0edef19f997260b5a24bec760cddfa03da0e59", [ null, { @@ -658348,7 +658750,7 @@ ] }, "fedcm-auto-reauthn-without-approved-clients.https.html": [ - "fb93cb632db09dfd3332ac6008f1f40253361ea6", + "c87cd095654c212318b6d97fa418eac095c532de", [ null, { @@ -658485,7 +658887,7 @@ ] ], "fedcm-disconnect-errors.https.html": [ - "4d5fb0a457c7acd0d5c23818f4623826324f7336", + "2c3e8b760c85364bdf2c0b87b3a9384c11fea90d", [ null, { @@ -658503,11 +658905,12 @@ ] ], "fedcm-disconnect.sub.https.html": [ - "04fcd272dcf261a19cf71abb049e41c8b41abbbf", + "a291202d8fac072ad9cfd0514ccae3fd89d078e0", [ null, { - "testdriver": true + "testdriver": true, + "timeout": "long" } ] ], @@ -658548,7 +658951,7 @@ ] ], "fedcm-identity-assertion-nocors.https.html": [ - "79da95d50061d5274811b067a5e1be116edb680b", + "a5e2e52e47aba95e6a02f8244ca0234e25f6a08e", [ null, { @@ -658567,7 +658970,7 @@ ], "fedcm-login-status": { "confirm-idp-login.https.html": [ - "174cdafd50266a6e212efdb8028a3806eeaa890a", + "c77286db3312ae19bd4e103b61919360bed5fdb1", [ null, { @@ -658603,7 +659006,7 @@ ] ], "login-page-broken.https.html": [ - "cda9ee4fd509ea971f95d249117645a423a2549f", + "06be5e48ed3b8a20c66d778ed4afbeb98165989d", [ null, { @@ -658621,17 +659024,8 @@ ] ] }, - "fedcm-login-status-unknown.https.html": [ - "d542524c884790fe6a957ffa789d8336284df252", - [ - null, - { - "testdriver": true - } - ] - ], "fedcm-loginhint.https.html": [ - "fe35007a87dc06a9062e6a81fcd6558f102782b7", + "1a4adbe81615b21fd36b0d016b9c756e2543c2ac", [ null, { @@ -658705,7 +659099,7 @@ ] }, "fedcm-no-domainhint-matches-account.https.html": [ - "c2bf1419022277649c6ba7861bc366f4ac438778", + "31a9e2ea5f58942df8067db4f016a632ea5edbc1", [ null, { @@ -658714,7 +659108,7 @@ ] ], "fedcm-no-login-url.https.html": [ - "94592d2dbfbfb9f308f4aa97a198816119a36502", + "480254c029414423baa38de2318078d457d384ca", [ null, { @@ -658759,7 +659153,7 @@ ] ], "fedcm-pending-disconnect.https.html": [ - "1b60acc10880ddf359aeeb5974f2f93e82df641c", + "306de02e6a32da5a4d1d65be14c06c9b85d00db3", [ null, { @@ -658833,7 +659227,7 @@ ] ], "fedcm-token-endpoint-rejects-redirects.https.html": [ - "8d74e06bb2203e98fc5ec01af070e1087cf48615", + "c7a16dfdcfd8671f7bd677f0041fce3fbc1fa09e", [ null, { @@ -658851,7 +659245,7 @@ ] ], "fedcm-too-many-disconnect-calls.https.html": [ - "eb87c2377a916b68e1ebf189a0de7d8af1c191df", + "72cc26f4d20c5761953a3caa7d3a8a4b14715e72", [ null, { @@ -670287,7 +670681,7 @@ }, "quota": { "accumulated-oversized-payload.tentative.https.window.js": [ - "6439b392e2a0230a3ff819e4e80b42341dc0c389", + "143546ff72340ebbae34e6b598a6348d044f8482", [ "fetch/fetch-later/quota/accumulated-oversized-payload.tentative.https.window.html", { @@ -670485,7 +670879,7 @@ ] ], "max-payload.tentative.https.window.js": [ - "8457060797ac2d140c85af6c657f79389288c356", + "aa797f135571ed417d21b5fbcd4a235bac6358aa", [ "fetch/fetch-later/quota/max-payload.tentative.https.window.html", { @@ -670537,7 +670931,7 @@ ] ], "oversized-payload.tentative.https.window.js": [ - "0036d040d8e201d8d621c6615e4e7c49daf45fff", + "740f17ea24ade1073c4e0507fb9134ae8715f57b", [ "fetch/fetch-later/quota/oversized-payload.tentative.https.window.html", { @@ -672503,6 +672897,575 @@ "testdriver": true } ] + ], + "iframe.tentative.https.window.js": [ + "d2b532aeae4ebdb18da446b888f720b29b3b2ab8", + [ + "fetch/local-network-access/iframe.tentative.https.window.html?include=from-local", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/local-network-access/iframe.tentative.https.window.html?include=from-loopback", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/local-network-access/iframe.tentative.https.window.html?include=from-public", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/local-network-access/iframe.tentative.https.window.html?include=from-treat-as-public", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/resources/testdriver-vendor.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ] + ], + "navigate.tentative.https.window.js": [ + "abdefb8cd7cf07a8a1b8a4f8ebe42cadd6f5df75", + [ + "fetch/local-network-access/navigate.tentative.https.window.html?include=from-local", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/local-network-access/navigate.tentative.https.window.html?include=from-loopback", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/local-network-access/navigate.tentative.https.window.html?include=from-public", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/local-network-access/navigate.tentative.https.window.html?include=from-treat-as-public", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ] + ], + "navigate.tentative.window.js": [ + "4186bad589910eee342f29ab135da79d51bde5b0", + [ + "fetch/local-network-access/navigate.tentative.window.html?include=from-local", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/local-network-access/navigate.tentative.window.html?include=from-loopback", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/local-network-access/navigate.tentative.window.html?include=from-public", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ], + [ + "fetch/local-network-access/navigate.tentative.window.html?include=from-treat-as-public", + { + "script_metadata": [ + [ + "script", + "/common/subset-tests-by-key.js" + ], + [ + "script", + "/common/dispatcher/dispatcher.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/support.sub.js" + ], + [ + "timeout", + "long" + ], + [ + "variant", + "?include=from-loopback" + ], + [ + "variant", + "?include=from-local" + ], + [ + "variant", + "?include=from-public" + ], + [ + "variant", + "?include=from-treat-as-public" + ] + ], + "timeout": "long" + } + ] ] }, "metadata": { @@ -701144,6 +702107,118 @@ {} ] ] + }, + "tentative": { + "api": { + "idlharness.any.js": [ + "7f76c957d7c33407fadfac5d7e3b9cf68bfac3fe", + [ + "html/browsers/origin/tentative/api/idlharness.any.html", + { + "script_metadata": [ + [ + "script", + "/resources/WebIDLParser.js" + ], + [ + "script", + "/resources/idlharness.js" + ] + ] + } + ], + [ + "html/browsers/origin/tentative/api/idlharness.any.worker.html", + { + "script_metadata": [ + [ + "script", + "/resources/WebIDLParser.js" + ], + [ + "script", + "/resources/idlharness.js" + ] + ] + } + ] + ], + "origin-comparison.any.js": [ + "e5857675227a0b24d67fe132675fc21a3060e6b7", + [ + "html/browsers/origin/tentative/api/origin-comparison.any.html", + { + "script_metadata": [ + [ + "title", + "`Origin` comparison" + ] + ] + } + ], + [ + "html/browsers/origin/tentative/api/origin-comparison.any.worker.html", + { + "script_metadata": [ + [ + "title", + "`Origin` comparison" + ] + ] + } + ] + ], + "origin-fromURL.any.js": [ + "34c2a62b96faa238e4cd1c296ce99103c2dd4406", + [ + "html/browsers/origin/tentative/api/origin-fromURL.any.html", + { + "script_metadata": [ + [ + "title", + "`Origin.fromURL()`" + ] + ] + } + ], + [ + "html/browsers/origin/tentative/api/origin-fromURL.any.worker.html", + { + "script_metadata": [ + [ + "title", + "`Origin.fromURL()`" + ] + ] + } + ] + ], + "origin.any.js": [ + "3f77dad44b1427a15446eccd2870aaa9bbc6741f", + [ + "html/browsers/origin/tentative/api/origin.any.html", + { + "script_metadata": [ + [ + "title", + "`Origin` Construction and Parsing" + ] + ] + } + ], + [ + "html/browsers/origin/tentative/api/origin.any.worker.html", + { + "script_metadata": [ + [ + "title", + "`Origin` Construction and Parsing" + ] + ] + } + ] + ] + } } }, "sandboxing": { @@ -730939,6 +732014,13 @@ {} ] ], + "patch-range.html": [ + "bf05c2b6fbd5e4ed95aa01ce68b721cb9480a674", + [ + null, + {} + ] + ], "patch-self.html": [ "e5938b69554929a91caafdfefcbef469ee0e8555", [ @@ -732089,6 +733171,20 @@ } }, "the-hidden-attribute": { + "beforematch-attribute-removal-001.html": [ + "c1ffabbcca5283ebb84c2f0b8a288430fbb83166", + [ + null, + {} + ] + ], + "beforematch-attribute-removal-002.html": [ + "ad1d5655d2bd7afd1a39ca1c7fc8d4b5c3e3925d", + [ + null, + {} + ] + ], "beforematch-element-fragment-navigation.html": [ "96f5c8e77b231eb1ce49505edf23e8ad8c595d38", [ @@ -732096,8 +733192,22 @@ {} ] ], + "beforematch-element-removal-001.html": [ + "ee2631f2180fb9325f815c2ed4e8ae8ccce456c4", + [ + null, + {} + ] + ], + "beforematch-element-removal-002.html": [ + "48ac2a69055bb761b5f495abe04b41cb535e96bc", + [ + null, + {} + ] + ], "beforematch-infinite-loop.html": [ - "b1c9e83ebeab51071739307e3d4e50af3c8d1bb4", + "4688020b8a6d62cd64fa0358c93cac2e8bb307e9", [ null, {} @@ -732136,6 +733246,13 @@ } ] ], + "hidden-until-found-and-details.html": [ + "d963beca29a8080f794682c0c4473af6ad8a677d", + [ + null, + {} + ] + ], "hidden-until-found-idl.html": [ "dfeee855dcbfad4533f1aedffe8c5ab77a4d6ec3", [ @@ -742776,15 +743893,15 @@ {} ] ], - "color.tentative.html": [ - "0bfb94868e4ba0baf1894f7408eee61f5c2ace9d", + "color.html": [ + "7275215a21e084f12914a686ded068bc81bdd918", [ null, {} ] ], "color.window.js": [ - "28ec9ec4d86522677b395a2321eed298d069eac1", + "37eb9b443645de68a02f8a03dda475be75708332", [ "html/semantics/forms/the-input-element/color.window.html", { @@ -753298,6 +754415,13 @@ {} ] ], + "script-src-event-handler.sub.html": [ + "346660511ee77f105a54a1126266d0db4787008a", + [ + null, + {} + ] + ], "script-src-integrity.tentative.sub.html": [ "6f66636d7673387854f5c2053bad92bd0207aae8", [ @@ -753312,7 +754436,7 @@ {} ] ], - "script-src-nomodule.tentative.sub.html": [ + "script-src-nomodule.sub.html": [ "3f61dba8d41926994c8ad8e7937ba855dbe1eddd", [ null, @@ -753333,8 +754457,15 @@ {} ] ], - "script-src-unsupported-type.tentative.sub.html": [ - "1eaa56494dbe866a75b5f36b4d1046e3a4ac2447", + "script-src-unsupported-language.sub.html": [ + "e418c0e1edd8fea62752fe38c4db608153d2ad29", + [ + null, + {} + ] + ], + "script-src-unsupported-type.sub.html": [ + "665e7abb02d30c3b911e49228b7c214051c341fb", [ null, {} @@ -753720,6 +754851,13 @@ {} ] ], + "script-src-event-handler.html": [ + "6bb89bd463c7b3565352242f96d6b98c4b7bac47", + [ + null, + {} + ] + ], "script-src-integrity.tentative.html": [ "42719e994a4774d8e2c1ed28b70714ecef6df1b4", [ @@ -753734,7 +754872,7 @@ {} ] ], - "script-src-nomodule.tentative.html": [ + "script-src-nomodule.html": [ "20ca80222eb0c6b100c57b6dacfbba0bd62f8c97", [ null, @@ -753755,7 +754893,14 @@ {} ] ], - "script-src-unsupported-type.tentative.html": [ + "script-src-unsupported-language.html": [ + "60f50eb34d6e6beaf2496f0ed090d18f79ea1931", + [ + null, + {} + ] + ], + "script-src-unsupported-type.html": [ "c7c5b483a4eba8b08e0e8ee634cd04409ddf2c10", [ null, @@ -765652,7 +766797,7 @@ ] ], "mediasource-appendbuffer-quota-exceeded.html": [ - "c90d8448c508feed3ba676a3e7afdae5121264f8", + "470ee7211f8919d298d5e0c1a1dd9165a0b02a3b", [ null, { @@ -767470,6 +768615,36 @@ } ] ], + "GUM-echoCancellation-all.https.html": [ + "197bb39d8858594058adc7b63adb0f08574c2589", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], + "GUM-echoCancellation-boolean.https.html": [ + "0402596e87a9fd2611586a299e202362224d707a", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], + "GUM-echoCancellation-remote-only.https.html": [ + "f9b92d703428b8df310b722ee98ef214e7485e33", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], "GUM-empty-option-param.https.html": [ "5c6b3785a3a892cbb71f50cdaed84f94ae07a1f8", [ @@ -769720,7 +770895,7 @@ ] ], "history-back-same-doc.html": [ - "885d558bb5d5350afb817c9db64be442e7155862", + "9ef2d1c746191ff1dfa0bd025d526d5a858eb5b3", [ null, {} @@ -769776,7 +770951,7 @@ ] ], "navigation-back-forward-same-doc.html": [ - "cd307a3d538e5842e1061fc9523af5ad84dd5f91", + "1faa949d4e2d50655d27e37ace2437558a360867", [ null, {} @@ -769818,14 +770993,14 @@ ] ], "navigation-navigate-replace-same-doc.html": [ - "79ade9396f393484ae5c6cb19936238cd9749a4f", + "019798dc268f94e4cacade5e5649ac6124bdd88e", [ null, {} ] ], "navigation-navigate-same-doc.html": [ - "0cf5214eae62c0259cccb6c80e3d46f4fa21f551", + "0601189449e0237b597bc0db39a0fd936284d49a", [ null, {} @@ -769938,7 +771113,7 @@ ] ], "cross-origin-traversal-redirect.html": [ - "f7bebae510009867819a72489783cfd6478c6458", + "a1cc17772d66a2ff2f01c3f5fd4f1e438128cc27", [ null, {} @@ -770248,7 +771423,7 @@ ] ], "intercept-popstate.html": [ - "f5f9d82be7f7ec737ea68bae57f7baf24a30a149", + "32a5fb1d20f910cea86ca0976d3b827145ad0626", [ null, {} @@ -770329,14 +771504,14 @@ ] ], "navigate-destination-after-detach.html": [ - "1dcb6cac4377ab79551ec51382308d6d669b5670", + "6ddb67122e2af90aee4303929a10215d2520d971", [ null, {} ] ], "navigate-destination-dynamic-index.html": [ - "535e5cfee788c4aaba7005518568079fb6eda54e", + "02e74535fdee6f2ef617721d3df8371c5117dff1", [ null, {} @@ -770443,7 +771618,7 @@ ] ], "navigate-history-back-noop.html": [ - "109106b77fcd34de072fb090081b88d6d2630775", + "11faca385dff232b097d1619d6150b6905363a62", [ null, {} @@ -770513,7 +771688,7 @@ ] ], "navigate-navigation-back-same-document-in-iframe.html": [ - "42c694e2905d73eb7ba92dc7a96c3c3152febf8e", + "fc1070785ccba9a20775a5237cf6e413851b1ed0", [ null, {} @@ -770590,56 +771765,56 @@ ] ], "navigation-back-same-document-preventDefault.html": [ - "f8e31252a42e8b5519bb1fcae456bedc7e5050bc", + "f9c68e8c3fa40fac475d02c9bffbc8dd5f17d2f7", [ null, {} ] ], "navigation-traverseTo-in-iframe-same-document-preventDefault.html": [ - "b3b57f2a1abf8e285660d8e6e902b25ae38bcf0d", + "46a8349f010eae2acec30ced31981cf5d43dd8b3", [ null, {} ] ], "navigation-traverseTo-navigates-top-and-same-doc-child-and-cross-doc-child.html": [ - "479f54213a95ccd64c8b215cd1c4fa60d94dc21f", + "d27f108ec56e1b120e6d17a8b4a751e6a083fd55", [ null, {} ] ], "navigation-traverseTo-same-document-preventDefault-multiple-windows.html": [ - "34f227a183fa8231127e090aec4fed62ded8b6a2", + "0c39e4a213bfadcee568df2f7a5ce0fe632ca39e", [ null, {} ] ], "navigation-traverseTo-top-cancels-cross-document-child.html": [ - "4ece3ca8cbc013ee92adf36910ffa293a64f1b8d", + "0b0e297b1aedafea3681db95c1561bac3b6b956a", [ null, {} ] ], "replaceState-inside-back-handler.html": [ - "29409b5e2bc3e680cf99f54abea90bcdd5bfd1b2", + "11595ce9f8ca157cbab598e0d0f9db2efed075fa", [ null, {} ] ], "same-url-replace-cross-document.html": [ - "b6bd0cdd88358ba439cada84c9160c1e70f89e65", + "f5d7988025495f078ef4bfa3a909bb8b401ad582", [ null, {} ] ], "same-url-replace-same-document.html": [ - "cc4faffe77ab732520fdf1653dd831abf0655385", + "bdffdc42d1531754985b52377ce8b88111d20d1e", [ null, {} @@ -770704,84 +771879,84 @@ ] ], "activation-history-pushState.html": [ - "bcc56136f7e2e8352f0c152442ab027e0bb3105c", + "a4f4583f5756dbbcbf54d975ff740c9af3aaf600", [ null, {} ] ], "activation-history-replaceState.html": [ - "70dc7b8eedee59e40a53155750b6ddd70e7faffa", + "fb3d55ad2d63ceb95896d08c828a2c11ebb7c40e", [ null, {} ] ], "activation-initial-about-blank.html": [ - "402093809ca653393fefaa65cfece2289bebe524", + "9a19393c2c555edefe593bed2c25972e85169140", [ null, {} ] ], "activation-push-cross-origin.html": [ - "15651bf78aac90b6d8770174eb347779f286450e", + "d59ab8372f94e8a6cf27918b2cfe1d2c8efeb738", [ null, {} ] ], "activation-push.html": [ - "99548314c4606044eaa9530c9c76848488e6a500", + "de08c532ea505f51d7c402485c84ed9878abe19e", [ null, {} ] ], "activation-reload.html": [ - "f65afc74bc1458d27f5363d01a8093d0632636cf", + "066feb212351a7ae0943fdecbdb5814a266edacf", [ null, {} ] ], "activation-replace-cross-origin.html": [ - "a835b7f4c52a29a6fcc3c79c1344ece9d919b7de", + "58045ea1522d5d6b53981ecea43ea3cc9346eee3", [ null, {} ] ], "activation-replace.html": [ - "71624fd7cece6156d023a4f21fceed288f492ada", + "0be428c7c8679f4b52150dbc69ce9b09aa6a23c4", [ null, {} ] ], "activation-same-document-then-cross-document.html": [ - "3daa4de66ee3aa069c08ae682290b52d6a519714", + "794e52031d9784fb082a27697ec1732bfdc139ae", [ null, {} ] ], "activation-traverse-not-in-entries.html": [ - "c8386615a24f6ce5f50b7a60102559efb55003ab", + "d78a34855ae7cdb2ad88c911d212365242951b7d", [ null, {} ] ], "activation-traverse-then-clobber.html": [ - "c02837624098d9e4b5bcfba5e67704ffb4c765f8", + "e15b7f335b13d9dc9d911d69c3bf031fccba8dbf", [ null, {} ] ], "activation-traverse.html": [ - "218fe8626910a888a31b080fa4f3cc77b9953d4d", + "9d13ec2ae2762d7723d1a646c1df0ade51407f29", [ null, {} @@ -770790,7 +771965,7 @@ }, "navigation-history-entry": { "after-detach.html": [ - "c4ecfec44d69eaf7183691e69a1d21dd544d8ff7", + "9c73795025bd49850079ee38aeb104e68d1c0b69", [ null, {} @@ -770825,7 +772000,7 @@ ] ], "entries-after-blank-navigation-from-cross-origin.html": [ - "d527637ed353a37b6e737ba75560c19e27da20fe", + "e17d8937ca89c6adc729f0b0d0c0876948e2b78e", [ null, {} @@ -771023,7 +772198,7 @@ }, "navigation-methods": { "back-forward-multiple-frames.html": [ - "6c30987f7598de076e5e8820d686577a8fa6b03e", + "b7e980dda3252a9e7dc403cd24869aa935e97cfc", [ null, {} @@ -771051,14 +772226,14 @@ ] ], "disambigaute-traverseTo-forward-multiple.html": [ - "92f23f0acff9e2ecc06fcba1ee54662bac12bcac", + "ecb92ed07561fc70cda522ee0e404a360b18f73f", [ null, {} ] ], "forward-to-pruned-entry.html": [ - "18b30c620d59c8ad48c8fd8524aa1a880ae98429", + "67006c6c2b1013654c4c854d806ffe264a1c2bec", [ null, {} @@ -771100,14 +772275,14 @@ ] ], "navigate-history-push-same-url-cross-document.html": [ - "2d07bdcede21ff2b75f0c2292cf454a86816ebf2", + "00020ea93d0ec621ccdd39d2e39a9c6c344b79e9", [ null, {} ] ], "navigate-history-push-same-url.html": [ - "a81215f7d46a32348486cb98acc6d1ec02afc9a3", + "59c0ac840f11a652921803e9365ecb4dd270737d", [ null, {} @@ -771256,14 +772431,14 @@ ] ], "back-already-detached.html": [ - "f9ff04f923c80b3d224a11c155f87f391ad1fe2d", + "ebaa15be91a6e216becdcf196136a8584c7d1389", [ null, {} ] ], "back-beforeunload.html": [ - "82c1f589ccf58ad495715ad3fd29e5895619bf93", + "dfb79861bedde7f2ebc4926dedf29b36766c77d4", [ null, {} @@ -771291,56 +772466,56 @@ ] ], "back-intercept-rejected.html": [ - "013ebf1e1e3df145b4e9037452e89b043c283fa7", + "cda4ea71d7b3fd202cb3fec6165412cf65959908", [ null, {} ] ], "back-intercept.html": [ - "1db2f870d8dce440720640507cd17986ff1bf4f7", + "112a712d45bd31f06323446b908b4558c2df9042", [ null, {} ] ], "back.html": [ - "5521de25b7950e09fe17683e9e9d335efe27a1bd", + "16e4db1310aa693d666ddd64cc7628468af2aa29", [ null, {} ] ], "forward-already-detached.html": [ - "4dfa74d9f9b9153f23ac36aeeafeb08316e902e4", + "8f337e2eb6ab624150b05cf38fd27aea25b48cc1", [ null, {} ] ], "forward-beforeunload.html": [ - "87fa4baa935a7f1739b44db9a4685065f6d0a47c", + "642c4510a61cd56fbb8aaf71729c43d76c732869", [ null, {} ] ], "forward-intercept-rejected.html": [ - "9d5318a260d77244972795bb6a94d94edba680a1", + "658146a15de70e0d744c930091d4fc9d88ed56f1", [ null, {} ] ], "forward-intercept.html": [ - "3c5211974541191792fb2b4d72ef7871dba70c36", + "d6ea5dcc1c83bc4b3b8752dbaa50d14490d23a88", [ null, {} ] ], "forward.html": [ - "5ba58f2c8ea19ac5f42a295b386eff2533bc79f6", + "c1ac710cea3db4d77ee10e3e5e987201fe4a9b10", [ null, {} @@ -771410,7 +772585,7 @@ ] ], "navigate-intercept-interrupted.html": [ - "7f661b80b6d494c0088d3cc02da251853e6c65fa", + "86123cc540a5c506ba12687a0ad7da0ba832af52", [ null, {} @@ -771431,14 +772606,14 @@ ] ], "navigate-interrupted-within-onnavigate.html": [ - "249a7df69c2fff137c08fd5819382bec2a42fe1e", + "a3106ddd31bbc5436374eda5d693d4a82f52b523", [ null, {} ] ], "navigate-interrupted.html": [ - "d1ade5b423da7ca19d6b8d9a11a25e92dcae7321", + "3ed522508671c803d3580b2783f019cf8ed7a7d5", [ null, {} @@ -771473,14 +772648,14 @@ ] ], "navigate-push-initial-about-blank.html": [ - "9d47c8d0b5d83bfdf1b133cff7bb93ea657ce9c8", + "3431f03d4b63605523db1d634e06a4fd3ac6cc1c", [ null, {} ] ], "navigate-push-javascript-url.html": [ - "e41e06a78dc29f2913da53505566a2670ba3441d", + "6db41bb78e1240f95bc1e1acd1758c94c4cbe60f", [ null, {} @@ -771662,7 +772837,7 @@ ] ], "traverseTo-cross-document-preventDefault.html": [ - "09c91ee647ef7ffa3a9906faa4f1c14e0e830ab7", + "b40297206cf0250dff90be38f52d054453cffa65", [ null, {} @@ -771676,42 +772851,42 @@ ] ], "traverseTo-detach-cross-document-before-navigate-event.html": [ - "ed319f6223936830c15d36a08e9c782f59bffc1b", + "1833e1aef3496d165b9413346dc71df25f73629c", [ null, {} ] ], "traverseTo-detach-cross-document.html": [ - "8784313b70546e49d37e227ec9c0f809990b77d5", + "7b9389fc92a769805965e55deac181a3d172ec85", [ null, {} ] ], "traverseTo-detach-same-document-before-navigate-event.html": [ - "592ac6f19906979ff19b7ae85f7ad9006e8a5f22", + "65dbf42464ef743d4c0b19f5377bfc2f7b06f144", [ null, {} ] ], "traverseTo-detach-same-document.html": [ - "b0308b8df8fe4c3ed975fe16b790c29a0de1891c", + "4aec1d812e1d5158b636cd65bbb3b13a37ee199d", [ null, {} ] ], "traverseTo-intercept-rejected.html": [ - "f39913e05b239156bbc55a22f644899cf0f133e5", + "b5b03b3cacade25c672dce8a740639a7aa4a9671", [ null, {} ] ], "traverseTo-intercept.html": [ - "e5baf8b1417fceb29e08d42dcf8da3975d4ceccb", + "15a54b180e2fd91346218674cd6ed2a30856dfdd", [ null, {} @@ -771725,14 +772900,14 @@ ] ], "traverseTo-repeated.html": [ - "d1754d6729749316216713cb63c3cc498c8292ad", + "d2ede8e6cf4d4efc183277183edbf2e82e17d393", [ null, {} ] ], "traverseTo.html": [ - "5270bbb411df80d4d09402398068274f98a8d6fa", + "68c309318ce301309c62f5d329fc943afb71ebb6", [ null, {} @@ -771796,14 +772971,14 @@ ] ], "traverseTo-multiple-steps.html": [ - "24cf0281845f6a8d11d782ee9c2784c285e295ef", + "6bf3752510029fe0266a64c5487bf8ba97004d3d", [ null, {} ] ], "traverseTo-navigates-multiple-iframes.html": [ - "1892ae065e2e372ff14e9049a2094812688ec3a0", + "521f34157ea6db172cd0915de37c1a6bca98d4b6", [ null, {} @@ -771826,7 +773001,7 @@ }, "ordering-and-transition": { "anchor-download-intercept-reject.html": [ - "bd7d968fb1ff4ebfc157ec64b8a23997d4bcb13c", + "726586b7a1042d243c143a497b253bfedddd8157", [ "navigation-api/ordering-and-transition/anchor-download-intercept-reject.html?currententrychange", {} @@ -771837,7 +773012,7 @@ ] ], "anchor-download-intercept.html": [ - "38478e3c9a843983da70a90a573a108c64eaa880", + "8aaee4a7094b730ff62a3aefafbb110e768b26ec", [ "navigation-api/ordering-and-transition/anchor-download-intercept.html?currententrychange", {} @@ -771862,7 +773037,7 @@ ] ], "back-same-document-intercept-reject.html": [ - "d1f15428f10adca6bef5996f7fc59e2df43bab8c", + "c2db856da8abc79684dae313ff76da3c0989ef7d", [ "navigation-api/ordering-and-transition/back-same-document-intercept-reject.html?currententrychange", {} @@ -771873,7 +773048,7 @@ ] ], "back-same-document-intercept.html": [ - "f66e1dfba8f1549c4373f24e7dab1d0f7be6d76d", + "9180ca1ca785f0eadd4b8ed22690d2818fe3bfb7", [ "navigation-api/ordering-and-transition/back-same-document-intercept.html?currententrychange", {} @@ -771884,7 +773059,7 @@ ] ], "back-same-document.html": [ - "12b6a2aee938733fbb519f7a0bdeb24def79cfdd", + "680421b9264112c44a3c3e02221710d411213cca", [ "navigation-api/ordering-and-transition/back-same-document.html?currententrychange", {} @@ -771895,7 +773070,7 @@ ] ], "currententrychange-before-popstate-intercept.html": [ - "10627c5875433a44dcf18e080239c5e520f6c939", + "b0c934f6877a51e56822108fbd22ce74f3c26d14", [ null, {} @@ -771909,7 +773084,7 @@ ] ], "intercept-async.html": [ - "4fa7c88833e0232bd743c206d0d10605c7357d1a", + "c34994a57f227ecdedcd4e99ab87d58b554774cf", [ "navigation-api/ordering-and-transition/intercept-async.html?currententrychange", {} @@ -771920,14 +773095,14 @@ ] ], "location-href-canceled.html": [ - "eef10cd1730bbb56a9dab64bfeec90ecb34b770f", + "894aa39fe06f1405389c08d255ae5445cf47d3d8", [ null, {} ] ], "location-href-double-intercept.html": [ - "cc8b95b1b4d8ee2be89d9825e394cc17e59399f1", + "73121ca595f062f2580a9eb1e4be9dc02cf55f07", [ "navigation-api/ordering-and-transition/location-href-double-intercept.html?currententrychange", {} @@ -771938,7 +773113,7 @@ ] ], "location-href-intercept-reentrant.html": [ - "8a5082148e77775629af391b4954314b4072a152", + "18f992422d08c7663b52bdc365bac662d8cb9919", [ "navigation-api/ordering-and-transition/location-href-intercept-reentrant.html?currententrychange", {} @@ -771949,7 +773124,7 @@ ] ], "location-href-intercept-reject.html": [ - "59b3d4884fb6f0f400cc40612c504169cd0b2987", + "04f2914d2aecacd28f5b9261ac71b62941d32640", [ "navigation-api/ordering-and-transition/location-href-intercept-reject.html?currententrychange", {} @@ -771960,7 +773135,7 @@ ] ], "location-href-intercept.html": [ - "75f1d3d1d0286b96e97793e7eb03534ae95f5ff0", + "2be0a1238a7b3012eb6502e67fe55d99f493f510", [ "navigation-api/ordering-and-transition/location-href-intercept.html?currententrychange", {} @@ -771978,7 +773153,7 @@ ] ], "navigate-canceled.html": [ - "2604a60e37bfc240e84df5c7bf02fda31425a303", + "1bc9dfe467ba1da115802425b91d602eff866ad9", [ null, {} @@ -771999,7 +773174,7 @@ ] ], "navigate-double-intercept.html": [ - "0598fb554e0a8d57b0dfcb0ba365058a2f83dbd5", + "92758286800c4172be0cf42e6ad34e88850975c8", [ "navigation-api/ordering-and-transition/navigate-double-intercept.html?currententrychange", {} @@ -772010,7 +773185,7 @@ ] ], "navigate-in-transition-finished.html": [ - "8b3811dd36fd5586930492e5d1d514d61453fc66", + "45aa33017c471dbeb3b4889fce4ae6c7278562ce", [ "navigation-api/ordering-and-transition/navigate-in-transition-finished.html?currententrychange", {} @@ -772021,7 +773196,7 @@ ] ], "navigate-intercept-precommitHandler-redirect.html": [ - "2f60bfd749d271808cc1f56e2e2566768c607866", + "aa703435d3445b0a06b46f7ea3c5ebc558cb5e51", [ "navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-redirect.html?currententrychange", {} @@ -772032,7 +773207,7 @@ ] ], "navigate-intercept-precommitHandler-reject.tentative.html": [ - "28dc885188015dbc364421d90173c52030ab92f0", + "80c9e85687ae4add0a548c85dd9f3d0fff800823", [ "navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-reject.tentative.html?currententrychange", {} @@ -772043,7 +773218,7 @@ ] ], "navigate-intercept-precommitHandler.html": [ - "8257e56d44e15e9a29d74c3990f8f29afd58b0d7", + "f3f525af70689ec6115bcea34904846401008da7", [ "navigation-api/ordering-and-transition/navigate-intercept-precommitHandler.html?currententrychange", {} @@ -772054,7 +773229,7 @@ ] ], "navigate-intercept-stop.html": [ - "1a7faa4e0eebc7ef490c15805086ac16de385fb1", + "8357dc82806a951a08307bbde9f200ca1ff58e1d", [ "navigation-api/ordering-and-transition/navigate-intercept-stop.html?currententrychange", {} @@ -772065,7 +773240,7 @@ ] ], "navigate-intercept.html": [ - "eec9d3ca119b82406cdd93ad4de6af93f0ef1cf2", + "ebb1a0b13af5b5e79f8e61201516d70c093093cd", [ "navigation-api/ordering-and-transition/navigate-intercept.html?currententrychange", {} @@ -772076,7 +773251,7 @@ ] ], "navigate-same-document-intercept-reentrant.html": [ - "88715fda355252a1ec299df1c00ce0277fe5fcd2", + "b9d2740b98d0fd0cab249b845af981b804d163f3", [ "navigation-api/ordering-and-transition/navigate-same-document-intercept-reentrant.html?currententrychange", {} @@ -772087,7 +773262,7 @@ ] ], "navigate-same-document-intercept-reject.html": [ - "05f295177a062bc9f471952cf8d821b7bfad3bce", + "8899a3819d9c38d948a97ddb16d5adf2941a3da0", [ "navigation-api/ordering-and-transition/navigate-same-document-intercept-reject.html?currententrychange", {} @@ -772098,7 +773273,7 @@ ] ], "navigate-same-document.html": [ - "fc506cef8bf481bee89b8cfd4f78843b95459305", + "b23d32fc09fdd11aa46235891d35d36b5247b46f", [ "navigation-api/ordering-and-transition/navigate-same-document.html?currententrychange", {} @@ -772109,14 +773284,14 @@ ] ], "reload-canceled.html": [ - "3e9e24e777112908703e45daebd87b88dd5d1e59", + "9b21c15ad86233df5f0063ef3de15b7af48fb803", [ null, {} ] ], "reload-intercept-reject.html": [ - "96833f314f464724ec32c71837c7439cb687a46a", + "4ea4cc0e398d784c80dfb9d09884384b00ce6769", [ "navigation-api/ordering-and-transition/reload-intercept-reject.html?currententrychange", {} @@ -772127,7 +773302,7 @@ ] ], "reload-intercept.html": [ - "1494136e199c508564a7449586c2f5579d9be69c", + "eb6aff961e1c678334a03a83a9d85628ef1e4960", [ "navigation-api/ordering-and-transition/reload-intercept.html?currententrychange", {} @@ -772138,7 +773313,7 @@ ] ], "reload-no-popstate.html": [ - "6c4592b67cc1417e1aa69491c41bb69cc8caba6e", + "324acb66cdbf37e6ede5fd5862e94104bdcc455b", [ null, {} @@ -772268,42 +773443,42 @@ ] ], "precommitHandler-redirect-options.html": [ - "06542d7e084f9232d8c7704090d1a184b9b6cec5", + "3c40044c8cb6c7e13d04eda0167ea75cdf9519d8", [ null, {} ] ], "precommitHandler-redirect-push-changed-to-replace.html": [ - "e268f68a88d8e0ffa6685b8067786834e9353942", + "8088f51021a08fdab8c318499ab09755b6b8fd7b", [ null, {} ] ], "precommitHandler-redirect-push.html": [ - "de75198d9754a5510adb449f5845fa5daa7ea63b", + "41b3f3df8bdd951196aa65410e6d854fd61b98d9", [ null, {} ] ], "precommitHandler-redirect-replace-changed-to-push.html": [ - "db9b178901b84fc36ec6281c54789dc1d685b94b", + "19bbbcda33f6b9d056e0a718cbcfc509eb0d911f", [ null, {} ] ], "precommitHandler-redirect-replace.html": [ - "049909fefdead4c6a72b94d2a05423523733c50f", + "2ebd385364547ab201d4201b348d0841a2d2cfb8", [ null, {} ] ], "precommitHandler-redirect-throws.html": [ - "b459271201050717bed97920dea3cb41cc772201", + "865835d5ea62882a098c571bff3b7ed6cbf90bbb", [ null, {} @@ -772324,14 +773499,14 @@ ] ], "precommitHandler-traversal-commit-new-navigation-before-commit.html": [ - "226f332e421687bf92430f9009b329e751adc7c0", + "e5955b67d7cc4606350b761bfafbc22788921e23", [ null, {} ] ], "precommitHandler-traversal-window-stop-before-commit.html": [ - "c45f8268f2a31a7440f74c8ed7336694bcfabea9", + "9dd74c2c47eaf07ea303a4555fd5aa7535d0817c", [ null, {} @@ -772345,14 +773520,14 @@ ] ], "precommitHandler-uncancelable.html": [ - "af320b4e32c920947212cc8edce1be23c7520221", + "9a63c45ad3cd689ddd64ca3fe9bde91be78ef0e2", [ null, {} ] ], "precommitHandler-window-stop-before-commit.html": [ - "857a21ed3a97dd695d553818b5d067fec6666534", + "8b8e2fe9163084465c071d9ff987e6162a76302d", [ null, {} @@ -772361,147 +773536,147 @@ }, "scroll-behavior": { "after-transition-basic.html": [ - "8ee4cc395b6722affc8ac657ee35d7cb41761b9d", + "b6e5058e8934b132ff198c3e2efb6d35203deb9f", [ null, {} ] ], "after-transition-change-history-scroll-restoration-during-promise.html": [ - "6ededdeebfaec4ccc25e58a0f81a497079ae98d1", + "6be6eddd62f2dd5900508c6767ac4283bab53d50", [ null, {} ] ], "after-transition-explicit-scroll.html": [ - "4b7d0754747821aeb61e93dd0ae657ad5cef8821", + "4f7c6787e87546552da57083f37fa66faba38bee", [ null, {} ] ], "after-transition-intercept-handler-modifies.html": [ - "baff6fe542bbf0263b27c270981978ebf468e9b2", + "c2609d611a6507c7dfeb65aad1ade97f0c4710d1", [ null, {} ] ], "after-transition-push.html": [ - "f3ee1827bc4c7aa4f4cbb4d1921e578eedcd7ff1", + "8ce5be60bb56bccecef5916c69cfe0722a97330a", [ null, {} ] ], "after-transition-reject.html": [ - "5880dbb331306b6b686477c69a33acbf7821458c", + "063c0846be8320ac5c779e4a17ec47ac71180715", [ null, {} ] ], "after-transition-reload.html": [ - "badb7e7f41714da82327ec5ebf92fa14624275e1", + "437ed692060b9deb758b6a02fdd19577290912ef", [ null, {} ] ], "after-transition-replace.html": [ - "48f153b99effe7658a4970c984fb0c90605f9d54", + "64376c9fe1fe7926bdc7bfbe7817ba194bcadd79", [ null, {} ] ], "after-transition-timing.html": [ - "88ba82102a6a280beab79f72463aa039bab62850", + "637d8c00d90ead3a300550e582c47f77797854cc", [ null, {} ] ], "manual-basic.html": [ - "e6ae29ad86ef63d2200107a4653ae98d27c4b2d0", + "5e4d6a12a72f3bd459563c6741de8c65b52475c4", [ null, {} ] ], "manual-immediate-scroll.html": [ - "bafcf6b25628cf76f456fb148b1e88d7b2dafe1c", + "d50faedd7f8903631072d95ca2d2d182554eb0b2", [ null, {} ] ], "manual-scroll-after-dispatch.html": [ - "8b4a58c7a2651b4ce792ba476aa7b9f32a3bafbb", + "268be126fac9d6f02467750b395c163410768f11", [ null, {} ] ], "manual-scroll-after-resolve.html": [ - "244c93af904ce210b776bab0d76b251984ef4f7d", + "34eec9727c9551c94381d25979293cb7c34e266f", [ null, {} ] ], "manual-scroll-fragment-does-not-exist.html": [ - "1ca582787e2e27ae63fec6170ed658b7f1453b65", + "0db3f03ee592b228b4b938841c89fd81573f5782", [ null, {} ] ], "manual-scroll-in-precommit-handler.html": [ - "3f92b5276a31c89613e2c78bf7445e9a8e7c17da", + "ec91e762b665e5deac4162bb0c4cd51c8f0fe2fd", [ null, {} ] ], "manual-scroll-push.html": [ - "3c29365178053e419c20217c1b82fdcdb268478d", + "cba40fdf27edde1ede912b82b51a7258dc79939a", [ null, {} ] ], "manual-scroll-reload.html": [ - "6dd3fd8a38f400e03166185202f1568c6f19d3ba", + "9c70d5fe81893e667b149ab08b138d74873e8130", [ null, {} ] ], "manual-scroll-repeated.html": [ - "12391460880e034da168f95bec91ed9c6de91362", + "058d7f0f9b2fcf2d6e8f76461cb4cfe561810971", [ null, {} ] ], "manual-scroll-replace.html": [ - "db580229a8627734d3bb865fc821e01a12786ae7", + "151c2ddfa9ec31cda020e3b8a5c53487c5216c73", [ null, {} ] ], "manual-scroll-resets-when-no-fragment.html": [ - "5401976f6406f757cd4706d3ee556f7fcecf5658", + "caf7bae6d2e5c3135b8c52421981ba964bca3db2", [ null, {} ] ], "scroll-after-preventDefault.html": [ - "298bebcbe987dd672f86c438c0cfac96cd992c0b", + "fe83b89cfebbb6bf114868b73ca1b86770972813", [ null, {} @@ -772515,7 +773690,7 @@ ] ], "scroll-without-intercept.html": [ - "b3958352c72776b0371a24e27fc5c270232ae55e", + "efdded2258f6b901fc968120dc95dcbb4ab422a5", [ null, {} @@ -798302,6 +799477,16 @@ } ] ], + "getdisplaymedia-restrictOwnAudio.https.html": [ + "b4915dea9694505fe90b5f934ad39102be223944", + [ + null, + { + "testdriver": true, + "timeout": "long" + } + ] + ], "getdisplaymedia-settings.https.html": [ "afd8339d9919d8cabd4aaca03b4a43b792b7481d", [ @@ -798313,7 +799498,7 @@ ] ], "getdisplaymedia.https.html": [ - "4a7c655335161afdeaf398a4e6225598de325ce9", + "0051e4c5a0453a0f0b986235b9bb519668020673", [ null, { @@ -800705,6 +801890,15 @@ } ] ], + "canvas-drag.html": [ + "eaed6f783af6dfd049b8aad89dae28133a07e6a1", + [ + null, + { + "testdriver": true + } + ] + ], "caret": { "empty-elements.html": [ "328188c957bd738af419d54e4cd5c741cecc827f", @@ -806132,7 +807326,7 @@ ] }, "offsetParent-across-shadow-boundaries.html": [ - "5491e2121336d1b59ef69198fd048a22acc80d46", + "44bbc0771d47e05a46fc2910acdd5ec6e525d2d5", [ null, {} @@ -808225,6 +809419,24 @@ ], "detection": { "tentative": { + "overwriting-text-once-per-interaction.html": [ + "41a363888fc04e225b01ccc334b53919fb976b6f", + [ + null, + { + "testdriver": true + } + ] + ], + "overwriting-text.html": [ + "653ae6848ecb9a4ad1da14adeb059af8a272dd62", + [ + null, + { + "testdriver": true + } + ] + ], "racing-soft-navigations.html": [ "b513ff4f99bf8d3714fc8b6f12909747ca4fd549", [ @@ -808233,6 +809445,15 @@ "testdriver": true } ] + ], + "video-srcObject-change.html": [ + "2d25164ba4a28f547b6be5ae068fc769f4bc0026", + [ + null, + { + "testdriver": true + } + ] ] } }, @@ -808699,6 +809920,15 @@ } ] ], + "video-src-change.html": [ + "9a37bdcce49079b6f19aa6e3566421b92d9441f5", + [ + null, + { + "testdriver": true + } + ] + ], "window-open-cross-scheduling.html": [ "1a41be6ddd2d716c4012b5524e8a30b9821ec3e3", [ @@ -809999,7 +811229,7 @@ ] ], "cookies.https.html": [ - "2f02197fb5b191b782f45fc1f4d9f47ff6853286", + "3965284f8b9de8ec596edc9b997f07135f2319b8", [ null, { @@ -811904,7 +813134,7 @@ "storage": { "buckets": { "bucket-quota-indexeddb.tentative.https.any.js": [ - "ee9202777e7ec55faee0b89f4c656f7a76c05e83", + "9dc345579d3b26586bb1826fa20feaca367aaf0c", [ "storage/buckets/bucket-quota-indexeddb.tentative.https.any.html", { @@ -825465,7 +826695,7 @@ ] ], "server-initiated.window.js": [ - "8dec3daaded618997ed43747475a3316574efc42", + "60cfef5e65fcb14da440094559ef076e57e4f55b", [ "subresource-integrity/signatures/tentative/server-initiated.window.html", { @@ -828719,13 +829949,6 @@ ] }, "shapes": { - "animatedPoints-non-animated.html": [ - "5c1758908605d71baf9fe87c9b54ccfab5c5e5cd", - [ - null, - {} - ] - ], "line-getPointAtLength.svg": [ "472a64480aee5489add7f693aa1118413a3e9b06", [ @@ -830794,7 +832017,7 @@ ] ], "script-enforcement-001.html": [ - "9548987a22d67f952cb49ad472c28f5a37a21180", + "dc2bf3131eac1bfd2e71d3a256c534f9f25b4402", [ null, {} @@ -830808,21 +832031,21 @@ ] ], "script-enforcement-002.html": [ - "ddbbc99ea6b3254dafe447af6aaef985587bd33a", + "d6799d502ecfd706bd1356a34283c1a422f75cb1", [ null, {} ] ], "script-enforcement-003.html": [ - "9ad31b795bc36e1cc4b83c63220be2d3d1e2fee9", + "5f3b31796bb77dd33c74dd795e053562dc686c7d", [ null, {} ] ], "script-enforcement-004.html": [ - "86e1020c3ad153a5fcbbbac2e3df6f65eb90e710", + "29dff3c6c40ad13a19ff6b1033df20b2cf8cb205", [ null, {} @@ -870318,7 +871541,7 @@ ] ], "pad.https.any.js": [ - "67fb9118969b4fd90106e0d56d8f5731eb1dd52c", + "750e4aee617cfe4193fed8c66f7e382f696bd154", [ "webnn/conformance_tests/pad.https.any.html?cpu", { @@ -876084,7 +877307,7 @@ ] ], "tensor.https.any.js": [ - "ea2cedb3f6dad0f2424be21cf942539de24ae410", + "4b6a4ab8e7ff2c78b420b97047c31dc7695cfe4a", [ "webnn/conformance_tests/tensor.https.any.html?cpu", { @@ -878376,7 +879599,7 @@ ] ], "constant.https.any.js": [ - "f9e34ea94ec1a31cdf999c810e9f3f616f971654", + "420fd9d23d89f0cb19ae5ca6472f3d26adaa0221", [ "webnn/validation_tests/constant.https.any.html?cpu", { @@ -893315,7 +894538,7 @@ ] ], "RTCRtpTransceiver.https.html": [ - "943550d4b7feeb0bc69dd02de3fec722aef4565c", + "813e3fab8830cd9d0db15bfbf488856708ab68bb", [ null, { @@ -894234,7 +895457,7 @@ ] ], "script-transform-generateKeyFrame-simulcast.https.html": [ - "4174aaf24a130c0d15508a958fecb82c6ce4582b", + "1ad51c8ea34190691289b97c427b536989460443", [ null, { @@ -894244,7 +895467,7 @@ ] ], "script-transform-generateKeyFrame.https.html": [ - "348902ea36c463d47e6922eb6166b3b696518db1", + "1ee2c1a2d47c0fbd025a27000860f4626a000d28", [ null, { @@ -894254,7 +895477,7 @@ ] ], "script-transform-sendKeyFrameRequest.https.html": [ - "b67627dcf1128785d59784363f38fdacc378ac52", + "5cc5c6c2996006ae909f311087899d37e10cec21", [ null, { @@ -894637,7 +895860,7 @@ ] ], "outbound-rtp.https.html": [ - "ff87d54256026b3b6fc6da2aa9f03a579730b330", + "196e8fd003706f9d6fe89cdaa2adf17e8fc2b30e", [ null, { @@ -908416,7 +909639,7 @@ ] ], "storage_local_setitem_quotaexceedederr.window.js": [ - "fff7d6444a039e4fbc9795c5fbab823c80b170de", + "f2f3c4d6887542cc90dd0ca312080c8d23857e60", [ "webstorage/storage_local_setitem_quotaexceedederr.window.html", {} @@ -908437,7 +909660,7 @@ ] ], "storage_session_setitem_quotaexceedederr.window.js": [ - "42a895470efa628b47c83b4df963d635beb45646", + "693c98d29f99fd9e65f202244206fe0f224618e9", [ "webstorage/storage_session_setitem_quotaexceedederr.window.html", {} @@ -940178,7 +941401,7 @@ ] ], "start_nodes.py": [ - "351020af4c2d9f74a3aed55db014808af02ac622", + "c58c05e1cde86b0ecba8900cb979d6e58dae6983", [ null, {} @@ -941434,6 +942657,22 @@ ] ] }, + "remove_data_collector": { + "collector.py": [ + "50ecc311d7ba9cce6cd3dfa30093202d61ba144e", + [ + null, + {} + ] + ], + "invalid.py": [ + "aef1877669e7e2a50a297af776ab974342bc5a4a", + [ + null, + {} + ] + ] + }, "remove_intercept": { "invalid.py": [ "4b3526bfc37d8300eebc17b548040bde588ce18b", diff --git a/tests/wpt/meta/WebCryptoAPI/getRandomValues.any.js.ini b/tests/wpt/meta/WebCryptoAPI/getRandomValues.any.js.ini index a53fc15fd24..64fb1cb36a8 100644 --- a/tests/wpt/meta/WebCryptoAPI/getRandomValues.any.js.ini +++ b/tests/wpt/meta/WebCryptoAPI/getRandomValues.any.js.ini @@ -2,6 +2,61 @@ [Float16 arrays] expected: FAIL + [Large length: Int8Array] + expected: FAIL + + [Large length: Int16Array] + expected: FAIL + + [Large length: Int32Array] + expected: FAIL + + [Large length: BigInt64Array] + expected: FAIL + + [Large length: Uint8Array] + expected: FAIL + + [Large length: Uint8ClampedArray] + expected: FAIL + + [Large length: Uint16Array] + expected: FAIL + + [Large length: Uint32Array] + expected: FAIL + + [Large length: BigUint64Array] + expected: FAIL + + [getRandomValues.any.html] [Float16 arrays] expected: FAIL + + [Large length: Int8Array] + expected: FAIL + + [Large length: Int16Array] + expected: FAIL + + [Large length: Int32Array] + expected: FAIL + + [Large length: BigInt64Array] + expected: FAIL + + [Large length: Uint8Array] + expected: FAIL + + [Large length: Uint8ClampedArray] + expected: FAIL + + [Large length: Uint16Array] + expected: FAIL + + [Large length: Uint32Array] + expected: FAIL + + [Large length: BigUint64Array] + expected: FAIL diff --git a/tests/wpt/meta/content-security-policy/frame-ancestors/frame-ancestors-path-ignored.window.js.ini b/tests/wpt/meta/content-security-policy/frame-ancestors/frame-ancestors-path-ignored.window.js.ini deleted file mode 100644 index 493d04ea590..00000000000 --- a/tests/wpt/meta/content-security-policy/frame-ancestors/frame-ancestors-path-ignored.window.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[frame-ancestors-path-ignored.window.html] - [A 'frame-ancestors' CSP directive with a URL that includes a path should be ignored.] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/__dir__.ini b/tests/wpt/meta/cookie-store/__dir__.ini deleted file mode 100644 index 9cc9053597c..00000000000 --- a/tests/wpt/meta/cookie-store/__dir__.ini +++ /dev/null @@ -1 +0,0 @@ -prefs: [dom_cookiestore_enabled: true] diff --git a/tests/wpt/meta/cookie-store/change_eventhandler_for_already_expired.https.window.js.ini b/tests/wpt/meta/cookie-store/change_eventhandler_for_already_expired.https.window.js.ini deleted file mode 100644 index bd7ba973a8f..00000000000 --- a/tests/wpt/meta/cookie-store/change_eventhandler_for_already_expired.https.window.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[change_eventhandler_for_already_expired.https.window.html] - [CookieStore setting already-expired cookie should not be observed] - expected: FAIL - - [CookieStore setting already-expired partitioned cookie should not be observed] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/change_eventhandler_for_document_cookie.https.window.js.ini b/tests/wpt/meta/cookie-store/change_eventhandler_for_document_cookie.https.window.js.ini deleted file mode 100644 index f482971b1e8..00000000000 --- a/tests/wpt/meta/cookie-store/change_eventhandler_for_document_cookie.https.window.js.ini +++ /dev/null @@ -1,18 +0,0 @@ -[change_eventhandler_for_document_cookie.https.window.html] - [document.cookie set/overwrite/delete observed by CookieStore] - expected: FAIL - - [document.cookie set already-expired cookie should not be observed by CookieStore] - expected: FAIL - - [document.cookie duplicate cookie should not be observed by CookieStore] - expected: FAIL - - [CookieStore set/overwrite/delete observed by document.cookie] - expected: FAIL - - [CookieStore agrees with document.cookie on encoding non-ASCII cookies] - expected: FAIL - - [document.cookie agrees with CookieStore on encoding non-ASCII cookies] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js.ini b/tests/wpt/meta/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js.ini deleted file mode 100644 index e2ab8d878f1..00000000000 --- a/tests/wpt/meta/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js.ini +++ /dev/null @@ -1,21 +0,0 @@ -[change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.html] - [HTTP set/overwrite/delete observed in CookieStore] - expected: FAIL - - [HTTP set already-expired cookie should not be observed by CookieStore] - expected: FAIL - - [HTTP duplicate cookie should not be observed by CookieStore] - expected: FAIL - - [CookieStore agreed with HTTP headers agree on encoding non-ASCII cookies] - expected: FAIL - - [CookieStore set/overwrite/delete observed in HTTP headers] - expected: FAIL - - [HTTP headers agreed with CookieStore on encoding non-ASCII cookies] - expected: FAIL - - [Binary HTTP set/overwrite/delete observed in CookieStore] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/change_eventhandler_for_no_change.https.window.js.ini b/tests/wpt/meta/cookie-store/change_eventhandler_for_no_change.https.window.js.ini deleted file mode 100644 index d7ba44abba5..00000000000 --- a/tests/wpt/meta/cookie-store/change_eventhandler_for_no_change.https.window.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[change_eventhandler_for_no_change.https.window.html] - [CookieStore duplicate cookie should not be observed] - expected: FAIL - - [CookieStore duplicate partitioned cookie should not be observed] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/change_eventhandler_for_no_name_and_no_value.https.window.js.ini b/tests/wpt/meta/cookie-store/change_eventhandler_for_no_name_and_no_value.https.window.js.ini deleted file mode 100644 index b87dd5203c4..00000000000 --- a/tests/wpt/meta/cookie-store/change_eventhandler_for_no_name_and_no_value.https.window.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[change_eventhandler_for_no_name_and_no_value.https.window.html] - [Verify behavior of no-name and no-value cookies.] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/change_eventhandler_for_no_name_equals_in_value.https.window.js.ini b/tests/wpt/meta/cookie-store/change_eventhandler_for_no_name_equals_in_value.https.window.js.ini deleted file mode 100644 index 5eeb11610bc..00000000000 --- a/tests/wpt/meta/cookie-store/change_eventhandler_for_no_name_equals_in_value.https.window.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[change_eventhandler_for_no_name_equals_in_value.https.window.html] - [Verify that attempting to set a cookie with no name and with '=' in the value does not work.] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/change_eventhandler_for_no_name_multiple_values.https.window.js.ini b/tests/wpt/meta/cookie-store/change_eventhandler_for_no_name_multiple_values.https.window.js.ini deleted file mode 100644 index 6f7ccd3037a..00000000000 --- a/tests/wpt/meta/cookie-store/change_eventhandler_for_no_name_multiple_values.https.window.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[change_eventhandler_for_no_name_multiple_values.https.window.html] - [Verify behavior of multiple no-name cookies] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieListItem_attributes.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieListItem_attributes.https.any.js.ini deleted file mode 100644 index 5e15f291397..00000000000 --- a/tests/wpt/meta/cookie-store/cookieListItem_attributes.https.any.js.ini +++ /dev/null @@ -1,39 +0,0 @@ -[cookieListItem_attributes.https.any.serviceworker.html] - expected: ERROR - -[cookieListItem_attributes.https.any.html] - [CookieListItem - cookieStore.set defaults with positional name and value] - expected: FAIL - - [CookieListItem - cookieStore.set defaults with name and value in options] - expected: FAIL - - [CookieListItem - cookieStore.set with expires set to a timestamp 10 years in the future] - expected: FAIL - - [CookieListItem - cookieStore.set with expires set to a Date 10 years in the future] - expected: FAIL - - [CookieListItem - cookieStore.set with domain set to the current hostname] - expected: FAIL - - [CookieListItem - cookieStore.set with path set to the current directory] - expected: FAIL - - [CookieListItem - cookieStore.set does not add / to path if it does not end with /] - expected: FAIL - - [CookieListItem - cookieStore.set with sameSite set to strict] - expected: FAIL - - [CookieListItem - cookieStore.set with sameSite set to lax] - expected: FAIL - - [CookieListItem - cookieStore.set with sameSite set to none] - expected: FAIL - - [CookieListItem - secure defaults to true] - expected: FAIL - - [Test max-age attribute over the 400 days] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStoreManager_getSubscriptions_empty.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStoreManager_getSubscriptions_empty.https.any.js.ini deleted file mode 100644 index 4dc35ac7086..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStoreManager_getSubscriptions_empty.https.any.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[cookieStoreManager_getSubscriptions_empty.https.any.serviceworker.html] - expected: ERROR - -[cookieStoreManager_getSubscriptions_empty.https.any.html] - [getSubscriptions returns an empty array when there are no subscriptions] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.js.ini deleted file mode 100644 index 6e07e32a8d0..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[cookieStoreManager_getSubscriptions_multiple.https.any.serviceworker.html] - expected: ERROR - -[cookieStoreManager_getSubscriptions_multiple.https.any.html] - [getSubscriptions returns a subscription passed to subscribe] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStoreManager_getSubscriptions_single.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStoreManager_getSubscriptions_single.https.any.js.ini deleted file mode 100644 index 64db1d64ac1..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStoreManager_getSubscriptions_single.https.any.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[cookieStoreManager_getSubscriptions_single.https.any.serviceworker.html] - expected: ERROR - -[cookieStoreManager_getSubscriptions_single.https.any.html] - [getSubscriptions returns a subscription passed to subscribe] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_delete.sub.https.html.ini b/tests/wpt/meta/cookie-store/cookieStore_delete.sub.https.html.ini deleted file mode 100644 index de9470a514e..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_delete.sub.https.html.ini +++ /dev/null @@ -1,4 +0,0 @@ -[cookieStore_delete.sub.https.html] - expected: TIMEOUT - [Async Cookies: cookieStore basic API across origins] - expected: TIMEOUT diff --git a/tests/wpt/meta/cookie-store/cookieStore_delete_arguments.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_delete_arguments.https.any.js.ini deleted file mode 100644 index b340f6930c7..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_delete_arguments.https.any.js.ini +++ /dev/null @@ -1,55 +0,0 @@ -[cookieStore_delete_arguments.https.any.html] - [cookieStore.delete with positional name] - expected: FAIL - - [cookieStore.delete with name in options] - expected: FAIL - - [cookieStore.delete domain starts with "."] - expected: FAIL - - [cookieStore.delete with domain that is not equal current host] - expected: FAIL - - [cookieStore.delete with domain set to the current hostname] - expected: FAIL - - [cookieStore.delete with domain set to a subdomain of the current hostname] - expected: FAIL - - [cookieStore.delete with domain set to a non-domain-matching suffix of the current hostname] - expected: FAIL - - [cookieStore.delete with path set to the current directory] - expected: FAIL - - [cookieStore.delete with path set to subdirectory of the current directory] - expected: FAIL - - [cookieStore.delete does not append / at the end of path] - expected: FAIL - - [cookieStore.delete can delete a cookie set by document.cookie if document is defined] - expected: FAIL - - [cookieStore.delete with path that does not start with /] - expected: FAIL - - [cookieStore.delete with get result] - expected: FAIL - - [cookieStore.delete with positional empty name] - expected: FAIL - - [cookieStore.delete with empty name in options] - expected: FAIL - - [cookieStore.delete with a __Host- prefix should not have a domain] - expected: FAIL - - [cookieStore.delete with maximum cookie name size] - expected: FAIL - - -[cookieStore_delete_arguments.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/cookieStore_delete_basic.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_delete_basic.https.any.js.ini deleted file mode 100644 index a92cdbe5225..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_delete_basic.https.any.js.ini +++ /dev/null @@ -1,7 +0,0 @@ -[cookieStore_delete_basic.https.any.html] - [cookieStore.delete return type is Promise] - expected: FAIL - - -[cookieStore_delete_basic.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/cookieStore_event_arguments.https.window.js.ini b/tests/wpt/meta/cookie-store/cookieStore_event_arguments.https.window.js.ini deleted file mode 100644 index d1d0d092ec5..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_event_arguments.https.window.js.ini +++ /dev/null @@ -1,12 +0,0 @@ -[cookieStore_event_arguments.https.window.html] - [CookieChangeEvent construction with default arguments] - expected: FAIL - - [CookieChangeEvent construction with changed cookie list] - expected: FAIL - - [CookieChangeEvent construction with deleted cookie list] - expected: FAIL - - [CookieChangeEvent construction with changed and deleted cookie lists] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_event_basic.https.window.js.ini b/tests/wpt/meta/cookie-store/cookieStore_event_basic.https.window.js.ini deleted file mode 100644 index d4ee7e88a51..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_event_basic.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[cookieStore_event_basic.https.window.html] - expected: ERROR - [cookieStore fires change event for cookie set by cookieStore.set()] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_event_delete.https.window.js.ini b/tests/wpt/meta/cookie-store/cookieStore_event_delete.https.window.js.ini deleted file mode 100644 index f4f2d8ad572..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_event_delete.https.window.js.ini +++ /dev/null @@ -1,7 +0,0 @@ -[cookieStore_event_delete.https.window.html] - expected: ERROR - [cookieStore fires change event for cookie deleted by cookieStore.delete()] - expected: FAIL - - [cookieStore does not fire change events for non-existing expired cookies] - expected: NOTRUN diff --git a/tests/wpt/meta/cookie-store/cookieStore_event_overwrite.https.window.js.ini b/tests/wpt/meta/cookie-store/cookieStore_event_overwrite.https.window.js.ini deleted file mode 100644 index e10f22e14a1..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_event_overwrite.https.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[cookieStore_event_overwrite.https.window.html] - expected: ERROR - [cookieStore fires change event for cookie overwritten by cookieStore.set()] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_getAll_arguments.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_getAll_arguments.https.any.js.ini deleted file mode 100644 index aa053075eda..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_getAll_arguments.https.any.js.ini +++ /dev/null @@ -1,37 +0,0 @@ -[cookieStore_getAll_arguments.https.any.html] - [cookieStore.getAll with no arguments] - expected: FAIL - - [cookieStore.getAll with empty options] - expected: FAIL - - [cookieStore.getAll with positional name] - expected: FAIL - - [cookieStore.getAll with name in options] - expected: FAIL - - [cookieStore.getAll with name in both positional arguments and options] - expected: FAIL - - [cookieStore.getAll with absolute url in options] - expected: FAIL - - [cookieStore.getAll with relative url in options] - expected: FAIL - - [cookieStore.getAll with invalid url path in options] - expected: FAIL - - [cookieStore.getAll with invalid url host in options] - expected: FAIL - - [cookieStore.getAll with absolute url with fragment in options] - expected: FAIL - - [cookieStore.getAll with absolute different url in options] - expected: FAIL - - -[cookieStore_getAll_arguments.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/cookieStore_getAll_multiple.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_getAll_multiple.https.any.js.ini deleted file mode 100644 index 248e63facd1..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_getAll_multiple.https.any.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[cookieStore_getAll_multiple.https.any.serviceworker.html] - expected: ERROR - -[cookieStore_getAll_multiple.https.any.html] - [cookieStore.getAll returns multiple cookies written by cookieStore.set] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_getAll_set_basic.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_getAll_set_basic.https.any.js.ini deleted file mode 100644 index b868ce9aea2..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_getAll_set_basic.https.any.js.ini +++ /dev/null @@ -1,7 +0,0 @@ -[cookieStore_getAll_set_basic.https.any.html] - [cookieStore.getAll returns the cookie written by cookieStore.set] - expected: FAIL - - -[cookieStore_getAll_set_basic.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/cookieStore_getAll_set_creation_url.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_getAll_set_creation_url.https.any.js.ini deleted file mode 100644 index 92d48b35329..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_getAll_set_creation_url.https.any.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[cookieStore_getAll_set_creation_url.https.any.html] - [cookieStore.set and cookieStore.getAll use the creation url] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_get_arguments.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_get_arguments.https.any.js.ini deleted file mode 100644 index 44eadd09d4c..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_get_arguments.https.any.js.ini +++ /dev/null @@ -1,37 +0,0 @@ -[cookieStore_get_arguments.https.any.html] - [cookieStore.get with no arguments returns TypeError] - expected: FAIL - - [cookieStore.get with empty options returns TypeError] - expected: FAIL - - [cookieStore.get with positional name] - expected: FAIL - - [cookieStore.get with name in options] - expected: FAIL - - [cookieStore.get with name in both positional arguments and options] - expected: FAIL - - [cookieStore.get with absolute url in options] - expected: FAIL - - [cookieStore.get with relative url in options] - expected: FAIL - - [cookieStore.get with invalid url path in options] - expected: FAIL - - [cookieStore.get with invalid url host in options] - expected: FAIL - - [cookieStore.get with absolute url with fragment in options] - expected: FAIL - - [cookieStore.get with absolute different url in options] - expected: FAIL - - -[cookieStore_get_arguments.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/cookieStore_get_delete_basic.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_get_delete_basic.https.any.js.ini deleted file mode 100644 index b00399e9ec4..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_get_delete_basic.https.any.js.ini +++ /dev/null @@ -1,7 +0,0 @@ -[cookieStore_get_delete_basic.https.any.html] - [cookieStore.get returns null for a cookie deleted by cookieStore.delete] - expected: FAIL - - -[cookieStore_get_delete_basic.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/cookieStore_get_set_across_frames.https.html.ini b/tests/wpt/meta/cookie-store/cookieStore_get_set_across_frames.https.html.ini deleted file mode 100644 index 6b3a3df32f0..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_get_set_across_frames.https.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[cookieStore_get_set_across_frames.https.html] - [cookieStore.get() sees cookieStore.set() in frame] - expected: FAIL - - [cookieStore.get() in frame sees cookieStore.set()] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_get_set_across_origins.sub.https.html.ini b/tests/wpt/meta/cookie-store/cookieStore_get_set_across_origins.sub.https.html.ini deleted file mode 100644 index e8364450a45..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_get_set_across_origins.sub.https.html.ini +++ /dev/null @@ -1,13 +0,0 @@ -[cookieStore_get_set_across_origins.sub.https.html] - expected: TIMEOUT - [cookieStore.get() sees cookieStore.set() in cross-origin frame] - expected: TIMEOUT - - [cookieStore.get() in cross-origin frame sees cookieStore.set()] - expected: NOTRUN - - [cookieStore.set() in cross-origin does not overwrite the __Host- cookie] - expected: NOTRUN - - [__Host- cookies set via cookieStore.set() in same-site domains don't overwrite each other] - expected: NOTRUN diff --git a/tests/wpt/meta/cookie-store/cookieStore_get_set_basic.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_get_set_basic.https.any.js.ini deleted file mode 100644 index 77d7ebfbbd7..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_get_set_basic.https.any.js.ini +++ /dev/null @@ -1,6 +0,0 @@ -[cookieStore_get_set_basic.https.any.serviceworker.html] - expected: ERROR - -[cookieStore_get_set_basic.https.any.html] - [cookieStore.get returns the cookie written by cookieStore.set] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_get_set_creation_url.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_get_set_creation_url.https.any.js.ini deleted file mode 100644 index 3fb61c77350..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_get_set_creation_url.https.any.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[cookieStore_get_set_creation_url.https.any.html] - [cookieStore.set and cookieStore.get use the creation url] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_get_set_creation_url.sub.https.html.ini b/tests/wpt/meta/cookie-store/cookieStore_get_set_creation_url.sub.https.html.ini deleted file mode 100644 index 2e3677530ff..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_get_set_creation_url.sub.https.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[cookieStore_get_set_creation_url.sub.https.html] - expected: TIMEOUT - [cookieStore.get() option url ignores fragments] - expected: TIMEOUT - - [cookieStore.get() option url + pushState()] - expected: NOTRUN diff --git a/tests/wpt/meta/cookie-store/cookieStore_get_set_ordering.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_get_set_ordering.https.any.js.ini deleted file mode 100644 index 7ce82c389a5..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_get_set_ordering.https.any.js.ini +++ /dev/null @@ -1,11 +0,0 @@ -[cookieStore_get_set_ordering.https.any.html] - expected: ERROR - [Set three simple origin session cookies sequentially and ensure they all end up in the cookie jar in order.] - expected: FAIL - - [Set three simple origin session cookies in undefined order using Promise.all and ensure they all end up in the cookie jar in any order. ] - expected: NOTRUN - - -[cookieStore_get_set_ordering.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/cookieStore_in_detached_frame.https.html.ini b/tests/wpt/meta/cookie-store/cookieStore_in_detached_frame.https.html.ini deleted file mode 100644 index cd983631753..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_in_detached_frame.https.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[cookieStore_in_detached_frame.https.html] - [cookieStore on DOMWindow of detached iframe] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_opaque_origin.https.html.ini b/tests/wpt/meta/cookie-store/cookieStore_opaque_origin.https.html.ini deleted file mode 100644 index bf5e231e8f8..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_opaque_origin.https.html.ini +++ /dev/null @@ -1,7 +0,0 @@ -[cookieStore_opaque_origin.https.html] - expected: TIMEOUT - [cookieStore in non-sandboxed iframe should not throw] - expected: FAIL - - [cookieStore in sandboxed iframe should throw SecurityError] - expected: TIMEOUT diff --git a/tests/wpt/meta/cookie-store/cookieStore_set_arguments.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_set_arguments.https.any.js.ini deleted file mode 100644 index ca45ed2b48c..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_set_arguments.https.any.js.ini +++ /dev/null @@ -1,167 +0,0 @@ -[cookieStore_set_arguments.https.any.html] - expected: ERROR - [cookieStore.set with positional name and value] - expected: FAIL - - [cookieStore.set with name and value in options] - expected: FAIL - - [cookieStore.set fails with empty name and empty value] - expected: FAIL - - [cookieStore.set with empty name and an '=' in value] - expected: FAIL - - [cookieStore.set with normal name and an '=' in value] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0000] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0001] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0002] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0003] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0004] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0005] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0006] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0007] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0008] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0010] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0011] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0012] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0013] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0014] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0015] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0016] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0017] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0018] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+0019] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+001A] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+001B] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+001C] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+001D] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+001E] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+001F] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+003B] - expected: FAIL - - [cookieStore.set checks if name or value contain invalid character U+007F] - expected: FAIL - - [cookieStore.set with expires set to a future Date] - expected: FAIL - - [cookieStore.set with expires set to a past Date] - expected: FAIL - - [cookieStore.set with expires set to a future timestamp] - expected: FAIL - - [cookieStore.set with expires set to a past timestamp] - expected: FAIL - - [cookieStore.set domain starts with "."] - expected: FAIL - - [cookieStore.set with domain that is not equal current host] - expected: FAIL - - [cookieStore.set with domain set to the current hostname] - expected: FAIL - - [cookieStore.set with domain set to a subdomain of the current hostname] - expected: FAIL - - [cookieStore.set with domain set to a non-domain-matching suffix of the current hostname] - expected: FAIL - - [cookieStore.set default domain is null and differs from current hostname] - expected: FAIL - - [cookieStore.set with path set to the current directory] - expected: FAIL - - [cookieStore.set with path set to a subdirectory of the current directory] - expected: FAIL - - [cookieStore.set default path is /] - expected: FAIL - - [cookieStore.set does not add / to path that does not end with /] - expected: FAIL - - [cookieStore.set can modify a cookie set by document.cookie if document is defined] - expected: FAIL - - [cookieStore.set with path that does not start with /] - expected: FAIL - - [cookieStore.set with get result] - expected: FAIL - - [cookieStore.set checks if the path is too long] - expected: FAIL - - [cookieStore.set checks if the domain is too long] - expected: FAIL - - [cookieStore.set with a __Host- prefix should not have a domain] - expected: FAIL - - [cookieStore.set with whitespace only name and value] - expected: FAIL - - [cookieStore.set with whitespace at begining or end] - expected: FAIL - - -[cookieStore_set_arguments.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/cookieStore_set_limit.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_set_limit.https.any.js.ini deleted file mode 100644 index c749bbdb94c..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_set_limit.https.any.js.ini +++ /dev/null @@ -1,15 +0,0 @@ -[cookieStore_set_limit.https.any.serviceworker.html] - expected: ERROR - -[cookieStore_set_limit.https.any.html] - [Set max-size cookie with largest possible name and value (4096 bytes)] - expected: FAIL - - [Set max-size value-less cookie] - expected: FAIL - - [Set max-size cookie with largest possible value (4095 bytes)] - expected: FAIL - - [Set max-size name-less cookie] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_special_names.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_special_names.https.any.js.ini deleted file mode 100644 index e5405151a23..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_special_names.https.any.js.ini +++ /dev/null @@ -1,114 +0,0 @@ -[cookieStore_special_names.https.any.serviceworker.html] - expected: ERROR - -[cookieStore_special_names.https.any.html] - [cookieStore.set with __Secure- name on secure origin] - expected: FAIL - - [cookieStore.set of expired __Secure- cookie name on secure origin] - expected: FAIL - - [cookieStore.delete with __Secure- name on secure origin] - expected: FAIL - - [cookieStore.set with __secure- name on secure origin] - expected: FAIL - - [cookieStore.set of expired __secure- cookie name on secure origin] - expected: FAIL - - [cookieStore.delete with __secure- name on secure origin] - expected: FAIL - - [cookieStore.set with __Host- name on secure origin] - expected: FAIL - - [cookieStore.set of expired __Host- cookie name on secure origin] - expected: FAIL - - [cookieStore.delete with __Host- name on secure origin] - expected: FAIL - - [cookieStore.set with __host- name on secure origin] - expected: FAIL - - [cookieStore.set of expired __host- cookie name on secure origin] - expected: FAIL - - [cookieStore.delete with __host- name on secure origin] - expected: FAIL - - [cookieStore.set with __Host- prefix and a domain option] - expected: FAIL - - [cookieStore.set with __Host- prefix a path option] - expected: FAIL - - [cookieStore.set with __host- prefix and a domain option] - expected: FAIL - - [cookieStore.set with __host- prefix a path option] - expected: FAIL - - [cookieStore.set with __HostHttp- prefix rejects] - expected: FAIL - - [cookieStore.set with __hosthttp- prefix rejects] - expected: FAIL - - [cookieStore.set with __Http- prefix rejects] - expected: FAIL - - [cookieStore.set with __http- prefix rejects] - expected: FAIL - - [cookieStore.set with malformed name.] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have __Host- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have __Secure- prefix] - expected: FAIL - - [cookieStore.set with __Http- prefix rejects] - expected: FAIL - - [cookieStore.set with \t__Http- prefix rejects] - expected: FAIL - - [cookieStore.set with __HostHttp- prefix rejects] - expected: FAIL - - [cookieStore.set with \t__HostHttp- prefix rejects] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have __Http- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have __HostHttp- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have __Host- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have \t__Host- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have __Secure- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have \t__Secure- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have __Http- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have \t__Http- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have __HostHttp- prefix] - expected: FAIL - - [cookieStore.set a nameless cookie cannot have \t__HostHttp- prefix] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/cookieStore_subscribe_arguments.https.any.js.ini b/tests/wpt/meta/cookie-store/cookieStore_subscribe_arguments.https.any.js.ini deleted file mode 100644 index d5264254d03..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_subscribe_arguments.https.any.js.ini +++ /dev/null @@ -1,16 +0,0 @@ -[cookieStore_subscribe_arguments.https.any.html] - [cookieStore.subscribe without url in option] - expected: FAIL - - [cookieStore.subscribe with invalid url path in option] - expected: FAIL - - [cookieStore.subscribe is idempotent] - expected: FAIL - - [CookieStore.unsubscribe is idempotent] - expected: FAIL - - -[cookieStore_subscribe_arguments.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/cookieStore_subscriptions_empty.https.window.js.ini b/tests/wpt/meta/cookie-store/cookieStore_subscriptions_empty.https.window.js.ini deleted file mode 100644 index 7e73a7c431c..00000000000 --- a/tests/wpt/meta/cookie-store/cookieStore_subscriptions_empty.https.window.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[cookieStore_subscriptions_empty.https.window.html] - [Newly registered and activated service worker has no subscriptions] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/encoding.https.any.js.ini b/tests/wpt/meta/cookie-store/encoding.https.any.js.ini deleted file mode 100644 index fe9ff433c1f..00000000000 --- a/tests/wpt/meta/cookie-store/encoding.https.any.js.ini +++ /dev/null @@ -1,9 +0,0 @@ -[encoding.https.any.serviceworker.html] - expected: ERROR - -[encoding.https.any.html] - [BOM not stripped from name] - expected: FAIL - - [BOM not stripped from value] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/httponly_cookies.https.window.js.ini b/tests/wpt/meta/cookie-store/httponly_cookies.https.window.js.ini deleted file mode 100644 index b7fe8f2fc06..00000000000 --- a/tests/wpt/meta/cookie-store/httponly_cookies.https.window.js.ini +++ /dev/null @@ -1,13 +0,0 @@ -[httponly_cookies.https.window.html] - expected: ERROR - [HttpOnly cookies are not observed] - expected: FAIL - - [HttpOnly cookies can not be set by document.cookie] - expected: FAIL - - [HttpOnly cookies can not be set by CookieStore] - expected: FAIL - - [HttpOnly cookies are not deleted/overwritten] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/idlharness.https.any.js.ini b/tests/wpt/meta/cookie-store/idlharness.https.any.js.ini deleted file mode 100644 index f441eb948af..00000000000 --- a/tests/wpt/meta/cookie-store/idlharness.https.any.js.ini +++ /dev/null @@ -1,113 +0,0 @@ -[idlharness.https.any.serviceworker.html] - expected: ERROR - -[idlharness.https.any.worker.html] - -[idlharness.https.any.sharedworker.html] - expected: ERROR - -[idlharness.https.any.html] - [idl_test setup] - expected: FAIL - - [CookieStore interface: existence and properties of interface object] - expected: FAIL - - [CookieStore interface object length] - expected: FAIL - - [CookieStore interface object name] - expected: FAIL - - [CookieStore interface: existence and properties of interface prototype object] - expected: FAIL - - [CookieStore interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [CookieStore interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - - [CookieStore interface: operation get(USVString)] - expected: FAIL - - [CookieStore interface: operation get(optional CookieStoreGetOptions)] - expected: FAIL - - [CookieStore interface: operation getAll(USVString)] - expected: FAIL - - [CookieStore interface: operation getAll(optional CookieStoreGetOptions)] - expected: FAIL - - [CookieStore interface: operation set(USVString, USVString)] - expected: FAIL - - [CookieStore interface: operation set(CookieInit)] - expected: FAIL - - [CookieStore interface: operation delete(USVString)] - expected: FAIL - - [CookieStore interface: operation delete(CookieStoreDeleteOptions)] - expected: FAIL - - [CookieStore interface: attribute onchange] - expected: FAIL - - [CookieStoreManager interface: existence and properties of interface object] - expected: FAIL - - [CookieStoreManager interface object length] - expected: FAIL - - [CookieStoreManager interface object name] - expected: FAIL - - [CookieStoreManager interface: existence and properties of interface prototype object] - expected: FAIL - - [CookieStoreManager interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [CookieStoreManager interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - - [CookieStoreManager interface: operation subscribe(sequence)] - expected: FAIL - - [CookieStoreManager interface: operation getSubscriptions()] - expected: FAIL - - [CookieStoreManager interface: operation unsubscribe(sequence)] - expected: FAIL - - [CookieChangeEvent interface: existence and properties of interface object] - expected: FAIL - - [CookieChangeEvent interface object length] - expected: FAIL - - [CookieChangeEvent interface object name] - expected: FAIL - - [CookieChangeEvent interface: existence and properties of interface prototype object] - expected: FAIL - - [CookieChangeEvent interface: existence and properties of interface prototype object's "constructor" property] - expected: FAIL - - [CookieChangeEvent interface: existence and properties of interface prototype object's @@unscopables property] - expected: FAIL - - [CookieChangeEvent interface: attribute changed] - expected: FAIL - - [CookieChangeEvent interface: attribute deleted] - expected: FAIL - - [ServiceWorkerRegistration interface: attribute cookies] - expected: FAIL - - [Window interface: attribute cookieStore] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/serviceworker_cookieStore_cross_origin.https.sub.html.ini b/tests/wpt/meta/cookie-store/serviceworker_cookieStore_cross_origin.https.sub.html.ini deleted file mode 100644 index 9ac8d158bfb..00000000000 --- a/tests/wpt/meta/cookie-store/serviceworker_cookieStore_cross_origin.https.sub.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[serviceworker_cookieStore_cross_origin.https.sub.html] - [cookieStore.get() in ServiceWorker reads cookie set in cross-origin frame] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/serviceworker_cookieStore_subscriptions_reset.https.html.ini b/tests/wpt/meta/cookie-store/serviceworker_cookieStore_subscriptions_reset.https.html.ini deleted file mode 100644 index e2c35f09513..00000000000 --- a/tests/wpt/meta/cookie-store/serviceworker_cookieStore_subscriptions_reset.https.html.ini +++ /dev/null @@ -1,6 +0,0 @@ -[serviceworker_cookieStore_subscriptions_reset.https.html] - [cookiechange subscriptions reset across service worker unregistrations] - expected: FAIL - - [cookiechange subscriptions persist across service worker updates] - expected: FAIL diff --git a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_already_expired.https.any.js.ini b/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_already_expired.https.any.js.ini deleted file mode 100644 index cf0355dae61..00000000000 --- a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_already_expired.https.any.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[serviceworker_cookiechange_eventhandler_already_expired.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.js.ini b/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.js.ini deleted file mode 100644 index c5033149390..00000000000 --- a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[serviceworker_cookiechange_eventhandler_mismatched_subscription.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.js.ini b/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.js.ini deleted file mode 100644 index f13cfe7c90d..00000000000 --- a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[serviceworker_cookiechange_eventhandler_multiple_subscriptions.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_no_change.https.any.js.ini b/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_no_change.https.any.js.ini deleted file mode 100644 index c62bafcd35a..00000000000 --- a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_no_change.https.any.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[serviceworker_cookiechange_eventhandler_no_change.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.js.ini b/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.js.ini deleted file mode 100644 index cf340def3e4..00000000000 --- a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[serviceworker_cookiechange_eventhandler_overlapping_subscriptions.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_single_subscription.https.any.js.ini b/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_single_subscription.https.any.js.ini deleted file mode 100644 index b711d29eb60..00000000000 --- a/tests/wpt/meta/cookie-store/serviceworker_cookiechange_eventhandler_single_subscription.https.any.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[serviceworker_cookiechange_eventhandler_single_subscription.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/cookie-store/serviceworker_oncookiechange_eventhandler_single_subscription.https.any.js.ini b/tests/wpt/meta/cookie-store/serviceworker_oncookiechange_eventhandler_single_subscription.https.any.js.ini deleted file mode 100644 index b9154836f1b..00000000000 --- a/tests/wpt/meta/cookie-store/serviceworker_oncookiechange_eventhandler_single_subscription.https.any.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[serviceworker_oncookiechange_eventhandler_single_subscription.https.any.serviceworker.html] - expected: ERROR diff --git a/tests/wpt/meta/css/css-color/parsing/opacity-valid.html.ini b/tests/wpt/meta/css/css-color/parsing/opacity-valid.html.ini new file mode 100644 index 00000000000..637081e72d0 --- /dev/null +++ b/tests/wpt/meta/css/css-color/parsing/opacity-valid.html.ini @@ -0,0 +1,33 @@ +[opacity-valid.html] + [e.style['opacity'\] = "calc(-50% - 50%)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "calc(25% * 2)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "calc(100% + 100%)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "clamp(50%, 0%, 70%)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "clamp(50%, 80%, 70%)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "clamp(50%, 60%, 70%)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "min(50%, 0%)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "min(0%, 50%)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "max(50%, 0%)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "max(0%, 50%)" should set the property value] + expected: FAIL + + [e.style['opacity'\] = "min(-40%, 50%)" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-details.html.ini b/tests/wpt/meta/css/css-content/content-none-details.html.ini deleted file mode 100644 index da7d72fab72..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-details.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-details.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-fieldset.html.ini b/tests/wpt/meta/css/css-content/content-none-fieldset.html.ini deleted file mode 100644 index 31fcd007f73..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-fieldset.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-fieldset.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-math.html.ini b/tests/wpt/meta/css/css-content/content-none-math.html.ini deleted file mode 100644 index 4981841e75a..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-math.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-math.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-option.html.ini b/tests/wpt/meta/css/css-content/content-none-option.html.ini deleted file mode 100644 index 01e09de35f9..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-option.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-option.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-root-block.html.ini b/tests/wpt/meta/css/css-content/content-none-root-block.html.ini deleted file mode 100644 index 19ae7c8eedf..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-root-block.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-root-block.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-root-columns.html.ini b/tests/wpt/meta/css/css-content/content-none-root-columns.html.ini deleted file mode 100644 index 5c5f5269337..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-root-columns.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-root-columns.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-root-flex.html.ini b/tests/wpt/meta/css/css-content/content-none-root-flex.html.ini deleted file mode 100644 index b88749220c2..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-root-flex.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-root-flex.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-root-grid.html.ini b/tests/wpt/meta/css/css-content/content-none-root-grid.html.ini deleted file mode 100644 index 2408b4b9b01..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-root-grid.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-root-grid.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-root-ruby.html.ini b/tests/wpt/meta/css/css-content/content-none-root-ruby.html.ini deleted file mode 100644 index ba35ea1ca7b..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-root-ruby.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-root-ruby.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-root-table.html.ini b/tests/wpt/meta/css/css-content/content-none-root-table.html.ini deleted file mode 100644 index 1fbbe99ad66..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-root-table.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-root-table.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-select-1.html.ini b/tests/wpt/meta/css/css-content/content-none-select-1.html.ini deleted file mode 100644 index 544eeccfe6a..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-select-1.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-select-1.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-select-2.html.ini b/tests/wpt/meta/css/css-content/content-none-select-2.html.ini deleted file mode 100644 index c649634ad2a..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-select-2.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-select-2.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-span-dynamic.html.ini b/tests/wpt/meta/css/css-content/content-none-span-dynamic.html.ini deleted file mode 100644 index 36d34882e06..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-span-dynamic.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-span-dynamic.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-span.html.ini b/tests/wpt/meta/css/css-content/content-none-span.html.ini deleted file mode 100644 index 012460a05e6..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-span.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-span.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-content/content-none-table.html.ini b/tests/wpt/meta/css/css-content/content-none-table.html.ini deleted file mode 100644 index 340e5433d70..00000000000 --- a/tests/wpt/meta/css/css-content/content-none-table.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[content-none-table.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-048.html.ini b/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-048.html.ini new file mode 100644 index 00000000000..80569be1ac2 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-048.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-048.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-049.html.ini b/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-049.html.ini new file mode 100644 index 00000000000..04e83f4b202 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-049.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-049.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-050.html.ini b/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-050.html.ini new file mode 100644 index 00000000000..26ed16aca32 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-050.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-050.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-051.html.ini b/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-051.html.ini new file mode 100644 index 00000000000..e6753e8d005 --- /dev/null +++ b/tests/wpt/meta/css/css-gaps/grid/grid-gap-decorations-051.html.ini @@ -0,0 +1,2 @@ +[grid-gap-decorations-051.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding.html.ini b/tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding.html.ini new file mode 100644 index 00000000000..66da38e4cf0 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding.html.ini @@ -0,0 +1,2 @@ +[grid-abspos-staticpos-align-self-center-large-border-padding.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-self-center.html.ini b/tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-self-center.html.ini new file mode 100644 index 00000000000..9c2b193c751 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/abspos/grid-abspos-staticpos-align-self-center.html.ini @@ -0,0 +1,2 @@ +[grid-abspos-staticpos-align-self-center.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/grid-items/grid-size-with-orthogonal-child-001.html.ini b/tests/wpt/meta/css/css-grid/grid-items/grid-size-with-orthogonal-child-001.html.ini new file mode 100644 index 00000000000..d716061eda5 --- /dev/null +++ b/tests/wpt/meta/css/css-grid/grid-items/grid-size-with-orthogonal-child-001.html.ini @@ -0,0 +1,2 @@ +[grid-size-with-orthogonal-child-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-grid/grid-items/grid-size-with-orthogonal-child-002.html.ini b/tests/wpt/meta/css/css-grid/grid-items/grid-size-with-orthogonal-child-002.html.ini new file mode 100644 index 00000000000..ef4b70f6c2b --- /dev/null +++ b/tests/wpt/meta/css/css-grid/grid-items/grid-size-with-orthogonal-child-002.html.ini @@ -0,0 +1,2 @@ +[grid-size-with-orthogonal-child-002.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-001.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-001.html.ini new file mode 100644 index 00000000000..4d1e16d3845 --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-001.html.ini @@ -0,0 +1,2 @@ +[block-ellipsis-repaint-001.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-002.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-002.html.ini new file mode 100644 index 00000000000..77c5f5725df --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-002.html.ini @@ -0,0 +1,2 @@ +[block-ellipsis-repaint-002.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-003.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-003.html.ini new file mode 100644 index 00000000000..bc767c1b6c2 --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-003.html.ini @@ -0,0 +1,2 @@ +[block-ellipsis-repaint-003.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-004.html.ini b/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-004.html.ini new file mode 100644 index 00000000000..7a48270bd16 --- /dev/null +++ b/tests/wpt/meta/css/css-overflow/line-clamp/block-ellipsis-repaint-004.html.ini @@ -0,0 +1,2 @@ +[block-ellipsis-repaint-004.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-text-decor/parsing/text-decoration-computed.html.ini b/tests/wpt/meta/css/css-text-decor/parsing/text-decoration-computed.html.ini index 544d7edf011..65dd8fd44ac 100644 --- a/tests/wpt/meta/css/css-text-decor/parsing/text-decoration-computed.html.ini +++ b/tests/wpt/meta/css/css-text-decor/parsing/text-decoration-computed.html.ini @@ -10,3 +10,18 @@ [Property text-decoration value 'from-font'] expected: FAIL + + [Property text-decoration value 'none'] + expected: FAIL + + [Property text-decoration value 'line-through'] + expected: FAIL + + [Property text-decoration value 'solid'] + expected: FAIL + + [Property text-decoration value 'currentcolor'] + expected: FAIL + + [Property text-decoration value 'double overline underline'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/if-conditionals.html.ini b/tests/wpt/meta/css/css-values/if-conditionals.html.ini index fa4885df7b1..6feababf510 100644 --- a/tests/wpt/meta/css/css-values/if-conditionals.html.ini +++ b/tests/wpt/meta/css/css-values/if-conditionals.html.ini @@ -577,3 +577,18 @@ [CSS Values and Units Test: CSS inline if() function 192] expected: FAIL + + [CSS Values and Units Test: CSS inline if() function 193] + expected: FAIL + + [CSS Values and Units Test: CSS inline if() function 194] + expected: FAIL + + [CSS Values and Units Test: CSS inline if() function 195] + expected: FAIL + + [CSS Values and Units Test: CSS inline if() function 196] + expected: FAIL + + [CSS Values and Units Test: CSS inline if() function 197] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-cross-origin-anonymous.sub.html.ini b/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-cross-origin-anonymous.sub.html.ini new file mode 100644 index 00000000000..c18ee6e8225 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-cross-origin-anonymous.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-cross-origin-anonymous.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-cross-origin-use-credentials.sub.html.ini b/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-cross-origin-use-credentials.sub.html.ini new file mode 100644 index 00000000000..366239f9e92 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-cross-origin-use-credentials.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-cross-origin-use-credentials.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-crossorigin-anonymous.sub.html.ini b/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-crossorigin-anonymous.sub.html.ini deleted file mode 100644 index b61e7e43793..00000000000 --- a/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-crossorigin-anonymous.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-crossorigin-anonymous.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-crossorigin-use-credentials.sub.html.ini b/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-crossorigin-use-credentials.sub.html.ini deleted file mode 100644 index 0da9d8aefde..00000000000 --- a/tests/wpt/meta/css/css-values/urls/cross-origin/url-image-crossorigin-use-credentials.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-crossorigin-use-credentials.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-cross-origin.sub.html.ini new file mode 100644 index 00000000000..2cc1cd3f959 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-cross-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-cross-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-same-origin.sub.html.ini new file mode 100644 index 00000000000..73cb05aefe0 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-same-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-same-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-cross-origin.sub.html.ini deleted file mode 100644 index 3b9d69761e7..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-cross-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-cross-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-same-origin.sub.html.ini deleted file mode 100644 index 26917cf20d2..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-same-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-same-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-cross-origin.sub.html.ini new file mode 100644 index 00000000000..2cc1cd3f959 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-cross-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-cross-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-same-origin.sub.html.ini new file mode 100644 index 00000000000..73cb05aefe0 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-same-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-same-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-cross-origin.sub.html.ini deleted file mode 100644 index 3b9d69761e7..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-cross-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-cross-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-same-origin.sub.html.ini deleted file mode 100644 index 26917cf20d2..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-same-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-same-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html.ini new file mode 100644 index 00000000000..2cc1cd3f959 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-cross-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html.ini new file mode 100644 index 00000000000..73cb05aefe0 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-same-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html.ini deleted file mode 100644 index 3b9d69761e7..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-cross-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html.ini deleted file mode 100644 index 26917cf20d2..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-same-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-cross-origin.sub.html.ini new file mode 100644 index 00000000000..2cc1cd3f959 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-cross-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-cross-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-same-origin.sub.html.ini new file mode 100644 index 00000000000..73cb05aefe0 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-same-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-same-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-cross-origin.sub.html.ini deleted file mode 100644 index 3b9d69761e7..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-cross-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-cross-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-same-origin.sub.html.ini deleted file mode 100644 index 26917cf20d2..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-same-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-same-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-cross-origin.sub.html.ini new file mode 100644 index 00000000000..2cc1cd3f959 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-cross-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-cross-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-same-origin.sub.html.ini new file mode 100644 index 00000000000..73cb05aefe0 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-same-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-same-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-cross-origin.sub.html.ini deleted file mode 100644 index 3b9d69761e7..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-cross-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-cross-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-same-origin.sub.html.ini deleted file mode 100644 index 26917cf20d2..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-same-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-same-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html.ini new file mode 100644 index 00000000000..2cc1cd3f959 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-cross-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html.ini new file mode 100644 index 00000000000..73cb05aefe0 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-same-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html.ini deleted file mode 100644 index 3b9d69761e7..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-cross-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html.ini deleted file mode 100644 index 26917cf20d2..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-same-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-cross-origin.sub.html.ini new file mode 100644 index 00000000000..2cc1cd3f959 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-cross-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-cross-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-same-origin.sub.html.ini new file mode 100644 index 00000000000..73cb05aefe0 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-same-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-same-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-cross-origin.sub.html.ini deleted file mode 100644 index 3b9d69761e7..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-cross-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-cross-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-same-origin.sub.html.ini deleted file mode 100644 index 26917cf20d2..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-same-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-same-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-cross-origin.sub.html.ini new file mode 100644 index 00000000000..2cc1cd3f959 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-cross-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-cross-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-same-origin.sub.html.ini new file mode 100644 index 00000000000..73cb05aefe0 --- /dev/null +++ b/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-same-origin.sub.html.ini @@ -0,0 +1,2 @@ +[url-image-referrer-policy-same-origin.sub.html] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-cross-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-cross-origin.sub.html.ini deleted file mode 100644 index 3b9d69761e7..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-cross-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-cross-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-same-origin.sub.html.ini b/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-same-origin.sub.html.ini deleted file mode 100644 index 26917cf20d2..00000000000 --- a/tests/wpt/meta/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-same-origin.sub.html.ini +++ /dev/null @@ -1,2 +0,0 @@ -[url-image-referrerpolicy-same-origin.sub.html] - expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/url-request-modifiers-computed.sub.html.ini b/tests/wpt/meta/css/css-values/urls/url-request-modifiers-computed.sub.html.ini index 74e74468e0d..0321b6e04f1 100644 --- a/tests/wpt/meta/css/css-values/urls/url-request-modifiers-computed.sub.html.ini +++ b/tests/wpt/meta/css/css-values/urls/url-request-modifiers-computed.sub.html.ini @@ -64,3 +64,63 @@ [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrerpolicy(no-referrer) integrity("sha384-foobar") crossorigin(anonymous))'] expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" cross-origin(anonymous))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" cross-origin(use-credentials))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(no-referrer))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(no-referrer-when-downgrade))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(same-origin))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(origin))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(strict-origin))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(origin-when-cross-origin))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(strict-origin-when-cross-origin))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(unsafe-url))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar"))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" integrity("sha384-foobar") cross-origin(anonymous))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar"))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" cross-origin(anonymous) referrer-policy(no-referrer))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer) cross-origin(anonymous))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous) integrity("sha384-foobar"))'] + expected: FAIL + + [Property background-image value 'url("http://web-platform.test:8000/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar") cross-origin(anonymous))'] + expected: FAIL diff --git a/tests/wpt/meta/css/css-values/urls/url-request-modifiers-serialize.sub.html.ini b/tests/wpt/meta/css/css-values/urls/url-request-modifiers-serialize.sub.html.ini index 836bcf624e6..8675e060578 100644 --- a/tests/wpt/meta/css/css-values/urls/url-request-modifiers-serialize.sub.html.ini +++ b/tests/wpt/meta/css/css-values/urls/url-request-modifiers-serialize.sub.html.ini @@ -64,3 +64,63 @@ [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrerpolicy(no-referrer) integrity(\\"sha384-foobar\\") crossorigin(anonymous))" should set the property value] expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" cross-origin(anonymous))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" cross-origin(use-credentials))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(no-referrer))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(no-referrer-when-downgrade))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(same-origin))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(origin))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(strict-origin))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(origin-when-cross-origin))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(strict-origin-when-cross-origin))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(unsafe-url))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" cross-origin(anonymous) integrity(\\"sha384-foobar\\"))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" integrity(\\"sha384-foobar\\") cross-origin(anonymous))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" integrity(\\"sha384-foobar\\") referrer-policy(no-referrer))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(no-referrer) integrity(\\"sha384-foobar\\"))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" cross-origin(anonymous) referrer-policy(no-referrer))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(no-referrer) cross-origin(anonymous))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" cross-origin(anonymous) integrity(\\"sha384-foobar\\") referrer-policy(no-referrer))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" integrity(\\"sha384-foobar\\") referrer-policy(no-referrer) cross-origin(anonymous))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(no-referrer) cross-origin(anonymous) integrity(\\"sha384-foobar\\"))" should set the property value] + expected: FAIL + + [e.style['background-image'\] = "url(\\"http://web-platform.test:8000/css/support/1x1-green.png\\" referrer-policy(no-referrer) integrity(\\"sha384-foobar\\") cross-origin(anonymous))" should set the property value] + expected: FAIL diff --git a/tests/wpt/meta/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/meta/css/cssom-view/elementsFromPoint-iframes.html.ini index 3e7b0a9bc9c..93075e8be5e 100644 --- a/tests/wpt/meta/css/cssom-view/elementsFromPoint-iframes.html.ini +++ b/tests/wpt/meta/css/cssom-view/elementsFromPoint-iframes.html.ini @@ -1,3 +1,6 @@ [elementsFromPoint-iframes.html] [elementsFromPoint on inner documents] expected: FAIL + + [elementsFromPoint on the root document for points in iframe elements] + expected: FAIL diff --git a/tests/wpt/meta/css/cssom-view/offsetParent-fixed.html.ini b/tests/wpt/meta/css/cssom-view/offsetParent-fixed.html.ini new file mode 100644 index 00000000000..5692f44129a --- /dev/null +++ b/tests/wpt/meta/css/cssom-view/offsetParent-fixed.html.ini @@ -0,0 +1,3 @@ +[offsetParent-fixed.html] + [If the containing block for a fixed positioned element is the nearest ancestor box, the offsetParent should be the nearest ancestor box.] + expected: FAIL diff --git a/tests/wpt/meta/css/mediaqueries/at-custom-media-cssom.html.ini b/tests/wpt/meta/css/mediaqueries/at-custom-media-cssom.html.ini new file mode 100644 index 00000000000..bbed25782be --- /dev/null +++ b/tests/wpt/meta/css/mediaqueries/at-custom-media-cssom.html.ini @@ -0,0 +1,30 @@ +[at-custom-media-cssom.html] + [CSSCustomMediaRule true] + expected: FAIL + + [CSSCustomMediaRule false] + expected: FAIL + + [CSSCustomMediaRule empty] + expected: FAIL + + [CSSCustomMediaRule cycle] + expected: FAIL + + [CSSCustomMediaRule simple] + expected: FAIL + + [CSSCustomMediaRule multiple media queries] + expected: FAIL + + [CSSCustomMediaRule change mediaText] + expected: FAIL + + [CSSCustomMediaRule appendMedium] + expected: FAIL + + [CSSCustomMediaRule deleteMedium] + expected: FAIL + + [CSSCustomMediaRule item] + expected: FAIL diff --git a/tests/wpt/meta/fetch/local-network-access/iframe.tentative.https.window.js.ini b/tests/wpt/meta/fetch/local-network-access/iframe.tentative.https.window.js.ini new file mode 100644 index 00000000000..2bcc6da9fe0 --- /dev/null +++ b/tests/wpt/meta/fetch/local-network-access/iframe.tentative.https.window.js.ini @@ -0,0 +1,57 @@ +[iframe.tentative.https.window.html?include=from-public] + [public to loopback: permission denied.] + expected: FAIL + + [public to loopback: success.] + expected: FAIL + + [public to local: permission denied.] + expected: FAIL + + [public to local: success.] + expected: FAIL + + [public to public: no permission required.] + expected: FAIL + + +[iframe.tentative.https.window.html?include=from-local] + [local to loopback: no permission required.] + expected: FAIL + + [local to local: no permission required.] + expected: FAIL + + [local to public: no permission required.] + expected: FAIL + + +[iframe.tentative.https.window.html?include=from-loopback] + [loopback to loopback: no permission required.] + expected: FAIL + + [loopback to local: no permission required.] + expected: FAIL + + [loopback to public: no permission required.] + expected: FAIL + + +[iframe.tentative.https.window.html?include=from-treat-as-public] + [treat-as-public-address to loopback: permission denied.] + expected: FAIL + + [treat-as-public-address to loopback: success.] + expected: FAIL + + [treat-as-public-address to local (same-origin): no permission required.] + expected: FAIL + + [treat-as-public-address to local: permission denied.] + expected: FAIL + + [treat-as-public-address to local: success.] + expected: FAIL + + [treat-as-public-address to public: no permission required.] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/008.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/008.html.ini deleted file mode 100644 index c253f779d78..00000000000 --- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/008.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[008.html] - [Link with onclick form submit to javascript url and href navigation ] - expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini index 5aef7ce66ce..324db3d9b35 100644 --- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini +++ b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini @@ -10,6 +10,3 @@ [load event does not fire on window.open('about:blank?foo')] expected: FAIL - - [load event does not fire on window.open('about:blank')] - expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-id-top.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-id-top.html.ini new file mode 100644 index 00000000000..6fa3f173512 --- /dev/null +++ b/tests/wpt/meta/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-id-top.html.ini @@ -0,0 +1,3 @@ +[scroll-to-id-top.html] + [Fragment Navigation: TOP is a valid element id, which overrides navigating to top of the document] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html.ini b/tests/wpt/meta/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html.ini new file mode 100644 index 00000000000..6e8c7d20d83 --- /dev/null +++ b/tests/wpt/meta/html/browsers/browsing-the-web/scroll-to-fragid/scroll-to-top.html.ini @@ -0,0 +1,3 @@ +[scroll-to-top.html] + [Fragment Navigation: When fragid is TOP scroll to the top of the document] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/history/the-history-interface/001.html.ini b/tests/wpt/meta/html/browsers/history/the-history-interface/001.html.ini index f27b06e963a..b0bdba7f308 100644 --- a/tests/wpt/meta/html/browsers/history/the-history-interface/001.html.ini +++ b/tests/wpt/meta/html/browsers/history/the-history-interface/001.html.ini @@ -1,4 +1,2 @@ [001.html] expected: TIMEOUT - [traversing history must also traverse hash changes] - expected: FAIL diff --git a/tests/wpt/meta/html/browsers/origin/tentative/api/idlharness.any.js.ini b/tests/wpt/meta/html/browsers/origin/tentative/api/idlharness.any.js.ini new file mode 100644 index 00000000000..b46d6099278 --- /dev/null +++ b/tests/wpt/meta/html/browsers/origin/tentative/api/idlharness.any.js.ini @@ -0,0 +1,152 @@ +[idlharness.any.worker.html] + [Origin interface: existence and properties of interface object] + expected: FAIL + + [Origin interface object length] + expected: FAIL + + [Origin interface object name] + expected: FAIL + + [Origin interface: existence and properties of interface prototype object] + expected: FAIL + + [Origin interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [Origin interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [Origin interface: operation parse(USVString)] + expected: FAIL + + [Origin interface: operation fromURL(USVString)] + expected: FAIL + + [Origin interface: operation toJSON()] + expected: FAIL + + [Origin interface: attribute opaque] + expected: FAIL + + [Origin interface: operation isSameOrigin(Origin)] + expected: FAIL + + [Origin interface: operation isSameSite(Origin)] + expected: FAIL + + [Origin must be primary interface of new Origin()] + expected: FAIL + + [Stringification of new Origin()] + expected: FAIL + + [Origin interface: new Origin() must inherit property "parse(USVString)" with the proper type] + expected: FAIL + + [Origin interface: calling parse(USVString) on new Origin() with too few arguments must throw TypeError] + expected: FAIL + + [Origin interface: new Origin() must inherit property "fromURL(USVString)" with the proper type] + expected: FAIL + + [Origin interface: calling fromURL(USVString) on new Origin() with too few arguments must throw TypeError] + expected: FAIL + + [Origin interface: new Origin() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Origin interface: toJSON operation on new Origin()] + expected: FAIL + + [Origin interface: new Origin() must inherit property "opaque" with the proper type] + expected: FAIL + + [Origin interface: new Origin() must inherit property "isSameOrigin(Origin)" with the proper type] + expected: FAIL + + [Origin interface: calling isSameOrigin(Origin) on new Origin() with too few arguments must throw TypeError] + expected: FAIL + + [Origin interface: new Origin() must inherit property "isSameSite(Origin)" with the proper type] + expected: FAIL + + [Origin interface: calling isSameSite(Origin) on new Origin() with too few arguments must throw TypeError] + expected: FAIL + + +[idlharness.any.html] + [Origin interface: existence and properties of interface object] + expected: FAIL + + [Origin interface object length] + expected: FAIL + + [Origin interface object name] + expected: FAIL + + [Origin interface: existence and properties of interface prototype object] + expected: FAIL + + [Origin interface: existence and properties of interface prototype object's "constructor" property] + expected: FAIL + + [Origin interface: existence and properties of interface prototype object's @@unscopables property] + expected: FAIL + + [Origin interface: operation parse(USVString)] + expected: FAIL + + [Origin interface: operation fromURL(USVString)] + expected: FAIL + + [Origin interface: operation toJSON()] + expected: FAIL + + [Origin interface: attribute opaque] + expected: FAIL + + [Origin interface: operation isSameOrigin(Origin)] + expected: FAIL + + [Origin interface: operation isSameSite(Origin)] + expected: FAIL + + [Origin must be primary interface of new Origin()] + expected: FAIL + + [Stringification of new Origin()] + expected: FAIL + + [Origin interface: new Origin() must inherit property "parse(USVString)" with the proper type] + expected: FAIL + + [Origin interface: calling parse(USVString) on new Origin() with too few arguments must throw TypeError] + expected: FAIL + + [Origin interface: new Origin() must inherit property "fromURL(USVString)" with the proper type] + expected: FAIL + + [Origin interface: calling fromURL(USVString) on new Origin() with too few arguments must throw TypeError] + expected: FAIL + + [Origin interface: new Origin() must inherit property "toJSON()" with the proper type] + expected: FAIL + + [Origin interface: toJSON operation on new Origin()] + expected: FAIL + + [Origin interface: new Origin() must inherit property "opaque" with the proper type] + expected: FAIL + + [Origin interface: new Origin() must inherit property "isSameOrigin(Origin)" with the proper type] + expected: FAIL + + [Origin interface: calling isSameOrigin(Origin) on new Origin() with too few arguments must throw TypeError] + expected: FAIL + + [Origin interface: new Origin() must inherit property "isSameSite(Origin)" with the proper type] + expected: FAIL + + [Origin interface: calling isSameSite(Origin) on new Origin() with too few arguments must throw TypeError] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/origin/tentative/api/origin-comparison.any.js.ini b/tests/wpt/meta/html/browsers/origin/tentative/api/origin-comparison.any.js.ini new file mode 100644 index 00000000000..b6ae00b1f1b --- /dev/null +++ b/tests/wpt/meta/html/browsers/origin/tentative/api/origin-comparison.any.js.ini @@ -0,0 +1,14 @@ +[origin-comparison.any.worker.html] + [Comparison of opaque origins.] + expected: FAIL + + [Comparison of tuple origins.] + expected: FAIL + + +[origin-comparison.any.html] + [Comparison of opaque origins.] + expected: FAIL + + [Comparison of tuple origins.] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/origin/tentative/api/origin-fromURL.any.js.ini b/tests/wpt/meta/html/browsers/origin/tentative/api/origin-fromURL.any.js.ini new file mode 100644 index 00000000000..ce2f492e324 --- /dev/null +++ b/tests/wpt/meta/html/browsers/origin/tentative/api/origin-fromURL.any.js.ini @@ -0,0 +1,206 @@ +[origin-fromURL.any.html] + [Origin.fromURL for opaque URL as string 'about:blank'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'about:blank'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'data:text/plain,opaque'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'data:text/plain,opaque'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'weird-protocol:whatever'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'weird-protocol:whatever'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'weird-hierarchical-protocol://host/path?etc'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'weird-hierarchical-protocol://host/path?etc'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'blob:weird-protocol:whatever'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'blob:weird-protocol:whatever'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'blob:weird-hierarchical-protocol://host/path?etc'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'blob:weird-hierarchical-protocol://host/path?etc'.] + expected: FAIL + + [Origin.fromURL returns null for ''.] + expected: FAIL + + [Origin.fromURL returns null for 'invalid'.] + expected: FAIL + + [Origin constructed from 'http://site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://site.example:123' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'http://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://sub.site.example:123' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://xn--mlauted-m2a.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'ftp://ftp.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'ws://ws.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'wss://wss.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://trailing.slash/' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://user:pass@site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://has.a.port:1234/and/path' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://ümlauted.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'file:///path/to/a/file.txt' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'blob:https://example.com/some-guid' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'ftp://example.com/' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://example.com/path?query#fragment' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://127.0.0.1/' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://[::1\]/' is a tuple origin.] + expected: FAIL + + +[origin-fromURL.any.worker.html] + [Origin.fromURL for opaque URL as string 'about:blank'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'about:blank'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'data:text/plain,opaque'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'data:text/plain,opaque'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'weird-protocol:whatever'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'weird-protocol:whatever'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'weird-hierarchical-protocol://host/path?etc'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'weird-hierarchical-protocol://host/path?etc'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'blob:weird-protocol:whatever'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'blob:weird-protocol:whatever'.] + expected: FAIL + + [Origin.fromURL for opaque URL as string 'blob:weird-hierarchical-protocol://host/path?etc'.] + expected: FAIL + + [Origin.fromURL for opaque URL as URL 'blob:weird-hierarchical-protocol://host/path?etc'.] + expected: FAIL + + [Origin.fromURL returns null for ''.] + expected: FAIL + + [Origin.fromURL returns null for 'invalid'.] + expected: FAIL + + [Origin constructed from 'http://site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://site.example:123' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'http://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://sub.site.example:123' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://xn--mlauted-m2a.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'ftp://ftp.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'ws://ws.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'wss://wss.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://trailing.slash/' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://user:pass@site.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://has.a.port:1234/and/path' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://ümlauted.example' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'file:///path/to/a/file.txt' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'blob:https://example.com/some-guid' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'ftp://example.com/' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://example.com/path?query#fragment' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://127.0.0.1/' is a tuple origin.] + expected: FAIL + + [Origin constructed from 'https://[::1\]/' is a tuple origin.] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/origin/tentative/api/origin.any.js.ini b/tests/wpt/meta/html/browsers/origin/tentative/api/origin.any.js.ini new file mode 100644 index 00000000000..63fb758859b --- /dev/null +++ b/tests/wpt/meta/html/browsers/origin/tentative/api/origin.any.js.ini @@ -0,0 +1,320 @@ +[origin.any.html] + [Default-constructed Origin is opaque.] + expected: FAIL + + [Origin constructed with 'null' is opaque.] + expected: FAIL + + [Origin parsed from 'null' is opaque.] + expected: FAIL + + [Origin constructor throws for ''.] + expected: FAIL + + [Origin.parse returns null for ''.] + expected: FAIL + + [Origin constructor throws for 'invalid'.] + expected: FAIL + + [Origin.parse returns null for 'invalid'.] + expected: FAIL + + [Origin constructor throws for 'about:blank'.] + expected: FAIL + + [Origin.parse returns null for 'about:blank'.] + expected: FAIL + + [Origin constructor throws for 'https://trailing.slash/'.] + expected: FAIL + + [Origin.parse returns null for 'https://trailing.slash/'.] + expected: FAIL + + [Origin constructor throws for 'https://user:pass@site.example'.] + expected: FAIL + + [Origin.parse returns null for 'https://user:pass@site.example'.] + expected: FAIL + + [Origin constructor throws for 'https://has.a.port:1234/and/path'.] + expected: FAIL + + [Origin.parse returns null for 'https://has.a.port:1234/and/path'.] + expected: FAIL + + [Origin constructor throws for 'https://ümlauted.example'.] + expected: FAIL + + [Origin.parse returns null for 'https://ümlauted.example'.] + expected: FAIL + + [Origin constructor throws for 'https://has.a.fragment/#frag'.] + expected: FAIL + + [Origin.parse returns null for 'https://has.a.fragment/#frag'.] + expected: FAIL + + [Origin constructor throws for 'https://invalid.port:123456789'.] + expected: FAIL + + [Origin.parse returns null for 'https://invalid.port:123456789'.] + expected: FAIL + + [Origin constructor throws for 'blob:https://blob.example/guid-goes-here'.] + expected: FAIL + + [Origin.parse returns null for 'blob:https://blob.example/guid-goes-here'.] + expected: FAIL + + [Origin constructed from 'http://site.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'http://site.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'http://site.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://site.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://site.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://site.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://site.example:123' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://site.example:123' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://site.example:123' are equivalent.] + expected: FAIL + + [Origin constructed from 'http://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'http://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'http://sub.site.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://sub.site.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://sub.site.example:123' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://sub.site.example:123' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://sub.site.example:123' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://xn--mlauted-m2a.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://xn--mlauted-m2a.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://xn--mlauted-m2a.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'ftp://ftp.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'ftp://ftp.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'ftp://ftp.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'ws://ws.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'ws://ws.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'ws://ws.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'wss://wss.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'wss://wss.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'wss://wss.example' are equivalent.] + expected: FAIL + + +[origin.any.worker.html] + [Default-constructed Origin is opaque.] + expected: FAIL + + [Origin constructed with 'null' is opaque.] + expected: FAIL + + [Origin parsed from 'null' is opaque.] + expected: FAIL + + [Origin constructor throws for ''.] + expected: FAIL + + [Origin.parse returns null for ''.] + expected: FAIL + + [Origin constructor throws for 'invalid'.] + expected: FAIL + + [Origin.parse returns null for 'invalid'.] + expected: FAIL + + [Origin constructor throws for 'about:blank'.] + expected: FAIL + + [Origin.parse returns null for 'about:blank'.] + expected: FAIL + + [Origin constructor throws for 'https://trailing.slash/'.] + expected: FAIL + + [Origin.parse returns null for 'https://trailing.slash/'.] + expected: FAIL + + [Origin constructor throws for 'https://user:pass@site.example'.] + expected: FAIL + + [Origin.parse returns null for 'https://user:pass@site.example'.] + expected: FAIL + + [Origin constructor throws for 'https://has.a.port:1234/and/path'.] + expected: FAIL + + [Origin.parse returns null for 'https://has.a.port:1234/and/path'.] + expected: FAIL + + [Origin constructor throws for 'https://ümlauted.example'.] + expected: FAIL + + [Origin.parse returns null for 'https://ümlauted.example'.] + expected: FAIL + + [Origin constructor throws for 'https://has.a.fragment/#frag'.] + expected: FAIL + + [Origin.parse returns null for 'https://has.a.fragment/#frag'.] + expected: FAIL + + [Origin constructor throws for 'https://invalid.port:123456789'.] + expected: FAIL + + [Origin.parse returns null for 'https://invalid.port:123456789'.] + expected: FAIL + + [Origin constructor throws for 'blob:https://blob.example/guid-goes-here'.] + expected: FAIL + + [Origin.parse returns null for 'blob:https://blob.example/guid-goes-here'.] + expected: FAIL + + [Origin constructed from 'http://site.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'http://site.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'http://site.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://site.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://site.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://site.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://site.example:123' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://site.example:123' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://site.example:123' are equivalent.] + expected: FAIL + + [Origin constructed from 'http://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'http://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'http://sub.site.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://sub.site.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://sub.site.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://sub.site.example:123' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://sub.site.example:123' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://sub.site.example:123' are equivalent.] + expected: FAIL + + [Origin constructed from 'https://xn--mlauted-m2a.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'https://xn--mlauted-m2a.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'https://xn--mlauted-m2a.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'ftp://ftp.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'ftp://ftp.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'ftp://ftp.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'ws://ws.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'ws://ws.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'ws://ws.example' are equivalent.] + expected: FAIL + + [Origin constructed from 'wss://wss.example' is a tuple origin.] + expected: FAIL + + [Origin parsed from 'wss://wss.example' is a tuple origin.] + expected: FAIL + + [Origins parsed and constructed from 'wss://wss.example' are equivalent.] + expected: FAIL diff --git a/tests/wpt/meta/html/dom/partial-updates/tentative/patch-range.html.ini b/tests/wpt/meta/html/dom/partial-updates/tentative/patch-range.html.ini new file mode 100644 index 00000000000..d56b6f75851 --- /dev/null +++ b/tests/wpt/meta/html/dom/partial-updates/tentative/patch-range.html.ini @@ -0,0 +1,21 @@ +[patch-range.html] + [using patchBetween() to insert an element betwen two other elements] + expected: FAIL + + [using patchAfter() to insert an element after another element] + expected: FAIL + + [using patchBefore() to insert an element before another element] + expected: FAIL + + [using patchAfter() to insert an element after the last element] + expected: FAIL + + [using patchBefore() to insert an element before the first element] + expected: FAIL + + [using patchBefore() should fail if the reference node is removed while patching] + expected: FAIL + + [using patchBetween() should fail if the 'before' node is removed while patching] + expected: FAIL diff --git a/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-attribute-removal-001.html.ini b/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-attribute-removal-001.html.ini new file mode 100644 index 00000000000..986338f4f6e --- /dev/null +++ b/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-attribute-removal-001.html.ini @@ -0,0 +1,4 @@ +[beforematch-attribute-removal-001.html] + expected: ERROR + [hidden=until-found and details revealing algorithm should abort if attribute states are mutated on beforematch events.] + expected: NOTRUN diff --git a/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-attribute-removal-002.html.ini b/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-attribute-removal-002.html.ini new file mode 100644 index 00000000000..26d8a20bf9b --- /dev/null +++ b/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-attribute-removal-002.html.ini @@ -0,0 +1,4 @@ +[beforematch-attribute-removal-002.html] + expected: ERROR + [hidden=until-found and details revealing algorithm should abort if attribute states are mutated on beforematch events.] + expected: NOTRUN diff --git a/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-element-removal-001.html.ini b/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-element-removal-001.html.ini new file mode 100644 index 00000000000..5cd5ffd28bd --- /dev/null +++ b/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-element-removal-001.html.ini @@ -0,0 +1,4 @@ +[beforematch-element-removal-001.html] + expected: ERROR + [hidden=until-found and details revealing algorithm should abort if revealed node is removed.] + expected: NOTRUN diff --git a/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-element-removal-002.html.ini b/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-element-removal-002.html.ini new file mode 100644 index 00000000000..cdd5a29bd5f --- /dev/null +++ b/tests/wpt/meta/html/editing/the-hidden-attribute/beforematch-element-removal-002.html.ini @@ -0,0 +1,4 @@ +[beforematch-element-removal-002.html] + expected: ERROR + [hidden=until-found and details revealing algorithm should abort if attribute states are mutated on beforematch events.] + expected: NOTRUN diff --git a/tests/wpt/meta/html/editing/the-hidden-attribute/hidden-until-found-and-details.html.ini b/tests/wpt/meta/html/editing/the-hidden-attribute/hidden-until-found-and-details.html.ini new file mode 100644 index 00000000000..3adb7d82029 --- /dev/null +++ b/tests/wpt/meta/html/editing/the-hidden-attribute/hidden-until-found-and-details.html.ini @@ -0,0 +1,4 @@ +[hidden-until-found-and-details.html] + expected: ERROR + [hidden=until-found and details revealing algorithm should reveal elements in a certain order.] + expected: NOTRUN diff --git a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini index 798d96edc20..ddd65fdcec8 100644 --- a/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini +++ b/tests/wpt/meta/html/interaction/focus/the-autofocus-attribute/supported-elements.html.ini @@ -1,16 +1,15 @@ [supported-elements.html] - expected: TIMEOUT [Contenteditable element should support autofocus] expected: FAIL [Host element with delegatesFocus including no focusable descendants should be skipped] - expected: NOTRUN + expected: FAIL [Element with tabindex should support autofocus] expected: FAIL [Area element should support autofocus] - expected: NOTRUN + expected: FAIL [Host element with delegatesFocus should support autofocus] expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini index d4b2e4435a0..6a420504feb 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini @@ -1,3 +1,3 @@ [iframe_sandbox_popups_escaping-3.html] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini index 653c5e98f2f..d5fd800f09d 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-3.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_nonescaping-3.html] - expected: CRASH + expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] expected: NOTRUN diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm.ini b/tests/wpt/meta/html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm.ini new file mode 100644 index 00000000000..4cb15eeee5e --- /dev/null +++ b/tests/wpt/meta/html/semantics/embedded-content/the-video-element/intrinsic_sizes.htm.ini @@ -0,0 +1,3 @@ +[intrinsic_sizes.htm] + [default object size after src is removed] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/forms/the-input-element/color.html.ini b/tests/wpt/meta/html/semantics/forms/the-input-element/color.html.ini new file mode 100644 index 00000000000..2ec38f50eba --- /dev/null +++ b/tests/wpt/meta/html/semantics/forms/the-input-element/color.html.ini @@ -0,0 +1,36 @@ +[color.html] + [Valid simple color: 4 characters long] + expected: FAIL + + [Valid color: leading space] + expected: FAIL + + [Valid color: trailing space] + expected: FAIL + + [Valid color: leading+trailing spaces] + expected: FAIL + + [Valid color: keyword crimson] + expected: FAIL + + [Valid color: keyword bisque] + expected: FAIL + + [Valid color: rgb(1,1,1)] + expected: FAIL + + [Valid color: rgb(1,1,1,1)] + expected: FAIL + + [Valid color: hsl(150deg 100 53.5)] + expected: FAIL + + [Valid color: color(display-p3 .5 0 0)] + expected: FAIL + + [Valid color: color(display-p3 1 0 0)] + expected: FAIL + + [System colors are parsed] + expected: FAIL diff --git a/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-event-handler.html.ini b/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-event-handler.html.ini new file mode 100644 index 00000000000..3ac9a71addd --- /dev/null +++ b/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-event-handler.html.ini @@ -0,0 +1,3 @@ +[script-src-event-handler.html] + [Speculative parsing, page load: script-src-event-handler] + expected: FAIL diff --git a/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.tentative.html.ini b/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.html.ini similarity index 66% rename from tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.tentative.html.ini rename to tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.html.ini index f100a3b8b87..78f5e63c885 100644 --- a/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.tentative.html.ini +++ b/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.html.ini @@ -1,3 +1,3 @@ -[script-src-nomodule.tentative.html] +[script-src-nomodule.html] [Speculative parsing, page load: script-src-nomodule] expected: FAIL diff --git a/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-language.html.ini b/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-language.html.ini new file mode 100644 index 00000000000..0726a34141c --- /dev/null +++ b/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-language.html.ini @@ -0,0 +1,3 @@ +[script-src-unsupported-language.html] + [Speculative parsing, page load: script-src-unsupported-language] + expected: FAIL diff --git a/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.tentative.html.ini b/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.html.ini similarity index 64% rename from tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.tentative.html.ini rename to tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.html.ini index adedaa27c01..0fbcb350c09 100644 --- a/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.tentative.html.ini +++ b/tests/wpt/meta/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.html.ini @@ -1,3 +1,3 @@ -[script-src-unsupported-type.tentative.html] +[script-src-unsupported-type.html] [Speculative parsing, page load: script-src-unsupported-type] expected: FAIL diff --git a/tests/wpt/meta/preload/prefetch-document.html.ini b/tests/wpt/meta/preload/prefetch-document.html.ini index e79d094c754..31caafdf607 100644 --- a/tests/wpt/meta/preload/prefetch-document.html.ini +++ b/tests/wpt/meta/preload/prefetch-document.html.ini @@ -4,3 +4,6 @@ [different-site document prefetch without 'as' should not be consumed] expected: FAIL + + [different-site document prefetch with 'as=document' should not be consumed] + expected: FAIL diff --git a/tests/wpt/meta/preload/preload-error.sub.html.ini b/tests/wpt/meta/preload/preload-error.sub.html.ini index 7c8553cb538..dd7ce352be1 100644 --- a/tests/wpt/meta/preload/preload-error.sub.html.ini +++ b/tests/wpt/meta/preload/preload-error.sub.html.ini @@ -70,3 +70,9 @@ [MIME-error (script): main] expected: FAIL + + [404 (style): main] + expected: FAIL + + [CORS (style): main] + expected: FAIL diff --git a/tests/wpt/meta/shadow-dom/offsetParent-across-shadow-boundaries.html.ini b/tests/wpt/meta/shadow-dom/offsetParent-across-shadow-boundaries.html.ini index 29a0011fff4..99a635506b1 100644 --- a/tests/wpt/meta/shadow-dom/offsetParent-across-shadow-boundaries.html.ini +++ b/tests/wpt/meta/shadow-dom/offsetParent-across-shadow-boundaries.html.ini @@ -4,3 +4,15 @@ [offsetParent must find the first offset parent which is a shadow-including ancestor of the context object even some shadow tree of closed mode did not have any offset parent] expected: FAIL + + [offsetParent must return the fixed position containing block of a fixed element when the context object is assigned to a slot within a fixed containing block in shadow tree of open mode] + expected: FAIL + + [offsetParent must return the fixed position containing block of a fixed element when the context object is assigned to a slot within a fixed containing block in shadow tree of closed mode] + expected: FAIL + + [offsetParent must return null when the context object is assigned to a slot without a fixed containing block in shadow tree of open mode] + expected: FAIL + + [offsetParent must return null when the context object is assigned to a slot without a fixed containing block in shadow tree of closed mode] + expected: FAIL diff --git a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini index 273334b93ed..2f49805066a 100644 --- a/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini +++ b/tests/wpt/meta/webaudio/the-audio-api/the-audiobuffersourcenode-interface/sub-sample-buffer-stitching.html.ini @@ -874,3 +874,15 @@ [X SNR (45.261245919712216 dB) is not greater than or equal to 65.737. Got 45.261245919712216.] expected: FAIL + + [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[15300\]\t-6.1418750000000000e+2\t-8.2017236948013306e-1\t6.1336732763051987e+2\t7.4785173270260645e+2\t9.0957000000000003e-5\n\t[15301\]\t-2.1671967605912945e-12\t-8.5440337657928467e-1\t8.5440337657711751e-1\t9.9999999999746358e-1\t9.0957000000000003e-5\n\tMax AbsError of 6.1336732763051987e+2 at index of 15300.\n\tMax RelError of 7.4785173270260645e+2 at index of 15300.\n] + expected: FAIL + + [X SNR (-12.320335254967734 dB) is not greater than or equal to 85.58. Got -12.320335254967734.] + expected: FAIL + + [X Stitched sine-wave buffers at sample rate 44100 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.000090957,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[15300\]\t1.7287841225847603e+17\t-8.2017236948013306e-1\t1.7287841225847603e+17\t2.1078302402220054e+17\t9.0957000000000003e-5\n\t[15301\]\t-2.1671967605912945e-12\t-8.5440337657928467e-1\t8.5440337657711751e-1\t9.9999999999746358e-1\t9.0957000000000003e-5\n\tMax AbsError of 1.7287841225847603e+17 at index of 15300.\n\tMax RelError of 2.1078302402220054e+17 at index of 15300.\n] + expected: FAIL + + [X SNR (-301.3207293613 dB) is not greater than or equal to 85.58. Got -301.3207293613.] + expected: FAIL diff --git a/tests/wpt/meta/webmessaging/without-ports/018.html.ini b/tests/wpt/meta/webmessaging/without-ports/018.html.ini new file mode 100644 index 00000000000..b7b36c1d3a4 --- /dev/null +++ b/tests/wpt/meta/webmessaging/without-ports/018.html.ini @@ -0,0 +1,4 @@ +[018.html] + expected: TIMEOUT + [origin of the script that invoked the method, javascript:] + expected: TIMEOUT diff --git a/tests/wpt/meta/webstorage/storage_session_setitem_quotaexceedederr.window.js.ini b/tests/wpt/meta/webstorage/storage_session_setitem_quotaexceedederr.window.js.ini new file mode 100644 index 00000000000..e7744a93f19 --- /dev/null +++ b/tests/wpt/meta/webstorage/storage_session_setitem_quotaexceedederr.window.js.ini @@ -0,0 +1,3 @@ +[storage_session_setitem_quotaexceedederr.window.html] + [Throws QuotaExceededError when the quota has been exceeded] + expected: FAIL diff --git a/tests/wpt/tests/WebCryptoAPI/getRandomValues.any.js b/tests/wpt/tests/WebCryptoAPI/getRandomValues.any.js index 574134eb76d..aecd38efd60 100644 --- a/tests/wpt/tests/WebCryptoAPI/getRandomValues.any.js +++ b/tests/wpt/tests/WebCryptoAPI/getRandomValues.any.js @@ -60,9 +60,9 @@ for (const array of arrays) { test(function() { const maxlength = 65536 / ctor.BYTES_PER_ELEMENT; - assert_throws_dom("QuotaExceededError", function() { - self.crypto.getRandomValues(new ctor(maxlength + 1)) - }, "crypto.getRandomValues length over 65536") + assert_throws_quotaexceedederror(() => { + self.crypto.getRandomValues(new ctor(maxlength + 1)); + }, null, null, "crypto.getRandomValues length over 65536"); }, "Large length: " + array); test(function() { diff --git a/tests/wpt/tests/ai/language_detection/detector.https.window.js b/tests/wpt/tests/ai/language_detection/detector.https.window.js index f52064696f3..0ccbe8955d3 100644 --- a/tests/wpt/tests/ai/language_detection/detector.https.window.js +++ b/tests/wpt/tests/ai/language_detection/detector.https.window.js @@ -133,7 +133,7 @@ promise_test(async t => { const detectPromise = detector.detect(text); if (inputUsage >= detector.inputQuota) { - await promise_rejects_dom(t, 'QuotaExceededError', detectPromise); + await promise_rejects_quotaexceedederror(t, detectPromise, requested => requested !== null, detector.inputQuota); } else { await detectPromise; } diff --git a/tests/wpt/tests/ai/translator/translator.optional.https.window.js b/tests/wpt/tests/ai/translator/translator.optional.https.window.js index 1b2519cf2f0..ceb7846bf36 100644 --- a/tests/wpt/tests/ai/translator/translator.optional.https.window.js +++ b/tests/wpt/tests/ai/translator/translator.optional.https.window.js @@ -189,8 +189,7 @@ promise_test(async t => { if (inputUsage < translator.inputQuota) { assert_equals(await translator.translate(text), 'こんにちは'); } else { - await promise_rejects_dom( - t, 'QuotaExceededError', translator.translate(text)); + await promise_rejects_quotaexceedederror(t, translator.translate(text), requested => requested !== null, translator.inputQuota); } }, 'Translator.measureInputUsage() and inputQuota basic usage.'); diff --git a/tests/wpt/tests/background-fetch/fetch.https.window.js b/tests/wpt/tests/background-fetch/fetch.https.window.js index 1756a0e6e3f..6a2f6ee6711 100644 --- a/tests/wpt/tests/background-fetch/fetch.https.window.js +++ b/tests/wpt/tests/background-fetch/fetch.https.window.js @@ -170,10 +170,10 @@ backgroundFetchTest(async (test, backgroundFetch) => { // Very large download total that will definitely exceed the quota. const options = {downloadTotal: Number.MAX_SAFE_INTEGER}; - await promise_rejects_dom( - test, 'QUOTA_EXCEEDED_ERR', - backgroundFetch.fetch(registrationId, 'resources/feature-name.txt', options), - 'This fetch should have thrown a quota exceeded error'); + await promise_rejects_quotaexceedederror( + test, backgroundFetch.fetch(registrationId, 'resources/feature-name.txt', options), + null, null + ); }, 'Background Fetch that exceeds the quota throws a QuotaExceededError'); diff --git a/tests/wpt/tests/content-security-policy/style-src-attr-elem/style-src-elem-allowed-src-blocked-link.html b/tests/wpt/tests/content-security-policy/style-src-attr-elem/style-src-elem-allowed-src-blocked-link.html new file mode 100644 index 00000000000..ce4dae7aeaa --- /dev/null +++ b/tests/wpt/tests/content-security-policy/style-src-attr-elem/style-src-elem-allowed-src-blocked-link.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/tests/wpt/tests/cookie-store/META.yml b/tests/wpt/tests/cookie-store/META.yml deleted file mode 100644 index 4bbc6311bdc..00000000000 --- a/tests/wpt/tests/cookie-store/META.yml +++ /dev/null @@ -1,3 +0,0 @@ -spec: https://wicg.github.io/cookie-store/ -suggested_reviewers: - - dcthetall diff --git a/tests/wpt/tests/cookies/origin-bound-cookies/scheme-bound-cookies.https.html b/tests/wpt/tests/cookies/origin-bound-cookies/scheme-bound-cookies.https.html index e7f1158fe1d..f738d61e9f5 100644 --- a/tests/wpt/tests/cookies/origin-bound-cookies/scheme-bound-cookies.https.html +++ b/tests/wpt/tests/cookies/origin-bound-cookies/scheme-bound-cookies.https.html @@ -23,7 +23,7 @@ promise_test(async t => { // Set a cookie on the secure origin. await credFetch( - `${httpsOrigin}/cookies/resources/set.py?${cookieName}=${cookieValue};Secure;Path=/`); + `${httpsOrigin}/cookies/resources/set.py?${cookieName}=${cookieValue};Path=/`); // Verify the cookie was set. assert_equals(await getCookie(httpsOrigin, cookieName), cookieValue, "Cookie should be set on the secure origin"); diff --git a/tests/wpt/tests/cookiestore/META.yml b/tests/wpt/tests/cookiestore/META.yml new file mode 100644 index 00000000000..a1d0ed48c87 --- /dev/null +++ b/tests/wpt/tests/cookiestore/META.yml @@ -0,0 +1,3 @@ +spec: https://cookiestore.spec.whatwg.org/ +suggested_reviewers: + - dcthetall diff --git a/tests/wpt/tests/cookie-store/README.md b/tests/wpt/tests/cookiestore/README.md similarity index 95% rename from tests/wpt/tests/cookie-store/README.md rename to tests/wpt/tests/cookiestore/README.md index b8a1d0a6098..d767a7b4681 100644 --- a/tests/wpt/tests/cookie-store/README.md +++ b/tests/wpt/tests/cookiestore/README.md @@ -1,5 +1,5 @@ This directory contains tests for the -[Cookie Store API](https://github.com/WICG/cookie-store). +[Cookie Store API](https://cookiestore.spec.whatwg.org/). ## Note on cookie naming conventions diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js b/tests/wpt/tests/cookiestore/change_eventhandler_for_already_expired.https.window.js similarity index 100% rename from tests/wpt/tests/cookie-store/change_eventhandler_for_already_expired.https.window.js rename to tests/wpt/tests/cookiestore/change_eventhandler_for_already_expired.https.window.js diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js b/tests/wpt/tests/cookiestore/change_eventhandler_for_document_cookie.https.window.js similarity index 100% rename from tests/wpt/tests/cookie-store/change_eventhandler_for_document_cookie.https.window.js rename to tests/wpt/tests/cookiestore/change_eventhandler_for_document_cookie.https.window.js diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js b/tests/wpt/tests/cookiestore/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js similarity index 100% rename from tests/wpt/tests/cookie-store/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js rename to tests/wpt/tests/cookiestore/change_eventhandler_for_http_cookie_and_set_cookie_headers.https.window.js diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_no_change.https.window.js b/tests/wpt/tests/cookiestore/change_eventhandler_for_no_change.https.window.js similarity index 100% rename from tests/wpt/tests/cookie-store/change_eventhandler_for_no_change.https.window.js rename to tests/wpt/tests/cookiestore/change_eventhandler_for_no_change.https.window.js diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_no_name_and_no_value.https.window.js b/tests/wpt/tests/cookiestore/change_eventhandler_for_no_name_and_no_value.https.window.js similarity index 100% rename from tests/wpt/tests/cookie-store/change_eventhandler_for_no_name_and_no_value.https.window.js rename to tests/wpt/tests/cookiestore/change_eventhandler_for_no_name_and_no_value.https.window.js diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_no_name_equals_in_value.https.window.js b/tests/wpt/tests/cookiestore/change_eventhandler_for_no_name_equals_in_value.https.window.js similarity index 100% rename from tests/wpt/tests/cookie-store/change_eventhandler_for_no_name_equals_in_value.https.window.js rename to tests/wpt/tests/cookiestore/change_eventhandler_for_no_name_equals_in_value.https.window.js diff --git a/tests/wpt/tests/cookie-store/change_eventhandler_for_no_name_multiple_values.https.window.js b/tests/wpt/tests/cookiestore/change_eventhandler_for_no_name_multiple_values.https.window.js similarity index 100% rename from tests/wpt/tests/cookie-store/change_eventhandler_for_no_name_multiple_values.https.window.js rename to tests/wpt/tests/cookiestore/change_eventhandler_for_no_name_multiple_values.https.window.js diff --git a/tests/wpt/tests/cookie-store/cookieListItem_attributes.https.any.js b/tests/wpt/tests/cookiestore/cookieListItem_attributes.https.any.js similarity index 100% rename from tests/wpt/tests/cookie-store/cookieListItem_attributes.https.any.js rename to tests/wpt/tests/cookiestore/cookieListItem_attributes.https.any.js diff --git a/tests/wpt/tests/cookie-store/cookieStoreManager_getSubscriptions_empty.https.any.js b/tests/wpt/tests/cookiestore/cookieStoreManager_getSubscriptions_empty.https.any.js similarity index 100% rename from tests/wpt/tests/cookie-store/cookieStoreManager_getSubscriptions_empty.https.any.js rename to tests/wpt/tests/cookiestore/cookieStoreManager_getSubscriptions_empty.https.any.js diff --git a/tests/wpt/tests/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.js b/tests/wpt/tests/cookiestore/cookieStoreManager_getSubscriptions_multiple.https.any.js similarity index 96% rename from tests/wpt/tests/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.js rename to tests/wpt/tests/cookiestore/cookieStoreManager_getSubscriptions_multiple.https.any.js index 9e153d03aae..e2538013c93 100644 --- a/tests/wpt/tests/cookie-store/cookieStoreManager_getSubscriptions_multiple.https.any.js +++ b/tests/wpt/tests/cookiestore/cookieStoreManager_getSubscriptions_multiple.https.any.js @@ -17,7 +17,7 @@ promise_test(async testCase => { let scope; if (self.GLOBAL.isWindow()) { - scope = '/cookie-store/resources/does/not/exist'; + scope = '/cookiestore/resources/does/not/exist'; const registration = await service_worker_unregister_and_register( testCase, 'resources/empty_sw.js', scope); @@ -29,7 +29,7 @@ promise_test(async testCase => { self.registration = registration; } else { - scope = '/cookie-store/does/not/exist'; + scope = '/cookiestore/does/not/exist'; // Must wait for the service worker to enter the 'activated' state before // subscribing to cookiechange events. diff --git a/tests/wpt/tests/cookie-store/cookieStoreManager_getSubscriptions_single.https.any.js b/tests/wpt/tests/cookiestore/cookieStoreManager_getSubscriptions_single.https.any.js similarity index 94% rename from tests/wpt/tests/cookie-store/cookieStoreManager_getSubscriptions_single.https.any.js rename to tests/wpt/tests/cookiestore/cookieStoreManager_getSubscriptions_single.https.any.js index 98ec19df3f1..4f105326604 100644 --- a/tests/wpt/tests/cookie-store/cookieStoreManager_getSubscriptions_single.https.any.js +++ b/tests/wpt/tests/cookiestore/cookieStoreManager_getSubscriptions_single.https.any.js @@ -8,7 +8,7 @@ promise_test(async testCase => { let scope; if (self.GLOBAL.isWindow()) { - scope = '/cookie-store/resources/does/not/exist'; + scope = '/cookiestore/resources/does/not/exist'; const registration = await service_worker_unregister_and_register( testCase, 'resources/empty_sw.js', scope); @@ -20,7 +20,7 @@ promise_test(async testCase => { self.registration = registration; } else { - scope = '/cookie-store/does/not/exist'; + scope = '/cookiestore/does/not/exist'; // Must wait for the service worker to enter the 'activated' state before // subscribing to cookiechange events. diff --git a/tests/wpt/tests/cookie-store/cookieStore_delete.sub.https.html b/tests/wpt/tests/cookiestore/cookieStore_delete.sub.https.html similarity index 92% rename from tests/wpt/tests/cookie-store/cookieStore_delete.sub.https.html rename to tests/wpt/tests/cookiestore/cookieStore_delete.sub.https.html index 8cdfae6776d..150b768a558 100644 --- a/tests/wpt/tests/cookie-store/cookieStore_delete.sub.https.html +++ b/tests/wpt/tests/cookiestore/cookieStore_delete.sub.https.html @@ -1,7 +1,7 @@ Async Cookies: cookieStore basic API across origins - + @@ -11,7 +11,7 @@ diff --git a/tests/wpt/tests/cookie-store/cookieStore_get_set_across_origins.sub.https.html b/tests/wpt/tests/cookiestore/cookieStore_get_set_across_origins.sub.https.html similarity index 97% rename from tests/wpt/tests/cookie-store/cookieStore_get_set_across_origins.sub.https.html rename to tests/wpt/tests/cookiestore/cookieStore_get_set_across_origins.sub.https.html index 004e37630ac..665e781ef9e 100644 --- a/tests/wpt/tests/cookie-store/cookieStore_get_set_across_origins.sub.https.html +++ b/tests/wpt/tests/cookiestore/cookieStore_get_set_across_origins.sub.https.html @@ -1,7 +1,7 @@ Async Cookies: cookieStore basic API across origins - + @@ -11,7 +11,7 @@ @@ -11,7 +11,7 @@ diff --git a/tests/wpt/tests/cookie-store/cookieStore_opaque_origin.https.html b/tests/wpt/tests/cookiestore/cookieStore_opaque_origin.https.html similarity index 97% rename from tests/wpt/tests/cookie-store/cookieStore_opaque_origin.https.html rename to tests/wpt/tests/cookiestore/cookieStore_opaque_origin.https.html index 94a13fe63f9..649b4863941 100644 --- a/tests/wpt/tests/cookie-store/cookieStore_opaque_origin.https.html +++ b/tests/wpt/tests/cookiestore/cookieStore_opaque_origin.https.html @@ -1,7 +1,7 @@ Cookie Store API: Opaque origins for cookieStore - + @@ -10,7 +10,7 @@ diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-name-multicol-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-name-multicol-003.html index 02fd1c164d6..d1f3c38b87c 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-name-multicol-003.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-name-multicol-003.html @@ -53,10 +53,10 @@
+ data-expected-width=10 data-expected-height=100>
+ data-expected-width=10 data-expected-height=100>
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-name-multicol-004.html b/tests/wpt/tests/css/css-anchor-position/anchor-name-multicol-004.html index fdd1772359f..3b1f060e1b1 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-name-multicol-004.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-name-multicol-004.html @@ -52,7 +52,7 @@
+ data-expected-width=10 data-expected-height=60>
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-position-grid-001.html b/tests/wpt/tests/css/css-anchor-position/anchor-position-grid-001.html index 7bd389b39d8..006c4b851d5 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-position-grid-001.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-position-grid-001.html @@ -74,9 +74,9 @@
-
-
-
+
+
+
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-002.html b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-002.html index 6ca4c22d8cd..b4a4a7a4c18 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-002.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-002.html @@ -82,15 +82,15 @@
+ data-offset-x=18 data-offset-y=135 + data-expected-width=50 data-expected-height=90>
+ data-offset-x=58 data-offset-y=215>
+ data-offset-x=26 data-offset-y=140 + data-expected-width=50 data-expected-height=90>
+ data-offset-x=58 data-offset-y=215> @@ -100,10 +100,10 @@
+ data-offset-x=294 data-offset-y=95> @@ -113,9 +113,9 @@
- + data-offset-x=294 data-offset-y=95> + diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-003.html b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-003.html index d23779ad9bf..f2a4b9343f3 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-003.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-003.html @@ -40,7 +40,7 @@
-
+
@@ -56,9 +56,9 @@
-
+
-
+
diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-004.html b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-004.html index 8f7a3dad129..0137ad53d13 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-004.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-004.html @@ -25,7 +25,7 @@ } .spacer { height: 10px; - background: pink; + background: silver; } .anchor1 { anchor-name: --a1; @@ -69,16 +69,16 @@
+ data-offset-x=18 data-offset-y=125 + data-expected-width=20 data-expected-height=90>
+ data-offset-x=28 data-offset-y=205>
+ data-offset-x=34 data-offset-y=285 + data-expected-width=20 data-expected-height=90>
+ data-offset-x=44 data-offset-y=365> diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-fixed-001.html b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-fixed-001.html index b94680816e9..06202187796 100644 --- a/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-fixed-001.html +++ b/tests/wpt/tests/css/css-anchor-position/anchor-position-multicol-fixed-001.html @@ -24,7 +24,7 @@ } .spacer { height: 10px; - background: pink; + background: silver; } .anchor { anchor-name: --a1; @@ -35,6 +35,7 @@ } .fixedpos { position: fixed; + background: blue; margin-left: 0; left: 20px; top: 20px; @@ -63,12 +64,12 @@
+ data-offset-x="20" data-offset-y="20" + data-expected-width=20 data-expected-height=30>
+ data-offset-x="20" data-offset-y="40" + data-expected-width=20 data-expected-height=30>
+Containing block size change correctly invalidates styles with anchor functions + + + + +
+
+
+
+
+
+ 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 9c32bda6fcc..299ed46421c 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 @@ -25,6 +25,7 @@ top: anchor(top); left: 0; position-anchor: --a; + position-visibility: always; }
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 d896d9ca537..74596d5edfe 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 @@ -25,6 +25,7 @@ top: anchor(top); left: 0; position-anchor: --a; + position-visibility: always; }
diff --git a/tests/wpt/tests/css/css-anchor-position/parsing/position-visibility-computed.html b/tests/wpt/tests/css/css-anchor-position/parsing/position-visibility-computed.html index 1ba494ca332..e32280b3a14 100644 --- a/tests/wpt/tests/css/css-anchor-position/parsing/position-visibility-computed.html +++ b/tests/wpt/tests/css/css-anchor-position/parsing/position-visibility-computed.html @@ -15,6 +15,8 @@ test_computed_value("position-visibility", "anchors-visible"); test_computed_value("position-visibility", "no-overflow"); + test_computed_value("position-visibility", "initial", "anchors-visible"); + test_computed_value("position-visibility", "anchors-valid anchors-visible"); test_computed_value("position-visibility", "anchors-valid no-overflow"); test_computed_value("position-visibility", "anchors-visible anchors-valid", "anchors-valid anchors-visible"); diff --git a/tests/wpt/tests/css/css-anchor-position/position-area-computed.html b/tests/wpt/tests/css/css-anchor-position/position-area-computed.html index 0acc853eb90..4b3fb62af8c 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-area-computed.html +++ b/tests/wpt/tests/css/css-anchor-position/position-area-computed.html @@ -1,6 +1,6 @@ CSS Anchor Positioning: position-area getComputedStyle() - + @@ -9,14 +9,189 @@
+ \ No newline at end of file diff --git a/tests/wpt/tests/css/css-anchor-position/position-area-parsing.html b/tests/wpt/tests/css/css-anchor-position/position-area-parsing.html index e6de6d7e269..c8d7687cc88 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-area-parsing.html +++ b/tests/wpt/tests/css/css-anchor-position/position-area-parsing.html @@ -102,6 +102,8 @@ test_valid_single_position_area_values(vertical); test_valid_single_position_area_values(inline); test_valid_single_position_area_values(block); + test_valid_single_position_area_values(self_inline); + test_valid_single_position_area_values(self_block); test_valid_single_position_area_values(start_end); test_valid_single_position_area_values(self_start_end); diff --git a/tests/wpt/tests/css/css-anchor-position/position-try-fallbacks-004.html b/tests/wpt/tests/css/css-anchor-position/position-try-fallbacks-004.html index 9c66d9ff0a0..c46af7c3716 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-try-fallbacks-004.html +++ b/tests/wpt/tests/css/css-anchor-position/position-try-fallbacks-004.html @@ -1,4 +1,8 @@ + + + + Retrying fallbacks after failing with a non-existing fallback @@ -19,6 +23,11 @@ position-area: right; } + + + + +

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

@@ -34,9 +43,15 @@
+ + + diff --git a/tests/wpt/tests/css/css-anchor-position/position-visibility-initial-ref.html b/tests/wpt/tests/css/css-anchor-position/position-visibility-initial-ref.html new file mode 100644 index 00000000000..17798173804 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/position-visibility-initial-ref.html @@ -0,0 +1,22 @@ + + + + +
+
+
+ + diff --git a/tests/wpt/tests/css/css-anchor-position/position-visibility-initial.html b/tests/wpt/tests/css/css-anchor-position/position-visibility-initial.html new file mode 100644 index 00000000000..9adf0c64d27 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/position-visibility-initial.html @@ -0,0 +1,48 @@ + + + +CSS Anchor Positioning Test: position-visibility: anchors-visible + + + + +
+
anchor
+
+
target
+
+ + + diff --git a/tests/wpt/tests/css/css-anchor-position/position-visibility-remove-anchors-visible.html b/tests/wpt/tests/css/css-anchor-position/position-visibility-remove-anchors-visible.html index 3408642ad2b..0e26b51e307 100644 --- a/tests/wpt/tests/css/css-anchor-position/position-visibility-remove-anchors-visible.html +++ b/tests/wpt/tests/css/css-anchor-position/position-visibility-remove-anchors-visible.html @@ -55,7 +55,7 @@ waitForAtLeastOneFrame().then(() => { // Remove position-visibility: anchors-visible. #target should become // visible again. - target.style.positionVisibility = 'initial'; + target.style.positionVisibility = 'always'; takeScreenshot(); }); diff --git a/tests/wpt/tests/css/css-anchor-position/pseudo-element-implicit-anchor.html b/tests/wpt/tests/css/css-anchor-position/pseudo-element-implicit-anchor.html new file mode 100644 index 00000000000..a7192670cc1 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/pseudo-element-implicit-anchor.html @@ -0,0 +1,22 @@ + +CSS Anchor Positioning: Originating element implicit anchor for pseudo elements + + + +

Test passes if there is a filled green square.

+
+
diff --git a/tests/wpt/tests/css/css-anchor-position/transform-007.tentative.html b/tests/wpt/tests/css/css-anchor-position/transform-007.tentative.html new file mode 100644 index 00000000000..77216bfe265 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/transform-007.tentative.html @@ -0,0 +1,40 @@ + + + Anchor with changing transform + + + + +

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

+
+
+
+
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-anchor-position/transform-008.tentative.html b/tests/wpt/tests/css/css-anchor-position/transform-008.tentative.html new file mode 100644 index 00000000000..ffbedaabbb8 --- /dev/null +++ b/tests/wpt/tests/css/css-anchor-position/transform-008.tentative.html @@ -0,0 +1,44 @@ + + + Ancestor of anchor with changing transform + + + + +

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

+
+
+
+
+
+
+
+
+
+
+ + diff --git a/tests/wpt/tests/css/css-anchor-position/try-tactic-position-area.html b/tests/wpt/tests/css/css-anchor-position/try-tactic-position-area.html index e050dbccef2..ab5d95f2fe9 100644 --- a/tests/wpt/tests/css/css-anchor-position/try-tactic-position-area.html +++ b/tests/wpt/tests/css/css-anchor-position/try-tactic-position-area.html @@ -145,45 +145,45 @@ test_computed_value('flip-block flip-inline', 'position-area', 'span-x-self-star // Logical: -test_computed_value('flip-inline', 'position-area', 'block-start inline-start', 'block-start inline-end'); -test_computed_value('flip-inline', 'position-area', 'block-end inline-start', 'block-end inline-end'); -test_computed_value('flip-inline', 'position-area', 'block-end inline-end', 'block-end inline-start'); -test_computed_value('flip-inline', 'position-area', 'block-start inline-end', 'block-start inline-start'); +test_computed_value('flip-inline', 'position-area', 'block-start inline-start', 'start end'); +test_computed_value('flip-inline', 'position-area', 'block-end inline-start', 'end'); +test_computed_value('flip-inline', 'position-area', 'block-end inline-end', 'end start'); +test_computed_value('flip-inline', 'position-area', 'block-start inline-end', 'start'); -test_computed_value('flip-block', 'position-area', 'block-start inline-start', 'block-end inline-start'); -test_computed_value('flip-block', 'position-area', 'block-end inline-start', 'block-start inline-start'); -test_computed_value('flip-block', 'position-area', 'block-end inline-end', 'block-start inline-end'); -test_computed_value('flip-block', 'position-area', 'block-start inline-end', 'block-end inline-end'); +test_computed_value('flip-block', 'position-area', 'block-start inline-start', 'end start'); +test_computed_value('flip-block', 'position-area', 'block-end inline-start', 'start'); +test_computed_value('flip-block', 'position-area', 'block-end inline-end', 'start end'); +test_computed_value('flip-block', 'position-area', 'block-start inline-end', 'end'); -test_computed_value('flip-block flip-inline', 'position-area', 'block-start inline-start', 'block-end inline-end'); -test_computed_value('flip-block flip-inline', 'position-area', 'block-end inline-start', 'block-start inline-end'); -test_computed_value('flip-block flip-inline', 'position-area', 'block-end inline-end', 'block-start inline-start'); -test_computed_value('flip-block flip-inline', 'position-area', 'block-start inline-end', 'block-end inline-start'); +test_computed_value('flip-block flip-inline', 'position-area', 'block-start inline-start', 'end'); +test_computed_value('flip-block flip-inline', 'position-area', 'block-end inline-start', 'start end'); +test_computed_value('flip-block flip-inline', 'position-area', 'block-end inline-end', 'start'); +test_computed_value('flip-block flip-inline', 'position-area', 'block-start inline-end', 'end start'); -test_computed_value('flip-start', 'position-area', 'block-start inline-start', 'block-start inline-start'); -test_computed_value('flip-start', 'position-area', 'block-end inline-start', 'block-start inline-end'); -test_computed_value('flip-start', 'position-area', 'block-end inline-end', 'block-end inline-end'); -test_computed_value('flip-start', 'position-area', 'block-start inline-end', 'block-end inline-start'); +test_computed_value('flip-start', 'position-area', 'block-start inline-start', 'start'); +test_computed_value('flip-start', 'position-area', 'block-end inline-start', 'start end'); +test_computed_value('flip-start', 'position-area', 'block-end inline-end', 'end'); +test_computed_value('flip-start', 'position-area', 'block-start inline-end', 'end start'); -test_computed_value('flip-block flip-start', 'position-area', 'block-start inline-start', 'block-start inline-end'); -test_computed_value('flip-block flip-start', 'position-area', 'block-end inline-start', 'block-start inline-start'); -test_computed_value('flip-block flip-start', 'position-area', 'block-end inline-end', 'block-end inline-start'); -test_computed_value('flip-block flip-start', 'position-area', 'block-start inline-end', 'block-end inline-end'); +test_computed_value('flip-block flip-start', 'position-area', 'block-start inline-start', 'start end'); +test_computed_value('flip-block flip-start', 'position-area', 'block-end inline-start', 'start'); +test_computed_value('flip-block flip-start', 'position-area', 'block-end inline-end', 'end start'); +test_computed_value('flip-block flip-start', 'position-area', 'block-start inline-end', 'end'); -test_computed_value('flip-inline flip-start', 'position-area', 'block-start inline-start', 'block-end inline-start'); -test_computed_value('flip-inline flip-start', 'position-area', 'block-end inline-start', 'block-end inline-end'); -test_computed_value('flip-inline flip-start', 'position-area', 'block-end inline-end', 'block-start inline-end'); -test_computed_value('flip-inline flip-start', 'position-area', 'block-start inline-end', 'block-start inline-start'); +test_computed_value('flip-inline flip-start', 'position-area', 'block-start inline-start', 'end start'); +test_computed_value('flip-inline flip-start', 'position-area', 'block-end inline-start', 'end'); +test_computed_value('flip-inline flip-start', 'position-area', 'block-end inline-end', 'start end'); +test_computed_value('flip-inline flip-start', 'position-area', 'block-start inline-end', 'start'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-start inline-start', 'block-end inline-end'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-end inline-start', 'block-end inline-start'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-end inline-end', 'block-start inline-start'); -test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-start inline-end', 'block-start inline-end'); +test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-start inline-start', 'end'); +test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-end inline-start', 'end start'); +test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-end inline-end', 'start'); +test_computed_value('flip-block flip-inline flip-start', 'position-area', 'block-start inline-end', 'start end'); // Variations: -test_computed_value('flip-block flip-inline', 'position-area', 'span-block-start span-inline-start', 'span-block-end span-inline-end'); -test_computed_value('flip-block flip-inline', 'position-area', 'self-block-start self-inline-start', 'self-block-end self-inline-end'); -test_computed_value('flip-block flip-inline', 'position-area', 'span-self-block-start span-self-inline-start', 'span-self-block-end span-self-inline-end'); +test_computed_value('flip-block flip-inline', 'position-area', 'span-block-start span-inline-start', 'span-end'); +test_computed_value('flip-block flip-inline', 'position-area', 'self-block-start self-inline-start', 'self-end'); +test_computed_value('flip-block flip-inline', 'position-area', 'span-self-block-start span-self-inline-start', 'span-self-end'); // start/end @@ -224,15 +224,15 @@ test_computed_value('flip-start', 'position-area', 'center start', 'start center test_computed_value('flip-block', 'position-area', 'left span-all', 'left'); test_computed_value('flip-block', 'position-area', 'span-all top', 'bottom'); test_computed_value('flip-block', 'position-area', 'span-all', 'span-all'); -test_computed_value('flip-block', 'position-area', 'start span-all', 'end span-all'); -test_computed_value('flip-block', 'position-area', 'span-all start', 'span-all start'); -test_computed_value('flip-inline', 'position-area', 'span-all start', 'span-all end'); -test_computed_value('flip-start', 'position-area', 'span-all start', 'start span-all'); +test_computed_value('flip-block', 'position-area', 'start span-all', 'block-end'); +test_computed_value('flip-block', 'position-area', 'span-all start', 'inline-start'); +test_computed_value('flip-inline', 'position-area', 'span-all start', 'inline-end'); +test_computed_value('flip-start', 'position-area', 'span-all start', 'block-start'); // Span mix: test_computed_value('flip-block', 'position-area', 'left span-top', 'left span-bottom'); test_computed_value('flip-inline', 'position-area', 'left span-top', 'right span-top'); -test_computed_value('flip-start', 'position-area', 'span-block-start inline-end', 'block-end span-inline-start'); +test_computed_value('flip-start', 'position-area', 'span-block-start inline-end', 'end span-start'); // Writing modes: test_computed_value('flip-block', 'position-area', 'left top', 'right top', 'ltr', 'vertical-rl'); diff --git a/tests/wpt/tests/css/css-break/flexbox/auto-height-flex-item-in-multicol-crash.html b/tests/wpt/tests/css/css-break/flexbox/auto-height-flex-item-in-multicol-crash.html new file mode 100644 index 00000000000..82dec303cc1 --- /dev/null +++ b/tests/wpt/tests/css/css-break/flexbox/auto-height-flex-item-in-multicol-crash.html @@ -0,0 +1,18 @@ + + + + +
+
+
+ T +
+
diff --git a/tests/wpt/tests/css/css-color/parsing/opacity-computed.html b/tests/wpt/tests/css/css-color/parsing/opacity-computed.html index 27d9316415f..5ce304cc1af 100644 --- a/tests/wpt/tests/css/css-color/parsing/opacity-computed.html +++ b/tests/wpt/tests/css/css-color/parsing/opacity-computed.html @@ -19,6 +19,28 @@ test_computed_value("opacity", "3", "1"); test_computed_value("opacity", "-100%", "0"); test_computed_value("opacity", "50%", "0.5"); test_computed_value("opacity", "300%", "1"); +test_computed_value("opacity", "calc(-50% - 50%)", "0"); +test_computed_value("opacity", "calc(25% * 2)", "0.5"); +test_computed_value("opacity", "calc(100% + 100%)", "1"); +test_computed_value("opacity", "calc(-0.5 - 0.5)", "0"); +test_computed_value("opacity", "calc(0.25 * 2)", "0.5"); +test_computed_value("opacity", "calc(1 + 1)", "1"); +test_computed_value("opacity", "clamp(50%, 0%, 70%)", "0.5"); +test_computed_value("opacity", "clamp(50%, 80%, 70%)", "0.7"); +test_computed_value("opacity", "clamp(50%, 60%, 70%)", "0.6"); +test_computed_value("opacity", "min(50%, 0%)", "0"); +test_computed_value("opacity", "min(0%, 50%)", "0"); +test_computed_value("opacity", "max(50%, 0%)", "0.5"); +test_computed_value("opacity", "max(0%, 50%)", "0.5"); +test_computed_value("opacity", "min(-40%, 50%)", "0"); +test_computed_value("opacity", "clamp(0.5, 0, 0.7)", "0.5"); +test_computed_value("opacity", "clamp(0.5, 0.8, 0.7)", "0.7"); +test_computed_value("opacity", "clamp(0.5, 0.6, 0.7)", "0.6"); +test_computed_value("opacity", "min(0.5, 0)", "0"); +test_computed_value("opacity", "min(0, 0.5)", "0"); +test_computed_value("opacity", "max(0.5, 0)", "0.5"); +test_computed_value("opacity", "max(0, 0.5)", "0.5"); +test_computed_value("opacity", "min(-0.4, 0.5)", "0"); diff --git a/tests/wpt/tests/css/css-color/parsing/opacity-valid.html b/tests/wpt/tests/css/css-color/parsing/opacity-valid.html index ad65ad6df2b..5a36ec39ae4 100644 --- a/tests/wpt/tests/css/css-color/parsing/opacity-valid.html +++ b/tests/wpt/tests/css/css-color/parsing/opacity-valid.html @@ -20,14 +20,28 @@ test_valid_value("opacity", "3"); test_valid_value("opacity", "-100%", "-1"); test_valid_value("opacity", "50%", "0.5"); test_valid_value("opacity", "300%", "3"); -test_valid_value("opacity", "clamp(50%, 0%, 70%)", "calc(0.5)"); -test_valid_value("opacity", "clamp(50%, 80%, 70%)", "calc(0.7)"); -test_valid_value("opacity", "clamp(50%, 60%, 70%)", "calc(0.6)"); -test_valid_value("opacity", "min(50%, 0%)", "calc(0)"); -test_valid_value("opacity", "min(0%, 50%)", "calc(0)"); -test_valid_value("opacity", "max(50%, 0%)", "calc(0.5)"); -test_valid_value("opacity", "max(0%, 50%)", "calc(0.5)"); -test_valid_value("opacity", "min(-40%, 50%)", "calc(-0.4)"); +test_valid_value("opacity", "calc(-50% - 50%)", "calc(-100%)"); +test_valid_value("opacity", "calc(25% * 2)", "calc(50%)"); +test_valid_value("opacity", "calc(100% + 100%)", "calc(200%)"); +test_valid_value("opacity", "calc(-0.5 - 0.5)", "calc(-1)"); +test_valid_value("opacity", "calc(0.25 * 2)", "calc(0.5)"); +test_valid_value("opacity", "calc(1 + 1)", "calc(2)"); +test_valid_value("opacity", "clamp(50%, 0%, 70%)", "calc(50%)"); +test_valid_value("opacity", "clamp(50%, 80%, 70%)", "calc(70%)"); +test_valid_value("opacity", "clamp(50%, 60%, 70%)", "calc(60%)"); +test_valid_value("opacity", "min(50%, 0%)", "calc(0%)"); +test_valid_value("opacity", "min(0%, 50%)", "calc(0%)"); +test_valid_value("opacity", "max(50%, 0%)", "calc(50%)"); +test_valid_value("opacity", "max(0%, 50%)", "calc(50%)"); +test_valid_value("opacity", "min(-40%, 50%)", "calc(-40%)"); +test_valid_value("opacity", "clamp(0.5, 0, 0.7)", "calc(0.5)"); +test_valid_value("opacity", "clamp(0.5, 0.8, 0.7)", "calc(0.7)"); +test_valid_value("opacity", "clamp(0.5, 0.6, 0.7)", "calc(0.6)"); +test_valid_value("opacity", "min(0.5, 0)", "calc(0)"); +test_valid_value("opacity", "min(0, 0.5)", "calc(0)"); +test_valid_value("opacity", "max(0.5, 0)", "calc(0.5)"); +test_valid_value("opacity", "max(0, 0.5)", "calc(0.5)"); +test_valid_value("opacity", "min(-0.4, 0.5)", "calc(-0.4)"); diff --git a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html index 2890727ad4c..1bb5e1a7e7b 100644 --- a/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html +++ b/tests/wpt/tests/css/css-conditional/container-queries/at-container-style-parsing.html @@ -43,9 +43,12 @@ test_cq_condition_known('style(10px < 10em < 10)'); test_cq_condition_known('style(var(--p) < calc(100 + 200))'); test_cq_condition_known('style(attr(data-foo type()) < var(--p) < var(--q))'); + test_cq_condition_known('style(--foo < initial)'); test_cq_condition_unknown('style(--foo: bar;)'); test_cq_condition_unknown('style(style(--foo: bar))'); test_cq_condition_unknown('style(10px < 10em > 10)'); test_cq_condition_unknown('style( < 10em)'); + test_cq_condition_unknown('style(10px < 10em !)'); + test_cq_condition_unknown('style(10px ! < 10em)'); diff --git a/tests/wpt/tests/css/css-content/content-none-details-ref.html b/tests/wpt/tests/css/css-content/content-none-details-ref.html deleted file mode 100644 index ea844dc0302..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-details-ref.html +++ /dev/null @@ -1,72 +0,0 @@ - - - - - Reference: content:none on DETAILS - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-details.html b/tests/wpt/tests/css/css-content/content-none-details.html deleted file mode 100644 index 6ac94c3e865..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-details.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - - CSS Content: content:none on DETAILS - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-fieldset-ref.html b/tests/wpt/tests/css/css-content/content-none-fieldset-ref.html deleted file mode 100644 index 49a86e7a0f7..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-fieldset-ref.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - Reference: content:none on FIELDSET - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-fieldset.html b/tests/wpt/tests/css/css-content/content-none-fieldset.html deleted file mode 100644 index 4ada3b7b01d..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-fieldset.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - - CSS Content: content:none on FIELDSET - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-input-ref.html b/tests/wpt/tests/css/css-content/content-none-input-ref.html deleted file mode 100644 index faa3ba3734c..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-input-ref.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - Reference: content:none on INPUT - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-input.html b/tests/wpt/tests/css/css-content/content-none-input.html deleted file mode 100644 index 5cc76ba11de..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-input.html +++ /dev/null @@ -1,73 +0,0 @@ - - - - - CSS Content: content:none on INPUT - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-math-ref.html b/tests/wpt/tests/css/css-content/content-none-math-ref.html deleted file mode 100644 index 5e43f2ece4d..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-math-ref.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - Reference: content:none on MATH - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-math.html b/tests/wpt/tests/css/css-content/content-none-math.html deleted file mode 100644 index 2d5e78f678f..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-math.html +++ /dev/null @@ -1,76 +0,0 @@ - - - - - CSS Content: content:none on MATH - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-option-ref.html b/tests/wpt/tests/css/css-content/content-none-option-ref.html deleted file mode 100644 index 336c5bfb94b..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-option-ref.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - Reference: content:none on OPTION - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-option.html b/tests/wpt/tests/css/css-content/content-none-option.html deleted file mode 100644 index 5eff4777611..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-option.html +++ /dev/null @@ -1,83 +0,0 @@ - - - - - CSS Content: content:none on OPTION - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-root-block-ref.html b/tests/wpt/tests/css/css-content/content-none-root-block-ref.html deleted file mode 100644 index e3c2adb4178..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-block-ref.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - Reference: content:none on a :root block - - - -BA - diff --git a/tests/wpt/tests/css/css-content/content-none-root-block.html b/tests/wpt/tests/css/css-content/content-none-root-block.html deleted file mode 100644 index c8d15df3eaf..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-block.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - CSS Content: content:none on a :root block - - - - - - - -FAIL - diff --git a/tests/wpt/tests/css/css-content/content-none-root-columns-ref.html b/tests/wpt/tests/css/css-content/content-none-root-columns-ref.html deleted file mode 100644 index 661c064ad3d..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-columns-ref.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Reference: content:none on a :root columns layout - - - -B A - diff --git a/tests/wpt/tests/css/css-content/content-none-root-columns.html b/tests/wpt/tests/css/css-content/content-none-root-columns.html deleted file mode 100644 index b3fceb1c4f4..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-columns.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CSS Content: content:none on a :root columns layout - - - - - - - -FAIL - diff --git a/tests/wpt/tests/css/css-content/content-none-root-flex-ref.html b/tests/wpt/tests/css/css-content/content-none-root-flex-ref.html deleted file mode 100644 index b14e9f14f93..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-flex-ref.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Reference: content:none on a :root flex - - - -BA - diff --git a/tests/wpt/tests/css/css-content/content-none-root-flex.html b/tests/wpt/tests/css/css-content/content-none-root-flex.html deleted file mode 100644 index 0b6c6cab14f..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-flex.html +++ /dev/null @@ -1,27 +0,0 @@ - - - - - CSS Content: content:none on a :root flex - - - - - - - -FAIL - diff --git a/tests/wpt/tests/css/css-content/content-none-root-grid-ref.html b/tests/wpt/tests/css/css-content/content-none-root-grid-ref.html deleted file mode 100644 index 9b092c664b9..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-grid-ref.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - Reference: content:none on a :root grid - - - -BA - diff --git a/tests/wpt/tests/css/css-content/content-none-root-grid.html b/tests/wpt/tests/css/css-content/content-none-root-grid.html deleted file mode 100644 index e97f7848acb..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-grid.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CSS Content: content:none on a :root grid - - - - - - - -FAIL - diff --git a/tests/wpt/tests/css/css-content/content-none-root-ruby-ref.html b/tests/wpt/tests/css/css-content/content-none-root-ruby-ref.html deleted file mode 100644 index cfb0ecd8662..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-ruby-ref.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - Reference: content:none on a :root ruby (blockified) box - - - -BA - diff --git a/tests/wpt/tests/css/css-content/content-none-root-ruby.html b/tests/wpt/tests/css/css-content/content-none-root-ruby.html deleted file mode 100644 index 8434d961906..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-ruby.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - CSS Content: content:none on a :root ruby (blockified) box - - - - - - - -べ - - - - - FAIL - FAIL - - diff --git a/tests/wpt/tests/css/css-content/content-none-root-table-ref.html b/tests/wpt/tests/css/css-content/content-none-root-table-ref.html deleted file mode 100644 index d32fdf05256..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-table-ref.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - Reference: content:none on a :root table - - - -BA - diff --git a/tests/wpt/tests/css/css-content/content-none-root-table.html b/tests/wpt/tests/css/css-content/content-none-root-table.html deleted file mode 100644 index 92e4a7730b9..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-root-table.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - CSS Content: content:none on a :root table - - - - - - - -FAIL - - diff --git a/tests/wpt/tests/css/css-content/content-none-select-1-ref.html b/tests/wpt/tests/css/css-content/content-none-select-1-ref.html index 5fef3a498cd..0c1f7184a6f 100644 --- a/tests/wpt/tests/css/css-content/content-none-select-1-ref.html +++ b/tests/wpt/tests/css/css-content/content-none-select-1-ref.html @@ -14,15 +14,25 @@ html,body { color:black; background-color:white; font:4px/1 Ahem; padding:0; margin:0; } -body { margin-left: 3ch; } -body > * { +body { + margin-left: 3ch; +} +* { font:10px/1 Ahem; } +.wrapper { + display: inline-block; + position: relative; + height: 2em; + width: 5em; + border: 1px solid black; + margin: 1px; + vertical-align: top; +} +.wrapper > * { padding:0; margin:0; border:none; - font:5px/1 Ahem; } ::marker { content: 'M'; } .after::after { content: 'A'; } .before::before { content: 'B'; } - @@ -53,12 +63,16 @@ body > * { for (var p of position) { for (var c of classes) { for (var t of tags) { + let wrapper = document.createElement("div"); + wrapper.className = "wrapper"; let elem = document.createElement(t); elem.style = d + ';' + o + ';' + p + ';' elem.className = c; - let option = document.createElement("option"); // need an empty option to get same line-height + let option = document.createElement("option"); + option.append(document.createTextNode("X")); elem.append(option); - body.append(elem); + wrapper.appendChild(elem); + body.append(wrapper); } } } @@ -67,6 +81,5 @@ body > * { document.body.style.display = ''; - diff --git a/tests/wpt/tests/css/css-content/content-none-select-1.html b/tests/wpt/tests/css/css-content/content-none-select-1.html index 450dd66e216..73fe4b0d04f 100644 --- a/tests/wpt/tests/css/css-content/content-none-select-1.html +++ b/tests/wpt/tests/css/css-content/content-none-select-1.html @@ -9,25 +9,36 @@ + - + @@ -58,16 +69,16 @@ body > * { for (var p of position) { for (var c of classes) { for (var t of tags) { + let wrapper = document.createElement("div"); + wrapper.className = "wrapper"; let elem = document.createElement(t); elem.style = d + ';' + o + ';' + p + ';' elem.className = c; let option = document.createElement("option"); - option.append(document.createTextNode("FAIL")); + option.append(document.createTextNode("X")); elem.append(option); - option = document.createElement("option"); - option.append(document.createTextNode("FAIL")); - elem.append(option); - body.append(elem); + wrapper.appendChild(elem); + body.append(wrapper); } } } @@ -76,6 +87,5 @@ body > * { document.body.style.display = ''; - diff --git a/tests/wpt/tests/css/css-content/content-none-select-2-ref.html b/tests/wpt/tests/css/css-content/content-none-select-2-ref.html deleted file mode 100644 index 4848b57d957..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-select-2-ref.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - Reference: content:none on SELECT size=2 - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-select-2.html b/tests/wpt/tests/css/css-content/content-none-select-2.html deleted file mode 100644 index 4b8f0f5c324..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-select-2.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - CSS Content: content:none on SELECT size=2 - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-span-dynamic.html b/tests/wpt/tests/css/css-content/content-none-span-dynamic.html deleted file mode 100644 index 078be9928a6..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-span-dynamic.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - CSS Content: content:none on SPAN with dynamically inserted children - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-span-ref.html b/tests/wpt/tests/css/css-content/content-none-span-ref.html deleted file mode 100644 index cec124a3d45..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-span-ref.html +++ /dev/null @@ -1,68 +0,0 @@ - - - - - Reference: content:none on SPAN - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-span.html b/tests/wpt/tests/css/css-content/content-none-span.html deleted file mode 100644 index b963869cfee..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-span.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - CSS Content: content:none on SPAN - - - - - - - - - - - - - - - diff --git a/tests/wpt/tests/css/css-content/content-none-table-ref.html b/tests/wpt/tests/css/css-content/content-none-table-ref.html deleted file mode 100644 index ec5d1672106..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-table-ref.html +++ /dev/null @@ -1,49 +0,0 @@ - - - - - Reference: content:none on various table boxes - - - - - - - -
-
-
-
- -
PASS
-
PASS
-
PASS
- - - - - - -PASS -PASS -PASS - - - diff --git a/tests/wpt/tests/css/css-content/content-none-table.html b/tests/wpt/tests/css/css-content/content-none-table.html deleted file mode 100644 index 723e2e41467..00000000000 --- a/tests/wpt/tests/css/css-content/content-none-table.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - CSS Content: content:none on various table boxes - - - - - - - - - - - -
FAILFAIL
-
FAILFAIL
-
FAILFAIL
-
FAILFAIL
- -
FAILFAILPASS
-
FAILFAIL
PASS
-
FAILFAIL
PASS
- -FAILFAIL -FAILFAIL -FAILFAIL -FAILFAIL - -FAILFAILPASS -FAILFAILPASS -FAILFAILPASS - - - diff --git a/tests/wpt/tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006.html b/tests/wpt/tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006.html index 3c03636b35e..c36a6d15747 100644 --- a/tests/wpt/tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006.html +++ b/tests/wpt/tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006.html @@ -51,7 +51,7 @@ https://www.w3.org/TR/css-align-3/#propdef-align-self -->
-
+

diff --git a/tests/wpt/tests/css/css-flexbox/alignment/flex-align-baseline-column-vert-lr-rtl-wrap-reverse.html b/tests/wpt/tests/css/css-flexbox/alignment/flex-align-baseline-column-vert-lr-rtl-wrap-reverse.html index 767c129b057..318c6036274 100644 --- a/tests/wpt/tests/css/css-flexbox/alignment/flex-align-baseline-column-vert-lr-rtl-wrap-reverse.html +++ b/tests/wpt/tests/css/css-flexbox/alignment/flex-align-baseline-column-vert-lr-rtl-wrap-reverse.html @@ -2,7 +2,7 @@ - +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-048.html b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-048.html new file mode 100644 index 00000000000..0943502fcf5 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-048.html @@ -0,0 +1,72 @@ + + + CSS Gap Decorations: Grid gaps are painted with multiple line-colors values for *-rule-colors. Tests + number of leading colors + trailing colors equal to number of gaps. + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-049-ref.html b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-049-ref.html new file mode 100644 index 00000000000..fda312af62d --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-049-ref.html @@ -0,0 +1,135 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-049.html b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-049.html new file mode 100644 index 00000000000..7eeeb0341d9 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-049.html @@ -0,0 +1,72 @@ + + + CSS Gap Decorations: Grid gaps are painted with multiple line-colors values for *-rule-colors. Tests + that an auto repeater color is the last value. + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-050-ref.html b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-050-ref.html new file mode 100644 index 00000000000..72dbb2c3385 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-050-ref.html @@ -0,0 +1,135 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-050.html b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-050.html new file mode 100644 index 00000000000..93b160bdc11 --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-050.html @@ -0,0 +1,71 @@ + + + CSS Gap Decorations: Grid gaps are painted with multiple line-colors values for *-rule-colors. + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-051-ref.html b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-051-ref.html new file mode 100644 index 00000000000..cafaa519cce --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-051-ref.html @@ -0,0 +1,135 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
diff --git a/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-051.html b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-051.html new file mode 100644 index 00000000000..9197ffd1dac --- /dev/null +++ b/tests/wpt/tests/css/css-gaps/grid/grid-gap-decorations-051.html @@ -0,0 +1,72 @@ + + + CSS Gap Decorations: Grid gaps are painted with multiple line-colors values for *-rule-colors. + Tests the case where number of trailing decorations is greater than the number of trailing gaps. + + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding-ref.html b/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding-ref.html new file mode 100644 index 00000000000..f9b3436eebb --- /dev/null +++ b/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding-ref.html @@ -0,0 +1,30 @@ + + + + + + +
+
+
+ + diff --git a/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding.html b/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding.html new file mode 100644 index 00000000000..e238346f14d --- /dev/null +++ b/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-large-border-padding.html @@ -0,0 +1,35 @@ + + + + + + + + + + +
+
+
+ + diff --git a/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-ref.html b/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-ref.html new file mode 100644 index 00000000000..3f6fd20356c --- /dev/null +++ b/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center-ref.html @@ -0,0 +1,24 @@ + + + + + + +
+
+
+ + diff --git a/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center.html b/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center.html new file mode 100644 index 00000000000..3d0ef3348d0 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-center.html @@ -0,0 +1,29 @@ + + + + + + + + + + +
+
+
+ + diff --git a/tests/wpt/tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-001.html b/tests/wpt/tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-001.html new file mode 100644 index 00000000000..30871f380f0 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-001.html @@ -0,0 +1,34 @@ + +CSS Grid Layout Test: Grid container sizing with an orthogonal grid item using percentage sizes + + + + + + + + +

Test passes if there is a filled green square.

+
+
+ +
+
diff --git a/tests/wpt/tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-002.html b/tests/wpt/tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-002.html new file mode 100644 index 00000000000..3787d1690ee --- /dev/null +++ b/tests/wpt/tests/css/css-grid/grid-items/grid-size-with-orthogonal-child-002.html @@ -0,0 +1,32 @@ + +CSS Grid Layout Test: Grid container sizing with an orthogonal grid item + + + + + + + + +

Test passes if there is a filled green square.

+
+
+ +
+
diff --git a/tests/wpt/tests/css/css-images/object-fit-contain-png-001-ref.html b/tests/wpt/tests/css/css-images/object-fit-contain-png-001-ref.html index b9f158093e7..c0de70405a6 100644 --- a/tests/wpt/tests/css/css-images/object-fit-contain-png-001-ref.html +++ b/tests/wpt/tests/css/css-images/object-fit-contain-png-001-ref.html @@ -18,6 +18,7 @@ background-image: url("support/colors-16x8.png"); background-size: contain; background-repeat: no-repeat; + image-rendering: pixelated; /* for UAs that don't support crisp-edges */ image-rendering: crisp-edges; } .bigWide { diff --git a/tests/wpt/tests/css/css-images/object-fit-contain-png-001c.html b/tests/wpt/tests/css/css-images/object-fit-contain-png-001c.html index 0f8195157e3..4a3f2d7bdb5 100644 --- a/tests/wpt/tests/css/css-images/object-fit-contain-png-001c.html +++ b/tests/wpt/tests/css/css-images/object-fit-contain-png-001c.html @@ -12,12 +12,12 @@ - diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-001.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-001.html new file mode 100644 index 00000000000..b8ba9872f99 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-001.html @@ -0,0 +1,40 @@ + + + +CSS Overflow: line-clamp ellipsis repaint tests + + + + + + + +

The ellipsis should appear right after the end of the first line.

+ +
+ Some text here
+ This line gets clamped +
+ + diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-002.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-002.html new file mode 100644 index 00000000000..321d7ef0931 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-002.html @@ -0,0 +1,37 @@ + + + +CSS Overflow: line-clamp ellipsis repaint tests + + + + + + + +

The ellipsis should appear right after the end of the second line.

+ +
+ Line 1
+ Line 2
+ Line 3 +
+ + diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-003.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-003.html new file mode 100644 index 00000000000..cf902c627e7 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-003.html @@ -0,0 +1,59 @@ + + + +CSS Overflow: line-clamp ellipsis repaint tests + + + + + + + +

The ellipsis should appear inside the pink box.

+ +
+
+ Line 1
+ + Line 2 +
+ + diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-004.html b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-004.html new file mode 100644 index 00000000000..23c32d40942 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/block-ellipsis-repaint-004.html @@ -0,0 +1,46 @@ + + + +CSS Overflow: line-clamp ellipsis repaint tests + + + + + + + +

The ellipsis should be bold and twice as large as the rest of the text.

+ +
+ + Line 1
+ Line 2
+ Line 3
+ Line 4 +
+
+ + diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-001-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-001-ref.html new file mode 100644 index 00000000000..8a805980b2e --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-001-ref.html @@ -0,0 +1,14 @@ + + +CSS Reference + + +

The ellipsis should appear right after the end of the first line.

+ +
Some text here…
diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-002-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-002-ref.html new file mode 100644 index 00000000000..b26e59787be --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-002-ref.html @@ -0,0 +1,21 @@ + + +CSS Reference + + +

The ellipsis should appear right after the end of the second line.

+ +
+ Line 1
+ Line 2… +
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-003-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-003-ref.html new file mode 100644 index 00000000000..95c319f38be --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-003-ref.html @@ -0,0 +1,24 @@ + + +CSS Reference + + +

The ellipsis should appear inside the pink box.

+ +
+ Line 1
+ +
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-004-ref.html b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-004-ref.html new file mode 100644 index 00000000000..ec5756fb1c8 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/line-clamp/reference/block-ellipsis-repaint-004-ref.html @@ -0,0 +1,23 @@ + + +CSS Reference + + +

The ellipsis should be bold and twice as large as the rest of the text.

+ +
+ Line 1
+ Line 2
+ Line 3 +
\ No newline at end of file diff --git a/tests/wpt/tests/css/css-overflow/scroll-button-and-scroll-marker-not-in-event-path.html b/tests/wpt/tests/css/css-overflow/scroll-button-and-scroll-marker-not-in-event-path.html new file mode 100644 index 00000000000..01958954841 --- /dev/null +++ b/tests/wpt/tests/css/css-overflow/scroll-button-and-scroll-marker-not-in-event-path.html @@ -0,0 +1,89 @@ + +CSS Overflow Test: ::scroll-button and ::scroll-marker pseudo-elements are not present in event path + + + + + + + + +
+
+
+ diff --git a/tests/wpt/tests/css/css-scroll-snap/snap-after-relayout/resnap-on-overflowing-snap-area.html b/tests/wpt/tests/css/css-scroll-snap/snap-after-relayout/resnap-on-overflowing-snap-area.html new file mode 100644 index 00000000000..e0af5f31587 --- /dev/null +++ b/tests/wpt/tests/css/css-scroll-snap/snap-after-relayout/resnap-on-overflowing-snap-area.html @@ -0,0 +1,61 @@ + + + + + + + +
+
1
+
2
+
+ diff --git a/tests/wpt/tests/css/css-scroll-snap/snap-at-user-scroll-end.html b/tests/wpt/tests/css/css-scroll-snap/snap-at-user-scroll-end.html index 8643b3c1486..0ed0b07fd56 100644 --- a/tests/wpt/tests/css/css-scroll-snap/snap-at-user-scroll-end.html +++ b/tests/wpt/tests/css/css-scroll-snap/snap-at-user-scroll-end.html @@ -6,6 +6,7 @@ + -
-

CSSScrollSnap

-

Tests that the window can snap at user scroll end.

-
    -
  1. - Scroll the page vertically and horizontally. - Keep scrolling until background has turned yellow.
  2. -
  3. Press the button "Done"
  4. -
- +
- diff --git a/tests/wpt/tests/css/css-text-decor/parsing/text-decoration-computed.html b/tests/wpt/tests/css/css-text-decor/parsing/text-decoration-computed.html index c0783969ab3..94804170b4b 100644 --- a/tests/wpt/tests/css/css-text-decor/parsing/text-decoration-computed.html +++ b/tests/wpt/tests/css/css-text-decor/parsing/text-decoration-computed.html @@ -19,12 +19,12 @@ diff --git a/tests/wpt/tests/css/css-text/text-spacing-trim/text-spacing-trim-fallback-001-ref.html b/tests/wpt/tests/css/css-text/text-spacing-trim/text-spacing-trim-fallback-001-ref.html index d3f72b2ecee..cf508615712 100644 --- a/tests/wpt/tests/css/css-text/text-spacing-trim/text-spacing-trim-fallback-001-ref.html +++ b/tests/wpt/tests/css/css-text/text-spacing-trim/text-spacing-trim-fallback-001-ref.html @@ -17,4 +17,7 @@ halt {
:国
:国
+
:国
+
国。
+
国。
diff --git a/tests/wpt/tests/css/css-text/text-spacing-trim/text-spacing-trim-fallback-001.html b/tests/wpt/tests/css/css-text/text-spacing-trim/text-spacing-trim-fallback-001.html index 1a13be3b306..3c31fec2cb0 100644 --- a/tests/wpt/tests/css/css-text/text-spacing-trim/text-spacing-trim-fallback-001.html +++ b/tests/wpt/tests/css/css-text/text-spacing-trim/text-spacing-trim-fallback-001.html @@ -11,6 +11,10 @@ font-family: halt-3002; src: url('/fonts/noto/cjk/NotoSansCJKjp-Regular-subset-halt-3002.otf'); } +@font-face { + font-family: halt-300C; + src: url('/fonts/noto/cjk/NotoSansCJKjp-Regular-subset-halt-300C.otf'); +} @font-face { font-family: halt-FF1A; src: url('/fonts/noto/cjk/NotoSansCJKjp-Regular-subset-halt-FF1A.otf'); @@ -23,4 +27,7 @@
国。:国
国。:国
+
国。:国
+
国。「国
+
国。「国
diff --git a/tests/wpt/tests/css/css-values/if-conditionals.html b/tests/wpt/tests/css/css-values/if-conditionals.html index a299b267af5..1167172e542 100644 --- a/tests/wpt/tests/css/css-values/if-conditionals.html +++ b/tests/wpt/tests/css/css-values/if-conditionals.html @@ -528,6 +528,9 @@ // style() queries with range syntax in the condition, literals on both sides of equation test_if_with_custom_properties('if(style(5 > 3): true_value; else: false_value)', [], 'true_value'); + test_if_with_custom_properties('if(style(5 > 3 !invalid): true_value; else: false_value)', [], 'false_value'); + test_if_with_custom_properties('if(style(5 !invalid > 3): true_value; else: false_value)', [], 'false_value'); + test_if_with_custom_properties('if(style(5 > 3 !): true_value; else: false_value)', [], 'false_value'); test_if_with_custom_properties('if(style(5.5 > 3): true_value; else: false_value)', [], 'true_value'); test_if_with_custom_properties('if(style(5.5 > 3.3): true_value; else: false_value)', [], 'true_value'); test_if_with_custom_properties('if(style(10em > 3px): true_value; else: false_value)', [], 'true_value'); @@ -539,6 +542,11 @@ test_if_with_custom_properties('if(style(3% >= 3%): true_value; else: false_value)', [], 'true_value'); test_if_with_custom_properties('if(style(3s > 3ms): true_value; else: false_value)', [], 'true_value'); test_if_with_custom_properties('if(style(3dppx > 96dpi): true_value; else: false_value)', [], 'true_value'); + test_if_with_custom_properties(`if(style(--length > initial): true_value; + else: false_value)`, + [['--length', '5px']], + 'false_value'); + test_if_with_custom_properties('if(style(--x = initial): true_value; else: false_value)', [['--x', 'initial']], 'false_value'); // style() queries with range syntax in the condition, simple custom properties in the condition test_if_with_custom_properties('if(style(--x <= 3): true_value; else: false_value)', diff --git a/tests/wpt/tests/css/css-values/if-range-with-attr-crash.html b/tests/wpt/tests/css/css-values/if-range-with-attr-crash.html new file mode 100644 index 00000000000..0943f185624 --- /dev/null +++ b/tests/wpt/tests/css/css-values/if-range-with-attr-crash.html @@ -0,0 +1,14 @@ + +CSS Values and Units Test: invalid attr() syntax inside if style range + + +
+ Pass if loading this page does not crash. +
diff --git a/tests/wpt/tests/css/css-values/progress-invalid.html b/tests/wpt/tests/css/css-values/progress-invalid.html index f135487e1c4..1d6993a8954 100644 --- a/tests/wpt/tests/css/css-values/progress-invalid.html +++ b/tests/wpt/tests/css/css-values/progress-invalid.html @@ -41,4 +41,6 @@ test_invalid_number('progress(5, 0%, sign(10px)'); test_invalid_number('progress(5%, 0px, 10px'); test_invalid_length('calc(1px * progress(10deg, 0, 10))'); test_invalid_length('calc(1px * progress(10, 0px, 10))'); +test_invalid_number('progress(10px * 10px, 10px * 10px, 10px * 10px)'); +test_invalid_number('progress(10px, 10px * 10px, 10px * 10px)'); diff --git a/tests/wpt/tests/css/css-values/typed-arithmetic-inside-calc-crash.html b/tests/wpt/tests/css/css-values/typed-arithmetic-inside-calc-crash.html new file mode 100644 index 00000000000..485c9967a97 --- /dev/null +++ b/tests/wpt/tests/css/css-values/typed-arithmetic-inside-calc-crash.html @@ -0,0 +1,6 @@ + +CSS Values Test: typed arithmetic inside css math functions crash + +
+
+
diff --git a/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-anonymous-negative.sub.html b/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-anonymous-negative.sub.html similarity index 68% rename from tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-anonymous-negative.sub.html rename to tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-anonymous-negative.sub.html index f5066a55d2b..c0eb5d45148 100644 --- a/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-anonymous-negative.sub.html +++ b/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-anonymous-negative.sub.html @@ -1,17 +1,17 @@ -Request URL Modifiers: crossorigin(anonymous) - +Request URL Modifiers: cross-origin(anonymous) + - + diff --git a/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-anonymous.sub.html b/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-anonymous.sub.html similarity index 72% rename from tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-anonymous.sub.html rename to tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-anonymous.sub.html index 0a45eda33d7..83ce64f57dd 100644 --- a/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-anonymous.sub.html +++ b/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-anonymous.sub.html @@ -1,17 +1,17 @@ -Request URL Modifiers: crossorigin(anonymous) - +Request URL Modifiers: cross-origin(anonymous) + - + diff --git a/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-use-credentials-negative.sub.html b/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-use-credentials-negative.sub.html similarity index 67% rename from tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-use-credentials-negative.sub.html rename to tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-use-credentials-negative.sub.html index 952f953d844..73fc57dcbd4 100644 --- a/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-use-credentials-negative.sub.html +++ b/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-use-credentials-negative.sub.html @@ -1,17 +1,17 @@ -Request URL Modifiers: crossorigin(use-credentials) - +Request URL Modifiers: cross-origin(use-credentials) + - + diff --git a/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-use-credentials.sub.html b/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-use-credentials.sub.html similarity index 71% rename from tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-use-credentials.sub.html rename to tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-use-credentials.sub.html index f592a02c486..a978de931fe 100644 --- a/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-crossorigin-use-credentials.sub.html +++ b/tests/wpt/tests/css/css-values/urls/cross-origin/url-image-cross-origin-use-credentials.sub.html @@ -1,17 +1,17 @@ -Request URL Modifiers: crossorigin(use-credentials) - +Request URL Modifiers: cross-origin(use-credentials) + - + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-cross-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-cross-origin.sub.html similarity index 63% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-cross-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-cross-origin.sub.html index ce51df67c02..e960d92fe70 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-cross-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-cross-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(no-referrer-when-downgrade) - +Request URL Modifiers: referrer-policy(no-referrer-when-downgrade) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-same-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-same-origin.sub.html similarity index 63% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-same-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-same-origin.sub.html index 6860e7386bf..b374f717629 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrerpolicy-same-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer-when-downgrade/url-image-referrer-policy-same-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(no-referrer-when-downgrade) - +Request URL Modifiers: referrer-policy(no-referrer-when-downgrade) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-cross-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-cross-origin.sub.html similarity index 65% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-cross-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-cross-origin.sub.html index 30a52a848a4..dbfd63b23e6 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-cross-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-cross-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(no-referrer) - +Request URL Modifiers: referrer-policy(no-referrer) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-same-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-same-origin.sub.html similarity index 65% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-same-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-same-origin.sub.html index ebbff834b92..c25f059ded9 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrerpolicy-same-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/no-referrer/url-image-referrer-policy-same-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(no-referrer) - +Request URL Modifiers: referrer-policy(no-referrer) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html similarity index 64% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html index 6285f2f0e5d..600f2b17c72 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(origin-when-cross-origin) - +Request URL Modifiers: referrer-policy(origin-when-cross-origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html similarity index 64% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html index eb4e081e940..469bbdcdf43 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(origin-when-cross-origin) - +Request URL Modifiers: referrer-policy(origin-when-cross-origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-cross-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-cross-origin.sub.html similarity index 66% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-cross-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-cross-origin.sub.html index 14a8172d6e3..5bf82ea7497 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-cross-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-cross-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(origin) - +Request URL Modifiers: referrer-policy(origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-same-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-same-origin.sub.html similarity index 66% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-same-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-same-origin.sub.html index 1cc6f011c12..378c24c9e1d 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrerpolicy-same-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/origin/url-image-referrer-policy-same-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(origin) - +Request URL Modifiers: referrer-policy(origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-cross-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-cross-origin.sub.html similarity index 65% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-cross-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-cross-origin.sub.html index de23eb1f095..3c2280ef1f0 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-cross-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-cross-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(same-origin) - +Request URL Modifiers: referrer-policy(same-origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-same-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-same-origin.sub.html similarity index 65% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-same-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-same-origin.sub.html index 866affc6d9f..62ba453f92d 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrerpolicy-same-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/same-origin/url-image-referrer-policy-same-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(same-origin) - +Request URL Modifiers: referrer-policy(same-origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html similarity index 63% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html index 1e66fbf659f..c90b28fc01e 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-cross-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-cross-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(strict-origin-when-cross-origin) - +Request URL Modifiers: referrer-policy(strict-origin-when-cross-origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html similarity index 63% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html index 57f5351a5a1..92a32895932 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrerpolicy-same-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin-when-cross-origin/url-image-referrer-policy-same-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(strict-origin-when-cross-origin) - +Request URL Modifiers: referrer-policy(strict-origin-when-cross-origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-cross-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-cross-origin.sub.html similarity index 65% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-cross-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-cross-origin.sub.html index b17ac4b4ef7..8fbbc15cfe4 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-cross-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-cross-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(strict-origin) - +Request URL Modifiers: referrer-policy(strict-origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-same-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-same-origin.sub.html similarity index 65% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-same-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-same-origin.sub.html index dadf1c58d52..678eb9a6d46 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrerpolicy-same-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/strict-origin/url-image-referrer-policy-same-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(strict-origin) - +Request URL Modifiers: referrer-policy(strict-origin) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-cross-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-cross-origin.sub.html similarity index 65% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-cross-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-cross-origin.sub.html index dc5a3d51435..cebe8759157 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-cross-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-cross-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(unsafe-url) - +Request URL Modifiers: referrer-policy(unsafe-url) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-same-origin.sub.html b/tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-same-origin.sub.html similarity index 65% rename from tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-same-origin.sub.html rename to tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-same-origin.sub.html index 7eaba535f14..b7a8497df18 100644 --- a/tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrerpolicy-same-origin.sub.html +++ b/tests/wpt/tests/css/css-values/urls/referrer-policy/unsafe-url/url-image-referrer-policy-same-origin.sub.html @@ -1,12 +1,12 @@ -Request URL Modifiers: referrerpolicy(unsafe-url) - +Request URL Modifiers: referrer-policy(unsafe-url) + - - + + diff --git a/tests/wpt/tests/css/css-values/urls/support/image-referrerpolicy.py b/tests/wpt/tests/css/css-values/urls/support/image-referrer-policy.py similarity index 100% rename from tests/wpt/tests/css/css-values/urls/support/image-referrerpolicy.py rename to tests/wpt/tests/css/css-values/urls/support/image-referrer-policy.py diff --git a/tests/wpt/tests/css/css-values/urls/support/image-referrerpolicy.sub.js b/tests/wpt/tests/css/css-values/urls/support/image-referrer-policy.sub.js similarity index 64% rename from tests/wpt/tests/css/css-values/urls/support/image-referrerpolicy.sub.js rename to tests/wpt/tests/css/css-values/urls/support/image-referrer-policy.sub.js index 4fc9d46218f..52152278d86 100644 --- a/tests/wpt/tests/css/css-values/urls/support/image-referrerpolicy.sub.js +++ b/tests/wpt/tests/css/css-values/urls/support/image-referrer-policy.sub.js @@ -1,8 +1,8 @@ function make_test_url(type, policy, expected) { if (type == "cross-origin") - return `url("http://{{hosts[][]}}:{{ports[http][1]}}/css/css-values/urls/support/image-referrerpolicy.py?expected_referrer=${expected}&origin=${location.origin}/&url=${document.URL}"${policy ? ` referrerpolicy(${policy})` : ``})`; + return `url("http://{{hosts[][]}}:{{ports[http][1]}}/css/css-values/urls/support/image-referrer-policy.py?expected_referrer=${expected}&origin=${location.origin}/&url=${document.URL}"${policy ? ` referrer-policy(${policy})` : ``})`; if (type == "same-origin") - return `url("http://{{hosts[][]}}:{{ports[http][0]}}/css/css-values/urls/support/image-referrerpolicy.py?expected_referrer=${expected}&origin=${location.origin}/&url=${document.URL}"${policy ? ` referrerpolicy(${policy})` : ``})`; + return `url("http://{{hosts[][]}}:{{ports[http][0]}}/css/css-values/urls/support/image-referrer-policy.py?expected_referrer=${expected}&origin=${location.origin}/&url=${document.URL}"${policy ? ` referrer-policy(${policy})` : ``})`; throw `Unknown type: ${type}`; } diff --git a/tests/wpt/tests/css/css-values/urls/url-request-modifiers-computed.sub.html b/tests/wpt/tests/css/css-values/urls/url-request-modifiers-computed.sub.html index bc8c4ad95df..20c570a5c8e 100644 --- a/tests/wpt/tests/css/css-values/urls/url-request-modifiers-computed.sub.html +++ b/tests/wpt/tests/css/css-values/urls/url-request-modifiers-computed.sub.html @@ -12,34 +12,34 @@ // No modifiers test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png")'); -// = crossorigin(anonymous | use-credentials) -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(use-credentials))'); +// = cross-origin(anonymous | use-credentials) +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(use-credentials))'); // = integrity() test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar"))'); test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity(""))'); -// = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url) -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer-when-downgrade))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(same-origin))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(origin))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(strict-origin))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(origin-when-cross-origin))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(strict-origin-when-cross-origin))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(unsafe-url))'); +// = referrer-policy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url) +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer-when-downgrade))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(same-origin))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(origin))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(strict-origin))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(origin-when-cross-origin))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(strict-origin-when-cross-origin))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(unsafe-url))'); // Multiple modifiers -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar"))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") crossorigin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar"))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) referrerpolicy(no-referrer))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer) crossorigin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) referrerpolicy(no-referrer))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrerpolicy(no-referrer) crossorigin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer) crossorigin(anonymous) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer) integrity("sha384-foobar") crossorigin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar") referrerpolicy(no-referrer))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar"))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar"))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) referrer-policy(no-referrer))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) referrer-policy(no-referrer))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer) cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_computed_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar") cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); diff --git a/tests/wpt/tests/css/css-values/urls/url-request-modifiers-invalid.sub.html b/tests/wpt/tests/css/css-values/urls/url-request-modifiers-invalid.sub.html index c30edfbaeaa..f0e1a59053f 100644 --- a/tests/wpt/tests/css/css-values/urls/url-request-modifiers-invalid.sub.html +++ b/tests/wpt/tests/css/css-values/urls/url-request-modifiers-invalid.sub.html @@ -6,15 +6,15 @@ diff --git a/tests/wpt/tests/css/css-values/urls/url-request-modifiers-serialize.sub.html b/tests/wpt/tests/css/css-values/urls/url-request-modifiers-serialize.sub.html index cca9f2ccf9b..e60a0a268d4 100644 --- a/tests/wpt/tests/css/css-values/urls/url-request-modifiers-serialize.sub.html +++ b/tests/wpt/tests/css/css-values/urls/url-request-modifiers-serialize.sub.html @@ -10,34 +10,34 @@ // No modifiers test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png")'); -// = crossorigin(anonymous | use-credentials) -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(use-credentials))'); +// = cross-origin(anonymous | use-credentials) +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(use-credentials))'); // = integrity() test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar"))'); test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity(""))'); -// = referrerpolicy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url) -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer-when-downgrade))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(same-origin))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(origin))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(strict-origin))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(origin-when-cross-origin))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(strict-origin-when-cross-origin))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(unsafe-url))'); +// = referrer-policy(no-referrer | no-referrer-when-downgrade | same-origin | origin | strict-origin | origin-when-cross-origin | strict-origin-when-cross-origin | unsafe-url) +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer-when-downgrade))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(same-origin))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(origin))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(strict-origin))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(origin-when-cross-origin))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(strict-origin-when-cross-origin))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(unsafe-url))'); // Multiple modifiers -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar"))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") crossorigin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar"))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) referrerpolicy(no-referrer))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer) crossorigin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) referrerpolicy(no-referrer))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrerpolicy(no-referrer) crossorigin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer) crossorigin(anonymous) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar") referrerpolicy(no-referrer))'); -test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrerpolicy(no-referrer) integrity("sha384-foobar") crossorigin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" crossorigin(anonymous) integrity("sha384-foobar") referrerpolicy(no-referrer))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar"))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar"))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) referrer-policy(no-referrer))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) referrer-policy(no-referrer))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" integrity("sha384-foobar") referrer-policy(no-referrer) cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) cross-origin(anonymous) integrity("sha384-foobar"))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); +test_valid_value('background-image', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" referrer-policy(no-referrer) integrity("sha384-foobar") cross-origin(anonymous))', 'url("http://{{hosts[][]}}:{{ports[http][0]}}/css/support/1x1-green.png" cross-origin(anonymous) integrity("sha384-foobar") referrer-policy(no-referrer))'); diff --git a/tests/wpt/tests/css/css-view-transitions/column-span-during-transition-doesnt-skip.html b/tests/wpt/tests/css/css-view-transitions/column-span-during-transition-doesnt-skip.html index 67e6b5d5d00..81d4f93eccb 100644 --- a/tests/wpt/tests/css/css-view-transitions/column-span-during-transition-doesnt-skip.html +++ b/tests/wpt/tests/css/css-view-transitions/column-span-during-transition-doesnt-skip.html @@ -1,6 +1,7 @@ View transitions: column-span elements in a fragmented container aren't skipped + @@ -37,10 +38,11 @@ failIfNot(document.startViewTransition, "Missing document.startViewTransition"); function runTransition() { - let t = document.startViewTransition(); + let t = document.startViewTransition(() => { + container.classList.add("fragment") + }); t.ready.then(() => { requestAnimationFrame(() => { - container.classList.add("fragment") requestAnimationFrame(takeScreenshot); }); }); diff --git a/tests/wpt/tests/css/css-view-transitions/nested/group-children-animations.html b/tests/wpt/tests/css/css-view-transitions/nested/group-children-animations.html new file mode 100644 index 00000000000..d4c3aa77818 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/nested/group-children-animations.html @@ -0,0 +1,71 @@ + + +CSS Animations and Web Animations on view transition pseudos + + + + + + + +
+
+
+ + diff --git a/tests/wpt/tests/css/css-view-transitions/nested/group-children-sizing-with-border-props-ref.html b/tests/wpt/tests/css/css-view-transitions/nested/group-children-sizing-with-border-props-ref.html new file mode 100644 index 00000000000..c914fa25218 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/nested/group-children-sizing-with-border-props-ref.html @@ -0,0 +1,58 @@ + + +Nested View Transitions: group children sizing (ref) + + + + +
+
+
+
+
+
+
+
+
+
diff --git a/tests/wpt/tests/css/css-view-transitions/nested/group-children-sizing-with-border-props.html b/tests/wpt/tests/css/css-view-transitions/nested/group-children-sizing-with-border-props.html new file mode 100644 index 00000000000..a3b35d83cf5 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/nested/group-children-sizing-with-border-props.html @@ -0,0 +1,73 @@ + + +Nested View Transitions: group children sizing with border + + + + + + + + + +
+
+
+
+
+
+
+ + + + diff --git a/tests/wpt/tests/css/css-view-transitions/scoped/implicit-contain-ref.html b/tests/wpt/tests/css/css-view-transitions/scoped/implicit-contain-ref.html new file mode 100644 index 00000000000..165296957bf --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/scoped/implicit-contain-ref.html @@ -0,0 +1,20 @@ + + + + + + +
+
+ + diff --git a/tests/wpt/tests/css/css-view-transitions/scoped/implicit-contain.html b/tests/wpt/tests/css/css-view-transitions/scoped/implicit-contain.html new file mode 100644 index 00000000000..03368e850f2 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/scoped/implicit-contain.html @@ -0,0 +1,44 @@ + + + + + + + + + + +
+
+ + + diff --git a/tests/wpt/tests/css/css-viewport/zoom/zoom-pseudo-image-ref.html b/tests/wpt/tests/css/css-viewport/zoom/zoom-pseudo-image-ref.html new file mode 100644 index 00000000000..2378659761f --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/zoom-pseudo-image-ref.html @@ -0,0 +1,33 @@ + + + +
+
+ +
+
+
+
+ +
+
diff --git a/tests/wpt/tests/css/css-viewport/zoom/zoom-pseudo-image.html b/tests/wpt/tests/css/css-viewport/zoom/zoom-pseudo-image.html new file mode 100644 index 00000000000..3a79995dc6b --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/zoom-pseudo-image.html @@ -0,0 +1,31 @@ + + + + + + + + +
+
diff --git a/tests/wpt/tests/css/css-writing-modes/text-combine-upright-gen-con-001-ref.html b/tests/wpt/tests/css/css-writing-modes/text-combine-upright-gen-con-001-ref.html new file mode 100644 index 00000000000..521a3f0c4a2 --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/text-combine-upright-gen-con-001-ref.html @@ -0,0 +1,34 @@ + + + +CSS Writing Modes reference + + + + +Both boxes should render the same: + +
+

1test

+

(2)test

+

(3.a)test

+

你好hello

+
+ +
+

1test

+

(2)test

+

(3.a)test

+

你好hello

+
diff --git a/tests/wpt/tests/css/css-writing-modes/text-combine-upright-gen-con-001.html b/tests/wpt/tests/css/css-writing-modes/text-combine-upright-gen-con-001.html new file mode 100644 index 00000000000..88e1ef16a94 --- /dev/null +++ b/tests/wpt/tests/css/css-writing-modes/text-combine-upright-gen-con-001.html @@ -0,0 +1,57 @@ + + + +CSS Writing Modes test: text-combine-upright with generated content + + + + + + + + +Both boxes should render the same: + +
+

1test

+

(2)test

+

(3.a)test

+

你好hello

+
+ +
+

test

+

test

+

test

+

你好

+
diff --git a/tests/wpt/tests/css/cssom-view/offsetParent-fixed.html b/tests/wpt/tests/css/cssom-view/offsetParent-fixed.html new file mode 100644 index 00000000000..a2c4255a777 --- /dev/null +++ b/tests/wpt/tests/css/cssom-view/offsetParent-fixed.html @@ -0,0 +1,61 @@ + + + + + + + + + + +
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ + + \ No newline at end of file diff --git a/tests/wpt/tests/css/filter-effects/backdrop-filter-plus-filter.html b/tests/wpt/tests/css/filter-effects/backdrop-filter-plus-filter.html index 5c83faae868..e68d28ce6ca 100644 --- a/tests/wpt/tests/css/filter-effects/backdrop-filter-plus-filter.html +++ b/tests/wpt/tests/css/filter-effects/backdrop-filter-plus-filter.html @@ -4,7 +4,7 @@ - +

Expected: A green box with an overlapping purple box.
The overlapping portion of the boxes should be bright magenta.
diff --git a/tests/wpt/tests/css/filter-effects/crashtests/kernelUnitLength-crash.html b/tests/wpt/tests/css/filter-effects/crashtests/kernelUnitLength-crash.html new file mode 100644 index 00000000000..adb769bc060 --- /dev/null +++ b/tests/wpt/tests/css/filter-effects/crashtests/kernelUnitLength-crash.html @@ -0,0 +1,12 @@ + +

+ + + + + +
diff --git a/tests/wpt/tests/css/mediaqueries/at-custom-media-cssom.html b/tests/wpt/tests/css/mediaqueries/at-custom-media-cssom.html new file mode 100644 index 00000000000..1b018592c3f --- /dev/null +++ b/tests/wpt/tests/css/mediaqueries/at-custom-media-cssom.html @@ -0,0 +1,142 @@ + +CSS Custom Media Queries: CSSOM + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/custom-elements/behaves-like-button-with-popover.tentative.html b/tests/wpt/tests/custom-elements/behaves-like-button-with-popover.tentative.html new file mode 100644 index 00000000000..13f6aebc431 --- /dev/null +++ b/tests/wpt/tests/custom-elements/behaves-like-button-with-popover.tentative.html @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + +
+ Test popover for custom element button behavior +
+ + + + + diff --git a/tests/wpt/tests/custom-elements/behaves-like-button.tentative.html b/tests/wpt/tests/custom-elements/behaves-like-button.tentative.html deleted file mode 100644 index 719ce316681..00000000000 --- a/tests/wpt/tests/custom-elements/behaves-like-button.tentative.html +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - -
- popover invoked by autonomous custom element with ElementInternals.type=button -
- - - - - diff --git a/tests/wpt/tests/digital-credentials/create.tentative.https.html b/tests/wpt/tests/digital-credentials/create.tentative.https.html index 3e17d5b0853..a6e0114e33d 100644 --- a/tests/wpt/tests/digital-credentials/create.tentative.https.html +++ b/tests/wpt/tests/digital-credentials/create.tentative.https.html @@ -217,4 +217,31 @@ await promise_rejects_js(t, TypeError, navigator.credentials.create(options)); } }, "Mediation is required to create a DigitalCredential."); + + promise_test(async (t) => { + await promise_rejects_js( + t, + TypeError, + navigator.credentials.create({digital: {}})); + }, "`requests` field is required in the options object."); + + promise_test(async (t) => { + const throwingValues = [ + BigInt(123), + (() => { const o = {}; o.self = o; return o; })(), + Symbol("foo") + ]; + + for (const badValue of throwingValues) { + const options = makeCreateOptions("openid4vci"); + options.digital.requests[0].data = badValue; + + await promise_rejects_js( + t, + TypeError, + navigator.credentials.create(options), + `Should throw for: ${String(badValue)}` + ); + } + }, "Throws TypeError when request data is not JSON stringifiable."); diff --git a/tests/wpt/tests/digital-credentials/get.tentative.https.html b/tests/wpt/tests/digital-credentials/get.tentative.https.html index 7c1e6631da7..1549bba673b 100644 --- a/tests/wpt/tests/digital-credentials/get.tentative.https.html +++ b/tests/wpt/tests/digital-credentials/get.tentative.https.html @@ -107,8 +107,12 @@ }, "Calling navigator.credentials.get() without a digital member same origin."); promise_test(async (t) => { - for (const request of [undefined, []]) { - const options = makeGetOptions(request); + for (const r of [undefined, []]) { + const options = { + digital: { + requests: r + }, + }; await test_driver.bless("user activation"); await promise_rejects_js( t, @@ -121,8 +125,12 @@ promise_test(async (t) => { iframeSameOrigin.focus(); const { contentWindow: iframeWindow } = iframeSameOrigin; - for (const request of [undefined, []]) { - const options = makeGetOptions(request); + for (const r of [undefined, []]) { + const options = { + digital: { + requests: r + }, + }; await test_driver.bless("user activation"); await promise_rejects_js( t, @@ -134,8 +142,12 @@ promise_test(async (t) => { iframeCrossOrigin.focus(); - for (const request of [undefined, []]) { - const options = makeGetOptions(request); + for (const r of [undefined, []]) { + const options = { + digital: { + requests: r + }, + }; const result = await sendMessage(iframeCrossOrigin, { action: "get", options, @@ -251,4 +263,11 @@ promise_test(async t => { ); } }, "Throws TypeError when request data is not JSON stringifiable."); + +promise_test(async (t) => { + await promise_rejects_js( + t, + TypeError, + navigator.credentials.get({digital: {}})); + }, "`requests` field is required in the options object."); diff --git a/tests/wpt/tests/editing/crashtests/insertHTML-before-comment-at-end-of-editing-host.html b/tests/wpt/tests/editing/crashtests/insertHTML-before-comment-at-end-of-editing-host.html new file mode 100644 index 00000000000..57f32a367a4 --- /dev/null +++ b/tests/wpt/tests/editing/crashtests/insertHTML-before-comment-at-end-of-editing-host.html @@ -0,0 +1,20 @@ + + + + + + + + +
+ +
+ diff --git a/tests/wpt/tests/editing/other/mathml-html-serializtion-on-copy.html b/tests/wpt/tests/editing/other/mathml-html-serializtion-on-copy.html new file mode 100644 index 00000000000..4440bf87d77 --- /dev/null +++ b/tests/wpt/tests/editing/other/mathml-html-serializtion-on-copy.html @@ -0,0 +1,76 @@ + + +MathML HTML serialization on copy + + + + + + + +
+ + + x + + + 1 + + + a + 2 + + + b + 1 + + + 1 + 2 + + + x + + + + + text + + + string + + + + +
+ +
+ + diff --git a/tests/wpt/tests/element-timing/text-not-observed-when-changed.html b/tests/wpt/tests/element-timing/text-not-observed-when-changed.html new file mode 100644 index 00000000000..baabf87cdcd --- /dev/null +++ b/tests/wpt/tests/element-timing/text-not-observed-when-changed.html @@ -0,0 +1,52 @@ + + +Element Timing: text not observed when changed + + + + + +

This is some text

+
+ + diff --git a/tests/wpt/tests/encrypted-media/scripts/setmediakeys-to-multiple-video-elements.js b/tests/wpt/tests/encrypted-media/scripts/setmediakeys-to-multiple-video-elements.js index 4c7faef69d0..843d37e7a52 100644 --- a/tests/wpt/tests/encrypted-media/scripts/setmediakeys-to-multiple-video-elements.js +++ b/tests/wpt/tests/encrypted-media/scripts/setmediakeys-to-multiple-video-elements.js @@ -35,7 +35,9 @@ function runTest(config, qualifier) { assert_equals(_video2.mediaKeys, _mediaKeys); return Promise.resolve(); }, function(error) { - assert_equals(error.name, 'QuotaExceededError'); + assert_equals(error.constructor, globalThis.QuotaExceededError, 'QuotaExceededError constructor match'); + assert_equals(error.quota, null, 'quota'); + assert_equals(error.requested, null, 'requested'); assert_not_equals(error.message, ''); // Return something so the promise resolves properly. return Promise.resolve(); @@ -51,4 +53,4 @@ function runTest(config, qualifier) { test.done(); }).catch(onFailure); }, testname); -} \ No newline at end of file +} diff --git a/tests/wpt/tests/fedcm/fedcm-accounts-endpoint-rejects-redirects.https.html b/tests/wpt/tests/fedcm/fedcm-accounts-endpoint-rejects-redirects.https.html index ae3b52a5789..8e0edef19f9 100644 --- a/tests/wpt/tests/fedcm/fedcm-accounts-endpoint-rejects-redirects.https.html +++ b/tests/wpt/tests/fedcm/fedcm-accounts-endpoint-rejects-redirects.https.html @@ -10,12 +10,9 @@ import {request_options_with_mediation_required, fedcm_test, select_manifest, - mark_signed_in, fedcm_get_dialog_type_promise} from './support/fedcm-helper.sub.js'; fedcm_test(async t => { - await mark_signed_in(); - let test_options = request_options_with_mediation_required("manifest_redirect_accounts.json"); await select_manifest(t, test_options); diff --git a/tests/wpt/tests/fedcm/fedcm-auto-reauthn-without-approved-clients.https.html b/tests/wpt/tests/fedcm/fedcm-auto-reauthn-without-approved-clients.https.html index fb93cb632db..c87cd095654 100644 --- a/tests/wpt/tests/fedcm/fedcm-auto-reauthn-without-approved-clients.https.html +++ b/tests/wpt/tests/fedcm/fedcm-auto-reauthn-without-approved-clients.https.html @@ -9,12 +9,10 @@ @@ -10,7 +11,6 @@ - - - - - \ No newline at end of file diff --git a/tests/wpt/tests/fedcm/fedcm-login-status/confirm-idp-login.https.html b/tests/wpt/tests/fedcm/fedcm-login-status/confirm-idp-login.https.html index 174cdafd502..c77286db331 100644 --- a/tests/wpt/tests/fedcm/fedcm-login-status/confirm-idp-login.https.html +++ b/tests/wpt/tests/fedcm/fedcm-login-status/confirm-idp-login.https.html @@ -10,12 +10,9 @@ import {request_options_with_mediation_required, fedcm_test, fedcm_get_dialog_type_promise, - select_manifest, - mark_signed_in} from '../support/fedcm-helper.sub.js'; + select_manifest} from '../support/fedcm-helper.sub.js'; fedcm_test(async t => { - await mark_signed_in(); - let test_options = request_options_with_mediation_required("manifest_with_variable_accounts.json"); await select_manifest(t, test_options); diff --git a/tests/wpt/tests/fedcm/fedcm-login-status/login-page-broken.https.html b/tests/wpt/tests/fedcm/fedcm-login-status/login-page-broken.https.html index cda9ee4fd50..06be5e48ed3 100644 --- a/tests/wpt/tests/fedcm/fedcm-login-status/login-page-broken.https.html +++ b/tests/wpt/tests/fedcm/fedcm-login-status/login-page-broken.https.html @@ -10,12 +10,9 @@ import {request_options_with_mediation_required, fedcm_test, fedcm_get_dialog_type_promise, - select_manifest, - mark_signed_in} from '../support/fedcm-helper.sub.js'; + select_manifest} from '../support/fedcm-helper.sub.js'; fedcm_test(async t => { - await mark_signed_in(); - let test_options = request_options_with_mediation_required("manifest_broken_login.json"); await select_manifest(t, test_options); diff --git a/tests/wpt/tests/fedcm/fedcm-loginhint.https.html b/tests/wpt/tests/fedcm/fedcm-loginhint.https.html index fe35007a87d..1a4adbe8161 100644 --- a/tests/wpt/tests/fedcm/fedcm-loginhint.https.html +++ b/tests/wpt/tests/fedcm/fedcm-loginhint.https.html @@ -11,13 +11,10 @@ import {fedcm_test, request_options_with_login_hint, select_manifest, - mark_signed_in, fedcm_get_dialog_type_promise, fedcm_get_and_select_first_account} from './support/fedcm-helper.sub.js'; fedcm_test(async t => { - await mark_signed_in(); - let options = request_options_with_login_hint('manifest.py', 'nomatch'); const cred = navigator.credentials.get(options); // We expect a mismatch dialog. diff --git a/tests/wpt/tests/fedcm/fedcm-no-domainhint-matches-account.https.html b/tests/wpt/tests/fedcm/fedcm-no-domainhint-matches-account.https.html index c2bf1419022..31a9e2ea5f5 100644 --- a/tests/wpt/tests/fedcm/fedcm-no-domainhint-matches-account.https.html +++ b/tests/wpt/tests/fedcm/fedcm-no-domainhint-matches-account.https.html @@ -11,14 +11,11 @@ import { fedcm_test, request_options_with_domain_hint, - mark_signed_in, fedcm_get_dialog_type_promise, fedcm_expect_dialog, } from './support/fedcm-helper.sub.js'; fedcm_test(async t => { - await mark_signed_in(); - let options = request_options_with_domain_hint('manifest.py', 'nomatch'); const cred = navigator.credentials.get(options); diff --git a/tests/wpt/tests/fedcm/fedcm-no-login-url.https.html b/tests/wpt/tests/fedcm/fedcm-no-login-url.https.html index 94592d2dbfb..480254c0294 100644 --- a/tests/wpt/tests/fedcm/fedcm-no-login-url.https.html +++ b/tests/wpt/tests/fedcm/fedcm-no-login-url.https.html @@ -10,12 +10,9 @@ import {request_options_with_mediation_required, fedcm_test, select_manifest, - mark_signed_in, fedcm_get_and_select_first_account} from './support/fedcm-helper.sub.js'; fedcm_test(async t => { - await mark_signed_in(); - let test_options = request_options_with_mediation_required("manifest_no_login_url.json"); await select_manifest(t, test_options); diff --git a/tests/wpt/tests/fedcm/fedcm-pending-disconnect.https.html b/tests/wpt/tests/fedcm/fedcm-pending-disconnect.https.html index 1b60acc1088..306de02e6a3 100644 --- a/tests/wpt/tests/fedcm/fedcm-pending-disconnect.https.html +++ b/tests/wpt/tests/fedcm/fedcm-pending-disconnect.https.html @@ -10,15 +10,11 @@ diff --git a/tests/wpt/tests/fetch/local-network-access/iframe.tentative.https.window.js b/tests/wpt/tests/fetch/local-network-access/iframe.tentative.https.window.js new file mode 100644 index 00000000000..d2b532aeae4 --- /dev/null +++ b/tests/wpt/tests/fetch/local-network-access/iframe.tentative.https.window.js @@ -0,0 +1,199 @@ +// META: script=/common/subset-tests-by-key.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/common/utils.js +// META: script=/resources/testdriver.js +// META: script=/resources/testdriver-vendor.js +// META: script=resources/support.sub.js +// META: timeout=long +// META: variant=?include=from-loopback +// META: variant=?include=from-local +// META: variant=?include=from-public +// META: variant=?include=from-treat-as-public +// +// Spec: https://wicg.github.io/local-network-access/#integration-fetch +// +// These tests verify that secure contexts can navigate iframes to less-public +// address spaces iff the initiating document has been granted the LNA +// permission. +// +// This file covers only those tests that must execute in a secure context. + +setup(() => { + assert_true(window.isSecureContext); +}); + +// Source: secure loopback context. +// +// All iframe navigations unaffected by Local Network Access. + +subsetTestByKey( + 'from-loopback', promise_test, t => iframeTest(t, { + source: Server.HTTP_LOOPBACK, + target: Server.HTTPS_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'loopback to loopback: no permission required.'); + +subsetTestByKey( + 'from-loopback', promise_test, t => iframeTest(t, { + source: Server.HTTP_LOOPBACK, + target: Server.HTTPS_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'loopback to local: no permission required.'); + +subsetTestByKey( + 'from-loopback', promise_test, t => iframeTest(t, { + source: Server.HTTP_LOOPBACK, + target: Server.HTTPS_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'loopback to public: no permission required.'); + +// Source: local secure context. +// +// All iframe navigations unaffected by Local Network Access. + +// Requests from the `local` address space to the `loopback` address space +// are not yet restricted by LNA. +subsetTestByKey( + 'from-local', promise_test, t => iframeTest(t, { + source: Server.HTTP_LOCAL, + target: Server.HTTPS_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'local to loopback: no permission required.'); + +subsetTestByKey( + 'from-local', promise_test, t => iframeTest(t, { + source: Server.HTTP_LOCAL, + target: Server.HTTPS_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'local to local: no permission required.'); + +subsetTestByKey( + 'from-local', promise_test, t => iframeTest(t, { + source: Server.HTTP_LOCAL, + target: Server.HTTPS_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'local to public: no permission required.'); + + +// Generates tests of permission behavior for a single (source, target) pair. +// +// Scenarios: +// +// - parent (source) navigates child (target): +// - parent has been denied the LNA permission (failure) +// - parent has been granted the LNA permission (success) +// +function makePermissionTests({ + key, + sourceName, + sourceServer, + sourceTreatAsPublic, + targetName, + targetServer, +}) { + const prefix = `${sourceName} to ${targetName}: `; + + const source = { + server: sourceServer, + treatAsPublic: sourceTreatAsPublic, + }; + + promise_test( + t => iframeTest(t, { + source, + target: { + server: targetServer, + }, + expected: NavigationTestResult.FAILURE, + permission: 'denied', + }), + prefix + 'permission denied.'); + + promise_test( + t => iframeTest(t, { + source, + target: { + server: targetServer, + }, + expected: NavigationTestResult.SUCCESS, + permission: 'granted', + }), + prefix + 'success.'); +} + + +// Source: public secure context. +// +// iframe navigations to the loopback and local address spaces require the LNA +// permission. + +subsetTestByKey('from-public', makePermissionTests, { + sourceServer: Server.HTTPS_PUBLIC, + sourceName: 'public', + targetServer: Server.HTTPS_LOOPBACK, + targetName: 'loopback', +}); + +subsetTestByKey('from-public', makePermissionTests, { + sourceServer: Server.HTTPS_PUBLIC, + sourceName: 'public', + targetServer: Server.HTTPS_LOCAL, + targetName: 'local', +}); + +subsetTestByKey( + 'from-public', promise_test, t => iframeTest(t, { + source: Server.HTTPS_PUBLIC, + target: Server.HTTPS_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'public to public: no permission required.'); + +// The following tests verify that `CSP: treat-as-public-address` makes +// documents behave as if they had been served from a public IP address. + +subsetTestByKey('from-treat-as-public', makePermissionTests, { + sourceServer: Server.HTTPS_LOOPBACK, + sourceTreatAsPublic: true, + sourceName: 'treat-as-public-address', + targetServer: Server.OTHER_HTTPS_LOOPBACK, + targetName: 'loopback', +}); + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => iframeTest(t, { + source: { + server: Server.HTTPS_LOOPBACK, + treatAsPublic: true, + }, + target: Server.HTTPS_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to local (same-origin): no permission required.'); + +subsetTestByKey('from-treat-as-public', makePermissionTests, { + sourceServer: Server.HTTPS_LOOPBACK, + sourceTreatAsPublic: true, + sourceName: 'treat-as-public-address', + targetServer: Server.HTTPS_LOCAL, + targetName: 'local', +}); + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => iframeTest(t, { + source: { + server: Server.HTTPS_LOOPBACK, + treatAsPublic: true, + }, + target: Server.HTTPS_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to public: no permission required.'); diff --git a/tests/wpt/tests/fetch/local-network-access/navigate.tentative.https.window.js b/tests/wpt/tests/fetch/local-network-access/navigate.tentative.https.window.js new file mode 100644 index 00000000000..abdefb8cd7c --- /dev/null +++ b/tests/wpt/tests/fetch/local-network-access/navigate.tentative.https.window.js @@ -0,0 +1,151 @@ +// META: script=/common/subset-tests-by-key.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/common/utils.js +// META: script=resources/support.sub.js +// META: timeout=long +// META: variant=?include=from-loopback +// META: variant=?include=from-local +// META: variant=?include=from-public +// META: variant=?include=from-treat-as-public +// +// These tests verify that secure contexts can make top-level navigations +// to less-public address spaces. These are not restricted under LNA. + +setup(() => { + assert_true(window.isSecureContext); +}); + +// Source: secure loopback context. +// +// All top-level navigations unaffected by Local Network Access. + +subsetTestByKey( + 'from-loopback', promise_test, t => navigateTest(t, { + source: Server.HTTPS_LOOPBACK, + target: Server.HTTPS_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'loopback to loopback: no permission required.'); + +subsetTestByKey( + 'from-loopback', promise_test, t => navigateTest(t, { + source: Server.HTTPS_LOOPBACK, + target: Server.HTTPS_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'loopback to local: no permission required.'); + +subsetTestByKey( + 'from-loopback', promise_test, t => navigateTest(t, { + source: Server.HTTPS_LOOPBACK, + target: Server.HTTPS_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'loopback to public: no preflight required.'); + +// Source: secure local context. +// +// All top-level navigations unaffected by Local Network Access. + +subsetTestByKey( + 'from-local', promise_test, t => navigateTest(t, { + source: Server.HTTPS_LOCAL, + target: Server.HTTPS_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'local to loopback: no permission required.'); + +subsetTestByKey( + 'from-local', promise_test, t => navigateTest(t, { + source: Server.HTTPS_LOCAL, + target: Server.HTTPS_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'local to local: no permission required.'); + +subsetTestByKey( + 'from-local', promise_test, t => navigateTest(t, { + source: Server.HTTPS_LOCAL, + target: Server.HTTPS_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'local to public: no permission required.'); + +// Source: secure public context. +// +// All top-level navigations unaffected by Local Network Access + +subsetTestByKey( + 'from-public', promise_test, t => navigateTest(t, { + source: Server.HTTPS_PUBLIC, + target: Server.HTTPS_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'public to loopback: no permission required.'); + +subsetTestByKey( + 'from-public', promise_test, t => navigateTest(t, { + source: Server.HTTPS_PUBLIC, + target: Server.HTTPS_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'public to local: no permission required.'); + +subsetTestByKey( + 'from-public', promise_test, t => navigateTest(t, { + source: Server.HTTPS_PUBLIC, + target: Server.HTTPS_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'public to public: no permission required.'); + +// The following tests verify that `CSP: treat-as-public-address` makes +// documents behave as if they had been served from a public IP address. + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => navigateTest(t, { + source: { + server: Server.HTTPS_LOOPBACK, + treatAsPublic: true, + }, + target: Server.OTHER_HTTPS_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to loopback: no permission required.'); + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => navigateTest(t, { + source: { + server: Server.HTTPS_LOOPBACK, + treatAsPublic: true, + }, + target: Server.HTTPS_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to loopback (same-origin): no permission required.'); + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => navigateTest(t, { + source: { + server: Server.HTTPS_LOOPBACK, + treatAsPublic: true, + }, + target: Server.HTTPS_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to local: no permission required.'); + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => navigateTest(t, { + source: { + server: Server.HTTPS_LOOPBACK, + treatAsPublic: true, + }, + target: Server.HTTPS_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to public: no permission required.'); diff --git a/tests/wpt/tests/fetch/local-network-access/navigate.tentative.window.js b/tests/wpt/tests/fetch/local-network-access/navigate.tentative.window.js new file mode 100644 index 00000000000..4186bad5899 --- /dev/null +++ b/tests/wpt/tests/fetch/local-network-access/navigate.tentative.window.js @@ -0,0 +1,154 @@ +// META: script=/common/subset-tests-by-key.js +// META: script=/common/dispatcher/dispatcher.js +// META: script=/common/utils.js +// META: script=resources/support.sub.js +// META: timeout=long +// META: variant=?include=from-loopback +// META: variant=?include=from-local +// META: variant=?include=from-public +// META: variant=?include=from-treat-as-public +// +// These tests verify that nonsecure contexts can make top-level navigations +// to less-public address spaces. These are not restricted under LNA. +// +// This file covers only those tests that must execute in a non secure context. +// Other tests are defined in: navigate.tentative.https.window.js + +setup(() => { + assert_false(window.isSecureContext); +}); + +// Source: nonsecure loopback context. +// +// All top-level navigations unaffected by Local Network Access. + +subsetTestByKey( + 'from-loopback', promise_test, t => navigateTest(t, { + source: Server.HTTP_LOOPBACK, + target: Server.HTTP_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'loopback to loopback: no permission required.'); + +subsetTestByKey( + 'from-loopback', promise_test, t => navigateTest(t, { + source: Server.HTTP_LOOPBACK, + target: Server.HTTP_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'loopback to local: no permission required.'); + +subsetTestByKey( + 'from-loopback', promise_test, t => navigateTest(t, { + source: Server.HTTP_LOOPBACK, + target: Server.HTTP_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'loopback to public: no preflight required.'); + +// Source: secure local context. +// +// All top-level navigations unaffected by Local Network Access. + +subsetTestByKey( + 'from-local', promise_test, t => navigateTest(t, { + source: Server.HTTP_LOCAL, + target: Server.HTTP_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'local to loopback: no permission required.'); + +subsetTestByKey( + 'from-local', promise_test, t => navigateTest(t, { + source: Server.HTTP_LOCAL, + target: Server.HTTP_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'local to local: no permission required.'); + +subsetTestByKey( + 'from-local', promise_test, t => navigateTest(t, { + source: Server.HTTP_LOCAL, + target: Server.HTTP_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'local to public: no permission required.'); + +// Source: secure public context. +// +// All top-level navigations unaffected by Local Network Access + +subsetTestByKey( + 'from-public', promise_test, t => navigateTest(t, { + source: Server.HTTP_PUBLIC, + target: Server.HTTP_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'public to loopback: no permission required.'); + +subsetTestByKey( + 'from-public', promise_test, t => navigateTest(t, { + source: Server.HTTP_PUBLIC, + target: Server.HTTP_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'public to local: no permission required.'); + +subsetTestByKey( + 'from-public', promise_test, t => navigateTest(t, { + source: Server.HTTP_PUBLIC, + target: Server.HTTP_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'public to public: no permission required.'); + +// The following tests verify that `CSP: treat-as-public-address` makes +// documents behave as if they had been served from a public IP address. + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => navigateTest(t, { + source: { + server: Server.HTTP_LOOPBACK, + treatAsPublic: true, + }, + target: Server.OTHER_HTTP_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to loopback: no permission required.'); + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => navigateTest(t, { + source: { + server: Server.HTTP_LOOPBACK, + treatAsPublic: true, + }, + target: Server.HTTP_LOOPBACK, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to loopback (same-origin): no permission required.'); + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => navigateTest(t, { + source: { + server: Server.HTTP_LOOPBACK, + treatAsPublic: true, + }, + target: Server.HTTP_LOCAL, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to local: no permission required.'); + +subsetTestByKey( + 'from-treat-as-public', promise_test, + t => navigateTest(t, { + source: { + server: Server.HTTP_LOOPBACK, + treatAsPublic: true, + }, + target: Server.HTTP_PUBLIC, + expected: NavigationTestResult.SUCCESS, + }), + 'treat-as-public-address to public: no permission required.'); diff --git a/tests/wpt/tests/fetch/local-network-access/resources/iframer.html b/tests/wpt/tests/fetch/local-network-access/resources/iframer.html new file mode 100644 index 00000000000..ede09bc6b0a --- /dev/null +++ b/tests/wpt/tests/fetch/local-network-access/resources/iframer.html @@ -0,0 +1,35 @@ + + +Iframer + + + + + \ No newline at end of file diff --git a/tests/wpt/tests/fetch/local-network-access/resources/navigate.html b/tests/wpt/tests/fetch/local-network-access/resources/navigate.html new file mode 100644 index 00000000000..5796cb41be5 --- /dev/null +++ b/tests/wpt/tests/fetch/local-network-access/resources/navigate.html @@ -0,0 +1,9 @@ + + +Navigate + + \ No newline at end of file diff --git a/tests/wpt/tests/fetch/local-network-access/resources/openee.html b/tests/wpt/tests/fetch/local-network-access/resources/openee.html new file mode 100644 index 00000000000..2e06a8d0328 --- /dev/null +++ b/tests/wpt/tests/fetch/local-network-access/resources/openee.html @@ -0,0 +1,7 @@ + + +Openee + \ No newline at end of file diff --git a/tests/wpt/tests/fetch/local-network-access/resources/support.sub.js b/tests/wpt/tests/fetch/local-network-access/resources/support.sub.js index 09e234c5f24..157c2b40066 100644 --- a/tests/wpt/tests/fetch/local-network-access/resources/support.sub.js +++ b/tests/wpt/tests/fetch/local-network-access/resources/support.sub.js @@ -5,6 +5,7 @@ const SERVER_PORTS = { "http": { "loopback": {{ports[http][0]}}, + "other-loopback": {{ports[http][1]}}, "local": {{ports[http-local][0]}}, "public": {{ports[http-public][0]}}, }, @@ -57,6 +58,7 @@ class Server { } static HTTP_LOOPBACK = Server.get("http", "loopback"); + static OTHER_HTTP_LOOPBACK = Server.get("http", "other-loopback"); static HTTP_LOCAL = Server.get("http", "local"); static HTTP_PUBLIC = Server.get("http", "public"); static HTTPS_LOOPBACK = Server.get("https", "loopback"); @@ -187,3 +189,66 @@ function checkTestResult(actual, expected) { assert_equals(type, expected.type, "response type mismatch"); } } + +// Registers an event listener that will resolve this promise when this +// window receives a message posted to it. +function futureMessage(options) { + return new Promise(resolve => { + window.addEventListener('message', (e) => { + resolve(e.data); + }); + }); +}; + +const NavigationTestResult = { + SUCCESS: 'loaded', + FAILURE: 'timeout', +}; + +async function iframeTest( + t, {source, target, expected, permission = 'denied'}) { + const targetUrl = + resolveUrl('resources/openee.html', sourceResolveOptions(target)); + + const sourceUrl = + resolveUrl('resources/iframer.html', sourceResolveOptions(source)); + sourceUrl.searchParams.set('permission', permission); + sourceUrl.searchParams.set('url', targetUrl); + + const popup = window.open(sourceUrl); + t.add_cleanup(() => popup.close()); + + // The child frame posts a message iff it loads successfully. + // There exists no interoperable way to check whether an iframe failed to + // load, so we use a timeout. + // See: https://github.com/whatwg/html/issues/125 + const result = await Promise.race([ + futureMessage().then((data) => data.message), + new Promise((resolve) => { + t.step_timeout(() => resolve('timeout'), 2000 /* ms */); + }), + ]); + + assert_equals(result, expected); +} + +async function navigateTest(t, {source, target, expected}) { + const targetUrl = + resolveUrl('resources/openee.html', sourceResolveOptions(target)); + + const sourceUrl = + resolveUrl('resources/navigate.html', sourceResolveOptions(source)); + sourceUrl.searchParams.set('url', targetUrl); + + const popup = window.open(sourceUrl); + t.add_cleanup(() => popup.close()); + + const result = await Promise.race([ + futureMessage().then((data) => data.message), + new Promise((resolve) => { + t.step_timeout(() => resolve('timeout'), 2000 /* ms */); + }), + ]); + + assert_equals(result, expected); +} diff --git a/tests/wpt/tests/fonts/noto/cjk/NotoSansCJKjp-Regular-subset-halt-300C.otf b/tests/wpt/tests/fonts/noto/cjk/NotoSansCJKjp-Regular-subset-halt-300C.otf new file mode 100644 index 00000000000..a7fb3467244 Binary files /dev/null and b/tests/wpt/tests/fonts/noto/cjk/NotoSansCJKjp-Regular-subset-halt-300C.otf differ diff --git a/tests/wpt/tests/fonts/noto/cjk/subset.sh b/tests/wpt/tests/fonts/noto/cjk/subset.sh index 899db77945d..5f5ebbd8340 100755 --- a/tests/wpt/tests/fonts/noto/cjk/subset.sh +++ b/tests/wpt/tests/fonts/noto/cjk/subset.sh @@ -32,6 +32,7 @@ for path in "$@"; do $subsetter "$path" $range $features_chws --output-file="$output_chws$ext" $subsetter "$output_halt$ext" $subrange $features --output-file="$output_min$ext" $subsetter "$output_halt$ext" --unicodes=3002 $features --output-file="$output_halt-3002$ext" + $subsetter "$output_halt$ext" --unicodes=300C $features --output-file="$output_halt-300C$ext" $subsetter "$output_halt$ext" --unicodes=FF1A $features --output-file="$output_halt-FF1A$ext" ) done diff --git a/tests/wpt/tests/fs/script-tests/FileSystemBaseHandle-buckets.js b/tests/wpt/tests/fs/script-tests/FileSystemBaseHandle-buckets.js index 9654755148a..c67cb1de649 100644 --- a/tests/wpt/tests/fs/script-tests/FileSystemBaseHandle-buckets.js +++ b/tests/wpt/tests/fs/script-tests/FileSystemBaseHandle-buckets.js @@ -34,10 +34,12 @@ directory_test(async (t, root_dir) => { await createFileWithContents('mtime.txt', 'short file', inboxRootDir); // Longer file fails. - return promise_rejects_dom( - t, 'QuotaExceededError', - createFileWithContents( + return promise_rejects_quotaexceedederror( + t, + createFileWithContents( 'mtime2.txt', 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum', - inboxRootDir)); + inboxRootDir + ), + null, null); }, 'Bucket quota restricts the size of a file that can be created'); diff --git a/tests/wpt/tests/html/browsers/origin/tentative/api/idlharness.any.js b/tests/wpt/tests/html/browsers/origin/tentative/api/idlharness.any.js new file mode 100644 index 00000000000..7f76c957d7c --- /dev/null +++ b/tests/wpt/tests/html/browsers/origin/tentative/api/idlharness.any.js @@ -0,0 +1,10 @@ +// META: script=/resources/WebIDLParser.js +// META: script=/resources/idlharness.js + +idl_test( + ['origin.tentative'], [], (idl_array) => { + idl_array.add_objects({ + Origin: ["new Origin()"], + }); + }); + diff --git a/tests/wpt/tests/html/browsers/origin/tentative/api/origin-comparison.any.js b/tests/wpt/tests/html/browsers/origin/tentative/api/origin-comparison.any.js new file mode 100644 index 00000000000..e5857675227 --- /dev/null +++ b/tests/wpt/tests/html/browsers/origin/tentative/api/origin-comparison.any.js @@ -0,0 +1,37 @@ +// META: title=`Origin` comparison + +test(t => { + const opaqueA = new Origin("null"); + const opaqueB = new Origin("null"); + + assert_true(opaqueA.isSameOrigin(opaqueA), "Opaque origin should be same-origin with itself."); + assert_true(opaqueA.isSameSite(opaqueA), "Opaque origin should be same-site with itself."); + assert_false(opaqueA.isSameOrigin(opaqueB), "Opaque origin should not be same-origin with another opaque origin."); + assert_false(opaqueA.isSameSite(opaqueB), "Opaque origin should not be same-site with another opaque origin."); +}, "Comparison of opaque origins."); + +test(t => { + const a = new Origin("https://a.example"); + const a_a = new Origin("https://a.a.example"); + const b_a = new Origin("https://b.a.example"); + const b = new Origin("https://b.example"); + const b_b = new Origin("https://b.b.example"); + + assert_true(a.isSameOrigin(a), "Origin should be same-origin with itself."); + assert_false(a.isSameOrigin(a_a), "Origins with different subdomains should not be same-origin."); + assert_false(a.isSameOrigin(b_a), "Origins with different subdomains should not be same-origin."); + assert_false(a.isSameOrigin(b), "Origins with different domains should not be same-origin."); + assert_false(a.isSameOrigin(b_b), "Origins with different domains should not be same-origin."); + + assert_true(a.isSameSite(a), "Origin should be same-site with itself."); + assert_true(a.isSameSite(a_a), "Origins with same registrable domain should be same-site."); + assert_true(a.isSameSite(b_a), "Origins with same registrable domain should be same-site."); + assert_false(a.isSameSite(b), "Origins with different registrable domains should not be same-site."); + assert_false(a.isSameSite(b_b), "Origins with different registrable domains should not be same-site."); + + assert_true(a_a.isSameSite(a), "Origins with same registrable domain should be same-site."); + assert_true(a_a.isSameSite(a_a), "Origin should be same-site with itself."); + assert_true(a_a.isSameSite(b_a), "Origins with same registrable domain should be same-site."); + assert_false(a_a.isSameSite(b), "Origins with different registrable domains should not be same-site."); + assert_false(a_a.isSameSite(b_b), "Origins with different registrable domains should not be same-site."); +}, "Comparison of tuple origins."); diff --git a/tests/wpt/tests/html/browsers/origin/tentative/api/origin-fromURL.any.js b/tests/wpt/tests/html/browsers/origin/tentative/api/origin-fromURL.any.js new file mode 100644 index 00000000000..34c2a62b96f --- /dev/null +++ b/tests/wpt/tests/html/browsers/origin/tentative/api/origin-fromURL.any.js @@ -0,0 +1,74 @@ +// META: title=`Origin.fromURL()` + +// +// URLs with opaque origins: +// +const opaqueURLs = [ + "about:blank", + "data:text/plain,opaque", + "weird-protocol:whatever", + "weird-hierarchical-protocol://host/path?etc", + "blob:weird-protocol:whatever", + "blob:weird-hierarchical-protocol://host/path?etc", +]; +for (const opaque of opaqueURLs) { + test(t => { + const origin = Origin.fromURL(opaque); + assert_true(origin.opaque, "Origin should be opaque."); + assert_equals(origin.toJSON(), "null", "toJSON() should return the serialized origin."); + }, `Origin.fromURL for opaque URL as string '${opaque}'.`); + + test(t => { + const origin = Origin.fromURL(new URL(opaque)); + assert_true(origin.opaque, "Origin should be opaque."); + assert_equals(origin.toJSON(), "null", "toJSON() should return the serialized origin."); + }, `Origin.fromURL for opaque URL as URL '${opaque}'.`); +} + +// +// Invalid serializations: +// +const invalidSerializations = [ + "", + "invalid", +]; + +for (const invalid of invalidSerializations) { + test(t => { + assert_equals(null, Origin.fromURL(invalid)); + }, `Origin.fromURL returns null for '${invalid}'.`); +} + +// +// Tuple origins: +// +const tupleSerializations = [ + "http://site.example", + "https://site.example", + "https://site.example:123", + "http://sub.site.example", + "https://sub.site.example", + "https://sub.site.example:123", + "https://xn--mlauted-m2a.example", + "ftp://ftp.example", + "ws://ws.example", + "wss://wss.example", + "https://trailing.slash/", + "https://user:pass@site.example", + "https://has.a.port:1234/and/path", + "https://ümlauted.example", + "file:///path/to/a/file.txt", + "blob:https://example.com/some-guid", + "ftp://example.com/", + "https://example.com/path?query#fragment", + "https://127.0.0.1/", + "https://[::1]/", +]; + +for (const tuple of tupleSerializations) { + test(t => { + const origin = Origin.fromURL(tuple); + assert_false(origin.opaque, "Origin should not be opaque."); + assert_equals(origin.toJSON(), (new URL(tuple)).origin, "toJSON() should return the serialized origin."); + }, `Origin constructed from '${tuple}' is a tuple origin.`); +} diff --git a/tests/wpt/tests/html/browsers/origin/tentative/api/origin.any.js b/tests/wpt/tests/html/browsers/origin/tentative/api/origin.any.js new file mode 100644 index 00000000000..3f77dad44b1 --- /dev/null +++ b/tests/wpt/tests/html/browsers/origin/tentative/api/origin.any.js @@ -0,0 +1,85 @@ +// META: title=`Origin` Construction and Parsing + +// +// Opaque origins: +// +test(t => { + const origin = new Origin(); + assert_true(origin.opaque, "Origin should be opaque."); + assert_equals(origin.toJSON(), "null", "toJSON() should return 'null'."); +}, "Default-constructed Origin is opaque."); + +test(t => { + const origin = new Origin("null"); + assert_true(origin.opaque, "Origin should be opaque."); + assert_equals(origin.toJSON(), "null", "toJSON() should return 'null'."); +}, "Origin constructed with 'null' is opaque."); + +test(t => { + const origin = Origin.parse("null"); + assert_true(origin.opaque, "Origin should be opaque."); + assert_equals(origin.toJSON(), "null", "toJSON() should return 'null'."); +}, "Origin parsed from 'null' is opaque."); + +// +// Invalid serializations: +// +const invalidSerializations = [ + "", + "invalid", + "about:blank", + "https://trailing.slash/", + "https://user:pass@site.example", + "https://has.a.port:1234/and/path", + "https://ümlauted.example", + "https://has.a.fragment/#frag", + "https://invalid.port:123456789", + "blob:https://blob.example/guid-goes-here", +]; + +for (const invalid of invalidSerializations) { + test(t => { + assert_throws_js(TypeError, () => new Origin(invalid), "Constructor should throw TypeError for invalid origin."); + }, `Origin constructor throws for '${invalid}'.`); + + test(t => { + assert_equals(Origin.parse(invalid), null, "parse() should return null for invalid origin."); + }, `Origin.parse returns null for '${invalid}'.`); +} + +// +// Tuple origins: +// +const tupleSerializations = [ + "http://site.example", + "https://site.example", + "https://site.example:123", + "http://sub.site.example", + "https://sub.site.example", + "https://sub.site.example:123", + "https://xn--mlauted-m2a.example", + "ftp://ftp.example", + "ws://ws.example", + "wss://wss.example", +]; + +for (const tuple of tupleSerializations) { + test(t => { + const origin = new Origin(tuple); + assert_false(origin.opaque, "Origin should not be opaque."); + assert_equals(origin.toJSON(), tuple, "toJSON() should return the serialized origin."); + }, `Origin constructed from '${tuple}' is a tuple origin.`); + + test(t => { + const origin = Origin.parse(tuple); + assert_false(origin.opaque, "Origin should not be opaque."); + assert_equals(origin.toJSON(), tuple, "toJSON() should return the serialized origin."); + }, `Origin parsed from '${tuple}' is a tuple origin.`); + + test(t => { + const a = new Origin(tuple); + const b = Origin.parse(tuple); + assert_true(a.isSameOrigin(b)); + assert_true(b.isSameOrigin(a)); + }, `Origins parsed and constructed from '${tuple}' are equivalent.`); +} diff --git a/tests/wpt/tests/html/dom/partial-updates/tentative/patch-range.html b/tests/wpt/tests/html/dom/partial-updates/tentative/patch-range.html new file mode 100644 index 00000000000..bf05c2b6fbd --- /dev/null +++ b/tests/wpt/tests/html/dom/partial-updates/tentative/patch-range.html @@ -0,0 +1,137 @@ + + +HTML partial updates - patch range + + + +
+ + +
+ +

+ \ No newline at end of file diff --git a/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-attribute-removal-001.html b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-attribute-removal-001.html new file mode 100644 index 00000000000..c1ffabbcca5 --- /dev/null +++ b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-attribute-removal-001.html @@ -0,0 +1,53 @@ + + + + + + +
+ +
+ + diff --git a/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-attribute-removal-002.html b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-attribute-removal-002.html new file mode 100644 index 00000000000..ad1d5655d2b --- /dev/null +++ b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-attribute-removal-002.html @@ -0,0 +1,53 @@ + + + + + + +
+ +
+ + diff --git a/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-element-removal-001.html b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-element-removal-001.html new file mode 100644 index 00000000000..ee2631f2180 --- /dev/null +++ b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-element-removal-001.html @@ -0,0 +1,53 @@ + + + + + + +
+ +
+ + diff --git a/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-element-removal-002.html b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-element-removal-002.html new file mode 100644 index 00000000000..48ac2a69055 --- /dev/null +++ b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-element-removal-002.html @@ -0,0 +1,65 @@ + + + + + + +
+
+ +
+
+ + diff --git a/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-infinite-loop.html b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-infinite-loop.html index b1c9e83ebea..4688020b8a6 100644 --- a/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-infinite-loop.html +++ b/tests/wpt/tests/html/editing/the-hidden-attribute/beforematch-infinite-loop.html @@ -1,5 +1,6 @@ + diff --git a/tests/wpt/tests/html/editing/the-hidden-attribute/hidden-until-found-and-details.html b/tests/wpt/tests/html/editing/the-hidden-attribute/hidden-until-found-and-details.html new file mode 100644 index 00000000000..d963beca29a --- /dev/null +++ b/tests/wpt/tests/html/editing/the-hidden-attribute/hidden-until-found-and-details.html @@ -0,0 +1,67 @@ + + + + + + +
+ +
+ + diff --git a/tests/wpt/tests/html/semantics/forms/the-input-element/color.html b/tests/wpt/tests/html/semantics/forms/the-input-element/color.html new file mode 100644 index 00000000000..7275215a21e --- /dev/null +++ b/tests/wpt/tests/html/semantics/forms/the-input-element/color.html @@ -0,0 +1,55 @@ + + +Form input type=color (HTML compatible) + + + + + +
+ diff --git a/tests/wpt/tests/html/semantics/forms/the-input-element/color.tentative.html b/tests/wpt/tests/html/semantics/forms/the-input-element/color.tentative.html deleted file mode 100644 index 0bfb94868e4..00000000000 --- a/tests/wpt/tests/html/semantics/forms/the-input-element/color.tentative.html +++ /dev/null @@ -1,46 +0,0 @@ - - - -Form input type=color - - - - - -
- diff --git a/tests/wpt/tests/html/semantics/forms/the-input-element/color.window.js b/tests/wpt/tests/html/semantics/forms/the-input-element/color.window.js index 28ec9ec4d86..37eb9b44364 100644 --- a/tests/wpt/tests/html/semantics/forms/the-input-element/color.window.js +++ b/tests/wpt/tests/html/semantics/forms/the-input-element/color.window.js @@ -236,14 +236,6 @@ const assert_colors = set_up_fuzzy_color_test(); }); }); -test(() => { - const input = document.createElement("input"); - input.type = "color"; - assert_equals(input.value, "#000000"); - input.value = "ActiveBorder"; - assert_not_equals(input.value, "#000000"); -}, "System colors are parsed"); - test(() => { const input = document.createElement("input"); input.type = "color"; diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-event-handler.sub.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-event-handler.sub.html new file mode 100644 index 00000000000..346660511ee --- /dev/null +++ b/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-event-handler.sub.html @@ -0,0 +1,25 @@ + + + +Speculative parsing, document.write(): script-src-event-handler + + + + + diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-nomodule.tentative.sub.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-nomodule.sub.html similarity index 100% rename from tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-nomodule.tentative.sub.html rename to tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-nomodule.sub.html diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-language.sub.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-language.sub.html new file mode 100644 index 00000000000..e418c0e1edd --- /dev/null +++ b/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-language.sub.html @@ -0,0 +1,25 @@ + + + +Speculative parsing, document.write(): script-src-unsupported-language + + + + + diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-type.tentative.sub.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-type.sub.html similarity index 97% rename from tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-type.tentative.sub.html rename to tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-type.sub.html index 1eaa56494db..665e7abb02d 100644 --- a/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-type.tentative.sub.html +++ b/tests/wpt/tests/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-type.sub.html @@ -20,6 +20,6 @@ document.write(''); <\/script> <\!-- speculative case in document.write --> - <script src="/html/syntax/speculative-parsing/resources/stash.py?action=put&amp;uuid=${uuid}&amp;encodingcheck=&Gbreve;" type=text/plain><\/script> + <script src="/html/syntax/speculative-parsing/resources/stash.py?action=put&amp;uuid=${uuid}&amp;encodingcheck=&Gbreve;" type="text/plain"><\/script> `); </script> diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-event-handler-framed.sub.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-event-handler-framed.sub.html new file mode 100644 index 00000000000..7b9e0edeb97 --- /dev/null +++ b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-event-handler-framed.sub.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT. This file has been generated. Source: + /html/syntax/speculative-parsing/tools/generate.py +--> +<meta charset=utf-8> +<title>Speculative parsing, page load (helper file): script-src-event-handler</title> +<script src="/common/slow.py?delay=1500"></script> +<script> + document.write('<plaintext>'); +</script> +<!-- speculative case --> +<script src="/html/syntax/speculative-parsing/resources/stash.py?action=put&amp;uuid={{GET[uuid]}}&amp;encodingcheck=&Gbreve;" event="" for=""></script> diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-language-framed.sub.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-language-framed.sub.html new file mode 100644 index 00000000000..62b2c4c017b --- /dev/null +++ b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-language-framed.sub.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT. This file has been generated. Source: + /html/syntax/speculative-parsing/tools/generate.py +--> +<meta charset=utf-8> +<title>Speculative parsing, page load (helper file): script-src-unsupported-language</title> +<script src="/common/slow.py?delay=1500"></script> +<script> + document.write('<plaintext>'); +</script> +<!-- speculative case --> +<script src="/html/syntax/speculative-parsing/resources/stash.py?action=put&amp;uuid={{GET[uuid]}}&amp;encodingcheck=&Gbreve;" language="vbscript"></script> diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-type-framed.sub.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-type-framed.sub.html index 1f38560ee15..78e71941b35 100644 --- a/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-type-framed.sub.html +++ b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-type-framed.sub.html @@ -9,4 +9,4 @@ document.write('<plaintext>'); </script> <!-- speculative case --> -<script src="/html/syntax/speculative-parsing/resources/stash.py?action=put&amp;uuid={{GET[uuid]}}&amp;encodingcheck=&Gbreve;" type=text/plain></script> +<script src="/html/syntax/speculative-parsing/resources/stash.py?action=put&amp;uuid={{GET[uuid]}}&amp;encodingcheck=&Gbreve;" type="text/plain"></script> diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-event-handler.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-event-handler.html new file mode 100644 index 00000000000..6bb89bd463c --- /dev/null +++ b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-event-handler.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT. This file has been generated. Source: + /html/syntax/speculative-parsing/tools/generate.py +--> +<meta charset=utf-8> +<title>Speculative parsing, page load: script-src-event-handler</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/common/utils.js></script> +<script src=/html/syntax/speculative-parsing/resources/speculative-parsing-util.js></script> +<body> +<script> + setup({single_test: true}); + const uuid = token(); + const iframe = document.createElement('iframe'); + iframe.src = `resources/script-src-event-handler-framed.sub.html?uuid=${uuid}`; + document.body.appendChild(iframe); + expect_fetched_onload(uuid, false) + .then(compare_with_nonspeculative(uuid, 'script-src-event-handler', false)) + .then(done); +</script> diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.tentative.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.html similarity index 100% rename from tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.tentative.html rename to tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.html diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-language.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-language.html new file mode 100644 index 00000000000..60f50eb34d6 --- /dev/null +++ b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-language.html @@ -0,0 +1,21 @@ +<!DOCTYPE html> +<!-- DO NOT EDIT. This file has been generated. Source: + /html/syntax/speculative-parsing/tools/generate.py +--> +<meta charset=utf-8> +<title>Speculative parsing, page load: script-src-unsupported-language</title> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/common/utils.js></script> +<script src=/html/syntax/speculative-parsing/resources/speculative-parsing-util.js></script> +<body> +<script> + setup({single_test: true}); + const uuid = token(); + const iframe = document.createElement('iframe'); + iframe.src = `resources/script-src-unsupported-language-framed.sub.html?uuid=${uuid}`; + document.body.appendChild(iframe); + expect_fetched_onload(uuid, false) + .then(compare_with_nonspeculative(uuid, 'script-src-unsupported-language', false)) + .then(done); +</script> diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.tentative.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.html similarity index 100% rename from tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.tentative.html rename to tests/wpt/tests/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.html diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/generated/resources/script-src-unsupported-type-nonspeculative.sub.html b/tests/wpt/tests/html/syntax/speculative-parsing/generated/resources/script-src-unsupported-type-nonspeculative.sub.html index 94098b5c775..dc8343c3824 100644 --- a/tests/wpt/tests/html/syntax/speculative-parsing/generated/resources/script-src-unsupported-type-nonspeculative.sub.html +++ b/tests/wpt/tests/html/syntax/speculative-parsing/generated/resources/script-src-unsupported-type-nonspeculative.sub.html @@ -5,6 +5,6 @@ <meta charset=utf-8> <title>Speculative parsing, non-speculative (helper file): script-src-unsupported-type</title> <!-- non-speculative case --> -<script src="/html/syntax/speculative-parsing/resources/stash.py?action=put&amp;uuid={{GET[uuid]}}&amp;encodingcheck=&Gbreve;" type=text/plain></script> +<script src="/html/syntax/speculative-parsing/resources/stash.py?action=put&amp;uuid={{GET[uuid]}}&amp;encodingcheck=&Gbreve;" type="text/plain"></script> <!-- block the load event for a bit: --> <script src="/common/slow.py?delay=1500"></script> diff --git a/tests/wpt/tests/html/syntax/speculative-parsing/tools/generate.py b/tests/wpt/tests/html/syntax/speculative-parsing/tools/generate.py index f0db885814b..b3b577d9e10 100755 --- a/tests/wpt/tests/html/syntax/speculative-parsing/tools/generate.py +++ b/tests/wpt/tests/html/syntax/speculative-parsing/tools/generate.py @@ -88,14 +88,6 @@ tentative_tests = [ u'true', u'true' ), - ( - u'script-src-unsupported-type', - u'utf-8', - u'<script src="{}" type=text/plain></script>', - None, - u'false', - u'true' - ), ( u'script-src-type-application-ecmascript', u'utf-8', @@ -104,14 +96,6 @@ tentative_tests = [ u'true', u'true' ), - ( - u'script-src-nomodule', - u'utf-8', - u'<script src="{}" nomodule></script>', - None, - u'false', - u'true' - ), ( u'script-src-module', u'utf-8', @@ -526,6 +510,38 @@ tests = [ # template_testcase_markup, # expect_load, # test_nonspeculative + ( + u'script-src-unsupported-type', + u'utf-8', + u'<script src="{}" type="text/plain"></script>', + None, + u'false', + u'true' + ), + ( + u'script-src-unsupported-language', + u'utf-8', + u'<script src="{}" language="vbscript"></script>', + None, + u'false', + u'false' + ), + ( + u'script-src-nomodule', + u'utf-8', + u'<script src="{}" nomodule></script>', + None, + u'false', + u'true' + ), + ( + u'script-src-event-handler', + u'utf-8', + u'<script src="{}" event="" for=""></script>', + None, + u'false', + u'false' + ), ] # Templates diff --git a/tests/wpt/tests/interfaces/cookie-store.idl b/tests/wpt/tests/interfaces/cookiestore.idl similarity index 97% rename from tests/wpt/tests/interfaces/cookie-store.idl rename to tests/wpt/tests/interfaces/cookiestore.idl index 8a000cac0b2..ecb277756cc 100644 --- a/tests/wpt/tests/interfaces/cookie-store.idl +++ b/tests/wpt/tests/interfaces/cookiestore.idl @@ -1,7 +1,7 @@ // GENERATED CONTENT - DO NOT EDIT // Content was automatically extracted by Reffy into webref // (https://github.com/w3c/webref) -// Source: Cookie Store API (https://wicg.github.io/cookie-store/) +// Source: Cookie Store API (https://cookiestore.spec.whatwg.org/) [Exposed=(ServiceWorker,Window), SecureContext] diff --git a/tests/wpt/tests/interfaces/origin.tentative.idl b/tests/wpt/tests/interfaces/origin.tentative.idl new file mode 100644 index 00000000000..c2f91171339 --- /dev/null +++ b/tests/wpt/tests/interfaces/origin.tentative.idl @@ -0,0 +1,16 @@ +// https://github.com/mikewest/origin-api/ +[Exposed=*] +interface Origin { + constructor(); + constructor(USVString serializedOrigin); + + static Origin? parse(USVString serializedOrigin); + static Origin? fromURL(USVString serializedURL); + + stringifier USVString toJSON(); + + readonly attribute boolean opaque; + + boolean isSameOrigin(Origin other); + boolean isSameSite(Origin other); +}; diff --git a/tests/wpt/tests/lint.ignore b/tests/wpt/tests/lint.ignore index 75a20041d5f..5571f01eb8a 100644 --- a/tests/wpt/tests/lint.ignore +++ b/tests/wpt/tests/lint.ignore @@ -171,6 +171,7 @@ SET TIMEOUT: custom-elements/scoped-registry/scoped-registry-define-upgrade-crit SET TIMEOUT: encrypted-media/polyfill/chrome-polyfill.js SET TIMEOUT: encrypted-media/polyfill/clearkey-polyfill.js SET TIMEOUT: encrypted-media/scripts/playback-temporary-events.js +SET TIMEOUT: fedcm/support/fedcm-helper.sub.js SET TIMEOUT: fedcm/support/fedcm-iframe.html SET TIMEOUT: fedcm/support/fedcm/disconnect-iframe.html SET TIMEOUT: fedcm/support/login_delay.html diff --git a/tests/wpt/tests/media-source/mediasource-appendbuffer-quota-exceeded.html b/tests/wpt/tests/media-source/mediasource-appendbuffer-quota-exceeded.html index c90d8448c50..470ee7211f8 100644 --- a/tests/wpt/tests/media-source/mediasource-appendbuffer-quota-exceeded.html +++ b/tests/wpt/tests/media-source/mediasource-appendbuffer-quota-exceeded.html @@ -46,7 +46,10 @@ sourceBuffer.appendBuffer(dataAudio); }, function (ex, previousBufferedStart, previousBufferedEnd) { // onCaughtExceptionCallback - assert_equals(ex.name, 'QuotaExceededError'); + assert_equals(ex.constructor, globalThis.QuotaExceededError, 'QuotaExceededError constructor match'); + assert_equals(ex.quota, null, 'quota'); + assert_equals(ex.requested, null, 'requested'); + // Verify that the state looks like appendBuffer stops executing its steps if the prepare append // algorithm aborts after throwing `QuotaExceededError`. diff --git a/tests/wpt/tests/mediacapture-streams/GUM-echoCancellation-all.https.html b/tests/wpt/tests/mediacapture-streams/GUM-echoCancellation-all.https.html new file mode 100644 index 00000000000..197bb39d885 --- /dev/null +++ b/tests/wpt/tests/mediacapture-streams/GUM-echoCancellation-all.https.html @@ -0,0 +1,27 @@ +<!doctype html> +<title>getUserMedia echoCancellation remote-only</title> +<p class="instructions">When prompted, accept to share your audio stream.</p> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/resources/testdriver.js></script> +<script src=/resources/testdriver-vendor.js></script> +<script src=permission-helper.js></script> +<script> + 'use strict' + + // https://w3c.github.io/mediacapture-main/#dom-echocancellationmodeenum-all + + promise_test(async t => { + await setMediaPermission("granted", ["microphone"]); + const stream = await navigator.mediaDevices.getUserMedia({ + video: false, + audio: {echoCancellation: {exact: "all"}}, + }); + const track = stream.getAudioTracks()[0]; + t.add_cleanup(() => track.stop()); + const settings = track.getSettings(); + assert_equals(settings.echoCancellation, "all"); + }, 'getUserMedia suports "all"'); + +</script> diff --git a/tests/wpt/tests/mediacapture-streams/GUM-echoCancellation-boolean.https.html b/tests/wpt/tests/mediacapture-streams/GUM-echoCancellation-boolean.https.html new file mode 100644 index 00000000000..0402596e87a --- /dev/null +++ b/tests/wpt/tests/mediacapture-streams/GUM-echoCancellation-boolean.https.html @@ -0,0 +1,39 @@ +<!doctype html> +<title>getUserMedia echoCancellation remote-only</title> +<p class="instructions">When prompted, accept to share your audio stream.</p> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/resources/testdriver.js></script> +<script src=/resources/testdriver-vendor.js></script> +<script src=permission-helper.js></script> +<script> + 'use strict' + + // https://w3c.github.io/mediacapture-main/#dfn-echocancellation + + promise_test(async t => { + await setMediaPermission("granted", ["microphone"]); + const stream = await navigator.mediaDevices.getUserMedia({ + video: false, + audio: {echoCancellation: {exact: true}}, + }); + const track = stream.getAudioTracks()[0]; + t.add_cleanup(() => track.stop()); + const settings = track.getSettings(); + assert_equals(settings.echoCancellation, true); + }, 'getUserMedia suports true'); + + promise_test(async t => { + await setMediaPermission("granted", ["microphone"]); + const stream = await navigator.mediaDevices.getUserMedia({ + video: false, + audio: {echoCancellation: {exact: false}}, + }); + const track = stream.getAudioTracks()[0]; + t.add_cleanup(() => track.stop()); + const settings = track.getSettings(); + assert_equals(settings.echoCancellation, false); + }, 'getUserMedia suports false'); + +</script> diff --git a/tests/wpt/tests/mediacapture-streams/GUM-echoCancellation-remote-only.https.html b/tests/wpt/tests/mediacapture-streams/GUM-echoCancellation-remote-only.https.html new file mode 100644 index 00000000000..f9b92d70342 --- /dev/null +++ b/tests/wpt/tests/mediacapture-streams/GUM-echoCancellation-remote-only.https.html @@ -0,0 +1,27 @@ +<!doctype html> +<title>getUserMedia echoCancellation remote-only</title> +<p class="instructions">When prompted, accept to share your audio stream.</p> +<meta name=timeout content=long> +<script src=/resources/testharness.js></script> +<script src=/resources/testharnessreport.js></script> +<script src=/resources/testdriver.js></script> +<script src=/resources/testdriver-vendor.js></script> +<script src=permission-helper.js></script> +<script> + 'use strict' + + // https://w3c.github.io/mediacapture-main/#dom-echocancellationmodeenum-remote-only + + promise_test(async t => { + await setMediaPermission("granted", ["microphone"]); + const stream = await navigator.mediaDevices.getUserMedia({ + video: false, + audio: {echoCancellation: {exact: "remote-only"}}, + }); + const track = stream.getAudioTracks()[0]; + t.add_cleanup(() => track.stop()); + const settings = track.getSettings(); + assert_equals(settings.echoCancellation, "remote-only"); + }, 'getUserMedia suports "remote-only"'); + +</script> diff --git a/tests/wpt/tests/navigation-api/currententrychange-event/history-back-same-doc.html b/tests/wpt/tests/navigation-api/currententrychange-event/history-back-same-doc.html index 885d558bb5d..9ef2d1c7461 100644 --- a/tests/wpt/tests/navigation-api/currententrychange-event/history-back-same-doc.html +++ b/tests/wpt/tests/navigation-api/currententrychange-event/history-back-same-doc.html @@ -1,14 +1,16 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#foo"); assert_equals(navigation.entries().length, start_length + 1); diff --git a/tests/wpt/tests/navigation-api/currententrychange-event/navigation-back-forward-same-doc.html b/tests/wpt/tests/navigation-api/currententrychange-event/navigation-back-forward-same-doc.html index cd307a3d538..1faa949d4e2 100644 --- a/tests/wpt/tests/navigation-api/currententrychange-event/navigation-back-forward-same-doc.html +++ b/tests/wpt/tests/navigation-api/currententrychange-event/navigation-back-forward-same-doc.html @@ -1,14 +1,16 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#foo").committed; assert_equals(navigation.entries().length, start_length + 1); diff --git a/tests/wpt/tests/navigation-api/currententrychange-event/navigation-navigate-replace-same-doc.html b/tests/wpt/tests/navigation-api/currententrychange-event/navigation-navigate-replace-same-doc.html index 79ade9396f3..019798dc268 100644 --- a/tests/wpt/tests/navigation-api/currententrychange-event/navigation-navigate-replace-same-doc.html +++ b/tests/wpt/tests/navigation-api/currententrychange-event/navigation-navigate-replace-same-doc.html @@ -1,13 +1,15 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let oncurrententrychange_called = false; let original_entry = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/currententrychange-event/navigation-navigate-same-doc.html b/tests/wpt/tests/navigation-api/currententrychange-event/navigation-navigate-same-doc.html index 0cf5214eae6..0601189449e 100644 --- a/tests/wpt/tests/navigation-api/currententrychange-event/navigation-navigate-same-doc.html +++ b/tests/wpt/tests/navigation-api/currententrychange-event/navigation-navigate-same-doc.html @@ -1,13 +1,15 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let oncurrententrychange_called = false; navigation.oncurrententrychange = t.step_func(e => { diff --git a/tests/wpt/tests/navigation-api/navigate-event/cross-origin-traversal-redirect.html b/tests/wpt/tests/navigation-api/navigate-event/cross-origin-traversal-redirect.html index f7bebae5100..a1cc17772d6 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/cross-origin-traversal-redirect.html +++ b/tests/wpt/tests/navigation-api/navigate-event/cross-origin-traversal-redirect.html @@ -4,7 +4,9 @@ <script src="/resources/testharnessreport.js"></script> <script src="/common/utils.js"></script> <script src=/common/get-host-info.sub.js></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let i = document.createElement("iframe"); i.src = "resources/cross-origin-redirect-on-second-visit.py?key=" + token() + "&remote_origin=" + get_host_info().HTTP_REMOTE_ORIGIN; @@ -12,7 +14,7 @@ promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let original_iframe_url = i.contentWindow.location.href; diff --git a/tests/wpt/tests/navigation-api/navigate-event/intercept-popstate.html b/tests/wpt/tests/navigation-api/navigate-event/intercept-popstate.html index f5f9d82be7f..32a5fb1d20f 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/intercept-popstate.html +++ b/tests/wpt/tests/navigation-api/navigate-event/intercept-popstate.html @@ -1,11 +1,13 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); history.replaceState({ state: "foo"}, "", "#replace"); let onpopstate_fired = false; diff --git a/tests/wpt/tests/navigation-api/navigate-event/navigate-destination-after-detach.html b/tests/wpt/tests/navigation-api/navigate-event/navigate-destination-after-detach.html index 1dcb6cac437..6ddb67122e2 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/navigate-destination-after-detach.html +++ b/tests/wpt/tests/navigation-api/navigate-event/navigate-destination-after-detach.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let destination_key = i.contentWindow.navigation.currentEntry.key; let destination_id = i.contentWindow.navigation.currentEntry.id; diff --git a/tests/wpt/tests/navigation-api/navigate-event/navigate-destination-dynamic-index.html b/tests/wpt/tests/navigation-api/navigate-event/navigate-destination-dynamic-index.html index 535e5cfee78..02e74535fde 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/navigate-destination-dynamic-index.html +++ b/tests/wpt/tests/navigation-api/navigate-event/navigate-destination-dynamic-index.html @@ -2,13 +2,15 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="../navigation-methods/return-value/resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#1").finished; let back_destination; diff --git a/tests/wpt/tests/navigation-api/navigate-event/navigate-history-back-noop.html b/tests/wpt/tests/navigation-api/navigate-event/navigate-history-back-noop.html index 109106b77fc..11faca385df 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/navigate-history-back-noop.html +++ b/tests/wpt/tests/navigation-api/navigate-event/navigate-history-back-noop.html @@ -2,7 +2,9 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; @@ -10,7 +12,7 @@ promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await i.contentWindow.navigation.navigate("#").finished; assert_equals(i.contentWindow.navigation.entries().length, 2); diff --git a/tests/wpt/tests/navigation-api/navigate-event/navigate-navigation-back-same-document-in-iframe.html b/tests/wpt/tests/navigation-api/navigate-event/navigate-navigation-back-same-document-in-iframe.html index 42c694e2905..fc1070785cc 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/navigate-navigation-back-same-document-in-iframe.html +++ b/tests/wpt/tests/navigation-api/navigate-event/navigate-navigation-back-same-document-in-iframe.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let target_key = i.contentWindow.navigation.currentEntry.key; let target_id = i.contentWindow.navigation.currentEntry.id; diff --git a/tests/wpt/tests/navigation-api/navigate-event/navigation-back-same-document-preventDefault.html b/tests/wpt/tests/navigation-api/navigate-event/navigation-back-same-document-preventDefault.html index f8e31252a42..f9c68e8c3fa 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/navigation-back-same-document-preventDefault.html +++ b/tests/wpt/tests/navigation-api/navigate-event/navigation-back-same-document-preventDefault.html @@ -2,14 +2,16 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="../navigation-methods/return-value/resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#").finished; assert_equals(navigation.entries().length, start_length + 1); diff --git a/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault.html b/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault.html index b3b57f2a1ab..46a8349f010 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault.html +++ b/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-in-iframe-same-document-preventDefault.html @@ -3,14 +3,16 @@ <script src="/resources/testharnessreport.js"></script> <script src="../navigation-methods/return-value/resources/helpers.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); // Navigate the iframe, then the top window, so that when the iframe goes back // to its initial entry, the top window navigates as well. diff --git a/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-navigates-top-and-same-doc-child-and-cross-doc-child.html b/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-navigates-top-and-same-doc-child-and-cross-doc-child.html index 479f54213a9..d27f108ec56 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-navigates-top-and-same-doc-child-and-cross-doc-child.html +++ b/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-navigates-top-and-same-doc-child-and-cross-doc-child.html @@ -3,14 +3,16 @@ <script src="/resources/testharnessreport.js"></script> <iframe id="i1" src="/common/blank.html"></iframe> <iframe id="i2" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#").finished; await i1.contentWindow.navigation.navigate("#").finished; i2.contentWindow.navigation.navigate("?"); diff --git a/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-same-document-preventDefault-multiple-windows.html b/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-same-document-preventDefault-multiple-windows.html index 34f227a183f..0c39e4a213b 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-same-document-preventDefault-multiple-windows.html +++ b/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-same-document-preventDefault-multiple-windows.html @@ -3,14 +3,16 @@ <script src="/resources/testharnessreport.js"></script> <script src="../navigation-methods/return-value/resources/helpers.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#").finished; await i.contentWindow.navigation.navigate("#").finished; assert_equals(navigation.entries().length, start_length + 1); diff --git a/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-top-cancels-cross-document-child.html b/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-top-cancels-cross-document-child.html index 4ece3ca8cbc..0b0e297b1ae 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-top-cancels-cross-document-child.html +++ b/tests/wpt/tests/navigation-api/navigate-event/navigation-traverseTo-top-cancels-cross-document-child.html @@ -3,14 +3,16 @@ <script src="/resources/testharnessreport.js"></script> <script src="../navigation-methods/return-value/resources/helpers.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#").finished; i.contentWindow.navigation.navigate("?"); await new Promise(resolve => i.onload = () => t.step_timeout(resolve, 0)); diff --git a/tests/wpt/tests/navigation-api/navigate-event/replaceState-inside-back-handler.html b/tests/wpt/tests/navigation-api/navigate-event/replaceState-inside-back-handler.html index 29409b5e2bc..11595ce9f8c 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/replaceState-inside-back-handler.html +++ b/tests/wpt/tests/navigation-api/navigate-event/replaceState-inside-back-handler.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="../navigation-methods/return-value/resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#push").finished; navigation.onnavigate = () => history.replaceState(null, "", "#"); diff --git a/tests/wpt/tests/navigation-api/navigate-event/same-url-replace-cross-document.html b/tests/wpt/tests/navigation-api/navigate-event/same-url-replace-cross-document.html index b6bd0cdd883..f5d79880254 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/same-url-replace-cross-document.html +++ b/tests/wpt/tests/navigation-api/navigate-event/same-url-replace-cross-document.html @@ -3,14 +3,16 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that we are definitely testing the // same URL as the cause of the rejections. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(navigation.entries().length, start_length); navigation.onnavigate = t.step_func(e => { diff --git a/tests/wpt/tests/navigation-api/navigate-event/same-url-replace-same-document.html b/tests/wpt/tests/navigation-api/navigate-event/same-url-replace-same-document.html index cc4faffe77a..bdffdc42d15 100644 --- a/tests/wpt/tests/navigation-api/navigate-event/same-url-replace-same-document.html +++ b/tests/wpt/tests/navigation-api/navigate-event/same-url-replace-same-document.html @@ -3,14 +3,16 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that we are definitely testing the // same URL as the cause of the rejections. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(navigation.entries().length, start_length); await navigation.navigate("#").finished; assert_equals(navigation.entries().length, start_length + 1); diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-history-pushState.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-history-pushState.html index bcc56136f7e..a4f4583f575 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-history-pushState.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-history-pushState.html @@ -1,11 +1,13 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(navigation.activation.entry, navigation.currentEntry); let activationEntry = navigation.activation.entry; diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-history-replaceState.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-history-replaceState.html index 70dc7b8eede..fb3d55ad2d6 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-history-replaceState.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-history-replaceState.html @@ -1,11 +1,13 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(navigation.activation.entry, navigation.currentEntry); let activationEntry = navigation.activation.entry; diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-initial-about-blank.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-initial-about-blank.html index 402093809ca..9a19393c2c5 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-initial-about-blank.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-initial-about-blank.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.activation, null); diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-push-cross-origin.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-push-cross-origin.html index 15651bf78aa..d59ab8372f9 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-push-cross-origin.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-push-cross-origin.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/common/get-host-info.sub.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let i = document.createElement("iframe"); i.src = get_host_info().HTTP_ORIGIN_WITH_DIFFERENT_PORT + "/common/blank.html"; diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-push.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-push.html index 99548314c46..de08c532ea5 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-push.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-push.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); i.contentWindow.navigation.navigate("/common/blank.html?a"); await new Promise(resolve => i.onload = () => t.step_timeout(resolve, 0)); diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-reload.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-reload.html index f65afc74bc1..066feb21235 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-reload.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-reload.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); i.contentWindow.navigation.reload(); await new Promise(resolve => i.onload = () => t.step_timeout(resolve, 0)); diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-replace-cross-origin.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-replace-cross-origin.html index a835b7f4c52..58045ea1522 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-replace-cross-origin.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-replace-cross-origin.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/common/get-host-info.sub.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let i = document.createElement("iframe"); i.src = get_host_info().HTTP_ORIGIN_WITH_DIFFERENT_PORT + "/common/blank.html"; diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-replace.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-replace.html index 71624fd7cec..0be428c7c86 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-replace.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-replace.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let before_key = i.contentWindow.navigation.currentEntry.key; let before_id = i.contentWindow.navigation.currentEntry.id; diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-same-document-then-cross-document.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-same-document-then-cross-document.html index 3daa4de66ee..794e52031d9 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-same-document-then-cross-document.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-same-document-then-cross-document.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await i.contentWindow.navigation.navigate("/common/blank.html#fragment").finished; assert_equals(i.contentWindow.navigation.entries().length, 2); diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse-not-in-entries.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse-not-in-entries.html index c8386615a24..d78a34855ae 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse-not-in-entries.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse-not-in-entries.html @@ -3,11 +3,13 @@ <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> <script src="/common/get-host-info.sub.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); i.contentWindow.location = get_host_info().HTTP_ORIGIN_WITH_DIFFERENT_PORT + "/common/blank.html"; await new Promise(resolve => i.onload = () => t.step_timeout(resolve, 0)); diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse-then-clobber.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse-then-clobber.html index c0283762409..e15b7f335b1 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse-then-clobber.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse-then-clobber.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); i.contentWindow.navigation.navigate("/common/blank.html?a"); await new Promise(resolve => i.onload = () => t.step_timeout(resolve, 0)); diff --git a/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse.html b/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse.html index 218fe862691..9d13ec2ae27 100644 --- a/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse.html +++ b/tests/wpt/tests/navigation-api/navigation-activation/activation-traverse.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); i.contentWindow.navigation.navigate("/common/blank.html?a"); await new Promise(resolve => i.onload = () => t.step_timeout(resolve, 0)); diff --git a/tests/wpt/tests/navigation-api/navigation-history-entry/after-detach.html b/tests/wpt/tests/navigation-api/navigation-history-entry/after-detach.html index c4ecfec44d6..9c73795025b 100644 --- a/tests/wpt/tests/navigation-api/navigation-history-entry/after-detach.html +++ b/tests/wpt/tests/navigation-api/navigation-history-entry/after-detach.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let i_navigation = i.contentWindow.navigation; diff --git a/tests/wpt/tests/navigation-api/navigation-history-entry/entries-after-blank-navigation-from-cross-origin.html b/tests/wpt/tests/navigation-api/navigation-history-entry/entries-after-blank-navigation-from-cross-origin.html index d527637ed35..e17d8937ca8 100644 --- a/tests/wpt/tests/navigation-api/navigation-history-entry/entries-after-blank-navigation-from-cross-origin.html +++ b/tests/wpt/tests/navigation-api/navigation-history-entry/entries-after-blank-navigation-from-cross-origin.html @@ -3,9 +3,11 @@ <script src="/resources/testharnessreport.js"></script> <script src="/common/get-host-info.sub.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let i = document.createElement("iframe"); i.src = get_host_info().HTTP_ORIGIN_WITH_DIFFERENT_PORT + "/common/blank.html"; diff --git a/tests/wpt/tests/navigation-api/navigation-history-entry/resources/opaque-origin-page.html b/tests/wpt/tests/navigation-api/navigation-history-entry/resources/opaque-origin-page.html index 98e2c1b3175..ff4556ed5ce 100644 --- a/tests/wpt/tests/navigation-api/navigation-history-entry/resources/opaque-origin-page.html +++ b/tests/wpt/tests/navigation-api/navigation-history-entry/resources/opaque-origin-page.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <!-- Put this page in a sandbox to give it an opaque origin --> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); location.hash = "#1"; await new Promise(resolve => window.onhashchange = resolve); diff --git a/tests/wpt/tests/navigation-api/navigation-methods/back-forward-multiple-frames.html b/tests/wpt/tests/navigation-api/navigation-methods/back-forward-multiple-frames.html index 6c30987f759..b7e980dda32 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/back-forward-multiple-frames.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/back-forward-multiple-frames.html @@ -2,13 +2,15 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); // Step 1 assert_equals(navigation.entries().length, start_length, "step 1 outer entries() length"); assert_equals(i.contentWindow.navigation.entries().length, 1, "step 1 iframe entries() length"); diff --git a/tests/wpt/tests/navigation-api/navigation-methods/disambigaute-traverseTo-forward-multiple.html b/tests/wpt/tests/navigation-api/navigation-methods/disambigaute-traverseTo-forward-multiple.html index 92f23f0acff..ecb92ed0756 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/disambigaute-traverseTo-forward-multiple.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/disambigaute-traverseTo-forward-multiple.html @@ -2,13 +2,15 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(navigation.entries().length, start_length); assert_equals(i.contentWindow.navigation.entries().length, 1); let initial_key = navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/forward-to-pruned-entry.html b/tests/wpt/tests/navigation-api/navigation-methods/forward-to-pruned-entry.html index 18b30c620d5..67006c6c2b1 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/forward-to-pruned-entry.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/forward-to-pruned-entry.html @@ -1,13 +1,15 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#foo").finished; assert_equals(navigation.entries().length, start_length+1); await navigation.back().finished; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/navigate-history-push-same-url-cross-document.html b/tests/wpt/tests/navigation-api/navigation-methods/navigate-history-push-same-url-cross-document.html index 2d07bdcede2..00020ea93d0 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/navigate-history-push-same-url-cross-document.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/navigate-history-push-same-url-cross-document.html @@ -3,11 +3,13 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation due to onload not having completed. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); i.contentWindow.navigation.onnavigatesuccess = t.unreached_func("onnavigatesuccess should not be called"); diff --git a/tests/wpt/tests/navigation-api/navigation-methods/navigate-history-push-same-url.html b/tests/wpt/tests/navigation-api/navigation-methods/navigate-history-push-same-url.html index a81215f7d46..59c0ac840f1 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/navigate-history-push-same-url.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/navigate-history-push-same-url.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation due to onload not having completed. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(navigation.entries().length, start_length); diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-already-detached.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-already-detached.html index f9ff04f923c..ebaa15be91a 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-already-detached.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-already-detached.html @@ -5,11 +5,13 @@ <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); let key = i.contentWindow.navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-beforeunload.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-beforeunload.html index 82c1f589ccf..dfb79861bed 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-beforeunload.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-beforeunload.html @@ -5,11 +5,13 @@ <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); let key = i.contentWindow.navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-intercept-rejected.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-intercept-rejected.html index 013ebf1e1e3..cda4ea71d7b 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-intercept-rejected.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-intercept-rejected.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); location.href = "#1"; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-intercept.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-intercept.html index 1db2f870d8d..112a712d45b 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-intercept.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back-intercept.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); location.href = "#1"; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back.html index 5521de25b79..16e4db1310a 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/back.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/back.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); location.href = "#1"; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-already-detached.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-already-detached.html index 4dfa74d9f9b..8f337e2eb6a 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-already-detached.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-already-detached.html @@ -5,11 +5,13 @@ <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); let key = i.contentWindow.navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-beforeunload.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-beforeunload.html index 87fa4baa935..642c4510a61 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-beforeunload.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-beforeunload.html @@ -5,11 +5,13 @@ <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); let key = i.contentWindow.navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-intercept-rejected.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-intercept-rejected.html index 9d5318a260d..658146a15de 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-intercept-rejected.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-intercept-rejected.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); location.href = "#1"; await navigation.back().committed; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-intercept.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-intercept.html index 3c521197454..d6ea5dcc1c8 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-intercept.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward-intercept.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); location.href = "#1"; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward.html index 5ba58f2c8ea..c1ac710cea3 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/forward.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); location.href = "#1"; await navigation.back().committed; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-intercept-interrupted.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-intercept-interrupted.html index 7f661b80b6d..86123cc540a 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-intercept-interrupted.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-intercept-interrupted.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); navigation.addEventListener("navigate", e => e.intercept()); diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-interrupted-within-onnavigate.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-interrupted-within-onnavigate.html index 249a7df69c2..a3106ddd31b 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-interrupted-within-onnavigate.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-interrupted-within-onnavigate.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let result2; navigation.onnavigate = t.step_func(e => { diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-interrupted.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-interrupted.html index d1ade5b423d..3ed52250867 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-interrupted.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-interrupted.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const result1 = navigation.navigate("#1"); const result2 = navigation.navigate("#2"); diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-push-initial-about-blank.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-push-initial-about-blank.html index 9d47c8d0b5d..3431f03d4b6 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-push-initial-about-blank.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-push-initial-about-blank.html @@ -5,11 +5,13 @@ <body> <iframe id="i"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that we are definitely testing the initial // about:blank-ness as the cause of the rejections. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); i.contentWindow.navigation.onnavigate = t.unreached_func("onnavigate should not be called"); i.contentWindow.navigation.onnavigatesuccess = t.unreached_func("onnavigatesuccess should not be called"); diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-push-javascript-url.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-push-javascript-url.html index e41e06a78dc..6db41bb78e1 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-push-javascript-url.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/navigate-push-javascript-url.html @@ -3,11 +3,13 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that we are definitely testing the // javascript: URL as the cause of the rejections. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); navigation.onnavigate = t.unreached_func("onnavigate should not be called"); navigation.onnavigatesuccess = t.unreached_func("onnavigatesuccess should not be called"); diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/resources/back-forward-opaque-origin-page.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/resources/back-forward-opaque-origin-page.html index ec633639524..b62b573b5f2 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/resources/back-forward-opaque-origin-page.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/resources/back-forward-opaque-origin-page.html @@ -3,11 +3,13 @@ <script src="helpers.js"></script> <!-- Put this page in a sandbox to give it an opaque origin --> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); navigation.onnavigate = t.unreached_func("onnavigate should not be called"); navigation.onnavigatesuccess = t.unreached_func("onnavigatesuccess should not be called"); diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-cross-document-preventDefault.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-cross-document-preventDefault.html index 09c91ee647e..b40297206cf 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-cross-document-preventDefault.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-cross-document-preventDefault.html @@ -5,11 +5,13 @@ <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); let key = i.contentWindow.navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document-before-navigate-event.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document-before-navigate-event.html index ed319f62239..1833e1aef34 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document-before-navigate-event.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document-before-navigate-event.html @@ -5,11 +5,13 @@ <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); let key = i.contentWindow.navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document.html index 8784313b705..7b9389fc92a 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-cross-document.html @@ -5,11 +5,13 @@ <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); let key = i.contentWindow.navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document-before-navigate-event.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document-before-navigate-event.html index 592ac6f1990..65dbf42464e 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document-before-navigate-event.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document-before-navigate-event.html @@ -5,11 +5,13 @@ <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); let key = i.contentWindow.navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document.html index b0308b8df8f..4aec1d812e1 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-detach-same-document.html @@ -5,11 +5,13 @@ <iframe id="i" src="/common/blank.html"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(i.contentWindow.navigation.entries().length, 1); let key = i.contentWindow.navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-intercept-rejected.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-intercept-rejected.html index f39913e05b2..b5b03b3caca 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-intercept-rejected.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-intercept-rejected.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const key0 = navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-intercept.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-intercept.html index e5baf8b1417..15a54b180e2 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-intercept.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-intercept.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const key0 = navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-repeated.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-repeated.html index d1754d67297..d2ede8e6cf4 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-repeated.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo-repeated.html @@ -3,11 +3,13 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const key = navigation.currentEntry.key; const entry = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo.html b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo.html index 5270bbb411d..68c309318ce 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/return-value/traverseTo.html @@ -3,13 +3,15 @@ <script src="/resources/testharnessreport.js"></script> <script src="resources/helpers.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const key0 = navigation.currentEntry.key; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/traverseTo-multiple-steps.html b/tests/wpt/tests/navigation-api/navigation-methods/traverseTo-multiple-steps.html index 24cf0281845..6bf37525100 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/traverseTo-multiple-steps.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/traverseTo-multiple-steps.html @@ -1,13 +1,15 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(navigation.entries().length, start_length); let key0 = navigation.currentEntry.key; await navigation.navigate("#1").committed; diff --git a/tests/wpt/tests/navigation-api/navigation-methods/traverseTo-navigates-multiple-iframes.html b/tests/wpt/tests/navigation-api/navigation-methods/traverseTo-navigates-multiple-iframes.html index 1892ae065e2..521f34157ea 100644 --- a/tests/wpt/tests/navigation-api/navigation-methods/traverseTo-navigates-multiple-iframes.html +++ b/tests/wpt/tests/navigation-api/navigation-methods/traverseTo-navigates-multiple-iframes.html @@ -4,12 +4,14 @@ <body> <iframe id="i1" src="/common/blank.html"></iframe> <iframe id="i2" src="resources/slow-no-store.py"></iframe> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); i1.src = "/common/blank.html?navigated"; await new Promise(resolve => i1.onload = resolve); diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/anchor-download-intercept-reject.html b/tests/wpt/tests/navigation-api/ordering-and-transition/anchor-download-intercept-reject.html index bd7d968fb1f..726586b7a10 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/anchor-download-intercept-reject.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/anchor-download-intercept-reject.html @@ -6,11 +6,13 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; const expectedError = new Error("boo"); diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/anchor-download-intercept.html b/tests/wpt/tests/navigation-api/ordering-and-transition/anchor-download-intercept.html index 38478e3c9a8..8aaee4a7094 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/anchor-download-intercept.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/anchor-download-intercept.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document-intercept-reject.html b/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document-intercept-reject.html index d1f15428f10..c2db856da8a 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document-intercept-reject.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document-intercept-reject.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#1").finished; const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document-intercept.html b/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document-intercept.html index f66e1dfba8f..9180ca1ca78 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document-intercept.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document-intercept.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#1").finished; const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document.html b/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document.html index 12b6a2aee93..680421b9264 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/back-same-document.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#1").finished; const recorder = new Recorder({ diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/currententrychange-before-popstate-intercept.html b/tests/wpt/tests/navigation-api/ordering-and-transition/currententrychange-before-popstate-intercept.html index 10627c58754..b0c934f6877 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/currententrychange-before-popstate-intercept.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/currententrychange-before-popstate-intercept.html @@ -1,12 +1,14 @@ <!doctype html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { let start_length = navigation.entries().length; // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#foo").committed; assert_equals(navigation.entries().length, start_length + 1); diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/intercept-async.html b/tests/wpt/tests/navigation-api/ordering-and-transition/intercept-async.html index 4fa7c88833e..c34994a57f2 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/intercept-async.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/intercept-async.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-canceled.html b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-canceled.html index eef10cd1730..894aa39fe06 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-canceled.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-canceled.html @@ -4,11 +4,12 @@ <script type="module"> import { Recorder } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const recorder = new Recorder({ finalExpectedEvent: "promise microtask" diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-double-intercept.html b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-double-intercept.html index cc8b95b1b4d..73121ca595f 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-double-intercept.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-double-intercept.html @@ -6,10 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const fromStart = navigation.currentEntry; let fromHash1; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept-reentrant.html b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept-reentrant.html index 8a5082148e7..18f992422d0 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept-reentrant.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept-reentrant.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; let firstNavigate = true; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept-reject.html b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept-reject.html index 59b3d4884fb..04f2914d2ae 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept-reject.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept-reject.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; const expectedError = new Error("boo"); diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept.html b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept.html index 75f1d3d1d02..2be0a1238a7 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/location-href-intercept.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-canceled.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-canceled.html index 2604a60e37b..1bc9dfe467b 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-canceled.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-canceled.html @@ -4,11 +4,12 @@ <script type="module"> import { Recorder } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const recorder = new Recorder({ finalExpectedEvent: "finished rejected" diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-double-intercept.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-double-intercept.html index 0598fb554e0..92758286800 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-double-intercept.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-double-intercept.html @@ -6,10 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const fromStart = navigation.currentEntry; let fromHash1; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-in-transition-finished.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-in-transition-finished.html index 8b3811dd36f..45aa33017c4 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-in-transition-finished.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-in-transition-finished.html @@ -6,10 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const fromStart = navigation.currentEntry; let fromHash1; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-redirect.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-redirect.html index 2f60bfd749d..aa703435d34 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-redirect.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-redirect.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-reject.tentative.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-reject.tentative.html index 28dc8851880..80c9e85687a 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-reject.tentative.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler-reject.tentative.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler.html index 8257e56d44e..f3f525af706 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-precommitHandler.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-stop.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-stop.html index 1a7faa4e0ee..8357dc82806 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-stop.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept-stop.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept.html index eec9d3ca119..ebb1a0b13af 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-intercept.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document-intercept-reentrant.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document-intercept-reentrant.html index 88715fda355..b9d2740b98d 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document-intercept-reentrant.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document-intercept-reentrant.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; let firstNavigate = true; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document-intercept-reject.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document-intercept-reject.html index 05f295177a0..8899a3819d9 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document-intercept-reject.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document-intercept-reject.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; const expectedError = new Error("boo"); diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document.html b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document.html index fc506cef8bf..b23d32fc09f 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/navigate-same-document.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const recorder = new Recorder({ skipCurrentChange: !hasVariant("currententrychange"), diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/reload-canceled.html b/tests/wpt/tests/navigation-api/ordering-and-transition/reload-canceled.html index 3e9e24e7771..9b21c15ad86 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/reload-canceled.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/reload-canceled.html @@ -4,11 +4,12 @@ <script type="module"> import { Recorder } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const recorder = new Recorder({ finalExpectedEvent: "finished rejected" diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/reload-intercept-reject.html b/tests/wpt/tests/navigation-api/ordering-and-transition/reload-intercept-reject.html index 96833f314f4..4ea4cc0e398 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/reload-intercept-reject.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/reload-intercept-reject.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; const expectedError = new Error("boo"); diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/reload-intercept.html b/tests/wpt/tests/navigation-api/ordering-and-transition/reload-intercept.html index 1494136e199..eb6aff961e1 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/reload-intercept.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/reload-intercept.html @@ -6,11 +6,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/ordering-and-transition/reload-no-popstate.html b/tests/wpt/tests/navigation-api/ordering-and-transition/reload-no-popstate.html index 6c4592b67cc..324acb66cdb 100644 --- a/tests/wpt/tests/navigation-api/ordering-and-transition/reload-no-popstate.html +++ b/tests/wpt/tests/navigation-api/ordering-and-transition/reload-no-popstate.html @@ -4,11 +4,12 @@ <script type="module"> import { Recorder, hasVariant } from "./resources/helpers.mjs"; +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); const from = navigation.currentEntry; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-options.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-options.html index 06542d7e084..3c40044c8cb 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-options.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-options.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let start_length = navigation.entries().length; let start_hash = location.hash; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-push-changed-to-replace.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-push-changed-to-replace.html index e268f68a88d..8088f51021a 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-push-changed-to-replace.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-push-changed-to-replace.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let start_length = navigation.entries().length; let start_hash = location.hash; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-push.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-push.html index de75198d975..41b3f3df8bd 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-push.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-push.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let start_length = navigation.entries().length; let start_hash = location.hash; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-replace-changed-to-push.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-replace-changed-to-push.html index db9b178901b..19bbbcda33f 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-replace-changed-to-push.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-replace-changed-to-push.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let start_length = navigation.entries().length; let start_hash = location.hash; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-replace.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-replace.html index 049909fefde..2ebd3853645 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-replace.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-replace.html @@ -2,11 +2,13 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let start_length = navigation.entries().length; let start_hash = location.hash; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-throws.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-throws.html index b4592712010..865835d5ea6 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-throws.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-redirect-throws.html @@ -2,7 +2,8 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; promise_test(async t => { let precommit_controller; @@ -86,7 +87,7 @@ promise_test(async t => { promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#forward").finished; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-traversal-commit-new-navigation-before-commit.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-traversal-commit-new-navigation-before-commit.html index 226f332e421..e5955b67d7c 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-traversal-commit-new-navigation-before-commit.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-traversal-commit-new-navigation-before-commit.html @@ -3,11 +3,13 @@ <script src="/resources/testharnessreport.js"></script> <script src="../navigation-methods/return-value/resources/helpers.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#1").finished; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-traversal-window-stop-before-commit.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-traversal-window-stop-before-commit.html index c45f8268f2a..9dd74c2c47e 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-traversal-window-stop-before-commit.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-traversal-window-stop-before-commit.html @@ -3,11 +3,13 @@ <script src="/resources/testharnessreport.js"></script> <script src="../navigation-methods/return-value/resources/helpers.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event because window.stop() hangs the test harness // if called before the load event. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let start_length = navigation.entries().length; let start_index = navigation.currentEntry.index; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-uncancelable.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-uncancelable.html index af320b4e32c..9a63c45ad3c 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-uncancelable.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-uncancelable.html @@ -3,11 +3,13 @@ <script src="/resources/testharnessreport.js"></script> <iframe id="i" src="/common/blank.html"></iframe> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await i.contentWindow.navigation.navigate("#1").finished; diff --git a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-window-stop-before-commit.html b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-window-stop-before-commit.html index 857a21ed3a9..8b8e2fe9163 100644 --- a/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-window-stop-before-commit.html +++ b/tests/wpt/tests/navigation-api/precommit-handler/precommitHandler-window-stop-before-commit.html @@ -3,11 +3,13 @@ <script src="/resources/testharnessreport.js"></script> <script src="../navigation-methods/return-value/resources/helpers.js"></script> <body> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event because window.stop() hangs the test harness // if called before the load event. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); navigation.onnavigate = e => { e.intercept({ precommitHandler: async () => {} }); diff --git a/tests/wpt/tests/navigation-api/resources/helpers.mjs b/tests/wpt/tests/navigation-api/resources/helpers.mjs new file mode 100644 index 00000000000..2208dab3b0b --- /dev/null +++ b/tests/wpt/tests/navigation-api/resources/helpers.mjs @@ -0,0 +1,10 @@ +export async function ensureWindowLoadEventFired(t) { + return new Promise(resolve => { + const callback = () => t.step_timeout(resolve, 0); + if (document.readyState === 'complete') { + callback(); + } else { + window.onload = callback; + } + }); +} diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-basic.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-basic.html index 8ee4cc395b6..b6e5058e893 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-basic.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-basic.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-change-history-scroll-restoration-during-promise.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-change-history-scroll-restoration-during-promise.html index 6ededdeebfa..6be6eddd62f 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-change-history-scroll-restoration-during-promise.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-change-history-scroll-restoration-during-promise.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); history.scrollRestoration = "manual"; diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-explicit-scroll.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-explicit-scroll.html index 4b7d0754747..4f7c6787e87 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-explicit-scroll.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-explicit-scroll.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html index baff6fe542b..c2609d611a6 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-intercept-handler-modifies.html @@ -3,11 +3,13 @@ <script src="/resources/testharnessreport.js"></script> <body> <div id="main" style="height: 1000px; width: 1000px;"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); window.scrollTo(0, 100); assert_equals(window.scrollY, 100); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-push.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-push.html index f3ee1827bc4..8ce5be60bb5 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-push.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-push.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); let intercept_resolve; diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-reject.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-reject.html index 5880dbb3313..063c0846be8 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-reject.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-reject.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-reload.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-reload.html index badb7e7f417..437ed692060 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-reload.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-reload.html @@ -5,11 +5,13 @@ <div id="buffer" style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> <div style="height: 1000px; width: 1000px;"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; // Scroll down 10px from #frag diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-replace.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-replace.html index 48f153b99ef..64376c9fe1f 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-replace.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-replace.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); let intercept_resolve; diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-timing.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-timing.html index 88ba82102a6..637d8c00d90 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-timing.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-timing.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-with-history-scroll-restoration-manual.html b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-with-history-scroll-restoration-manual.html index bc2ce230ce7..93e7168f85c 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-with-history-scroll-restoration-manual.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/after-transition-with-history-scroll-restoration-manual.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); history.scrollRestoration = "manual"; diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-basic.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-basic.html index e6ae29ad86e..5e4d6a12a72 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-basic.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-basic.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-immediate-scroll.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-immediate-scroll.html index bafcf6b2562..d50faedd7f8 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-immediate-scroll.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-immediate-scroll.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-after-dispatch.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-after-dispatch.html index 8b4a58c7a26..268be126fac 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-after-dispatch.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-after-dispatch.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-after-resolve.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-after-resolve.html index 244c93af904..34eec9727c9 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-after-resolve.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-after-resolve.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-fragment-does-not-exist.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-fragment-does-not-exist.html index 1ca582787e2..0db3f03ee59 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-fragment-does-not-exist.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-fragment-does-not-exist.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-in-precommit-handler.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-in-precommit-handler.html index 3f92b5276a3..ec91e762b66 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-in-precommit-handler.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-in-precommit-handler.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-push.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-push.html index 3c293651780..cba40fdf27e 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-push.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-push.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); let intercept_resolve; diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-reload.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-reload.html index 6dd3fd8a38f..9c70d5fe818 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-reload.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-reload.html @@ -5,11 +5,13 @@ <div id="buffer" style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> <div style="height: 1000px; width: 1000px;"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; // Scroll down 10px from #frag diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-repeated.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-repeated.html index 12391460880..058d7f0f9b2 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-repeated.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-repeated.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-replace.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-replace.html index db580229a86..151c2ddfa9e 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-replace.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-replace.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); assert_equals(window.scrollY, 0); let intercept_resolve; diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-resets-when-no-fragment.html b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-resets-when-no-fragment.html index 5401976f640..caf7bae6d2e 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-resets-when-no-fragment.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/manual-scroll-resets-when-no-fragment.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); let start_url = location.href; await navigation.navigate("#frag").finished; assert_not_equals(window.scrollY, 0); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/scroll-after-preventDefault.html b/tests/wpt/tests/navigation-api/scroll-behavior/scroll-after-preventDefault.html index 298bebcbe98..fe83b89cfeb 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/scroll-after-preventDefault.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/scroll-after-preventDefault.html @@ -5,11 +5,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); navigation.addEventListener("navigate", t.step_func(e => { e.intercept(); diff --git a/tests/wpt/tests/navigation-api/scroll-behavior/scroll-without-intercept.html b/tests/wpt/tests/navigation-api/scroll-behavior/scroll-without-intercept.html index b3958352c72..efdded2258f 100644 --- a/tests/wpt/tests/navigation-api/scroll-behavior/scroll-without-intercept.html +++ b/tests/wpt/tests/navigation-api/scroll-behavior/scroll-without-intercept.html @@ -4,11 +4,13 @@ <body> <div style="height: 1000px; width: 1000px;"></div> <div id="frag"></div> -<script> +<script type="module"> +import { ensureWindowLoadEventFired } from "../resources/helpers.mjs"; + promise_test(async t => { // Wait for after the load event so that the navigation doesn't get converted // into a replace navigation. - await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0)); + await ensureWindowLoadEventFired(t); navigation.addEventListener("navigate", t.step_func(e => { assert_throws_dom("InvalidStateError", () => e.scroll()); diff --git a/tests/wpt/tests/resources/testharness.js b/tests/wpt/tests/resources/testharness.js index b5847ed406a..f495b62458b 100644 --- a/tests/wpt/tests/resources/testharness.js +++ b/tests/wpt/tests/resources/testharness.js @@ -867,6 +867,54 @@ }); } +/** + * Assert that a `Promise` is rejected with a `QuotaExceededError` with the + * expected values. + * + * For the remaining arguments, there are two ways of calling + * `promise_rejects_quotaexceedederror`: + * + * 1) If the `QuotaExceededError` is expected to come from the + * current global, the second argument should be the promise + * expected to reject, the third and a fourth the expected + * `requested` and `quota` property values, and the fifth, + * optional, argument is the assertion description. + * + * 2) If the `QuotaExceededError` is expected to come from some + * other global, the second argument should be the + * `QuotaExceededError` constructor from that global, the third + * argument should be the promise expected to reject, the fourth + * and fifth the expected `requested` and `quota` property + * values, and the sixth, optional, argument is the assertion + * description. + * + */ + function promise_rejects_quotaexceedederror(test, promiseOrConstructor, requestedOrPromise, quotaOrRequested, descriptionOrQuota, maybeDescription) + { + let constructor, promise, requested, quota, description; + if (typeof promiseOrConstructor === "function" && + promiseOrConstructor.name === "QuotaExceededError") { + constructor = promiseOrConstructor; + promise = requestedOrPromise; + requested = quotaOrRequested; + quota = descriptionOrQuota; + description = maybeDescription; + } else { + constructor = self.QuotaExceededError; + promise = promiseOrConstructor; + requested = requestedOrPromise; + quota = quotaOrRequested; + description = descriptionOrQuota; + assert(maybeDescription === undefined, + "Too many args passed to no-constructor version of promise_rejects_quotaexceedederror"); + } + return bring_promise_to_current_realm(promise) + .then(test.unreached_func("Should have rejected: " + description)) + .catch(function(e) { + assert_throws_quotaexceedederror_impl(function() { throw e; }, requested, quota, description, "promise_rejects_quotaexceedederror", constructor); + }); + } + /** * Assert that a Promise is rejected with the provided value. * @@ -1240,6 +1288,7 @@ expose(promise_test, 'promise_test'); expose(promise_rejects_js, 'promise_rejects_js'); expose(promise_rejects_dom, 'promise_rejects_dom'); + expose(promise_rejects_quotaexceedederror, 'promise_rejects_quotaexceedederror'); expose(promise_rejects_exactly, 'promise_rejects_exactly'); expose(generate_tests, 'generate_tests'); expose(setup, 'setup'); @@ -2296,7 +2345,6 @@ NETWORK_ERR: 'NetworkError', ABORT_ERR: 'AbortError', URL_MISMATCH_ERR: 'URLMismatchError', - QUOTA_EXCEEDED_ERR: 'QuotaExceededError', TIMEOUT_ERR: 'TimeoutError', INVALID_NODE_TYPE_ERR: 'InvalidNodeTypeError', DATA_CLONE_ERR: 'DataCloneError' @@ -2321,7 +2369,6 @@ NetworkError: 19, AbortError: 20, URLMismatchError: 21, - QuotaExceededError: 22, TimeoutError: 23, InvalidNodeTypeError: 24, DataCloneError: 25, @@ -2352,12 +2399,19 @@ if (typeof type === "number") { if (type === 0) { throw new AssertionError('Test bug: ambiguous DOMException code 0 passed to assert_throws_dom()'); - } else if (!(type in code_name_map)) { + } + if (type === 22) { + throw new AssertionError('Test bug: QuotaExceededError needs to be tested for using assert_throws_quotaexceedederror()'); + } + if (!(type in code_name_map)) { throw new AssertionError('Test bug: unrecognized DOMException code "' + type + '" passed to assert_throws_dom()'); } name = code_name_map[type]; required_props.code = type; } else if (typeof type === "string") { + if (name === "QuotaExceededError") { + throw new AssertionError('Test bug: QuotaExceededError needs to be tested for using assert_throws_quotaexceedederror()'); + } name = type in codename_name_map ? codename_name_map[type] : type; if (!(name in name_code_map)) { throw new AssertionError('Test bug: unrecognized DOMException code name or name "' + type + '" passed to assert_throws_dom()'); @@ -2392,6 +2446,137 @@ } } + /** + * Assert a `QuotaExceededError` with the expected values is thrown. + * + * There are two ways of calling `assert_throws_quotaexceedederror`: + * + * 1) If the `QuotaExceededError` is expected to come from the + * current global, the first argument should be the function + * expected to throw, the second and a third the expected + * `requested` and `quota` property values, and the fourth, + * optional, argument is the assertion description. + * + * 2) If the `QuotaExceededError` is expected to come from some + * other global, the first argument should be the + * `QuotaExceededError` constructor from that global, the second + * argument should be the function expected to throw, the third + * and fourth the expected `requested` and `quota` property + * values, and the fifth, optional, argument is the assertion + * description. + * + * For the `requested` and `quota` values, instead of `null` or a + * number, the caller can provide a function which determines + * whether the value is acceptable by returning a boolean. + * + */ + function assert_throws_quotaexceedederror(funcOrConstructor, requestedOrFunc, quotaOrRequested, descriptionOrQuota, maybeDescription) + { + let constructor, func, requested, quota, description; + if (funcOrConstructor.name === "QuotaExceededError") { + constructor = funcOrConstructor; + func = requestedOrFunc; + requested = quotaOrRequested; + quota = descriptionOrQuota; + description = maybeDescription; + } else { + constructor = self.QuotaExceededError; + func = funcOrConstructor; + requested = requestedOrFunc; + quota = quotaOrRequested; + description = descriptionOrQuota; + assert(maybeDescription === undefined, + "Too many args passed to no-constructor version of assert_throws_quotaexceedederror"); + } + assert_throws_quotaexceedederror_impl(func, requested, quota, description, "assert_throws_quotaexceedederror", constructor); + } + expose_assert(assert_throws_quotaexceedederror, "assert_throws_quotaexceedederror"); + + /** + * Similar to `assert_throws_quotaexceedederror` but allows + * specifying the assertion type + * (`"assert_throws_quotaexceedederror"` or + * `"promise_rejects_quotaexceedederror"`, in practice). The + * `constructor` argument must be the `QuotaExceededError` + * constructor from the global we expect the exception to come from. + */ + function assert_throws_quotaexceedederror_impl(func, requested, quota, description, assertion_type, constructor) + { + try { + func.call(this); + assert(false, assertion_type, description, "${func} did not throw", + {func}); + } catch (e) { + if (e instanceof AssertionError) { + throw e; + } + + // Basic sanity-checks on the thrown exception. + assert(typeof e === "object", + assertion_type, description, + "${func} threw ${e} with type ${type}, not an object", + {func, e, type:typeof e}); + + assert(e !== null, + assertion_type, description, + "${func} threw null, not an object", + {func}); + + // Sanity-check our requested and quota. + assert(requested === null || + typeof requested === "number" || + typeof requested === "function", + assertion_type, description, + "${requested} is not null, a number, or a function", + {requested}); + assert(quota === null || + typeof quota === "number" || + typeof quota === "function", + assertion_type, description, + "${quota} is not null or a number", + {quota}); + + const required_props = { + code: 22, + name: "QuotaExceededError" + }; + if (typeof requested !== "function") { + required_props.requested = requested; + } + if (typeof quota !== "function") { + required_props.quota = quota; + } + + for (const [prop, expected] of Object.entries(required_props)) { + assert(prop in e && e[prop] == expected, + assertion_type, description, + "${func} threw ${e} that is not a correct QuotaExceededError: property ${prop} is equal to ${actual}, expected ${expected}", + {func, e, prop, actual:e[prop], expected}); + } + + if (typeof requested === "function") { + assert(requested(e.requested), + assertion_type, description, + "${func} threw ${e} that is not a correct QuotaExceededError: requested value ${requested} did not pass the requested predicate", + {func, e, requested}); + } + if (typeof quota === "function") { + assert(quota(e.quota), + assertion_type, description, + "${func} threw ${e} that is not a correct QuotaExceededError: quota value ${quota} did not pass the quota predicate", + {func, e, quota}); + } + + // Check that the exception is from the right global. This check is last + // so more specific, and more informative, checks on the properties can + // happen in case a totally incorrect exception is thrown. + assert(e.constructor === constructor, + assertion_type, description, + "${func} threw an exception from the wrong global", + {func}); + } + } + /** * Assert the provided value is thrown. * diff --git a/tests/wpt/tests/screen-capture/getdisplaymedia-restrictOwnAudio.https.html b/tests/wpt/tests/screen-capture/getdisplaymedia-restrictOwnAudio.https.html new file mode 100644 index 00000000000..b4915dea969 --- /dev/null +++ b/tests/wpt/tests/screen-capture/getdisplaymedia-restrictOwnAudio.https.html @@ -0,0 +1,56 @@ +<!doctype html> +<meta charset=utf-8> +<title>getDisplayMedia</title> +<meta name="timeout" content="long"> +<button id="button">User gesture</button> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script> + 'use strict'; + +const stopTracks = stream => stream.getTracks().forEach(track => track.stop()); + +async function getDisplayMedia(constraints) { + const p = new Promise(r => button.onclick = r); + await test_driver.click(button); + await p; + return navigator.mediaDevices.getDisplayMedia(constraints); +} + +test(() => { + const supportedConstraints = + navigator.mediaDevices.getSupportedConstraints(); + assert_true(supportedConstraints.restrictOwnAudio); +}, "restrictOwnAudio is supported"); + +{ + const restrictOwnAudio = [true, false]; + restrictOwnAudio.forEach((restrictOwnAudio) => { + promise_test(async (t) => { + const stream = await getDisplayMedia({ + audio: { restrictOwnAudio }, + }); + t.add_cleanup(() => stopTracks(stream)); + const [videoTrack] = stream.getVideoTracks(); + assert_false("restrictOwnAudio" in videoTrack.getSettings()); + const [audioTrack] = stream.getAudioTracks(); + const audioTrackSettings = audioTrack.getSettings(); + assert_true("restrictOwnAudio" in audioTrackSettings); + assert_equals( + audioTrackSettings.restrictOwnAudio, + restrictOwnAudio + ); + await audioTrack.applyConstraints(); + // Removing constraints does not change the restrictOwnAudio setting. + assert_true("restrictOwnAudio" in audioTrackSettings); + assert_equals( + audioTrackSettings.restrictOwnAudio, + restrictOwnAudio + ); + }, `getDisplayMedia({"audio":{"restrictOwnAudio":${restrictOwnAudio}}}) with getSettings`); + }); +} + +</script> diff --git a/tests/wpt/tests/screen-capture/getdisplaymedia.https.html b/tests/wpt/tests/screen-capture/getdisplaymedia.https.html index 4a7c6553351..0051e4c5a04 100644 --- a/tests/wpt/tests/screen-capture/getdisplaymedia.https.html +++ b/tests/wpt/tests/screen-capture/getdisplaymedia.https.html @@ -213,6 +213,9 @@ promise_test(async t => { {surfaceSwitching: "exclude"}, {systemAudio: "include"}, {systemAudio: "exclude"}, + {windowAudio: "exclude"}, + {windowAudio: "window"}, + {windowAudio: "system"}, ].forEach(constraints => promise_test(async t => { const stream = await getDisplayMedia(constraints); t.add_cleanup(() => stopTracks(stream)); @@ -222,6 +225,7 @@ promise_test(async t => { {selfBrowserSurface: "invalid"}, {surfaceSwitching: "invalid"}, {systemAudio: "invalid"}, + {windowAudio: "invalid"}, {monitorTypeSurfaces: "invalid"}, ].forEach(constraints => promise_test(async t => { await test_driver.bless('getDisplayMedia()'); diff --git a/tests/wpt/tests/selection/canvas-drag.html b/tests/wpt/tests/selection/canvas-drag.html new file mode 100644 index 00000000000..eaed6f783af --- /dev/null +++ b/tests/wpt/tests/selection/canvas-drag.html @@ -0,0 +1,34 @@ +<!doctype html> +<meta charset="utf-8"> +<title>Dragging on a text-selectable canvas should not select it</title> +<link rel="author" href="mailto:emilio@crisal.io" title="Emilio Cobos Álvarez"> +<link rel="author" href="https://mozilla.com" title="Mozilla"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1969829"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-actions.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<style> + canvas { + outline: 2px solid hotpink; + background-color: green; + width: 200px; + height: 200px; + } +</style> +Dragging across the green square should not select it.<br> +<canvas></canvas> +<script> +promise_test(async function() { + let canvas = document.querySelector("canvas"); + let rect = canvas.getBoundingClientRect(); + await new test_driver.Actions() + .pointerMove(rect.left + 2, rect.top + 2) + .pointerDown() + .pointerMove(rect.right - 2, rect.top + 2) + .pointerUp() + .send(); + assert_true(getSelection().isCollapsed, "Dragging a canvas shouldn't generate a non-collapsed selection"); +}); +</script> diff --git a/tests/wpt/tests/shadow-dom/offsetParent-across-shadow-boundaries.html b/tests/wpt/tests/shadow-dom/offsetParent-across-shadow-boundaries.html index 5491e212133..44bbc0771d4 100644 --- a/tests/wpt/tests/shadow-dom/offsetParent-across-shadow-boundaries.html +++ b/tests/wpt/tests/shadow-dom/offsetParent-across-shadow-boundaries.html @@ -81,6 +81,72 @@ function testOffsetParentOnElementAssignedToSlotInsideOffsetParent(mode) { testOffsetParentOnElementAssignedToSlotInsideOffsetParent('open'); testOffsetParentOnElementAssignedToSlotInsideOffsetParent('closed'); +function testOffsetParentOnElementAssignedToSlotInsideFixedPositionWithContainingBlock(mode) { + test(function () { + const host = document.createElement('div'); + host.innerHTML = '<div id="target"></div>'; + container.appendChild(host); + this.add_cleanup(() => host.remove()); + const shadowRoot = host.attachShadow({mode}); + shadowRoot.innerHTML = [ + '<div style="transform: translate(10px, 10px);" id="wrapper">', + '<div style="position: fixed; padding-left: 85px; padding-top: 45px;">', + '<slot></slot>', + '</div></div>'].join(''); + const target = host.querySelector('#target'); + assert_equals(target.offsetParent, container); + assert_equals(target.offsetLeft, 85); + assert_equals(target.offsetTop, 45); + }, `offsetParent must return the fixed position containing block of an element when the context object is assigned to a slot within a fixed containing block in shadow tree of ${mode} mode`); +} + +testOffsetParentOnElementAssignedToSlotInsideFixedPositionWithContainingBlock('open'); +testOffsetParentOnElementAssignedToSlotInsideFixedPositionWithContainingBlock('closed'); + +function testOffsetParentOnFixedElementAssignedToSlotInsideFixedPositionWithContainingBlock(mode) { + test(function () { + const host = document.createElement('div'); + host.innerHTML = '<div id="target" style="position: fixed;"></div>'; + container.appendChild(host); + this.add_cleanup(() => host.remove()); + const shadowRoot = host.attachShadow({mode}); + shadowRoot.innerHTML = [ + '<div style="transform: translate(10px, 10px);" id="wrapper">', + '<div style="position: fixed; padding-left: 85px; padding-top: 45px;">', + '<slot></slot>', + '</div></div>'].join(''); + const target = host.querySelector('#target'); + assert_equals(target.offsetParent, container); + assert_equals(target.offsetLeft, 85); + assert_equals(target.offsetTop, 45); + }, `offsetParent must return the fixed position containing block of a fixed element when the context object is assigned to a slot within a fixed containing block in shadow tree of ${mode} mode`); +} + +testOffsetParentOnFixedElementAssignedToSlotInsideFixedPositionWithContainingBlock('open'); +testOffsetParentOnFixedElementAssignedToSlotInsideFixedPositionWithContainingBlock('closed'); + +function testOffsetParentOnElementAssignedToSlotInsideFixedPosition(mode) { + test(function () { + const host = document.createElement('div'); + host.innerHTML = '<div id="target"></div>'; + container.appendChild(host); + this.add_cleanup(() => host.remove()); + const shadowRoot = host.attachShadow({mode}); + shadowRoot.innerHTML = [ + '<div id="fixed" style="position: fixed; padding-left: 85px; padding-top: 45px;">', + '<slot></slot>', + '</div>'].join(''); + const target = host.querySelector('#target'); + const fixed = shadowRoot.querySelector('#fixed'); + assert_equals(target.offsetParent, null); + assert_equals(target.offsetLeft, 85 + fixed.offsetLeft); + assert_equals(target.offsetTop, 45 + fixed.offsetTop); + }, `offsetParent must return null when the context object is assigned to a slot without a fixed containing block in shadow tree of ${mode} mode`); +} + +testOffsetParentOnElementAssignedToSlotInsideFixedPosition('open'); +testOffsetParentOnElementAssignedToSlotInsideFixedPosition('closed'); + function testOffsetParentOnElementAssignedToSlotInsideNestedOffsetParents(mode) { test(function () { const host = document.createElement('div'); diff --git a/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text-once-per-interaction.html b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text-once-per-interaction.html new file mode 100644 index 00000000000..41a363888fc --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text-once-per-interaction.html @@ -0,0 +1,93 @@ +<!DOCTYPE html> +<meta charset="utf-8" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/soft-navigation-heuristics/resources/soft-navigation-test-helper.js"></script> + +<button id="navigateButton">Click here!</button> +<h1>Heading!</h1> +<div id="content" elementtiming="content-text">Initial Text</div> +<div id="container"></div> + +<script> + promise_test(async t => { + const url = 'soft-nav-1'; + + // Wait for the initial text load and make its way through the text timing + // pipeline before changing its contents. + const elementId = "content-text"; + let entries = await new Promise(resolve => { + new PerformanceObserver((list, observer) => { + resolve(list.getEntries()); + observer.disconnect(); + }).observe({type: 'element', buffered: true}); + }); + assert_equals( + entries.length, 1, + `Expected exactly one ElementTiming entry for "${elementId}"`); + assert_equals( + entries[0].identifier, elementId, + `Unexpected ElementTiming entry: expected "${elementId}"`); + + const softNavPromise = SoftNavigationTestHelper.getPerformanceEntries( + "soft-navigation", + /* includeSoftNavigationObservations= */true, + /* minNumEntries= */ 1); + let icpPromise = SoftNavigationTestHelper.getPerformanceEntries( + "interaction-contentful-paint", + /* includeSoftNavigationObservations= */true, + /* minNumEntries= */ 1); + const {promise, resolve} = Promise.withResolvers(); + + navigateButton.addEventListener('click', async () => { + // This is sufficient to trigger an initial soft nav and ICP entry. + history.pushState({}, '', url); + content.innerText = 'This is some new text!'; + + // Wait for the first round of soft nav/ICP checking. + await promise; + + // Add more text, which should produce another ICP entry. + container.innerHTML = `<div id="container-text">${content.innerText} (and more text)</div>`; + // Now, update the same text as before with even more text than above. + // We shouldn't get an ICP entry for this, even though it's larger, + // because we already have an entry for this node. + content.innerText = content.innerText + ' (and even more text)'; + }, {once: true}); + + if (test_driver) { + test_driver.click(navigateButton); + } + + const helper = new SoftNavigationTestHelper(t); + // Check if we detected a soft nav. + const softNavs = await helper.withTimeoutMessage( + softNavPromise, "Soft navigation not detected.", /*timeout=*/ 3000); + assert_equals(softNavs.length, 1, 'Expected exactly one soft navigation.'); + assert_true( + softNavs[0].name.endsWith(url), + `Unexpected Soft Navigation URL. Expected url to end with ${url} but got ${softNavs[0].name}`); + + // Check that we only get one ICP entry, and that it's for the node whose + // text we overwrote. + let icps = await helper.withTimeoutMessage( + icpPromise, 'ICP not detected.', /*timeout=*/ 3000); + assert_equals(icps.length, 1, 'Expected exactly one ICP entry.'); + assert_equals(icps[0].id, 'content', 'Expected ICP candidate to be "content"'); + + + // Set things up for the next ICP entry. + icpPromise = SoftNavigationTestHelper.getPerformanceEntries( + "interaction-contentful-paint", + /* includeSoftNavigationObservations= */true, + /* minNumEntries= */ 1); + resolve(); + + icps = await helper.withTimeoutMessage( + icpPromise, 'New ICP not detected.', /*timeout=*/ 3000); + assert_equals(icps.length, 1, 'Expected exactly one ICP entry.'); + assert_equals(icps[0].id, 'container-text', 'Expected ICP candidate to be "container-text"'); + }, 'Soft Navigation Detection supports replacing existing text once per interaction'); +</script> diff --git a/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text.html b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text.html new file mode 100644 index 00000000000..653ae6848ec --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/overwriting-text.html @@ -0,0 +1,97 @@ +<!DOCTYPE html> +<meta charset="utf-8" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/soft-navigation-heuristics/resources/soft-navigation-test-helper.js"></script> + +<button id="navigateButton">Click here!</button> +<h1>Heading!</h1> +<div id="content" elementtiming="content-text">Initial Text</div> +<div id="container"></div> + +<script> + async function waitForExactlyOneElementTimingEntry(id, buffered) { + let entries = await new Promise(resolve => { + new PerformanceObserver((list, observer) => { + resolve(list.getEntries()); + observer.disconnect(); + }).observe({type: 'element', buffered}); + }); + assert_equals( + entries.length, 1, + `Expected exactly one ElementTiming entry for "${id}"`); + assert_equals( + entries[0].identifier, id, + `Unexpected ElementTiming entry: expected "${id}"`); + } + + async function runTest(t, url, text) { + navigateButton.addEventListener('click', async () => { + // We expect to get a timing entry for this, but not a soft nav ICP entry. + // This lets us check that we don't get more than the initial timing entry + // for `content`. + const div = document.createElement("div"); + div.innerHTML = `<div id="additional" elementtiming="${url}">hi</div>`; + container.appendChild(div); + + content.innerText = text; + + history.pushState({}, '', url); + }, {once: true}); + + // Set up the PerformanceObservers before clicking to avoid races, + // and use unbuffered here so we don't get duplicate entries. + const elementTimingPromise = + waitForExactlyOneElementTimingEntry(url, /*buffered=*/false); + const softNavPromise = SoftNavigationTestHelper.getPerformanceEntries( + "soft-navigation", + /* includeSoftNavigationObservations= */true, + /* minNumEntries= */ 1); + const icpPromise = SoftNavigationTestHelper.getPerformanceEntries( + "interaction-contentful-paint", + /* includeSoftNavigationObservations= */true, + /* minNumEntries= */ 1); + + if (test_driver) { + test_driver.click(navigateButton); + } + + const helper = new SoftNavigationTestHelper(t); + + // Check if we detected a soft nav. + const softNavs = await helper.withTimeoutMessage( + softNavPromise, "Soft navigation not detected.", /*timeout=*/ 3000); + assert_equals(softNavs.length, 1, 'Expected exactly one soft navigation.'); + assert_true( + softNavs[0].name.endsWith(url), + `Unexpected Soft Navigation URL. Expected url to end with ${url} but got ${softNavs[0].name}`); + + // Check that we only get one ICP entry, and that it's for the node whose + // text we overwrote. + const icps = await helper.withTimeoutMessage( + icpPromise, 'ICP not detected.', /*timeout=*/ 3000); + assert_equals(icps.length, 1, 'Expected exactly one ICP entry.'); + assert_equals(icps[0].id, 'content', 'Expected ICP candidate to be "content"'); + + // Finally, check to make sure we don't get an additional timing entry. + return elementTimingPromise; + } + + // Wait for the initial text load and make its way through the text timing + // pipeline before changing its contents. + promise_setup(() => waitForExactlyOneElementTimingEntry('content-text', /*buffered=*/true)); + + promise_test(t => { + const url = 'soft-nav-1'; + const text = 'The initial text has been replaced!'; + return runTest(t, url, text); + }, 'Soft Navigation Detection supports replacing existing text'); + + promise_test(t => { + const url = 'soft-nav-2'; + const text = 'The initial text has been replaced again!'; + return runTest(t, url, text); + }, 'Soft Navigation Detection supports replacing existing text in multiple interactions'); +</script> diff --git a/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/video-srcObject-change.html b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/video-srcObject-change.html new file mode 100644 index 00000000000..2d25164ba4a --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/detection/tentative/video-srcObject-change.html @@ -0,0 +1,77 @@ +<!DOCTYPE html> +<meta charset="utf-8" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/media-source/dedicated-worker/mediasource-message-util.js"></script> +<script src="/soft-navigation-heuristics/resources/soft-navigation-test-helper.js"></script> + +<button id="navigateButton">Click here!</button> +<video id="testVideo" style="height:500px;width:500px"></img> + +<script> + // Based on /media-source/dedicated-worker/mediasource-worker-play.html. + promise_test(async t => { + // Fail fast if MSE-in-Workers is not supported. + assert_implements( + MediaSource.hasOwnProperty('canConstructInDedicatedWorker'), + 'MediaSource hasOwnProperty \'canConstructInDedicatedWorker\''); + assert_implements( + MediaSource.canConstructInDedicatedWorker, + 'MediaSource.canConstructInDedicatedWorker'); + + t.add_cleanup(() => { testVideo.srcObject = null; }); + + const url = '/video-srcobject-change-1'; + let worker; + + // Returns a promise that will be resolved with the MediaSource handle for + // the video. + function initVideoWorker() { + return new Promise(resolve => { + worker = new Worker('/media-source/dedicated-worker/mediasource-worker-play.js'); + worker.onerror = t.unreached_func('worker error'); + worker.onmessage = t.step_func(e => { + let subject = e.data.subject; + assert_true(subject != undefined, 'message must have a subject field'); + switch (subject) { + case messageSubject.ERROR: + assert_unreached('Worker error: ' + e.data.info); + break; + case messageSubject.HANDLE: + resolve(e.data.info); + break; + default: + assert_unreached('Unexpected message subject: ' + subject); + } + }); + }); + } + + navigateButton.addEventListener("click", async () => { + history.pushState({}, '', url); + let handle = await initVideoWorker(); + testVideo.srcObject = handle; + testVideo.play(); + }, {once: true}); + + const softNavPromise = SoftNavigationTestHelper.getPerformanceEntries( + /*type=*/ "soft-navigation", + /*include_soft_navigation_observations=*/ false, + /*min_num_entries=*/ 1, + ); + + if (test_driver) { + test_driver.click(navigateButton); + } + + const helper = new SoftNavigationTestHelper(t); + const entries = await helper.withTimeoutMessage( + softNavPromise, "Soft navigation entry never arrived.", 5000); + assert_equals(entries.length, 1, 'Expected exactly one soft navigation.'); + assert_true( + entries[0].name.endsWith(url), + 'Unexpected Soft Navigation URL.'); + }, 'Soft Navigation Detection supports HTMLVideoElment.srcObject'); +</script> diff --git a/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/video-src-change.html b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/video-src-change.html new file mode 100644 index 00000000000..9a37bdcce49 --- /dev/null +++ b/tests/wpt/tests/soft-navigation-heuristics/smoke/tentative/video-src-change.html @@ -0,0 +1,58 @@ +<!DOCTYPE html> +<meta charset="utf-8" /> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/soft-navigation-heuristics/resources/soft-navigation-test-helper.js"></script> + +<button id="navigateButton">Click here!</button> +<video id="testVideo" src="/media/test.webm"></img> + +<script> + function waitForVideoRender() { + return new Promise(resolve => { + new PerformanceObserver((list, observer) => { + if (list.getEntries().filter((e) => e.id === 'testVideo').length) { + resolve(); + observer.disconnect(); + } + }).observe({type: 'largest-contentful-paint', buffered: true}); + }); + } + + async function runTest(t, url, newVideoSrc) { + navigateButton.addEventListener("click", () => { + history.pushState({}, '', url); + testVideo.src = newVideoSrc; + }, {once: true}); + + const softNavPromise = SoftNavigationTestHelper.getPerformanceEntries( + /*type=*/ "soft-navigation", + /*include_soft_navigation_observations=*/ false, + /*min_num_entries=*/ 1, + ); + + if (test_driver) { + test_driver.click(navigateButton); + } + + const helper = new SoftNavigationTestHelper(t); + const entries = await helper.withTimeoutMessage( + softNavPromise, "Soft navigation entry never arrived.", 5000); + assert_equals(entries.length, 1, 'Expected exactly one soft navigation.'); + assert_true( + entries[0].name.endsWith(url), + 'Unexpected Soft Navigation URL.'); + } + + // Wait for the video to initially load and make its way through the image + // timing pipeline before changing its source. + promise_setup(waitForVideoRender); + + promise_test(async t => { + const url = '/video-src-change-1'; + const src = '/media/A4.webm'; + return runTest(t, url, src); + }, 'Soft Navigation Detection supports HTMLVideoElment.src'); +</script> diff --git a/tests/wpt/tests/speculation-rules/prerender/cookies.https.html b/tests/wpt/tests/speculation-rules/prerender/cookies.https.html index 2f02197fb5b..3965284f8b9 100644 --- a/tests/wpt/tests/speculation-rules/prerender/cookies.https.html +++ b/tests/wpt/tests/speculation-rules/prerender/cookies.https.html @@ -5,7 +5,7 @@ <script src="/resources/testharnessreport.js"></script> <script src="/common/utils.js"></script> <script src="/common/dispatcher/dispatcher.js"></script> -<script src="/cookie-store/resources/cookie-test-helpers.js"></script> +<script src="/cookiestore/resources/cookie-test-helpers.js"></script> <script src="../resources/utils.js"></script> <script src="resources/utils.js"></script> diff --git a/tests/wpt/tests/storage/buckets/bucket-quota-indexeddb.tentative.https.any.js b/tests/wpt/tests/storage/buckets/bucket-quota-indexeddb.tentative.https.any.js index ee9202777e7..9dc345579d3 100644 --- a/tests/wpt/tests/storage/buckets/bucket-quota-indexeddb.tentative.https.any.js +++ b/tests/wpt/tests/storage/buckets/bucket-quota-indexeddb.tentative.https.any.js @@ -17,6 +17,9 @@ promise_test(async t => { await indexedDbOpenRequest(t, bucket.indexedDB, dbname, (db_to_upgrade) => { db_to_upgrade.createObjectStore(objectStoreName); }); + t.add_cleanup(() => { + db.close(); + }); const txn = db.transaction(objectStoreName, 'readwrite'); const buffer = new ArrayBuffer(arraySize); @@ -34,8 +37,5 @@ promise_test(async t => { type: 'binary/random' }), 2); - await promise_rejects_dom( - t, 'QuotaExceededError', transactionPromise(txn)); - - db.close(); + await promise_rejects_quotaexceedederror(t, transactionPromise(txn), null, null); }, 'IDB respects bucket quota'); diff --git a/tests/wpt/tests/subresource-integrity/signatures/tentative/server-initiated.window.js b/tests/wpt/tests/subresource-integrity/signatures/tentative/server-initiated.window.js index 8dec3daaded..60cfef5e65f 100644 --- a/tests/wpt/tests/subresource-integrity/signatures/tentative/server-initiated.window.js +++ b/tests/wpt/tests/subresource-integrity/signatures/tentative/server-initiated.window.js @@ -36,13 +36,6 @@ generate_fetch_test(kRequestWithValidSignature, {}, EXPECT_LOADED, "Valid signature, same-origin: loads."); -generate_fetch_test(kRequestWithValidSignature, - { - origin: get_host_info().REMOTE_ORIGIN, - mode: "no-cors", - }, - EXPECT_LOADED, - "Valid signature, cross-origin w/o cors, mode: no-cors: loads."); generate_fetch_test(kRequestWithValidSignature, { origin: get_host_info().REMOTE_ORIGIN, @@ -63,13 +56,6 @@ generate_fetch_test(kRequestWithValidSignatureAndCORS, {}, EXPECT_LOADED, "Valid signature, same-origin w/ cors: loads."); -generate_fetch_test(kRequestWithValidSignatureAndCORS, - { - origin: get_host_info().REMOTE_ORIGIN, - mode: "no-cors", - }, - EXPECT_LOADED, - "Valid signature, cross-origin w/ cors, mode: no-cors: loads."); generate_fetch_test(kRequestWithValidSignatureAndCORS, { origin: get_host_info().REMOTE_ORIGIN, diff --git a/tests/wpt/tests/svg/shapes/animatedPoints-non-animated.html b/tests/wpt/tests/svg/shapes/animatedPoints-non-animated.html deleted file mode 100644 index 5c175890860..00000000000 --- a/tests/wpt/tests/svg/shapes/animatedPoints-non-animated.html +++ /dev/null @@ -1,51 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<meta charset="utf-8"> -<title>animatedPoints non-animated</title> -<link rel="help" href="https://svgwg.org/svg2-draft/shapes.html#InterfaceSVGAnimatedPoints"> -<meta name="assert" content="animatedPoints represents the current non-animated value"> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -</head> -<body> -<svg xmlns="http://www.w3.org/2000/svg" - xmlns:h="http://www.w3.org/1999/xhtml" - width="200" height="200"> - <polyline fill="none" stroke="blue" stroke-width="5" - points="20,30 50,70" id="stripe"> - <set id="anim" attributeType="XML" attributeName="points" fill="freeze" - to="170,150 130,120" begin="indefinite" onbegin="measure()"/> - </polyline> -</svg> -<script> - -'use strict'; - -var measure; - -async_test(t => { - - measure = t.step_func(() => { - const stripe = document.getElementById('stripe'); - const animatedPoints = stripe.animatedPoints; - assert_equals(animatedPoints.numberOfItems, 2); - assert_equals(animatedPoints.getItem(0).x, 20); - assert_equals(animatedPoints.getItem(0).y, 30); - assert_equals(animatedPoints.getItem(1).x, 50); - assert_equals(animatedPoints.getItem(1).y, 70); - t.done(); - }); - - const anim = document.getElementById('anim'); - if (anim.beginElement) { - anim.beginElement(); - } else { - // SMIL not supported. - requestAnimationFrame(measure); - } -}, 'animatedPoints represents non-animated value'); - -</script> -</body> -</html> diff --git a/tests/wpt/tests/svg/styling/image-sizing-min-content-expected.svg b/tests/wpt/tests/svg/styling/image-sizing-min-content-expected.svg new file mode 100644 index 00000000000..9e9b69901f3 --- /dev/null +++ b/tests/wpt/tests/svg/styling/image-sizing-min-content-expected.svg @@ -0,0 +1,3 @@ +<svg xmlns="http://www.w3.org/2000/svg"> + <image width="128" height="128" style="width:auto;height:auto" href="/images/green-256x256.png"/> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/image-sizing-min-content.tentative.svg b/tests/wpt/tests/svg/styling/image-sizing-min-content.tentative.svg new file mode 100644 index 00000000000..fc3f4937504 --- /dev/null +++ b/tests/wpt/tests/svg/styling/image-sizing-min-content.tentative.svg @@ -0,0 +1,6 @@ +<svg xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in auto) as presentation attributes on image</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="image-sizing-min-content-expected.svg" /> + <image width="128" height="128" style="width:min-content;height:min-content" href="/images/green-256x256.png"/> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-auto.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-auto.tentative.svg new file mode 100644 index 00000000000..21ebe5bf692 --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-auto.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in auto) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-full-circle-ref.svg" /> + <svg width="50" height="50" style="width:auto;height:auto;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-calc-size.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-calc-size.tentative.svg new file mode 100644 index 00000000000..1517f897b49 --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-calc-size.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in calc-size) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-full-circle-ref.svg" /> + <svg width="50" height="50" style="width:calc-size(fit-content, size);height:calc-size(fit-content, size);"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-calc.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-calc.tentative.svg new file mode 100644 index 00000000000..ba409e5c7ee --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-calc.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in calc) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-expected.svg" /> + <svg style="width:calc(100% - 50px);height:calc(100% - 50px);"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-ems.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-ems.tentative.svg new file mode 100644 index 00000000000..59574e6ec5c --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-ems.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in Ems) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-expected.svg" /> + <svg font-size="2px" style="width:25em;height:25em;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-fit-content.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-fit-content.tentative.svg new file mode 100644 index 00000000000..02678cdb978 --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-fit-content.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in fit-content) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-full-circle-ref.svg" /> + <svg width="50" height="50" style="width:fit-content;height:fit-content;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-full-circle-ref.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-full-circle-ref.svg new file mode 100644 index 00000000000..f35ab0d4e2f --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-full-circle-ref.svg @@ -0,0 +1,5 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"> + <svg width="100" height="100"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-inherit.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-inherit.tentative.svg new file mode 100644 index 00000000000..871ef77d9f6 --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-inherit.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in inherit) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-full-circle-ref.svg" /> + <svg width="50" height="50" style="width:inherit;height:inherit;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-initial.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-initial.tentative.svg new file mode 100644 index 00000000000..65c65244bee --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-initial.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in initial) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-full-circle-ref.svg" /> + <svg width="50" height="50" style="width:initial;height:initial;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-max-content.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-max-content.tentative.svg new file mode 100644 index 00000000000..7650e405504 --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-max-content.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in max-content) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-full-circle-ref.svg" /> + <svg width="50" height="50" style="width:max-content;height:max-content;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-min-content.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-min-content.tentative.svg new file mode 100644 index 00000000000..871b66a816b --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-min-content.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in min-content) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-full-circle-ref.svg" /> + <svg width="50" height="50" style="width:min-content;height:min-content;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-percent.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-percent.tentative.svg new file mode 100644 index 00000000000..150e409305a --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-percent.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in min-content) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-expected.svg" /> + <svg style="width:50%;height:50%;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-rems.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-rems.tentative.svg new file mode 100644 index 00000000000..44a5cb6001d --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-rems.tentative.svg @@ -0,0 +1,8 @@ +<svg font-size="2px" width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in Rems) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-expected.svg" /> + <svg style="width:25rem;height:25rem;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-stretch.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-stretch.tentative.svg new file mode 100644 index 00000000000..f6fb436631b --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-stretch.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in stretch) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-full-circle-ref.svg" /> + <svg width="50" height="50" style="width:stretch;height:stretch;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-viewport-units-with-ICB-expected.html b/tests/wpt/tests/svg/styling/nested-svg-sizing-viewport-units-with-ICB-expected.html new file mode 100644 index 00000000000..4f3762c5206 --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-viewport-units-with-ICB-expected.html @@ -0,0 +1,6 @@ +<!DOCTYPE html> +<svg width="50vw" height="50vh" xmlns="http://www.w3.org/2000/svg"> + <svg width="50%" height="50%"> + <rect width="100%" height="100%" fill="green" /> + </svg> +</svg> diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-viewport-units-with-ICB.tentative.html b/tests/wpt/tests/svg/styling/nested-svg-sizing-viewport-units-with-ICB.tentative.html new file mode 100644 index 00000000000..a53911f3995 --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-viewport-units-with-ICB.tentative.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<title>Width and Height (in viewport units) as presentation attributes on nested svg</title> +<link rel="author" title="Divyansh Mangal" href="mailto:dmangal@microsoft.com"> +<link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"> +<link rel="match" href="nested-svg-sizing-viewport-units-with-ICB-expected.html"> + +<svg width="50vw" height="50vh" xmlns="http://www.w3.org/2000/svg"> + <svg style="width:50vw;height:50vh;"> + <rect width="100%" height="100%" fill="green" /> + </svg> +</svg> diff --git a/tests/wpt/tests/svg/styling/nested-svg-sizing-viewport-units.tentative.svg b/tests/wpt/tests/svg/styling/nested-svg-sizing-viewport-units.tentative.svg new file mode 100644 index 00000000000..387e97cb185 --- /dev/null +++ b/tests/wpt/tests/svg/styling/nested-svg-sizing-viewport-units.tentative.svg @@ -0,0 +1,8 @@ +<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg" xmlns:html="http://www.w3.org/1999/xhtml"> + <title>Width and Height (in viewport units) as presentation attributes on nested svg</title> + <html:link rel="help" href="https://svgwg.org/svg2-draft/styling.html#TermPresentationAttribute"/> + <html:link rel="match" href="nested-svg-sizing-expected.svg" /> + <svg style="width:50vw;height:50vh;"> + <circle cx="50" cy="50" r="40" fill="green" /> + </svg> +</svg> \ No newline at end of file diff --git a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py index 0339d968ca2..92db7228705 100644 --- a/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py +++ b/tests/wpt/tests/tools/webdriver/webdriver/bidi/modules/network.py @@ -277,6 +277,11 @@ class Network(BidiModule): assert result["collector"] is not None return result["collector"] + @command + def remove_data_collector(self, collector: str) -> Mapping[str, Any]: + params: MutableMapping[str, Any] = {"collector": collector} + return params + @command def set_cache_behavior( self, diff --git a/tests/wpt/tests/trusted-types/script-enforcement-001.html b/tests/wpt/tests/trusted-types/script-enforcement-001.html index 9548987a22d..dc2bf3131ea 100644 --- a/tests/wpt/tests/trusted-types/script-enforcement-001.html +++ b/tests/wpt/tests/trusted-types/script-enforcement-001.html @@ -248,7 +248,13 @@ promise_test(async t => { await no_script_message_for(_ => { let script = create_html_script_with_trusted_source_text(";"); - script.moveBefore(document.createTextNode(LOG_RUN_MESSAGE), script.firstChild); + let text = document.createTextNode(LOG_RUN_MESSAGE); + // Per https://dom.spec.whatwg.org/#move, step 1, moveBefore requires + // the two nodes to have the same shadow-including root. + let root = document.createElement("div"); + root.appendChild(script); + root.appendChild(text); + script.moveBefore(text, script.firstChild); container.appendChild(script); }); }, "Setting script source via Element.moveBefore() drops trustworthiness."); diff --git a/tests/wpt/tests/trusted-types/script-enforcement-002.html b/tests/wpt/tests/trusted-types/script-enforcement-002.html index ddbbc99ea6b..d6799d502ec 100644 --- a/tests/wpt/tests/trusted-types/script-enforcement-002.html +++ b/tests/wpt/tests/trusted-types/script-enforcement-002.html @@ -296,7 +296,13 @@ let messages = await script_messages_for(_ => { let script = create_html_script_with_trusted_source_text(";"); window.log_message("SET"); - script.moveBefore(document.createTextNode(LOG_RUN_MESSAGE), script.firstChild); + // Per https://dom.spec.whatwg.org/#move, step 1, moveBefore requires + // the two nodes to have the same shadow-including root. + let text = document.createTextNode(LOG_RUN_MESSAGE); + let root = document.createElement("div"); + root.appendChild(text); + root.appendChild(script); + script.moveBefore(text, script.firstChild); window.log_message("APPEND"); container.appendChild(script); }); diff --git a/tests/wpt/tests/trusted-types/script-enforcement-003.html b/tests/wpt/tests/trusted-types/script-enforcement-003.html index 9ad31b795bc..5f3b31796bb 100644 --- a/tests/wpt/tests/trusted-types/script-enforcement-003.html +++ b/tests/wpt/tests/trusted-types/script-enforcement-003.html @@ -275,10 +275,16 @@ promise_test(async t => { await no_script_message_for(_ => { let script = create_svg_script_with_trusted_source_text(";"); - script.moveBefore(document.createTextNode(LOG_RUN_MESSAGE), script.firstChild); + // Per https://dom.spec.whatwg.org/#move, step 1, moveBefore requires + // the two nodes to have the same shadow-including root. + let text = document.createTextNode(LOG_RUN_MESSAGE); + let root = document.createElement("div"); + root.appendChild(text); + root.appendChild(script); + script.moveBefore(text, script.firstChild); container.appendChild(script); }); - }, "Setting script source via ElementmoveBefore() drops trustworthiness."); + }, "Setting script source via Element.moveBefore() drops trustworthiness."); promise_test(async t => { await promise_rejects_js(t, TypeError, script_messages_for(_ => { diff --git a/tests/wpt/tests/trusted-types/script-enforcement-004.html b/tests/wpt/tests/trusted-types/script-enforcement-004.html index 86e1020c3ad..29dff3c6c40 100644 --- a/tests/wpt/tests/trusted-types/script-enforcement-004.html +++ b/tests/wpt/tests/trusted-types/script-enforcement-004.html @@ -330,7 +330,13 @@ let messages = await script_messages_for(_ => { let script = create_svg_script_with_trusted_source_text(";"); window.log_message("SET"); - script.moveBefore(document.createTextNode(LOG_RUN_MESSAGE), script.firstChild); + // Per https://dom.spec.whatwg.org/#move, step 1, moveBefore requires + // the two nodes to have the same shadow-including root. + let text = document.createTextNode(LOG_RUN_MESSAGE); + let root = document.createElement("div"); + root.appendChild(text); + root.appendChild(script); + script.moveBefore(text, script.firstChild); window.log_message("APPEND"); container.appendChild(script); }); diff --git a/tests/wpt/tests/wasm/core/js/harness/testharness.js b/tests/wpt/tests/wasm/core/js/harness/testharness.js index 7c1ded21d0e..ff96f572077 100644 --- a/tests/wpt/tests/wasm/core/js/harness/testharness.js +++ b/tests/wpt/tests/wasm/core/js/harness/testharness.js @@ -1210,7 +1210,6 @@ policies and contribution forms [3]. NETWORK_ERR: 'NetworkError', ABORT_ERR: 'AbortError', URL_MISMATCH_ERR: 'URLMismatchError', - QUOTA_EXCEEDED_ERR: 'QuotaExceededError', TIMEOUT_ERR: 'TimeoutError', INVALID_NODE_TYPE_ERR: 'InvalidNodeTypeError', DATA_CLONE_ERR: 'DataCloneError' @@ -1237,7 +1236,6 @@ policies and contribution forms [3]. NetworkError: 19, AbortError: 20, URLMismatchError: 21, - QuotaExceededError: 22, TimeoutError: 23, InvalidNodeTypeError: 24, DataCloneError: 25, diff --git a/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js b/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js index 21f39b1fc18..f11f20dfaae 100644 --- a/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js +++ b/tests/wpt/tests/web-animations/animation-model/animation-types/property-list.js @@ -866,7 +866,7 @@ const gCSSProperties2 = { }, 'letter-spacing': { // https://drafts.csswg.org/css-text-3/#propdef-letter-spacing - types: [ 'length' ] + types: [ 'lengthPercentageOrCalc' ] }, 'lighting-color': { // https://drafts.fxtf.org/filters/#LightingColorProperty diff --git a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/locate_nodes/start_nodes.py b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/locate_nodes/start_nodes.py index 351020af4c2..c58c05e1cde 100644 --- a/tests/wpt/tests/webdriver/tests/bidi/browsing_context/locate_nodes/start_nodes.py +++ b/tests/wpt/tests/webdriver/tests/bidi/browsing_context/locate_nodes/start_nodes.py @@ -276,3 +276,72 @@ async def test_locate_with_document_context_node(bidi_session, inline, top_conte ] recursive_compare(expected, result["nodes"]) + + +@pytest.mark.parametrize("type,value,expected", [ + ("css", "circle", [{ + "type": "node", + "sharedId": any_string, + "value": { + "childNodeCount": 0, + "localName": "circle", + "namespaceURI": "http://www.w3.org/2000/svg", + "nodeType": 1, + } + }]), + ("xpath", ".//*[name()='circle']", [{ + "type": "node", + "sharedId": any_string, + "value": { + "childNodeCount": 0, + "localName": "circle", + "namespaceURI": "http://www.w3.org/2000/svg", + "nodeType": 1, + } + }]), + ("innerText", "foo", [{ + "type": "node", + "sharedId": any_string, + "value": { + "childNodeCount": 1, + "localName": "p", + "namespaceURI": "http://www.w3.org/1999/xhtml", + "nodeType": 1, + } + }]), + ("accessibility", {"role": "banner", "name": "bar"}, [{ + "type": "node", + "sharedId": any_string, + "value": { + "childNodeCount": 1, + "localName": "p", + "namespaceURI": "http://www.w3.org/1999/xhtml", + "nodeType": 1, + } + }]), +]) +@pytest.mark.asyncio +async def test_locate_with_svg_context_node(bidi_session, inline, top_context, type, value, expected): + url = inline(""" + <svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg"> + <circle aria-label="circle" cx="5" cy="5" r="5" /> + <p role="banner" aria-label="bar">foo</p> + </svg> + """) + await bidi_session.browsing_context.navigate( + context=top_context["context"], url=url, wait="complete" + ) + + context_node = await bidi_session.script.evaluate( + expression="document.querySelector('svg')", + target=ContextTarget(top_context["context"]), + await_promise=True, + ) + + result = await bidi_session.browsing_context.locate_nodes( + context=top_context["context"], + locator={ "type": type, "value": value }, + start_nodes=[context_node] + ) + + recursive_compare(expected, result["nodes"]) diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/remove_data_collector/__init__.py b/tests/wpt/tests/webdriver/tests/bidi/network/remove_data_collector/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/remove_data_collector/collector.py b/tests/wpt/tests/webdriver/tests/bidi/network/remove_data_collector/collector.py new file mode 100644 index 00000000000..50ecc311d7b --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/network/remove_data_collector/collector.py @@ -0,0 +1,13 @@ +import pytest +import webdriver.bidi.error as error + +pytestmark = pytest.mark.asyncio + + +async def test_return_value(bidi_session, add_intercept): + collector = await bidi_session.network.add_data_collector( + data_types=["response"], max_encoded_data_size=1000 + ) + + result = await bidi_session.network.remove_data_collector(collector=collector) + assert result == {} diff --git a/tests/wpt/tests/webdriver/tests/bidi/network/remove_data_collector/invalid.py b/tests/wpt/tests/webdriver/tests/bidi/network/remove_data_collector/invalid.py new file mode 100644 index 00000000000..aef1877669e --- /dev/null +++ b/tests/wpt/tests/webdriver/tests/bidi/network/remove_data_collector/invalid.py @@ -0,0 +1,26 @@ +import pytest +import webdriver.bidi.error as error + +pytestmark = pytest.mark.asyncio + + +@pytest.mark.parametrize("value", [None, False, 42, {}, []]) +async def test_params_collector_invalid_type(bidi_session, value): + with pytest.raises(error.InvalidArgumentException): + await bidi_session.network.remove_data_collector(collector=value) + + +async def test_params_collector_invalid_value(bidi_session): + with pytest.raises(error.NoSuchNetworkCollectorException): + await bidi_session.network.remove_data_collector(collector="does not exist") + + +async def test_params_collector_removed_collector(bidi_session): + collector = await bidi_session.network.add_data_collector( + data_types=["response"], max_encoded_data_size=1000 + ) + + await bidi_session.network.remove_data_collector(collector=collector) + + with pytest.raises(error.NoSuchNetworkCollectorException): + await bidi_session.network.remove_data_collector(collector=collector) diff --git a/tests/wpt/tests/webdriver/tests/support/helpers.py b/tests/wpt/tests/webdriver/tests/support/helpers.py index 9a7de51a417..8db6a6078e0 100644 --- a/tests/wpt/tests/webdriver/tests/support/helpers.py +++ b/tests/wpt/tests/webdriver/tests/support/helpers.py @@ -12,9 +12,12 @@ from tests.support.sync import Poll def ignore_exceptions(f): - def inner(*args, **kwargs): + def inner(session, *args, **kwargs): + # Do not try to clean up already ended session. + if session.session_id is None: + return try: - return f(*args, **kwargs) + return f(session, *args, **kwargs) except webdriver.error.WebDriverException as e: print("Ignored exception %s" % e, file=sys.stderr) inner.__name__ = f.__name__ @@ -80,10 +83,6 @@ def cleanup_session(session): session.window_handle = current_window - # Do not try to clean up already ended session. - if session.session_id is None: - return - _restore_timeouts(session) _ensure_valid_window(session) _dismiss_user_prompts(session) diff --git a/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js b/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js index 67fb9118969..750e4aee617 100644 --- a/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js @@ -575,6 +575,226 @@ const padTests = [ } } }, + { + 'name': 'pad float32 2D tensor with options.value as NaN', + 'graph': { + 'inputs': { + 'padInput': { + 'data': [ + 22.76361846923828, -21.168529510498047, -91.66168975830078, + 16.863798141479492, 60.51472091674805, -70.56755065917969, + -60.643272399902344, -47.8821907043457, 68.72557830810547 + ], + 'descriptor': {shape: [3, 3], dataType: 'float32'} + } + }, + 'operators': [{ + 'name': 'pad', + 'arguments': [ + {'input': 'padInput'}, {'beginningPadding': [1, 1]}, + {'endingPadding': [1, 1]}, {'options': {'value': NaN}} + ], + 'outputs': 'padOutput' + }], + 'expectedOutputs': { + 'padOutput': { + 'data': [ + 0, + 0, + 0, + 0, + 0, + 0, + 22.76361846923828, + -21.168529510498047, + -91.66168975830078, + 0, + 0, + 16.863798141479492, + 60.51472091674805, + -70.56755065917969, + 0, + 0, + -60.643272399902344, + -47.8821907043457, + 68.72557830810547, + 0, + 0, + 0, + 0, + 0, + 0 + ], + 'descriptor': {shape: [5, 5], dataType: 'float32'} + } + } + } + }, + { + 'name': 'pad float32 2D tensor with options.value as Infinity', + 'graph': { + 'inputs': { + 'padInput': { + 'data': [ + 22.76361846923828, -21.168529510498047, -91.66168975830078, + 16.863798141479492, 60.51472091674805, -70.56755065917969, + -60.643272399902344, -47.8821907043457, 68.72557830810547 + ], + 'descriptor': {shape: [3, 3], dataType: 'float32'} + } + }, + 'operators': [{ + 'name': 'pad', + 'arguments': [ + {'input': 'padInput'}, {'beginningPadding': [1, 1]}, + {'endingPadding': [1, 1]}, {'options': {'value': Infinity}} + ], + 'outputs': 'padOutput' + }], + 'expectedOutputs': { + 'padOutput': { + 'data': [ + Infinity, + Infinity, + Infinity, + Infinity, + Infinity, + Infinity, + 22.76361846923828, + -21.168529510498047, + -91.66168975830078, + Infinity, + Infinity, + 16.863798141479492, + 60.51472091674805, + -70.56755065917969, + Infinity, + Infinity, + -60.643272399902344, + -47.8821907043457, + 68.72557830810547, + Infinity, + Infinity, + Infinity, + Infinity, + Infinity, + Infinity + ], + 'descriptor': {shape: [5, 5], dataType: 'float32'} + } + } + } + }, + { + 'name': 'pad int64 2D tensor with options.value as bigint', + 'graph': { + 'inputs': { + 'padInput': { + 'data': [ + 22, -21, -91, + 16, 60, -70, + -60, -47, 68 + ], + 'descriptor': {shape: [3, 3], dataType: 'int64'} + } + }, + 'operators': [{ + 'name': 'pad', + 'arguments': [ + {'input': 'padInput'}, {'beginningPadding': [1, 1]}, + {'endingPadding': [1, 1]}, {'options': {'value': 9007199254740992n}} + ], + 'outputs': 'padOutput' + }], + 'expectedOutputs': { + 'padOutput': { + 'data': [ + 9007199254740992n, + 9007199254740992n, + 9007199254740992n, + 9007199254740992n, + 9007199254740992n, + 9007199254740992n, + 22, + -21, + -91, + 9007199254740992n, + 9007199254740992n, + 16, + 60, + -70, + 9007199254740992n, + 9007199254740992n, + -60, + -47, + 68, + 9007199254740992n, + 9007199254740992n, + 9007199254740992n, + 9007199254740992n, + 9007199254740992n, + 9007199254740992n + ], + 'descriptor': {shape: [5, 5], dataType: 'int64'} + } + } + } + }, + { + 'name': 'pad float32 2D tensor with options.value as -Infinity', + 'graph': { + 'inputs': { + 'padInput': { + 'data': [ + 22.76361846923828, -21.168529510498047, -91.66168975830078, + 16.863798141479492, 60.51472091674805, -70.56755065917969, + -60.643272399902344, -47.8821907043457, 68.72557830810547 + ], + 'descriptor': {shape: [3, 3], dataType: 'float32'} + } + }, + 'operators': [{ + 'name': 'pad', + 'arguments': [ + {'input': 'padInput'}, {'beginningPadding': [1, 1]}, + {'endingPadding': [1, 1]}, {'options': {'value': -Infinity}} + ], + 'outputs': 'padOutput' + }], + 'expectedOutputs': { + 'padOutput': { + 'data': [ + -Infinity, + -Infinity, + -Infinity, + -Infinity, + -Infinity, + -Infinity, + 22.76361846923828, + -21.168529510498047, + -91.66168975830078, + -Infinity, + -Infinity, + 16.863798141479492, + 60.51472091674805, + -70.56755065917969, + -Infinity, + -Infinity, + -60.643272399902344, + -47.8821907043457, + 68.72557830810547, + -Infinity, + -Infinity, + -Infinity, + -Infinity, + -Infinity, + -Infinity + ], + 'descriptor': {shape: [5, 5], dataType: 'float32'} + } + } + } + }, { 'name': 'pad float32 4D tensor options.mode=\'edge\'', 'graph': { diff --git a/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js b/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js index ea2cedb3f6d..4b6a4ab8e7f 100644 --- a/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/tensor.https.any.js @@ -1743,6 +1743,35 @@ const testExportToGPU = (testName) => { await assert_gpu_buffer_data_equals(gpuDevice, gpuTensorBuffer, inputData); }, `${testName} / destroy context after export`); + promise_test(async t => { + if (!isExportToGPUSupported) { + return; + } + + let anotherGPUDevice = await gpuAdapter.requestDevice(); + let anotherMLContext = await navigator.ml.createContext(anotherGPUDevice); + + let mlTensor = await anotherMLContext.createTensor({ + dataType: 'float32', + shape: shape, + exportableToGPU: true, + readable: true, + writable: true + }); + + const inputData = new Float32Array(sizeOfShape(shape)).fill(1.0); + anotherMLContext.writeTensor(mlTensor, inputData); + + const gpuTensorBuffer = await anotherMLContext.exportToGPU(mlTensor); + + anotherGPUDevice.destroy(); + + gpuTensorBuffer.destroy(); + + await promise_rejects_dom( + t, 'InvalidStateError', anotherMLContext.readTensor(mlTensor)); + }, `${testName} / destroy device after export`); + promise_test(async t => { if (!isExportToGPUSupported) { return; diff --git a/tests/wpt/tests/webnn/validation_tests/constant.https.any.js b/tests/wpt/tests/webnn/validation_tests/constant.https.any.js index f9e34ea94ec..420fd9d23d8 100644 --- a/tests/wpt/tests/webnn/validation_tests/constant.https.any.js +++ b/tests/wpt/tests/webnn/validation_tests/constant.https.any.js @@ -181,6 +181,26 @@ const tests = [ '[constant] Throw if the operand data type isn\'t of type MLOperandDataType', descriptor: {dataType: 'int16', shape: [2, 3]}, buffer: {type: Int16Array, byteLength: 6 * 2} + }, + { + name: + '[constant] Uint8Array should be allowed for float32 operand data type', + descriptor: {dataType: 'float32', shape: [2, 3]}, + buffer: {type: Uint8Array, byteLength: 6 * 4}, + output: {dataType: 'float32', shape: [2, 3]} + }, + { + name: + '[constant] Uint8Array should be allowed for float16 operand data type', + descriptor: {dataType: 'float16', shape: [2, 3]}, + buffer: {type: Uint8Array, byteLength: 6 * 2}, + output: {dataType: 'float16', shape: [2, 3]} + }, + { + name: '[constant] Uint8Array should be allowed for int32 operand data type', + descriptor: {dataType: 'int32', shape: [2, 3]}, + buffer: {type: Uint8Array, byteLength: 6 * 4}, + output: {dataType: 'int32', shape: [2, 3]} } ]; diff --git a/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame-simulcast.https.html b/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame-simulcast.https.html index 4174aaf24a1..1ad51c8ea34 100644 --- a/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame-simulcast.https.html +++ b/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame-simulcast.https.html @@ -29,7 +29,7 @@ promise_test(async (test) => { const receiverPc = new RTCPeerConnection(); // This will only work if first rid is 0 exchangeIceCandidates(senderPc, receiverPc); - const stream = await navigator.mediaDevices.getUserMedia({video: true}); + const stream = await navigator.mediaDevices.getUserMedia({video: { width: 1280 } }); const {sender} = senderPc.addTransceiver(stream.getTracks()[0], {sendEncodings: [{rid: '0'}, {rid: '1'}, {rid: '2'}]}); sender.transform = transform; await doOfferToSendSimulcastAndAnswer(senderPc, receiverPc, ['0', '1', '2']); @@ -58,7 +58,7 @@ promise_test(async (test) => { const receiverPc = new RTCPeerConnection(); // This will only work if first rid is 0 exchangeIceCandidates(senderPc, receiverPc); - const stream = await navigator.mediaDevices.getUserMedia({video: true}); + const stream = await navigator.mediaDevices.getUserMedia({video: { width: 1280 } }); const {sender} = senderPc.addTransceiver(stream.getTracks()[0], {sendEncodings: [{rid: '0'}, {rid: '1'}, {rid: '2'}]}); sender.transform = transform; await doOfferToSendSimulcastAndAnswer(senderPc, receiverPc, ['0', '1', '2']); @@ -91,7 +91,7 @@ promise_test(async (test) => { const receiverPc = new RTCPeerConnection(); // This will only work if first rid is 0 exchangeIceCandidates(senderPc, receiverPc); - const stream = await navigator.mediaDevices.getUserMedia({video: true}); + const stream = await navigator.mediaDevices.getUserMedia({video: { width: 1280 } }); const {sender} = senderPc.addTransceiver(stream.getTracks()[0], {sendEncodings: [{rid: '0'}, {rid: '1'}, {rid: '2'}]}); sender.transform = transform; await doOfferToSendSimulcastAndAnswer(senderPc, receiverPc, ['0', '1', '2']); diff --git a/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame.https.html b/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame.https.html index 348902ea36c..1ee2c1a2d47 100644 --- a/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame.https.html +++ b/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame.https.html @@ -20,6 +20,7 @@ <script> const generateKeyFrame = (port, opts) => postMethod(port, 'generateKeyFrame', opts); +const generateKeyFrameDoesNotThrow = (port, opts) => postMethod(port, 'generateKeyFrameDoesNotThrow', opts); const waitForFrame = port => postMethod(port, 'waitForFrame'); promise_test(async (test) => { @@ -119,10 +120,9 @@ promise_test(async (test) => { const senderTransform = sender.transform; sender.transform = null; - message = await generateKeyFrame(senderTransform.port); - assert_equals(message.result, 'failure'); - assert_equals(message.value, 'InvalidStateError', `Message: ${message.message}`); -}, 'generateKeyFrame throws for unset transforms'); + message = await generateKeyFrameDoesNotThrow(senderTransform.port); + assert_equals(message.result, 'success'); +}, 'generateKeyFrame does not throw for unset transforms'); promise_test(async (test) => { const {sender, receiver} = await createConnectionWithTransform(test, 'script-transform-generateKeyFrame.js', {video: true}); @@ -171,9 +171,8 @@ promise_test(async (test) => { await receiverPc.setLocalDescription(); await senderPc.setRemoteDescription(receiverPc.localDescription); - message = await generateKeyFrame(sender.transform.port); - assert_equals(message.result, 'failure'); - assert_equals(message.value, 'InvalidStateError', `Message: ${message.message}`); + message = await generateKeyFrameDoesNotThrow(sender.transform.port); + assert_equals(message.result, 'success'); senderPc.getTransceivers()[0].direction = 'sendonly'; await senderPc.setLocalDescription(); @@ -183,7 +182,7 @@ promise_test(async (test) => { message = await generateKeyFrame(sender.transform.port); assert_equals(message.result, 'success'); -}, 'generateKeyFrame rejects when the sender is negotiated inactive, and resumes succeeding when negotiated back to active'); +}, 'generateKeyFrame does not reject when the sender is negotiated inactive, and resumes succeeding when negotiated back to active'); promise_test(async (test) => { const {sender, receiver, senderPc, receiverPc} = await createConnectionWithTransform(test, 'script-transform-generateKeyFrame.js', {video: true}); @@ -195,10 +194,9 @@ promise_test(async (test) => { senderPc.getTransceivers()[0].stop(); - message = await generateKeyFrame(sender.transform.port); - assert_equals(message.result, 'failure'); - assert_equals(message.value, 'InvalidStateError', `Message: ${message.message}`); -}, 'generateKeyFrame rejects when the sender is stopped, even without negotiation'); + message = await generateKeyFrameDoesNotThrow(sender.transform.port); + assert_equals(message.result, 'success'); +}, 'generateKeyFrame does not reject when the sender is stopped, even without negotiation'); promise_test(async (test) => { const {sender, receiver, senderPc, receiverPc} = await createConnectionWithTransform(test, 'script-transform-generateKeyFrame.js', {video: true}); @@ -210,10 +208,9 @@ promise_test(async (test) => { await senderPc.getTransceivers()[0].sender.replaceTrack(null); - message = await generateKeyFrame(sender.transform.port); - assert_equals(message.result, 'failure'); - assert_equals(message.value, 'InvalidStateError', `Message: ${message.message}`); -}, 'generateKeyFrame rejects with a null track'); + message = await generateKeyFrameDoesNotThrow(sender.transform.port); + assert_equals(message.result, 'success'); +}, 'generateKeyFrame does not reject with a null track'); // TODO: It would be nice to be able to test that pending generateKeyFrame // promises are _rejected_ when the transform is unset, or the sender stops diff --git a/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame.js b/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame.js index 5e68ee1fb9b..bf8b7535ba9 100644 --- a/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame.js +++ b/tests/wpt/tests/webrtc-encoded-transform/script-transform-generateKeyFrame.js @@ -8,6 +8,8 @@ onrtctransform = event => { // Maybe refactor to have transaction ids? if (method == 'generateKeyFrame') { generateKeyFrame(rid); + } else if (method == 'generateKeyFrameDoesNotThrow') { + generateKeyFrameDoesNothThrow(rid); } else if (method == 'waitForFrame') { waitForFrame(); } @@ -23,6 +25,12 @@ onrtctransform = event => { }); } + async function resolveInMs(timeout) { + return new Promise((resolve) => { + setTimeout(resolve, timeout); + }); + } + async function generateKeyFrame(rid) { try { const timestamp = await Promise.race([transformer.generateKeyFrame(rid), rejectInMs(8000)]); @@ -33,6 +41,16 @@ onrtctransform = event => { } } + + async function generateKeyFrameDoesNothThrow(rid) { + try { + const timestamp = await Promise.race([transformer.generateKeyFrame(rid), resolveInMs(50)]); + transformer.options.port.postMessage({result: 'success', value: timestamp, count: keyFrameCount}); + } catch (e) { + transformer.options.port.postMessage({result: 'failure', value: `${e.name}`, message: `${e.message}`}); + } + } + async function waitForFrame() { try { await Promise.race([new Promise(r => gotFrameCallback = r), rejectInMs(8000)]); diff --git a/tests/wpt/tests/webrtc-encoded-transform/script-transform-sendKeyFrameRequest.https.html b/tests/wpt/tests/webrtc-encoded-transform/script-transform-sendKeyFrameRequest.https.html index b67627dcf11..5cc5c6c2996 100644 --- a/tests/wpt/tests/webrtc-encoded-transform/script-transform-sendKeyFrameRequest.https.html +++ b/tests/wpt/tests/webrtc-encoded-transform/script-transform-sendKeyFrameRequest.https.html @@ -17,6 +17,7 @@ <script> const sendKeyFrameRequest = (port, opts) => postMethod(port, 'sendKeyFrameRequest', opts); +const sendKeyFrameRequestDoesNotThrow = (port, opts) => postMethod(port, 'sendKeyFrameRequestDoesNotThrow', opts); const waitForFrame = port => postMethod(port, 'waitForFrame'); promise_test(async (test) => { @@ -61,8 +62,8 @@ promise_test(async (test) => { // to stop working. This may change. receiver.transform = null; - assert_equals(await sendKeyFrameRequest(receiverTransform.port), 'failure: InvalidStateError'); -}, 'sendKeyFrameRequest throws for unset transforms'); + assert_equals(await sendKeyFrameRequestDoesNotThrow(receiverTransform.port), 'success'); +}, 'sendKeyFrameRequest does not throw for unset transforms'); promise_test(async (test) => { const {sender, receiver, senderPc, receiverPc} = await createConnectionWithTransform(test, 'script-transform-sendKeyFrameRequest.js', {video: true}); @@ -95,8 +96,8 @@ promise_test(async (test) => { receiverPc.getTransceivers()[0].stop(); - assert_equals(await sendKeyFrameRequest(receiver.transform.port), 'success'); -}, 'sendKeyFrameRequest does not rejects when the receiver is stopped'); + assert_equals(await sendKeyFrameRequestDoesNotThrow(receiver.transform.port), 'success'); +}, 'sendKeyFrameRequest does not reject when the receiver is stopped'); // Testing that sendKeyFrameRequest actually results in the sending of keyframe // requests is effectively impossible, because there is no API to expose the diff --git a/tests/wpt/tests/webrtc-encoded-transform/script-transform-sendKeyFrameRequest.js b/tests/wpt/tests/webrtc-encoded-transform/script-transform-sendKeyFrameRequest.js index 361d7ce0235..990b43d2e5f 100644 --- a/tests/wpt/tests/webrtc-encoded-transform/script-transform-sendKeyFrameRequest.js +++ b/tests/wpt/tests/webrtc-encoded-transform/script-transform-sendKeyFrameRequest.js @@ -6,6 +6,8 @@ onrtctransform = event => { const {method} = event.data; if (method == 'sendKeyFrameRequest') { sendKeyFrameRequest(); + } else if (method == 'sendKeyFrameRequestDoesNotThrow') { + sendKeyFrameRequestDoesNotThrow(); } else if (method == 'waitForFrame') { waitForFrame(); } @@ -21,6 +23,12 @@ onrtctransform = event => { }); } + async function resolveInMs(timeout) { + return new Promise((resolve) => { + setTimeout(resolve, timeout); + }); + } + async function sendKeyFrameRequest() { try { await Promise.race([transformer.sendKeyFrameRequest(), rejectInMs(8000)]);; @@ -31,6 +39,16 @@ onrtctransform = event => { } } + async function sendKeyFrameRequestDoesNotThrow() { + try { + await Promise.race([transformer.sendKeyFrameRequest(), resolveInMs(50)]);; + transformer.options.port.postMessage('success'); + } catch (e) { + // TODO: This does not work if we send e.name, why? + transformer.options.port.postMessage(`failure: ${e.name}`); + } + } + async function waitForFrame() { try { await Promise.race([new Promise(r => gotFrameCallback = r), rejectInMs(8000)]); diff --git a/tests/wpt/tests/webrtc-stats/outbound-rtp.https.html b/tests/wpt/tests/webrtc-stats/outbound-rtp.https.html index ff87d542560..196e8fd0037 100644 --- a/tests/wpt/tests/webrtc-stats/outbound-rtp.https.html +++ b/tests/wpt/tests/webrtc-stats/outbound-rtp.https.html @@ -6,14 +6,21 @@ <script src="/resources/testharnessreport.js"></script> <script src="../webrtc/RTCPeerConnection-helper.js"></script> <script> -function extractOutboundRtpStats(stats) { - const wantedStats = []; - stats.forEach(report => { - if (report.type === 'outbound-rtp') { - wantedStats.push(report); +async function extractOutboundRtpStats(pc, expected) { + // If remote stats are never reported, return after 5 seconds. + const startTime = performance.now(); + let stats; + while (true) { + const report = await pc.getStats(); + stats = [...report.values()].filter(({type}) => type === 'outbound-rtp'); + if (stats.length && stats.every(({active}) => active == expected)) { + break; } - }); - return wantedStats; + if (performance.now() > startTime + 5000) { + break; + } + } + return stats; } promise_test(async (test) => { @@ -26,9 +33,8 @@ promise_test(async (test) => { stream.getTracks().forEach(t => pc1.addTrack(t, stream)); exchangeIceCandidates(pc1, pc2); exchangeOfferAnswer(pc1, pc2); - const {track} = await new Promise(r => pc2.ontrack = r); - await new Promise(r => track.onunmute = r); - let outboundStats = extractOutboundRtpStats(await pc1.getStats()); + await waitForRtpAndRtcpStats(pc1); + let outboundStats = await extractOutboundRtpStats(pc1, true); assert_equals(outboundStats.length, 2); assert_true(outboundStats[0].active); assert_true(outboundStats[1].active); @@ -41,7 +47,7 @@ promise_test(async (test) => { // Avoid any stats caching. await (new Promise(r => test.step_timeout(r, 100))); - outboundStats = extractOutboundRtpStats(await pc1.getStats()); + outboundStats = await extractOutboundRtpStats(pc1, false); assert_equals(outboundStats.length, 2); assert_false(outboundStats[0].active); assert_false(outboundStats[1].active); diff --git a/tests/wpt/tests/webrtc/RTCRtpTransceiver.https.html b/tests/wpt/tests/webrtc/RTCRtpTransceiver.https.html index 943550d4b7f..813e3fab883 100644 --- a/tests/wpt/tests/webrtc/RTCRtpTransceiver.https.html +++ b/tests/wpt/tests/webrtc/RTCRtpTransceiver.https.html @@ -1055,141 +1055,6 @@ ]); }; - const checkMute = async t => { - const pc1 = new RTCPeerConnection(); - t.add_cleanup(() => pc1.close()); - const stream1 = await getNoiseStream({audio: true, video: true}); - t.add_cleanup(() => stopTracks(stream1)); - const audio1 = stream1.getAudioTracks()[0]; - pc1.addTrack(audio1, stream1); - const countMuteAudio1 = countEvents(pc1.getTransceivers()[0].receiver.track, "mute"); - const countUnmuteAudio1 = countEvents(pc1.getTransceivers()[0].receiver.track, "unmute"); - - const video1 = stream1.getVideoTracks()[0]; - pc1.addTrack(video1, stream1); - const countMuteVideo1 = countEvents(pc1.getTransceivers()[1].receiver.track, "mute"); - const countUnmuteVideo1 = countEvents(pc1.getTransceivers()[1].receiver.track, "unmute"); - - const pc2 = new RTCPeerConnection(); - t.add_cleanup(() => pc2.close()); - const stream2 = await getNoiseStream({audio: true, video: true}); - t.add_cleanup(() => stopTracks(stream2)); - const audio2 = stream2.getAudioTracks()[0]; - pc2.addTrack(audio2, stream2); - const countMuteAudio2 = countEvents(pc2.getTransceivers()[0].receiver.track, "mute"); - const countUnmuteAudio2 = countEvents(pc2.getTransceivers()[0].receiver.track, "unmute"); - - const video2 = stream2.getVideoTracks()[0]; - pc2.addTrack(video2, stream2); - const countMuteVideo2 = countEvents(pc2.getTransceivers()[1].receiver.track, "mute"); - const countUnmuteVideo2 = countEvents(pc2.getTransceivers()[1].receiver.track, "unmute"); - - - // Check that receive tracks start muted - hasProps(pc1.getTransceivers(), - [ - {receiver: {track: {kind: "audio", muted: true}}}, - {receiver: {track: {kind: "video", muted: true}}} - ]); - - hasProps(pc1.getTransceivers(), - [ - {receiver: {track: {kind: "audio", muted: true}}}, - {receiver: {track: {kind: "video", muted: true}}} - ]); - - let offer = await pc1.createOffer(); - await pc2.setRemoteDescription(offer); - trickle(t, pc1, pc2); - await pc1.setLocalDescription(offer); - let answer = await pc2.createAnswer(); - await pc1.setRemoteDescription(answer); - trickle(t, pc2, pc1); - await pc2.setLocalDescription(answer); - - let gotUnmuteAudio1 = gotUnmuteEvent(pc1.getTransceivers()[0].receiver.track); - let gotUnmuteVideo1 = gotUnmuteEvent(pc1.getTransceivers()[1].receiver.track); - - let gotUnmuteAudio2 = gotUnmuteEvent(pc2.getTransceivers()[0].receiver.track); - let gotUnmuteVideo2 = gotUnmuteEvent(pc2.getTransceivers()[1].receiver.track); - // Jump out before waiting if a track is unmuted before RTP starts flowing. - assert_true(pc1.getTransceivers()[0].receiver.track.muted); - assert_true(pc1.getTransceivers()[1].receiver.track.muted); - assert_true(pc2.getTransceivers()[0].receiver.track.muted); - assert_true(pc2.getTransceivers()[1].receiver.track.muted); - - await iceConnected(pc1); - await iceConnected(pc2); - - - // Check that receive tracks are unmuted when RTP starts flowing - await gotUnmuteAudio1; - await gotUnmuteVideo1; - await gotUnmuteAudio2; - await gotUnmuteVideo2; - - // Check whether disabling recv locally causes onmute - pc1.getTransceivers()[0].direction = "sendonly"; - pc1.getTransceivers()[1].direction = "sendonly"; - offer = await pc1.createOffer(); - await pc2.setRemoteDescription(offer); - await pc1.setLocalDescription(offer); - answer = await pc2.createAnswer(); - const gotMuteAudio1 = gotMuteEvent(pc1.getTransceivers()[0].receiver.track); - const gotMuteVideo1 = gotMuteEvent(pc1.getTransceivers()[1].receiver.track); - await pc1.setRemoteDescription(answer); - await pc2.setLocalDescription(answer); - await gotMuteAudio1; - await gotMuteVideo1; - - // Check whether disabling on remote causes onmute - pc1.getTransceivers()[0].direction = "inactive"; - pc1.getTransceivers()[1].direction = "inactive"; - offer = await pc1.createOffer(); - const gotMuteAudio2 = gotMuteEvent(pc2.getTransceivers()[0].receiver.track); - const gotMuteVideo2 = gotMuteEvent(pc2.getTransceivers()[1].receiver.track); - await pc2.setRemoteDescription(offer); - await gotMuteAudio2; - await gotMuteVideo2; - await pc1.setLocalDescription(offer); - answer = await pc2.createAnswer(); - await pc1.setRemoteDescription(answer); - await pc2.setLocalDescription(answer); - - // Check whether onunmute fires when we turn everything on again - pc1.getTransceivers()[0].direction = "sendrecv"; - pc1.getTransceivers()[1].direction = "sendrecv"; - offer = await pc1.createOffer(); - await pc2.setRemoteDescription(offer); - // Set these up before sLD, since that sets [[Receptive]] to true, which - // could allow an unmute to occur from a packet that was sent before we - // negotiated inactive! - gotUnmuteAudio1 = gotUnmuteEvent(pc1.getTransceivers()[0].receiver.track); - gotUnmuteVideo1 = gotUnmuteEvent(pc1.getTransceivers()[1].receiver.track); - await pc1.setLocalDescription(offer); - answer = await pc2.createAnswer(); - gotUnmuteAudio2 = gotUnmuteEvent(pc2.getTransceivers()[0].receiver.track); - gotUnmuteVideo2 = gotUnmuteEvent(pc2.getTransceivers()[1].receiver.track); - await pc1.setRemoteDescription(answer); - await pc2.setLocalDescription(answer); - await gotUnmuteAudio1; - await gotUnmuteVideo1; - await gotUnmuteAudio2; - await gotUnmuteVideo2; - - // Wait a little, just in case some stray events fire - await new Promise(r => t.step_timeout(r, 100)); - - assert_equals(1, countMuteAudio1.count, "Got 1 mute event for pc1's audio track"); - assert_equals(1, countMuteVideo1.count, "Got 1 mute event for pc1's video track"); - assert_equals(1, countMuteAudio2.count, "Got 1 mute event for pc2's audio track"); - assert_equals(1, countMuteVideo2.count, "Got 1 mute event for pc2's video track"); - assert_equals(2, countUnmuteAudio1.count, "Got 2 unmute events for pc1's audio track"); - assert_equals(2, countUnmuteVideo1.count, "Got 2 unmute events for pc1's video track"); - assert_equals(2, countUnmuteAudio2.count, "Got 2 unmute events for pc2's audio track"); - assert_equals(2, countUnmuteVideo2.count, "Got 2 unmute events for pc2's video track"); - }; - const checkStop = async t => { const pc1 = new RTCPeerConnection(); t.add_cleanup(() => pc1.close()); @@ -2277,7 +2142,6 @@ const tests = [ checkRemoveAndReadd, checkAddTrackExistingTransceiverThenRemove, checkRemoveTrackNegotiation, - checkMute, checkStop, checkStopAfterCreateOffer, checkStopAfterSetLocalOffer, @@ -2294,4 +2158,83 @@ const tests = [ checkBundleTagRejected ].forEach(test => promise_test(test, test.name)); +['audio', 'video'].forEach(kind => { + const waitUntilTrackEventWithTimeout = (obj, name, t, timeout = 1000/*ms*/) => { + return new Promise((resolve) => { + obj.addEventListener(name, resolve, {once: true}); + t.step_timeout(resolve, timeout) + }); + } + + promise_test(async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + pc1.addTransceiver(kind); + pc2.ontrack = t.step_func(async e => { + assert_true(e.track.muted, `track is muted in ontrack`); + }); + const offer = await pc1.createOffer(); + await pc2.setRemoteDescription(offer); + assert_true(pc2.getReceivers()[0].track.muted, `track is muted after SRD`); + }, `track with ${kind} is muted after SRD`); + + promise_test(async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + let stream; + if (kind === 'audio') { + stream = await navigator.mediaDevices.getUserMedia({[kind]: true}); + } else { + stream = await getNoiseStream({[kind]: true}); + } + t.add_cleanup(() => stream.getTracks().forEach(t => t.stop())); + + pc1.addTrack(stream.getTracks()[0], stream); + pc2.ontrack = t.step_func(async e => { + assert_true(e.track.muted, `track is muted in ontrack`); + }); + + await exchangeIceCandidates(pc1, pc2); + await exchangeOfferAnswer(pc1, pc2); + await waitUntilTrackEventWithTimeout(pc2.getReceivers()[0].track, 'unmute', t); + assert_false(pc2.getReceivers()[0].track.muted, `track is unmuted`); + }, `track with ${kind} gets unmuted when packets flow.`); + + promise_test(async t => { + const pc1 = new RTCPeerConnection(); + const pc2 = new RTCPeerConnection(); + t.add_cleanup(() => pc1.close()); + t.add_cleanup(() => pc2.close()); + + let stream; + if (kind === 'audio') { + stream = await navigator.mediaDevices.getUserMedia({[kind]: true}); + } else { + stream = await getNoiseStream({[kind]: true}); + } + t.add_cleanup(() => stream.getTracks().forEach(t => t.stop())); + + pc1.addTrack(stream.getTracks()[0], stream); + pc2.ontrack = t.step_func(async e => { + assert_true(e.track.muted, `track is muted in ontrack`); + }); + + await exchangeIceCandidates(pc1, pc2); + await exchangeOfferAnswer(pc1, pc2); + await waitUntilTrackEventWithTimeout(pc2.getReceivers()[0].track, 'unmute', t); + assert_false(pc2.getReceivers()[0].track.muted, `track is unmuted`); + + pc1.getTransceivers()[0].direction = 'inactive'; + await exchangeOfferAnswer(pc1, pc2); + await waitUntilTrackEventWithTimeout(pc2.getReceivers()[0].track, 'mute', t); + assert_true(pc2.getReceivers()[0].track.muted, `track is muted`); + }, `track with ${kind} gets muted when setting the transceiver direction in 'inactive'`); +}); + </script> diff --git a/tests/wpt/tests/webstorage/storage_local_setitem_quotaexceedederr.window.js b/tests/wpt/tests/webstorage/storage_local_setitem_quotaexceedederr.window.js index fff7d6444a0..f2f3c4d6887 100644 --- a/tests/wpt/tests/webstorage/storage_local_setitem_quotaexceedederr.window.js +++ b/tests/wpt/tests/webstorage/storage_local_setitem_quotaexceedederr.window.js @@ -1,16 +1,18 @@ -test(function() { +test(t => { localStorage.clear(); var index = 0; var key = "name"; var val = "x".repeat(1024); - assert_throws_dom("QUOTA_EXCEEDED_ERR", function() { + t.add_cleanup(() => { + localStorage.clear(); + }); + + assert_throws_quotaexceedederror(() => { while (true) { index++; localStorage.setItem("" + key + index, "" + val + index); } - }); - - localStorage.clear(); + }, null, null); }, "Throws QuotaExceededError when the quota has been exceeded"); diff --git a/tests/wpt/tests/webstorage/storage_session_setitem_quotaexceedederr.window.js b/tests/wpt/tests/webstorage/storage_session_setitem_quotaexceedederr.window.js index 42a895470ef..693c98d29f9 100644 --- a/tests/wpt/tests/webstorage/storage_session_setitem_quotaexceedederr.window.js +++ b/tests/wpt/tests/webstorage/storage_session_setitem_quotaexceedederr.window.js @@ -1,16 +1,18 @@ -test(function() { +test(t => { sessionStorage.clear(); var index = 0; var key = "name"; var val = "x".repeat(1024); - assert_throws_dom("QUOTA_EXCEEDED_ERR", function() { + t.add_cleanup(() => { + sessionStorage.clear(); + }); + + assert_throws_quotaexceedederror(() => { while (true) { index++; sessionStorage.setItem("" + key + index, "" + val + index); } - }); - - sessionStorage.clear(); + }, null, null); }, "Throws QuotaExceededError when the quota has been exceeded");