diff --git a/inputfiles/patches/mediacapture-image.kdl b/inputfiles/patches/mediacapture-image.kdl new file mode 100644 index 000000000..a567591f3 --- /dev/null +++ b/inputfiles/patches/mediacapture-image.kdl @@ -0,0 +1,79 @@ +removals { + // Image Capture extensions which are Blink only as of 2025-04 + // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section + dictionary MediaTrackCapabilities { + member whiteBalanceMode + member exposureMode + member focusMode + member exposureCompensation + member exposureTime + member colorTemperature + member iso + member brightness + member contrast + member saturation + member sharpness + member focusDistance + member pan + member tilt + member zoom + member torch + } + + dictionary MediaTrackConstraintSet { + member whiteBalanceMode + member exposureMode + member focusMode + member pointsOfInterest + member exposureCompensation + member exposureTime + member colorTemperature + member iso + member brightness + member contrast + member saturation + member sharpness + member focusDistance + member pan + member tilt + member zoom + member torch + } + + dictionary MediaTrackSettings { + member exposureMode + member focusMode + member pointsOfInterest + member exposureCompensation + member exposureTime + member colorTemperature + member iso + member brightness + member contrast + member saturation + member sharpness + member focusDistance + member pan + member tilt + } + + dictionary MediaTrackSupportedConstraints { + member whiteBalanceMode + member exposureMode + member focusMode + member pointsOfInterest + member exposureCompensation + member exposureTime + member colorTemperature + member iso + member brightness + member contrast + member saturation + member sharpness + member focusDistance + member pan + member tilt + member zoom + member torch + } +} diff --git a/inputfiles/patches/mediacapture-main.kdl b/inputfiles/patches/mediacapture-main.kdl new file mode 100644 index 000000000..4639883ee --- /dev/null +++ b/inputfiles/patches/mediacapture-main.kdl @@ -0,0 +1,24 @@ +removals { + // Gecko: https://searchfox.org/firefox-main/source/dom/webidl/MediaTrackCapabilities.webidl + // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl + // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl + dictionary MediaTrackCapabilities { + member latency // Blink only as of 2022-11 + member resizeMode // Blink only as of 2022-11 + } + + dictionary MediaTrackConstraintSet { + member latency // Blink only as of 2022-11 + member resizeMode // Blink only as of 2022-11 + } + + dictionary MediaTrackSettings { + member latency // Blink only as of 2025-04 + member resizeMode // Blink only as of 2025-04 + } + + dictionary MediaTrackSupportedConstraints { + member latency + member resizeMode + } +} diff --git a/inputfiles/patches/mediacapture-screen.kdl b/inputfiles/patches/mediacapture-screen.kdl new file mode 100644 index 000000000..3ba57f6fb --- /dev/null +++ b/inputfiles/patches/mediacapture-screen.kdl @@ -0,0 +1,30 @@ +removals { + // Screen Share extensions + // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions + dictionary MediaTrackCapabilities { + member cursor + member logicalSurface + } + + dictionary MediaTrackConstraintSet { + member cursor + member logicalSurface + member restrictOwnAudio + member suppressLocalAudioPlayback + } + + dictionary MediaTrackSettings { + member cursor // Blink only as of 2025-04 + member logicalSurface // Blink only as of 2025-04 + member restrictOwnAudio // Blink only as of 2025-04 + member suppressLocalAudioPlayback // Blink only as of 2025-04 + member screenPixelRatio // Blink only as of 2025-04 + } + + dictionary MediaTrackSupportedConstraints { + member cursor + member logicalSurface + member restrictOwnAudio + member suppressLocalAudioPlayback // Blink only as of 2022-11 + } +} diff --git a/inputfiles/removedTypes.jsonc b/inputfiles/removedTypes.jsonc index e61a08339..7ca4afb26 100644 --- a/inputfiles/removedTypes.jsonc +++ b/inputfiles/removedTypes.jsonc @@ -435,153 +435,6 @@ } } }, - "MediaTrackCapabilities": { - "members": { - "member": { - // Gecko: Unsupported - // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl - // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_capabilities.idl - "latency": null, // Blink only as of 2022-11 - "resizeMode": null, // Blink only as of 2022-11 - - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - "cursor": null, - "logicalSurface": null, - - // Image Capture extensions which is Blink only as of 2022-11 - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - "whiteBalanceMode": null, - "exposureMode": null, - "focusMode": null, - "exposureCompensation": null, - "exposureTime": null, - "colorTemperature": null, - "iso": null, - "brightness": null, - "contrast": null, - "saturation": null, - "sharpness": null, - "focusDistance": null, - "pan": null, - "tilt": null, - "zoom": null, - "torch": null - } - } - }, - "MediaTrackConstraintSet": { - "members": { - "member": { - // Gecko: https://searchfox.org/mozilla-central/source/dom/webidl/MediaStreamTrack.webidl - // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaTrackConstraints.idl#28 - // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_constraint_set.idl - "latency": null, // Blink only as of 2022-11 - "resizeMode": null, // Blink only as of 2022-11 - - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - "cursor": null, - "logicalSurface": null, - "restrictOwnAudio": null, - "suppressLocalAudioPlayback": null, - - // Image Capture extensions which is Blink only as of 2022-11 - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - "whiteBalanceMode": null, - "exposureMode": null, - "focusMode": null, - "pointsOfInterest": null, - "exposureCompensation": null, - "exposureTime": null, - "colorTemperature": null, - "iso": null, - "brightness": null, - "contrast": null, - "saturation": null, - "sharpness": null, - "focusDistance": null, - "pan": null, - "tilt": null, - "zoom": null, - "torch": null - } - } - }, - "MediaTrackSettings": { - "members": { - "member": { - // Gecko: https://searchfox.org/mozilla-central/source/dom/webidl/MediaTrackSettings.webidl - // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaStreamTrack.idl - // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_settings.idl - "latency": null, // Blink only as of 2025-04 - "resizeMode": null, // Blink only as of 2025-04 - - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - "cursor": null, // Blink only as of 2025-04 - "logicalSurface": null, // Blink only as of 2025-04 - "restrictOwnAudio": null, // Blink only as of 2025-04 - "suppressLocalAudioPlayback": null, // Blink only as of 2025-04s - "screenPixelRatio": null, // Blink only as of 2025-04 - - // Image Capture extensions which are Blink only as of 2025-04 - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - "exposureMode": null, - "focusMode": null, - "pointsOfInterest": null, - "exposureCompensation": null, - "exposureTime": null, - "colorTemperature": null, - "iso": null, - "brightness": null, - "contrast": null, - "saturation": null, - "sharpness": null, - "focusDistance": null, - "pan": null, - "tilt": null - } - } - }, - "MediaTrackSupportedConstraints": { - "members": { - "member": { - // Gecko: https://searchfox.org/mozilla-central/source/dom/webidl/MediaTrackSupportedConstraints.webidl - // WebKit: https://searchfox.org/wubkat/source/Source/WebCore/Modules/mediastream/MediaTrackSupportedConstraints.idl - // Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/mediastream/media_track_supported_constraints.idl - "latency": null, - "resizeMode": null, - - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - "cursor": null, - "logicalSurface": null, - "restrictOwnAudio": null, - "suppressLocalAudioPlayback": null, // Blink only as of 2022-11 - - // Image Capture extensions which are Blink only as of 2022-11 - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - "whiteBalanceMode": null, - "exposureMode": null, - "focusMode": null, - "pointsOfInterest": null, - "exposureCompensation": null, - "exposureTime": null, - "colorTemperature": null, - "iso": null, - "brightness": null, - "contrast": null, - "saturation": null, - "sharpness": null, - "focusDistance": null, - "pan": null, - "tilt": null, - "zoom": null, - "torch": null - } - } - }, "NotificationOptions": { "members": { "member": { diff --git a/src/build/patches.ts b/src/build/patches.ts index f8a07b343..05632f318 100644 --- a/src/build/patches.ts +++ b/src/build/patches.ts @@ -111,7 +111,7 @@ function convertKDLNodes(nodes: Node[]): DeepPartial { interfaces[name] = handleMixinAndInterfaces(node, "interface"); break; case "dictionary": - dictionary[name] = handleDictionary(node); + dictionary[name] = merge(dictionary[name], handleDictionary(node)); break; default: throw new Error(`Unknown node name: ${node.name}`);