diff options
73 files changed, 1198 insertions, 1135 deletions
diff --git a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini index 3a3d15b8406..3b874fc1748 100644 --- a/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini +++ b/tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini @@ -14,9 +14,6 @@ [Revoke blob URL after creating Request, will fetch] expected: FAIL - [Revoke blob URL after calling fetch, fetch should succeed] - expected: FAIL - [url-with-fetch.any.html] [Untitled] diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index fe431071a49..f038b1f1412 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -8647,18 +8647,6 @@ {} ] ], - "css/css-text/word-break/word-break-break-all-009.xht": [ - [ - "/css/css-text/word-break/word-break-break-all-009.xht", - {} - ] - ], - "css/css-text/word-break/word-break-keep-all-004.xht": [ - [ - "/css/css-text/word-break/word-break-keep-all-004.xht", - {} - ] - ], "css/css-transitions/transition-delay-000.html": [ [ "/css/css-transitions/transition-delay-000.html", @@ -109873,6 +109861,18 @@ {} ] ], + "css/css-contain/contain-layout-baseline-005.html": [ + [ + "/css/css-contain/contain-layout-baseline-005.html", + [ + [ + "/css/css-contain/reference/contain-layout-baseline-005-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-contain/contain-layout-breaks-001.html": [ [ "/css/css-contain/contain-layout-breaks-001.html", @@ -138829,18 +138829,6 @@ {} ] ], - "css/css-text/overflow-wrap/overflow-wrap-003.html": [ - [ - "/css/css-text/overflow-wrap/overflow-wrap-003.html", - [ - [ - "/css/css-text/overflow-wrap/overflow-wrap-003-ref.html", - "==" - ] - ], - {} - ] - ], "css/css-text/overflow-wrap/overflow-wrap-004.html": [ [ "/css/css-text/overflow-wrap/overflow-wrap-004.html", @@ -138853,18 +138841,6 @@ {} ] ], - "css/css-text/overflow-wrap/overflow-wrap-005.html": [ - [ - "/css/css-text/overflow-wrap/overflow-wrap-005.html", - [ - [ - "/css/css-text/overflow-wrap/overflow-wrap-003-ref.html", - "==" - ] - ], - {} - ] - ], "css/css-text/overflow-wrap/overflow-wrap-break-word-001.html": [ [ "/css/css-text/overflow-wrap/overflow-wrap-break-word-001.html", @@ -139009,18 +138985,6 @@ {} ] ], - "css/css-text/overflow-wrap/word-wrap-003.html": [ - [ - "/css/css-text/overflow-wrap/word-wrap-003.html", - [ - [ - "/css/css-text/overflow-wrap/overflow-wrap-003-ref.html", - "==" - ] - ], - {} - ] - ], "css/css-text/overflow-wrap/word-wrap-004.html": [ [ "/css/css-text/overflow-wrap/word-wrap-004.html", @@ -139033,18 +138997,6 @@ {} ] ], - "css/css-text/overflow-wrap/word-wrap-005.html": [ - [ - "/css/css-text/overflow-wrap/word-wrap-005.html", - [ - [ - "/css/css-text/overflow-wrap/overflow-wrap-003-ref.html", - "==" - ] - ], - {} - ] - ], "css/css-text/tab-size/tab-min-rendered-width-1.html": [ [ "/css/css-text/tab-size/tab-min-rendered-width-1.html", @@ -252245,6 +252197,11 @@ {} ] ], + "css/css-contain/reference/contain-layout-baseline-005-ref.html": [ + [ + {} + ] + ], "css/css-contain/reference/contain-layout-breaks-002-ref.html": [ [ {} @@ -268870,11 +268827,6 @@ {} ] ], - "css/css-text/overflow-wrap/overflow-wrap-003-ref.html": [ - [ - {} - ] - ], "css/css-text/overflow-wrap/overflow-wrap-004-ref.html": [ [ {} @@ -269860,11 +269812,6 @@ {} ] ], - "css/css-text/word-break/reference/word-break-break-all-009-ref.xht": [ - [ - {} - ] - ], "css/css-text/word-break/reference/word-break-break-all-010-ref.html": [ [ {} @@ -269925,11 +269872,6 @@ {} ] ], - "css/css-text/word-break/reference/word-break-keep-all-004-ref.xht": [ - [ - {} - ] - ], "css/css-text/word-break/reference/word-break-keep-all-005-ref.html": [ [ {} @@ -304800,6 +304742,11 @@ {} ] ], + "resource-timing/resources/buffer-full-utilities.js": [ + [ + {} + ] + ], "resource-timing/resources/empty.js": [ [ {} @@ -404830,6 +404777,72 @@ {} ] ], + "resource-timing/buffer-full-add-after-full-event.html": [ + [ + "/resource-timing/buffer-full-add-after-full-event.html", + {} + ] + ], + "resource-timing/buffer-full-add-entries-during-callback-that-drop.html": [ + [ + "/resource-timing/buffer-full-add-entries-during-callback-that-drop.html", + {} + ] + ], + "resource-timing/buffer-full-add-entries-during-callback.html": [ + [ + "/resource-timing/buffer-full-add-entries-during-callback.html", + {} + ] + ], + "resource-timing/buffer-full-add-then-clear.html": [ + [ + "/resource-timing/buffer-full-add-then-clear.html", + {} + ] + ], + "resource-timing/buffer-full-decrease-buffer-during-callback.html": [ + [ + "/resource-timing/buffer-full-decrease-buffer-during-callback.html", + {} + ] + ], + "resource-timing/buffer-full-increase-buffer-during-callback.html": [ + [ + "/resource-timing/buffer-full-increase-buffer-during-callback.html", + {} + ] + ], + "resource-timing/buffer-full-inspect-buffer-during-callback.html": [ + [ + "/resource-timing/buffer-full-inspect-buffer-during-callback.html", + {} + ] + ], + "resource-timing/buffer-full-set-to-current-buffer.html": [ + [ + "/resource-timing/buffer-full-set-to-current-buffer.html", + {} + ] + ], + "resource-timing/buffer-full-store-and-clear-during-callback.html": [ + [ + "/resource-timing/buffer-full-store-and-clear-during-callback.html", + {} + ] + ], + "resource-timing/buffer-full-then-increased.html": [ + [ + "/resource-timing/buffer-full-then-increased.html", + {} + ] + ], + "resource-timing/buffer-full-when-populate-entries.html": [ + [ + "/resource-timing/buffer-full-when-populate-entries.html", + {} + ] + ], "resource-timing/clear_resource_timing_functionality.html": [ [ "/resource-timing/clear_resource_timing_functionality.html", @@ -405016,12 +405029,6 @@ {} ] ], - "resource-timing/resource_timing_buffer_full_when_populate_entries.html": [ - [ - "/resource-timing/resource_timing_buffer_full_when_populate_entries.html", - {} - ] - ], "resource-timing/resource_timing_buffer_full_when_shrink_buffer_size.html": [ [ "/resource-timing/resource_timing_buffer_full_when_shrink_buffer_size.html", @@ -405046,12 +405053,6 @@ {} ] ], - "resource-timing/resource_timing_store_and_clear_during_callback.html": [ - [ - "/resource-timing/resource_timing_store_and_clear_during_callback.html", - {} - ] - ], "resource-timing/single-entry-per-resource.html": [ [ "/resource-timing/single-entry-per-resource.html", @@ -418818,17 +418819,17 @@ {} ] ], - "workers/importscripts_mime.tentative.any.js": [ + "workers/importscripts_mime.any.js": [ [ - "/workers/importscripts_mime.tentative.any.serviceworker.html", + "/workers/importscripts_mime.any.serviceworker.html", {} ], [ - "/workers/importscripts_mime.tentative.any.sharedworker.html", + "/workers/importscripts_mime.any.sharedworker.html", {} ], [ - "/workers/importscripts_mime.tentative.any.worker.html", + "/workers/importscripts_mime.any.worker.html", {} ] ], @@ -440206,30 +440207,6 @@ {} ] ], - "css/css-text/word-break/word-break-001.html": [ - [ - "/css/css-text/word-break/word-break-001.html", - {} - ] - ], - "css/css-text/word-break/word-break-002.html": [ - [ - "/css/css-text/word-break/word-break-002.html", - {} - ] - ], - "css/css-text/word-break/word-break-003.html": [ - [ - "/css/css-text/word-break/word-break-003.html", - {} - ] - ], - "css/css-text/word-break/word-break-004.html": [ - [ - "/css/css-text/word-break/word-break-004.html", - {} - ] - ], "css/css-transforms/css-transform-inherit-rotate.html": [ [ "/css/css-transforms/css-transform-inherit-rotate.html", @@ -542405,6 +542382,10 @@ "df3f5782354ea437e66341aae93100f1872ba447", "reftest" ], + "css/css-contain/contain-layout-baseline-005.html": [ + "a447744bd7c63d7c36e4dece1654885c6cc8f7a7", + "reftest" + ], "css/css-contain/contain-layout-breaks-001.html": [ "a85cf2c6c8e00f1d21fa5a63da81eff8148f3d71", "reftest" @@ -542909,6 +542890,10 @@ "d0c7788fc18533343ee3830d96161f04ccb5d406", "support" ], + "css/css-contain/reference/contain-layout-baseline-005-ref.html": [ + "40a34f9ff156cb1d876b4f538b59c57e560403c4", + "support" + ], "css/css-contain/reference/contain-layout-breaks-002-ref.html": [ "c68bee1d0aa4f9201fb6e48cc25199f373128ca8", "support" @@ -571522,7 +571507,7 @@ "support" ], "css/css-text/overflow-wrap/overflow-wrap-001.html": [ - "2407942f09f8775a9b2f20e334c5c36693116551", + "3c6ee263fb47b79bc51cff530ff39d77f357f6b7", "reftest" ], "css/css-text/overflow-wrap/overflow-wrap-002-ref.html": [ @@ -571530,15 +571515,7 @@ "support" ], "css/css-text/overflow-wrap/overflow-wrap-002.html": [ - "2c6d34d01da680939df27850b64cd0091751a21a", - "reftest" - ], - "css/css-text/overflow-wrap/overflow-wrap-003-ref.html": [ - "fa4ca42b587efba8d7ccb353309caab9a26bc5bc", - "support" - ], - "css/css-text/overflow-wrap/overflow-wrap-003.html": [ - "99ead18f2811b2762b34ddbd918a66f0af52b7f0", + "e1b5c0610388b1fc8625fdd92a0889c12c406b2c", "reftest" ], "css/css-text/overflow-wrap/overflow-wrap-004-ref.html": [ @@ -571546,11 +571523,7 @@ "support" ], "css/css-text/overflow-wrap/overflow-wrap-004.html": [ - "92ad750207dbd573df83e235be4cee52d92d4add", - "reftest" - ], - "css/css-text/overflow-wrap/overflow-wrap-005.html": [ - "181137450d58d9fa072ba40e8d4d5f75b23e7f4e", + "166bfc1f474be5b4aad88211f5a724c55fcca000", "reftest" ], "css/css-text/overflow-wrap/overflow-wrap-break-word-001.html": [ @@ -571574,7 +571547,7 @@ "reftest" ], "css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html": [ - "bce6c68389c32960d79e8fbbf61f9fa28c733165", + "2c83c46aa50f6d51efbb4d05635d86f7c166042d", "reftest" ], "css/css-text/overflow-wrap/overflow-wrap-break-word-span-001.html": [ @@ -571630,23 +571603,15 @@ "support" ], "css/css-text/overflow-wrap/word-wrap-001.html": [ - "dd5f0f2bf132de85c7a1045e88aa3ad2b72616c1", + "af326a6cdf2d02aa51e6eccfd11b90fcc4c16456", "reftest" ], "css/css-text/overflow-wrap/word-wrap-002.html": [ - "380fb8ec4fde4decb82e52961ce5ef71a0a6c965", - "reftest" - ], - "css/css-text/overflow-wrap/word-wrap-003.html": [ - "282d184b06927311f575d1022ecf1b21b6fd677f", + "24b39d6cacda38975948d42044c5b4552d1504af", "reftest" ], "css/css-text/overflow-wrap/word-wrap-004.html": [ - "ce7a2fe504747e6c6ffc35a019021bdedbec6d21", - "reftest" - ], - "css/css-text/overflow-wrap/word-wrap-005.html": [ - "4b9973a19de2e7b3182d29134102843a2c6b4eb6", + "773c4aef6cc14d395e8a7f173e3732ddcb3474e0", "reftest" ], "css/css-text/overflow-wrap/word-wrap-alias.html": [ @@ -573290,7 +573255,7 @@ "reftest" ], "css/css-text/white-space/pre-wrap-015.html": [ - "f9063c98767e70c3899bc9a59b50b42a61240ae4", + "b17af29bf54b573268522619d6e993750f9b51be", "reftest" ], "css/css-text/white-space/pre-wrap-float-001.html": [ @@ -573557,16 +573522,12 @@ "6b21df62c5cbdfa2cce9e52d91c7a792d94354e8", "reftest" ], - "css/css-text/word-break/reference/word-break-break-all-009-ref.xht": [ - "0768b857d96624a63129f002d317019674d1ef0d", - "support" - ], "css/css-text/word-break/reference/word-break-break-all-010-ref.html": [ "0e0300a72dc920a5ffb54cda6fbe84a2f517d010", "support" ], "css/css-text/word-break/reference/word-break-break-all-014-ref.html": [ - "a8720a101c3b2d2616b661e51c60b55b85d2d667", + "044ea40dd2c737f61a05751d1a778f13d93ad33a", "support" ], "css/css-text/word-break/reference/word-break-break-all-020-ref.html": [ @@ -573609,10 +573570,6 @@ "0499f82e799e76f757eb17f81733447d2186481f", "support" ], - "css/css-text/word-break/reference/word-break-keep-all-004-ref.xht": [ - "65ede653fcc21183c8353137873113ee3a05aa2b", - "support" - ], "css/css-text/word-break/reference/word-break-keep-all-005-ref.html": [ "2a33ce75e23f6c65ec98a2a808633349b1ae465e", "support" @@ -573630,7 +573587,7 @@ "support" ], "css/css-text/word-break/reference/word-break-keep-all-ref-003.html": [ - "a6adfdc8340d53184d7182e944e5991108f3188b", + "5aba6783f4ed6a2ef19a5a3f59c862ce4584faeb", "support" ], "css/css-text/word-break/reference/word-break-normal-ar-ref-000.html": [ @@ -573697,22 +573654,6 @@ "afdd82454c059b487cb1329751f3e1ca9f1cf750", "support" ], - "css/css-text/word-break/word-break-001.html": [ - "f0b6aee34467d077dec49de5d54f497bb0877b97", - "visual" - ], - "css/css-text/word-break/word-break-002.html": [ - "652e40de2664ea4ae079e48f03c3a74449b28c22", - "visual" - ], - "css/css-text/word-break/word-break-003.html": [ - "34546ad61f5c85fbeed9bb40f120069355327f53", - "visual" - ], - "css/css-text/word-break/word-break-004.html": [ - "9f4ccd0331d69b82ac13de439d59d8cc64be897c", - "visual" - ], "css/css-text/word-break/word-break-break-all-000.html": [ "af21bedf4bdc3219b3c3b1225f76b55e127d3f13", "reftest" @@ -573746,13 +573687,9 @@ "reftest" ], "css/css-text/word-break/word-break-break-all-008.html": [ - "83a74c46a39590ebc7d25d4d665e104ba38fbc18", + "85e91b56aa1b696538b49a6969e9053f1ee19f0b", "reftest" ], - "css/css-text/word-break/word-break-break-all-009.xht": [ - "9a7a591dafd4352f7df11dc9396608027ef80cd6", - "manual" - ], "css/css-text/word-break/word-break-break-all-010.html": [ "7d3bc056d822ca15b523f332c6c23ed22a85b340", "reftest" @@ -573762,7 +573699,7 @@ "reftest" ], "css/css-text/word-break/word-break-break-all-014.html": [ - "6885553ad685700e89d4d83ded7bc65269aa1123", + "674b0545e05a5d25f056ac9850abd11791de6a58", "reftest" ], "css/css-text/word-break/word-break-break-all-020.html": [ @@ -573782,13 +573719,9 @@ "reftest" ], "css/css-text/word-break/word-break-keep-all-003.html": [ - "1395e354465c5018bd761305933bdcd601fff639", + "776d56d828084e95d260b936b3a8c9f282966728", "reftest" ], - "css/css-text/word-break/word-break-keep-all-004.xht": [ - "c66bfe4bae042170581ab087fb90e41f8a1fc122", - "manual" - ], "css/css-text/word-break/word-break-keep-all-005.html": [ "4bb523ab7ca395b36204148755ee5e6d9243761a", "reftest" @@ -609006,7 +608939,7 @@ "testharness" ], "encoding/textdecoder-fatal.any.js": [ - "3cb75736b2c42c33ece1baf7a81a6783ab5d0ce2", + "5884f11ec3cf145e2d405e30e3ce346abfc97c1b", "testharness" ], "encoding/textdecoder-ignorebom.any.js": [ @@ -633198,7 +633131,7 @@ "support" ], "interfaces/input-events.idl": [ - "bd4024856b5be0483f32f65f33ef9cebe81a4521", + "0086128e562fbdb11e6c07ecd41f99a6e9a84189", "support" ], "interfaces/intersection-observer.idl": [ @@ -633490,7 +633423,7 @@ "support" ], "interfaces/webxr.idl": [ - "27ee27493aaa98869c9fe3adc0f4f19ec99e85e2", + "ea45aef97715ec7d4e098e357af69575eb432ebd", "support" ], "interfaces/worklets.idl": [ @@ -635050,7 +634983,7 @@ "support" ], "mediacapture-fromelement/capture.html": [ - "cf6168ba17f28ec56fe8f98dbaced91b41fa23ed", + "74858737f13f818ed4f52d71221580957302676f", "testharness" ], "mediacapture-fromelement/creation.html": [ @@ -656254,9 +656187,53 @@ "support" ], "resource-timing/SyntheticResponse.py": [ - "19a788178a1958fd2abd130443f79031c32a8e1a", + "528ee239c174e9bd7618288f88cc09f8c5a9b58b", "support" ], + "resource-timing/buffer-full-add-after-full-event.html": [ + "07897b5d28dfb281463dc49dc5481d2a1de187b5", + "testharness" + ], + "resource-timing/buffer-full-add-entries-during-callback-that-drop.html": [ + "d61d2af05c6730c57703e7ba9482067689e78fbb", + "testharness" + ], + "resource-timing/buffer-full-add-entries-during-callback.html": [ + "b37c47b23fb5026480683594b964ee712abbe708", + "testharness" + ], + "resource-timing/buffer-full-add-then-clear.html": [ + "710852ced55f716a348cc9e6865d7a8b7048a46a", + "testharness" + ], + "resource-timing/buffer-full-decrease-buffer-during-callback.html": [ + "e6de33ded1b73345a763692a1bac9138c8f208de", + "testharness" + ], + "resource-timing/buffer-full-increase-buffer-during-callback.html": [ + "b46d2d65690a886837b8ea7621f3926081552d97", + "testharness" + ], + "resource-timing/buffer-full-inspect-buffer-during-callback.html": [ + "d46d4692a55b9cbef1aa5f882f38887e1f7940e9", + "testharness" + ], + "resource-timing/buffer-full-set-to-current-buffer.html": [ + "1e5486ec2cdfc442876ba1f5b2c524985e70e5b5", + "testharness" + ], + "resource-timing/buffer-full-store-and-clear-during-callback.html": [ + "f0791cba6b39fb4b7e1af09077772f1ee3b42744", + "testharness" + ], + "resource-timing/buffer-full-then-increased.html": [ + "2265077fc15a277c3352da215fa5ac8a276c60aa", + "testharness" + ], + "resource-timing/buffer-full-when-populate-entries.html": [ + "00d2ae0e4426f4644f70e921751fffc327de46d6", + "testharness" + ], "resource-timing/clear_resource_timing_functionality.html": [ "eaf21b483ccd6ec63bcb8dc87c9e19a4305bf43d", "testharness" @@ -656278,7 +656255,7 @@ "testharness" ], "resource-timing/resource-timing.js": [ - "58bf19b52bfb23c8aaf8a05ba671eb3fee9c7eb3", + "8d97b2f26871e3a492cc6d3d253808e0cf18b0f2", "support" ], "resource-timing/resource_TAO_cross_origin_redirect_chain.html": [ @@ -656385,10 +656362,6 @@ "ce745237c0657c7045b00d9c7b8e71770ed490fc", "testharness" ], - "resource-timing/resource_timing_buffer_full_when_populate_entries.html": [ - "3e62b199a32b1cb7ff5eafc7fc690b379409b660", - "testharness" - ], "resource-timing/resource_timing_buffer_full_when_shrink_buffer_size.html": [ "e42c19d05e081ec3673606b4f0d686f0e69e65d8", "testharness" @@ -656405,10 +656378,6 @@ "d9fbf944f6c65b7a247b4764ee39e6aa33bc465d", "testharness" ], - "resource-timing/resource_timing_store_and_clear_during_callback.html": [ - "218fc0c2bcd5f987c2aee511bb66fd338476215f", - "testharness" - ], "resource-timing/resources/TAOResponse.py": [ "fefc75b7b7fc68872b36f56bcb0fa59dd41d2918", "support" @@ -656425,6 +656394,10 @@ "820f8cace2143bfc45c0c301e84b6c29b8630068", "support" ], + "resource-timing/resources/buffer-full-utilities.js": [ + "b143da7b325f0ad24a2f9ad67db7ba31d0aa912c", + "support" + ], "resource-timing/resources/empty.js": [ "3b44754e301ded90e559f6343df641e476803542", "support" @@ -660882,7 +660855,7 @@ "support" ], "service-workers/service-worker/resources/performance-timeline-worker.js": [ - "a752b436524e628959e35c9de73e15ccc7dd783f", + "cac327c34bf9df184913c561b584b038f3504c94", "support" ], "service-workers/service-worker/resources/postmessage-blob-url.js": [ @@ -671530,15 +671503,15 @@ "support" ], "tools/wpt/requirements.txt": [ - "5610e90053f6bcab3d699fd2132aba5274818697", + "da3fa4c34e31e91dc84998348368802b31f29b97", "support" ], "tools/wpt/run.py": [ - "ea6069504416f57542619bfbb0e3c17db3ed7142", + "00984af6c7ca88cbe2dbdbee58b2c0ed1de96ae6", "support" ], "tools/wpt/testfiles.py": [ - "c25ca2d43e21b15a614f3cf8a2d237165164bc57", + "2b20b07694bf9c91159ac3356a7055a4d395e77c", "support" ], "tools/wpt/tests/latest_mozilla_central.txt": [ @@ -671826,7 +671799,7 @@ "support" ], "tools/wptrunner/wptrunner/browsers/ie.py": [ - "0eca40925c205848d967f5771858e9cc0b271e38", + "78c22b909acf410038ff06769366662ab0c589a0", "support" ], "tools/wptrunner/wptrunner/browsers/opera.py": [ @@ -683581,7 +683554,7 @@ "f54faf54350990a9593e7af022c9eeb769595b15", "testharness" ], - "workers/importscripts_mime.tentative.any.js": [ + "workers/importscripts_mime.any.js": [ "04c63a3a5f6d9bd3b71d94142f65a1825358b8ed", "testharness" ], diff --git a/tests/wpt/metadata/css/css-fonts/variations/font-weight-matching.html.ini b/tests/wpt/metadata/css/css-fonts/variations/font-weight-matching.html.ini index 23487ca70b3..3012b72a8fd 100644 --- a/tests/wpt/metadata/css/css-fonts/variations/font-weight-matching.html.ini +++ b/tests/wpt/metadata/css/css-fonts/variations/font-weight-matching.html.ini @@ -38,6 +38,3 @@ [Test @font-face matching for weight 399] expected: FAIL - [Test @font-face matching for weight 420] - expected: FAIL - diff --git a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini index 6ef8bb1049f..e89282b04a1 100644 --- a/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini +++ b/tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini @@ -1,4 +1,5 @@ [elementsFromPoint-iframes.html] + expected: CRASH [elementsFromPoint on the root document for points in iframe elements] expected: FAIL diff --git a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini index aafc6cbdcfc..6abc0d2ccfb 100644 --- a/tests/wpt/metadata/encoding/single-byte-decoder.html.ini +++ b/tests/wpt/metadata/encoding/single-byte-decoder.html.ini @@ -2,6 +2,7 @@ type: testharness [single-byte-decoder.html?document] + expected: CRASH [ISO-8859-4: iso_8859-4:1988 (document.characterSet and document.inputEncoding)] expected: FAIL @@ -54,7 +55,7 @@ expected: FAIL [windows-1252: iso_8859-1:1987 (XMLHttpRequest)] - expected: FAIL + expected: TIMEOUT [windows-1254: iso_8859-9:1989 (XMLHttpRequest)] expected: TIMEOUT @@ -155,5 +156,20 @@ [windows-1252: us-ascii (XMLHttpRequest)] expected: TIMEOUT + [windows-1252: iso88591 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: iso_8859-1 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: iso8859-1 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: l1 (XMLHttpRequest)] + expected: TIMEOUT + + [windows-1252: iso-ir-100 (XMLHttpRequest)] + expected: TIMEOUT + [single-byte-decoder.html?TextDecoder] diff --git a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini index dc2e45516de..385376c7321 100644 --- a/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_5.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-history-interface/traverse_the_history_4.html.ini @@ -1,4 +1,4 @@ -[traverse_the_history_5.html] +[traverse_the_history_4.html] [Multiple history traversals, last would be aborted] expected: FAIL diff --git a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini index 9e8b7f1ef7c..cc1877a0612 100644 --- a/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini +++ b/tests/wpt/metadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini @@ -21,9 +21,6 @@ [Set HTTP URL frame location.protocol to x] expected: FAIL - [Set HTTP URL frame location.protocol to data] - expected: FAIL - [Set HTTP URL frame location.protocol to gopher] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini index 0f1a214d0ee..6b57ca778ee 100644 --- a/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini +++ b/tests/wpt/metadata/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini @@ -5,7 +5,7 @@ expected: TIMEOUT [picture: source (max-width:500px) valid image, img valid image, resize to wide] - expected: FAIL + expected: TIMEOUT [picture: source (max-width:500px) valid image, img broken image, resize to narrow] expected: TIMEOUT @@ -16,18 +16,9 @@ [picture: source (max-width:500px) broken image, img valid image, resize to narrow] expected: FAIL - [img (srcset 1 cand) valid image, resize to wide] - expected: FAIL - - [picture: same URL in source (max-width:500px) and img, resize to wide] - expected: FAIL - [img (srcset 1 cand) valid image, resize to narrow] expected: FAIL - [picture: source (max-width:500px) valid image, img broken image, resize to wide] - expected: FAIL - [picture: same URL in source (max-width:500px) and img, resize to narrow] expected: FAIL diff --git a/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini new file mode 100644 index 00000000000..9e522297c94 --- /dev/null +++ b/tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini @@ -0,0 +1,7 @@ +[toggleEvent.html] + [Calling open twice on 'details' fires only one toggle event] + expected: FAIL + + [Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element] + expected: FAIL + diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js.ini deleted file mode 100644 index c6d49957c4a..00000000000 --- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js.ini +++ /dev/null @@ -1,4 +0,0 @@ -[aborted-parser.window.html] - [document.open() after parser is aborted] - expected: FAIL - diff --git a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.js.ini b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.js.ini index 2314441517b..6e41a19efd8 100644 --- a/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.js.ini +++ b/tests/wpt/metadata/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.js.ini @@ -1,5 +1,5 @@ [bailout-exception-vs-return-xml.window.html] - expected: TIMEOUT + expected: CRASH [document.open should throw an InvalidStateError with XML document even when the ignore-opens-during-unload counter is greater than 0 (during beforeunload event)] expected: TIMEOUT diff --git a/tests/wpt/metadata/quirks/unitless-length/quirks.html.ini b/tests/wpt/metadata/quirks/unitless-length/quirks.html.ini deleted file mode 100644 index 2ed601c6ff4..00000000000 --- a/tests/wpt/metadata/quirks/unitless-length/quirks.html.ini +++ /dev/null @@ -1,283 +0,0 @@ -[quirks.html] - [top: -\\31 .5] - expected: FAIL - - [bottom: -1A] - expected: FAIL - - [bottom: -1a] - expected: FAIL - - [top: @1] - expected: FAIL - - [top: "1a"] - expected: FAIL - - [top: @a] - expected: FAIL - - [bottom: "1"] - expected: FAIL - - [bottom: -/**/1] - expected: FAIL - - [top: +/**/1] - expected: FAIL - - [bottom: @1a] - expected: FAIL - - [top: 1\\31 ] - expected: FAIL - - [top: url('1')] - expected: FAIL - - [bottom: -\\31 ] - expected: FAIL - - [top: calc(1)] - expected: FAIL - - [top: \\31 ] - expected: FAIL - - [bottom: +1\\31 ] - expected: FAIL - - [bottom: 1\\31 .5] - expected: FAIL - - [bottom: #0001] - expected: FAIL - - [top: calc(2 * 2px)] - expected: FAIL - - [bottom: 1a] - expected: FAIL - - [bottom: A] - expected: FAIL - - [bottom: #01] - expected: FAIL - - [top: +\\31 .5] - expected: FAIL - - [bottom: #1] - expected: FAIL - - [top: -/**/1] - expected: FAIL - - [bottom: +\\31 .5] - expected: FAIL - - [bottom: \\31 ] - expected: FAIL - - [bottom: calc(1)] - expected: FAIL - - [top: #001] - expected: FAIL - - [top: +\\31 ] - expected: FAIL - - [bottom: +\\31 ] - expected: FAIL - - [top: +1.5] - expected: FAIL - - [top: +1\\31 ] - expected: FAIL - - [bottom: @a] - expected: FAIL - - [bottom: @1] - expected: FAIL - - [top: #1] - expected: FAIL - - [top: 1a] - expected: FAIL - - [bottom: +1a] - expected: FAIL - - [bottom: +1A] - expected: FAIL - - [bottom: "a"] - expected: FAIL - - [top: #00001] - expected: FAIL - - [bottom: -1\\31 .5] - expected: FAIL - - [top: "1"] - expected: FAIL - - [bottom: 1.5] - expected: FAIL - - [bottom: -\\31 .5] - expected: FAIL - - [bottom: url('1')] - expected: FAIL - - [bottom: -1.5] - expected: FAIL - - [top: \\31 .5] - expected: FAIL - - [bottom: "1a"] - expected: FAIL - - [bottom: calc(2 * 2px)] - expected: FAIL - - [bottom: +1\\31 .5] - expected: FAIL - - [bottom: 1\\31 ] - expected: FAIL - - [bottom: +/**/1] - expected: FAIL - - [bottom: #00001] - expected: FAIL - - [top: url(1)] - expected: FAIL - - [bottom: #001] - expected: FAIL - - [top: +1\\31 .5] - expected: FAIL - - [top: -1a] - expected: FAIL - - [top: -1A] - expected: FAIL - - [bottom: url(1)] - expected: FAIL - - [top: a] - expected: FAIL - - [top: A] - expected: FAIL - - [top: #000001] - expected: FAIL - - [top: 1] - expected: FAIL - - [top: 1\\31 .5] - expected: FAIL - - [bottom: a] - expected: FAIL - - [bottom: 1] - expected: FAIL - - [bottom: +1] - expected: FAIL - - [bottom: #000001] - expected: FAIL - - [bottom: +a] - expected: FAIL - - [bottom: +A] - expected: FAIL - - [top: 1.5] - expected: FAIL - - [top: +A] - expected: FAIL - - [top: +a] - expected: FAIL - - [top: +1] - expected: FAIL - - [top: -1.5] - expected: FAIL - - [top: -1\\31 .5] - expected: FAIL - - [top: +1a] - expected: FAIL - - [top: +1A] - expected: FAIL - - [top: @1a] - expected: FAIL - - [bottom: \\31 .5] - expected: FAIL - - [top: "a"] - expected: FAIL - - [top: #01] - expected: FAIL - - [bottom: +1.5] - expected: FAIL - - [bottom: -A] - expected: FAIL - - [bottom: -a] - expected: FAIL - - [bottom: -1\\31 ] - expected: FAIL - - [top: #0001] - expected: FAIL - - [bottom: -1] - expected: FAIL - - [top: -\\31 ] - expected: FAIL - - [top: -A] - expected: FAIL - - [top: -a] - expected: FAIL - - [top: -1] - expected: FAIL - - [top: -1\\31 ] - expected: FAIL - diff --git a/tests/wpt/metadata/resource-timing/buffer-full-add-after-full-event.html.ini b/tests/wpt/metadata/resource-timing/buffer-full-add-after-full-event.html.ini index 8f8c89cb287..e6fe241b4ed 100644 --- a/tests/wpt/metadata/resource-timing/buffer-full-add-after-full-event.html.ini +++ b/tests/wpt/metadata/resource-timing/buffer-full-add-after-full-event.html.ini @@ -1,5 +1,5 @@ [buffer-full-add-after-full-event.html] expected: ERROR [Test that entry was added to the buffer after a buffer full event] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/metadata/resource-timing/buffer-full-set-to-current-buffer.html.ini b/tests/wpt/metadata/resource-timing/buffer-full-set-to-current-buffer.html.ini index 82671979e5a..22395fd3be3 100644 --- a/tests/wpt/metadata/resource-timing/buffer-full-set-to-current-buffer.html.ini +++ b/tests/wpt/metadata/resource-timing/buffer-full-set-to-current-buffer.html.ini @@ -1,5 +1,5 @@ [buffer-full-set-to-current-buffer.html] expected: ERROR [Test that entries added and event firing happened in the right sequence] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/metadata/resource-timing/resource-timing.html.ini b/tests/wpt/metadata/resource-timing/resource-timing.html.ini index 40b186c120c..e662a94d9b2 100644 --- a/tests/wpt/metadata/resource-timing/resource-timing.html.ini +++ b/tests/wpt/metadata/resource-timing/resource-timing.html.ini @@ -65,3 +65,15 @@ ['script 250ms delay in headers does not affect responseStart'] expected: FAIL + ['link responseStart uses 1XX (first) response timings'] + expected: FAIL + + ['script responseStart uses 1XX (first) response timings'] + expected: FAIL + + ['iframe responseStart uses 1XX (first) response timings'] + expected: FAIL + + ['xmlhttprequest responseStart uses 1XX (first) response timings'] + expected: FAIL + diff --git a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini index a56bad443a2..66bd350083b 100644 --- a/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini +++ b/tests/wpt/metadata/webaudio/the-audio-api/the-analysernode-interface/realtimeanalyser-fft-scaling.html.ini @@ -1,5 +1,4 @@ [realtimeanalyser-fft-scaling.html] - expected: TIMEOUT [X 2048-point FFT peak position is not equal to 64. Got 0.] expected: FAIL diff --git a/tests/wpt/metadata/workers/importscripts_mime.any.js.ini b/tests/wpt/metadata/workers/importscripts_mime.any.js.ini new file mode 100644 index 00000000000..0ee29aaad0b --- /dev/null +++ b/tests/wpt/metadata/workers/importscripts_mime.any.js.ini @@ -0,0 +1,47 @@ +[importscripts_mime.any.worker.html] + [importScripts() requires scripty MIME types: aaa/aaa is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: Text/html is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: zzz/zzz is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: application/octet-stream is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: text/potato is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: TEXT/HTML is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: potato/text is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: text/Html is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: TeXt/HtMl is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: text/html is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: application/xml is blocked.] + expected: FAIL + + [importScripts() requires scripty MIME types: text/plain is blocked.] + expected: FAIL + + +[importscripts_mime.any.sharedworker.html] + [importscripts_mime] + expected: FAIL + + +[importscripts_mime.any.serviceworker.html] + [importscripts_mime] + expected: FAIL + diff --git a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini index f584fce5df1..268949ced5c 100644 --- a/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini +++ b/tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini @@ -1,5 +1,4 @@ [005.html] - expected: ERROR [dedicated worker in shared worker in dedicated worker] expected: FAIL diff --git a/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini new file mode 100644 index 00000000000..dbea4f293ad --- /dev/null +++ b/tests/wpt/mozilla/meta/css/transition_calc_implicit.html.ini @@ -0,0 +1,2 @@ +[transition_calc_implicit.html] + expected: TIMEOUT diff --git a/tests/wpt/web-platform-tests/css/css-contain/contain-layout-baseline-005.html b/tests/wpt/web-platform-tests/css/css-contain/contain-layout-baseline-005.html new file mode 100644 index 00000000000..a447744bd7c --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/contain-layout-baseline-005.html @@ -0,0 +1,64 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Containment Test: Layout containment supress baseline</title> +<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> +<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-layout"> +<link rel="match" href="reference/contain-layout-baseline-005-ref.html"> +<meta name=assert content="This test checks that baseline is suppressed for elements with 'contain: layout', so they are treated as having no baseline (thus its baseline is synthetized)."> +<style> +.wrapper { + height: 110px; +} +.wrapper > * { + contain: layout; + background: cyan; + font-size: 20px; +} +.wrapper > :nth-child(1) { + background: magenta; +} +.inline-block { + display: inline-block; +} +canvas { + width: 100px; + height: 100px; +} +fieldset, details { + display: inline-block; + width: max-content; +} +</style> +<p>Test passes if it has the same output than the reference (all elements are aligned on the bottom edge).</p> +<div class="wrapper"> + <div class="inline-block" style="font-size: 80px;">foo</div> + <div class="inline-block">foo</div> + <div class="inline-block" style="border: solid thick; padding: 2px;">foo</div> + <div style="display: inline-flex;">foo</div> + <div style="display: inline-flex; border: solid thick; padding: 2px;">foo</div> + <div style="display: inline-grid;">foo</div> + <div style="display: inline-grid; border: solid thick; padding: 2px;">foo</div> +</div> +<div class="wrapper"> + <canvas></canvas> + <div class="inline-block">foo</div> + <button>foo</button> + <select><option>foo</option></select> + <select multiple style="height: 40px;"><option>foo</option></select> + <textarea style="height: 40px;"></textarea> +</div> +<div class="wrapper"> + <canvas></canvas> + <input value="foo"></input> + <input type="file"></input> +</div> +<div class="wrapper"> + <canvas></canvas> + <table style="display: inline-table;"><tr><td>foo</td></tr></table> + <canvas></canvas> + <fieldset></fieldset> + <fieldset><legend>foo</legend></fieldset> + <fieldset><legend>foo</legend>foo</fieldset> + <details></details> + <details><summary>foo</summary>foo</details> <details open="true"><summary>foo</summary>foo</details> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-contain/reference/contain-layout-baseline-005-ref.html b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-layout-baseline-005-ref.html new file mode 100644 index 00000000000..40a34f9ff15 --- /dev/null +++ b/tests/wpt/web-platform-tests/css/css-contain/reference/contain-layout-baseline-005-ref.html @@ -0,0 +1,61 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Containment Test: Reference file</title> +<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com"> +<style> +.wrapper { + height: 110px; +} +.wrapper > * { + vertical-align: bottom; + background: cyan; + font-size: 20px; +} +.wrapper > :nth-child(1) { + background: magenta; +} +.inline-block { + display: inline-block; +} +canvas { + width: 100px; + height: 100px; +} +fieldset, details { + display: inline-block; + width: max-content; +} +</style> +<p>Test passes if it has the same output than the reference (all elements are aligned on the bottom edge).</p> +<div class="wrapper"> + <div class="inline-block" style="font-size: 80px;">foo</div> + <div class="inline-block">foo</div> + <div class="inline-block" style="border: solid thick; padding: 2px;">foo</div> + <div style="display: inline-flex;">foo</div> + <div style="display: inline-flex; border: solid thick; padding: 2px;">foo</div> + <div style="display: inline-grid;">foo</div> + <div style="display: inline-grid; border: solid thick; padding: 2px;">foo</div> +</div> +<div class="wrapper"> + <canvas></canvas> + <div class="inline-block">foo</div> + <button>foo</button> + <select><option>foo</option></select> + <select multiple style="height: 40px;"><option>foo</option></select> + <textarea style="height: 40px;"></textarea> +</div> +<div class="wrapper"> + <canvas></canvas> + <input value="foo"></input> + <input type="file"></input> +</div> +<div class="wrapper"> + <canvas></canvas> + <table style="display: inline-table;"><tr><td>foo</td></tr></table> + <canvas></canvas> + <fieldset></fieldset> + <fieldset><legend>foo</legend></fieldset> + <fieldset><legend>foo</legend>foo</fieldset> + <details></details> + <details><summary>foo</summary>foo</details> <details open="true"><summary>foo</summary>foo</details> +</div> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-001.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-001.html index 2407942f09f..3c6ee263fb4 100644 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-001.html +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-001.html @@ -3,7 +3,7 @@ <title>CSS Text Test: overflow-wrap - break-word (basic)</title> <link rel="author" title="Intel" href="http://www.intel.com"> <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> +<link rel="help" href="http://www.w3.org/TR/css-text-3/#overflow-wrap-property"> <link rel="match" href="overflow-wrap-001-ref.html"> <meta name="flags" content="ahem"> <meta name="assert" content="The 'overflow-wrap' property set 'break-word' breaks the word at an arbitrary point"> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-002.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-002.html index 2c6d34d01da..e1b5c061038 100644 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-002.html +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-002.html @@ -3,7 +3,7 @@ <title>CSS Text Test: overflow-wrap - break-word and white-space - nowrap</title> <link rel="author" title="Intel" href="http://www.intel.com"> <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> +<link rel="help" href="http://www.w3.org/TR/css-text-3/#overflow-wrap-property"> <link rel="help" href="http://www.w3.org/TR/css-text-3/#white-space"> <link rel="match" href="overflow-wrap-002-ref.html"> <meta name="flags" content="ahem"> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003-ref.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003-ref.html deleted file mode 100644 index fa4ca42b587..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003-ref.html +++ /dev/null @@ -1,15 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Text Test Reference File</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<style> - #test { - border: 5px solid orange; - font: 20px/1 Ahem; - width: 20em; - } -</style> -<body> - <p class="instructions">Test passes if the black box displayed in two rows within the orange box.</p> - <p id="test">FillerTextFillerText<br>FillerTextFillerText</p> -</body> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003.html deleted file mode 100644 index 99ead18f281..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Text Test: overflow-wrap - break-word (white space)</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> -<link rel="match" href="overflow-wrap-003-ref.html"> -<meta name="flags" content="ahem"> -<meta name="assert" content="The 'overflow-wrap' property set 'break-word' breaks line at white space"> -<style> - #test { - border: 5px solid orange; - font: 20px/1 Ahem; - overflow-wrap: break-word; - width: 20em; - } -</style> -<body> - <p class="instructions">Test passes if the black box displayed in two rows within the orange box.</p> - <p id="test">FillerTextFillerText FillerTextFillerText</p> -</body> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-004.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-004.html index 92ad750207d..166bfc1f474 100644 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-004.html +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-004.html @@ -3,7 +3,7 @@ <title>CSS Text Test: overflow-wrap - normal (basic)</title> <link rel="author" title="Intel" href="http://www.intel.com"> <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> +<link rel="help" href="http://www.w3.org/TR/css-text-3/#overflow-wrap-property"> <link rel="match" href="overflow-wrap-004-ref.html"> <meta name="flags" content="ahem"> <meta name="assert" content="The 'overflow-wrap' property set 'normal' overflows container"> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-005.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-005.html deleted file mode 100644 index 181137450d5..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-005.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Text Test: overflow-wrap - normal (white space)</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> -<link rel="match" href="overflow-wrap-003-ref.html"> -<meta name="flags" content="ahem"> -<meta name="assert" content="The 'overflow-wrap' property set 'normal' will break line at white space"> -<style> - #test { - border: 5px solid orange; - font: 20px/1 Ahem; - overflow-wrap: normal; - width: 20em; - } -</style> -<body> - <p class="instructions">Test passes if the black box displayed in two rows within the orange box.</p> - <p id="test">FillerTextFillerText FillerTextFillerText</p> -</body> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html index bce6c68389c..2c83c46aa50 100644 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html @@ -2,10 +2,10 @@ <meta charset="utf-8"> <title>CSS Text Test: overflow-wrap: break-word with fit-content</title> <link rel="author" title="Koji Ishii" href="mailto:kojiishi@gmail.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> +<link rel="help" href="http://www.w3.org/TR/css-text-3/#overflow-wrap-property"> <meta name="flags" content=""> <link rel="match" href="reference/overflow-wrap-break-word-fit-content-001.html"> -<meta name="assert" content="The 'overflow-wrap: break-word' must not break surrogate pairs"> +<meta name="assert" content="The 'overflow-wrap: break-word' must not break non-BMP characters (which might be represented as surrogate pairs internally)"> <style> .test { display: inline-block; diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-001.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-001.html index dd5f0f2bf13..af326a6cdf2 100644 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-001.html +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-001.html @@ -3,7 +3,7 @@ <title>CSS Text Test: word-wrap - break-word (basic)</title> <link rel="author" title="Intel" href="http://www.intel.com"> <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> +<link rel="help" href="http://www.w3.org/TR/css-text-3/#overflow-wrapproperty"> <link rel="match" href="overflow-wrap-001-ref.html"> <meta name="flags" content="ahem"> <meta name="assert" content="The 'word-wrap' property set 'break-word' breaks the word at an arbitrary point"> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-002.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-002.html index 380fb8ec4fd..24b39d6cacd 100644 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-002.html +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-002.html @@ -3,7 +3,7 @@ <title>CSS Text Test: word-wrap - break-word and white-space - nowrap</title> <link rel="author" title="Intel" href="http://www.intel.com"> <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> +<link rel="help" href="http://www.w3.org/TR/css-text-3/#overflow-wrap-property"> <link rel="help" href="http://www.w3.org/TR/css-text-3/#white-space"> <link rel="match" href="overflow-wrap-002-ref.html"> <meta name="flags" content="ahem"> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-003.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-003.html deleted file mode 100644 index 282d184b069..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-003.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Text Test: word-wrap - break-word (white space)</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> -<link rel="match" href="overflow-wrap-003-ref.html"> -<meta name="flags" content="ahem"> -<meta name="assert" content="The 'word-wrap' property set 'break-word' breaks line at white space"> -<style> - #test { - border: 5px solid orange; - font: 20px/1 Ahem; - word-wrap: break-word; - width: 20em; - } -</style> -<body> - <p class="instructions">Test passes if the black box displayed in two rows within the orange box.</p> - <p id="test">FillerTextFillerText FillerTextFillerText</p> -</body> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-004.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-004.html index ce7a2fe5047..773c4aef6cc 100644 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-004.html +++ b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-004.html @@ -3,7 +3,7 @@ <title>CSS Text Test: word-wrap - normal (basic)</title> <link rel="author" title="Intel" href="http://www.intel.com"> <link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> +<link rel="help" href="http://www.w3.org/TR/css-text-3/#overflow-wrap-property"> <link rel="match" href="overflow-wrap-004-ref.html"> <meta name="flags" content="ahem"> <meta name="assert" content="The 'word-wrap' property set 'normal' overflows container"> diff --git a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-005.html b/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-005.html deleted file mode 100644 index 4b9973a19de..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-005.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Text Test: word-wrap - normal (white space)</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" title="6.2. Overflow Wrapping: the 'word-wrap'/'overflow-wrap' property" href="http://www.w3.org/TR/css-text-3/#overflow-wrap"> -<link rel="match" href="overflow-wrap-003-ref.html"> -<meta name="flags" content="ahem"> -<meta name="assert" content="The 'word-wrap' property set 'normal' will break line at white space"> -<style> - #test { - border: 5px solid orange; - font: 20px/1 Ahem; - word-wrap: normal; - width: 20em; - } -</style> -<body> - <p class="instructions">Test passes if the black box displayed in two rows within the orange box.</p> - <p id="test">FillerTextFillerText FillerTextFillerText</p> -</body> diff --git a/tests/wpt/web-platform-tests/css/css-text/white-space/pre-wrap-015.html b/tests/wpt/web-platform-tests/css/css-text/white-space/pre-wrap-015.html index f9063c98767..b17af29bf54 100644 --- a/tests/wpt/web-platform-tests/css/css-text/white-space/pre-wrap-015.html +++ b/tests/wpt/web-platform-tests/css/css-text/white-space/pre-wrap-015.html @@ -22,7 +22,7 @@ div { width: 20px; white-space: pre-wrap; - word-break: break-word; + word-break: break-all; } </style> <body> diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-009-ref.xht b/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-009-ref.xht deleted file mode 100644 index 0768b857d96..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-009-ref.xht +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> - <head> - <title>CSS Test: word-break - break-all - basic cases</title> - <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" /> - <style type="text/css"> - <![CDATA[ - .test span { - word-break: break-all; - } - /* the CSS below is not part of the test */ - p.test, p.control { - border: 1px solid gray; - color: blue; - font-family: "IPAMincho", "IPAGothic", "IPA明朝", "IPAゴシック"; - width: 10em; - } - div.wrapper { - display: inline-block; - border: 1px solid; - margin: 10px; - padding: 10px; - } - span.attention { - color: red; - } - ]]> - </style> - </head> - <body> - <p> - Test passes if each pair of upper and lower text in the square box is identical. - </p> - <div class="wrapper"> - <p class="test"> - <span>Filler Text Filler Text Filler Text</span> - </p> - <p class="control"> - <span>Filler Text Filler T<br />ext Filler Text</span> - </p> - </div> - <div class="wrapper"> - <p class="test"> - <span>満たすための文字 Filler Text</span> - </p> - <p class="control"> - <span>満たすための文字 Fil<br />ler Text</span> - </p> - </div> - <div class="wrapper"> - <p class="test"> - <span>満たすための文字満たすための文字</span> - </p> - <p class="control"> - <span>満たすための文字満た<br />すための文字</span> - </p> - </div> - <p> - <span class="attention">* You will need a Japanese font.</span><br /> - If you are unable to see font glyphs for certain characters using the browsers default font, install the <a href="http://ossipedia.ipa.go.jp/ipafont/">IPA Font(http://ossipedia.ipa.go.jp/ipafont/)</a> and reload this page. - </p> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-014-ref.html b/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-014-ref.html index a8720a101c3..044ea40dd2c 100644 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-014-ref.html +++ b/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-014-ref.html @@ -2,5 +2,5 @@ <meta charset="utf-8"> <title>CSS Text Test: overflow-wrap: break-all</title> <link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> -<p>Test passes if 2 icons are rendered in a row, matching the reference file.</p> +<p>Test passes if 2 (different) heart emojis are rendered below each other.</p> <div>💖<br>💔</div> diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-keep-all-004-ref.xht b/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-keep-all-004-ref.xht deleted file mode 100644 index 65ede653fcc..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-keep-all-004-ref.xht +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> - <head> - <title>CSS Test: word-break - keep-all - basic cases Reftest Reference</title> - <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" /> - <style type="text/css"> - <![CDATA[ - p.control { - border: 1px solid gray; - color: blue; - font-family: "IPAMincho", "IPAGothic", "IPA明朝", "IPAゴシック"; - width: 10em; - } - div.wrapper { - display: inline-block; - border: 1px solid; - margin: 10px; - padding: 10px; - } - span.attention { - color: red; - } - span.no_wrap { - white-space: nowrap; - } - ]]> - </style> - </head> - <body> - <p> - Test passes if each pair of upper and lower text in the square box is identical. - </p> - <div class="wrapper"> - <p class="control"> - <span>Filler Text Filler<br />Text Filler Text</span> - </p> - <p class="control"> - <span>Filler Text Filler<br />Text Filler Text</span> - </p> - </div> - <div class="wrapper"> - <p class="control"> - <span>満たすための文字<br />Filler Text</span> - </p> - <p class="control"> - <span>満たすための文字<br />Filler Text</span> - </p> - </div> - <div class="wrapper"> - <p class="control"> - <span class="no_wrap">満たすための文字満たすための文字</span> - </p> - <p class="control"> - <span class="no_wrap">満たすための文字満たすための文字</span> - </p> - </div> - <p> - <span class="attention">* You will need a Japanese font.</span><br /> - If you are unable to see font glyphs for certain characters using the browsers default font, install the <a href="http://ossipedia.ipa.go.jp/ipafont/">IPA Font(http://ossipedia.ipa.go.jp/ipafont/)</a> and reload this page. - </p> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-keep-all-ref-003.html b/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-keep-all-ref-003.html index a6adfdc8340..5aba6783f4e 100644 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-keep-all-ref-003.html +++ b/tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-keep-all-ref-003.html @@ -12,7 +12,7 @@ </head> <body> <div id='instructions'>Test passes if the two orange boxes are the same.</div> -<div class="ref" lang="th"><span>แและ แและ<br/>แและ</span></div> -<div class="ref" lang="th"><span>แและ แและ<br/>แและ</span></div> +<div class="ref" lang="th"><span>และ และ<br/>และ</span></div> +<div class="ref" lang="th"><span>และ และ<br/>และ</span></div> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-001.html b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-001.html deleted file mode 100644 index f0b6aee3446..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-001.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Text Test: word-break - break-all keyword value</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" href="http://www.w3.org/TR/css-text-3/#word-break"> -<meta name="flags" content=""> -<meta name="assert" content="Check that 'word-break' with 'break-all' keyword value implies to words break between any two letters without hyphenate."> -<style> - div { - border: 2px black solid; - color: blue; - width: 100px; - word-break: break-all; - } -</style> -<body> - <p>Test passes if all the words below are inside the box and break between any two letters without hyphenate.</p> - <div>Words in these lines should break between any two letters and be inside the box.</div> -</body> - diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-002.html b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-002.html deleted file mode 100644 index 652e40de266..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-002.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Text Test: word-break - normal keyword value</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" href="http://www.w3.org/TR/css-text-3/#word-break"> -<meta name="flags" content=""> -<meta name="assert" content="Check that 'word-break' with 'normal' keyword value implies to words break after word."> -<style> - div { - border: 2px black solid; - color: blue; - width: 100px; - word-break: normal; - } -</style> -<body> - <p>Test passes if all the words below are within the box and break only after a word.</p> - <div>Words in these lines should break after word and be inside the box.</div> -</body> - diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-003.html b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-003.html deleted file mode 100644 index 34546ad61f5..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-003.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Text Test: word-break - normal keyword value - single word not break</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" href="http://www.w3.org/TR/css-text-3/#word-break"> -<meta name="flags" content=""> -<meta name="assert" content="Check that 'word-break' with 'normal' keyword value implies to words break after word, so that a single word won't break."> -<style> - div { - border: 2px black solid; - color: blue; - width: 100px; - word-break: normal; - } -</style> -<body> - <p>Test passes if there is <strong>no</strong> word break below.</p> - <div>ThisWordShouldNotBeBreakedAndMayBeOutOfTheBox</div> -</body> - diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-004.html b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-004.html deleted file mode 100644 index 9f4ccd0331d..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-004.html +++ /dev/null @@ -1,21 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>CSS Text Test: word-break - normal keyword value - Chinese words break</title> -<link rel="author" title="Intel" href="http://www.intel.com"> -<link rel="author" title="Shiyou Tan" href="mailto:shiyoux.tan@intel.com"> -<link rel="help" href="http://www.w3.org/TR/css-text-3/#word-break"> -<meta name="flags" content=""> -<meta name="assert" content="Check that 'word-break' with 'normal' keyword value implies to words break after word, including Chinese words."> -<style> - div { - border: 2px black solid; - color: blue; - width: 100px; - word-break: normal; - } -</style> -<body> - <p>Test passes if all the Chinese words below are inside the box and break normally.</p> - <div>这些文字会自动换行,但不会超出黑色框。</div> -</body> - diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-008.html b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-008.html index 83a74c46a39..85e91b56aa1 100644 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-008.html +++ b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-008.html @@ -3,7 +3,15 @@ <head> <meta charset="utf-8"> <title>word-break: break-all, syllabic cluster</title> -<meta name="assert" content="[Exploratory test] word-break: break-all means lines may break between any two typographic letter units. An indic syllable cluster should be wrapped as a unit to the next line."> +<meta name="assert" content="word-break: break-all means lines may break between any two typographic letter units. An indic syllable cluster should be wrapped as a unit to the next line."> +<meta name="flags" content="should"> +<!-- + Marking as "should" + because while the spec requires this behavior + about typographic letter units, + it is handwavy about what constitutes one, + and appeals to the UA's knowledge of "the right thing to do" for that language. +--> <link rel='help' href='https://drafts.csswg.org/css-text-3/#word-break-property'> <link rel='match' href='reference/word-break-break-all-ref-008.html'> <link rel='author' title='Richard Ishida' href='mailto:ishida@w3.org'> @@ -21,9 +29,5 @@ var sentenceWidth = document.getElementById('testspan').offsetWidth document.getElementById('testdiv').style.width = String(sentenceWidth - 5)+'px' </script> -<!-- -Notes: -This test is exploratory because indic conjuncts containing more than one consonant are not covered by the extended grapheme cluster definition, and therefore constitute more than one typographic unit, as defined in the CSS spec. Nevertheless, people using indic scripts expect the user agent to keep the orthographic syllable as a single unit. ---> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-009.xht b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-009.xht deleted file mode 100644 index 9a7a591dafd..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-009.xht +++ /dev/null @@ -1,68 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> - <head> - <title>CSS Test: word-break - break-all - basic cases</title> - <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" /> - <link rel="help" title="CSS Text Level 3: 5.2. Word Breaking Rules: the ‘word-break’ property" href="http://www.w3.org/TR/css-text-3/#word-break" /> - <link rel="match" href="reference/word-break-break-all-009-ref.xht"/> - <meta name="flags" content="font" /> - <meta name="assert" content="Lines may break between any two grapheme clusters within words." /> - <style type="text/css"> - <![CDATA[ - .test span { - word-break: break-all; - } - /* the CSS below is not part of the test */ - p.test, p.control { - border: 1px solid gray; - color: blue; - font-family: "IPAMincho", "IPAGothic", "IPA明朝", "IPAゴシック"; - width: 10em; - } - div.wrapper { - display: inline-block; - border: 1px solid; - margin: 10px; - padding: 10px; - } - span.attention { - color: red; - } - ]]> - </style> - </head> - <body> - <p> - Test passes if each pair of upper and lower text in the square box is identical. - </p> - <div class="wrapper"> - <p class="test"> - <span>Filler Text Filler Text Filler Text</span> - </p> - <p class="control"> - <span>Filler Text Filler T<br />ext Filler Text</span> - </p> - </div> - <div class="wrapper"> - <p class="test"> - <span>満たすための文字 Filler Text</span> - </p> - <p class="control"> - <span>満たすための文字 Fil<br />ler Text</span> - </p> - </div> - <div class="wrapper"> - <p class="test"> - <span>満たすための文字満たすための文字</span> - </p> - <p class="control"> - <span>満たすための文字満た<br />すための文字</span> - </p> - </div> - <p> - <span class="attention">* You will need a Japanese font.</span><br /> - If you are unable to see font glyphs for certain characters using the browsers default font, install the <a href="http://ossipedia.ipa.go.jp/ipafont/">IPA Font(http://ossipedia.ipa.go.jp/ipafont/)</a> and reload this page. - </p> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-014.html b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-014.html index 6885553ad68..674b0545e05 100644 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-014.html +++ b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-014.html @@ -3,7 +3,7 @@ <title>CSS Text Test: overflow-wrap: break-all</title> <link rel="author" title="Javier Fernandez Garcia-Boente" href="mailto:jfernandez@igalia.com"> <link rel="help" href="https://drafts.csswg.org/css-text-3/#valdef-word-break-break-all"> -<meta name="flags" content="ahem"> +<meta name="flags" content=""> <link rel="match" href="reference/word-break-break-all-014-ref.html"> <meta name="assert" content="The text is wrapped after the first character and no unicode unit is broken."> <style> @@ -12,5 +12,5 @@ div { word-break: break-all; } </style> -<p>Test passes if 2 icons are rendered in a row, matching the reference file.</p> +<p>Test passes if 2 (different) heart emojis are rendered below each other.</p> <div>💖💔</div> diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-keep-all-003.html b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-keep-all-003.html index 1395e354465..776d56d8280 100644 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-keep-all-003.html +++ b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-keep-all-003.html @@ -15,11 +15,11 @@ </head> <body> <div id='instructions'>Test passes if the two orange boxes are the same.</div> -<div class="test" lang="th"><div id="testdiv"><span id="testspan">แและ แและแและ</span></div></div> -<div class="ref" lang="th"><span>แและ แและ<br/>แและ</span></div> +<div class="test" lang="th"><div id="testdiv"><span id="testspan">และ และและ</span></div></div> +<div class="ref" lang="th"><span>และ และ<br/>และ</span></div> <script> var sentenceWidth = document.getElementById('testspan').offsetWidth document.getElementById('testdiv').style.width = String(sentenceWidth - 5)+'px' </script> </body> -</html>
\ No newline at end of file +</html> diff --git a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-keep-all-004.xht b/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-keep-all-004.xht deleted file mode 100644 index c66bfe4bae0..00000000000 --- a/tests/wpt/web-platform-tests/css/css-text/word-break/word-break-keep-all-004.xht +++ /dev/null @@ -1,71 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> - <head> - <title>CSS Test: word-break - keep-all - basic cases</title> - <link rel="author" title="Satoshi Umehara" href="mailto:umehara@est.co.jp" /> - <link rel="help" title="CSS Text Level 3: 5.2. Word Breaking Rules: the ‘word-break’ property" href="http://www.w3.org/TR/css-text-3/#word-break" /> - <link rel="match" href="reference/word-break-keep-all-004-ref.xht"/> - <meta name="flags" content="font" /> - <meta name="assert" content="Block characters can no longer create implied break points." /> - <style type="text/css"> - <![CDATA[ - .test span { - word-break: keep-all; - } - /* the CSS below is not part of the test */ - p.test, p.control { - border: 1px solid gray; - color: blue; - font-family: "IPAMincho", "IPAGothic", "IPA明朝", "IPAゴシック"; - width: 10em; - } - div.wrapper { - display: inline-block; - border: 1px solid; - margin: 10px; - padding: 10px; - } - span.attention { - color: red; - } - span.no_wrap { - white-space: nowrap; - } - ]]> - </style> - </head> - <body> - <p> - Test passes if each pair of upper and lower text in the square box is identical. - </p> - <div class="wrapper"> - <p class="test"> - <span>Filler Text Filler Text Filler Text</span> - </p> - <p class="control"> - <span>Filler Text Filler<br />Text Filler Text</span> - </p> - </div> - <div class="wrapper"> - <p class="test"> - <span>満たすための文字 Filler Text</span> - </p> - <p class="control"> - <span>満たすための文字<br />Filler Text</span> - </p> - </div> - <div class="wrapper"> - <p class="test"> - <span>満たすための文字満たすための文字</span> - </p> - <p class="control"> - <span class="no_wrap">満たすための文字満たすための文字</span> - </p> - </div> - <p> - <span class="attention">* You will need a Japanese font.</span><br /> - If you are unable to see font glyphs for certain characters using the browsers default font, install the <a href="http://ossipedia.ipa.go.jp/ipafont/">IPA Font(http://ossipedia.ipa.go.jp/ipafont/)</a> and reload this page. - </p> - </body> -</html> diff --git a/tests/wpt/web-platform-tests/encoding/textdecoder-fatal.any.js b/tests/wpt/web-platform-tests/encoding/textdecoder-fatal.any.js index 3cb75736b2c..5884f11ec3c 100644 --- a/tests/wpt/web-platform-tests/encoding/textdecoder-fatal.any.js +++ b/tests/wpt/web-platform-tests/encoding/textdecoder-fatal.any.js @@ -64,3 +64,17 @@ test(function() { assert_true(new TextDecoder('utf-8', {fatal: true}).fatal, 'The fatal attribute can be set using an option.'); }, 'The fatal attribute of TextDecoder'); + +test(() => { + const bytes = new Uint8Array([226, 153, 165]); + const decoder = new TextDecoder('utf-8', {fatal: true}); + assert_equals(decoder.decode(new DataView(bytes.buffer, 0, 3)), + '♥', + 'decode() should decode full sequence'); + assert_throws(new TypeError, + () => decoder.decode(new DataView(bytes.buffer, 0, 2)), + 'decode() should throw on incomplete sequence'); + assert_equals(decoder.decode(new DataView(bytes.buffer, 0, 3)), + '♥', + 'decode() should not throw on subsequent call'); +}, 'Error seen with fatal does not prevent future decodes'); diff --git a/tests/wpt/web-platform-tests/interfaces/input-events.idl b/tests/wpt/web-platform-tests/interfaces/input-events.idl index bd4024856b5..0086128e562 100644 --- a/tests/wpt/web-platform-tests/interfaces/input-events.idl +++ b/tests/wpt/web-platform-tests/interfaces/input-events.idl @@ -4,13 +4,11 @@ // Source: Input Events Level 1 (https://cdn.staticaly.com/gh/w3c/input-events/v1/index.html) partial interface InputEvent { - readonly attribute DOMString inputType; readonly attribute DataTransfer? dataTransfer; sequence<StaticRange> getTargetRanges(); }; partial dictionary InputEventInit { - DOMString inputType = ""; DataTransfer? dataTransfer = null; sequence<StaticRange> targetRanges = []; }; diff --git a/tests/wpt/web-platform-tests/interfaces/webxr.idl b/tests/wpt/web-platform-tests/interfaces/webxr.idl index 27ee27493aa..ea45aef9771 100644 --- a/tests/wpt/web-platform-tests/interfaces/webxr.idl +++ b/tests/wpt/web-platform-tests/interfaces/webxr.idl @@ -74,7 +74,7 @@ callback XRFrameRequestCallback = void (DOMHighResTimeStamp time, XRFrame frame) }; [SecureContext, Exposed=Window] interface XRSpace : EventTarget { - Float32Array? getTransformTo(XRSpace other); + XRRigidTransform? getTransformTo(XRSpace other); }; enum XRReferenceSpaceType { @@ -125,6 +125,7 @@ enum XREye { readonly attribute XREye eye; readonly attribute Float32Array projectionMatrix; readonly attribute Float32Array viewMatrix; + readonly attribute XRRigidTransform transform; }; [SecureContext, Exposed=Window] interface XRViewport { @@ -134,8 +135,25 @@ enum XREye { readonly attribute long height; }; +[SecureContext, Exposed=Window, + Constructor(optional DOMPointInit position, optional DOMPointInit orientation)] +interface XRRigidTransform { + readonly attribute DOMPointReadOnly position; + readonly attribute DOMPointReadOnly orientation; + readonly attribute Float32Array matrix; +}; + +[SecureContext, Exposed=Window, + Constructor(optional DOMPointInit origin, optional DOMPointInit direction), + Constructor(XRRigidTransform transform)] +interface XRRay { + readonly attribute DOMPointReadOnly origin; + readonly attribute DOMPointReadOnly direction; + readonly attribute Float32Array matrix; +}; + [SecureContext, Exposed=Window] interface XRViewerPose { - readonly attribute Float32Array poseMatrix; + readonly attribute XRRigidTransform transform; readonly attribute FrozenArray<XRView> views; }; @@ -158,17 +176,10 @@ interface XRInputSource { }; [SecureContext, Exposed=Window] -interface XRRay { - readonly attribute DOMPointReadOnly origin; - readonly attribute DOMPointReadOnly direction; - readonly attribute Float32Array transformMatrix; -}; - -[SecureContext, Exposed=Window] interface XRInputPose { readonly attribute boolean emulatedPosition; readonly attribute XRRay targetRay; - readonly attribute Float32Array? gripMatrix; + readonly attribute XRRigidTransform? gripTransform; }; [SecureContext, Exposed=Window] interface XRLayer {}; @@ -243,10 +254,10 @@ dictionary XRInputSourceEventInit : EventInit { [SecureContext, Exposed=Window, Constructor(DOMString type, XRReferenceSpaceEventInit eventInitDict)] interface XRReferenceSpaceEvent : Event { readonly attribute XRReferenceSpace referenceSpace; - readonly attribute Float32Array? transformMatrix; + readonly attribute XRRigidTransform? transform; }; dictionary XRReferenceSpaceEventInit : EventInit { required XRReferenceSpace referenceSpace; - Float32Array transformMatrix; + XRRigidTransform transform; }; diff --git a/tests/wpt/web-platform-tests/mediacapture-fromelement/capture.html b/tests/wpt/web-platform-tests/mediacapture-fromelement/capture.html index cf6168ba17f..74858737f13 100644 --- a/tests/wpt/web-platform-tests/mediacapture-fromelement/capture.html +++ b/tests/wpt/web-platform-tests/mediacapture-fromelement/capture.html @@ -9,25 +9,23 @@ // Run captureStream() on different videos, and assert data is flowing. -var makeAsyncTest = function(filename) { - async_test(function(test) { - var video = document.createElement('video'); +function makeAsyncTest(filename) { + promise_test(async test => { + const video = document.createElement('video'); video.src = "/media/" + filename; video.onerror = this.unreached_func("<video> error"); video.play(); - var stream = video.captureStream(); + const stream = video.captureStream(); - // onactive event is marked for deprecation (https://crbug.com/649328) - stream.onactive = this.step_func_done(function() { - var recorder = new MediaRecorder(stream); - recorder.ondataavailable = test.step_func_done(function(event) { - assert_true(event.data.size > 0, 'Recorded data size should be > 0'); - }); - recorder.start(0); - }); - }), "<video>.captureStream() and assert data flows."; -}; + await new Promise(r => stream.onaddtrack = r); + const recorder = new MediaRecorder(stream); + + recorder.start(0); + const {data} = await new Promise(r => recorder.ondataavailable = r); + assert_true(data.size > 0, 'Recorded data size should be > 0'); + }), "<video>.captureStream() and assert data flows."; +} generate_tests(makeAsyncTest, [ [ "video-only", "test-v-128k-320x240-24fps-8kfr.webm" ], diff --git a/tests/wpt/web-platform-tests/resource-timing/SyntheticResponse.py b/tests/wpt/web-platform-tests/resource-timing/SyntheticResponse.py index 19a788178a1..528ee239c17 100644 --- a/tests/wpt/web-platform-tests/resource-timing/SyntheticResponse.py +++ b/tests/wpt/web-platform-tests/resource-timing/SyntheticResponse.py @@ -33,7 +33,11 @@ def main(request, response): elif arg.startswith("status:"): code = int(urllib.unquote(arg[7:])) response.writer.write_status(code) - statusSent = True + if code // 100 == 1: + # Terminate informational 1XX responses with an empty line. + response.writer.end_headers() + else: + statusSent = True elif arg == "flush": response.writer.flush() diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-after-full-event.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-after-full-event.html new file mode 100644 index 00000000000..07897b5d28d --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-after-full-event.html @@ -0,0 +1,77 @@ +<!DOCTYPE HTML> +<html> +<head> +<meta charset="utf-8"> +<link rel="help" href="https://w3c.github.io/resource-timing/#dom-performance-setresourcetimingbuffersize"> +<title>This test validates that setResourceTimingBufferFull behaves appropriately when set to the current buffer level.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +let eventFired = false; +let loadRandomResource = () => { + return fetch(window.location.href + "?" + Math.random()); +} + +setup(() => { + // Get the browser into a consistent state. + clearBufferAndSetSize(100); +}); + +let loadResourcesToFillFutureBuffer = () => { + return new Promise(resolve => { + // Gather up 3 Resource Entries to kick off the rest of test behavior. + let resources = 0; + let observer = new PerformanceObserver(function(list) { + resources += list.getEntriesByType("resource").length; + if (resources !== 3) + return; + observer.disconnect(); + resolve(); + }); + observer.observe({entryTypes: ["resource"]}); + for (let i = 0; i < 3; ++i) + loadRandomResource(); + }); +}; + +let setBufferFullEventAndBufferSize = () => { + performance.setResourceTimingBufferSize(3); + performance.onresourcetimingbufferfull = function() { + eventFired = true; + performance.clearResourceTimings(); + }; +}; + +let clearAndAddAnotherEntryToBuffer = () => { + return new Promise(resolve => { + performance.clearResourceTimings(); + loadRandomResource().then(resolve); + }); +}; + +let testThatEntryWasAdded = () => { + return new Promise((resolve, reject) => { + let waitForIt = function() { + if (performance.getEntriesByType("resource").length) { + resolve(); + } else { + reject("After buffer full, entry never added to primary"); + } + } + step_timeout(waitForIt, 0); + }); +}; + +promise_test(async () => { + await loadResourcesToFillFutureBuffer(); + setBufferFullEventAndBufferSize(); + // Overflow the buffer. + await loadRandomResource(); + await waitForEventToFire(); + await clearAndAddAnotherEntryToBuffer(); + await testThatEntryWasAdded(); +}, "Test that entry was added to the buffer after a buffer full event"); +</script> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback-that-drop.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback-that-drop.html new file mode 100644 index 00000000000..d61d2af05c6 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback-that-drop.html @@ -0,0 +1,51 @@ +<!DOCTYPE HTML> +<html> +<head onload> +<meta charset="utf-8" /> +<title>This test validates that synchronously adding entries in onresourcetimingbufferfull callback results in these entries being properly handled.</title> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +const resource_timing_buffer_size = 1; + +setup(() => { + // Get the browser into a consistent state. + clearBufferAndSetSize(resource_timing_buffer_size); +}); + +let overflowTheBufferAndWaitForEvent = () => { + return new Promise(resolve => { + var add_entry = () => { + performance.setResourceTimingBufferSize(resource_timing_buffer_size + 1); + // The sync entry is added to the secondary buffer, so will be the last one there and eventually dropped. + xhrScript("resources/empty.js?xhr"); + resolve(); + } + performance.addEventListener('resourcetimingbufferfull', add_entry); + // This resource overflows the entry buffer, and goes into the secondary buffer. + appendScript('resources/empty_script.js'); + }); +}; + +let testThatBufferContainsTheRightResources = () => { + let entries = performance.getEntriesByType('resource'); + assert_equals(entries.length, 2, + 'Both entries should be stored in resource timing buffer since its increases size once it overflows.'); + assert_true(entries[0].name.includes('empty.js'), "empty.js is in the entries buffer"); + assert_true(entries[1].name.includes('empty_script.js'), "empty_script.js is in the entries buffer"); +}; + +promise_test(async () => { + await fillUpTheBufferWithSingleResource("resources/empty.js"); + await overflowTheBufferAndWaitForEvent(); + // TODO(yoav): Figure out why this task is needed + await waitForNextTask(); + testThatBufferContainsTheRightResources(); +}, "Test that entries synchronously added to the buffer during the callback are dropped"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback.html new file mode 100644 index 00000000000..b37c47b23fb --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback.html @@ -0,0 +1,50 @@ +<!DOCTYPE HTML> +<html> +<head onload> +<meta charset="utf-8" /> +<title>This test validates that synchronously adding entries in onresourcetimingbufferfull callback results in these entries being properly handled.</title> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +const resource_timing_buffer_size = 1; + +setup(() => { + // Get the browser into a consistent state. + clearBufferAndSetSize(resource_timing_buffer_size); +}); + +let overflowTheBufferAndWaitForEvent = () => { + return new Promise(resolve => { + var add_entry = () => { + performance.setResourceTimingBufferSize(resource_timing_buffer_size + 2); + xhrScript("resources/empty.js?xhr"); + resolve(); + } + performance.addEventListener('resourcetimingbufferfull', add_entry); + // This resource overflows the entry buffer, and goes into the secondary buffer. + appendScript('resources/empty_script.js'); + }); +}; + +let testThatBufferContainsTheRightResources = () => { + let entries = performance.getEntriesByType('resource'); + assert_equals(entries.length, 3, + 'All entries should be stored in resource timing buffer since its increases size once it overflows.'); + assert_true(entries[0].name.includes('empty.js'), "empty.js is in the entries buffer"); + assert_true(entries[1].name.includes('empty_script.js'), "empty_script.js is in the entries buffer"); + assert_true(entries[2].name.includes('empty.js?xhr'), "empty.js?xhr is in the entries buffer"); +}; + +promise_test(async () => { + await fillUpTheBufferWithSingleResource("resources/empty.js"); + await overflowTheBufferAndWaitForEvent(); + await waitForNextTask(); + testThatBufferContainsTheRightResources(); +}, "Test that entries synchronously added to the buffer during the callback don't get dropped if the buffer is increased"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-then-clear.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-then-clear.html new file mode 100644 index 00000000000..710852ced55 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-add-then-clear.html @@ -0,0 +1,49 @@ +<!DOCTYPE HTML> +<html> +<head onload> +<meta charset="utf-8" /> +<title>This test validates that synchronously adding entries in onresourcetimingbufferfull callback results in these entries being properly handled.</title> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +const resource_timing_buffer_size = 1; + +setup(() => { + // Get the browser into a consistent state. + clearBufferAndSetSize(resource_timing_buffer_size); + performance.addEventListener('resourcetimingbufferfull', () => { assert_unreached("resourcetimingbufferfull should not fire")}); +}); + +let overflowTheBuffer = () => { + // These resources overflow the entry buffer, and go into the secondary buffer. + xhrScript('resources/empty.js?xhr2'); + xhrScript('resources/empty.js?xhr3'); + performance.clearResourceTimings(); + performance.setResourceTimingBufferSize(3); + xhrScript('resources/empty.js?xhr4'); + window.entriesAfterAddition = performance.getEntriesByType('resource'); +}; + +let testThatBufferContainsTheRightResources = () => { + let entries = performance.getEntriesByType('resource'); + assert_equals(entries.length, 3, + 'the last 3 resources should be in the buffer, since the first one was cleared'); + assert_true(entries[0].name.includes('empty.js?xhr2'), "empty.js?xhr2 is in the entries buffer"); + assert_true(entries[1].name.includes('empty.js?xhr3'), "empty.js?xhr3 is in the entries buffer"); + assert_true(entries[2].name.includes('empty.js?xhr4'), "empty.js?xhr4 is in the entries buffer"); + assert_equals(entriesAfterAddition.length, 0, "No entries should have been added to the primary buffer before the task to 'fire a buffer full event'."); +}; + +promise_test(async () => { + await fillUpTheBufferWithSingleResource("resources/empty.js"); + overflowTheBuffer(); + await waitForNextTask(); + testThatBufferContainsTheRightResources(); +}, "Test that if the buffer is cleared after entries were added to the secondary buffer, those entries make it into the primary one"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-decrease-buffer-during-callback.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-decrease-buffer-during-callback.html new file mode 100644 index 00000000000..e6de33ded1b --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-decrease-buffer-during-callback.html @@ -0,0 +1,49 @@ +<!DOCTYPE HTML> +<html> +<head onload> +<meta charset="utf-8" /> +<title>This test validates that decreasing the buffer size in onresourcetimingbufferfull callback does not result in extra entries being dropped.</title> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +const resource_timing_buffer_size = 2; +let eventFired = false; +setup(() => { + // Get the browser into a consistent state. + clearBufferAndSetSize(resource_timing_buffer_size); + let resize = () => { + performance.setResourceTimingBufferSize(resource_timing_buffer_size - 1); + eventFired = true; + } + performance.addEventListener('resourcetimingbufferfull', resize); +}); + +let overflowTheBuffer = () => { + return new Promise(resolve => { + // This resource overflows the entry buffer, and goes into the secondary buffer. + // Since the buffer size doesn't increase, it will eventually be dropped. + appendScript('resources/empty_script.js', resolve); + }); +}; + +let testThatBufferContainsTheRightResources = () => { + let entries = performance.getEntriesByType('resource'); + assert_equals(entries.length, 2, + 'Both entries should be stored in resource timing buffer since it decreased its limit only after it overflowed.'); + assert_true(entries[0].name.includes('empty.js'), "empty.js is in the entries buffer"); + assert_true(entries[1].name.includes('empty.js?second'), "empty.js?second is in the entries buffer"); +}; + +promise_test(async () => { + await fillUpTheBufferWithTwoResources('resources/empty.js'); + await overflowTheBuffer(); + await waitForEventToFire(); + testThatBufferContainsTheRightResources(); +}, "Test that decreasing the buffer limit during the callback does not drop entries"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-increase-buffer-during-callback.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-increase-buffer-during-callback.html new file mode 100644 index 00000000000..b46d2d65690 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-increase-buffer-during-callback.html @@ -0,0 +1,49 @@ +<!DOCTYPE HTML> +<html> +<head onload> +<meta charset="utf-8" /> +<title>This test validates increasing the buffer size in onresourcetimingbufferfull callback of resource timing.</title> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +const resource_timing_buffer_size = 1; +let eventFired = false; + +setup(() => { + // Get the browser into a consistent state. + clearBufferAndSetSize(resource_timing_buffer_size); + var increase = function() { + performance.setResourceTimingBufferSize(resource_timing_buffer_size * 2); + eventFired = true; + } + performance.addEventListener('resourcetimingbufferfull', increase); +}); + +let overflowTheBuffer = () => { + return new Promise(resolve => { + // This resource overflows the entry buffer, and goes into the secondary buffer. + appendScript('resources/empty_script.js', resolve); + }); +}; + +let testThatBufferContainsTheRightResources = () => { + let entries = performance.getEntriesByType('resource'); + assert_equals(entries.length, 2, + 'Both entries should be stored in resource timing buffer since its increases size once it overflows.'); + assert_true(entries[0].name.includes('empty.js'), "empty.js is in the entries buffer"); + assert_true(entries[1].name.includes('empty_script.js'), "empty_script.js is in the entries buffer"); +}; + +promise_test(async () => { + await fillUpTheBufferWithSingleResource("resources/empty.js"); + await overflowTheBuffer(); + await waitForEventToFire(); + testThatBufferContainsTheRightResources(); +}, "Test that increasing the buffer during the callback is enough for entries not to be dropped"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-inspect-buffer-during-callback.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-inspect-buffer-during-callback.html new file mode 100644 index 00000000000..d46d4692a55 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-inspect-buffer-during-callback.html @@ -0,0 +1,56 @@ +<!DOCTYPE HTML> +<html> +<head onload> +<meta charset="utf-8" /> +<title>This test validates the buffer doesn't contain more entries than it should inside onresourcetimingbufferfull callback.</title> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +let resource_timing_buffer_size = 2; +let eventFired = false; + +setup(() => { + clearBufferAndSetSize(resource_timing_buffer_size); + var resize = function() { + assert_equals(performance.getEntriesByType("resource").length, resource_timing_buffer_size, "resource timing buffer in resourcetimingbufferfull is the size of the limit"); + ++resource_timing_buffer_size; + performance.setResourceTimingBufferSize(resource_timing_buffer_size); + xhrScript("resources/empty.js?xhr"); + assert_equals(performance.getEntriesByType("resource").length, resource_timing_buffer_size - 1, "A sync request was not added to the primary buffer just yet, because it is full"); + ++resource_timing_buffer_size; + performance.setResourceTimingBufferSize(resource_timing_buffer_size); + eventFired = true; + } + performance.addEventListener('resourcetimingbufferfull', resize); +}); + +let overflowTheBuffer = () => { + return new Promise(resolve => { + // This resource overflows the entry buffer, and goes into the secondary buffer. + appendScript('resources/empty_script.js', resolve); + }); +}; + +let testThatBufferContainsTheRightResources = () => { + let entries = performance.getEntriesByType('resource'); + assert_equals(entries.length, resource_timing_buffer_size, + 'All 4 entries should be stored in resource timing buffer.'); + assert_true(entries[0].name.includes('empty.js'), "empty.js is in the entries buffer"); + assert_true(entries[1].name.includes('empty.js?second'), "empty.js?second is in the entries buffer"); + assert_true(entries[2].name.includes('empty_script.js'), "empty_script.js is in the entries buffer"); + assert_true(entries[3].name.includes('empty.js?xhr'), "empty.js?xhr is in the entries buffer"); +}; + +promise_test(async () => { + await fillUpTheBufferWithTwoResources('resources/empty.js'); + await overflowTheBuffer(); + await waitForEventToFire(); + testThatBufferContainsTheRightResources(); +}, "Test that entries in the secondary buffer are not exposed during the callback and before they are copied to the primary buffer"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-set-to-current-buffer.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-set-to-current-buffer.html new file mode 100644 index 00000000000..1e5486ec2cd --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-set-to-current-buffer.html @@ -0,0 +1,82 @@ +<!DOCTYPE HTML> +<html> +<head> +<meta charset="utf-8"> +<link rel="help" href="https://w3c.github.io/resource-timing/#dom-performance-setresourcetimingbuffersize"> +<title>This test validates that setResourceTimingBufferFull behaves appropriately when set to the current buffer level.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +let eventFired = false; + +let loadRandomResource = () => { + return fetch(window.location.href + "?" + Math.random()); +}; + +setup(() => { + // Get the browser into a consistent state. + clearBufferAndSetSize(100); + window.result = ""; +}); + +let fillUpTheBuffer = () => { + return new Promise(resolve => { + // Gather up 3 Resource Entries to kick off the rest of test behavior. + let resources = 0; + let observer = new PerformanceObserver(list => { + resources += list.getEntriesByType("resource").length; + if (resources !== 3) + return; + observer.disconnect(); + resolve(); + }); + observer.observe({entryTypes: ["resource"]}); + for (let i = 0; i < 3; ++i) + loadRandomResource(); + }); +}; + +let setBufferSize = () => { + performance.onresourcetimingbufferfull = () => { + eventFired = true; + window.result += "Event Fired with " + performance.getEntriesByType("resource").length + " entries. "; + performance.clearResourceTimings(); + }; + window.result += "before setLimit(3). "; + performance.setResourceTimingBufferSize(3); + window.result += "after setLimit(3). "; +}; + +let overflowTheBuffer = () => { + return new Promise(resolve => { + loadRandomResource().then(() => { + window.result += "after loading 4th resource. "; + resolve(); + }); + }); +}; + +let checkResult = () => { + return new Promise((resolve, reject) => { + if (window.result != "before setLimit(3). after setLimit(3). after loading 4th resource. Event Fired with 3 entries. ") { + reject("Non matching value: " + window.result); + } + let entries = performance.getEntriesByType("resource"); + if (entries.length != 1) { + reject("Number of entries in resource timing buffer is unexpected: " + entries.length); + } + resolve(); + }); +}; + +promise_test(async () => { + await fillUpTheBuffer(); + setBufferSize(); + await overflowTheBuffer(); + await waitForEventToFire(); + await checkResult(); +}, "Test that entries added and event firing happened in the right sequence"); +</script> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-store-and-clear-during-callback.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-store-and-clear-during-callback.html new file mode 100644 index 00000000000..f0791cba6b3 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-store-and-clear-during-callback.html @@ -0,0 +1,55 @@ +<!DOCTYPE HTML> +<html> +<head onload> +<meta charset="utf-8" /> +<title>This test validates the behavior of read and clear operation in onresourcetimingbufferfull callback of resource timing.</title> +<link rel="author" title="Intel" href="http://www.intel.com/" /> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +const resource_timing_buffer_size = 1; +let global_buffer = []; +let eventFired = false; + +setup(() => { + clearBufferAndSetSize(resource_timing_buffer_size); + let store_and_clear = function() { + const entryList = performance.getEntriesByType('resource'); + entryList.forEach(function (entry) { + global_buffer.push(entry); + }); + performance.clearResourceTimings(); + eventFired = true; + } + performance.addEventListener('resourcetimingbufferfull', store_and_clear); +}); + +let overflowTheBuffer = () => { + return new Promise(resolve => { + // This resource overflows the entry buffer, and goes into the secondary buffer. + appendScript('resources/empty_script.js', resolve); + }); +}; + +let testThatBufferContainsTheRightResources = () => { + let entries = performance.getEntriesByType('resource'); + assert_equals(entries.length, 1, + "Only the last entry should be stored in resource timing buffer since it's cleared once it overflows."); + assert_equals(global_buffer.length, 1, '1 resource timing entry should be moved to global buffer.'); + assert_true(global_buffer[0].name.includes('empty.js'), "empty.js is in the global buffer"); + assert_true(entries[0].name.includes('empty_script.js'), "empty_script.js is in the entries buffer"); +}; + +promise_test(async () => { + await fillUpTheBufferWithSingleResource("resources/empty.js"); + await overflowTheBuffer(); + await waitForEventToFire(); + testThatBufferContainsTheRightResources(); +}, "Test that entries overflowing the buffer trigger the buffer full event, can be stored, and find themselves in the primary buffer after it's cleared."); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-then-increased.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-then-increased.html new file mode 100644 index 00000000000..2265077fc15 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-then-increased.html @@ -0,0 +1,44 @@ +<!DOCTYPE HTML> +<html> +<head onload> +<meta charset="utf-8" /> +<title>This test validates that synchronously adding entries in onresourcetimingbufferfull callback results in these entries being properly handled.</title> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +const resource_timing_buffer_size = 1; + +setup(() => { + clearBufferAndSetSize(resource_timing_buffer_size); + performance.addEventListener('resourcetimingbufferfull', () => { assert_unreached("resourcetimingbufferfull should not fire"); }); +}); + +let overflowTheBuffer = () => { + // These resources overflow the entry buffer, and go into the secondary buffer. + xhrScript('resources/empty.js?xhr2'); + xhrScript('resources/empty.js?xhr3'); + performance.setResourceTimingBufferSize(3); +}; + +let testThatBufferContainsTheRightResources = () => { + let entries = performance.getEntriesByType('resource'); + assert_equals(entries.length, 3, + 'All resources should be in the buffer, since its size was increased'); + assert_true(entries[0].name.includes('empty.js'), "empty.js?xhr2 is in the entries buffer"); + assert_true(entries[1].name.includes('empty.js?xhr2'), "empty.js?xhr3 is in the entries buffer"); + assert_true(entries[2].name.includes('empty.js?xhr3'), "empty.js?xhr3 is in the entries buffer"); +}; + +promise_test(async () => { + await fillUpTheBufferWithSingleResource("resources/empty.js"); + overflowTheBuffer(); + await waitForNextTask(); + testThatBufferContainsTheRightResources(); +}, "Test that overflowing the buffer and immediately increasing its limit does not trigger the resourcetimingbufferfull event"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/buffer-full-when-populate-entries.html b/tests/wpt/web-platform-tests/resource-timing/buffer-full-when-populate-entries.html new file mode 100644 index 00000000000..00d2ae0e442 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/buffer-full-when-populate-entries.html @@ -0,0 +1,46 @@ +<!DOCTYPE HTML> +<html> +<head> +<meta charset="utf-8" /> +<link rel="author" title="Intel" href="http://www.intel.com/" /> +<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> +<title>This test validates the functionality of onresourcetimingbufferfull in resource timing.</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/buffer-full-utilities.js"></script> +</head> +<body> +<script> +const resource_timing_buffer_size = 2; +let bufferFullCount = 0; +let eventFired = false; +setup(() => { + clearBufferAndSetSize(resource_timing_buffer_size); + performance.addEventListener('resourcetimingbufferfull', e => { + assert_equals(e.bubbles, false, "Event bubbles attribute is false"); + bufferFullCount++; + eventFired = true; + }); +}); + +let overflowTheBuffer = () => { + return new Promise(resolve => { + // This resource overflows the entry buffer, and goes into the secondary buffer. + appendScript('resources/empty_script.js', resolve); + }); +}; + +let testThatBufferContainsTheRightResources = () => { + assert_equals(performance.getEntriesByType('resource').length, resource_timing_buffer_size, 'There should only be |bufferSize| resource entries.'); + assert_equals(bufferFullCount, 1, 'onresourcetimingbufferfull should have been invoked once.'); +}; + +promise_test(async () => { + await fillUpTheBufferWithTwoResources('resources/empty.js'); + await overflowTheBuffer(); + await waitForEventToFire(); + testThatBufferContainsTheRightResources(); +}, "Test that a buffer full event does not bubble and that resourcetimingbufferfull is called only once per overflow"); +</script> +</body> +</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/resource-timing.js b/tests/wpt/web-platform-tests/resource-timing/resource-timing.js index 58bf19b52bf..8d97b2f2687 100644 --- a/tests/wpt/web-platform-tests/resource-timing/resource-timing.js +++ b/tests/wpt/web-platform-tests/resource-timing/resource-timing.js @@ -227,7 +227,7 @@ window.onload = // Ensure that responseStart only measures the time up to the first few // bytes of the header response. This is tested by writing an HTTP 1.1 // status line, followed by a flush, then a pause before the end of the - // headers. The tests makes sure that responseStart is not delayed by + // headers. The test makes sure that responseStart is not delayed by // this pause. [ { initiator: "iframe", response: "(done)", mime: mimeHtml }, @@ -248,12 +248,13 @@ window.onload = + "&mime:" + template.mime + "&send:" + encodeURIComponent(template.response)), function (initiator, entry) { - // Test that the delay between 'requestStart' and - // 'responseStart' does not include the added delay - // post-statusline. - assert_less_than( - entry.responseStart - entry.requestStart, - serverStepDelay, + // Test that the delay between 'responseStart' and + // 'responseEnd' includes the delay, which implies + // that 'responseStart' was measured at the time of + // status line receipt. + assert_greater_than_equal( + entry.responseEnd, + entry.responseStart + serverStepDelay, "Delay after HTTP/1.1 status should not affect 'responseStart'."); test.done(); @@ -262,6 +263,47 @@ window.onload = }); }); + // Test that responseStart uses the timing of 1XX responses by + // synthesizing a delay between a 100 and 200 status, and verifying that + // this delay is included before responseEnd. If the delay is not + // included, this implies that the 200 status line was (incorrectly) used + // for responseStart timing, despite the 100 response arriving earlier. + // + // Source: "In the case where more than one response is available for a + // request, due to an Informational 1xx response, the reported + // responseStart value is that of the first response to the last + // request." + [ + { initiator: "iframe", response: "(done)", mime: mimeHtml }, + { initiator: "xmlhttprequest", response: "(done)", mime: mimeText }, + { initiator: "script", response: '"";', mime: mimeScript }, + { initiator: "link", response: ".unused{}", mime: mimeCss }, + ] + .forEach(function (template) { + testCases.push({ + description: "'" + template.initiator + " responseStart uses 1XX (first) response timings'", + test: function (test) { + initiateFetch( + test, + template.initiator, + getSyntheticUrl("status:100" + + "&flush" + + "&" + serverStepDelay + "ms" + + "&status:200" + + "&mime:" + template.mime + + "&send:" + encodeURIComponent(template.response)), + function (initiator, entry) { + assert_greater_than_equal( + entry.responseEnd, + entry.responseStart + serverStepDelay, + "HTTP/1.1 1XX (first) response should determine 'responseStart' timing."); + + test.done(); + }); + } + }); + }); + // Function to run the next case in the queue. var currentTestIndex = -1; function runNextCase() { diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_when_populate_entries.html b/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_when_populate_entries.html deleted file mode 100644 index 3e62b199a32..00000000000 --- a/tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_when_populate_entries.html +++ /dev/null @@ -1,41 +0,0 @@ -<!DOCTYPE HTML> -<html> -<head> -<meta charset="utf-8" /> -<link rel="author" title="Intel" href="http://www.intel.com/" /> -<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> -<title>This test validates the functionality of onresourcetimingbufferfull in resource timing.</title> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/webperftestharness.js"></script> -<script src="resources/webperftestharnessextension.js"></script> -</head> -<body onload=onload_test()> -<script> - const context = new PerformanceContext(performance); - const bufferSize = 5; - context.setResourceTimingBufferSize(bufferSize); - let bufferFullCount = 0; - function buffer_full_callback() { - bufferFullCount++; - } - context.registerResourceTimingBufferFullCallback(buffer_full_callback); - // Scripts appended in JS to ensure setResourceTimingBufferSize is called before. - function appendScript(src) { - const script = document.createElement('script'); - script.type = 'text/javascript'; - script.src = src; - document.body.appendChild(script); - } - appendScript('resources/empty.js'); - appendScript('resources/empty_script.js'); - appendScript('resources/resource_timing_test0.js'); - setup({ explicit_done: true }); - function onload_test() { - test_equals(context.getEntriesByType('resource').length, bufferSize, 'There should only be |bufferSize| resource entries.'); - test_equals(bufferFullCount, 1, 'onresourcetimingbufferfull should have been invoked once buffer is full.'); - done(); - } -</script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/resource_timing_store_and_clear_during_callback.html b/tests/wpt/web-platform-tests/resource-timing/resource_timing_store_and_clear_during_callback.html deleted file mode 100644 index 218fc0c2bcd..00000000000 --- a/tests/wpt/web-platform-tests/resource-timing/resource_timing_store_and_clear_during_callback.html +++ /dev/null @@ -1,56 +0,0 @@ -<!DOCTYPE HTML> -<html> -<head onload> -<meta charset="utf-8" /> -<title>This test validates the behavior of read and clear operation in onresourcetimingbufferfull callback of resource timing.</title> -<link rel="author" title="Intel" href="http://www.intel.com/" /> -<link rel="help" href="http://www.w3.org/TR/resource-timing/#performanceresourcetiming"/> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script src="resources/webperftestharness.js"></script> -<script src="resources/webperftestharnessextension.js"></script> -</head> -<body onload=onload_test()> -<script> - const context = new PerformanceContext(performance); - const resource_timing_buffer_size = 1; - let global_buffer = []; - function store_and_clear() { - const entryList = context.getEntriesByType('resource'); - entryList.forEach(function (entry) { - global_buffer.push(entry); - }); - context.clearResourceTimings(); - } - context.registerResourceTimingBufferFullCallback(store_and_clear); - context.setResourceTimingBufferSize(resource_timing_buffer_size); - // Scripts appended in JS to ensure setResourceTimingBufferSize is called before. - function appendScript(src) { - const script = document.createElement('script'); - script.type = 'text/javascript'; - script.src = src; - document.body.appendChild(script); - } - appendScript('resources/empty.js'); - appendScript('resources/empty_script.js'); - appendScript('resources/resource_timing_test0.js'); - setup({ explicit_done: true }); - function onload_test() { - test_equals(context.getEntriesByType('resource').length, 0, 'No entry should be stored in resource timing buffer since its cleared once an item arrived.'); - // The entry for empty.js must not be in the global buffer, but all others should be. - test_equals(global_buffer.length, 6, '6 resource timing entries should be moved to global buffer.'); - const index = window.location.pathname.lastIndexOf('resource-timing'); - const pathname = window.location.pathname.substring(0, index); - let expected_entries = {}; - expected_entries[pathname + 'resources/testharness.js'] = 'script'; - expected_entries[pathname + 'resources/testharnessreport.js'] = 'script'; - expected_entries[pathname + 'resource-timing/resources/webperftestharness.js'] = 'script'; - expected_entries[pathname + 'resource-timing/resources/webperftestharnessextension.js'] = 'script'; - expected_entries[pathname + 'resource-timing/resources/empty_script.js'] = 'script'; - expected_entries[pathname + 'resource-timing/resources/resource_timing_test0.js'] = 'script'; - test_resource_entries(global_buffer, expected_entries); - done(); - } -</script> -</body> -</html> diff --git a/tests/wpt/web-platform-tests/resource-timing/resources/buffer-full-utilities.js b/tests/wpt/web-platform-tests/resource-timing/resources/buffer-full-utilities.js new file mode 100644 index 00000000000..b143da7b325 --- /dev/null +++ b/tests/wpt/web-platform-tests/resource-timing/resources/buffer-full-utilities.js @@ -0,0 +1,58 @@ +let appendScript = (src, resolve) => { + const script = document.createElement('script'); + script.type = 'text/javascript'; + script.src = src; + script.onload = resolve; + document.body.appendChild(script); +} + +let xhrScript = src => { + var xhr = new XMLHttpRequest(); + xhr.open("GET", src, false); + xhr.send(null); +} + +let waitForNextTask = () => { + return new Promise(resolve => { + step_timeout(resolve, 0); + }); +}; + +let waitForEventToFire = () => { + return new Promise(resolve => { + let waitForIt = function() { + if (eventFired) { + eventFired = false; + resolve(); + } else { + step_timeout(waitForIt, 0); + } + } + step_timeout(waitForIt, 0); + }); +}; + +let clearBufferAndSetSize = size => { + performance.clearResourceTimings(); + performance.setResourceTimingBufferSize(size); +} + +let fillUpTheBufferWithSingleResource = src => { + return new Promise(resolve => { + // This resource gets buffered in the resource timing entry buffer. + appendScript(src, resolve); + }); +}; + +let loadResource = src => { + return new Promise(resolve => { + appendScript(src, resolve); + }); +}; + +let fillUpTheBufferWithTwoResources = async src => { + // These resources get buffered in the resource timing entry buffer. + await loadResource(src); + await loadResource(src + '?second'); +}; + diff --git a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/performance-timeline-worker.js b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/performance-timeline-worker.js index a752b436524..cac327c34bf 100644 --- a/tests/wpt/web-platform-tests/service-workers/service-worker/resources/performance-timeline-worker.js +++ b/tests/wpt/web-platform-tests/service-workers/service-worker/resources/performance-timeline-worker.js @@ -44,19 +44,13 @@ promise_test(function(test) { assert_greater_than(entry.startTime, 0); assert_greater_than(entry.responseEnd, entry.startTime); } - return Promise.race([ - new Promise(function(resolve) { + return new Promise(function(resolve) { performance.onresourcetimingbufferfull = _ => { resolve('bufferfull'); } performance.setResourceTimingBufferSize(expectedResources.length); - }), - - // Race the bufferfull event against another fetch. We should get the - // event before this completes. This allows us to detect a failure - // to dispatch the event without timing out the entire test. - fetch('dummy.txt').then(resp => resp.text()) - ]); + fetch('dummy.txt'); + }); }) .then(function(result) { assert_equals(result, 'bufferfull'); diff --git a/tests/wpt/web-platform-tests/tools/wpt/requirements.txt b/tests/wpt/web-platform-tests/tools/wpt/requirements.txt index 5610e90053f..da3fa4c34e3 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/requirements.txt +++ b/tests/wpt/web-platform-tests/tools/wpt/requirements.txt @@ -1 +1 @@ -requests==2.20.1 +requests==2.21.0 diff --git a/tests/wpt/web-platform-tests/tools/wpt/run.py b/tests/wpt/web-platform-tests/tools/wpt/run.py index ea606950441..00984af6c7c 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/run.py +++ b/tests/wpt/web-platform-tests/tools/wpt/run.py @@ -496,8 +496,12 @@ def setup_wptrunner(venv, prompt=True, install_browser=False, **kwargs): affected_revish = kwargs.pop("affected", None) if affected_revish is not None: + # TODO: Consolidate with `./wpt tests-affected --ignore-rules`: + # https://github.com/web-platform-tests/wpt/issues/14560 files_changed, _ = testfiles.files_changed( - affected_revish, include_uncommitted=True, include_new=True) + affected_revish, + ignore_rules=["resources/testharness*"], + include_uncommitted=True, include_new=True) # TODO: Perhaps use wptrunner.testloader.ManifestLoader here # and remove the manifest-related code from testfiles. # https://github.com/web-platform-tests/wpt/issues/14421 diff --git a/tests/wpt/web-platform-tests/tools/wpt/testfiles.py b/tests/wpt/web-platform-tests/tools/wpt/testfiles.py index c25ca2d43e2..2b20b07694b 100644 --- a/tests/wpt/web-platform-tests/tools/wpt/testfiles.py +++ b/tests/wpt/web-platform-tests/tools/wpt/testfiles.py @@ -309,6 +309,8 @@ def get_parser(): parser = argparse.ArgumentParser() parser.add_argument("revish", default=None, help="Commits to consider. Defaults to the " "commits on the current branch", nargs="?") + # TODO: Consolidate with `./wpt run --affected`: + # https://github.com/web-platform-tests/wpt/issues/14560 parser.add_argument("--ignore-rules", nargs="*", type=set, default=set(["resources/testharness*"]), help="Rules for paths to exclude from lists of changes. Rules are paths " diff --git a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py index 0eca40925c2..78c22b909ac 100644 --- a/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py +++ b/tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py @@ -2,16 +2,12 @@ from .base import Browser, ExecutorBrowser, require_arg from .base import get_timeout_multiplier # noqa: F401 from ..webdriver_server import InternetExplorerDriverServer from ..executors import executor_kwargs as base_executor_kwargs -from ..executors.executorselenium import (SeleniumTestharnessExecutor, # noqa: F401 - SeleniumRefTestExecutor) # noqa: F401 from ..executors.executorinternetexplorer import InternetExplorerDriverWdspecExecutor # noqa: F401 __wptrunner__ = {"product": "ie", "check_args": "check_args", "browser": "InternetExplorerBrowser", - "executor": {"testharness": "SeleniumTestharnessExecutor", - "reftest": "SeleniumRefTestExecutor", - "wdspec": "InternetExplorerDriverWdspecExecutor"}, + "executor": {"wdspec": "InternetExplorerDriverWdspecExecutor"}, "browser_kwargs": "browser_kwargs", "executor_kwargs": "executor_kwargs", "env_extras": "env_extras", diff --git a/tests/wpt/web-platform-tests/workers/importscripts_mime.tentative.any.js b/tests/wpt/web-platform-tests/workers/importscripts_mime.any.js index 04c63a3a5f6..04c63a3a5f6 100644 --- a/tests/wpt/web-platform-tests/workers/importscripts_mime.tentative.any.js +++ b/tests/wpt/web-platform-tests/workers/importscripts_mime.any.js |