Roll third_party/webgpu-cts/ 0d52602a4..941695197 (12 commits)

Regenerated:
 - expectations.txt
 - ts_sources.txt
 - test_list.txt
 - cache_list.txt
 - resource_files.txt
 - webtest .html files


https://chromium.googlesource.com/external/github.com/gpuweb/cts/+log/0d52602a417b..941695197d92
 - 941695 Make objectEquals(NaN, NaN) return true (#2153)
 - 23b860 Make it possible to simply run the wpt ref tests
 - 1b9cc1 Fix Buffer.mapState op tests (#2145)
 - 0cb55f Use takeScreenshotDelayed in canvas_image_rendering-ref.html
 - 9adf83 Remove phantom dependency on reftest-wait.js, copy code into CTS
 - ce6e91 Maximize the acceptance interval size for `dot` (#2151)
 - d1093e If subcase can't be added to .message, use .stack (#2144)
 - f44818 Add more states to canvas composite ref tests. (#2133)
 - f7fcc6 Cache pipelines between batches for expression tests
 - 142289 Optimize expression shaders for `inputSource="uniform"`
 - f3764e Unclutter the URL
 - 6a7b90 Add Buffer.mapState test (#2130)

Created with './tools/run cts roll'

Change-Id: I8cfc04e78f1bfc387d49926344a1792c6d319760
Cq-Include-Trybots: luci.chromium.try:dawn-try-win10-x86-rel,linux-dawn-rel,mac-dawn-rel,win-dawn-rel
Include-Ci-Only-Tests: true
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117000
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Ben Clayton <bclayton@google.com>
diff --git a/DEPS b/DEPS
index 6aed8bc..e0df579 100644
--- a/DEPS
+++ b/DEPS
@@ -158,7 +158,7 @@
 
   # WebGPU CTS - not used directly by Dawn, only transitively by Chromium.
   'third_party/webgpu-cts': {
-    'url': '{chromium_git}/external/github.com/gpuweb/cts@0d52602a417b856553d0a89d75b6f6ba0140bb65',
+    'url': '{chromium_git}/external/github.com/gpuweb/cts@941695197d924f38b942327e64b87766854d16b4',
     'condition': 'build_with_chromium',
   },
 
diff --git a/third_party/gn/webgpu-cts/test_list.txt b/third_party/gn/webgpu-cts/test_list.txt
index bcd9a48..dc1b398 100644
--- a/third_party/gn/webgpu-cts/test_list.txt
+++ b/third_party/gn/webgpu-cts/test_list.txt
@@ -130,8 +130,80 @@
 webgpu:api,operation,buffers,map:mapAsync,read,typedArrayAccess:mapAsyncRegionLeft="minimal";mapAsyncRegionRight="default-expand"
 webgpu:api,operation,buffers,map:mapAsync,read,typedArrayAccess:mapAsyncRegionLeft="minimal";mapAsyncRegionRight="explicit-expand"
 webgpu:api,operation,buffers,map:mapAsync,read,typedArrayAccess:mapAsyncRegionLeft="minimal";mapAsyncRegionRight="minimal"
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=false;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=false;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=false;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=false;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=true;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=true;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=true;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=true;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=false;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=false;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=false;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=false;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=true;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=true;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=true;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=true;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=false;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=false;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=false;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=false;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=true;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=true;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=true;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=true;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=false;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=false;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=false;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=false;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=true;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=true;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=true;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=false;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=true;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=false;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=false;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=false;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=false;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=true;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=true;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=true;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=false;beforeDestroy=true;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=false;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=false;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=false;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=false;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=true;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=true;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=true;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=false;beforeUnmap=true;beforeDestroy=true;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=false;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=false;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=false;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=false;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=true;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=true;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=true;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=false;beforeDestroy=true;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=false;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=false;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=false;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=false;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=true;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=true;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=true;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mapAsync,mapState:bufferCreationValidationError=true;mapAsyncValidationError=true;beforeUnmap=true;beforeDestroy=true;afterUnmap=true;afterDestroy=true
 webgpu:api,operation,buffers,map:mappedAtCreation:mappable=false
 webgpu:api,operation,buffers,map:mappedAtCreation:mappable=true
+webgpu:api,operation,buffers,map:mappedAtCreation,mapState:validationError=false;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mappedAtCreation,mapState:validationError=false;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mappedAtCreation,mapState:validationError=false;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mappedAtCreation,mapState:validationError=false;afterUnmap=true;afterDestroy=true
+webgpu:api,operation,buffers,map:mappedAtCreation,mapState:validationError=true;afterUnmap=false;afterDestroy=false
+webgpu:api,operation,buffers,map:mappedAtCreation,mapState:validationError=true;afterUnmap=false;afterDestroy=true
+webgpu:api,operation,buffers,map:mappedAtCreation,mapState:validationError=true;afterUnmap=true;afterDestroy=false
+webgpu:api,operation,buffers,map:mappedAtCreation,mapState:validationError=true;afterUnmap=true;afterDestroy=true
 webgpu:api,operation,buffers,map:remapped_for_write:mapAsyncRegionLeft="default-expand";mapAsyncRegionRight="default-expand"
 webgpu:api,operation,buffers,map:remapped_for_write:mapAsyncRegionLeft="default-expand";mapAsyncRegionRight="explicit-expand"
 webgpu:api,operation,buffers,map:remapped_for_write:mapAsyncRegionLeft="default-expand";mapAsyncRegionRight="minimal"
diff --git a/third_party/gn/webgpu-cts/ts_sources.txt b/third_party/gn/webgpu-cts/ts_sources.txt
index c4e331f..17fc7b8 100644
--- a/third_party/gn/webgpu-cts/ts_sources.txt
+++ b/third_party/gn/webgpu-cts/ts_sources.txt
@@ -46,9 +46,11 @@
 src/common/tools/gen_listings.ts
 src/common/tools/gen_wpt_cts_html.ts
 src/common/tools/presubmit.ts
+src/common/tools/run_wpt_ref_tests.ts
 src/common/tools/version.ts
 src/common/util/collect_garbage.ts
 src/common/util/preprocessor.ts
+src/common/util/wpt_reftest_wait.ts
 src/unittests/unit_test.ts
 src/demo/a.spec.ts
 src/demo/json.spec.ts
diff --git a/webgpu-cts/expectations.txt b/webgpu-cts/expectations.txt
index 81ac3fd..d1b5ef9 100644
--- a/webgpu-cts/expectations.txt
+++ b/webgpu-cts/expectations.txt
@@ -60,7 +60,7 @@
 # results: [ Failure RetryOnFailure Skip Slow ]
 # END TAG HEADER
 
-# Last rolled: 2023-01-10 06:11:34PM
+# Last rolled: 2023-01-12 02:08:17PM
 
 ################################################################################
 # copyToTexture failures on Linux
@@ -191,12 +191,15 @@
 crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="uniform";vectorize=2 [ Failure ]
 crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="uniform";vectorize=3 [ Failure ]
 crbug.com/dawn/1799 [ win10 ] webgpu:shader,execution,expression,binary,f32_arithmetic:remainder:inputSource="uniform";vectorize=4 [ Failure ]
-crbug.com/tint/1790 [ monterey ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec3:inputSource="storage_r" [ Failure ]
-crbug.com/tint/1790 [ monterey ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec3:inputSource="storage_rw" [ Failure ]
-crbug.com/tint/1790 [ monterey ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec3:inputSource="uniform" [ Failure ]
-crbug.com/tint/1790 [ monterey ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="storage_r" [ Failure ]
-crbug.com/tint/1790 [ monterey ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="storage_rw" [ Failure ]
-crbug.com/tint/1790 [ monterey ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="uniform" [ Failure ]
+crbug.com/tint/1790 webgpu:shader,execution,expression,call,builtin,dot:f32_vec3:inputSource="storage_r" [ Failure ]
+crbug.com/tint/1790 webgpu:shader,execution,expression,call,builtin,dot:f32_vec3:inputSource="storage_rw" [ Failure ]
+crbug.com/tint/1790 webgpu:shader,execution,expression,call,builtin,dot:f32_vec3:inputSource="uniform" [ Failure ]
+crbug.com/tint/1790 [ ubuntu ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="storage_r" [ Failure ]
+crbug.com/tint/1790 [ win10 ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="storage_r" [ Failure ]
+crbug.com/tint/1790 [ ubuntu ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="storage_rw" [ Failure ]
+crbug.com/tint/1790 [ win10 ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="storage_rw" [ Failure ]
+crbug.com/tint/1790 [ ubuntu ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="uniform" [ Failure ]
+crbug.com/tint/1790 [ win10 ] webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="uniform" [ Failure ]
 crbug.com/tint/1794 [ intel-gen-9 ubuntu ] webgpu:shader,execution,expression,call,builtin,countTrailingZeros:i32:inputSource="storage_r";vectorize="_undef_" [ Failure ]
 crbug.com/tint/1794 [ intel-gen-9 ubuntu ] webgpu:shader,execution,expression,call,builtin,countTrailingZeros:i32:inputSource="storage_r";vectorize=2 [ Failure ]
 crbug.com/tint/1794 [ intel-gen-9 ubuntu ] webgpu:shader,execution,expression,call,builtin,countTrailingZeros:i32:inputSource="storage_r";vectorize=3 [ Failure ]
@@ -281,7 +284,6 @@
 crbug.com/tint/1796 [ intel-gen-9 ubuntu ] webgpu:shader,execution,expression,call,builtin,asin:f32:inputSource="uniform";vectorize=4 [ Failure ]
 crbug.com/tint/1796 [ intel-gen-9 win10 ] webgpu:shader,execution,expression,call,builtin,asin:f32:inputSource="uniform";vectorize=4 [ Failure ]
 crbug.com/tint/1796 [ nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,asin:f32:inputSource="uniform";vectorize=4 [ Failure ]
-crbug.com/tint/1797 [ dawn-no-backend-validation nvidia-0x2184 win10 ] webgpu:shader,execution,expression,call,builtin,faceForward:f32_vec3:inputSource="uniform" [ Failure ]
 crbug.com/tint/1798 [ intel-gen-9 win10 ] webgpu:shader,execution,expression,call,builtin,reflect:f32_vec2:inputSource="storage_r" [ Failure ]
 crbug.com/tint/1798 [ intel-gen-9 win10 ] webgpu:shader,execution,expression,call,builtin,reflect:f32_vec2:inputSource="storage_rw" [ Failure ]
 crbug.com/tint/1798 [ intel-gen-9 win10 ] webgpu:shader,execution,expression,call,builtin,reflect:f32_vec2:inputSource="uniform" [ Failure ]
@@ -384,8 +386,20 @@
 crbug.com/dawn/0000 [ mac ] worker_webgpu:api,operation,render_pass,storeOp:render_pass_store_op,depth_stencil_attachment_only:depthStencilFormat="stencil8";* [ Failure ]
 crbug.com/dawn/0000 [ win10 ] worker_webgpu:api,validation,buffer,mapping:mapAsync,invalidBuffer: [ Failure ]
 
+# New flakes. Please triage:
+crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 ubuntu ] webgpu:api,validation,encoding,cmds,render,draw:unused_buffer_bound:smallIndexBuffer=false;smallVertexBuffer=false;smallInstanceBuffer=false [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 ubuntu ] webgpu:api,validation,encoding,cmds,render,draw:unused_buffer_bound:smallIndexBuffer=false;smallVertexBuffer=true;smallInstanceBuffer=false [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 ubuntu ] webgpu:api,validation,encoding,cmds,render,draw:unused_buffer_bound:smallIndexBuffer=false;smallVertexBuffer=true;smallInstanceBuffer=true [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:canvasType="offscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rgb10a2unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:canvasType="onscreen";srcAndDstInSameGPUDevice=false;dstColorFormat="rgba16float";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=true [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gpu_context_canvas:canvasType="onscreen";srcAndDstInSameGPUDevice=true;dstColorFormat="rg8unorm";srcAlphaMode="premultiplied";dstAlphaMode="opaque";srcDoFlipYDuringCopy=false [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-backend-validation target-cpu-64 win10 ] worker_webgpu:api,operation,rendering,basic:large_draw:indexed=false;indirect=true [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-no-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,validation,buffer,mapping:getMappedRange,offsetAndSizeAlignment,mappedAtCreation: [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-no-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,validation,buffer,mapping:mapAsync,earlyRejection: [ RetryOnFailure ]
+crbug.com/dawn/0000 [ dawn-no-backend-validation nvidia-0x2184 target-cpu-32 win10 ] worker_webgpu:api,validation,buffer,mapping:unmap,state,unmapped: [ RetryOnFailure ]
+
 # New failures. Please triage:
-crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 ubuntu ] webgpu:api,operation,adapter,requestDevice:features,known:feature="depth-clip-control" [ Failure ]
 crbug.com/dawn/0000 webgpu:api,operation,buffers,map_ArrayBuffer:postMessage:transfer=true;mapMode="READ" [ Failure ]
 crbug.com/dawn/0000 webgpu:api,operation,buffers,map_ArrayBuffer:postMessage:transfer=true;mapMode="WRITE" [ Failure ]
 crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu ] webgpu:api,operation,rendering,depth_bias:depth_bias:quadAngle=0;bias=-8388608;biasSlopeScale=0;biasClamp=0.125 [ Failure ]
@@ -393,19 +407,14 @@
 crbug.com/dawn/0000 webgpu:api,validation,buffer,mapping:getMappedRange,state,mappingPending: [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,buffer,mapping:mapAsync,earlyRejection: [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,buffer,mapping:mapAsync,state,mappingPending: [ Failure ]
-crbug.com/dawn/0000 webgpu:api,validation,compute_pipeline:overrides,value,type_error:isAsync=false;constants={"cf":"_nan_"} [ Failure ]
-crbug.com/dawn/0000 webgpu:api,validation,compute_pipeline:overrides,value,type_error:isAsync=true;constants={"cf":"_nan_"} [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,createBindGroupLayout:multisampled_validation:viewDimension="2d" [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,createBindGroupLayout:multisampled_validation:viewDimension="_undef_" [ Failure ]
 crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 ubuntu ] webgpu:api,validation,encoding,cmds,render,draw:buffer_binding_overlap:drawType="drawIndexedIndirect" [ Failure ]
 crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 ubuntu ] webgpu:api,validation,encoding,cmds,render,draw:buffer_binding_overlap:drawType="drawIndirect" [ Failure ]
-crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 ubuntu ] webgpu:api,validation,encoding,cmds,render,draw:unused_buffer_bound:smallIndexBuffer=false;smallVertexBuffer=false;smallInstanceBuffer=false [ Failure ]
 crbug.com/dawn/0000 [ dawn-backend-validation intel-gen-9 ubuntu ] webgpu:api,validation,encoding,cmds,render,draw:vertex_buffer_OOB:* [ Failure ]
 crbug.com/dawn/0000 webgpu:api,validation,encoding,encoder_state:pass_end_twice: [ Failure ]
-crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,overrides:value,type_error,fragment:isAsync=false;fragmentConstants={"cf":"_nan_"} [ Failure ]
-crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,overrides:value,type_error,fragment:isAsync=true;fragmentConstants={"cf":"_nan_"} [ Failure ]
-crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,overrides:value,type_error,vertex:isAsync=false;vertexConstants={"cf":"_nan_"} [ Failure ]
-crbug.com/dawn/0000 webgpu:api,validation,render_pipeline,overrides:value,type_error,vertex:isAsync=true;vertexConstants={"cf":"_nan_"} [ Failure ]
+crbug.com/dawn/0000 webgpu:shader,execution,expression,call,builtin,dot:f32_vec3:inputSource="const" [ Failure ]
+crbug.com/dawn/0000 webgpu:shader,execution,expression,call,builtin,dot:f32_vec4:inputSource="const" [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:alpha_mode:* [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:defaults:* [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,configure:device:* [ Failure ]
@@ -491,5 +500,3 @@
 crbug.com/dawn/0000 [ nvidia-0x2184 ubuntu webgpu-adapter-default ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
 crbug.com/dawn/0000 [ nvidia-0x2184 webgpu-adapter-default win10 ] webgpu:web_platform,canvas,configure:viewFormats:canvasType="onscreen";format="rgba8unorm";viewFormatFeature="texture-compression-bc" [ Failure ]
 crbug.com/dawn/0000 [ monterey ] webgpu:web_platform,canvas,getCurrentTexture:* [ Failure ]
-crbug.com/dawn/0000 [ dawn-no-backend-validation nvidia-0x2184 ubuntu webgpu-adapter-swiftshader ] webgpu:web_platform,copyToTexture,canvas:copy_contents_from_gl_context_canvas:canvasType="onscreen";contextName="webgl";dstColorFormat="r32float";srcPremultiplied=false;dstAlphaMode="opaque";srcDoFlipYDuringCopy=false [ Failure ]
-crbug.com/dawn/0000 [ dawn-backend-validation target-cpu-64 win10 ] worker_webgpu:api,operation,rendering,basic:large_draw:indexed=false;indirect=true [ Failure ]
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_clear.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_clear.https.html
index b545175..a8f13e6 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_clear.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_clear.https.html
@@ -9,6 +9,5 @@
   <canvas id="cvs0" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs1" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs2" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
   <script type="module" src="canvas_clear.html.js"></script>
 </html>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_bgra8unorm_copy.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_bgra8unorm_copy.https.html
index 6ae3a4a..90d9fc2 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_bgra8unorm_copy.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_bgra8unorm_copy.https.html
@@ -14,7 +14,6 @@
   <canvas id="cvs_copy_texture_to_texture" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs_copy_external_image_to_texture" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
 
-  <script src="/common/reftest-wait.js"></script>
   <script type="module">
     import { run } from './canvas_complex.html.js';
     run('bgra8unorm', [
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_bgra8unorm_draw.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_bgra8unorm_draw.https.html
index d61f43c..ad63fe5 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_bgra8unorm_draw.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_bgra8unorm_draw.https.html
@@ -14,7 +14,6 @@
   <canvas id="cvs_draw_vertex_color" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs_draw_fragcoord" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
 
-  <script src="/common/reftest-wait.js"></script>
   <script type="module">
     import { run } from './canvas_complex.html.js';
     run('bgra8unorm', [
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_copy.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_copy.https.html
index 63f045f..48725c2 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_copy.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_copy.https.html
@@ -14,7 +14,6 @@
   <canvas id="cvs_copy_texture_to_texture" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs_copy_external_image_to_texture" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
 
-  <script src="/common/reftest-wait.js"></script>
   <script type="module">
     import { run } from './canvas_complex.html.js';
     run('rgba16float', [
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_draw.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_draw.https.html
index d9b15fa..bc6f58b 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_draw.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_draw.https.html
@@ -14,7 +14,6 @@
   <canvas id="cvs_draw_vertex_color" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs_draw_fragcoord" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
 
-  <script src="/common/reftest-wait.js"></script>
   <script type="module">
     import { run } from './canvas_complex.html.js';
     run('rgba16float', [
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_store.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_store.https.html
index 4ef1609..e451428 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_store.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba16float_store.https.html
@@ -14,7 +14,6 @@
   <canvas id="cvs_compute_texture_store_1" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs_compute_texture_store_2" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
 
-  <script src="/common/reftest-wait.js"></script>
   <script type="module">
     import { run } from './canvas_complex.html.js';
     run('rgba16float', [
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_copy.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_copy.https.html
index 026ce5d..4936d00 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_copy.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_copy.https.html
@@ -14,7 +14,6 @@
   <canvas id="cvs_copy_texture_to_texture" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs_copy_external_image_to_texture" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
 
-  <script src="/common/reftest-wait.js"></script>
   <script type="module">
     import { run } from './canvas_complex.html.js';
     run('rgba8unorm', [
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_draw.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_draw.https.html
index 0fbb5bc..13961a9 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_draw.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_draw.https.html
@@ -14,7 +14,6 @@
   <canvas id="cvs_draw_vertex_color" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs_draw_fragcoord" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
 
-  <script src="/common/reftest-wait.js"></script>
   <script type="module">
     import { run } from './canvas_complex.html.js';
     run('rgba8unorm', [
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_store.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_store.https.html
index fe68e47..3bc549e 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_store.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_complex_rgba8unorm_store.https.html
@@ -14,7 +14,6 @@
   <canvas id="cvs_compute_texture_store_1" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <canvas id="cvs_compute_texture_store_2" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
 
-  <script src="/common/reftest-wait.js"></script>
   <script type="module">
     import { run } from './canvas_complex.html.js';
     run('rgba8unorm', [
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_copy.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_copy.https.html
index 9fe4ecc..b29b017 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_copy.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_copy.https.html
@@ -11,11 +11,11 @@
   <link rel="match" href="./ref/canvas_composite_alpha_opaque-ref.html" />
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('bgra8unorm', 'opaque', 'copy');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_draw.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_draw.https.html
index d2a8d6d..552cf3b 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_draw.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_opaque_draw.https.html
@@ -11,11 +11,11 @@
   <link rel="match" href="./ref/canvas_composite_alpha_opaque-ref.html" />
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('bgra8unorm', 'opaque', 'draw');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_copy.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_copy.https.html
index 27000fc..42ca0b6 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_copy.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_copy.https.html
@@ -12,11 +12,11 @@
   <meta name=fuzzy content="maxDifference=0-2;totalPixels=0-400">
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('bgra8unorm', 'premultiplied', 'copy');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_draw.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_draw.https.html
index b33b18a..49652fa 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_draw.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_bgra8unorm_premultiplied_draw.https.html
@@ -12,11 +12,11 @@
   <meta name=fuzzy content="maxDifference=0-2;totalPixels=0-400">
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('bgra8unorm', 'premultiplied', 'draw');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_copy.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_copy.https.html
index 1b5aaea..5b77f17 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_copy.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_copy.https.html
@@ -11,11 +11,11 @@
   <link rel="match" href="./ref/canvas_composite_alpha_opaque-ref.html" />
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('rgba16float', 'opaque', 'copy');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_draw.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_draw.https.html
index 08f5878..62cf61f 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_draw.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_opaque_draw.https.html
@@ -11,11 +11,11 @@
   <link rel="match" href="./ref/canvas_composite_alpha_opaque-ref.html" />
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('rgba16float', 'opaque', 'draw');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_copy.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_copy.https.html
index ac3cea0..0356f1c 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_copy.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_copy.https.html
@@ -12,11 +12,11 @@
   <meta name=fuzzy content="maxDifference=0-2;totalPixels=0-400">
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('rgba16float', 'premultiplied', 'copy');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_draw.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_draw.https.html
index 961dfbb..c7399d3 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_draw.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba16float_premultiplied_draw.https.html
@@ -12,11 +12,11 @@
   <meta name=fuzzy content="maxDifference=0-2;totalPixels=0-400">
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('rgba16float', 'premultiplied', 'draw');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_copy.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_copy.https.html
index ed5e93d..c1583a2 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_copy.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_copy.https.html
@@ -11,11 +11,11 @@
   <link rel="match" href="./ref/canvas_composite_alpha_opaque-ref.html" />
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('rgba8unorm', 'opaque', 'copy');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_draw.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_draw.https.html
index a2b1593..a028674 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_draw.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_opaque_draw.https.html
@@ -11,11 +11,11 @@
   <link rel="match" href="./ref/canvas_composite_alpha_opaque-ref.html" />
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('rgba8unorm', 'opaque', 'draw');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_copy.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_copy.https.html
index 15370f2..942824b 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_copy.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_copy.https.html
@@ -12,11 +12,11 @@
   <meta name=fuzzy content="maxDifference=0-2;totalPixels=0-400">
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('rgba8unorm', 'premultiplied', 'copy');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_draw.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_draw.https.html
index b796db4..8b3a470 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_draw.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_composite_alpha_rgba8unorm_premultiplied_draw.https.html
@@ -12,11 +12,11 @@
   <meta name=fuzzy content="maxDifference=0-2;totalPixels=0-400">
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script type="module">
-    cvs.style.imageRendering = 'pixelated';
     import { run } from './canvas_composite_alpha.html.js';
     run('rgba8unorm', 'premultiplied', 'draw');
   </script>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_image_rendering.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_image_rendering.https.html
index ec23014..3cd2b2d 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_image_rendering.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_image_rendering.https.html
@@ -12,6 +12,5 @@
   <canvas id="elem4" width="64" height="64" style="width: 99px; height: 99px;"></canvas>
   <canvas id="elem5" width="64" height="64" style="width: 99px; height: 99px; image-rendering: pixelated;"></canvas>
   <canvas id="elem6" width="64" height="64" style="width: 99px; height: 99px; image-rendering: crisp-edges"></canvas>
-  <script src="/common/reftest-wait.js"></script>
   <script type="module" src="canvas_image_rendering.html.js"></script>
 </html>
diff --git a/webgpu-cts/webtests/web_platform/reftests/canvas_size_different_with_back_buffer_size.https.html b/webgpu-cts/webtests/web_platform/reftests/canvas_size_different_with_back_buffer_size.https.html
index 38c2dee..887b630 100644
--- a/webgpu-cts/webtests/web_platform/reftests/canvas_size_different_with_back_buffer_size.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/canvas_size_different_with_back_buffer_size.https.html
@@ -19,7 +19,6 @@
   <canvas id="cvs_change_size_and_reconfigure" width="3" height="4"></canvas>
   <canvas id="back_buffer_smaller_than_cvs_and_css" width="6" height="8" style="width: 12px; height: 16px;"></canvas>
   <canvas id="cvs_smaller_than_back_buffer_and_css" width="3" height="4" style="width: 12px; height: 16px;"></canvas>
-  <script src="/common/reftest-wait.js"></script>
   <script type="module">
     import { run } from './canvas_size_different_with_back_buffer_size.html.js';
     run();
diff --git a/webgpu-cts/webtests/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html b/webgpu-cts/webtests/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html
index f837386..b81b821 100644
--- a/webgpu-cts/webtests/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html
+++ b/webgpu-cts/webtests/web_platform/reftests/ref/canvas_composite_alpha_opaque-ref.html
@@ -6,18 +6,22 @@
   <link rel="help" href="https://gpuweb.github.io/gpuweb/" />
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script>
-    const ctx = cvs.getContext('2d');
-    ctx.globalAlpha = 1.0;
-    ctx.fillStyle = '#660000';
-    ctx.fillRect(0, 0, 15, 15);
-    ctx.fillStyle = '#006600';
-    ctx.fillRect(5, 0, 15, 15);
-    ctx.fillStyle = '#000066';
-    ctx.fillRect(0, 5, 15, 20);
-    ctx.fillStyle = '#666600';
-    ctx.fillRect(5, 5, 20, 20);
+    document.querySelectorAll('canvas').forEach(canvas => {
+      const ctx = canvas.getContext('2d');
+      ctx.globalAlpha = 1.0;
+      ctx.fillStyle = '#660000';
+      ctx.fillRect(0, 0, 15, 15);
+      ctx.fillStyle = '#006600';
+      ctx.fillRect(5, 0, 15, 15);
+      ctx.fillStyle = '#000066';
+      ctx.fillRect(0, 5, 15, 20);
+      ctx.fillStyle = '#666600';
+      ctx.fillRect(5, 5, 20, 20);
+    });
   </script>
 </html>
diff --git a/webgpu-cts/webtests/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html b/webgpu-cts/webtests/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html
index f13e4e1..c02e1c6 100644
--- a/webgpu-cts/webtests/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html
+++ b/webgpu-cts/webtests/web_platform/reftests/ref/canvas_composite_alpha_premultiplied-ref.html
@@ -6,18 +6,22 @@
   <link rel="help" href="https://gpuweb.github.io/gpuweb/" />
   <style>
     body { background-color: #F0E68C; }
+    #c-canvas { background-color: #8CF0E6; }
   </style>
-  <canvas id="cvs" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-body" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
+  <canvas id="c-canvas" width="20" height="20" style="width: 20px; height: 20px;"></canvas>
   <script>
-    const ctx = cvs.getContext('2d');
-    ctx.globalAlpha = 0.5;
-    ctx.fillStyle = '#660000';
-    ctx.fillRect(0, 0, 15, 15);
-    ctx.fillStyle = '#006600';
-    ctx.fillRect(5, 0, 15, 15);
-    ctx.fillStyle = '#000066';
-    ctx.fillRect(0, 5, 15, 20);
-    ctx.fillStyle = '#666600';
-    ctx.fillRect(5, 5, 20, 20);
+    document.querySelectorAll('canvas').forEach(canvas => {
+      const ctx = canvas.getContext('2d');
+      ctx.globalAlpha = 0.5;
+      ctx.fillStyle = '#660000';
+      ctx.fillRect(0, 0, 15, 15);
+      ctx.fillStyle = '#006600';
+      ctx.fillRect(5, 0, 15, 15);
+      ctx.fillStyle = '#000066';
+      ctx.fillRect(0, 5, 15, 20);
+      ctx.fillStyle = '#666600';
+      ctx.fillRect(5, 5, 20, 20);
+    });
   </script>
 </html>
diff --git a/webgpu-cts/webtests/web_platform/reftests/ref/canvas_image_rendering-ref.html b/webgpu-cts/webtests/web_platform/reftests/ref/canvas_image_rendering-ref.html
index 670f30e..2bebe5a 100644
--- a/webgpu-cts/webtests/web_platform/reftests/ref/canvas_image_rendering-ref.html
+++ b/webgpu-cts/webtests/web_platform/reftests/ref/canvas_image_rendering-ref.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html>
+<html class="reftest-wait">
   <base ref="/gen/third_party/dawn/webgpu-cts/src/webgpu" />
   <title>WebGPU canvas_image_rendering (ref)</title>
   <meta charset="utf-8" />
@@ -10,8 +10,17 @@
   <img id="elem4" width="64" height="64" style="width: 99px; height: 99px;">
   <img id="elem5" width="64" height="64" style="width: 99px; height: 99px; image-rendering: pixelated;">
   <img id="elem6" width="64" height="64" style="width: 99px; height: 99px; image-rendering: crisp-edges">
-  <script>
-    const dataURL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAKdJREFUeF7t28kJwDAQA0Cp/6I3hJAqNK/kazDr2atJ7u7S9v3Z+76nnz18m7oBboAYIAZMRv//1fMKcAAHkCAJLuYAXoEv8ZMLcAAHcAAHcAAHjBZEOeBSDuAADuAADuAADtjrCqsIqQh98xAkSIIkSIIkSIIkSIKrYzJ6gyRIgiRIgiRIgiRIgiRoZ2hwYcp8gKqwSVF9AXuD9gbtDdobXGWw7nCbB5+MQQlHipKKAAAAAElFTkSuQmCC';
-    document.querySelectorAll('img').forEach(img => img.src = dataURL);
+  <script type="module">
+    import { takeScreenshotDelayed } from '../../../../common/util/wpt_reftest_wait.js';
+
+    (async () => {
+      const dataURL = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAKdJREFUeF7t28kJwDAQA0Cp/6I3hJAqNK/kazDr2atJ7u7S9v3Z+76nnz18m7oBboAYIAZMRv//1fMKcAAHkCAJLuYAXoEv8ZMLcAAHcAAHcAAHjBZEOeBSDuAADuAADuAADtjrCqsIqQh98xAkSIIkSIIkSIIkSIKrYzJ6gyRIgiRIgiRIgiRIgiRoZ2hwYcp8gKqwSVF9AXuD9gbtDdobXGWw7nCbB5+MQQlHipKKAAAAAElFTkSuQmCC';
+      await Promise.all([...document.querySelectorAll('img')].map(img => {
+        img.src = dataURL;
+        return img.decode();
+      }));
+
+      takeScreenshotDelayed(50);
+    })();
   </script>
 </html>
diff --git a/webgpu-cts/webtests/web_platform/reftests/ref/resize_observer-ref.html b/webgpu-cts/webtests/web_platform/reftests/ref/resize_observer-ref.html
index 763d90c..ca84573 100644
--- a/webgpu-cts/webtests/web_platform/reftests/ref/resize_observer-ref.html
+++ b/webgpu-cts/webtests/web_platform/reftests/ref/resize_observer-ref.html
@@ -75,4 +75,4 @@
   }
     </script>
   </body>
- </html>
\ No newline at end of file
+</html>
diff --git a/webgpu-cts/webtests/web_platform/reftests/resize_observer.https.html b/webgpu-cts/webtests/web_platform/reftests/resize_observer.https.html
index 6760a7b..4ae1262 100644
--- a/webgpu-cts/webtests/web_platform/reftests/resize_observer.https.html
+++ b/webgpu-cts/webtests/web_platform/reftests/resize_observer.https.html
@@ -21,4 +21,4 @@
     <div class="outer"></div>
     <script type="module" src="resize_observer.html.js"></script>
   </body>
-</html>
\ No newline at end of file
+</html>