From b871bca4a47e9ad6ecba8a2b327a7c4869823ccb Mon Sep 17 00:00:00 2001 From: Bashamega Date: Thu, 4 Dec 2025 12:24:04 +0200 Subject: [PATCH 01/12] Migrate Media Track --- inputfiles/patches/media-track.kdl | 124 ++++++++++++++++++++++++ inputfiles/removedTypes.jsonc | 147 ----------------------------- package-lock.json | 18 +--- 3 files changed, 128 insertions(+), 161 deletions(-) create mode 100644 inputfiles/patches/media-track.kdl diff --git a/inputfiles/patches/media-track.kdl b/inputfiles/patches/media-track.kdl new file mode 100644 index 000000000..bf754fa9d --- /dev/null +++ b/inputfiles/patches/media-track.kdl @@ -0,0 +1,124 @@ +removals { + dictionary MediaTrackCapabilities { + member latency // Blink only as of 2022-11 + member resizeMode // Blink only as of 2022-11 + + // Screen Share extensions + // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions + member cursor + member logicalSurface + + // Image Capture extensions (Blink only as of 2022-11) + // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section + 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 latency // Blink only as of 2022-11 + member resizeMode // Blink only as of 2022-11 + + // Screen Share extensions + // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions + member cursor + member logicalSurface + member restrictOwnAudio + member suppressLocalAudioPlayback + + // Image Capture extensions (Blink only as of 2022-11) + // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section + 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 latency // Blink only as of 2025-04 + member resizeMode // Blink only as of 2025-04 + + // Screen Share extensions + // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions + 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 + + // Image Capture extensions (Blink only as of 2025-04) + // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section + 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 latency + member resizeMode + + // Screen Share extensions + // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions + member cursor + member logicalSurface + member restrictOwnAudio + member suppressLocalAudioPlayback // Blink only as of 2022-11 + + // Image Capture extensions (Blink only as of 2022-11) + // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section + 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 + } +} \ No newline at end of file diff --git a/inputfiles/removedTypes.jsonc b/inputfiles/removedTypes.jsonc index 347abb03e..606b5f103 100644 --- a/inputfiles/removedTypes.jsonc +++ b/inputfiles/removedTypes.jsonc @@ -448,153 +448,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/package-lock.json b/package-lock.json index 709594458..b7206bc5f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -432,8 +432,7 @@ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-7.1.18.tgz", "integrity": "sha512-RK4UylAXCRRWbJOFxua8qudPH6976wLeofn341Y/0qGBk+JLdnPIPV2nAg0O3EitSkaa9WiyWo05t0KWq6dfwA==", "dev": true, - "license": "CC0-1.0", - "peer": true + "license": "CC0-1.0" }, "node_modules/@octokit/auth-token": { "version": "6.0.0", @@ -450,7 +449,6 @@ "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", @@ -859,7 +857,6 @@ "integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.48.1", "@typescript-eslint/types": "8.48.1", @@ -1205,7 +1202,6 @@ "integrity": "sha512-LRVSPlp3llSvXcB2jRW0Hr8WucUYzflSi5DnI3cya419D3iqSQHFT8HfQEqZzE+3W2/edWW8ToOqYEGkmydckg==", "dev": true, "license": "MIT", - "peer": true, "peerDependencies": { "webidl2": "^24.5.0" } @@ -1215,7 +1211,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1620,7 +1615,6 @@ "integrity": "sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -1918,7 +1912,6 @@ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -1979,7 +1972,6 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", - "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -2997,7 +2989,8 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", "dev": true, - "license": "CC0-1.0" + "license": "CC0-1.0", + "peer": true }, "node_modules/memfs-or-file-map-to-github-branch": { "version": "1.3.0", @@ -3369,7 +3362,6 @@ "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -3621,6 +3613,7 @@ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -3854,7 +3847,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -3912,7 +3904,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -4000,7 +3991,6 @@ "integrity": "sha512-fxOigKkIem1iAgQ9t4cFOP+kWEA8y6Be/uh50FpJh0FijoeeT/VMrOyJzNLUgjy0rGMEcHeReKDCqj0g9dIe9A==", "dev": true, "license": "W3C", - "peer": true, "engines": { "node": ">= 18" } From 25909a20f6956b3835cabf5d29de0fb31fe8f4ef Mon Sep 17 00:00:00 2001 From: Bashamega Date: Thu, 4 Dec 2025 12:25:49 +0200 Subject: [PATCH 02/12] - --- package-lock.json | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7206bc5f..709594458 100644 --- a/package-lock.json +++ b/package-lock.json @@ -432,7 +432,8 @@ "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-7.1.18.tgz", "integrity": "sha512-RK4UylAXCRRWbJOFxua8qudPH6976wLeofn341Y/0qGBk+JLdnPIPV2nAg0O3EitSkaa9WiyWo05t0KWq6dfwA==", "dev": true, - "license": "CC0-1.0" + "license": "CC0-1.0", + "peer": true }, "node_modules/@octokit/auth-token": { "version": "6.0.0", @@ -449,6 +450,7 @@ "integrity": "sha512-DhGl4xMVFGVIyMwswXeyzdL4uXD5OGILGX5N8Y+f6W7LhC1Ze2poSNrkF/fedpVDHEEZ+PHFW0vL14I+mm8K3Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^6.0.0", "@octokit/graphql": "^9.0.3", @@ -857,6 +859,7 @@ "integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "8.48.1", "@typescript-eslint/types": "8.48.1", @@ -1202,6 +1205,7 @@ "integrity": "sha512-LRVSPlp3llSvXcB2jRW0Hr8WucUYzflSi5DnI3cya419D3iqSQHFT8HfQEqZzE+3W2/edWW8ToOqYEGkmydckg==", "dev": true, "license": "MIT", + "peer": true, "peerDependencies": { "webidl2": "^24.5.0" } @@ -1211,6 +1215,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -1615,6 +1620,7 @@ "integrity": "sha512-dKYCMuPO1bmrpuogcjQ8z7ICCH3FP6WmxpwC03yjzGfZhj9fTJg6+bS1+UAplekbN2C+M61UNllGOOoAfGCrdQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@octokit/auth-token": "^4.0.0", "@octokit/graphql": "^7.1.0", @@ -1912,6 +1918,7 @@ "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", @@ -1972,6 +1979,7 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -2989,8 +2997,7 @@ "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", "dev": true, - "license": "CC0-1.0", - "peer": true + "license": "CC0-1.0" }, "node_modules/memfs-or-file-map-to-github-branch": { "version": "1.3.0", @@ -3362,6 +3369,7 @@ "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -3613,7 +3621,6 @@ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", - "peer": true, "engines": { "node": ">=0.10.0" } @@ -3847,6 +3854,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -3904,6 +3912,7 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -3991,6 +4000,7 @@ "integrity": "sha512-fxOigKkIem1iAgQ9t4cFOP+kWEA8y6Be/uh50FpJh0FijoeeT/VMrOyJzNLUgjy0rGMEcHeReKDCqj0g9dIe9A==", "dev": true, "license": "W3C", + "peer": true, "engines": { "node": ">= 18" } From 690cad1dad8d36b5705d7d211886c652112f2f2d Mon Sep 17 00:00:00 2001 From: Adam Naji <110662505+Bashamega@users.noreply.github.com> Date: Thu, 4 Dec 2025 12:26:41 +0200 Subject: [PATCH 03/12] Add newline at end of media-track.kdl file --- inputfiles/patches/media-track.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inputfiles/patches/media-track.kdl b/inputfiles/patches/media-track.kdl index bf754fa9d..4888c2ab0 100644 --- a/inputfiles/patches/media-track.kdl +++ b/inputfiles/patches/media-track.kdl @@ -121,4 +121,4 @@ removals { member zoom member torch } -} \ No newline at end of file +} From 1ebe4941e2e2d50887fd4a336e7ec976d420fd7e Mon Sep 17 00:00:00 2001 From: Bashamega Date: Thu, 4 Dec 2025 14:31:00 +0200 Subject: [PATCH 04/12] Refactor MediaTrack KDL definitions to remove deprecated members and update dictionary handling in patches.ts --- inputfiles/patches/media-track.kdl | 106 --------------------- inputfiles/patches/mediacapture-image.kdl | 76 +++++++++++++++ inputfiles/patches/mediacapture-screen.kdl | 27 ++++++ src/build/patches.ts | 2 +- 4 files changed, 104 insertions(+), 107 deletions(-) create mode 100644 inputfiles/patches/mediacapture-image.kdl create mode 100644 inputfiles/patches/mediacapture-screen.kdl diff --git a/inputfiles/patches/media-track.kdl b/inputfiles/patches/media-track.kdl index bf754fa9d..5eaacfe19 100644 --- a/inputfiles/patches/media-track.kdl +++ b/inputfiles/patches/media-track.kdl @@ -2,123 +2,17 @@ removals { dictionary MediaTrackCapabilities { member latency // Blink only as of 2022-11 member resizeMode // Blink only as of 2022-11 - - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - member cursor - member logicalSurface - - // Image Capture extensions (Blink only as of 2022-11) - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - 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 latency // Blink only as of 2022-11 member resizeMode // Blink only as of 2022-11 - - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - member cursor - member logicalSurface - member restrictOwnAudio - member suppressLocalAudioPlayback - - // Image Capture extensions (Blink only as of 2022-11) - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - 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 latency // Blink only as of 2025-04 member resizeMode // Blink only as of 2025-04 - - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - 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 - - // Image Capture extensions (Blink only as of 2025-04) - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - 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 latency member resizeMode - - // Screen Share extensions - // https://w3c.github.io/mediacapture-screen-share/#mediadevices-additions - member cursor - member logicalSurface - member restrictOwnAudio - member suppressLocalAudioPlayback // Blink only as of 2022-11 - - // Image Capture extensions (Blink only as of 2022-11) - // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section - 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 } } \ No newline at end of file diff --git a/inputfiles/patches/mediacapture-image.kdl b/inputfiles/patches/mediacapture-image.kdl new file mode 100644 index 000000000..08b07cf4e --- /dev/null +++ b/inputfiles/patches/mediacapture-image.kdl @@ -0,0 +1,76 @@ +removals { + // Image Capture extensions + // 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 + } +} \ No newline at end of file diff --git a/inputfiles/patches/mediacapture-screen.kdl b/inputfiles/patches/mediacapture-screen.kdl new file mode 100644 index 000000000..249730e3c --- /dev/null +++ b/inputfiles/patches/mediacapture-screen.kdl @@ -0,0 +1,27 @@ +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 + } +} \ No newline at end of file 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}`); From 58ab671d7d071b11315dec94e1a96073290b3c9c Mon Sep 17 00:00:00 2001 From: Bashamega Date: Thu, 4 Dec 2025 14:34:17 +0200 Subject: [PATCH 05/12] -- --- inputfiles/patches/media-track.kdl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/inputfiles/patches/media-track.kdl b/inputfiles/patches/media-track.kdl index 98e901d28..69acff40f 100644 --- a/inputfiles/patches/media-track.kdl +++ b/inputfiles/patches/media-track.kdl @@ -1,4 +1,7 @@ removals { + // 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 dictionary MediaTrackCapabilities { member latency // Blink only as of 2022-11 member resizeMode // Blink only as of 2022-11 From 3db7bf94f688eb4b23aaf77270e5b5f67d6b9618 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Thu, 4 Dec 2025 14:37:26 +0200 Subject: [PATCH 06/12] - --- inputfiles/patches/mediacapture-image.kdl | 2 +- inputfiles/patches/mediacapture-screen.kdl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/inputfiles/patches/mediacapture-image.kdl b/inputfiles/patches/mediacapture-image.kdl index 08b07cf4e..8696eac24 100644 --- a/inputfiles/patches/mediacapture-image.kdl +++ b/inputfiles/patches/mediacapture-image.kdl @@ -73,4 +73,4 @@ removals { member zoom member torch } -} \ No newline at end of file +} diff --git a/inputfiles/patches/mediacapture-screen.kdl b/inputfiles/patches/mediacapture-screen.kdl index 249730e3c..a617866b7 100644 --- a/inputfiles/patches/mediacapture-screen.kdl +++ b/inputfiles/patches/mediacapture-screen.kdl @@ -24,4 +24,4 @@ removals { member restrictOwnAudio member suppressLocalAudioPlayback // Blink only as of 2022-11 } -} \ No newline at end of file +} From a3d196638486aff29ae47cc409721fe27b55f91f Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Fri, 5 Dec 2025 11:29:18 +0100 Subject: [PATCH 07/12] Rename media-track.kdl to mediacapture-main.kdl --- inputfiles/patches/{media-track.kdl => mediacapture-main.kdl} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename inputfiles/patches/{media-track.kdl => mediacapture-main.kdl} (100%) diff --git a/inputfiles/patches/media-track.kdl b/inputfiles/patches/mediacapture-main.kdl similarity index 100% rename from inputfiles/patches/media-track.kdl rename to inputfiles/patches/mediacapture-main.kdl From eac967ed59a410de3a6a4a57d273d60a442c2c63 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Sun, 7 Dec 2025 01:10:07 +0100 Subject: [PATCH 08/12] newlines --- inputfiles/patches/mediacapture-image.kdl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/inputfiles/patches/mediacapture-image.kdl b/inputfiles/patches/mediacapture-image.kdl index 8696eac24..6a38087ef 100644 --- a/inputfiles/patches/mediacapture-image.kdl +++ b/inputfiles/patches/mediacapture-image.kdl @@ -19,6 +19,7 @@ removals { member zoom member torch } + dictionary MediaTrackConstraintSet { member whiteBalanceMode member exposureMode @@ -38,6 +39,7 @@ removals { member zoom member torch } + dictionary MediaTrackSettings { member exposureMode member focusMode @@ -54,6 +56,7 @@ removals { member pan member tilt } + dictionary MediaTrackSupportedConstraints { member whiteBalanceMode member exposureMode From 405daaaaf3803dc69284930005d82eb7d61e1978 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Sun, 7 Dec 2025 01:10:30 +0100 Subject: [PATCH 09/12] newlines --- inputfiles/patches/mediacapture-main.kdl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/inputfiles/patches/mediacapture-main.kdl b/inputfiles/patches/mediacapture-main.kdl index 69acff40f..073857a80 100644 --- a/inputfiles/patches/mediacapture-main.kdl +++ b/inputfiles/patches/mediacapture-main.kdl @@ -6,14 +6,17 @@ removals { 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 From f823c994f4ed62db98a4000a6e31900499a873a4 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Sun, 7 Dec 2025 01:10:45 +0100 Subject: [PATCH 10/12] newlines --- inputfiles/patches/mediacapture-screen.kdl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/inputfiles/patches/mediacapture-screen.kdl b/inputfiles/patches/mediacapture-screen.kdl index a617866b7..3ba57f6fb 100644 --- a/inputfiles/patches/mediacapture-screen.kdl +++ b/inputfiles/patches/mediacapture-screen.kdl @@ -5,12 +5,14 @@ removals { 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 @@ -18,6 +20,7 @@ removals { member suppressLocalAudioPlayback // Blink only as of 2025-04 member screenPixelRatio // Blink only as of 2025-04 } + dictionary MediaTrackSupportedConstraints { member cursor member logicalSurface From 9eceb7a450f9916fb352aaf52d0d5c47fcf633ba Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Sun, 7 Dec 2025 01:15:14 +0100 Subject: [PATCH 11/12] Update comment for Image Capture extensions --- inputfiles/patches/mediacapture-image.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inputfiles/patches/mediacapture-image.kdl b/inputfiles/patches/mediacapture-image.kdl index 6a38087ef..a567591f3 100644 --- a/inputfiles/patches/mediacapture-image.kdl +++ b/inputfiles/patches/mediacapture-image.kdl @@ -1,5 +1,5 @@ removals { - // Image Capture extensions + // Image Capture extensions which are Blink only as of 2025-04 // https://w3c.github.io/mediacapture-image/#mediatrackcapabilities-section dictionary MediaTrackCapabilities { member whiteBalanceMode From 42341fb20f76ed776bf8090748bde2f71e220b40 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Sun, 7 Dec 2025 01:16:13 +0100 Subject: [PATCH 12/12] Update comment in mediacapture-main.kdl Updated comment to reference MediaTrackCapabilities webidl in Gecko. --- inputfiles/patches/mediacapture-main.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inputfiles/patches/mediacapture-main.kdl b/inputfiles/patches/mediacapture-main.kdl index 073857a80..4639883ee 100644 --- a/inputfiles/patches/mediacapture-main.kdl +++ b/inputfiles/patches/mediacapture-main.kdl @@ -1,5 +1,5 @@ removals { - // Gecko: Unsupported + // 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 {