aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/wpt/meta-legacy-layout/css/css-transitions/starting-style-size-container.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/dom/nodes/moveBefore/tentative/focus-preserve.html.ini12
-rw-r--r--tests/wpt/meta-legacy-layout/html/browsers/browsing-the-web/navigating-across-documents/initial-empty-document/load-pageshow-events-window-open.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/html/browsers/history/the-history-interface/traverse_the_history_2.html.ini3
-rw-r--r--tests/wpt/meta-legacy-layout/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-1.html.ini2
-rw-r--r--tests/wpt/meta/MANIFEST.json6027
-rw-r--r--tests/wpt/meta/css/css-transitions/starting-style-size-container.html.ini3
-rw-r--r--tests/wpt/meta/css/cssom-view/MediaQueryList-extends-EventTarget-interop.html.ini3
-rw-r--r--tests/wpt/meta/dom/nodes/moveBefore/tentative/focus-preserve.html.ini12
-rw-r--r--tests/wpt/meta/html/browsers/browsing-the-web/navigating-across-documents/navigation-unload-same-origin.window.js.ini3
-rw-r--r--tests/wpt/meta/html/browsers/history/the-history-interface/traverse_the_history_3.html.ini3
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-1.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-3.html.ini2
-rw-r--r--tests/wpt/meta/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-2.html.ini2
-rw-r--r--tests/wpt/meta/webmessaging/without-ports/017.html.ini4
-rw-r--r--tests/wpt/tests/IndexedDB/serialize-sharedarraybuffer-throws.https.html2
-rw-r--r--tests/wpt/tests/attribution-reporting/referrer-policy.sub.https.html56
-rw-r--r--tests/wpt/tests/attribution-reporting/request-format.sub.https.html2
-rw-r--r--tests/wpt/tests/attribution-reporting/resources/helpers.js12
-rw-r--r--tests/wpt/tests/compute-pressure/compute_pressure_known_sources.https.any.js (renamed from tests/wpt/tests/compute-pressure/compute_pressure_supported_sources.https.any.js)10
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-overflow-hidden-ref.html37
-rw-r--r--tests/wpt/tests/css/css-anchor-position/anchor-scroll-overflow-hidden.html67
-rw-r--r--tests/wpt/tests/css/css-flexbox/min-size-auto-overflow-clip-ref.html14
-rw-r--r--tests/wpt/tests/css/css-flexbox/min-size-auto-overflow-clip.html18
-rw-r--r--tests/wpt/tests/css/css-grid/min-size-auto-overflow-clip-ref.html18
-rw-r--r--tests/wpt/tests/css/css-grid/min-size-auto-overflow-clip.html22
-rw-r--r--tests/wpt/tests/css/css-images/gradient/repeating-gradient-hsl-and-oklch-ref.html47
-rw-r--r--tests/wpt/tests/css/css-images/gradient/repeating-gradient-hsl-and-oklch.html44
-rw-r--r--tests/wpt/tests/css/css-page/fixedpos-009-print-ref.html32
-rw-r--r--tests/wpt/tests/css/css-page/fixedpos-009-print.html24
-rw-r--r--tests/wpt/tests/css/css-page/fixedpos-010-print-ref.html28
-rw-r--r--tests/wpt/tests/css/css-page/fixedpos-010-print.html25
-rw-r--r--tests/wpt/tests/css/css-transitions/starting-style-size-container.html53
-rw-r--r--tests/wpt/tests/css/css-view-transitions/new-content-ancestor-clipped-ref.html34
-rw-r--r--tests/wpt/tests/css/css-view-transitions/new-content-ancestor-clipped.html50
-rw-r--r--tests/wpt/tests/css/css-view-transitions/pseudo-with-classes-match-wildcard.html (renamed from tests/wpt/tests/css/css-view-transitions/pseudo-with-classes-match-wildard.html)0
-rw-r--r--tests/wpt/tests/css/css-viewport/zoom/relative-units-from-parent-ref.html4
-rw-r--r--tests/wpt/tests/css/css-viewport/zoom/relative-units-from-parent.html13
-rw-r--r--tests/wpt/tests/css/css-viewport/zoom/relative-units.html42
-rw-r--r--tests/wpt/tests/css/cssom-view/offsetTop-offsetLeft-with-zoom.html15
-rw-r--r--tests/wpt/tests/dom/nodes/moveBefore/tentative/chrome-338071841-crash.html6
-rw-r--r--tests/wpt/tests/dom/nodes/moveBefore/tentative/focus-preserve.html85
-rw-r--r--tests/wpt/tests/fledge/tentative/score-ad-browser-signals.https.window.js57
-rw-r--r--tests/wpt/tests/inert/inert-and-find-flat-tree.html28
-rw-r--r--tests/wpt/tests/infrastructure/metadata/infrastructure/testdriver/click_iframe_crossorigin.sub.html.ini1
-rw-r--r--tests/wpt/tests/interfaces/compute-pressure.idl2
-rw-r--r--tests/wpt/tests/pointerevents/deviceproperties/unique-id-is-unique-manual.tentative.html142
-rw-r--r--tests/wpt/tests/screen-capture/getallscreensmedia-exposure.tentative.https.window.js19
-rw-r--r--tests/wpt/tests/service-workers/service-worker/tentative/static-router/resources/router-rules.js25
-rw-r--r--tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-invalid-rules.https.html28
-rw-r--r--tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-main-resource.https.html17
-rw-r--r--tests/wpt/tests/service-workers/service-worker/tentative/static-router/static-router-subresource.https.html14
-rw-r--r--tests/wpt/tests/shadow-dom/focus-navigation/focus-navigation-slot-nested-2levels.html1
-rw-r--r--tests/wpt/tests/svg/painting/scripted/marker-element-added.html29
-rw-r--r--tests/wpt/tests/tools/ci/azure/install_chrome.yml2
-rw-r--r--tests/wpt/tests/tools/ci/azure/install_firefox.yml7
-rw-r--r--tests/wpt/tests/tools/serve/serve.py15
-rw-r--r--tests/wpt/tests/tools/wptrunner/requirements.txt4
-rw-r--r--tests/wpt/tests/tools/wptrunner/requirements_firefox.txt2
-rw-r--r--tests/wpt/tests/tools/wptrunner/requirements_safari.txt2
-rw-r--r--tests/wpt/tests/trusted-types/support/resolve-spv.js9
-rw-r--r--tests/wpt/tests/trusted-types/trusted-types-svg-script-set-href.html107
-rw-r--r--tests/wpt/tests/trusted-types/trusted-types-svg-script.html102
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/arg_min_max.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/batch_normalization.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/buffer.https.any.js17
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/cast.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/clamp.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/compute-arraybufferview-with-bigger-arraybuffer.https.any.js61
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/concat.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/constant.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/conv2d.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/conv_transpose2d.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/elementwise_binary.https.any.js6
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/elementwise_logical.https.any.js27
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/elementwise_unary.https.any.js12
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/elu.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/expand.https.any.js6
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gather.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gemm.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/arg_min_max.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/batch_normalization.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/buffer.https.any.js16
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/cast.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/clamp.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/compute-arraybufferview-with-bigger-arraybuffer.https.any.js37
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/concat.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/constant.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/conv2d.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/conv_transpose2d.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_binary.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_logical.https.any.js20
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/elementwise_unary.https.any.js13
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/elu.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/expand.https.any.js11
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/gather.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/gemm.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/hard_sigmoid.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/hard_swish.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/instance_normalization.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/layer_normalization.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/leaky_relu.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/linear.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/matmul.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/pad.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/parallel-compute.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/pooling.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/prelu.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/reduction.https.any.js24
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/relu.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/resample2d.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/reshape.https.any.js11
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/sigmoid.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/slice.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/softmax.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/softplus.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/softsign.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/split.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/tanh.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/transpose.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/triangular.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/gpu/where.https.any.js10
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/hard_sigmoid.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/hard_swish.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/instance_normalization.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/layer_normalization.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/leaky_relu.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/linear.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/matmul.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/pad.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/parallel-compute.https.any.js11
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/pooling.https.any.js5
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/prelu.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/reduction.https.any.js31
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/relu.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/resample2d.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/reshape.https.any.js5
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/sigmoid.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/slice.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/softmax.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/softplus.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/softsign.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/split.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/tanh.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/transpose.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/triangular.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/conformance_tests/where.https.any.js4
-rw-r--r--tests/wpt/tests/webnn/resources/utils.js112
-rw-r--r--tests/wpt/tests/webrtc/back-forward-cache-with-open-webrtc-connection.https.window.js1
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>&lt;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';