Sync interfaces/ with @webref/idl 3.1.2
diff --git a/interfaces/dom.idl b/interfaces/dom.idl
index af75088..f1b58fe 100644
--- a/interfaces/dom.idl
+++ b/interfaces/dom.idl
@@ -94,7 +94,7 @@
 [Exposed=*]
 interface AbortSignal : EventTarget {
   [NewObject] static AbortSignal abort(optional any reason);
-  [NewObject] static AbortSignal timeout([EnforceRange] unsigned long long milliseconds);
+  [Exposed=(Window,Worker), NewObject] static AbortSignal timeout([EnforceRange] unsigned long long milliseconds);
 
   readonly attribute boolean aborted;
   readonly attribute any reason;
diff --git a/interfaces/scheduling-apis.idl b/interfaces/scheduling-apis.idl
index 8722eba..9ed49cf 100644
--- a/interfaces/scheduling-apis.idl
+++ b/interfaces/scheduling-apis.idl
@@ -53,5 +53,5 @@
 };
 
 partial interface mixin WindowOrWorkerGlobalScope {
-  readonly attribute Scheduler scheduler;
+  [Replaceable] readonly attribute Scheduler scheduler;
 };
diff --git a/interfaces/secure-payment-confirmation.idl b/interfaces/secure-payment-confirmation.idl
index 1522bff..8d16ed7 100644
--- a/interfaces/secure-payment-confirmation.idl
+++ b/interfaces/secure-payment-confirmation.idl
@@ -42,6 +42,7 @@
 dictionary PaymentCredentialInstrument {
     required DOMString displayName;
     required USVString icon;
+    boolean iconMustBeShown = true;
 };
 
 enum TransactionAutomationMode {
diff --git a/interfaces/webcodecs.idl b/interfaces/webcodecs.idl
index 506ee09..6482975 100644
--- a/interfaces/webcodecs.idl
+++ b/interfaces/webcodecs.idl
@@ -8,7 +8,7 @@
   constructor(AudioDecoderInit init);
 
   readonly attribute CodecState state;
-  readonly attribute long decodeQueueSize;
+  readonly attribute unsigned long decodeQueueSize;
 
   undefined configure(AudioDecoderConfig config);
   undefined decode(EncodedAudioChunk chunk);
@@ -31,7 +31,7 @@
   constructor(VideoDecoderInit init);
 
   readonly attribute CodecState state;
-  readonly attribute long decodeQueueSize;
+  readonly attribute unsigned long decodeQueueSize;
 
   undefined configure(VideoDecoderConfig config);
   undefined decode(EncodedVideoChunk chunk);
@@ -54,7 +54,7 @@
   constructor(AudioEncoderInit init);
 
   readonly attribute CodecState state;
-  readonly attribute long encodeQueueSize;
+  readonly attribute unsigned long encodeQueueSize;
 
   undefined configure(AudioEncoderConfig config);
   undefined encode(AudioData data);
@@ -83,7 +83,7 @@
   constructor(VideoEncoderInit init);
 
   readonly attribute CodecState state;
-  readonly attribute long encodeQueueSize;
+  readonly attribute unsigned long encodeQueueSize;
 
   undefined configure(VideoEncoderConfig config);
   undefined encode(VideoFrame frame, optional VideoEncoderEncodeOptions options = {});
@@ -425,6 +425,7 @@
 interface ImageDecoder {
   constructor(ImageDecoderInit init);
 
+  readonly attribute DOMString type;
   readonly attribute boolean complete;
   readonly attribute Promise<undefined> completed;
   readonly attribute ImageTrackList tracks;
@@ -462,16 +463,16 @@
   getter ImageTrack (unsigned long index);
 
   readonly attribute Promise<undefined> ready;
-  [EnforceRange] readonly attribute unsigned long length;
-  [EnforceRange] readonly attribute long selectedIndex;
+  readonly attribute unsigned long length;
+  readonly attribute long selectedIndex;
   readonly attribute ImageTrack? selectedTrack;
 };
 
 [Exposed=(Window,DedicatedWorker)]
 interface ImageTrack : EventTarget {
   readonly attribute boolean animated;
-  [EnforceRange] readonly attribute unsigned long frameCount;
-  [EnforceRange] readonly attribute unrestricted float repetitionCount;
+  readonly attribute unsigned long frameCount;
+  readonly attribute unrestricted float repetitionCount;
   attribute EventHandler onchange;
   attribute boolean selected;
 };
diff --git a/interfaces/webgpu.idl b/interfaces/webgpu.idl
index 0a6ba7f..905aa3d 100644
--- a/interfaces/webgpu.idl
+++ b/interfaces/webgpu.idl
@@ -625,7 +625,7 @@
 };
 
 dictionary GPUFragmentState : GPUProgrammableStage {
-    required sequence<GPUColorTargetState> targets;
+    required sequence<GPUColorTargetState?> targets;
 };
 
 dictionary GPUColorTargetState {
@@ -886,7 +886,7 @@
     undefined dispatch(GPUSize32 workgroupCountX, optional GPUSize32 workgroupCountY = 1, optional GPUSize32 workgroupCountZ = 1);
     undefined dispatchIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
 
-    undefined endPass();
+    undefined end();
 };
 GPUComputePassEncoder includes GPUObjectBase;
 GPUComputePassEncoder includes GPUCommandsMixin;
@@ -943,7 +943,7 @@
     undefined endOcclusionQuery();
 
     undefined executeBundles(sequence<GPURenderBundle> bundles);
-    undefined endPass();
+    undefined end();
 };
 GPURenderPassEncoder includes GPUObjectBase;
 GPURenderPassEncoder includes GPUCommandsMixin;
@@ -965,7 +965,7 @@
 typedef sequence<GPURenderPassTimestampWrite> GPURenderPassTimestampWrites;
 
 dictionary GPURenderPassDescriptor : GPUObjectDescriptorBase {
-    required sequence<GPURenderPassColorAttachment> colorAttachments;
+    required sequence<GPURenderPassColorAttachment?> colorAttachments;
     GPURenderPassDepthStencilAttachment depthStencilAttachment;
     GPUQuerySet occlusionQuerySet;
     GPURenderPassTimestampWrites timestampWrites = [];
@@ -1005,7 +1005,7 @@
 };
 
 dictionary GPURenderPassLayout: GPUObjectDescriptorBase {
-    required sequence<GPUTextureFormat> colorFormats;
+    required sequence<GPUTextureFormat?> colorFormats;
     GPUTextureFormat depthStencilFormat;
     GPUSize32 sampleCount = 1;
 };