Sync interfaces/ with @webref/idl 3.1.1
diff --git a/interfaces/WebCryptoAPI.idl b/interfaces/WebCryptoAPI.idl
index e3a7089..0e68ea8 100644
--- a/interfaces/WebCryptoAPI.idl
+++ b/interfaces/WebCryptoAPI.idl
@@ -11,6 +11,7 @@
 interface Crypto {
   [SecureContext] readonly attribute SubtleCrypto subtle;
   ArrayBufferView getRandomValues(ArrayBufferView array);
+  [SecureContext] DOMString randomUUID();
 };
 
 typedef (object or DOMString) AlgorithmIdentifier;
diff --git a/interfaces/autoplay.idl b/interfaces/autoplay.idl
index f2be5bb..cd0884f 100644
--- a/interfaces/autoplay.idl
+++ b/interfaces/autoplay.idl
@@ -9,10 +9,11 @@
   "disallowed"
 };
 
-partial interface Document {
-  readonly attribute AutoplayPolicy autoplayPolicy;
-};
+enum AutoplayPolicyMediaType { "mediaelement", "audiocontext" };
 
-partial interface HTMLMediaElement {
-  readonly attribute AutoplayPolicy autoplayPolicy;
+[Exposed=Window]
+partial interface Navigator {
+  AutoplayPolicy getAutoplayPolicy(AutoplayPolicyMediaType type);
+  AutoplayPolicy getAutoplayPolicy(HTMLMediaElement element);
+  AutoplayPolicy getAutoplayPolicy(AudioContext context);
 };
diff --git a/interfaces/battery-status.idl b/interfaces/battery-status.idl
index dc85bff..2d042db 100644
--- a/interfaces/battery-status.idl
+++ b/interfaces/battery-status.idl
@@ -3,11 +3,12 @@
 // (https://github.com/w3c/webref)
 // Source: Battery Status API (https://w3c.github.io/battery/)
 
+[SecureContext]
 partial interface Navigator {
   Promise<BatteryManager> getBattery();
 };
 
-[Exposed=Window]
+[SecureContext, Exposed=Window]
 interface BatteryManager : EventTarget {
     readonly        attribute boolean             charging;
     readonly        attribute unrestricted double chargingTime;
diff --git a/interfaces/compression.idl b/interfaces/compression.idl
index d7236bf..88be302 100644
--- a/interfaces/compression.idl
+++ b/interfaces/compression.idl
@@ -3,13 +3,13 @@
 // (https://github.com/w3c/webref)
 // Source: Compression Streams (https://wicg.github.io/compression/)
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface CompressionStream {
   constructor(DOMString format);
 };
 CompressionStream includes GenericTransformStream;
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface DecompressionStream {
   constructor(DOMString format);
 };
diff --git a/interfaces/compute-pressure.idl b/interfaces/compute-pressure.idl
index 0cf880b..57483d9 100644
--- a/interfaces/compute-pressure.idl
+++ b/interfaces/compute-pressure.idl
@@ -8,14 +8,16 @@
   ComputePressureObserver observer
 );
 
+enum ComputePressureTarget { "cpu" };
+
 [Exposed=Window]
 interface ComputePressureObserver {
-  constructor(
-    ComputePressureUpdateCallback callback,
-    optional ComputePressureObserverOptions options = {}
-  );
-  undefined observe();
-  undefined unobserve();
+  constructor(ComputePressureUpdateCallback callback);
+  undefined observe(ComputePressureTarget target, optional ComputePressureObserverOptions options = {});
+  undefined unobserve(ComputePressureTarget target);
+  undefined disconnect();
+  sequence<ComputePressureEntry> takeRecords();
+  [SameObject] static readonly attribute FrozenArray<DOMString> supportedTargetTypes;
 };
 
 dictionary ComputePressureEntry {
diff --git a/interfaces/css-typed-om.idl b/interfaces/css-typed-om.idl
index 3a0a6bd..fc93f25 100644
--- a/interfaces/css-typed-om.idl
+++ b/interfaces/css-typed-om.idl
@@ -326,22 +326,27 @@
     [Exposed=Window] static (CSSColorValue or CSSStyleValue) parse(USVString cssText);
 };
 
+typedef (CSSNumberish or CSSKeywordish) CSSColorRGBComp;
+typedef (CSSNumberish or CSSKeywordish) CSSColorPercent;
+typedef (CSSNumberish or CSSKeywordish) CSSColorNumber;
+typedef (CSSNumberish or CSSKeywordish) CSSColorAngle;
+
 [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
 interface CSSRGB : CSSColorValue {
-    constructor(CSSNumberish r, CSSNumberish g, CSSNumberish b, optional CSSNumberish alpha = 1);
-    attribute CSSNumberish r;
-    attribute CSSNumberish g;
-    attribute CSSNumberish b;
-    attribute CSSNumberish alpha;
+    constructor(CSSColorRGBComp r, CSSColorRGBComp g, CSSColorRGBComp b, optional CSSColorPercent alpha = 1);
+    attribute CSSColorRGBComp r;
+    attribute CSSColorRGBComp g;
+    attribute CSSColorRGBComp b;
+    attribute CSSColorPercent alpha;
 };
 
 [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
 interface CSSHSL : CSSColorValue {
-    constructor(CSSNumericValue h, CSSNumberish s, CSSNumberish l, optional CSSNumberish alpha = 1);
-    attribute CSSNumericValue h;
-    attribute CSSNumberish s;
-    attribute CSSNumberish l;
-    attribute CSSNumberish alpha;
+    constructor(CSSColorAngle h, CSSColorPercent s, CSSColorPercent l, optional CSSColorPercent alpha = 1);
+    attribute CSSColorAngle h;
+    attribute CSSColorPercent s;
+    attribute CSSColorPercent l;
+    attribute CSSColorPercent alpha;
 };
 
 [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
@@ -354,36 +359,45 @@
 };
 
 [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
-interface CSSLCH : CSSColorValue {
-    constructor(CSSNumberish l, CSSNumberish c, CSSNumericValue h, optional CSSNumberish alpha = 1);
-    attribute CSSNumberish l;
-    attribute CSSNumberish c;
-    attribute CSSNumericValue h;
-    attribute CSSNumberish alpha;
+interface CSSLab : CSSColorValue {
+    constructor(CSSColorPercent l, CSSColorNumber a, CSSColorNumber b, optional CSSColorPercent alpha = 1);
+    attribute CSSColorPercent l;
+    attribute CSSColorNumber a;
+    attribute CSSColorNumber b;
+    attribute CSSColorPercent alpha;
 };
 
 [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
-interface CSSLab : CSSColorValue {
-    constructor(CSSNumberish l, CSSNumberish a, CSSNumberish b, optional CSSNumberish alpha = 1);
-    attribute CSSNumberish l;
-    attribute CSSNumberish a;
-    attribute CSSNumberish b;
-    attribute CSSNumberish alpha;
+interface CSSLCH : CSSColorValue {
+    constructor(CSSColorPercent l, CSSColorPercent c, CSSColorAngle h, optional CSSColorPercent alpha = 1);
+    attribute CSSColorPercent l;
+    attribute CSSColorPercent c;
+    attribute CSSColorAngle h;
+    attribute CSSColorPercent alpha;
+};
+
+[Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
+interface CSSOKLab : CSSColorValue {
+    constructor(CSSColorPercent l, CSSColorNumber a, CSSColorNumber b, optional CSSColorPercent alpha = 1);
+    attribute CSSColorPercent l;
+    attribute CSSColorNumber a;
+    attribute CSSColorNumber b;
+    attribute CSSColorPercent alpha;
+};
+
+[Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
+interface CSSOKLCH : CSSColorValue {
+    constructor(CSSColorPercent l, CSSColorPercent c, CSSColorAngle h, optional CSSColorPercent alpha = 1);
+    attribute CSSColorPercent l;
+    attribute CSSColorPercent c;
+    attribute CSSColorAngle h;
+    attribute CSSColorPercent alpha;
 };
 
 [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
 interface CSSColor : CSSColorValue {
-    constructor(sequence<(DOMString or CSSNumberish)> variant);
-    /* CSSColor(["foo", 0, 1, .5], ["bar", "yellow"], 1, fallbackColor) */
-    /* or just make the alpha and fallback successive optional args? */
-};
-
-[Exposed=(Window, Worker, PaintWorklet, LayoutWorklet)]
-interface CSSDeviceCMYK : CSSColorValue {
-    constructor(CSSNumberish c, CSSNumberish m, CSSNumberish y, CSSNumberish k, optional CSSNumberish alpha = 1);
-    attribute CSSNumberish c;
-    attribute CSSNumberish m;
-    attribute CSSNumberish y;
-    attribute CSSNumberish k;
+    constructor(CSSKeywordish colorSpace, sequence<CSSColorPercent> channels, optional CSSNumberish alpha = 1);
+    attribute CSSKeywordish colorSpace;
+    attribute ObservableArray<CSSColorPercent> channels;
     attribute CSSNumberish alpha;
 };
diff --git a/interfaces/dom.idl b/interfaces/dom.idl
index 762e7a5..af75088 100644
--- a/interfaces/dom.idl
+++ b/interfaces/dom.idl
@@ -94,6 +94,7 @@
 [Exposed=*]
 interface AbortSignal : EventTarget {
   [NewObject] static AbortSignal abort(optional any reason);
+  [NewObject] static AbortSignal timeout([EnforceRange] unsigned long long milliseconds);
 
   readonly attribute boolean aborted;
   readonly attribute any reason;
diff --git a/interfaces/encoding.idl b/interfaces/encoding.idl
index 7585cb3..a8cbe44 100644
--- a/interfaces/encoding.idl
+++ b/interfaces/encoding.idl
@@ -18,7 +18,7 @@
   boolean stream = false;
 };
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface TextDecoder {
   constructor(optional DOMString label = "utf-8", optional TextDecoderOptions options = {});
 
@@ -35,7 +35,7 @@
   unsigned long long written;
 };
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface TextEncoder {
   constructor();
 
@@ -44,14 +44,14 @@
 };
 TextEncoder includes TextEncoderCommon;
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface TextDecoderStream {
   constructor(optional DOMString label = "utf-8", optional TextDecoderOptions options = {});
 };
 TextDecoderStream includes TextDecoderCommon;
 TextDecoderStream includes GenericTransformStream;
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface TextEncoderStream {
   constructor();
 };
diff --git a/interfaces/event-timing.idl b/interfaces/event-timing.idl
index 329570e..ca41454 100644
--- a/interfaces/event-timing.idl
+++ b/interfaces/event-timing.idl
@@ -1,7 +1,7 @@
 // GENERATED CONTENT - DO NOT EDIT
 // Content was automatically extracted by Reffy into webref
 // (https://github.com/w3c/webref)
-// Source: Event Timing API (https://wicg.github.io/event-timing/)
+// Source: Event Timing API (https://w3c.github.io/event-timing/)
 
 [Exposed=Window]
 interface PerformanceEventTiming : PerformanceEntry {
diff --git a/interfaces/hr-time.idl b/interfaces/hr-time.idl
index 835ee8a..13aa109 100644
--- a/interfaces/hr-time.idl
+++ b/interfaces/hr-time.idl
@@ -7,7 +7,7 @@
 
 typedef unsigned long long EpochTimeStamp;
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface Performance : EventTarget {
     DOMHighResTimeStamp now();
     readonly attribute DOMHighResTimeStamp timeOrigin;
diff --git a/interfaces/html.idl b/interfaces/html.idl
index 2eaf5d0..e42a4f3 100644
--- a/interfaces/html.idl
+++ b/interfaces/html.idl
@@ -1460,12 +1460,12 @@
   attribute CanvasTextAlign textAlign; // (default: "start")
   attribute CanvasTextBaseline textBaseline; // (default: "alphabetic")
   attribute CanvasDirection direction; // (default: "inherit")
-  attribute double letterSpacing; // (default: 0)
+  attribute DOMString letterSpacing; // (default: "0px")
   attribute CanvasFontKerning fontKerning; // (default: "auto")
   attribute CanvasFontStretch fontStretch; // (default: "normal")
   attribute CanvasFontVariantCaps fontVariantCaps; // (default: "normal")
   attribute CanvasTextRendering textRendering; // (default: "auto")
-  attribute double wordSpacing; // (default: 0)
+  attribute DOMString wordSpacing; // (default: "0px")
 };
 
 interface mixin CanvasPath {
@@ -1847,7 +1847,7 @@
   attribute DOMString returnValue;
 };
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface ErrorEvent : Event {
   constructor(DOMString type, optional ErrorEventInit eventInitDict = {});
 
@@ -1866,7 +1866,7 @@
   any error = null;
 };
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface PromiseRejectionEvent : Event {
   constructor(DOMString type, PromiseRejectionEventInit eventInitDict);
 
diff --git a/interfaces/largest-contentful-paint.idl b/interfaces/largest-contentful-paint.idl
index 99de275..872ba55 100644
--- a/interfaces/largest-contentful-paint.idl
+++ b/interfaces/largest-contentful-paint.idl
@@ -1,7 +1,7 @@
 // GENERATED CONTENT - DO NOT EDIT
 // Content was automatically extracted by Reffy into webref
 // (https://github.com/w3c/webref)
-// Source: Largest Contentful Paint (https://wicg.github.io/largest-contentful-paint/)
+// Source: Largest Contentful Paint (https://w3c.github.io/largest-contentful-paint/)
 
 [Exposed=Window]
 interface LargestContentfulPaint : PerformanceEntry {
diff --git a/interfaces/local-font-access.idl b/interfaces/local-font-access.idl
index e37b2c7..c516c44 100644
--- a/interfaces/local-font-access.idl
+++ b/interfaces/local-font-access.idl
@@ -28,9 +28,4 @@
   readonly attribute USVString fullName;
   readonly attribute USVString family;
   readonly attribute USVString style;
-
-  // Metrics
-  readonly attribute boolean italic;
-  readonly attribute float stretch;
-  readonly attribute float weight;
 };
diff --git a/interfaces/longtasks.idl b/interfaces/longtasks.idl
index 6ceb0e5..c0aaa7a 100644
--- a/interfaces/longtasks.idl
+++ b/interfaces/longtasks.idl
@@ -1,7 +1,7 @@
 // GENERATED CONTENT - DO NOT EDIT
 // Content was automatically extracted by Reffy into webref
 // (https://github.com/w3c/webref)
-// Source: Long Tasks API 1 (https://w3c.github.io/longtasks/)
+// Source: Long Tasks API (https://w3c.github.io/longtasks/)
 
 [Exposed=Window]
 interface PerformanceLongTaskTiming : PerformanceEntry {
diff --git a/interfaces/mediacapture-depth.idl b/interfaces/mediacapture-depth.idl
deleted file mode 100644
index dcf3c36..0000000
--- a/interfaces/mediacapture-depth.idl
+++ /dev/null
@@ -1,29 +0,0 @@
-// GENERATED CONTENT - DO NOT EDIT
-// Content was automatically extracted by Reffy into webref
-// (https://github.com/w3c/webref)
-// Source: Media Capture Depth Stream Extensions (https://w3c.github.io/mediacapture-depth/)
-
-partial dictionary MediaTrackSupportedConstraints {
-    // Applies to both depth stream track and color stream track:
-    boolean videoKind = true;
-};
-
-partial dictionary MediaTrackCapabilities {
-    // Applies to both depth stream track and color stream track:
-    DOMString videoKind;
-};
-
-partial dictionary MediaTrackConstraintSet {
-    // Applies to both depth stream track and color stream track:
-    ConstrainDOMString videoKind;
-};
-
-partial dictionary MediaTrackSettings {
-    // Applies to both depth stream track and color stream track:
-    DOMString           videoKind;
-};
-
-enum VideoKindEnum {
-    "color",
-    "depth"
-};
diff --git a/interfaces/mediacapture-region.idl b/interfaces/mediacapture-region.idl
new file mode 100644
index 0000000..aab07ae
--- /dev/null
+++ b/interfaces/mediacapture-region.idl
@@ -0,0 +1,20 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: Region Capture (https://w3c.github.io/mediacapture-region/)
+
+[Exposed = Window]
+interface CropTarget {
+  // Intentionally empty; just an opaque identifier.
+};
+
+partial interface MediaDevices {
+  Promise<CropTarget>
+  produceCropTarget(HTMLElement element);
+};
+
+[Exposed = Window]
+interface BrowserCaptureMediaStreamTrack : MediaStreamTrack {
+  Promise<undefined> cropTo(CropTarget? cropTarget);
+  BrowserCaptureMediaStreamTrack clone();
+};
diff --git a/interfaces/performance-timeline.idl b/interfaces/performance-timeline.idl
index d3a5a27..9f6cc5e 100644
--- a/interfaces/performance-timeline.idl
+++ b/interfaces/performance-timeline.idl
@@ -10,7 +10,7 @@
 };
 typedef sequence<PerformanceEntry> PerformanceEntryList;
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface PerformanceEntry {
   readonly    attribute DOMString           name;
   readonly    attribute DOMString           entryType;
@@ -22,7 +22,7 @@
 callback PerformanceObserverCallback = undefined (PerformanceObserverEntryList entries,
                                              PerformanceObserver observer,
                                              optional PerformanceObserverCallbackOptions options = {});
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface PerformanceObserver {
   constructor(PerformanceObserverCallback callback);
   undefined observe (optional PerformanceObserverInit options = {});
@@ -41,7 +41,7 @@
   boolean buffered;
 };
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface PerformanceObserverEntryList {
   PerformanceEntryList getEntries();
   PerformanceEntryList getEntriesByType (DOMString type);
diff --git a/interfaces/streams.idl b/interfaces/streams.idl
index f7084dd..278f1c5 100644
--- a/interfaces/streams.idl
+++ b/interfaces/streams.idl
@@ -3,7 +3,7 @@
 // (https://github.com/w3c/webref)
 // Source: Streams Standard (https://streams.spec.whatwg.org/)
 
-[Exposed=(Window,Worker,Worklet), Transferable]
+[Exposed=*, Transferable]
 interface ReadableStream {
   constructor(optional object underlyingSource, optional QueuingStrategy strategy = {});
 
@@ -64,7 +64,7 @@
   Promise<undefined> cancel(optional any reason);
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface ReadableStreamDefaultReader {
   constructor(ReadableStream stream);
 
@@ -78,7 +78,7 @@
   boolean done;
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface ReadableStreamBYOBReader {
   constructor(ReadableStream stream);
 
@@ -88,11 +88,11 @@
 ReadableStreamBYOBReader includes ReadableStreamGenericReader;
 
 dictionary ReadableStreamBYOBReadResult {
-  ArrayBufferView value;
+  (ArrayBufferView or undefined) value;
   boolean done;
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface ReadableStreamDefaultController {
   readonly attribute unrestricted double? desiredSize;
 
@@ -101,7 +101,7 @@
   undefined error(optional any e);
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface ReadableByteStreamController {
   readonly attribute ReadableStreamBYOBRequest? byobRequest;
   readonly attribute unrestricted double? desiredSize;
@@ -111,7 +111,7 @@
   undefined error(optional any e);
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface ReadableStreamBYOBRequest {
   readonly attribute ArrayBufferView? view;
 
@@ -119,7 +119,7 @@
   undefined respondWithNewView(ArrayBufferView view);
 };
 
-[Exposed=(Window,Worker,Worklet), Transferable]
+[Exposed=*, Transferable]
 interface WritableStream {
   constructor(optional object underlyingSink, optional QueuingStrategy strategy = {});
 
@@ -143,7 +143,7 @@
 callback UnderlyingSinkCloseCallback = Promise<undefined> ();
 callback UnderlyingSinkAbortCallback = Promise<undefined> (optional any reason);
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface WritableStreamDefaultWriter {
   constructor(WritableStream stream);
 
@@ -157,13 +157,13 @@
   Promise<undefined> write(optional any chunk);
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface WritableStreamDefaultController {
   readonly attribute AbortSignal signal;
   undefined error(optional any e);
 };
 
-[Exposed=(Window,Worker,Worklet), Transferable]
+[Exposed=*, Transferable]
 interface TransformStream {
   constructor(optional object transformer,
               optional QueuingStrategy writableStrategy = {},
@@ -185,7 +185,7 @@
 callback TransformerFlushCallback = Promise<undefined> (TransformStreamDefaultController controller);
 callback TransformerTransformCallback = Promise<undefined> (any chunk, TransformStreamDefaultController controller);
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface TransformStreamDefaultController {
   readonly attribute unrestricted double? desiredSize;
 
@@ -205,7 +205,7 @@
   required unrestricted double highWaterMark;
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface ByteLengthQueuingStrategy {
   constructor(QueuingStrategyInit init);
 
@@ -213,7 +213,7 @@
   readonly attribute Function size;
 };
 
-[Exposed=(Window,Worker,Worklet)]
+[Exposed=*]
 interface CountQueuingStrategy {
   constructor(QueuingStrategyInit init);
 
diff --git a/interfaces/testutils.idl b/interfaces/testutils.idl
new file mode 100644
index 0000000..c5b7efd
--- /dev/null
+++ b/interfaces/testutils.idl
@@ -0,0 +1,9 @@
+// GENERATED CONTENT - DO NOT EDIT
+// Content was automatically extracted by Reffy into webref
+// (https://github.com/w3c/webref)
+// Source: Test Utils Standard (https://testutils.spec.whatwg.org/)
+
+[Exposed=(Window,Worker)]
+namespace TestUtils {
+  [NewObject] Promise<undefined> gc();
+};
diff --git a/interfaces/ua-client-hints.idl b/interfaces/ua-client-hints.idl
index 27b54a2..f5070a0 100644
--- a/interfaces/ua-client-hints.idl
+++ b/interfaces/ua-client-hints.idl
@@ -17,6 +17,7 @@
   DOMString platform;
   DOMString platformVersion;
   DOMString uaFullVersion; // deprecated in favor of fullVersionList
+  boolean wow64;
   sequence<NavigatorUABrandVersion> fullVersionList;
 };
 
diff --git a/interfaces/url.idl b/interfaces/url.idl
index b00ab4b..360c9ad 100644
--- a/interfaces/url.idl
+++ b/interfaces/url.idl
@@ -3,7 +3,7 @@
 // (https://github.com/w3c/webref)
 // Source: URL Standard (https://url.spec.whatwg.org/)
 
-[Exposed=(Window,Worker),
+[Exposed=*,
  LegacyWindowAlias=webkitURL]
 interface URL {
   constructor(USVString url, optional USVString base);
@@ -24,7 +24,7 @@
   USVString toJSON();
 };
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface URLSearchParams {
   constructor(optional (sequence<sequence<USVString>> or record<USVString, USVString> or USVString) init = "");
 
diff --git a/interfaces/urlpattern.idl b/interfaces/urlpattern.idl
index 9e38ae1..4faa1c9 100644
--- a/interfaces/urlpattern.idl
+++ b/interfaces/urlpattern.idl
@@ -50,5 +50,5 @@
 
 dictionary URLPatternComponentResult {
   USVString input;
-  record<USVString, USVString> groups;
+  record<USVString, (USVString or undefined)> groups;
 };
diff --git a/interfaces/user-timing.idl b/interfaces/user-timing.idl
index 28ee8aa..a0b8f94 100644
--- a/interfaces/user-timing.idl
+++ b/interfaces/user-timing.idl
@@ -22,13 +22,13 @@
     undefined clearMeasures(optional DOMString measureName);
 };
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface PerformanceMark : PerformanceEntry {
   constructor(DOMString markName, optional PerformanceMarkOptions markOptions = {});
   readonly attribute any detail;
 };
 
-[Exposed=(Window,Worker)]
+[Exposed=*]
 interface PerformanceMeasure : PerformanceEntry {
   readonly attribute any detail;
 };
diff --git a/interfaces/uuid.idl b/interfaces/uuid.idl
deleted file mode 100644
index 92bed29..0000000
--- a/interfaces/uuid.idl
+++ /dev/null
@@ -1,9 +0,0 @@
-// GENERATED CONTENT - DO NOT EDIT
-// Content was automatically extracted by Reffy into webref
-// (https://github.com/w3c/webref)
-// Source: uuid (https://wicg.github.io/uuid/)
-
-[Exposed=(Window,Worker)]
-partial interface Crypto {
-  [SecureContext] DOMString randomUUID();
-};
diff --git a/interfaces/webgpu.idl b/interfaces/webgpu.idl
index 6ded86e..0a6ba7f 100644
--- a/interfaces/webgpu.idl
+++ b/interfaces/webgpu.idl
@@ -4,7 +4,7 @@
 // Source: WebGPU (https://gpuweb.github.io/gpuweb/)
 
 interface mixin GPUObjectBase {
-    attribute USVString? label;
+    attribute (USVString or undefined) label;
 };
 
 dictionary GPUObjectDescriptorBase {
@@ -181,6 +181,7 @@
     GPUTextureDimension dimension = "2d";
     required GPUTextureFormat format;
     required GPUTextureUsageFlags usage;
+    sequence<GPUTextureFormat> viewFormats = [];
 };
 
 enum GPUTextureDimension {
@@ -882,7 +883,7 @@
 [Exposed=(Window, DedicatedWorker), SecureContext]
 interface GPUComputePassEncoder {
     undefined setPipeline(GPUComputePipeline pipeline);
-    undefined dispatch(GPUSize32 x, optional GPUSize32 y = 1, optional GPUSize32 z = 1);
+    undefined dispatch(GPUSize32 workgroupCountX, optional GPUSize32 workgroupCountY = 1, optional GPUSize32 workgroupCountZ = 1);
     undefined dispatchIndirect(GPUBuffer indirectBuffer, GPUSize64 indirectOffset);
 
     undefined endPass();
@@ -974,24 +975,28 @@
     required GPUTextureView view;
     GPUTextureView resolveTarget;
 
-    required (GPULoadOp or GPUColor) loadValue;
+    GPUColor clearValue;
+    required GPULoadOp loadOp;
     required GPUStoreOp storeOp;
 };
 
 dictionary GPURenderPassDepthStencilAttachment {
     required GPUTextureView view;
 
-    required (GPULoadOp or float) depthLoadValue;
-    required GPUStoreOp depthStoreOp;
+    float depthClearValue = 0;
+    GPULoadOp depthLoadOp;
+    GPUStoreOp depthStoreOp;
     boolean depthReadOnly = false;
 
-    required (GPULoadOp or GPUStencilValue) stencilLoadValue;
-    required GPUStoreOp stencilStoreOp;
+    GPUStencilValue stencilClearValue = 0;
+    GPULoadOp stencilLoadOp;
+    GPUStoreOp stencilStoreOp;
     boolean stencilReadOnly = false;
 };
 
 enum GPULoadOp {
     "load",
+    "clear",
 };
 
 enum GPUStoreOp {
@@ -1090,6 +1095,7 @@
     required GPUDevice device;
     required GPUTextureFormat format;
     GPUTextureUsageFlags usage = 0x10;  // GPUTextureUsage.RENDER_ATTACHMENT
+    sequence<GPUTextureFormat> viewFormats = [];
     GPUPredefinedColorSpace colorSpace = "srgb";
     GPUCanvasCompositingAlphaMode compositingAlphaMode = "opaque";
     GPUExtent3D size;
diff --git a/interfaces/webrtc-encoded-transform.idl b/interfaces/webrtc-encoded-transform.idl
index 0026232..e417d1b 100644
--- a/interfaces/webrtc-encoded-transform.idl
+++ b/interfaces/webrtc-encoded-transform.idl
@@ -77,6 +77,7 @@
     long spatialIndex;
     long temporalIndex;
     long synchronizationSource;
+    octet payloadType;
     sequence<long> contributingSources;
 };
 
@@ -92,6 +93,7 @@
 
 dictionary RTCEncodedAudioFrameMetadata {
     long synchronizationSource;
+    octet payloadType;
     sequence<long> contributingSources;
 };
 
@@ -118,9 +120,15 @@
     readonly attribute ReadableStream readable;
     readonly attribute WritableStream writable;
     readonly attribute any options;
+    Promise<undefined> generateKeyFrame(optional sequence <DOMString> rids);
+    Promise<undefined> sendKeyFrameRequest();
 };
 
 [Exposed=Window]
 interface RTCRtpScriptTransform {
     constructor(Worker worker, optional any options, optional sequence<object> transfer);
 };
+
+partial interface RTCRtpSender {
+    Promise<undefined> generateKeyFrame(optional sequence <DOMString> rids);
+};
diff --git a/interfaces/webrtc-identity.idl b/interfaces/webrtc-identity.idl
index 3b8e264..108c3ad 100644
--- a/interfaces/webrtc-identity.idl
+++ b/interfaces/webrtc-identity.idl
@@ -3,12 +3,12 @@
 // (https://github.com/w3c/webref)
 // Source: Identity for WebRTC 1.0 (https://w3c.github.io/webrtc-identity/)
 
-[Global, Exposed=RTCIdentityProviderGlobalScope]
+[Global=(Worker,RTCIdentityProvider), Exposed=RTCIdentityProvider]
 interface RTCIdentityProviderGlobalScope : WorkerGlobalScope {
     readonly        attribute RTCIdentityProviderRegistrar rtcIdentityProvider;
 };
 
-[Exposed=RTCIdentityProviderGlobalScope]
+[Exposed=RTCIdentityProvider]
 interface RTCIdentityProviderRegistrar {
     undefined register (RTCIdentityProvider idp);
 };
diff --git a/interfaces/webtransport.idl b/interfaces/webtransport.idl
index 95ab9e0..18a0fad 100644
--- a/interfaces/webtransport.idl
+++ b/interfaces/webtransport.idl
@@ -58,6 +58,8 @@
   unsigned long numIncomingStreamsCreated;
   unsigned long long bytesReceived;
   unsigned long long packetsReceived;
+  DOMHighResTimeStamp smoothedRtt;
+  DOMHighResTimeStamp rttVariation;
   DOMHighResTimeStamp minRtt;
   unsigned long numReceivedDatagramsDropped;
 };