diff options
149 files changed, 5249 insertions, 3112 deletions
diff --git a/tests/wpt/meta-legacy-layout/css/css-transitions/starting-style-size-container.html.ini b/tests/wpt/meta-legacy-layout/css/css-transitions/starting-style-size-container.html.ini index bbefc2ffbf3..2a9edeb61d4 100644 --- a/tests/wpt/meta-legacy-layout/css/css-transitions/starting-style-size-container.html.ini +++ b/tests/wpt/meta-legacy-layout/css/css-transitions/starting-style-size-container.html.ini @@ -1,3 +1,6 @@ [starting-style-size-container.html] [Triggered transition from first style update based on up-to-date container query] expected: FAIL + + [Triggered transition from the display change inside the up-to-date container query] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/focus-preserve.html.ini b/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/focus-preserve.html.ini new file mode 100644 index 00000000000..f51e042347f --- /dev/null +++ b/tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/focus-preserve.html.ini @@ -0,0 +1,12 @@ +[focus-preserve.html] + [when reparenting an element, don't automatically reset the document focus] + expected: FAIL + + [when reparenting a focused element into an inert parent, reset the document focus] + expected: FAIL + + [when reparenting a focused element into a hidden parent, reset the document focus] + expected: FAIL + + [when reparenting an ancestor of an focused element into a hidden parent, reset the document focus] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini index 5aef7ce66ce..324db3d9b35 100644 --- a/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini +++ b/tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini @@ -10,6 +10,3 @@ [load event does not fire on window.open('about:blank?foo')] expected: FAIL - - [load event does not fire on window.open('about:blank')] - expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini b/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini new file mode 100644 index 00000000000..5d17a8e9419 --- /dev/null +++ b/tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini @@ -0,0 +1,3 @@ +[traverse_the_history_2.html] + [Multiple history traversals, last would be aborted] + expected: FAIL diff --git a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini index f9138fb999a..bc56655a13c 100644 --- a/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini +++ b/tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini @@ -2,4 +2,4 @@ type: testharness expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: NOTRUN + expected: FAIL diff --git a/tests/wpt/meta/MANIFEST.json b/tests/wpt/meta/MANIFEST.json index e145c0f41df..f2cded0cfc7 100644 --- a/tests/wpt/meta/MANIFEST.json +++ b/tests/wpt/meta/MANIFEST.json @@ -5338,6 +5338,17 @@ {} ] ], + "moveBefore": { + "tentative": { + "chrome-338071841-crash.html": [ + "26adfb1cbfae116e0a88a7ff2cbf24cdb9a5e7f7", + [ + null, + {} + ] + ] + } + }, "node-appendchild-crash.html": [ "245de87f2d36ed39eec30cd627aa3c21bd4ff115", [ @@ -24249,6 +24260,15 @@ } }, "pointerevents": { + "deviceproperties": { + "unique-id-is-unique-manual.tentative.html": [ + "55db05353f5a2f5d543b2c0ba2caf1f066537341", + [ + null, + {} + ] + ] + }, "html": { "pointerevent_drag_interaction-manual.html": [ "1a80d239b8930a74cd5e764c6307980082e6766b", @@ -31880,6 +31900,32 @@ {} ] ], + "fixedpos-009-print.html": [ + "803a077c0a7148ac157612c4b3633585eb947aab", + [ + null, + [ + [ + "/css/css-page/fixedpos-009-print-ref.html", + "==" + ] + ], + {} + ] + ], + "fixedpos-010-print.html": [ + "cdd50828d865d6cb7e7fe71326eaa90fa1c88ac2", + [ + null, + [ + [ + "/css/css-page/fixedpos-010-print-ref.html", + "==" + ] + ], + {} + ] + ], "fixedpos-with-abspos-with-link-print.html": [ "057ddc91460264bbef9bb36fa7be8d89f6d6458e", [ @@ -121461,19 +121507,6 @@ {} ] ], - "anchor-scroll-overflow-hidden.html": [ - "b57e39956bbbb3f268b25d3dabedb6c97ef22dd0", - [ - null, - [ - [ - "/css/css-anchor-position/anchor-scroll-overflow-hidden-ref.html", - "==" - ] - ], - {} - ] - ], "anchor-scroll-position-try-012.html": [ "7c0b381999d303dcefd8dccbdcad60d9c4b1d29d", [ @@ -172656,6 +172689,19 @@ {} ] ], + "min-size-auto-overflow-clip.html": [ + "ec3bc5f5932a2c47796063cafff5162dc4f01284", + [ + null, + [ + [ + "/css/css-flexbox/min-size-auto-overflow-clip-ref.html", + "==" + ] + ], + {} + ] + ], "multiline-column-max-height.html": [ "5a165233f855d10de870d110a2d9ed8c0abc147b", [ @@ -186114,6 +186160,19 @@ } } }, + "min-size-auto-overflow-clip.html": [ + "3dfd2c18f51834d476f6501cddfa179fac07b4b1", + [ + null, + [ + [ + "/css/css-grid/min-size-auto-overflow-clip-ref.html", + "==" + ] + ], + {} + ] + ], "nested-grid-item-block-size-001.html": [ "e2892ecc3c656243f26e5512be9ac01e2cd4de36", [ @@ -189698,6 +189757,35 @@ } ] ], + "repeating-gradient-hsl-and-oklch.html": [ + "82e65d1dac7fe268fa6b91a76b47d405bb0d95ea", + [ + null, + [ + [ + "/css/css-images/gradient/repeating-gradient-hsl-and-oklch-ref.html", + "==" + ] + ], + { + "fuzzy": [ + [ + null, + [ + [ + 0, + 1 + ], + [ + 0, + 2000 + ] + ] + ] + ] + } + ] + ], "srgb-gradient.html": [ "4cdb0f17b7e10f4485ed7fb62bdcaa6a2bb16777", [ @@ -286472,6 +286560,19 @@ } ] ], + "new-content-ancestor-clipped.html": [ + "69a8de5f527a459f2a85b562dee46b8298bbb65e", + [ + null, + [ + [ + "/css/css-view-transitions/new-content-ancestor-clipped-ref.html", + "==" + ] + ], + {} + ] + ], "new-content-captures-clip-path.html": [ "19af2493d05ed1e0d4fd82a01dcb8f5dc304a731", [ @@ -287553,8 +287654,8 @@ {} ] ], - "pseudo-with-classes-match-wildard.html": [ - "13490d58786b296d306425fc632da73fda86c763", + "pseudo-with-classes-match-wildcard-no-star.html": [ + "2dc7d00cd18e55405974de169390545f820f5c10", [ null, [ @@ -287566,8 +287667,8 @@ {} ] ], - "pseudo-with-classes-match-wildcard-no-star.html": [ - "2dc7d00cd18e55405974de169390545f820f5c10", + "pseudo-with-classes-match-wildcard.html": [ + "13490d58786b296d306425fc632da73fda86c763", [ null, [ @@ -288562,6 +288663,19 @@ ], {} ] + ], + "relative-units-from-parent.html": [ + "57df82b6f1c5b8cd9ef405cdc1097826de0e061f", + [ + null, + [ + [ + "/css/css-viewport/zoom/relative-units-from-parent-ref.html", + "==" + ] + ], + {} + ] ] } }, @@ -336880,6 +336994,21 @@ ] ] }, + "scripted": { + "marker-element-added.html": [ + "39d3cb190cdc73265701c86c623992803484d678", + [ + null, + [ + [ + "/svg/struct/reftests/reference/green-100x100.html", + "==" + ] + ], + {} + ] + ] + }, "subpixel-clip-path-transform.html": [ "62f07de8209a63501629c5c5d1e47e0a9691962d", [ @@ -345364,7 +345493,7 @@ [] ], "helpers.js": [ - "e5c749931e03c2335d1a5f9f076fe3caaee70fa7", + "054df6b97295a5a54d46a1813b4096c31a52f027", [] ], "reporting_origin.py": [ @@ -385713,10 +385842,6 @@ "dc7f77f2b3441ebee25f3e40a9480b668ee79ea4", [] ], - "anchor-scroll-overflow-hidden-ref.html": [ - "b674998a5db1f347af82bde1f5efb4261a3732af", - [] - ], "anchor-scroll-position-try-012-ref.html": [ "fbc0b5fc6da55cfadb1ea610092882b8ff7502a7", [] @@ -393709,6 +393834,10 @@ "8c390de08d10d1e9591c5885d355514b9412aab1", [] ], + "min-size-auto-overflow-clip-ref.html": [ + "2503af6df34f3e3be6a8c6d880d67e2fe6fb9615", + [] + ], "order": { "order-with-column-reverse-ref.html": [ "c8b9be7c4ec9d7238a45db8d7b06fc93eb92c889", @@ -403065,6 +403194,10 @@ } } }, + "min-size-auto-overflow-clip-ref.html": [ + "64e6ff2d9994a74bea6fbf8be74de93239075006", + [] + ], "nested-grid-item-block-size-001-ref.html": [ "a037967e493fa5eba3914db3c8f38914ee1d8729", [] @@ -403784,6 +403917,10 @@ "ca2232e38096157847a2430e721f9eb73cf68185", [] ], + "repeating-gradient-hsl-and-oklch-ref.html": [ + "a5e1554be1406fb8fe6126eaaa7f1707995f18b5", + [] + ], "resources": { "oklab-gradient.png": [ "9e52fd9b84ba9f16cdfba6fa1df67f17521c2ff5", @@ -408159,6 +408296,14 @@ "6ed2528115ae3a5634df6a2968a71fcd81424471", [] ], + "fixedpos-009-print-ref.html": [ + "31a6a6724faec358e91a655f546b0c3ef3570be4", + [] + ], + "fixedpos-010-print-ref.html": [ + "90bd5e7fc31f5ef0c4e11a352cd4c309975c193c", + [] + ], "fixedpos-with-abspos-with-link-print-ref.html": [ "000c05350b54885c47ea74a7336e02ed857d55ea", [] @@ -421549,6 +421694,10 @@ "79e89801391530b6fb074545a92db68493667f05", [] ], + "new-content-ancestor-clipped-ref.html": [ + "caa99f280796f2ccae9b926f14f8355599f02add", + [] + ], "new-content-captures-clip-path-ref.html": [ "a216bff8b049bac3ce549bf1f6c79392e0d851e5", [] @@ -421896,6 +422045,10 @@ [] ] }, + "relative-units-from-parent-ref.html": [ + "4e7456ce71821e987231769c21f87b01aa6c2678", + [] + ], "resources": { "iframe_content.html": [ "58c4d03a466e2bb045da142e354c565ec122b502", @@ -452388,7 +452541,7 @@ ] }, "click_iframe_crossorigin.sub.html.ini": [ - "aa94652ad763060f10aba1e03af806035d29ecd1", + "c0ca25ab6572190cea7793e92514edc3cbbd10c2", [] ], "file_upload.sub.html.ini": [ @@ -452895,7 +453048,7 @@ [] ], "compute-pressure.idl": [ - "a90febffc3b018571c1ae3ff78a8e6a56de7cc90", + "77537feb1066ee61acaa7a751b2eb9b3aa299a21", [] ], "console.idl": [ @@ -464827,7 +464980,7 @@ ] }, "router-rules.js": [ - "014cd2ec95c029cb646d897fd8ee1b15b851fc90", + "dd7b3f550207a6e644a4a64a49ba82ec0dee88ff", [] ], "simple-test-for-condition-main-resource.html": [ @@ -467757,7 +467910,7 @@ [] ], "install_chrome.yml": [ - "9b03d9b91bcf9bb9ca100ceb244ee83e3b001a6b", + "2dde99286cb84c088cb85e2ec96a55e14b00ee9e", [] ], "install_edge.yml": [ @@ -467765,7 +467918,7 @@ [] ], "install_firefox.yml": [ - "73af59766553f7ef5f4d4647d7a94f8b0977a8fd", + "d43e28b274f1cf44d75a742c1786b380906e3cdc", [] ], "install_fonts.yml": [ @@ -468544,7 +468697,7 @@ [] ], "serve.py": [ - "bc282dd44b54ffef0fcb963d67c4016a7c375efb", + "42d80918024ac3abd10a6d155c3d0b3981763573", [] ], "test_functional.py": [ @@ -479328,7 +479481,7 @@ ] }, "requirements.txt": [ - "356223ededc36642d3019d907c8d7703ff132667", + "cda06eba5d0048a10b5f73cc8b493e93f94164ad", [] ], "requirements_chromium.txt": [ @@ -479336,7 +479489,7 @@ [] ], "requirements_firefox.txt": [ - "0ed5c0531665de5e4830ea174a1df88aea52c22d", + "17fed6fab47ce5580c411f2390121adb8758ca8c", [] ], "requirements_opera.txt": [ @@ -479344,7 +479497,7 @@ [] ], "requirements_safari.txt": [ - "bcce11aed804df16200876894a149e18c1714f51", + "0704b2dbf6837b034f9bb1e45b51b81e12757177", [] ], "requirements_sauce.txt": [ @@ -480391,6 +480544,10 @@ "604e765da46d85fe8ab85d3097fe7c2cbe00a930", [] ], + "resolve-spv.js": [ + "89e58b2a8b75e0200d145b028d032caa688f32cd", + [] + ], "set-inner-html.js": [ "45053d43e362e223e0ce5e6dffb4da09c0ce3f34", [] @@ -484522,7 +484679,7 @@ ] }, "utils.js": [ - "653e036cd119d3198fd1c83be548b4999214f0f4", + "e5b80ae9f7fb081758960a3e6b4cbf0cf92f2b37", [] ], "utils_validation.js": [ @@ -494284,7 +494441,7 @@ ] ], "serialize-sharedarraybuffer-throws.https.html": [ - "613ddfe99d81704defe853466107065011819a69", + "bff63fad8d13e25972fe04a6193b319317798355", [ null, {} @@ -503698,8 +503855,67 @@ } ] ], + "referrer-policy.sub.https.html": [ + "ee4e0c9a8c1e54f442d9b2d6f9de509351bab71b", + [ + "attribution-reporting/referrer-policy.sub.https.html?method=a", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "attribution-reporting/referrer-policy.sub.https.html?method=a&noreferrer", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "attribution-reporting/referrer-policy.sub.https.html?method=img", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "attribution-reporting/referrer-policy.sub.https.html?method=img&noreferrer", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "attribution-reporting/referrer-policy.sub.https.html?method=open", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "attribution-reporting/referrer-policy.sub.https.html?method=open&noreferrer", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "attribution-reporting/referrer-policy.sub.https.html?method=script", + { + "testdriver": true, + "timeout": "long" + } + ], + [ + "attribution-reporting/referrer-policy.sub.https.html?method=script&noreferrer", + { + "testdriver": true, + "timeout": "long" + } + ] + ], "request-format.sub.https.html": [ - "a9e36dd126771f12089367a2fabf0171a9ace7bf", + "83a2d8f6bdfe786c7f01862840b4ed716ddae813", [ "attribution-reporting/request-format.sub.https.html?method=a&expected-eligible=navigation-source", { @@ -514834,6 +515050,42 @@ } ] ], + "compute_pressure_known_sources.https.any.js": [ + "5db3053ce9a042f4b26d6c7fc3e89a4c5a170125", + [ + "compute-pressure/compute_pressure_known_sources.https.any.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker,sharedworker" + ] + ] + } + ], + [ + "compute-pressure/compute_pressure_known_sources.https.any.sharedworker.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker,sharedworker" + ] + ] + } + ], + [ + "compute-pressure/compute_pressure_known_sources.https.any.worker.html", + { + "script_metadata": [ + [ + "global", + "window,dedicatedworker,sharedworker" + ] + ] + } + ] + ], "compute_pressure_multiple.https.any.js": [ "8c50cc4b3df27e99e7fcb445d59609aa41d54fc9", [ @@ -515104,42 +515356,6 @@ } ] ], - "compute_pressure_supported_sources.https.any.js": [ - "63f2666cca69c9ed69b1449fb5c336854d11967d", - [ - "compute-pressure/compute_pressure_supported_sources.https.any.html", - { - "script_metadata": [ - [ - "global", - "window,dedicatedworker,sharedworker" - ] - ] - } - ], - [ - "compute-pressure/compute_pressure_supported_sources.https.any.sharedworker.html", - { - "script_metadata": [ - [ - "global", - "window,dedicatedworker,sharedworker" - ] - ] - } - ], - [ - "compute-pressure/compute_pressure_supported_sources.https.any.worker.html", - { - "script_metadata": [ - [ - "global", - "window,dedicatedworker,sharedworker" - ] - ] - } - ] - ], "compute_pressure_take_records.https.any.js": [ "55660b228be22453c3d48a907d8501e3d9a55c00", [ @@ -554817,7 +555033,7 @@ ] ], "starting-style-size-container.html": [ - "92ad6e61251ebf75be037e090bed2730bc1ac785", + "1ad609dd909306ff8a892dffb48c48ba1e56b1a3", [ null, {} @@ -559653,6 +559869,13 @@ ] ] }, + "relative-units.html": [ + "8cfa27c93ad6726c58ced9a9836e7daadd0e5aea", + [ + null, + {} + ] + ], "scroll-top-test-with-zoom.html": [ "9656fe120e8ec39a7570950b4b1ad39d6c2fb16b", [ @@ -562012,7 +562235,7 @@ ] ], "offsetTop-offsetLeft-with-zoom.html": [ - "a60a18a4313b5c9ffd7f8d6c8d42a46062152cf4", + "b0f11ea02e545e63b01882c0f71ad7ae451d8a1a", [ null, {} @@ -570438,6 +570661,13 @@ {} ] ], + "focus-preserve.html": [ + "a00e8b77880697a51d4418fc15637b1dcef6914b", + [ + null, + {} + ] + ], "fullscreen-preserve.html": [ "810eeac9af90f80e18ed149e875b3656f81b3a1d", [ @@ -613738,6 +613968,37 @@ } ] ], + "score-ad-browser-signals.https.window.js": [ + "f20412cfc7857279ff7aabfbfd68d825be5d8051", + [ + "fledge/tentative/score-ad-browser-signals.https.window.html", + { + "script_metadata": [ + [ + "script", + "/resources/testdriver.js" + ], + [ + "script", + "/common/utils.js" + ], + [ + "script", + "resources/fledge-util.sub.js" + ], + [ + "script", + "/common/subset-tests.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], "send-report-to.https.window.js": [ "e3cf0a95f17c171444d79a2b0f16d0fe1f1acbd4", [ @@ -679110,6 +679371,13 @@ {} ] ], + "inert-and-find-flat-tree.html": [ + "951497e2c0914a4587a2ffea7e92b3a289fa41bd", + [ + null, + {} + ] + ], "inert-and-find.html": [ "87555b0097e9ac98e2edaec0f0a07dd253e2a6e3", [ @@ -715605,6 +715873,13 @@ } ] ], + "getallscreensmedia-exposure.tentative.https.window.js": [ + "9be2fa07dd6148fb4f29aced39d8c6b2eb3bd33d", + [ + "screen-capture/getallscreensmedia-exposure.tentative.https.window.html", + {} + ] + ], "getdisplaymedia-after-discard.https.html": [ "445120f8c2f0878c7aa27033595be6531475ea79", [ @@ -721182,14 +721457,14 @@ ] ], "static-router-invalid-rules.https.html": [ - "9ef7cfdc9f34766e905f4b4469f212313f6d0d9d", + "15b8ef5742d7d901e46110f9898e8f3374a2e261", [ null, {} ] ], "static-router-main-resource.https.html": [ - "7998af3f994772811ccf190c5d82cfcf67a3f17d", + "71bc0697f9c08c84873a2e651d748dc01000b870", [ null, {} @@ -721238,7 +721513,7 @@ ] ], "static-router-subresource.https.html": [ - "00b9070bf12d74fe8eee936054f592aac05c1f83", + "ab05a3d25282473d5425d9086ef76a132fa2c5da", [ null, {} @@ -722121,11 +722396,12 @@ ] ], "focus-navigation-slot-nested-2levels.html": [ - "7d733ea7c2ec1f1eaa93cf1977be53fd8ff3ad4c", + "1b867cc2a9b8da2955662179044a4455bff07d52", [ null, { - "testdriver": true + "testdriver": true, + "timeout": "long" } ] ], @@ -738302,8 +738578,15 @@ {} ] ], + "trusted-types-svg-script-set-href.html": [ + "ab3174c192b1851a2a20a99626369368145e4666", + [ + null, + {} + ] + ], "trusted-types-svg-script.html": [ - "946f825fa3eecd05247e1a2b16396ee4d3f7af11", + "4d604f353c944a64e2606819b9c6607d1ad6502e", [ null, {} @@ -759788,9 +760071,41 @@ "webnn": { "conformance_tests": { "arg_min_max.https.any.js": [ - "123c8b1048f5a2e14d37eb16320e2b3cb6fee55f", + "0f9e590fc884d6f7be157a19690cb6874a83c134", + [ + "webnn/conformance_tests/arg_min_max.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API argMin/Max operations" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/arg_min_max.https.any.html", + "webnn/conformance_tests/arg_min_max.https.any.html?gpu", { "script_metadata": [ [ @@ -759802,6 +760117,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -759814,7 +760137,7 @@ } ], [ - "webnn/conformance_tests/arg_min_max.https.any.worker.html", + "webnn/conformance_tests/arg_min_max.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -759826,6 +760149,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/arg_min_max.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API argMin/Max operations" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -759839,9 +760202,9 @@ ] ], "batch_normalization.https.any.js": [ - "9a1c85db1971b79f5667760c5698885c4536e0a1", + "d3107820dbcbc8281e0d7b876ef5cac56f8322dd", [ - "webnn/conformance_tests/batch_normalization.https.any.html", + "webnn/conformance_tests/batch_normalization.https.any.html?cpu", { "script_metadata": [ [ @@ -759853,6 +760216,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -759865,7 +760236,7 @@ } ], [ - "webnn/conformance_tests/batch_normalization.https.any.worker.html", + "webnn/conformance_tests/batch_normalization.https.any.html?gpu", { "script_metadata": [ [ @@ -759877,6 +760248,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/batch_normalization.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API batchNormalization operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/batch_normalization.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API batchNormalization operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -759890,9 +760333,9 @@ ] ], "buffer.https.any.js": [ - "9391be8dbf0b8e1049ad9fa28f44080cd29928b0", + "5a09b05c7dc1bafc125be7e46297422131c1fabc", [ - "webnn/conformance_tests/buffer.https.any.html", + "webnn/conformance_tests/buffer.https.any.html?cpu", { "script_metadata": [ [ @@ -759904,6 +760347,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -759916,7 +760367,7 @@ } ], [ - "webnn/conformance_tests/buffer.https.any.worker.html", + "webnn/conformance_tests/buffer.https.any.html?gpu", { "script_metadata": [ [ @@ -759928,6 +760379,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/buffer.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API buffer operations" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/buffer.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API buffer operations" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -759941,9 +760464,41 @@ ] ], "cast.https.any.js": [ - "bde2b9a4ce1cf2d25cb5866fe68725f8e13db1dd", + "086428dd964bd6fcb6142d3aaeeeb0591b7d9476", + [ + "webnn/conformance_tests/cast.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API cast operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/cast.https.any.html", + "webnn/conformance_tests/cast.https.any.html?gpu", { "script_metadata": [ [ @@ -759955,6 +760510,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -759967,7 +760530,7 @@ } ], [ - "webnn/conformance_tests/cast.https.any.worker.html", + "webnn/conformance_tests/cast.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -759979,6 +760542,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/cast.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API cast operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -759992,9 +760595,9 @@ ] ], "clamp.https.any.js": [ - "7b60c41f2cacd6700a84823c048cf0aba609b288", + "ab47ac9c5c700bc9acbd8b6a9ad1f307c5bdd784", [ - "webnn/conformance_tests/clamp.https.any.html", + "webnn/conformance_tests/clamp.https.any.html?cpu", { "script_metadata": [ [ @@ -760006,6 +760609,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760018,7 +760629,7 @@ } ], [ - "webnn/conformance_tests/clamp.https.any.worker.html", + "webnn/conformance_tests/clamp.https.any.html?gpu", { "script_metadata": [ [ @@ -760030,6 +760641,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/clamp.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API clamp operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/clamp.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API clamp operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760042,10 +760725,59 @@ } ] ], + "compute-arraybufferview-with-bigger-arraybuffer.https.any.js": [ + "62ce16c93e4f0bace1f438d01ad2ff8ba1da0116", + [ + "webnn/conformance_tests/compute-arraybufferview-with-bigger-arraybuffer.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN MLContext.compute() for ArrayBufferView created from bigger ArrayBuffer" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ] + ] + } + ], + [ + "webnn/conformance_tests/compute-arraybufferview-with-bigger-arraybuffer.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN MLContext.compute() for ArrayBufferView created from bigger ArrayBuffer" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ] + ] + } + ] + ], "concat.https.any.js": [ - "254e0b657b43dbaa370779ba92186fe3d7eb1657", + "619f20fe1c65eb976c13381a0633f35af1fe8b97", [ - "webnn/conformance_tests/concat.https.any.html", + "webnn/conformance_tests/concat.https.any.html?cpu", { "script_metadata": [ [ @@ -760057,6 +760789,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760069,7 +760809,7 @@ } ], [ - "webnn/conformance_tests/concat.https.any.worker.html", + "webnn/conformance_tests/concat.https.any.html?gpu", { "script_metadata": [ [ @@ -760081,6 +760821,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/concat.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API concat operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/concat.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API concat operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760094,9 +760906,73 @@ ] ], "constant.https.any.js": [ - "4814734886e0bf94995ec1992cacd9e6be1bc7c1", + "79362947f1d5cd48be717605516715fba0dc5e9a", + [ + "webnn/conformance_tests/constant.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API constant" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/constant.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API constant" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/constant.https.any.html", + "webnn/conformance_tests/constant.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -760108,6 +760984,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760120,7 +761004,7 @@ } ], [ - "webnn/conformance_tests/constant.https.any.worker.html", + "webnn/conformance_tests/constant.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -760132,6 +761016,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760145,9 +761037,73 @@ ] ], "conv2d.https.any.js": [ - "0d9a6213569a7fb72c45ae47ab90245093e4ea20", + "34af583162bbce07c55042324941d2c919575c4d", + [ + "webnn/conformance_tests/conv2d.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API conv2d operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/conv2d.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API conv2d operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/conv2d.https.any.html", + "webnn/conformance_tests/conv2d.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -760159,6 +761115,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760171,7 +761135,7 @@ } ], [ - "webnn/conformance_tests/conv2d.https.any.worker.html", + "webnn/conformance_tests/conv2d.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -760183,6 +761147,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760196,9 +761168,9 @@ ] ], "conv_transpose2d.https.any.js": [ - "ee5d28c72adc9e610ac1c09402b85b21de28bafd", + "2943e67851c52c41f0792cfe56ba3abc5d651017", [ - "webnn/conformance_tests/conv_transpose2d.https.any.html", + "webnn/conformance_tests/conv_transpose2d.https.any.html?cpu", { "script_metadata": [ [ @@ -760210,6 +761182,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760222,7 +761202,7 @@ } ], [ - "webnn/conformance_tests/conv_transpose2d.https.any.worker.html", + "webnn/conformance_tests/conv_transpose2d.https.any.html?gpu", { "script_metadata": [ [ @@ -760234,6 +761214,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760244,23 +761232,28 @@ ], "timeout": "long" } - ] - ], - "elementwise_binary.https.any.js": [ - "5db14a43a1f4d752ce15f8bfad50031902b0a9a2", + ], [ - "webnn/conformance_tests/elementwise_binary.https.any.html", + "webnn/conformance_tests/conv_transpose2d.https.any.worker.html?cpu", { "script_metadata": [ [ "title", - "test WebNN API element-wise binary operations" + "test WebNN API convTranspose2d operation" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760273,18 +761266,26 @@ } ], [ - "webnn/conformance_tests/elementwise_binary.https.any.worker.html", + "webnn/conformance_tests/conv_transpose2d.https.any.worker.html?gpu", { "script_metadata": [ [ "title", - "test WebNN API element-wise binary operations" + "test WebNN API convTranspose2d operation" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760297,21 +761298,29 @@ } ] ], - "elementwise_logical.https.any.js": [ - "a60c199447f1ef1e6266a4fde4a566d9b65772f8", + "elementwise_binary.https.any.js": [ + "a85a06e1d21d6acf9c54ca51929a9538b7632618", [ - "webnn/conformance_tests/elementwise_logical.https.any.html", + "webnn/conformance_tests/elementwise_binary.https.any.html?cpu", { "script_metadata": [ [ "title", - "test WebNN API element-wise logical operations" + "test WebNN API element-wise binary operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760324,18 +761333,26 @@ } ], [ - "webnn/conformance_tests/elementwise_logical.https.any.worker.html", + "webnn/conformance_tests/elementwise_binary.https.any.html?gpu", { "script_metadata": [ [ "title", - "test WebNN API element-wise logical operations" + "test WebNN API element-wise binary operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760346,23 +761363,28 @@ ], "timeout": "long" } - ] - ], - "elementwise_unary.https.any.js": [ - "8029539edadd8d4f96a0d04e56f7271f99b7e5c7", + ], [ - "webnn/conformance_tests/elementwise_unary.https.any.html", + "webnn/conformance_tests/elementwise_binary.https.any.worker.html?cpu", { "script_metadata": [ [ "title", - "test WebNN API element-wise unary operations" + "test WebNN API element-wise binary operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760375,18 +761397,26 @@ } ], [ - "webnn/conformance_tests/elementwise_unary.https.any.worker.html", + "webnn/conformance_tests/elementwise_binary.https.any.worker.html?gpu", { "script_metadata": [ [ "title", - "test WebNN API element-wise unary operations" + "test WebNN API element-wise binary operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760399,21 +761429,29 @@ } ] ], - "elu.https.any.js": [ - "382faa97fd1340f0bf04df1d2cac17390d20866d", + "elementwise_logical.https.any.js": [ + "3d3a825f9c07065c3050b3933623d1a0c485d18f", [ - "webnn/conformance_tests/elu.https.any.html", + "webnn/conformance_tests/elementwise_logical.https.any.html?cpu", { "script_metadata": [ [ "title", - "test WebNN API elu operation" + "test WebNN API element-wise logical operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760426,18 +761464,26 @@ } ], [ - "webnn/conformance_tests/elu.https.any.worker.html", + "webnn/conformance_tests/elementwise_logical.https.any.html?gpu", { "script_metadata": [ [ "title", - "test WebNN API elu operation" + "test WebNN API element-wise logical operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760448,23 +761494,28 @@ ], "timeout": "long" } - ] - ], - "expand.https.any.js": [ - "b1be129eac3b768a5b2df4fdf6c75afb8c1ea916", + ], [ - "webnn/conformance_tests/expand.https.any.html", + "webnn/conformance_tests/elementwise_logical.https.any.worker.html?cpu", { "script_metadata": [ [ "title", - "test WebNN API expand operation" + "test WebNN API element-wise logical operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760477,18 +761528,26 @@ } ], [ - "webnn/conformance_tests/expand.https.any.worker.html", + "webnn/conformance_tests/elementwise_logical.https.any.worker.html?gpu", { "script_metadata": [ [ "title", - "test WebNN API expand operation" + "test WebNN API element-wise logical operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760501,21 +761560,29 @@ } ] ], - "gather.https.any.js": [ - "39b19705632b7682f44f40aa711bd4dc0e04b117", + "elementwise_unary.https.any.js": [ + "f202af01e51325c271afa67cd22105c3e3751e56", [ - "webnn/conformance_tests/gather.https.any.html", + "webnn/conformance_tests/elementwise_unary.https.any.html?cpu", { "script_metadata": [ [ "title", - "test WebNN API gather operation" + "test WebNN API element-wise unary operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760528,18 +761595,26 @@ } ], [ - "webnn/conformance_tests/gather.https.any.worker.html", + "webnn/conformance_tests/elementwise_unary.https.any.html?gpu", { "script_metadata": [ [ "title", - "test WebNN API gather operation" + "test WebNN API element-wise unary operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760550,23 +761625,28 @@ ], "timeout": "long" } - ] - ], - "gemm.https.any.js": [ - "61fd7c9b3963f7c0202d46677f65ee8051da1b8e", + ], [ - "webnn/conformance_tests/gemm.https.any.html", + "webnn/conformance_tests/elementwise_unary.https.any.worker.html?cpu", { "script_metadata": [ [ "title", - "test WebNN API gemm operation" + "test WebNN API element-wise unary operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760579,18 +761659,26 @@ } ], [ - "webnn/conformance_tests/gemm.https.any.worker.html", + "webnn/conformance_tests/elementwise_unary.https.any.worker.html?gpu", { "script_metadata": [ [ "title", - "test WebNN API gemm operation" + "test WebNN API element-wise unary operations" ], [ "global", "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -760603,2144 +761691,598 @@ } ] ], - "gpu": { - "arg_min_max.https.any.js": [ - "c700ee5cad7ec88167c6bc0c73956e11b1e72f6c", - [ - "webnn/conformance_tests/gpu/arg_min_max.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API argMin/Max operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] - ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/arg_min_max.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API argMin/Max operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + "elu.https.any.js": [ + "ac1c19a80bcd35e130f7630e2ee6ad8ad1dd8b6d", + [ + "webnn/conformance_tests/elu.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API elu operation" ], - "timeout": "long" - } - ] - ], - "batch_normalization.https.any.js": [ - "534cdf6365a2c5226f0c366dae763c1656c1bce5", - [ - "webnn/conformance_tests/gpu/batch_normalization.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API batchNormalization operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/batch_normalization.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API batchNormalization operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ] - ], - "buffer.https.any.js": [ - "225bc401858ce62388d7e8c3321251ff32ecc87e", - [ - "webnn/conformance_tests/gpu/buffer.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API buffer operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/buffer.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API buffer operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "script", + "../resources/utils.js" ], - "timeout": "long" - } - ] + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "cast.https.any.js": [ - "e4309ffd8e3e7152b414a05fbd2ce767755c447d", - [ - "webnn/conformance_tests/gpu/cast.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API cast operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/elu.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API elu operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/cast.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API cast operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "clamp.https.any.js": [ - "9b3f93ecc77cc4a67a10dfd9e8f34a61dbb76c09", - [ - "webnn/conformance_tests/gpu/clamp.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API clamp operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/clamp.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API clamp operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] - ], - "compute-arraybufferview-with-bigger-arraybuffer.https.any.js": [ - "ddc39011813a4fb2da6a3503fb589c7dc6f2bf56", - [ - "webnn/conformance_tests/gpu/compute-arraybufferview-with-bigger-arraybuffer.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN MLContext.compute() for ArrayBufferView created from bigger ArrayBuffer" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ] - ] - } - ], - [ - "webnn/conformance_tests/gpu/compute-arraybufferview-with-bigger-arraybuffer.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN MLContext.compute() for ArrayBufferView created from bigger ArrayBuffer" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ] + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" ] - } - ] + ], + "timeout": "long" + } ], - "concat.https.any.js": [ - "c0cfb8626b80495e60e99b821ae8cdb806f716b3", - [ - "webnn/conformance_tests/gpu/concat.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API concat operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/elu.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API elu operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/concat.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API concat operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "constant.https.any.js": [ - "77b4d889a2306cb3645b7c9db8f45cfacca7096b", - [ - "webnn/conformance_tests/gpu/constant.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API constant" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/constant.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API constant" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "conv2d.https.any.js": [ - "770540abd85237aa54055ba47b48ed98a8ed7e5d", - [ - "webnn/conformance_tests/gpu/conv2d.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API conv2d operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/elu.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API elu operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/conv2d.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API conv2d operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "conv_transpose2d.https.any.js": [ - "08c441b5b4580e5118df659b5e804a5abeb7926a", - [ - "webnn/conformance_tests/gpu/conv_transpose2d.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API convTranspose2d operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/conv_transpose2d.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API convTranspose2d operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] - ], - "elementwise_binary.https.any.js": [ - "8b9fa486f866d5ac1b1e504e8838c1a2b71e9282", - [ - "webnn/conformance_tests/gpu/elementwise_binary.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API element-wise binary operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "script", + "../resources/utils.js" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/elementwise_binary.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API element-wise binary operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "expand.https.any.js": [ + "e7bf106f961e812716076a423c49ffbe7821533b", + [ + "webnn/conformance_tests/expand.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API expand operation" ], - "timeout": "long" - } - ] - ], - "elementwise_logical.https.any.js": [ - "70a887a147aff90870411d3529fea622439f96a5", - [ - "webnn/conformance_tests/gpu/elementwise_logical.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API element-wise logical operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/elementwise_logical.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API element-wise logical operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ] - ], - "elementwise_unary.https.any.js": [ - "887112931118dd4cf6db6ccfe6835af5a299f8c0", - [ - "webnn/conformance_tests/gpu/elementwise_unary.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API element-wise unary operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/elementwise_unary.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API element-wise unary operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "script", + "../resources/utils.js" ], - "timeout": "long" - } - ] + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "elu.https.any.js": [ - "db14442641b5750af9f5bcd60668a6a8fed74b86", - [ - "webnn/conformance_tests/gpu/elu.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API elu operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/expand.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API expand operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/elu.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API elu operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "expand.https.any.js": [ - "f46f4637817b94e6ca55eee8a88aca75b5715b9c", - [ - "webnn/conformance_tests/gpu/expand.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API expand operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/expand.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API expand operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "gather.https.any.js": [ - "8e457192d818be0f7c59cf985fbf7edbc039267c", - [ - "webnn/conformance_tests/gpu/gather.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API gather operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/expand.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API expand operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/gather.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API gather operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "gemm.https.any.js": [ - "f288c31bedff1f5f1b5be675f237f9002890d9ed", - [ - "webnn/conformance_tests/gpu/gemm.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API gemm operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/gemm.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API gemm operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "hard_sigmoid.https.any.js": [ - "d40e42a211b733acc7d94031f194ed3b81edabbf", - [ - "webnn/conformance_tests/gpu/hard_sigmoid.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API hardSigmoid operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/expand.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API expand operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/hard_sigmoid.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API hardSigmoid operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "hard_swish.https.any.js": [ - "031e65ee1606d54033077a3b941f27bf77b441c8", - [ - "webnn/conformance_tests/gpu/hard_swish.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API tanh operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/hard_swish.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API tanh operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] - ], - "instance_normalization.https.any.js": [ - "ecfaac71eed9464e822599c8a102d328515631a2", - [ - "webnn/conformance_tests/gpu/instance_normalization.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API instanceNormalization operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "script", + "../resources/utils.js" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/instance_normalization.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API instanceNormalization operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "gather.https.any.js": [ + "504f2dd792e27ba5b1f9fb0c4855a25875737d30", + [ + "webnn/conformance_tests/gather.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API gather operation" ], - "timeout": "long" - } - ] - ], - "layer_normalization.https.any.js": [ - "0e4f6caebf1cbc023a2c1928ebb29c22fc246c77", - [ - "webnn/conformance_tests/gpu/layer_normalization.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API layerNormalization operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/layer_normalization.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API layerNormalization operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ] - ], - "leaky_relu.https.any.js": [ - "9fab2353b9aac7eef800bc64d06176b6ea7025c3", - [ - "webnn/conformance_tests/gpu/leaky_relu.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API leakyRelu operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/leaky_relu.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API leakyRelu operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "script", + "../resources/utils.js" ], - "timeout": "long" - } - ] + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "linear.https.any.js": [ - "ccec2c3eac246a19214d7892df72c3c80a02df67", - [ - "webnn/conformance_tests/gpu/linear.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API linear operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/gather.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API gather operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/linear.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API linear operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "matmul.https.any.js": [ - "635ce84ac6b102348c1c030f518873f928025cc7", - [ - "webnn/conformance_tests/gpu/matmul.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API matmul operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/matmul.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API matmul operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "pad.https.any.js": [ - "f313e2c9f9a06b9dac028851d3e7573c8320c15c", - [ - "webnn/conformance_tests/gpu/pad.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API pad operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/gather.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API gather operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/pad.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API pad operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "parallel-compute.https.any.js": [ - "13f2757b54e4c6a691bd84133aee264eb38162db", - [ - "webnn/conformance_tests/gpu/parallel-compute.https.any.html", - { - "script_metadata": [ - [ - "title", - "test parallel WebNN API compute operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/parallel-compute.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test parallel WebNN API compute operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "pooling.https.any.js": [ - "837bca2c71d80d77b1071595899dbc1d82cc138a", - [ - "webnn/conformance_tests/gpu/pooling.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API pooling operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/gather.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API gather operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/pooling.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API pooling operations" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "prelu.https.any.js": [ - "475cd9e5ce94debff8878de0f882c6936638b25d", - [ - "webnn/conformance_tests/gpu/prelu.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API prelu operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/prelu.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API prelu operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] - ], - "reduction.https.any.js": [ - "0f3cefa02eb6f52b511ac0b3a34610fa77122d7c", - [ - "webnn/conformance_tests/gpu/reduction.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API reduction operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "script", + "../resources/utils.js" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/reduction.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API reduction operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "gemm.https.any.js": [ + "03a836a44a63fde6ad7710bb7e446818196b56e6", + [ + "webnn/conformance_tests/gemm.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API gemm operation" ], - "timeout": "long" - } - ] - ], - "relu.https.any.js": [ - "d1a35367df44f23948262660977b41f8284191a9", - [ - "webnn/conformance_tests/gpu/relu.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API relu operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/relu.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API relu operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ] - ], - "resample2d.https.any.js": [ - "dd8e441946e1b5defdd36d9054f00495d98f574b", - [ - "webnn/conformance_tests/gpu/resample2d.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API resample2d operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/resample2d.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API resample2d operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "script", + "../resources/utils.js" ], - "timeout": "long" - } - ] + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "reshape.https.any.js": [ - "b0217d2e67bcf343e6b00171329793d1e570f11e", - [ - "webnn/conformance_tests/gpu/reshape.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API reshape operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/gemm.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API gemm operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/reshape.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API reshape operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "sigmoid.https.any.js": [ - "26116c0ff92ee01577560429f92ee95b501545f2", - [ - "webnn/conformance_tests/gpu/sigmoid.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API sigmoid operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/sigmoid.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API sigmoid operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "slice.https.any.js": [ - "1710c79a9ced8ee8715fa89e1dd25e59fb271012", - [ - "webnn/conformance_tests/gpu/slice.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API slice operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/gemm.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API gemm operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/slice.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API slice operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "softmax.https.any.js": [ - "9eaffe2bebcfd7044ac64c0edbbac7e76fb6a267", - [ - "webnn/conformance_tests/gpu/softmax.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API softmax operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/softmax.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API softmax operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "softplus.https.any.js": [ - "5f06846113e38616c52b99641dd562ab21d10de6", - [ - "webnn/conformance_tests/gpu/softplus.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API softplus operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/gemm.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API gemm operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/softplus.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API softplus operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "softsign.https.any.js": [ - "eac0b7ec40cec0def9de674c9c9832673a6f4b8b", - [ - "webnn/conformance_tests/gpu/softsign.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API softsign operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/softsign.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API softsign operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] - ], - "split.https.any.js": [ - "3b0aafd7870fb06c46b1c7e2fceb4d6a22e2fd07", - [ - "webnn/conformance_tests/gpu/split.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API split operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "script", + "../resources/utils.js" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/split.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API split operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ] + ], + "hard_sigmoid.https.any.js": [ + "55391e7f1c9b6e36429cea968aa9bc6824d7929a", + [ + "webnn/conformance_tests/hard_sigmoid.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API hardSigmoid operation" ], - "timeout": "long" - } - ] - ], - "tanh.https.any.js": [ - "3029f4865a49325f71d82468e74799e9dbeb21be", - [ - "webnn/conformance_tests/gpu/tanh.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API tanh operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/tanh.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API tanh operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ] - ], - "transpose.https.any.js": [ - "295ef43ec11f14aa27bae0cc96efc3572ba0445b", - [ - "webnn/conformance_tests/gpu/transpose.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API transpose operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/transpose.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API transpose operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "script", + "../resources/utils.js" ], - "timeout": "long" - } - ] + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } ], - "triangular.https.any.js": [ - "3e1b0d5ab130ff2a5dfb9ad66075f2c1bd980e6c", - [ - "webnn/conformance_tests/gpu/triangular.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API triangular operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "webnn/conformance_tests/hard_sigmoid.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API hardSigmoid operation" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/triangular.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API triangular operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "global", + "window,dedicatedworker" ], - "timeout": "long" - } - ] - ], - "where.https.any.js": [ - "49c6cbd4e3236d03c881e7557fbaf52812ff0550", - [ - "webnn/conformance_tests/gpu/where.https.any.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API where operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?cpu" ], - "timeout": "long" - } - ], - [ - "webnn/conformance_tests/gpu/where.https.any.worker.html", - { - "script_metadata": [ - [ - "title", - "test WebNN API where operation" - ], - [ - "global", - "window,dedicatedworker" - ], - [ - "script", - "../../resources/utils.js" - ], - [ - "timeout", - "long" - ] + [ + "variant", + "?gpu" ], - "timeout": "long" - } - ] - ] - }, - "hard_sigmoid.https.any.js": [ - "8161a2453861b3fc1ccda5cc95362c2cea78ede8", + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/hard_sigmoid.https.any.html", + "webnn/conformance_tests/hard_sigmoid.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -762752,6 +762294,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762764,7 +762314,7 @@ } ], [ - "webnn/conformance_tests/hard_sigmoid.https.any.worker.html", + "webnn/conformance_tests/hard_sigmoid.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -762776,6 +762326,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762789,9 +762347,9 @@ ] ], "hard_swish.https.any.js": [ - "b4a7c53d8d2004fd2948cd016df0fa5efb8a5cae", + "24b8c413bbaabe1d3c80955e5e2cebbbd312b993", [ - "webnn/conformance_tests/hard_swish.https.any.html", + "webnn/conformance_tests/hard_swish.https.any.html?cpu", { "script_metadata": [ [ @@ -762803,6 +762361,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762815,7 +762381,7 @@ } ], [ - "webnn/conformance_tests/hard_swish.https.any.worker.html", + "webnn/conformance_tests/hard_swish.https.any.html?gpu", { "script_metadata": [ [ @@ -762827,6 +762393,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/hard_swish.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API tanh operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/hard_swish.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API tanh operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762840,9 +762478,73 @@ ] ], "instance_normalization.https.any.js": [ - "fce879172e5faa464cad4feaa24dc3a1d52aa334", + "fc339e5bab4ccf8f0f9c5425e48ffb65f7221756", + [ + "webnn/conformance_tests/instance_normalization.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API instanceNormalization operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/instance_normalization.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API instanceNormalization operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/instance_normalization.https.any.html", + "webnn/conformance_tests/instance_normalization.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -762854,6 +762556,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762866,7 +762576,7 @@ } ], [ - "webnn/conformance_tests/instance_normalization.https.any.worker.html", + "webnn/conformance_tests/instance_normalization.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -762878,6 +762588,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762891,9 +762609,73 @@ ] ], "layer_normalization.https.any.js": [ - "ab8a50cc0374412bab18ff63a4ec894182090b06", + "ea3cd04240b345439639706666ca7091fdff719c", + [ + "webnn/conformance_tests/layer_normalization.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API layerNormalization operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/layer_normalization.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API layerNormalization operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/layer_normalization.https.any.html", + "webnn/conformance_tests/layer_normalization.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -762905,6 +762687,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762917,7 +762707,7 @@ } ], [ - "webnn/conformance_tests/layer_normalization.https.any.worker.html", + "webnn/conformance_tests/layer_normalization.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -762929,6 +762719,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762942,9 +762740,41 @@ ] ], "leaky_relu.https.any.js": [ - "2b6f17e95dee4a5b5ae8e5fc246278dd261ae476", + "b2a4055bde70aa4009f227ef8ac9ef2c9a0eb6ed", + [ + "webnn/conformance_tests/leaky_relu.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API leakyRelu operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/leaky_relu.https.any.html", + "webnn/conformance_tests/leaky_relu.https.any.html?gpu", { "script_metadata": [ [ @@ -762956,6 +762786,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762968,7 +762806,7 @@ } ], [ - "webnn/conformance_tests/leaky_relu.https.any.worker.html", + "webnn/conformance_tests/leaky_relu.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -762980,6 +762818,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/leaky_relu.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API leakyRelu operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -762993,9 +762871,9 @@ ] ], "linear.https.any.js": [ - "465b697f29ae5765805559ebb7253994d7f88f78", + "0e22f7a0360f151bed23197611b815fd60061637", [ - "webnn/conformance_tests/linear.https.any.html", + "webnn/conformance_tests/linear.https.any.html?cpu", { "script_metadata": [ [ @@ -763007,6 +762885,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763019,7 +762905,7 @@ } ], [ - "webnn/conformance_tests/linear.https.any.worker.html", + "webnn/conformance_tests/linear.https.any.html?gpu", { "script_metadata": [ [ @@ -763031,6 +762917,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/linear.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API linear operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/linear.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API linear operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763044,9 +763002,73 @@ ] ], "matmul.https.any.js": [ - "64eeb37f08bc47482e3806af7f6eb21147198f85", + "da7823057924b3df87aafa83afcb45796d4b9ca4", + [ + "webnn/conformance_tests/matmul.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API matmul operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/matmul.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API matmul operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/matmul.https.any.html", + "webnn/conformance_tests/matmul.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763058,6 +763080,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763070,7 +763100,7 @@ } ], [ - "webnn/conformance_tests/matmul.https.any.worker.html", + "webnn/conformance_tests/matmul.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -763082,6 +763112,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763095,9 +763133,9 @@ ] ], "pad.https.any.js": [ - "f1a2400d1cb01c5b0dd7e16c114e92a1eec13019", + "d733cbb6edb730b1aaaad8019eda3683edeb286d", [ - "webnn/conformance_tests/pad.https.any.html", + "webnn/conformance_tests/pad.https.any.html?cpu", { "script_metadata": [ [ @@ -763109,6 +763147,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/pad.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API pad operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/pad.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API pad operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763121,7 +763231,7 @@ } ], [ - "webnn/conformance_tests/pad.https.any.worker.html", + "webnn/conformance_tests/pad.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -763133,6 +763243,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763146,9 +763264,41 @@ ] ], "parallel-compute.https.any.js": [ - "304ea5f202fa895f41853e3b0864b297c4be5a56", + "642fec9f731bb5d207cb66597ea4a904f3ff6c01", + [ + "webnn/conformance_tests/parallel-compute.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test parallel WebNN API compute operations" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/parallel-compute.https.any.html", + "webnn/conformance_tests/parallel-compute.https.any.html?gpu", { "script_metadata": [ [ @@ -763160,6 +763310,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763172,7 +763330,7 @@ } ], [ - "webnn/conformance_tests/parallel-compute.https.any.worker.html", + "webnn/conformance_tests/parallel-compute.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763184,6 +763342,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/parallel-compute.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test parallel WebNN API compute operations" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763197,9 +763395,9 @@ ] ], "pooling.https.any.js": [ - "400d5ed37de1563261ffe71863e45752ea56f4b7", + "de2ae35a9c1f5b45bb1c3ed74fdee9ce58748fdd", [ - "webnn/conformance_tests/pooling.https.any.html", + "webnn/conformance_tests/pooling.https.any.html?cpu", { "script_metadata": [ [ @@ -763211,6 +763409,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763223,7 +763429,7 @@ } ], [ - "webnn/conformance_tests/pooling.https.any.worker.html", + "webnn/conformance_tests/pooling.https.any.html?gpu", { "script_metadata": [ [ @@ -763235,6 +763441,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/pooling.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API pooling operations" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/pooling.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API pooling operations" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763248,9 +763526,9 @@ ] ], "prelu.https.any.js": [ - "83cc9db4b4dd5f8dfa9b55b845c46205d107a882", + "9337211e548635746e238784c2bab94388e4a7b6", [ - "webnn/conformance_tests/prelu.https.any.html", + "webnn/conformance_tests/prelu.https.any.html?cpu", { "script_metadata": [ [ @@ -763262,6 +763540,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/prelu.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API prelu operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763274,7 +763592,7 @@ } ], [ - "webnn/conformance_tests/prelu.https.any.worker.html", + "webnn/conformance_tests/prelu.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763286,6 +763604,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/prelu.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API prelu operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763299,9 +763657,41 @@ ] ], "reduction.https.any.js": [ - "30bfb4ba7a8c3c2a102d35b17dc1eda2029cc2e6", + "c291906ba1c7b1bf6fd3990be49981c346c939c0", + [ + "webnn/conformance_tests/reduction.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API reduction operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/reduction.https.any.html", + "webnn/conformance_tests/reduction.https.any.html?gpu", { "script_metadata": [ [ @@ -763313,6 +763703,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763325,7 +763723,7 @@ } ], [ - "webnn/conformance_tests/reduction.https.any.worker.html", + "webnn/conformance_tests/reduction.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763337,6 +763735,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/reduction.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API reduction operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763350,9 +763788,73 @@ ] ], "relu.https.any.js": [ - "51e427898fe2068bde1649071004a4d3df4f1146", + "7cb23eea1bdab567b3252279e944cf6b6470aedc", + [ + "webnn/conformance_tests/relu.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API relu operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/relu.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API relu operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/relu.https.any.html", + "webnn/conformance_tests/relu.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763364,6 +763866,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763376,7 +763886,7 @@ } ], [ - "webnn/conformance_tests/relu.https.any.worker.html", + "webnn/conformance_tests/relu.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -763388,6 +763898,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763401,9 +763919,9 @@ ] ], "resample2d.https.any.js": [ - "0b5b3e00320299d2092e0137cc0e33849f38fe37", + "b5bdda7197ec056dd0be568970e4b3c8ca2a07d6", [ - "webnn/conformance_tests/resample2d.https.any.html", + "webnn/conformance_tests/resample2d.https.any.html?cpu", { "script_metadata": [ [ @@ -763415,6 +763933,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763427,7 +763953,7 @@ } ], [ - "webnn/conformance_tests/resample2d.https.any.worker.html", + "webnn/conformance_tests/resample2d.https.any.html?gpu", { "script_metadata": [ [ @@ -763439,6 +763965,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/resample2d.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API resample2d operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/resample2d.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API resample2d operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763452,9 +764050,9 @@ ] ], "reshape.https.any.js": [ - "c0dafb176c41c4d9d6d9dc169fbb834821a8d09e", + "a7d03b2a0c2b46c2b1dc1090d1dd6137e8b4de99", [ - "webnn/conformance_tests/reshape.https.any.html", + "webnn/conformance_tests/reshape.https.any.html?cpu", { "script_metadata": [ [ @@ -763466,6 +764064,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763478,7 +764084,7 @@ } ], [ - "webnn/conformance_tests/reshape.https.any.worker.html", + "webnn/conformance_tests/reshape.https.any.html?gpu", { "script_metadata": [ [ @@ -763490,6 +764096,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/reshape.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API reshape operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/reshape.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API reshape operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763503,9 +764181,73 @@ ] ], "sigmoid.https.any.js": [ - "186f46891816aa0cff77c1c740861791ff0c9772", + "9730b548b5622c960539fa88eb9f9719e836905a", + [ + "webnn/conformance_tests/sigmoid.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API sigmoid operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/sigmoid.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API sigmoid operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/sigmoid.https.any.html", + "webnn/conformance_tests/sigmoid.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763517,6 +764259,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763529,7 +764279,7 @@ } ], [ - "webnn/conformance_tests/sigmoid.https.any.worker.html", + "webnn/conformance_tests/sigmoid.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -763541,6 +764291,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763554,9 +764312,73 @@ ] ], "slice.https.any.js": [ - "64412045176e0af1b96d7f9bfd646d5cf3a0d8b8", + "b316ea58c4b9f49e8a1dd941c731d2d79cca86c3", + [ + "webnn/conformance_tests/slice.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API slice operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/slice.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API slice operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/slice.https.any.html", + "webnn/conformance_tests/slice.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763568,6 +764390,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763580,7 +764410,7 @@ } ], [ - "webnn/conformance_tests/slice.https.any.worker.html", + "webnn/conformance_tests/slice.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -763592,6 +764422,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763605,9 +764443,41 @@ ] ], "softmax.https.any.js": [ - "143b7d969fc51ddeecbfd6cdfef173a015e52631", + "a68a32c45f04728956738c2feaad4eb4384c5148", + [ + "webnn/conformance_tests/softmax.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API softmax operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/softmax.https.any.html", + "webnn/conformance_tests/softmax.https.any.html?gpu", { "script_metadata": [ [ @@ -763619,6 +764489,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763631,7 +764509,7 @@ } ], [ - "webnn/conformance_tests/softmax.https.any.worker.html", + "webnn/conformance_tests/softmax.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763643,6 +764521,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/softmax.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API softmax operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763656,9 +764574,9 @@ ] ], "softplus.https.any.js": [ - "fcd6410bdb3c875e8309516add453d11f7d05783", + "7d89b117eb54c024bf0626af88bd42acfb7dc3bf", [ - "webnn/conformance_tests/softplus.https.any.html", + "webnn/conformance_tests/softplus.https.any.html?cpu", { "script_metadata": [ [ @@ -763670,6 +764588,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763682,7 +764608,7 @@ } ], [ - "webnn/conformance_tests/softplus.https.any.worker.html", + "webnn/conformance_tests/softplus.https.any.html?gpu", { "script_metadata": [ [ @@ -763694,6 +764620,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/softplus.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API softplus operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/softplus.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API softplus operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763707,9 +764705,73 @@ ] ], "softsign.https.any.js": [ - "6e26afdadee7a7e5cf38fa47eb34675aabab428d", + "e175e0de56c18e5bcebdcfd9bd475bb96ec6fa63", + [ + "webnn/conformance_tests/softsign.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API softsign operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/softsign.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API softsign operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/softsign.https.any.html", + "webnn/conformance_tests/softsign.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763721,6 +764783,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763733,7 +764803,7 @@ } ], [ - "webnn/conformance_tests/softsign.https.any.worker.html", + "webnn/conformance_tests/softsign.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -763745,6 +764815,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763758,9 +764836,73 @@ ] ], "split.https.any.js": [ - "0de6cb4d8df0c214ed0f015b57d1f43524039ef9", + "78d707687f08ff2bcf1fffc1429930fb26684db6", + [ + "webnn/conformance_tests/split.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API split operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/split.https.any.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API split operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/split.https.any.html", + "webnn/conformance_tests/split.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763772,6 +764914,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763784,7 +764934,7 @@ } ], [ - "webnn/conformance_tests/split.https.any.worker.html", + "webnn/conformance_tests/split.https.any.worker.html?gpu", { "script_metadata": [ [ @@ -763796,6 +764946,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763809,9 +764967,41 @@ ] ], "tanh.https.any.js": [ - "c5d1f86ab1ccd9af2e5b91d5ca2a3df281a85ba5", + "e3ab5e9192de01fda2a05b9089f58504b56195dd", + [ + "webnn/conformance_tests/tanh.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API tanh operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/tanh.https.any.html", + "webnn/conformance_tests/tanh.https.any.html?gpu", { "script_metadata": [ [ @@ -763823,6 +765013,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763835,7 +765033,7 @@ } ], [ - "webnn/conformance_tests/tanh.https.any.worker.html", + "webnn/conformance_tests/tanh.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -763847,6 +765045,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/tanh.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API tanh operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763860,9 +765098,9 @@ ] ], "transpose.https.any.js": [ - "746e53d512ac7f10fa3775082d4f8cf89eea3082", + "83bd7a45c18f31175db3ad9706e19fa8d049f42a", [ - "webnn/conformance_tests/transpose.https.any.html", + "webnn/conformance_tests/transpose.https.any.html?cpu", { "script_metadata": [ [ @@ -763874,6 +765112,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763886,7 +765132,7 @@ } ], [ - "webnn/conformance_tests/transpose.https.any.worker.html", + "webnn/conformance_tests/transpose.https.any.html?gpu", { "script_metadata": [ [ @@ -763898,6 +765144,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/transpose.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API transpose operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/transpose.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API transpose operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763911,9 +765229,9 @@ ] ], "triangular.https.any.js": [ - "503f310620b9c262d8b7e7186dd9f575f932384d", + "499f60ed3668b7ee219dc326591da008681b6f3a", [ - "webnn/conformance_tests/triangular.https.any.html", + "webnn/conformance_tests/triangular.https.any.html?cpu", { "script_metadata": [ [ @@ -763925,6 +765243,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763937,7 +765263,7 @@ } ], [ - "webnn/conformance_tests/triangular.https.any.worker.html", + "webnn/conformance_tests/triangular.https.any.html?gpu", { "script_metadata": [ [ @@ -763949,6 +765275,78 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/triangular.https.any.worker.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API triangular operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/triangular.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API triangular operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763962,9 +765360,41 @@ ] ], "where.https.any.js": [ - "7926221d3aefb7b914202ff4f02fb2746368866a", + "4ab453ab24535a88a2f6a7f73bc2ee17988f0277", + [ + "webnn/conformance_tests/where.https.any.html?cpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API where operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], [ - "webnn/conformance_tests/where.https.any.html", + "webnn/conformance_tests/where.https.any.html?gpu", { "script_metadata": [ [ @@ -763976,6 +765406,14 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -763988,7 +765426,7 @@ } ], [ - "webnn/conformance_tests/where.https.any.worker.html", + "webnn/conformance_tests/where.https.any.worker.html?cpu", { "script_metadata": [ [ @@ -764000,6 +765438,46 @@ "window,dedicatedworker" ], [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ + "script", + "../resources/utils.js" + ], + [ + "timeout", + "long" + ] + ], + "timeout": "long" + } + ], + [ + "webnn/conformance_tests/where.https.any.worker.html?gpu", + { + "script_metadata": [ + [ + "title", + "test WebNN API where operation" + ], + [ + "global", + "window,dedicatedworker" + ], + [ + "variant", + "?cpu" + ], + [ + "variant", + "?gpu" + ], + [ "script", "../resources/utils.js" ], @@ -767051,7 +768529,7 @@ ] ], "back-forward-cache-with-open-webrtc-connection.https.window.js": [ - "fe41a9cfd51c9b3f78cc500c34369314376ca1d2", + "de797b3f2c541f3d432a17807ea366f342167e06", [ "webrtc/back-forward-cache-with-open-webrtc-connection.https.window.html", { @@ -767079,8 +768557,13 @@ [ "script", "resources/webrtc-test-helpers.sub.js" + ], + [ + "timeout", + "long" ] - ] + ], + "timeout": "long" } ] ], diff --git a/tests/wpt/meta/css/css-transitions/starting-style-size-container.html.ini b/tests/wpt/meta/css/css-transitions/starting-style-size-container.html.ini index bbefc2ffbf3..2a9edeb61d4 100644 --- a/tests/wpt/meta/css/css-transitions/starting-style-size-container.html.ini +++ b/tests/wpt/meta/css/css-transitions/starting-style-size-container.html.ini @@ -1,3 +1,6 @@ [starting-style-size-container.html] [Triggered transition from first style update based on up-to-date container query] expected: FAIL + + [Triggered transition from the display change inside the up-to-date container query] + expected: FAIL diff --git a/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini new file mode 100644 index 00000000000..a8a6116fd40 --- /dev/null +++ b/tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini @@ -0,0 +1,3 @@ +[MediaQueryList-extends-EventTarget-interop.html] + [listener added with addListener and addEventListener is called once] + expected: FAIL diff --git a/tests/wpt/meta/dom/nodes/moveBefore/tentative/focus-preserve.html.ini b/tests/wpt/meta/dom/nodes/moveBefore/tentative/focus-preserve.html.ini new file mode 100644 index 00000000000..f51e042347f --- /dev/null +++ b/tests/wpt/meta/dom/nodes/moveBefore/tentative/focus-preserve.html.ini @@ -0,0 +1,12 @@ +[focus-preserve.html] + [when reparenting an element, don't automatically reset the document focus] + expected: FAIL + + [when reparenting a focused element into an inert parent, reset the document focus] + expected: FAIL + + [when reparenting a focused element into a hidden parent, reset the document focus] + expected: FAIL + + [when reparenting an ancestor of an focused element into a hidden parent, reset the document focus] + expected: FAIL diff --git a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini b/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini deleted file mode 100644 index 7dc346632a4..00000000000 --- a/tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini +++ /dev/null @@ -1,3 +0,0 @@ -[navigation-unload-same-origin.window.html] - [Same-origin navigation started from unload handler must be ignored] - expected: FAIL diff --git a/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini b/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini new file mode 100644 index 00000000000..a03a8322165 --- /dev/null +++ b/tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini @@ -0,0 +1,3 @@ +[traverse_the_history_3.html] + [Multiple history traversals, last would be aborted] + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini index 24903b5f66f..d7d0d3ef89d 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_escaping-1.html] expected: TIMEOUT [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini index d4b2e4435a0..6a420504feb 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini @@ -1,3 +1,3 @@ [iframe_sandbox_popups_escaping-3.html] [Check that popups from a sandboxed iframe escape the sandbox if\n allow-popups-to-escape-sandbox is used] - expected: TIMEOUT + expected: FAIL diff --git a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini index a6591b318dc..c6f1e5d7d84 100644 --- a/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini +++ b/tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini @@ -1,4 +1,4 @@ [iframe_sandbox_popups_nonescaping-2.html] expected: TIMEOUT [Check that popups from a sandboxed iframe do not escape the sandbox] - expected: FAIL + expected: NOTRUN diff --git a/tests/wpt/meta/webmessaging/without-ports/017.html.ini b/tests/wpt/meta/webmessaging/without-ports/017.html.ini new file mode 100644 index 00000000000..c7946fc91b4 --- /dev/null +++ b/tests/wpt/meta/webmessaging/without-ports/017.html.ini @@ -0,0 +1,4 @@ +[017.html] + expected: TIMEOUT + [origin of the script that invoked the method, about:blank] + expected: TIMEOUT diff --git a/tests/wpt/tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html b/tests/wpt/tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html index 613ddfe99d8..bff63fad8d1 100644 --- a/tests/wpt/tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html +++ b/tests/wpt/tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html @@ -13,7 +13,7 @@ let open_rq = createdb(t); open_rq.onupgradeneeded = function(e) { let db = e.target.result; - let objStore = db.createObjectStore("test", { keyPath:"pKey" }); + let objStore = db.createObjectStore("test"); let sab = new SharedArrayBuffer(256); diff --git a/tests/wpt/tests/attribution-reporting/referrer-policy.sub.https.html b/tests/wpt/tests/attribution-reporting/referrer-policy.sub.https.html new file mode 100644 index 00000000000..ee4e0c9a8c1 --- /dev/null +++ b/tests/wpt/tests/attribution-reporting/referrer-policy.sub.https.html @@ -0,0 +1,56 @@ +<!doctype html> +<meta charset=utf-8> +<meta name=timeout content=long> +<meta name=variant content="?method=a"> +<meta name=variant content="?method=a&noreferrer"> +<meta name=variant content="?method=img"> +<meta name=variant content="?method=img&noreferrer"> +<meta name=variant content="?method=open"> +<meta name=variant content="?method=open&noreferrer"> +<meta name=variant content="?method=script"> +<meta name=variant content="?method=script&noreferrer"> +<script src="/resources/testdriver.js"></script> +<script src="/resources/testdriver-vendor.js"></script> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="resources/helpers.js"></script> +<body> +<script> +const waitForRequest = async () => { + const url = blankURL(); + url.searchParams.set('get-requests', 'true'); + + for (let i = 0; i < 20; i++) { + const resp = await fetch(url); + const payload = await resp.json(); + if (payload !== null && payload.length > 0) { + return payload; + } + await delay(100); + } + throw new Error('Timeout polling requests'); +}; + +const searchParams = new URLSearchParams(location.search); + +promise_test(async t => { + const noreferrer = searchParams.has('noreferrer'); + + await registerAttributionSrc({ + method: 'variant', + extraQueryParams: {'store-request': 'true'}, + referrerPolicy: noreferrer ? 'no-referrer' : '', + }); + + const requests = await waitForRequest(); + assert_equals(requests.length, 1); + + if (noreferrer) { + assert_not_own_property(requests[0], 'referer'); + } else { + assert_own_property(requests[0], 'referer'); + assert_equals(requests[0].referer, location.toString()); + } + +}, 'attributionsrc referrer policy is propagated.'); +</script> diff --git a/tests/wpt/tests/attribution-reporting/request-format.sub.https.html b/tests/wpt/tests/attribution-reporting/request-format.sub.https.html index a9e36dd1267..83a2d8f6bdf 100644 --- a/tests/wpt/tests/attribution-reporting/request-format.sub.https.html +++ b/tests/wpt/tests/attribution-reporting/request-format.sub.https.html @@ -53,9 +53,7 @@ promise_test(async t => { } else { assert_not_own_property(requests[0], 'attribution-reporting-eligible'); } - assert_equals(requests[0].referer, location.toString()); - // TODO(apaseltiner): Test various referrer policies. // TODO(apaseltiner): Test cookie propagation. const expectedURL = blankURL(); diff --git a/tests/wpt/tests/attribution-reporting/resources/helpers.js b/tests/wpt/tests/attribution-reporting/resources/helpers.js index e5c749931e0..054df6b9729 100644 --- a/tests/wpt/tests/attribution-reporting/resources/helpers.js +++ b/tests/wpt/tests/attribution-reporting/resources/helpers.js @@ -171,6 +171,7 @@ const registerAttributionSrc = async ({ extraQueryParams = {}, reportingOrigin, extraHeaders = [], + referrerPolicy = '', }) => { const searchParams = new URLSearchParams(location.search); @@ -201,7 +202,6 @@ const registerAttributionSrc = async ({ headers.push({name, value: cookie}); } - let credentials; if (method === 'fetch') { const params = getFetchParams(reportingOrigin, cookie); @@ -219,6 +219,7 @@ const registerAttributionSrc = async ({ switch (method) { case 'img': const img = document.createElement('img'); + img.referrerPolicy = referrerPolicy; if (eligible === null) { img.attributionSrc = url; } else { @@ -236,6 +237,7 @@ const registerAttributionSrc = async ({ return 'event'; case 'script': const script = document.createElement('script'); + script.referrerPolicy = referrerPolicy; if (eligible === null) { script.attributionSrc = url; } else { @@ -249,6 +251,7 @@ const registerAttributionSrc = async ({ return 'event'; case 'a': const a = document.createElement('a'); + a.referrerPolicy = referrerPolicy; a.target = '_blank'; a.textContent = 'link'; if (eligible === null) { @@ -263,12 +266,13 @@ const registerAttributionSrc = async ({ return 'navigation'; case 'open': await test_driver.bless('open window', () => { + const feature = referrerPolicy === 'no-referrer' ? 'noreferrer' : ''; if (eligible === null) { open( blankURL(), '_blank', - `attributionsrc=${encodeURIComponent(url)}`); + `attributionsrc=${encodeURIComponent(url)} ${feature}`); } else { - open(url, '_blank', 'attributionsrc'); + open(url, '_blank', `attributionsrc ${feature}`); } }); return 'navigation'; @@ -277,7 +281,7 @@ const registerAttributionSrc = async ({ if (eligible !== null) { attributionReporting = JSON.parse(eligible); } - await fetch(url, {credentials, attributionReporting}); + await fetch(url, {credentials, attributionReporting, referrerPolicy}); return 'event'; } case 'xhr': diff --git a/tests/wpt/tests/compute-pressure/compute_pressure_supported_sources.https.any.js b/tests/wpt/tests/compute-pressure/compute_pressure_known_sources.https.any.js index 63f2666cca6..5db3053ce9a 100644 --- a/tests/wpt/tests/compute-pressure/compute_pressure_supported_sources.https.any.js +++ b/tests/wpt/tests/compute-pressure/compute_pressure_known_sources.https.any.js @@ -4,18 +4,18 @@ test(() => { // Compute Pressure should support at least "cpu" - const sources = PressureObserver.supportedSources; + const sources = PressureObserver.knownSources; assert_in_array('cpu', sources); }, 'PressureObserver should support at least "cpu"'); test(() => { // Compute Pressure should be frozen array - const sources = PressureObserver.supportedSources; - assert_equals(sources, PressureObserver.supportedSources); + const sources = PressureObserver.knownSources; + assert_equals(sources, PressureObserver.knownSources); }, 'PressureObserver must return always the same array'); test(() => { // Compute Pressure should be frozen array - let sources = PressureObserver.supportedSources; - assert_equals(Object.isFrozen(), true); + let sources = PressureObserver.knownSources; + assert_equals(Object.isFrozen(sources), true); }, 'PressureObserver must return a frozen array'); diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-overflow-hidden-ref.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-overflow-hidden-ref.html deleted file mode 100644 index b674998a5db..00000000000 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-overflow-hidden-ref.html +++ /dev/null @@ -1,37 +0,0 @@ -<!DOCTYPE html> -<link rel="stylesheet" href="/fonts/ahem.css"> -<style> -body { - font: 20px/1 Ahem; - margin: 0; -} - -#placefiller-above-anchor { - height: 200px; -} - -#placefiller-before-anchor { - display: inline-block; - width: 50px; -} - -#inner-anchored { - color: green; - position: fixed; - left: 70px; - top: 180px; -} - -#outer-anchored { - color: yellow; - position: fixed; - left: 70px; - top: 220px; -} -</style> - -<div id="placefiller-above-anchor"></div> -<div id="placefiller-before-anchor"></div> -<span id="anchor">anchor</span> -<div id="inner-anchored">inner-anchored</div> -<div id="outer-anchored">outer-anchored</div> diff --git a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-overflow-hidden.html b/tests/wpt/tests/css/css-anchor-position/anchor-scroll-overflow-hidden.html deleted file mode 100644 index b57e39956bb..00000000000 --- a/tests/wpt/tests/css/css-anchor-position/anchor-scroll-overflow-hidden.html +++ /dev/null @@ -1,67 +0,0 @@ -<!DOCTYPE html> -<title>Basic of anchor positioned scrolling: anchored elements should be "pinned" to the anchor when anchor is scrolled in overflow:hidden</title> -<link rel="help" href="https://drafts.csswg.org/css-anchor-1/"> -<link rel="match" href="anchor-scroll-overflow-hidden-ref.html"> -<link rel="stylesheet" href="/fonts/ahem.css"> -<style> -body { - font: 20px/1 Ahem; - margin: 0; -} - -#scroll-container { - width: 400px; - height: 400px; - overflow: hidden; -} - -#scroll-contents { - width: 1000px; - height: 1000px; -} - -#placefiller-above-anchor { - height: 500px; -} - -#placefiller-before-anchor { - display: inline-block; - width: 500px; -} - -#anchor { - anchor-name: --anchor; -} - -#inner-anchored { - color: green; - position: absolute; - left: anchor(--anchor left); - bottom: anchor(--anchor top); - position-anchor: --anchor; -} - -#outer-anchored { - color: yellow; - position: absolute; - left: anchor(--anchor left); - top: anchor(--anchor bottom); - position-anchor: --anchor; -} -</style> - -<div id="scroll-container"> - <div id="scroll-contents"> - <div id="placefiller-above-anchor"></div> - <div id="placefiller-before-anchor"></div> - <span id="anchor">anchor</span> - <div id="inner-anchored">inner-anchored</div> - </div> -</div> -<div id="outer-anchored">outer-anchored</div> - -<script> -const scroller = document.getElementById('scroll-container'); -scroller.scrollTop = 300; -scroller.scrollLeft = 450; -</script> diff --git a/tests/wpt/tests/css/css-flexbox/min-size-auto-overflow-clip-ref.html b/tests/wpt/tests/css/css-flexbox/min-size-auto-overflow-clip-ref.html new file mode 100644 index 00000000000..2503af6df34 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/min-size-auto-overflow-clip-ref.html @@ -0,0 +1,14 @@ +<!doctype html> +<meta charset="utf-8"> +<style> + .flex { + display: flex; + width: 100px; + border: 1px solid; + } +</style> +<div class="flex"> + <div> + <div style="background: green; width: 150px; height: 50px;"></div> + </div> +</div> diff --git a/tests/wpt/tests/css/css-flexbox/min-size-auto-overflow-clip.html b/tests/wpt/tests/css/css-flexbox/min-size-auto-overflow-clip.html new file mode 100644 index 00000000000..ec3bc5f5932 --- /dev/null +++ b/tests/wpt/tests/css/css-flexbox/min-size-auto-overflow-clip.html @@ -0,0 +1,18 @@ +<!doctype html> +<meta charset="utf-8"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto"> +<link rel="match" href="min-size-auto-overflow-clip-ref.html"> +<title>overflow: visible and clip behave the same for min-size purposes</title> +<style> + .flex { + display: flex; + width: 100px; + border: 1px solid; + } +</style> +<div class="flex"> + <div style="overflow: clip"> + <div style="background: green; width: 150px; height: 50px;"></div> + </div> +</div> diff --git a/tests/wpt/tests/css/css-grid/min-size-auto-overflow-clip-ref.html b/tests/wpt/tests/css/css-grid/min-size-auto-overflow-clip-ref.html new file mode 100644 index 00000000000..64e6ff2d999 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/min-size-auto-overflow-clip-ref.html @@ -0,0 +1,18 @@ +<!doctype html> +<meta charset="utf-8"> +<style> + .flex { + display: flex; + flex-direction: column; + } + .grid { + display: grid; + flex-basis: 20px; + border: 1px solid; + } +</style> +<div class="flex"> + <div class="grid"> + <div style="height: 50px;"></div> + </div> +</div> diff --git a/tests/wpt/tests/css/css-grid/min-size-auto-overflow-clip.html b/tests/wpt/tests/css/css-grid/min-size-auto-overflow-clip.html new file mode 100644 index 00000000000..3dfd2c18f51 --- /dev/null +++ b/tests/wpt/tests/css/css-grid/min-size-auto-overflow-clip.html @@ -0,0 +1,22 @@ +<!doctype html> +<meta charset="utf-8"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="help" href="https://drafts.csswg.org/css-grid/#min-size-auto"> +<link rel="match" href="min-size-auto-overflow-clip-ref.html"> +<title>overflow: visible and clip behave the same for min-size purposes</title> +<style> + .flex { + display: flex; + flex-direction: column; + } + .grid { + display: grid; + flex-basis: 20px; + border: 1px solid; + } +</style> +<div class="flex"> + <div class="grid" style="overflow: clip"> + <div style="height: 50px;"></div> + </div> +</div> diff --git a/tests/wpt/tests/css/css-images/gradient/repeating-gradient-hsl-and-oklch-ref.html b/tests/wpt/tests/css/css-images/gradient/repeating-gradient-hsl-and-oklch-ref.html new file mode 100644 index 00000000000..a5e1554be14 --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/repeating-gradient-hsl-and-oklch-ref.html @@ -0,0 +1,47 @@ +<!doctype html> +<html lang="en"> + +<head> + <meta charset="utf-8"> + <title>Repeating linear gradients in HSL and OKLCH space</title> + <link rel="author" title="Ashley Hale" href="mailto:ahale@mozilla.com"> + <style> + body { + background: #fff; + } + + .a { + width: 100px; + height: 100px; + background: repeating-linear-gradient( + to bottom, + hsl(180 50% 70%) 0px 20px, + hsl(0 50% 50%) 20px 40px, + hsl(180 50% 70%) 40px 60px, + hsl(0 50% 50%) 60px 80px, + hsl(180 50% 70%) 80px 100px + ); + } + + .b { + width: 100px; + height: 100px; + background: repeating-linear-gradient( + to bottom, + oklch(70% 50% 180) 0px 20px, + oklch(50% 50% 0) 20px 40px, + oklch(70% 50% 180) 40px 60px, + oklch(50% 50% 0) 60px 80px, + oklch(70% 50% 180) 80px 100px + ); + } + </style> +</head> + +<body> + <p>repeating-linear-gradient with HSL</p> + <div class="a"></div> + <p>repeating-linear-gradient with OKLCH</p> + <div class="b"></div> +</body> +</html> diff --git a/tests/wpt/tests/css/css-images/gradient/repeating-gradient-hsl-and-oklch.html b/tests/wpt/tests/css/css-images/gradient/repeating-gradient-hsl-and-oklch.html new file mode 100644 index 00000000000..82e65d1dac7 --- /dev/null +++ b/tests/wpt/tests/css/css-images/gradient/repeating-gradient-hsl-and-oklch.html @@ -0,0 +1,44 @@ +<!doctype html> +<html lang="en"> +<meta name=fuzzy content="maxDifference=0-1;totalPixels=0-2000"> +<head> + <meta charset="utf-8"> + <title>Repeating linear gradients in HSL and OKLCH space</title> + <link rel="author" title="Ashley Hale" href="mailto:ahale@mozilla.com"> + <link rel="help" href="https://www.w3.org/TR/css-color-4/#interpolation"> + <meta name="assert" content="Tests that a multi-stop shorter hue gradient and a single-stop longer hue (wrapping) gradient match in appearance"> + <link rel="match" href="repeating-gradient-hsl-and-oklch-ref.html"> + <style> + body { + background: #fff; + } + + .a { + width: 100px; + height: 100px; + background: repeating-linear-gradient( + to bottom, + hsl(180 50% 70%) 0px 20px, + hsl(0 50% 50%) 20px 40px + ); + } + + .b { + width: 100px; + height: 100px; + background: repeating-linear-gradient( + to bottom, + oklch(70% 50% 180) 0px 20px, + oklch(50% 50% 0) 20px 40px + ); + } + </style> +</head> + +<body> + <p>repeating-linear-gradient with HSL</p> + <div class="a"></div> + <p>repeating-linear-gradient with OKLCH</p> + <div class="b"></div> +</body> +</html> diff --git a/tests/wpt/tests/css/css-page/fixedpos-009-print-ref.html b/tests/wpt/tests/css/css-page/fixedpos-009-print-ref.html new file mode 100644 index 00000000000..31a6a6724fa --- /dev/null +++ b/tests/wpt/tests/css/css-page/fixedpos-009-print-ref.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<style> + body { + margin: 0; + } + .pencil { + background-color: black; + mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzQtMi4zNGEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=); + mask-repeat: no-repeat; + width: 36px; + height: 36px; + } + .fakepage { + position: relative; + height: 100vh; + } +</style> +<div class="fakepage"> + <div style="position:absolute; bottom:0; right:0;"> + <div class="pencil"></div> + </div> + When printed, there should be two pages. There should be a black pencil in the + bottom right corner on both pages. +</div> + +<div class="fakepage"> + <div style="position:absolute; bottom:0; right:0;"> + <div class="pencil"></div> + </div> + Page 2. +</div> diff --git a/tests/wpt/tests/css/css-page/fixedpos-009-print.html b/tests/wpt/tests/css/css-page/fixedpos-009-print.html new file mode 100644 index 00000000000..803a077c0a7 --- /dev/null +++ b/tests/wpt/tests/css/css-page/fixedpos-009-print.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="http://crbug.com/337791467"> +<link rel="match" href="fixedpos-009-print-ref.html"> +<style> + body { + margin: 0; + } + .pencil { + background-color: black; + mask-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PHBhdGggZD0iTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGEuOTk2Ljk5NiAwIDAgMCAwLTEuNDFsLTIuMzQtMi4zNGEuOTk2Ljk5NiAwIDAgMC0xLjQxIDBsLTEuODMgMS44MyAzLjc1IDMuNzUgMS44My0xLjgzeiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=); + mask-repeat: no-repeat; + width: 36px; + height: 36px; + } +</style> +<div style="position:fixed; bottom:0; right:0;"> + <div class="pencil"></div> +</div> +When printed, there should be two pages. There should be a black pencil in the +bottom right corner on both pages. +<div style="break-before:page;"> + Page 2. +</div> diff --git a/tests/wpt/tests/css/css-page/fixedpos-010-print-ref.html b/tests/wpt/tests/css/css-page/fixedpos-010-print-ref.html new file mode 100644 index 00000000000..90bd5e7fc31 --- /dev/null +++ b/tests/wpt/tests/css/css-page/fixedpos-010-print-ref.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<style> + @page { + size: 400px; + margin: 0; + } + @page large { + size: 500px 400px; + } + body { + margin: 0; + } +</style> +This page should <em>not</em> have a blue box. +<div style="page:large;"> + <div style="float:right; margin-top:300px; width:100px; height:100px; background:blue;"></div> + <div style="width:400px;"> + This page should have a blue box in the bottom right corner. + </div> + <div style="break-before:page;"> + <div style="float:right; margin-top:300px; width:100px; height:100px; background:blue;"></div> + <div style="width:400px;"> + This page should have a blue box in the bottom right corner. + </div> + </div> +</div> +This page should <em>not</em> have a blue box. diff --git a/tests/wpt/tests/css/css-page/fixedpos-010-print.html b/tests/wpt/tests/css/css-page/fixedpos-010-print.html new file mode 100644 index 00000000000..cdd50828d86 --- /dev/null +++ b/tests/wpt/tests/css/css-page/fixedpos-010-print.html @@ -0,0 +1,25 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mailto:mstensho@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/css-position-3/#valdef-position-fixed"> +<link rel="match" href="fixedpos-010-print-ref.html"> +<style> + @page { + size: 400px; + margin: 0; + } + @page large { + size: 500px 400px; + } + body { + margin: 0; + } +</style> +<div style="position:fixed; right:-100px; bottom:0; width:100px; height:100px; background:blue;"></div> +This page should <em>not</em> have a blue box. +<div style="page:large; width:400px;"> + This page should have a blue box in the bottom right corner. + <div style="break-before:page;"> + This page should have a blue box in the bottom right corner. + </div> +</div> +This page should <em>not</em> have a blue box. diff --git a/tests/wpt/tests/css/css-transitions/starting-style-size-container.html b/tests/wpt/tests/css/css-transitions/starting-style-size-container.html index 92ad6e61251..1ad609dd909 100644 --- a/tests/wpt/tests/css/css-transitions/starting-style-size-container.html +++ b/tests/wpt/tests/css/css-transitions/starting-style-size-container.html @@ -5,32 +5,58 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/css/css-transitions/support/helper.js"></script> -<div id="container" style="width: 200px"> - <div id="target" style="display: none"></div> -</div> +<body> +</body> <style> #container { container-type: inline-size; + width: 100px; } #target { transition-property: background-color; transition-duration: 100s; transition-timing-function: steps(2, start); background-color: lime; + display: none; } @container (width > 300px) { @starting-style { #target { background-color: white; } } } - @container (width < 300px) { + @container ((width > 200px) and (width < 300px)) { + #target { + display: block; + } + @starting-style { + #target { background-color: white; } + } + } + @container (width < 200px) { @starting-style { #target { background-color: red; } } } </style> <script> + function setup(test) { + let container = document.createElement("div"); + container.id = "container"; + document.body.appendChild(container); + + let target = document.createElement("div"); + target.id = "target"; + container.appendChild(target); + + test.add_cleanup(() => { + target.remove(); + container.remove(); + }); + return [container, target]; + } + promise_test(async t => { + let [container, target] = setup(t); await waitForAnimationFrames(2); assert_equals(getComputedStyle(target).backgroundColor, "rgb(0, 255, 0)", "No transition while display:none"); @@ -38,6 +64,21 @@ target.style.display = "block"; await waitForAnimationFrames(2); assert_equals(getComputedStyle(target).backgroundColor, "rgb(128, 255, 128)", - "@starting-style based on the size query evaluation from the same frame"); - }, "Triggered transition from first style update based on up-to-date container query"); + "@starting-style based on the size query evaluation from " + + "the same frame"); + }, "Triggered transition from first style update based on up-to-date " + + "container query"); + + promise_test(async t => { + let [container, target] = setup(t); + await waitForAnimationFrames(2); + assert_equals(getComputedStyle(target).backgroundColor, "rgb(0, 255, 0)", + "No transition while display:none"); + container.style.width = "250px"; + await waitForAnimationFrames(2); + assert_equals(getComputedStyle(target).backgroundColor, "rgb(128, 255, 128)", + "@starting-style based on the size query evaluation from " + + "the same frame"); + }, "Triggered transition from the display change inside the up-to-date " + + "container query"); </script> diff --git a/tests/wpt/tests/css/css-view-transitions/new-content-ancestor-clipped-ref.html b/tests/wpt/tests/css/css-view-transitions/new-content-ancestor-clipped-ref.html new file mode 100644 index 00000000000..caa99f28079 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/new-content-ancestor-clipped-ref.html @@ -0,0 +1,34 @@ +<!doctype HTML> +<html> +<head> +<style> +html { + background: lightpink; +} +div { + position: relative; + width: 200px; + height: 200px; +} + +.outer { + background-color: blue; + box-shadow: -50px -50px 0px 0px rgba(0,0,0,1); + left: 100px; + top: 100px; +} + +.inner { + background-color: red; + left: 50px; + top: 50px; +} + +</style> +</head> +<body> +</body> +<div class="outer"> + <div class="inner"></div> +</div> +</html> diff --git a/tests/wpt/tests/css/css-view-transitions/new-content-ancestor-clipped.html b/tests/wpt/tests/css/css-view-transitions/new-content-ancestor-clipped.html new file mode 100644 index 00000000000..69a8de5f527 --- /dev/null +++ b/tests/wpt/tests/css/css-view-transitions/new-content-ancestor-clipped.html @@ -0,0 +1,50 @@ +<!DOCTYPE html> +<html class=reftest-wait> +<title>View transitions: capture opacity elements</title> +<link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> +<link rel="author" href="mailto:mattwoodrow@apple.com"> +<link rel="match" href="new-content-ancestor-clipped-ref.html"> +<script src="/common/reftest-wait.js"></script> +<style> +.outer { + background-color: blue; + overflow: hidden; + box-shadow: -50px -50px 0px 0px rgba(0,0,0,1); + position: relative; + left: 100px; + top: 100px; + width: 200px; + height: 200px; + view-transition-name: outer; +} +.inner { + background-color: red; + position: relative; + left: 50px; + top: 50px; + width: 200px; + height: 200px; + view-transition-name: inner; +} +/* We're verifying what we capture, so just display the new contents for 5 minutes. */ +html::view-transition-group(*) { animation-duration: 300s; } +html::view-transition-new(*) { animation: unset; opacity: 1; } +html::view-transition-old(*) { animation: unset; opacity: 0; } +/* hide the root so we show transition background to ensure we're in a transition */ +html::view-transition-group(root) { animation: unset; opacity: 0; } +html::view-transition { background: lightpink; } +</style> +<div class="outer"> + <div class="inner"></div> +</div> +<script> +failIfNot(document.startViewTransition, "Missing document.startViewTransition"); + +async function runTest() { + let t = document.startViewTransition(() => { + requestAnimationFrame(() => requestAnimationFrame(takeScreenshot)); + }); +} +onload = () => requestAnimationFrame(() => requestAnimationFrame(runTest)); +</script> + diff --git a/tests/wpt/tests/css/css-view-transitions/pseudo-with-classes-match-wildard.html b/tests/wpt/tests/css/css-view-transitions/pseudo-with-classes-match-wildcard.html index 13490d58786..13490d58786 100644 --- a/tests/wpt/tests/css/css-view-transitions/pseudo-with-classes-match-wildard.html +++ b/tests/wpt/tests/css/css-view-transitions/pseudo-with-classes-match-wildcard.html diff --git a/tests/wpt/tests/css/css-viewport/zoom/relative-units-from-parent-ref.html b/tests/wpt/tests/css/css-viewport/zoom/relative-units-from-parent-ref.html new file mode 100644 index 00000000000..4e7456ce718 --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/relative-units-from-parent-ref.html @@ -0,0 +1,4 @@ +<!doctype html> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width"> +<div style="font-size: 4em; line-height: 4lh">ABC</div> diff --git a/tests/wpt/tests/css/css-viewport/zoom/relative-units-from-parent.html b/tests/wpt/tests/css/css-viewport/zoom/relative-units-from-parent.html new file mode 100644 index 00000000000..57df82b6f1c --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/relative-units-from-parent.html @@ -0,0 +1,13 @@ +<!doctype html> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1892676"> +<link rel="help" href="https://drafts.csswg.org/css-viewport/#zoom-property"> +<link rel="match" href="relative-units-from-parent-ref.html"> +<!-- + The font-size and line-height use the parent sizes, but should still + multiply by our own zoom. +--> +<div style="zoom: 2; font-size: 2em; line-height: 2lh">ABC</div> diff --git a/tests/wpt/tests/css/css-viewport/zoom/relative-units.html b/tests/wpt/tests/css/css-viewport/zoom/relative-units.html new file mode 100644 index 00000000000..8cfa27c93ad --- /dev/null +++ b/tests/wpt/tests/css/css-viewport/zoom/relative-units.html @@ -0,0 +1,42 @@ +<!doctype html> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width"> +<link rel="author" title="Emilio Cobos Álvarez" href="mailto:emilio@crisal.io"> +<link rel="author" title="Mozilla" href="https://mozilla.org"> +<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1892676"> +<link rel="help" href="https://drafts.csswg.org/css-viewport/#zoom-property"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + :root, + #zoomed { + font-size: 10px; + line-height: 10px; + zoom: 2; + } +</style> +<div id="outside"></div> +<div id="zoomed"> + <div id="inside"></div> +</div> +<script> + function test_unit(unit, outside, zoomed, inside = zoomed) { + test(function() { + let values = { outside, zoomed, inside }; + for (let id of ["outside", "zoomed", "inside"]) { + let el = document.getElementById(id); + el.style.height = "1" + unit; + // approx_equals is needed because innerHeight / innerWidth round. + assert_approx_equals(el.getBoundingClientRect().height, values[id], 1, `${unit} in ${id}`); + el.style.height = ""; + } + }); + } + + test_unit("em", 20, 40); + test_unit("rem", 20, 40); + test_unit("lh", 20, 40); + test_unit("rlh", 20, 40); + test_unit("vh", 2 * innerHeight / 100, 4 * innerHeight / 100); + test_unit("vw", 2 * innerWidth / 100, 4 * innerWidth / 100); +</script> diff --git a/tests/wpt/tests/css/cssom-view/offsetTop-offsetLeft-with-zoom.html b/tests/wpt/tests/css/cssom-view/offsetTop-offsetLeft-with-zoom.html index a60a18a4313..b0f11ea02e5 100644 --- a/tests/wpt/tests/css/cssom-view/offsetTop-offsetLeft-with-zoom.html +++ b/tests/wpt/tests/css/cssom-view/offsetTop-offsetLeft-with-zoom.html @@ -24,7 +24,6 @@ margin: 1px; top:10x; left: 10x; - } .one { position: relative; @@ -36,7 +35,7 @@ top: 20px; left: 20px; zoom: 2; - } + } .three { position: absolute; @@ -54,18 +53,18 @@ <div id="unzoomed_two" class="square two"></div> <div id="unzoomed_three" class="square three"></div> </div> -<div style="zoom:3" class=outer_div> +<div style="zoom:3" class="outer_div"> <div id="zoomed_one" class="square one"></div> <div id="zoomed_two" class="square two"></div> <div id="zoomed_three" class="square three"></div> </div> -<div class ="outer_div" style="margin: 30px;" id="outer_div"> +<div class="outer_div" style="margin: 30px;" id="outer_div"> <div id="zoomed_middle" style="margin: 10px; zoom:2"> <div class="square" id="unzoomed_inner"></div> </div> </div> -<div class = outer_div style="margin: 30px;"> +<div class="outer_div" style="margin: 30px;"> <div id="unzoomed_middle"> <div class="square" id="zoomed_inner" style="zoom:2; width: 100px; height: 100px; border: 1px solid black;"></div> </div> @@ -90,12 +89,12 @@ test(() => { assert_equals(unzoomed_inner.offsetLeft, 11, 'unzoomed_inner.offsetLeft'); assert_equals(zoomed_inner.offsetTop, 0, 'zoomed_inner.offsetTop'); assert_equals(zoomed_inner.offsetLeft, 1, 'zoomed_inner.offsetLeft'); +}, 'Verifies that offsetTop and offsetLeft find the right OffsetParent and return values excluding the target zoom'); - // check that offset is equal between elements when one of them has css zoom +test(() => { assert_equals(unzoomed_one.offsetWidth, zoomed_one.offsetWidth, "offsetWidth"); assert_equals(unzoomed_one.offsetHeight, zoomed_one.offsetHeight, "offsetHeight"); assert_equals(zoomed_inner.offsetWidth, outer_div.offsetWidth, "offsetWidth for nested element"); assert_equals(zoomed_inner.offsetHeight, outer_div.offsetHeight, "offsetHeight for nested element"); - -}, 'Verifies that offsetTop and offsetLeft find the right OffsetParent and return values excluding the target zoom'); +}, 'check that offset is equal between elements when one of them has css zoom'); </script> diff --git a/tests/wpt/tests/dom/nodes/moveBefore/tentative/chrome-338071841-crash.html b/tests/wpt/tests/dom/nodes/moveBefore/tentative/chrome-338071841-crash.html new file mode 100644 index 00000000000..26adfb1cbfa --- /dev/null +++ b/tests/wpt/tests/dom/nodes/moveBefore/tentative/chrome-338071841-crash.html @@ -0,0 +1,6 @@ +<!DOCTYPE html> +<link rel="help" href="https://crbug.com/338071841"> +<div id="p"><span></span><!-- comment --></div> +<script> + p.moveBefore(p.lastChild, p.firstChild); +</script> diff --git a/tests/wpt/tests/dom/nodes/moveBefore/tentative/focus-preserve.html b/tests/wpt/tests/dom/nodes/moveBefore/tentative/focus-preserve.html new file mode 100644 index 00000000000..a00e8b77880 --- /dev/null +++ b/tests/wpt/tests/dom/nodes/moveBefore/tentative/focus-preserve.html @@ -0,0 +1,85 @@ +<!DOCTYPE html> +<title>moveBefore should not automatically clear focus</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<body> +<section id="old_parent"> +<button id="button" tabindex="1">Button</button> +</section> +<section id="new_parent"> +</section> +<section id="inert_parent" inert> +</section> +<section id="hidden_parent" hidden> +</section> +<script> + +function eventually_blurred(t, item, timeout = 1000) { + return new Promise((resolve, reject) => { + function onblur() { + resolve(); + item.removeEventListener("blur", onblur); + } + item.addEventListener("blur", onblur); + t.step_timeout(reject, timeout); + }); +} + +test(t => { + const old_parent = document.querySelector("#old_parent"); + const button = document.querySelector("#button"); + t.add_cleanup(() => old_parent.append(button)); + button.focus(); + assert_equals(document.activeElement, button); + new_parent.moveBefore(button, null); + assert_equals(document.activeElement, button); +}, "when reparenting an element, don't automatically reset the document focus"); + +promise_test(async t => { + const old_parent = document.querySelector("#old_parent"); + const button = document.querySelector("#button"); + t.add_cleanup(() => old_parent.append(button)); + const inert_parent = document.querySelector("#inert_parent"); + button.focus(); + assert_equals(document.activeElement, button); + inert_parent.moveBefore(button, null); + + // The button will still be considered the active element. It will blur asynchronously. + assert_equals(document.activeElement, button); + await eventually_blurred(t, button); + assert_equals(document.activeElement, document.body); +}, "when reparenting a focused element into an inert parent, reset the document focus"); + + +promise_test(async t => { + const old_parent = document.querySelector("#old_parent"); + const button = document.querySelector("#button"); + t.add_cleanup(() => old_parent.append(button)); + const hidden_parent = document.querySelector("#hidden_parent"); + button.focus(); + assert_equals(document.activeElement, button); + hidden_parent.moveBefore(button, null); + + // The button will still be considered the active element. It will blur asynchronously. + // This is similar to other operations that can cause a blur due to change in inert trees, + // e.g. a style change that makes an ancestor `display: none`. + assert_equals(document.activeElement, button); + await eventually_blurred(t, button); + assert_equals(document.activeElement, document.body); +}, "when reparenting a focused element into a hidden parent, reset the document focus"); + +promise_test(async t => { + const old_parent = document.querySelector("#old_parent"); + const button = document.querySelector("#button"); + t.add_cleanup(() => document.body.append(old_parent)); + const hidden_parent = document.querySelector("#hidden_parent"); + button.focus(); + assert_equals(document.activeElement, button); + hidden_parent.moveBefore(old_parent, null); + + // The button will still be considered the active element. It will blur asynchronously. + assert_equals(document.activeElement, button); + await eventually_blurred(t, button); + assert_equals(document.activeElement, document.body); +}, "when reparenting an ancestor of an focused element into a hidden parent, reset the document focus"); +</script> diff --git a/tests/wpt/tests/fledge/tentative/score-ad-browser-signals.https.window.js b/tests/wpt/tests/fledge/tentative/score-ad-browser-signals.https.window.js new file mode 100644 index 00000000000..f20412cfc78 --- /dev/null +++ b/tests/wpt/tests/fledge/tentative/score-ad-browser-signals.https.window.js @@ -0,0 +1,57 @@ +// META: script=/resources/testdriver.js +// META: script=/common/utils.js +// META: script=resources/fledge-util.sub.js +// META: script=/common/subset-tests.js +// META: timeout=long + +"use strict;" + +// These tests focus on the browserSignals argument passed to scoreAd(). + +subsetTest(promise_test, async test => { + const uuid = generateUuid(test); + + let biddingLogicURL = createBiddingScriptURL( + { + generateBid: + ` + return { + bid: 1, + render: { url: interestGroup.ads[0].renderURL, + width: '100sw', + height: '50px' } + }; + ` + }); + + let decisionLogicURL = createDecisionScriptURL(uuid, + { + scoreAd: + ` + if (!browserSignals.hasOwnProperty('renderSize')) { + throw 'Missing renderSize member in browserSignals.'; + } + if (browserSignals.renderSize.width !== '100sw' || + browserSignals.renderSize.height !== '50px') { + throw 'Incorrect renderSize width or height.'; + } + ` + } + ); + + await joinGroupAndRunBasicFledgeTestExpectingWinner( + test, + { + uuid: uuid, + interestGroupOverrides: { + name: uuid, + biddingLogicURL: biddingLogicURL, + ads: [{ renderURL: createRenderURL(uuid), sizeGroup: 'group1' }], + adSizes: { 'size1': { width: '100sw', height: '50px' } }, + sizeGroups: { 'group1': ['size1'] } + }, + auctionConfigOverrides: { + decisionLogicURL: decisionLogicURL + } + }); +}, 'ScoreAd browserSignals renderSize test.'); diff --git a/tests/wpt/tests/inert/inert-and-find-flat-tree.html b/tests/wpt/tests/inert/inert-and-find-flat-tree.html new file mode 100644 index 00000000000..951497e2c09 --- /dev/null +++ b/tests/wpt/tests/inert/inert-and-find-flat-tree.html @@ -0,0 +1,28 @@ +<!DOCTYPE html> +<link rel=author href="mailto:jarhar@chromium.org"> +<link rel=help href="https://html.spec.whatwg.org/#inert-subtrees"> +<link rel=help href="https://issues.chromium.org/issues/336832613"> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> + +<div id=host> + <template shadowrootmode=open> + <dialog> + <div>inside shadowroot</div> + <slot></slot> + </dialog> + </template> + <div>slotted</div> +</div> + +<script> +document.getElementById('host').shadowRoot.querySelector('dialog').showModal(); + +test(() => { + assert_true(window.find('inside shadowroot')); +}, 'Text inside a dialog inside a shadowroot should be findable.'); + +test(() => { + assert_true(window.find('slotted')); +}, 'Text slotted into a dialog which is inside a shadowroot should be findable.'); +</script> diff --git a/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/click_iframe_crossorigin.sub.html.ini b/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/click_iframe_crossorigin.sub.html.ini index aa94652ad76..c0ca25ab657 100644 --- a/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/click_iframe_crossorigin.sub.html.ini +++ b/tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/click_iframe_crossorigin.sub.html.ini @@ -2,3 +2,4 @@ [TestDriver click on a document in an iframe] expected: if product == "chrome": [PASS, FAIL] # https://github.com/web-platform-tests/wpt/issues/26295 + if os == "mac" and product == "firefox": [PASS, FAIL] # https://github.com/web-platform-tests/wpt/issues/45987 diff --git a/tests/wpt/tests/interfaces/compute-pressure.idl b/tests/wpt/tests/interfaces/compute-pressure.idl index a90febffc3b..77537feb106 100644 --- a/tests/wpt/tests/interfaces/compute-pressure.idl +++ b/tests/wpt/tests/interfaces/compute-pressure.idl @@ -21,7 +21,7 @@ interface PressureObserver { undefined disconnect(); sequence<PressureRecord> takeRecords(); - [SameObject] static readonly attribute FrozenArray<PressureSource> supportedSources; + [SameObject] static readonly attribute FrozenArray<PressureSource> knownSources; }; [Exposed=(DedicatedWorker,SharedWorker,Window), SecureContext] diff --git a/tests/wpt/tests/pointerevents/deviceproperties/unique-id-is-unique-manual.tentative.html b/tests/wpt/tests/pointerevents/deviceproperties/unique-id-is-unique-manual.tentative.html new file mode 100644 index 00000000000..55db05353f5 --- /dev/null +++ b/tests/wpt/tests/pointerevents/deviceproperties/unique-id-is-unique-manual.tentative.html @@ -0,0 +1,142 @@ +<!DOCTYPE html> +<!-- + Tentative; contingent on merge of: + https://github.com/w3c/pointerevents/pull/495 + + This manual test validates the behavior of PointerEvent.deviceProperties.uniqueId. + Specifically, this test ensures that pointing devices get their own unique id, and + that the unique id is persistent over the session. + + In order to run this test, it is necessary to have multiple pointing devices; such as a + pen and a mouse. Please follow the instructions exactly as written in order to ensure + the correct results are obtained. +--> +<title>DeviceProperties.uniqueId is unique for pointer events from different devices</title> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<style> + #instructions { + display: inline-block; + border-right: 1px solid black; + padding-right: 10px; + width: 600px; + } + #testcontainer { + display: inline-block; + width: 300px; + touch-action: none; + } + + #currentuniqueid { + display: inline-block; + } + + .point1 { + height: 50px; + width: 50px; + background-color: #00eeee; + display: inline-block; + } + .point2 { + height: 50px; + width: 50px; + background-color: #aa33aa; + display: inline-block; + float: right; + } + + .testarea { + border: 1px solid #000000; + margin-bottom: 50px; + width: 100%; + } + + p { + padding-bottom: 10px; + } + + html { + font-family: Arial, Helvetica, sans-serif; + } +</style> +<html> +<div id="instructions"> +<h2>Instructions</h2> +<p>1. With one pointing device (pointing device #1), drag the pointer from A to B</p> +<p>2. With another pointing device (pointing device #2), drag the pointer from C to D</p> +<p>3. Repeat step 1.</p> +<p>4. Repeat step 2.</p> +<p>5. Click finish and verify the test passes. There should be 4 passing test cases. </p> +</div> +<div id="testcontainer"> + <div> + Current pointer's unique id: <p id="currentuniqueid"></p> + </div> + <div class="testarea" id="device1"> + <div class="point1">A</div> + <div class="point2">B</div> + </div> + <div class="testarea" id="device2"> + <div class="point1">C</div> + <div class="point2">D</div> + </div> + + <p>Click on the button below after completing. If a "PASS" result appears the test + passes, otherwise it fails</p> + <button onclick="Finish()">Finish Test</button> +</div> +</html> + +<script> + let device1Ids = []; + let device2Ids = []; + + setup({explicit_timeout: true, explicit_done: true}); + + function LogDeviceId(event, list) { + if (event.deviceProperties) { + const uniqueId = event.deviceProperties.uniqueId; + currentuniqueid.innerText = uniqueId ? uniqueId : "Unknown"; + if (!uniqueId) { + return; + } + list.push(uniqueId); + } + } + + function LogDeviceId1(event) { + LogDeviceId(event, device1Ids); + } + + function LogDeviceId2(event) { + LogDeviceId(event, device2Ids); + } + + function Finish() { + let device1UniqueIds = new Set(device1Ids); + let device2UniqueIds = new Set(device2Ids); + + test(function () { + assert_greater_than(device1Ids.length, 1, "Events from Device 1 have uniqueIds."); + assert_equals(device1UniqueIds.size, 1, "Device 1 has a consistent uniqueId."); + }, "uniqueId is consistent for device 1"); + test(function () { + assert_greater_than(device2Ids.length, 1, "Events from Device 2 have uniqueIds."); + assert_equals(device2UniqueIds.size, 1, "Device 2 has a consistent uniqueId."); + }, "uniqueId is consistent for device 2"); + test(function () { + // Ensure the two sets are different. + assert_equals(device1UniqueIds.intersection(device2UniqueIds).size, 0, "Device 1 and 2 have different uniqueIds."); + }, "uniqueId is unique to device 1 and device 2"); + done(); + } + + device1.addEventListener("pointerdown", LogDeviceId1, false); + device1.addEventListener("pointermove", LogDeviceId1, false); + device1.addEventListener("pointerup", LogDeviceId1, false); + + device2.addEventListener("pointerdown", LogDeviceId2, false); + device2.addEventListener("pointermove", LogDeviceId2, false); + device2.addEventListener("pointerup", LogDeviceId2, false); + +</script> diff --git a/tests/wpt/tests/screen-capture/getallscreensmedia-exposure.tentative.https.window.js b/tests/wpt/tests/screen-capture/getallscreensmedia-exposure.tentative.https.window.js new file mode 100644 index 00000000000..9be2fa07dd6 --- /dev/null +++ b/tests/wpt/tests/screen-capture/getallscreensmedia-exposure.tentative.https.window.js @@ -0,0 +1,19 @@ +async_test(t => { + const i = document.createElement('iframe'); + i.src = "/common/blank.html"; + i.onload = t.step_func_done(_ => { + assert_equals('undefined', typeof i.contentWindow.navigator.mediaDevices.getAllScreensMedia); + }); + document.body.appendChild(i); +}, "No CSP, no exposure."); + +async_test(t => { + const i = document.createElement('iframe'); + i.src = "/content-security-policy/support/echo-policy.py?policy=" + + encodeURIComponent("script-src 'none'; object-src 'none'; base-uri 'none'; require-trusted-types-for 'script'"); + i.onload = t.step_func_done(_ => { + assert_equals("function", typeof i.contentWindow.navigator.mediaDevices.getAllScreensMedia); + }); + document.body.appendChild(i); +}, "Strict CSP + TT, exposure."); + diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js index 014cd2ec95c..dd7b3f55020 100644 --- a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js @@ -1,10 +1,15 @@ const TEST_CACHE_NAME = 'v1'; +const MAX_CONDITION_DEPTH = 10; const routerRules = { 'condition-urlpattern-constructed-source-network': [{ condition: {urlPattern: new URLPattern({pathname: '/**/direct.txt'})}, source: 'network' }], + 'condition-urlpattern-not-source-network': [{ + condition: {not: {urlPattern: new URLPattern({pathname: '/**/not.txt'})}}, + source: 'network' + }], 'condition-urlpattern-constructed-match-all-source-cache': [ {condition: {urlPattern: new URLPattern({})}, source: 'cache'}, ], @@ -43,14 +48,19 @@ const routerRules = { [{condition: {requestMethod: 'PUT'}, source: 'network'}], 'condition-request-method-delete-network': [{condition: {requestMethod: 'DELETE'}, source: 'network'}], + 'condition-lack-of-condition': [{ + source: 'network' + }], + 'condition-lack-of-source': [{ + condition: {requestMode: 'no-cors'}, + }], 'condition-invalid-request-method': [{ condition: {requestMethod: String.fromCodePoint(0x3042)}, source: 'network' }], 'condition-invalid-or-condition-depth': (() => { - const max = 10; const addOrCondition = (obj, depth) => { - if (depth > max) { + if (depth > MAX_CONDITION_DEPTH) { return obj; } return { @@ -60,6 +70,17 @@ const routerRules = { }; return {condition: addOrCondition({}, 0), source: 'network'}; })(), + 'condition-invalid-not-condition-depth': (() => { + const generateNotCondition = (depth) => { + if (depth > MAX_CONDITION_DEPTH) { + return { + urlPattern: '/**/example.txt', + }; + } + return {not: generateNotCondition(depth + 1)}; + }; + return {condition: generateNotCondition(0), source: 'network'}; + })(), 'condition-invalid-router-size': [...Array(512)].map((val, i) => { return { condition: {urlPattern: `/foo-${i}`}, diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html index 9ef7cfdc9f3..15b8ef5742d 100644 --- a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html @@ -17,8 +17,14 @@ const ROUTER_RULE_KEY_INVALID_REQUEST_METHOD = 'condition-invalid-request-method'; const ROUTER_RULE_KEY_INVALID_OR_CONDITION_DEPTH = 'condition-invalid-or-condition-depth'; +const ROUTER_RULE_KEY_INVALID_NOT_CONDITION_DEPTH = + 'condition-invalid-not-condition-depth'; const ROUTER_RULE_KEY_INVALID_ROUTER_SIZE = 'condition-invalid-router-size'; +const ROUTER_RULE_KEY_LACK_OF_CONDITION = + 'condition-lack-of-condition'; +const ROUTER_RULE_KEY_LACK_OF_SOURCE = + 'condition-lack-of-source'; promise_test(async t => { const worker = await registerAndActivate(t, ROUTER_RULE_KEY_INVALID_REQUEST_METHOD); @@ -35,11 +41,33 @@ promise_test(async t => { }, 'addRoutes should raise if or condition exceeds the depth limit'); promise_test(async t => { + const worker = await registerAndActivate(t, ROUTER_RULE_KEY_INVALID_NOT_CONDITION_DEPTH); + t.add_cleanup(() => {reset_info_in_worker(worker)}); + const {errors} = await get_info_from_worker(worker); + assert_equals(errors.length, 1); +}, 'addRoutes should raise if not condition exceeds the depth limit'); + +promise_test(async t => { const worker = await registerAndActivate(t, ROUTER_RULE_KEY_INVALID_ROUTER_SIZE); t.add_cleanup(() => {reset_info_in_worker(worker)}); const {errors} = await get_info_from_worker(worker); assert_equals(errors.length, 1); }, 'addRoutes should raise if the number of router rules exceeds the length limit'); +promise_test(async t => { + const worker = await registerAndActivate(t, ROUTER_RULE_KEY_LACK_OF_CONDITION); + t.add_cleanup(() => {reset_info_in_worker(worker)}); + const {errors} = await get_info_from_worker(worker); + assert_equals(errors.length, 1); +}, 'addRoutes should raise if the conditon does not exist in the rule'); + +promise_test(async t => { + const worker = await registerAndActivate(t, ROUTER_RULE_KEY_LACK_OF_SOURCE); + t.add_cleanup(() => {reset_info_in_worker(worker)}); + const {errors} = await get_info_from_worker(worker); + assert_equals(errors.length, 1); +}, 'addRoutes should raise if the source does not exiswt in the rule'); + + </script> </body> diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-main-resource.https.html b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-main-resource.https.html index 7998af3f994..71bc0697f9c 100644 --- a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-main-resource.https.html +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-main-resource.https.html @@ -11,6 +11,7 @@ <body> <script> const ROUTER_RULE_KEY = 'condition-urlpattern-constructed-source-network'; +const ROUTER_RULE_NOT_KEY = 'condition-urlpattern-not-source-network'; const ROUTER_RULE_KEY_IGNORE_CASE = 'condition-urlpattern-constructed-ignore-case-source-network'; const ROUTER_RULE_KEY_RESPECT_CASE = @@ -23,6 +24,7 @@ const ROUTER_RULE_KEY_URLPATTERN_CACHE_WITH_NAME = const REGISTERED_ROUTE = 'resources/direct.txt'; const CACHED_ROUTE = 'resources/cache.txt'; const NON_REGISTERED_ROUTE = 'resources/simple.html'; +const NOT_ROUTE = 'resources/not.txt'; const host_info = get_host_info(); const path = new URL(".", window.location).pathname; @@ -72,5 +74,20 @@ iframeTest(CACHED_ROUTE, ROUTER_RULE_KEY_URLPATTERN_CACHE_WITH_NAME, async (t, i assert_equals(requests.length, 0); assert_equals(iwin.document.body.innerText, "From cache"); }, 'Main resource load matched with the cache source, with specifying the cache name'); + +iframeTest(NOT_ROUTE, ROUTER_RULE_NOT_KEY, async (t, iwin, worker) => { + const {requests} = await get_info_from_worker(worker); + assert_equals(requests.length, 1); + assert_equals( + requests[0].url, + `${host_info['HTTPS_ORIGIN']}${path}${NOT_ROUTE}`); + assert_equals(requests[0].mode, 'navigate'); +}, 'Main resource load should not match the condition with not'); + +iframeTest(REGISTERED_ROUTE, ROUTER_RULE_NOT_KEY, async (t, iwin, worker) => { + const {requests} = await get_info_from_worker(worker); + assert_equals(requests.length, 0); + assert_equals(iwin.document.body.innerText, "Network\n"); +}, 'Main resource load should match the condition without not'); </script> </body> diff --git a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-subresource.https.html b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-subresource.https.html index 00b9070bf12..ab05a3d2528 100644 --- a/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-subresource.https.html +++ b/tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-subresource.https.html @@ -27,10 +27,12 @@ const ROUTER_RULE_KEY_URL_PATTERN_CONSTRUCTED_MATCH_ALL_CACHE = const ROUTER_RULE_KEY_URLPATTERN_CACHE_WITH_NAME = 'condition-urlpattern-string-source-cache-with-name'; const ROUTER_RULE_KEY_OR = 'condition-or-source-network' +const ROUTER_RULE_KEY_NOT = 'condition-urlpattern-not-source-network'; const SCOPE = 'resources/'; const HTML_FILE = 'resources/simple.html'; const TXT_FILE = 'resources/direct.txt'; const CSV_FILE = 'resources/simple.csv'; +const NOT_FILE = 'resources/not.txt'; // Warning: please prepare the corresponding `*.text.headers` files, otherwise // iframeTest() fails to load the following files due to MIME mismatches. const OR_TEST_FILES = [ @@ -184,5 +186,17 @@ iframeTest(HTML_FILE, ROUTER_RULE_KEY_URLPATTERN_CACHE_WITH_NAME, async (t, iwin assert_equals(response_with_param.status, 404); }, 'Subresource load matched with the cache source, with specifying the cache name'); +iframeTest(TXT_FILE, ROUTER_RULE_KEY_NOT, async (t, iwin) => { + const rnd = randomString(); + const response = await iwin.fetch(`${NOT_FILE}?nonce=${rnd}`); + assert_equals(await response.text(), rnd); +}, 'Subresource load should not match with the not condition'); + +iframeTest(TXT_FILE, ROUTER_RULE_KEY_NOT, async (t, iwin) => { + const rnd = randomString(); + const response = await iwin.fetch('?nonce=' + rnd); + assert_equals(await response.text(), "Network\n"); +}, 'Subresource load should match with a file other than not'); + </script> </body> diff --git a/tests/wpt/tests/shadow-dom/focus-navigation/focus-navigation-slot-nested-2levels.html b/tests/wpt/tests/shadow-dom/focus-navigation/focus-navigation-slot-nested-2levels.html index 7d733ea7c2e..1b867cc2a9b 100644 --- a/tests/wpt/tests/shadow-dom/focus-navigation/focus-navigation-slot-nested-2levels.html +++ b/tests/wpt/tests/shadow-dom/focus-navigation/focus-navigation-slot-nested-2levels.html @@ -1,4 +1,5 @@ <!DOCTYPE html> +<meta name="timeout" content="long"> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="/resources/testdriver.js"></script> diff --git a/tests/wpt/tests/svg/painting/scripted/marker-element-added.html b/tests/wpt/tests/svg/painting/scripted/marker-element-added.html new file mode 100644 index 00000000000..39d3cb190cd --- /dev/null +++ b/tests/wpt/tests/svg/painting/scripted/marker-element-added.html @@ -0,0 +1,29 @@ +<!doctype html> +<html class="reftest-wait"> +<title><marker> element added after first paint</title> +<script src="/common/reftest-wait.js"></script> +<script src="/common/rendering-utils.js"></script> +<link rel="match" href="../../struct/reftests/reference/green-100x100.html"> +<svg> + <path d="M0,0h100" marker-start="url(#m)"/> +</svg> +<script> + function createSvgElement(name, attrData) { + const svgNs = 'http://www.w3.org/2000/svg'; + const element = document.createElementNS(svgNs, name); + attrData.forEach(([name, value]) => element.setAttribute(name, value)); + return element; + } + waitForAtLeastOneFrame().then(() => { + const svgNs = 'http://www.w3.org/2000/svg'; + const markerElement = createSvgElement('marker', [ + ['id', 'm'], ['orient', '0'], ['overflow', 'visible'] + ]); + markerElement.appendChild(createSvgElement('rect', [ + ['width', '100'], ['height', '100'], ['fill', 'green'] + ])); + const svg = document.querySelector('svg'); + svg.insertBefore(markerElement, svg.firstElementChild); + takeScreenshot(); + }); +</script> diff --git a/tests/wpt/tests/tools/ci/azure/install_chrome.yml b/tests/wpt/tests/tools/ci/azure/install_chrome.yml index 9b03d9b91bc..2dde99286cb 100644 --- a/tests/wpt/tests/tools/ci/azure/install_chrome.yml +++ b/tests/wpt/tests/tools/ci/azure/install_chrome.yml @@ -1,6 +1,6 @@ steps: # The conflicting google-chrome and chromedriver casks are first uninstalled. -# The raw google-chrome-dev cask URL is used to bypass caching. +# The raw google-chrome@dev.rb cask URL is used to bypass caching. - script: | set -eux -o pipefail HOMEBREW_NO_AUTO_UPDATE=1 brew uninstall --cask google-chrome || true diff --git a/tests/wpt/tests/tools/ci/azure/install_firefox.yml b/tests/wpt/tests/tools/ci/azure/install_firefox.yml index 73af5976655..d43e28b274f 100644 --- a/tests/wpt/tests/tools/ci/azure/install_firefox.yml +++ b/tests/wpt/tests/tools/ci/azure/install_firefox.yml @@ -1,9 +1,8 @@ steps: -# This is equivalent to `Homebrew/homebrew-cask-versions/firefox-nightly`, -# but the raw URL is used to bypass caching. +# The raw firefox@nightly.rb cask URL is used to bypass caching. - script: | set -eux -o pipefail - curl https://raw.githubusercontent.com/Homebrew/homebrew-cask-versions/master/Casks/firefox-nightly.rb > firefox-nightly.rb - HOMEBREW_NO_AUTO_UPDATE=1 brew install --cask firefox-nightly.rb + curl https://raw.githubusercontent.com/Homebrew/homebrew-cask/HEAD/Casks/f/firefox@nightly.rb > firefox@nightly.rb + HOMEBREW_NO_AUTO_UPDATE=1 brew install --cask firefox@nightly.rb displayName: 'Install Firefox Nightly' condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) diff --git a/tests/wpt/tests/tools/serve/serve.py b/tests/wpt/tests/tools/serve/serve.py index bc282dd44b5..42d80918024 100644 --- a/tests/wpt/tests/tools/serve/serve.py +++ b/tests/wpt/tests/tools/serve/serve.py @@ -829,7 +829,8 @@ def start_http_server(logger, host, port, paths, routes, bind_address, config, * key_file=None, certificate=None, latency=kwargs.get("latency")) - except Exception: + except Exception as error: + logger.critical(f"start_http_server: Caught exception from wptserve.WebTestHttpd: {error}") startup_failed(logger) @@ -847,7 +848,8 @@ def start_https_server(logger, host, port, paths, routes, bind_address, config, certificate=config.ssl_config["cert_path"], encrypt_after_connect=config.ssl_config["encrypt_after_connect"], latency=kwargs.get("latency")) - except Exception: + except Exception as error: + logger.critical(f"start_https_server: Caught exception from wptserve.WebTestHttpd: {error}") startup_failed(logger) @@ -868,7 +870,8 @@ def start_http2_server(logger, host, port, paths, routes, bind_address, config, encrypt_after_connect=config.ssl_config["encrypt_after_connect"], latency=kwargs.get("latency"), http2=True) - except Exception: + except Exception as error: + logger.critical(f"start_http2_server: Caught exception from wptserve.WebTestHttpd: {error}") startup_failed(logger) @@ -935,7 +938,8 @@ def start_ws_server(logger, host, port, paths, routes, bind_address, config, **k config.paths["ws_doc_root"], bind_address, ssl_config=None) - except Exception: + except Exception as error: + logger.critical(f"start_ws_server: Caught exception from WebSocketDomain: {error}") startup_failed(logger) @@ -947,7 +951,8 @@ def start_wss_server(logger, host, port, paths, routes, bind_address, config, ** config.paths["ws_doc_root"], bind_address, config.ssl_config) - except Exception: + except Exception as error: + logger.critical(f"start_wss_server: Caught exception from WebSocketDomain: {error}") startup_failed(logger) diff --git a/tests/wpt/tests/tools/wptrunner/requirements.txt b/tests/wpt/tests/tools/wptrunner/requirements.txt index 356223ededc..cda06eba5d0 100644 --- a/tests/wpt/tests/tools/wptrunner/requirements.txt +++ b/tests/wpt/tests/tools/wptrunner/requirements.txt @@ -1,5 +1,5 @@ html5lib==1.1 -mozdebug==0.3.0 +mozdebug==0.3.1 mozinfo==1.2.3 # https://bugzilla.mozilla.org/show_bug.cgi?id=1621226 mozlog==8.0.0 mozprocess==1.3.1 @@ -7,4 +7,4 @@ packaging==24.0 pillow==9.5.0 requests==2.31.0 six==1.16.0 -urllib3==2.0.7 +urllib3==2.2.1 diff --git a/tests/wpt/tests/tools/wptrunner/requirements_firefox.txt b/tests/wpt/tests/tools/wptrunner/requirements_firefox.txt index 0ed5c053166..17fed6fab47 100644 --- a/tests/wpt/tests/tools/wptrunner/requirements_firefox.txt +++ b/tests/wpt/tests/tools/wptrunner/requirements_firefox.txt @@ -6,5 +6,5 @@ mozleak==0.2 mozprofile==3.0.0 mozrunner==8.3.1 mozversion==2.4.0 -psutil==5.9.5 +psutil==5.9.8 redo==2.0.4 diff --git a/tests/wpt/tests/tools/wptrunner/requirements_safari.txt b/tests/wpt/tests/tools/wptrunner/requirements_safari.txt index bcce11aed80..0704b2dbf68 100644 --- a/tests/wpt/tests/tools/wptrunner/requirements_safari.txt +++ b/tests/wpt/tests/tools/wptrunner/requirements_safari.txt @@ -1 +1 @@ -psutil==5.9.5 +psutil==5.9.8 diff --git a/tests/wpt/tests/trusted-types/support/resolve-spv.js b/tests/wpt/tests/trusted-types/support/resolve-spv.js new file mode 100644 index 00000000000..89e58b2a8b7 --- /dev/null +++ b/tests/wpt/tests/trusted-types/support/resolve-spv.js @@ -0,0 +1,9 @@ +// Returns a promise that resolves with a Security Policy Violation (spv) + // even when it is received. +function promise_spv() { + return new Promise((resolve, reject) => { + window.addEventListener("securitypolicyviolation", e => { + resolve(e); + }, { once: true }); + }); +} diff --git a/tests/wpt/tests/trusted-types/trusted-types-svg-script-set-href.html b/tests/wpt/tests/trusted-types/trusted-types-svg-script-set-href.html new file mode 100644 index 00000000000..ab3174c192b --- /dev/null +++ b/tests/wpt/tests/trusted-types/trusted-types-svg-script-set-href.html @@ -0,0 +1,107 @@ +<!DOCTYPE html> +<head> + <script src="/resources/testharness.js"></script> + <script src="/resources/testharnessreport.js"></script> + <script src="./support/resolve-spv.js"></script> + <meta http-equiv="Content-Security-Policy" + content="require-trusted-types-for 'script'"> +</head> +<body> + <div id="log"></div> + <svg id="svg"><script id="script">"some script text";</script></svg> + <script> + const policy = trustedTypes.createPolicy("policy", { + createScript: x => x, createHTML: x => x, createScriptURL: x => x }); + + promise_test(t => { + const elem = document.createElementNS( + "http://www.w3.org/2000/svg", "script"); + assert_throws_js(TypeError, _ => { + elem.href.baseVal = "about:blank"; + }); + document.getElementById("svg").appendChild(elem); + return promise_spv(); + }, "Assign string to SVGScriptElement.href.baseVal."); + + promise_test(t => { + const elem = document.createElementNS( + "http://www.w3.org/2000/svg", "script"); + elem.href.baseVal = policy.createScriptURL("about:blank"); + document.getElementById("svg").appendChild(elem); + return Promise.resolve(); + }, "Assign TrustedScriptURL to SVGScriptElement.href.baseVal."); + + promise_test(t => { + const elem = document.createElementNS( + "http://www.w3.org/2000/svg", "script"); + assert_throws_js(TypeError, _ => { + elem.setAttribute("href", "about:blank"); + }); + document.getElementById("svg").appendChild(elem); + return promise_spv(); + }, "Assign string to non-attached SVGScriptElement.href via setAttribute."); + + promise_test(t => { + const elem = document.createElementNS( + "http://www.w3.org/2000/svg", "script"); + elem.setAttribute("href", policy.createScriptURL("about:blank")); + document.getElementById("svg").appendChild(elem); + return Promise.resolve(); + }, "Assign TrustedScriptURL to non-attached SVGScriptElement.href via setAttribute."); + + promise_test(t => { + const elem = document.createElementNS( + "http://www.w3.org/2000/svg", "script"); + document.getElementById("svg").appendChild(elem); + assert_throws_js(TypeError, _ => { + elem.setAttribute("href", "about:blank"); + }); + return promise_spv(); + }, "Assign string to attached SVGScriptElement.href via setAttribute."); + + promise_test(t => { + const elem = document.createElementNS( + "http://www.w3.org/2000/svg", "script"); + document.getElementById("svg").appendChild(elem); + elem.setAttribute("href", policy.createScriptURL("about:blank")); + return Promise.resolve(); + }, "Assign TrustedScriptURL to attached SVGScriptElement.href via setAttribute."); + + // Default policy test: We repate the string assignment tests above, + // but now expect all of them to pass. + promise_test(t => { + trustedTypes.createPolicy("default", { + createScript: x => x, createHTML: x => x, createScriptURL: x => x }); + return Promise.resolve(); + }, "Setup default policy"); + + promise_test(t => { + document.getElementById("script").innerHTML = "'modified via innerHTML';"; + return Promise.resolve(); + }, "Assign String to SVGScriptElement.innerHTML w/ default policy."); + + promise_test(t => { + const elem = document.createElementNS( + "http://www.w3.org/2000/svg", "script"); + elem.href.baseVal = "about:blank"; + document.getElementById("svg").appendChild(elem); + return Promise.resolve(); + }, "Assign string to SVGScriptElement.href.baseVal w/ default policy."); + + promise_test(t => { + const elem = document.createElementNS( + "http://www.w3.org/2000/svg", "script"); + elem.setAttribute("href", "about:blank"); + document.getElementById("svg").appendChild(elem); + return Promise.resolve(); + }, "Assign string to non-attached SVGScriptElement.href via setAttribute w/ default policy."); + + promise_test(t => { + const elem = document.createElementNS( + "http://www.w3.org/2000/svg", "script"); + document.getElementById("svg").appendChild(elem); + elem.setAttribute("href", "about:blank"); + return Promise.resolve(); + }, "Assign string to attached SVGScriptElement.href via setAttribute w/ default policy."); + </script> +</body> diff --git a/tests/wpt/tests/trusted-types/trusted-types-svg-script.html b/tests/wpt/tests/trusted-types/trusted-types-svg-script.html index 946f825fa3e..4d604f353c9 100644 --- a/tests/wpt/tests/trusted-types/trusted-types-svg-script.html +++ b/tests/wpt/tests/trusted-types/trusted-types-svg-script.html @@ -2,6 +2,7 @@ <head> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> + <script src="./support/resolve-spv.js"></script> <meta http-equiv="Content-Security-Policy" content="require-trusted-types-for 'script'"> </head> @@ -9,16 +10,6 @@ <div id="log"></div> <svg id="svg"><script id="script">"some script text";</script></svg> <script> - // Returns a promise that resolves with a Security Policy Violation (spv) - // even when it is received. - function promise_spv() { - return new Promise((resolve, reject) => { - window.addEventListener("securitypolicyviolation", e => { - resolve(e); - }, { once: true }); - }); - } - const policy = trustedTypes.createPolicy("policy", { createScript: x => x, createHTML: x => x, createScriptURL: x => x }); @@ -49,96 +40,5 @@ document.getElementById("svg").appendChild(elem); return promise_spv(); }, "Modify SVGScriptElement via DOM manipulation."); - - promise_test(t => { - const elem = document.createElementNS( - "http://www.w3.org/2000/svg", "script"); - assert_throws_js(TypeError, _ => { - elem.href.baseVal = "about:blank"; - }); - document.getElementById("svg").appendChild(elem); - return promise_spv(); - }, "Assign string to SVGScriptElement.href.baseVal."); - - promise_test(t => { - const elem = document.createElementNS( - "http://www.w3.org/2000/svg", "script"); - elem.href.baseVal = policy.createScriptURL("about:blank"); - document.getElementById("svg").appendChild(elem); - return Promise.resolve(); - }, "Assign TrustedScriptURL to SVGScriptElement.href.baseVal."); - - promise_test(t => { - const elem = document.createElementNS( - "http://www.w3.org/2000/svg", "script"); - assert_throws_js(TypeError, _ => { - elem.setAttribute("href", "about:blank"); - }); - document.getElementById("svg").appendChild(elem); - return promise_spv(); - }, "Assign string to non-attached SVGScriptElement.href via setAttribute."); - - promise_test(t => { - const elem = document.createElementNS( - "http://www.w3.org/2000/svg", "script"); - elem.setAttribute("href", policy.createScriptURL("about:blank")); - document.getElementById("svg").appendChild(elem); - return Promise.resolve(); - }, "Assign TrustedScriptURL to non-attached SVGScriptElement.href via setAttribute."); - - promise_test(t => { - const elem = document.createElementNS( - "http://www.w3.org/2000/svg", "script"); - document.getElementById("svg").appendChild(elem); - assert_throws_js(TypeError, _ => { - elem.setAttribute("href", "about:blank"); - }); - return promise_spv(); - }, "Assign string to attached SVGScriptElement.href via setAttribute."); - - promise_test(t => { - const elem = document.createElementNS( - "http://www.w3.org/2000/svg", "script"); - document.getElementById("svg").appendChild(elem); - elem.setAttribute("href", policy.createScriptURL("about:blank")); - return Promise.resolve(); - }, "Assign TrustedScriptURL to attached SVGScriptElement.href via setAttribute."); - - // Default policy test: We repate the string assignment tests above, - // but now expect all of them to pass. - promise_test(t => { - trustedTypes.createPolicy("default", { - createScript: x => x, createHTML: x => x, createScriptURL: x => x }); - return Promise.resolve(); - }, "Setup default policy"); - - promise_test(t => { - document.getElementById("script").innerHTML = "'modified via innerHTML';"; - return Promise.resolve(); - }, "Assign String to SVGScriptElement.innerHTML w/ default policy."); - - promise_test(t => { - const elem = document.createElementNS( - "http://www.w3.org/2000/svg", "script"); - elem.href.baseVal = "about:blank"; - document.getElementById("svg").appendChild(elem); - return Promise.resolve(); - }, "Assign string to SVGScriptElement.href.baseVal w/ default policy."); - - promise_test(t => { - const elem = document.createElementNS( - "http://www.w3.org/2000/svg", "script"); - elem.setAttribute("href", "about:blank"); - document.getElementById("svg").appendChild(elem); - return Promise.resolve(); - }, "Assign string to non-attached SVGScriptElement.href via setAttribute w/ default policy."); - - promise_test(t => { - const elem = document.createElementNS( - "http://www.w3.org/2000/svg", "script"); - document.getElementById("svg").appendChild(elem); - elem.setAttribute("href", "about:blank"); - return Promise.resolve(); - }, "Assign string to attached SVGScriptElement.href via setAttribute w/ default policy."); </script> </body> diff --git a/tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js b/tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js index 123c8b1048f..0f9e590fc88 100644 --- a/tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API argMin/Max operations // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-argminmax -testWebNNOperation(['argMin', 'argMax'], buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests(['argMin', 'argMax'], buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/batch_normalization.https.any.js b/tests/wpt/tests/webnn/conformance_tests/batch_normalization.https.any.js index 9a1c85db197..d3107820dbc 100644 --- a/tests/wpt/tests/webnn/conformance_tests/batch_normalization.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/batch_normalization.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API batchNormalization operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-batchnorm -testWebNNOperation('batchNormalization', buildBatchNorm);
\ No newline at end of file +runWebNNConformanceTests('batchNormalization', buildBatchNorm); diff --git a/tests/wpt/tests/webnn/conformance_tests/buffer.https.any.js b/tests/wpt/tests/webnn/conformance_tests/buffer.https.any.js index 9391be8dbf0..5a09b05c7dc 100644 --- a/tests/wpt/tests/webnn/conformance_tests/buffer.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/buffer.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API buffer operations // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,10 +9,11 @@ // https://webmachinelearning.github.io/webnn/#api-mlbuffer -testCreateWebNNBuffer("create", 4); - -testDestroyWebNNBuffer('destroyTwice'); - -testReadWebNNBuffer('read'); - -testWriteWebNNBuffer('write'); +if (navigator.ml) { + testCreateWebNNBuffer('create', 4); + testDestroyWebNNBuffer('destroyTwice'); + testReadWebNNBuffer('read'); + testWriteWebNNBuffer('write'); +} else { + test(() => assert_implements(navigator.ml, 'missing navigator.ml')); +} diff --git a/tests/wpt/tests/webnn/conformance_tests/cast.https.any.js b/tests/wpt/tests/webnn/conformance_tests/cast.https.any.js index bde2b9a4ce1..086428dd964 100644 --- a/tests/wpt/tests/webnn/conformance_tests/cast.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/cast.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API cast operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-cast -testWebNNOperation('cast', buildCast);
\ No newline at end of file +runWebNNConformanceTests('cast', buildCast); diff --git a/tests/wpt/tests/webnn/conformance_tests/clamp.https.any.js b/tests/wpt/tests/webnn/conformance_tests/clamp.https.any.js index 7b60c41f2ca..ab47ac9c5c7 100644 --- a/tests/wpt/tests/webnn/conformance_tests/clamp.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/clamp.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API clamp operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-clamp -testWebNNOperation('clamp', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('clamp', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/compute-arraybufferview-with-bigger-arraybuffer.https.any.js b/tests/wpt/tests/webnn/conformance_tests/compute-arraybufferview-with-bigger-arraybuffer.https.any.js new file mode 100644 index 00000000000..62ce16c93e4 --- /dev/null +++ b/tests/wpt/tests/webnn/conformance_tests/compute-arraybufferview-with-bigger-arraybuffer.https.any.js @@ -0,0 +1,61 @@ +// META: title=test WebNN MLContext.compute() for ArrayBufferView created from bigger ArrayBuffer +// META: global=window,dedicatedworker +// META: variant=?gpu +// META: script=../resources/utils.js + +'use strict'; + +// These tests are used to reproduce the Chromium issue: +// https://issues.chromium.org/issues/332151809 + +if (navigator.ml) { + const variant = location.search.substring(1); + const contextOptions = kContextOptionsForVariant[variant]; + + let context; + let builder; + + promise_setup(async () => { + let supported = false; + try { + context = await navigator.ml.createContext(contextOptions); + supported = true; + } catch (e) { + } + assert_implements( + supported, `Unable to create context for ${variant} variant`); + builder = new MLGraphBuilder(context); + }); + + promise_test(async t => { + const a = builder.input('a', {dataType: 'float32', dimensions: [2]}); + const b = builder.relu(a); + const graph = await builder.build({b}); + const arraybuffer = new ArrayBuffer(100); + const aBuffer = + new Float32Array(arraybuffer, /*byteOffset*/ 4, /*length*/ 2) + aBuffer.set([1, -1]); + const bBuffer = new Float32Array(2); + const results = + await context.compute(graph, {'a': aBuffer}, {'b': bBuffer}); + assert_array_approx_equals_ulp( + results.outputs.b, [1, 0], /*nulp*/ 0, 'float32'); + }, 'Test compute() working for input ArrayBufferView created from bigger ArrayBuffer'); + + promise_test(async t => { + const a = builder.input('a', {dataType: 'float32', dimensions: [2]}); + const b = builder.relu(a); + const graph = await builder.build({b}); + const aBuffer = new Float32Array(2); + aBuffer.set([1, -1]); + const arraybuffer = new ArrayBuffer(100); + const bBuffer = + new Float32Array(arraybuffer, /*byteOffset*/ 8, /*length*/ 2); + const results = + await context.compute(graph, {'a': aBuffer}, {'b': bBuffer}); + assert_array_approx_equals_ulp( + results.outputs.b, [1, 0], /*nulp*/ 0, 'float32'); + }, 'Test compute() working for output ArrayBufferView created from bigger ArrayBuffer'); +} else { + test(() => assert_implements(navigator.ml, 'missing navigator.ml')); +} diff --git a/tests/wpt/tests/webnn/conformance_tests/concat.https.any.js b/tests/wpt/tests/webnn/conformance_tests/concat.https.any.js index 254e0b657b4..619f20fe1c6 100644 --- a/tests/wpt/tests/webnn/conformance_tests/concat.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/concat.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API concat operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-concat -testWebNNOperation('concat', buildConcat);
\ No newline at end of file +runWebNNConformanceTests('concat', buildConcat); diff --git a/tests/wpt/tests/webnn/conformance_tests/constant.https.any.js b/tests/wpt/tests/webnn/conformance_tests/constant.https.any.js index 4814734886e..79362947f1d 100644 --- a/tests/wpt/tests/webnn/conformance_tests/constant.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/constant.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API constant // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-constant-range -testWebNNOperation('constant', buildConstantRange);
\ No newline at end of file +runWebNNConformanceTests('constant', buildConstantRange); diff --git a/tests/wpt/tests/webnn/conformance_tests/conv2d.https.any.js b/tests/wpt/tests/webnn/conformance_tests/conv2d.https.any.js index 0d9a6213569..34af583162b 100644 --- a/tests/wpt/tests/webnn/conformance_tests/conv2d.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/conv2d.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API conv2d operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-conv2d -testWebNNOperation('conv2d', buildConv2d);
\ No newline at end of file +runWebNNConformanceTests('conv2d', buildConv2d); diff --git a/tests/wpt/tests/webnn/conformance_tests/conv_transpose2d.https.any.js b/tests/wpt/tests/webnn/conformance_tests/conv_transpose2d.https.any.js index ee5d28c72ad..2943e67851c 100644 --- a/tests/wpt/tests/webnn/conformance_tests/conv_transpose2d.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/conv_transpose2d.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API convTranspose2d operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-convtranspose2d -testWebNNOperation('convTranspose2d', buildConvTranspose2d);
\ No newline at end of file +runWebNNConformanceTests('convTranspose2d', buildConvTranspose2d); diff --git a/tests/wpt/tests/webnn/conformance_tests/elementwise_binary.https.any.js b/tests/wpt/tests/webnn/conformance_tests/elementwise_binary.https.any.js index 5db14a43a1f..a85a06e1d21 100644 --- a/tests/wpt/tests/webnn/conformance_tests/elementwise_binary.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/elementwise_binary.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API element-wise binary operations // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,6 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-binary -testWebNNOperation(['add', 'sub', 'mul', 'div', 'max', 'min', 'pow'], buildOperationWithTwoInputs);
\ No newline at end of file +runWebNNConformanceTests( + ['add', 'sub', 'mul', 'div', 'max', 'min', 'pow'], + buildOperationWithTwoInputs); diff --git a/tests/wpt/tests/webnn/conformance_tests/elementwise_logical.https.any.js b/tests/wpt/tests/webnn/conformance_tests/elementwise_logical.https.any.js index a60c199447f..3d3a825f9c0 100644 --- a/tests/wpt/tests/webnn/conformance_tests/elementwise_logical.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/elementwise_logical.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API element-wise logical operations // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,14 +9,17 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-logical -testWebNNOperation( - [ - 'equal', - 'greater', - 'greaterOrEqual', - 'lesser', - 'lesserOrEqual', - ], - buildOperationWithTwoInputs -); -testWebNNOperation('logicalNot', buildOperationWithSingleInput);
\ No newline at end of file +if (navigator.ml) { + testWebNNOperation( + [ + 'equal', + 'greater', + 'greaterOrEqual', + 'lesser', + 'lesserOrEqual', + ], + buildOperationWithTwoInputs); + testWebNNOperation('logicalNot', buildOperationWithSingleInput); +} else { + test(() => assert_implements(navigator.ml, 'missing navigator.ml')); +} diff --git a/tests/wpt/tests/webnn/conformance_tests/elementwise_unary.https.any.js b/tests/wpt/tests/webnn/conformance_tests/elementwise_unary.https.any.js index 8029539edad..f202af01e51 100644 --- a/tests/wpt/tests/webnn/conformance_tests/elementwise_unary.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/elementwise_unary.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API element-wise unary operations // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,7 +9,9 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-unary -testWebNNOperation( - ['abs', 'ceil', 'cos', 'erf', 'exp', 'floor', 'identity', 'log', 'neg', 'reciprocal', 'sin', 'sqrt', 'tan'], - buildOperationWithSingleInput -);
\ No newline at end of file +runWebNNConformanceTests( + [ + 'abs', 'ceil', 'cos', 'erf', 'exp', 'floor', 'identity', 'log', 'neg', + 'reciprocal', 'sin', 'sqrt', 'tan' + ], + buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/elu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/elu.https.any.js index 382faa97fd1..ac1c19a80bc 100644 --- a/tests/wpt/tests/webnn/conformance_tests/elu.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/elu.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API elu operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-elu -testWebNNOperation('elu', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('elu', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/expand.https.any.js b/tests/wpt/tests/webnn/conformance_tests/expand.https.any.js index b1be129eac3..e7bf106f961 100644 --- a/tests/wpt/tests/webnn/conformance_tests/expand.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/expand.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API expand operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,5 +9,5 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-expand -// reuse buildReshape method -testWebNNOperation('expand', buildReshape);
\ No newline at end of file +// Reuse buildReshape method +runWebNNConformanceTests('expand', buildReshape); diff --git a/tests/wpt/tests/webnn/conformance_tests/gather.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gather.https.any.js index 39b19705632..504f2dd792e 100644 --- a/tests/wpt/tests/webnn/conformance_tests/gather.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/gather.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API gather operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-gather -testWebNNOperation('gather', buildOperationWithTwoInputs);
\ No newline at end of file +runWebNNConformanceTests('gather', buildOperationWithTwoInputs); diff --git a/tests/wpt/tests/webnn/conformance_tests/gemm.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gemm.https.any.js index 61fd7c9b396..03a836a44a6 100644 --- a/tests/wpt/tests/webnn/conformance_tests/gemm.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/gemm.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API gemm operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-gemm -testWebNNOperation('gemm', buildGemm);
\ No newline at end of file +runWebNNConformanceTests('gemm', buildGemm); diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/arg_min_max.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/arg_min_max.https.any.js deleted file mode 100644 index c700ee5cad7..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/arg_min_max.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API argMin/Max operations -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-argminmax - -testWebNNOperation(['argMin', 'argMax'], buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/batch_normalization.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/batch_normalization.https.any.js deleted file mode 100644 index 534cdf6365a..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/batch_normalization.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API batchNormalization operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-batchnorm - -testWebNNOperation('batchNormalization', buildBatchNorm, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/buffer.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/buffer.https.any.js deleted file mode 100644 index 225bc401858..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/buffer.https.any.js +++ /dev/null @@ -1,16 +0,0 @@ -// META: title=test WebNN API buffer operations -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlbuffer - -testCreateWebNNBuffer("create", 4, 'gpu'); - -testDestroyWebNNBuffer('destroyTwice', 'gpu'); - -testReadWebNNBuffer('read', 'gpu'); - -testWriteWebNNBuffer('write', 'gpu'); diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/cast.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/cast.https.any.js deleted file mode 100644 index e4309ffd8e3..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/cast.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API cast operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-cast - -testWebNNOperation('cast', buildCast, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/clamp.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/clamp.https.any.js deleted file mode 100644 index 9b3f93ecc77..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/clamp.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API clamp operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-clamp - -testWebNNOperation('clamp', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/compute-arraybufferview-with-bigger-arraybuffer.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/compute-arraybufferview-with-bigger-arraybuffer.https.any.js deleted file mode 100644 index ddc39011813..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/compute-arraybufferview-with-bigger-arraybuffer.https.any.js +++ /dev/null @@ -1,37 +0,0 @@ -// META: title=test WebNN MLContext.compute() for ArrayBufferView created from bigger ArrayBuffer -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js - -'use strict'; - -// These tests are used to reproduce the Chromium issue: -// https://issues.chromium.org/issues/332151809 -promise_test(async t => { - const context = await navigator.ml.createContext({deviceType: 'gpu'}); - const builder = new MLGraphBuilder(context); - const a = builder.input('a', {dataType: 'float32', dimensions: [2]}); - const b = builder.relu(a); - const graph = await builder.build({b}); - const arraybuffer = new ArrayBuffer(100); - const aBuffer = new Float32Array(arraybuffer, /*byteOffset*/ 4, /*length*/ 2) - aBuffer.set([1, -1]); - const bBuffer = new Float32Array(2); - const results = await context.compute(graph, {'a': aBuffer}, {'b': bBuffer}); - assert_array_approx_equals_ulp( - results.outputs.b, [1, 0], /*nulp*/ 0, 'float32'); -}, 'Test compute() working for input ArrayBufferView created from bigger ArrayBuffer'); - -promise_test(async t => { - const context = await navigator.ml.createContext({deviceType: 'gpu'}); - const builder = new MLGraphBuilder(context); - const a = builder.input('a', {dataType: 'float32', dimensions: [2]}); - const b = builder.relu(a); - const graph = await builder.build({b}); - const aBuffer = new Float32Array(2); - aBuffer.set([1, -1]); - const arraybuffer = new ArrayBuffer(100); - const bBuffer = new Float32Array(arraybuffer, /*byteOffset*/ 8, /*length*/ 2); - const results = await context.compute(graph, {'a': aBuffer}, {'b': bBuffer}); - assert_array_approx_equals_ulp( - results.outputs.b, [1, 0], /*nulp*/ 0, 'float32'); -}, 'Test compute() working for output ArrayBufferView created from bigger ArrayBuffer'); diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/concat.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/concat.https.any.js deleted file mode 100644 index c0cfb8626b8..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/concat.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API concat operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-concat - -testWebNNOperation('concat', buildConcat, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/constant.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/constant.https.any.js deleted file mode 100644 index 77b4d889a23..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/constant.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API constant -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-constant-range - -testWebNNOperation('constant', buildConstantRange, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/conv2d.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/conv2d.https.any.js deleted file mode 100644 index 770540abd85..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/conv2d.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API conv2d operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-conv2d - -testWebNNOperation('conv2d', buildConv2d, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/conv_transpose2d.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/conv_transpose2d.https.any.js deleted file mode 100644 index 08c441b5b45..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/conv_transpose2d.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API convTranspose2d operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-convtranspose2d - -testWebNNOperation('convTranspose2d', buildConvTranspose2d, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_binary.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_binary.https.any.js deleted file mode 100644 index 8b9fa486f86..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_binary.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API element-wise binary operations -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-binary - -testWebNNOperation(['add', 'sub', 'mul', 'div', 'max', 'min', 'pow'], buildOperationWithTwoInputs, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_logical.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_logical.https.any.js deleted file mode 100644 index 70a887a147a..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_logical.https.any.js +++ /dev/null @@ -1,20 +0,0 @@ -// META: title=test WebNN API element-wise logical operations -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-logical - -testWebNNOperation( - [ - 'equal', - 'greater', - 'greaterOrEqual', - 'lesser', - 'lesserOrEqual', - ], - buildOperationWithTwoInputs, 'gpu' -); -testWebNNOperation('logicalNot', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_unary.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_unary.https.any.js deleted file mode 100644 index 88711293111..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_unary.https.any.js +++ /dev/null @@ -1,13 +0,0 @@ -// META: title=test WebNN API element-wise unary operations -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-unary - -testWebNNOperation( - ['abs', 'ceil', 'cos', 'erf', 'exp', 'floor', 'identity', 'log', 'neg', 'reciprocal', 'sin', 'sqrt', 'tan'], - buildOperationWithSingleInput, 'gpu' -);
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/elu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/elu.https.any.js deleted file mode 100644 index db14442641b..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/elu.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API elu operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-elu - -testWebNNOperation('elu', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/expand.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/expand.https.any.js deleted file mode 100644 index f46f4637817..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/expand.https.any.js +++ /dev/null @@ -1,11 +0,0 @@ -// META: title=test WebNN API expand operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-expand - -// reuse buildReshape method -testWebNNOperation('expand', buildReshape, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/gather.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/gather.https.any.js deleted file mode 100644 index 8e457192d81..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/gather.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API gather operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-gather - -testWebNNOperation('gather', buildOperationWithTwoInputs, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/gemm.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/gemm.https.any.js deleted file mode 100644 index f288c31bedf..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/gemm.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API gemm operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-gemm - -testWebNNOperation('gemm', buildGemm, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/hard_sigmoid.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/hard_sigmoid.https.any.js deleted file mode 100644 index d40e42a211b..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/hard_sigmoid.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API hardSigmoid operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-hard-sigmoid - -testWebNNOperation('hardSigmoid', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/hard_swish.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/hard_swish.https.any.js deleted file mode 100644 index 031e65ee160..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/hard_swish.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API tanh operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-hard-swish - -testWebNNOperation('hardSwish', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/instance_normalization.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/instance_normalization.https.any.js deleted file mode 100644 index ecfaac71eed..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/instance_normalization.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API instanceNormalization operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-instancenorm - -testWebNNOperation('instanceNormalization', buildLayerNorm, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/layer_normalization.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/layer_normalization.https.any.js deleted file mode 100644 index 0e4f6caebf1..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/layer_normalization.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API layerNormalization operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-layernorm - -testWebNNOperation('layerNormalization', buildLayerNorm, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/leaky_relu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/leaky_relu.https.any.js deleted file mode 100644 index 9fab2353b9a..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/leaky_relu.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API leakyRelu operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-leakyrelu - -testWebNNOperation('leakyRelu', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/linear.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/linear.https.any.js deleted file mode 100644 index ccec2c3eac2..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/linear.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API linear operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-linear - -testWebNNOperation('linear', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/matmul.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/matmul.https.any.js deleted file mode 100644 index 635ce84ac6b..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/matmul.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API matmul operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-matmul - -testWebNNOperation('matmul', buildOperationWithTwoInputs, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/pad.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/pad.https.any.js deleted file mode 100644 index f313e2c9f9a..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/pad.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API pad operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-pad - -testWebNNOperation('pad', buildPad, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/parallel-compute.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/parallel-compute.https.any.js deleted file mode 100644 index 13f2757b54e..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/parallel-compute.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test parallel WebNN API compute operations -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlcontext-compute - -testParallelCompute('gpu'); diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/pooling.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/pooling.https.any.js deleted file mode 100644 index 837bca2c71d..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/pooling.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API pooling operations -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-pool2d - -testWebNNOperation(['averagePool2d', 'l2Pool2d', 'maxPool2d'], buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/prelu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/prelu.https.any.js deleted file mode 100644 index 475cd9e5ce9..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/prelu.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API prelu operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-prelu - -testWebNNOperation('prelu', buildOperationWithTwoInputs, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/reduction.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/reduction.https.any.js deleted file mode 100644 index 0f3cefa02eb..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/reduction.https.any.js +++ /dev/null @@ -1,24 +0,0 @@ -// META: title=test WebNN API reduction operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-reduce - -testWebNNOperation( - [ - 'reduceL1', - 'reduceL2', - 'reduceLogSum', - 'reduceLogSumExp', - 'reduceMax', - 'reduceMean', - 'reduceMin', - 'reduceProduct', - 'reduceSum', - 'reduceSumSquare', - ], - buildOperationWithSingleInput, 'gpu' -);
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/relu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/relu.https.any.js deleted file mode 100644 index d1a35367df4..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/relu.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API relu operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-relu - -testWebNNOperation('relu', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/resample2d.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/resample2d.https.any.js deleted file mode 100644 index dd8e441946e..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/resample2d.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API resample2d operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-resample2d-method - -testWebNNOperation('resample2d', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/reshape.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/reshape.https.any.js deleted file mode 100644 index b0217d2e67b..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/reshape.https.any.js +++ /dev/null @@ -1,11 +0,0 @@ -// META: title=test WebNN API reshape operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-reshape - -testWebNNOperation('reshape', buildReshape, 'gpu'); - diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/sigmoid.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/sigmoid.https.any.js deleted file mode 100644 index 26116c0ff92..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/sigmoid.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API sigmoid operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-sigmoid - -testWebNNOperation('sigmoid', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/slice.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/slice.https.any.js deleted file mode 100644 index 1710c79a9ce..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/slice.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API slice operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-slice - -testWebNNOperation('slice', buildSlice, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/softmax.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/softmax.https.any.js deleted file mode 100644 index 9eaffe2bebc..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/softmax.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API softmax operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-softmax - -testWebNNOperation('softmax', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/softplus.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/softplus.https.any.js deleted file mode 100644 index 5f06846113e..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/softplus.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API softplus operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-softplus - -testWebNNOperation('softplus', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/softsign.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/softsign.https.any.js deleted file mode 100644 index eac0b7ec40c..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/softsign.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API softsign operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-softsign - -testWebNNOperation('softsign', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/split.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/split.https.any.js deleted file mode 100644 index 3b0aafd7870..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/split.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API split operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-split - -testWebNNOperation('split', buildSplit, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/tanh.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/tanh.https.any.js deleted file mode 100644 index 3029f4865a4..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/tanh.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API tanh operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-tanh - -testWebNNOperation('tanh', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/transpose.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/transpose.https.any.js deleted file mode 100644 index 295ef43ec11..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/transpose.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API transpose operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-transpose - -testWebNNOperation('transpose', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/triangular.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/triangular.https.any.js deleted file mode 100644 index 3e1b0d5ab13..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/triangular.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API triangular operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-triangular - -testWebNNOperation('triangular', buildOperationWithSingleInput, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/gpu/where.https.any.js b/tests/wpt/tests/webnn/conformance_tests/gpu/where.https.any.js deleted file mode 100644 index 49c6cbd4e32..00000000000 --- a/tests/wpt/tests/webnn/conformance_tests/gpu/where.https.any.js +++ /dev/null @@ -1,10 +0,0 @@ -// META: title=test WebNN API where operation -// META: global=window,dedicatedworker -// META: script=../../resources/utils.js -// META: timeout=long - -'use strict'; - -// https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-where - -testWebNNOperation('where', buildWhere, 'gpu');
\ No newline at end of file diff --git a/tests/wpt/tests/webnn/conformance_tests/hard_sigmoid.https.any.js b/tests/wpt/tests/webnn/conformance_tests/hard_sigmoid.https.any.js index 8161a245386..55391e7f1c9 100644 --- a/tests/wpt/tests/webnn/conformance_tests/hard_sigmoid.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/hard_sigmoid.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API hardSigmoid operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-hard-sigmoid -testWebNNOperation('hardSigmoid', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('hardSigmoid', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/hard_swish.https.any.js b/tests/wpt/tests/webnn/conformance_tests/hard_swish.https.any.js index b4a7c53d8d2..24b8c413bba 100644 --- a/tests/wpt/tests/webnn/conformance_tests/hard_swish.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/hard_swish.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API tanh operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-hard-swish -testWebNNOperation('hardSwish', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('hardSwish', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/instance_normalization.https.any.js b/tests/wpt/tests/webnn/conformance_tests/instance_normalization.https.any.js index fce879172e5..fc339e5bab4 100644 --- a/tests/wpt/tests/webnn/conformance_tests/instance_normalization.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/instance_normalization.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API instanceNormalization operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-instancenorm -testWebNNOperation('instanceNormalization', buildLayerNorm);
\ No newline at end of file +runWebNNConformanceTests('instanceNormalization', buildLayerNorm); diff --git a/tests/wpt/tests/webnn/conformance_tests/layer_normalization.https.any.js b/tests/wpt/tests/webnn/conformance_tests/layer_normalization.https.any.js index ab8a50cc037..ea3cd04240b 100644 --- a/tests/wpt/tests/webnn/conformance_tests/layer_normalization.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/layer_normalization.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API layerNormalization operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-layernorm -testWebNNOperation('layerNormalization', buildLayerNorm);
\ No newline at end of file +runWebNNConformanceTests('layerNormalization', buildLayerNorm); diff --git a/tests/wpt/tests/webnn/conformance_tests/leaky_relu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/leaky_relu.https.any.js index 2b6f17e95de..b2a4055bde7 100644 --- a/tests/wpt/tests/webnn/conformance_tests/leaky_relu.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/leaky_relu.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API leakyRelu operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-leakyrelu -testWebNNOperation('leakyRelu', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('leakyRelu', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/linear.https.any.js b/tests/wpt/tests/webnn/conformance_tests/linear.https.any.js index 465b697f29a..0e22f7a0360 100644 --- a/tests/wpt/tests/webnn/conformance_tests/linear.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/linear.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API linear operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-linear -testWebNNOperation('linear', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('linear', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/matmul.https.any.js b/tests/wpt/tests/webnn/conformance_tests/matmul.https.any.js index 64eeb37f08b..da782305792 100644 --- a/tests/wpt/tests/webnn/conformance_tests/matmul.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/matmul.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API matmul operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-matmul -testWebNNOperation('matmul', buildOperationWithTwoInputs);
\ No newline at end of file +runWebNNConformanceTests('matmul', buildOperationWithTwoInputs); diff --git a/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js b/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js index f1a2400d1cb..d733cbb6edb 100644 --- a/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/pad.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API pad operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-pad -testWebNNOperation('pad', buildPad);
\ No newline at end of file +runWebNNConformanceTests('pad', buildPad); diff --git a/tests/wpt/tests/webnn/conformance_tests/parallel-compute.https.any.js b/tests/wpt/tests/webnn/conformance_tests/parallel-compute.https.any.js index 304ea5f202f..642fec9f731 100644 --- a/tests/wpt/tests/webnn/conformance_tests/parallel-compute.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/parallel-compute.https.any.js @@ -1,5 +1,7 @@ // META: title=test parallel WebNN API compute operations // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,11 @@ // https://webmachinelearning.github.io/webnn/#api-mlcontext-compute -testParallelCompute(); +if (navigator.ml) { + testParallelCompute(); +} else { + // Show indication to users why the test failed + test( + () => assert_not_equals( + navigator.ml, undefined, 'ml property is defined on navigator')); +} diff --git a/tests/wpt/tests/webnn/conformance_tests/pooling.https.any.js b/tests/wpt/tests/webnn/conformance_tests/pooling.https.any.js index 400d5ed37de..de2ae35a9c1 100644 --- a/tests/wpt/tests/webnn/conformance_tests/pooling.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/pooling.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API pooling operations // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,5 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-pool2d -testWebNNOperation(['averagePool2d', 'l2Pool2d', 'maxPool2d'], buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests( + ['averagePool2d', 'l2Pool2d', 'maxPool2d'], buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js index 83cc9db4b4d..9337211e548 100644 --- a/tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API prelu operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-prelu -testWebNNOperation('prelu', buildOperationWithTwoInputs);
\ No newline at end of file +runWebNNConformanceTests('prelu', buildOperationWithTwoInputs); diff --git a/tests/wpt/tests/webnn/conformance_tests/reduction.https.any.js b/tests/wpt/tests/webnn/conformance_tests/reduction.https.any.js index 30bfb4ba7a8..c291906ba1c 100644 --- a/tests/wpt/tests/webnn/conformance_tests/reduction.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/reduction.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API reduction operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,18 +9,17 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-reduce -testWebNNOperation( - [ - 'reduceL1', - 'reduceL2', - 'reduceLogSum', - 'reduceLogSumExp', - 'reduceMax', - 'reduceMean', - 'reduceMin', - 'reduceProduct', - 'reduceSum', - 'reduceSumSquare', - ], - buildOperationWithSingleInput -);
\ No newline at end of file +runWebNNConformanceTests( + [ + 'reduceL1', + 'reduceL2', + 'reduceLogSum', + 'reduceLogSumExp', + 'reduceMax', + 'reduceMean', + 'reduceMin', + 'reduceProduct', + 'reduceSum', + 'reduceSumSquare', + ], + buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js b/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js index 51e427898fe..7cb23eea1bd 100644 --- a/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/relu.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API relu operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-relu -testWebNNOperation('relu', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('relu', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/resample2d.https.any.js b/tests/wpt/tests/webnn/conformance_tests/resample2d.https.any.js index 0b5b3e00320..b5bdda7197e 100644 --- a/tests/wpt/tests/webnn/conformance_tests/resample2d.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/resample2d.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API resample2d operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-resample2d-method -testWebNNOperation('resample2d', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('resample2d', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js b/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js index c0dafb176c4..a7d03b2a0c2 100644 --- a/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API reshape operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,5 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-reshape -testWebNNOperation('reshape', buildReshape); - +runWebNNConformanceTests('reshape', buildReshape); diff --git a/tests/wpt/tests/webnn/conformance_tests/sigmoid.https.any.js b/tests/wpt/tests/webnn/conformance_tests/sigmoid.https.any.js index 186f4689181..9730b548b56 100644 --- a/tests/wpt/tests/webnn/conformance_tests/sigmoid.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/sigmoid.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API sigmoid operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-sigmoid -testWebNNOperation('sigmoid', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('sigmoid', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/slice.https.any.js b/tests/wpt/tests/webnn/conformance_tests/slice.https.any.js index 64412045176..b316ea58c4b 100644 --- a/tests/wpt/tests/webnn/conformance_tests/slice.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/slice.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API slice operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-slice -testWebNNOperation('slice', buildSlice);
\ No newline at end of file +runWebNNConformanceTests('slice', buildSlice); diff --git a/tests/wpt/tests/webnn/conformance_tests/softmax.https.any.js b/tests/wpt/tests/webnn/conformance_tests/softmax.https.any.js index 143b7d969fc..a68a32c45f0 100644 --- a/tests/wpt/tests/webnn/conformance_tests/softmax.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/softmax.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API softmax operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-softmax -testWebNNOperation('softmax', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('softmax', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/softplus.https.any.js b/tests/wpt/tests/webnn/conformance_tests/softplus.https.any.js index fcd6410bdb3..7d89b117eb5 100644 --- a/tests/wpt/tests/webnn/conformance_tests/softplus.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/softplus.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API softplus operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-softplus -testWebNNOperation('softplus', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('softplus', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/softsign.https.any.js b/tests/wpt/tests/webnn/conformance_tests/softsign.https.any.js index 6e26afdadee..e175e0de56c 100644 --- a/tests/wpt/tests/webnn/conformance_tests/softsign.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/softsign.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API softsign operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-softsign -testWebNNOperation('softsign', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('softsign', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/split.https.any.js b/tests/wpt/tests/webnn/conformance_tests/split.https.any.js index 0de6cb4d8df..78d707687f0 100644 --- a/tests/wpt/tests/webnn/conformance_tests/split.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/split.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API split operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-split -testWebNNOperation('split', buildSplit);
\ No newline at end of file +runWebNNConformanceTests('split', buildSplit); diff --git a/tests/wpt/tests/webnn/conformance_tests/tanh.https.any.js b/tests/wpt/tests/webnn/conformance_tests/tanh.https.any.js index c5d1f86ab1c..e3ab5e9192d 100644 --- a/tests/wpt/tests/webnn/conformance_tests/tanh.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/tanh.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API tanh operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-tanh -testWebNNOperation('tanh', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('tanh', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js b/tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js index 746e53d512a..83bd7a45c18 100644 --- a/tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API transpose operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-transpose -testWebNNOperation('transpose', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('transpose', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js b/tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js index 503f310620b..499f60ed366 100644 --- a/tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API triangular operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-triangular -testWebNNOperation('triangular', buildOperationWithSingleInput);
\ No newline at end of file +runWebNNConformanceTests('triangular', buildOperationWithSingleInput); diff --git a/tests/wpt/tests/webnn/conformance_tests/where.https.any.js b/tests/wpt/tests/webnn/conformance_tests/where.https.any.js index 7926221d3ae..4ab453ab245 100644 --- a/tests/wpt/tests/webnn/conformance_tests/where.https.any.js +++ b/tests/wpt/tests/webnn/conformance_tests/where.https.any.js @@ -1,5 +1,7 @@ // META: title=test WebNN API where operation // META: global=window,dedicatedworker +// META: variant=?cpu +// META: variant=?gpu // META: script=../resources/utils.js // META: timeout=long @@ -7,4 +9,4 @@ // https://webmachinelearning.github.io/webnn/#api-mlgraphbuilder-where -testWebNNOperation('where', buildWhere);
\ No newline at end of file +runWebNNConformanceTests('where', buildWhere); diff --git a/tests/wpt/tests/webnn/resources/utils.js b/tests/wpt/tests/webnn/resources/utils.js index 653e036cd11..e5b80ae9f7f 100644 --- a/tests/wpt/tests/webnn/resources/utils.js +++ b/tests/wpt/tests/webnn/resources/utils.js @@ -13,6 +13,15 @@ const TypedArrayDict = { int64: BigInt64Array, }; +const kContextOptionsForVariant = { + cpu: { + deviceType: 'cpu', + }, + gpu: { + deviceType: 'gpu', + } +}; + // The maximum index to validate for the output's expected value. const kMaximumIndexToValidate = 1000; @@ -867,17 +876,15 @@ const run = async (operationName, context, builder, resources, buildFunc) => { checkResults(operationName, namedOutputOperands, result.outputs, resources); }; +const variant = location.search.substring(1); +const contextOptions = kContextOptionsForVariant[variant]; + /** * Run WebNN operation tests. * @param {(String[]|String)} operationName - An operation name array or an operation name * @param {Function} buildFunc - A build function for an operation - * @param {String} deviceType - The execution device type for this test */ -const testWebNNOperation = (operationName, buildFunc, deviceType = 'cpu') => { - test(() => assert_not_equals(navigator.ml, undefined, "ml property is defined on navigator")); - if (navigator.ml === undefined) { - return; - } +const testWebNNOperation = (operationName, buildFunc) => { let operationNameArray; if (typeof operationName === 'string') { operationNameArray = [operationName]; @@ -890,7 +897,14 @@ const testWebNNOperation = (operationName, buildFunc, deviceType = 'cpu') => { operationNameArray.forEach((subOperationName) => { const tests = loadTests(subOperationName); promise_setup(async () => { - context = await navigator.ml.createContext({deviceType}); + let supported = false; + try { + context = await navigator.ml.createContext(contextOptions); + supported = true; + } catch (e) { + } + assert_implements( + supported, `Unable to create context for ${variant} variant`); builder = new MLGraphBuilder(context); }); for (const subTest of tests) { @@ -903,14 +917,20 @@ const testWebNNOperation = (operationName, buildFunc, deviceType = 'cpu') => { /** * WebNN parallel compute operation test. - * @param {String} deviceType - The execution device type for this test. */ -const testParallelCompute = (deviceType = 'cpu') => { +const testParallelCompute = () => { let ml_context; let ml_graph; promise_setup(async () => { - ml_context = await navigator.ml.createContext({deviceType}); + let supported = false; + try { + ml_context = await navigator.ml.createContext(contextOptions); + supported = true; + } catch (e) { + } + assert_implements( + supported, `Unable to create context for ${variant} variant`); // Construct a simple graph: A = B * 2. const builder = new MLGraphBuilder(ml_context); const operandType = {dataType: 'float32', dimensions: [1]}; @@ -935,6 +955,25 @@ const testParallelCompute = (deviceType = 'cpu') => { }); }; +/** + * Run WebNN conformance tests by specified operation. + * @param {(String[]|String)} operationName - An operation name array or an + * operation name + * @param {Function} buildFunc - A build function for an operation + */ +const runWebNNConformanceTests = (operationName, buildFunc) => { + // Link to https://github.com/web-platform-tests/wpt/pull/44883 + // Check navigator.ml is defined before trying to run WebNN tests + if (navigator.ml) { + testWebNNOperation(operationName, buildFunc); + } else { + // Show indication to users why the test failed + test( + () => assert_not_equals( + navigator.ml, undefined, 'ml property is defined on navigator')); + } +}; + // ref: http://stackoverflow.com/questions/32633585/how-do-you-convert-to-half-floats-in-javascript const toHalf = (value) => { let floatView = new Float32Array(1); @@ -1004,13 +1043,19 @@ const createBuffer = (context, bufferSize) => { /** * WebNN destroy buffer twice test. * @param {String} testName - The name of the test operation. - * @param {String} deviceType - The execution device type for this test. */ -const testDestroyWebNNBuffer = (testName, deviceType = 'cpu') => { +const testDestroyWebNNBuffer = (testName) => { let context; let buffer; promise_setup(async () => { - context = await navigator.ml.createContext({deviceType}); + let supported = false; + try { + context = await navigator.ml.createContext(contextOptions); + supported = true; + } catch (e) { + } + assert_implements( + supported, `Unable to create context for ${variant} variant`); buffer = createBuffer(context, 4); }); promise_test(async () => { @@ -1027,12 +1072,19 @@ const testDestroyWebNNBuffer = (testName, deviceType = 'cpu') => { * WebNN create buffer test. * @param {String} testName - The name of the test operation. * @param {Number} bufferSize - Size of the buffer to create, in bytes. - * @param {String} deviceType - The execution device type for this test. */ -const testCreateWebNNBuffer = (testName, bufferSize, deviceType = 'cpu') => { +const testCreateWebNNBuffer = (testName, bufferSize) => { let context; + promise_setup(async () => { - context = await navigator.ml.createContext({deviceType}); + let supported = false; + try { + context = await navigator.ml.createContext(contextOptions); + supported = true; + } catch (e) { + } + assert_implements( + supported, `Unable to create context for ${variant} variant`); }); promise_test(async () => { createBuffer(context, bufferSize); @@ -1055,12 +1107,18 @@ const assert_buffer_data_equals = async (ml_context, ml_buffer, expected) => { /** * WebNN write buffer operation test. * @param {String} testName - The name of the test operation. - * @param {String} deviceType - The execution device type for this test. */ -const testWriteWebNNBuffer = (testName, deviceType = 'cpu') => { +const testWriteWebNNBuffer = (testName) => { let ml_context; promise_setup(async () => { - ml_context = await navigator.ml.createContext({deviceType}); + let supported = false; + try { + ml_context = await navigator.ml.createContext(contextOptions); + supported = true; + } catch (e) { + } + assert_implements( + supported, `Unable to create context for ${variant} variant`); }); promise_test(async () => { @@ -1151,7 +1209,7 @@ const testWriteWebNNBuffer = (testName, deviceType = 'cpu') => { return; } - let another_ml_context = await navigator.ml.createContext({deviceType}); + let another_ml_context = await navigator.ml.createContext(contextOptions); let another_ml_buffer = createBuffer(another_ml_context, ml_buffer.size); let input_data = new Uint8Array(ml_buffer.size).fill(0xAA); @@ -1165,12 +1223,18 @@ const testWriteWebNNBuffer = (testName, deviceType = 'cpu') => { /** * WebNN read buffer operation test. * @param {String} testName - The name of the test operation. - * @param {String} deviceType - The execution device type for this test. */ -const testReadWebNNBuffer = (testName, deviceType = 'cpu') => { +const testReadWebNNBuffer = (testName) => { let ml_context; promise_setup(async () => { - ml_context = await navigator.ml.createContext({deviceType}); + let supported = false; + try { + ml_context = await navigator.ml.createContext(contextOptions); + supported = true; + } catch (e) { + } + assert_implements( + supported, `Unable to create context for ${variant} variant`); }); promise_test(async t => { @@ -1311,7 +1375,7 @@ const testReadWebNNBuffer = (testName, deviceType = 'cpu') => { return; } - let another_ml_context = await navigator.ml.createContext({deviceType}); + let another_ml_context = await navigator.ml.createContext(contextOptions); let another_ml_buffer = createBuffer(another_ml_context, ml_buffer.size); await promise_rejects_js( diff --git a/tests/wpt/tests/webrtc/back-forward-cache-with-open-webrtc-connection.https.window.js b/tests/wpt/tests/webrtc/back-forward-cache-with-open-webrtc-connection.https.window.js index fe41a9cfd51..de797b3f2c5 100644 --- a/tests/wpt/tests/webrtc/back-forward-cache-with-open-webrtc-connection.https.window.js +++ b/tests/wpt/tests/webrtc/back-forward-cache-with-open-webrtc-connection.https.window.js @@ -4,6 +4,7 @@ // META: script=/html/browsers/browsing-the-web/back-forward-cache/resources/rc-helper.js // META: script=/html/browsers/browsing-the-web/remote-context-helper/resources/remote-context-helper.js // META: script=resources/webrtc-test-helpers.sub.js +// META: timeout=long 'use strict'; |