From 5e396333c61ed537fa12f8cce6665b02a66575ad Mon Sep 17 00:00:00 2001 From: Bashamega Date: Mon, 8 Dec 2025 07:31:56 +0200 Subject: [PATCH 01/10] Migrate Crypto to KDL --- inputfiles/patches/crypto-public.kdl | 14 ++++++ inputfiles/patches/crypto.kdl | 37 +++++++++++++++ inputfiles/removedTypes.jsonc | 68 ---------------------------- 3 files changed, 51 insertions(+), 68 deletions(-) create mode 100644 inputfiles/patches/crypto-public.kdl diff --git a/inputfiles/patches/crypto-public.kdl b/inputfiles/patches/crypto-public.kdl new file mode 100644 index 000000000..6d3678ee0 --- /dev/null +++ b/inputfiles/patches/crypto-public.kdl @@ -0,0 +1,14 @@ +removals { + dictionary PublicKeyCredentialCreationOptions { + member attestationFormats // Blink only as of 2024-08 + member hints // Blink only as of 2024-08 + } + + dictionary PublicKeyCredentialCreationOptionsJSON { + member attestationFormats // Gecko only as of 2024-08 + } + + dictionary PublicKeyCredentialRequestOptions { + member hints // Blink only as of 2024-08 + } +} \ No newline at end of file diff --git a/inputfiles/patches/crypto.kdl b/inputfiles/patches/crypto.kdl index 51aca43a2..74efcf154 100644 --- a/inputfiles/patches/crypto.kdl +++ b/inputfiles/patches/crypto.kdl @@ -12,3 +12,40 @@ interface CryptoKey { } } } + +removals { + enum KeyFormat { + raw-private // No implementation as of 2025-09 + raw-public // No implementation as of 2025-09 + raw-secret // No implementation as of 2025-09 + raw-seed // No implementation as of 2025-09 + } + + enum KeyUsage { + decapsulateBits // No implementation as of 2025-09 + decapsulateKey // No implementation as of 2025-09 + encapsulateBits // No implementation as of 2025-09 + encapsulateKey // No implementation as of 2025-09 + } + + dictionary KeySystemTrackConfiguration { + member encryptionScheme // Gecko only as of 2025-05 + } + + dictionary CredentialRequestOptions { + // Only `mediation`, `publicKey`, `signal` are implemented by 2+ engines, everything else is currently Blink only. + // https://searchfox.org/mozilla-central/source/dom/webidl/CredentialManagement.webidl + // https://searchfox.org/wubkat/source/Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl + // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/credential_request_options.idl + member digital // Behind a flag in WebKit and Blink as of 2024-03 + member federated + member identity + member otp + member password + } + + dictionary JsonWebKey { + member priv // No implementation as of 2025-09 + member pub // No implementation as of 2025-09 + } +} diff --git a/inputfiles/removedTypes.jsonc b/inputfiles/removedTypes.jsonc index edb274069..a04f8ad82 100644 --- a/inputfiles/removedTypes.jsonc +++ b/inputfiles/removedTypes.jsonc @@ -16,22 +16,6 @@ "ConnectionType": { "value": ["wimax"] }, - "KeyFormat": { - "value": [ - "raw-private", // No implementation as of 2025-09 - "raw-public", // No implementation as of 2025-09 - "raw-secret", // No implementation as of 2025-09 - "raw-seed" // No implementation as of 2025-09 - ] - }, - "KeyUsage": { - "value": [ - "decapsulateBits", // No implementation as of 2025-09 - "decapsulateKey", // No implementation as of 2025-09 - "encapsulateBits", // No implementation as of 2025-09 - "encapsulateKey" // No implementation as of 2025-09 - ] - }, "MediaSessionAction": { "value": [ "enterpictureinpicture", // Blink only as of 2024-07 @@ -234,21 +218,6 @@ } } }, - "CredentialRequestOptions": { - "members": { - "member": { - // Only `mediation`, `publicKey`, `signal` are implemented by 2+ engines, everything else is currently Blink only. - // https://searchfox.org/mozilla-central/source/dom/webidl/CredentialManagement.webidl - // https://searchfox.org/wubkat/source/Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl - // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/credential_request_options.idl - "digital": null, // Behind a flag in WebKit and Blink as of 2024-03 - "federated": null, - "identity": null, - "otp": null, - "password": null - } - } - }, "DisplayMediaStreamOptions": { "members": { "member": { @@ -322,14 +291,6 @@ } } }, - "JsonWebKey": { - "members": { - "member": { - "priv": null, // No implementation as of 2025-09 - "pub": null // No implementation as of 2025-09 - } - } - }, "KeyframeAnimationOptions": { "members": { "member": { @@ -338,13 +299,6 @@ } } }, - "KeySystemTrackConfiguration": { - "members": { - "member": { - "encryptionScheme": null // Gecko only as of 2025-05 - } - } - }, "MediaCapabilitiesDecodingInfo": { "members": { "member": { @@ -453,28 +407,6 @@ } } }, - "PublicKeyCredentialCreationOptions": { - "members": { - "member": { - "attestationFormats": null, // Blink only as of 2024-08 - "hints": null // Blink only as of 2024-08 - } - } - }, - "PublicKeyCredentialCreationOptionsJSON": { - "members": { - "member": { - "attestationFormats": null // Gecko only as of 2024-08 - } - } - }, - "PublicKeyCredentialRequestOptions": { - "members": { - "member": { - "hints": null // Blink only as of 2024-08 - } - } - }, "PushEventInit": { "members": { "member": { From 2413e11c06843ef7e0a3101855ddc8418f64aafe Mon Sep 17 00:00:00 2001 From: Bashamega Date: Mon, 8 Dec 2025 07:32:23 +0200 Subject: [PATCH 02/10] Adds extra line --- inputfiles/patches/crypto-public.kdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inputfiles/patches/crypto-public.kdl b/inputfiles/patches/crypto-public.kdl index 6d3678ee0..94d188e99 100644 --- a/inputfiles/patches/crypto-public.kdl +++ b/inputfiles/patches/crypto-public.kdl @@ -11,4 +11,4 @@ removals { dictionary PublicKeyCredentialRequestOptions { member hints // Blink only as of 2024-08 } -} \ No newline at end of file +} From 6542ff8d994f3c4c5d6636a09ac22a6fda9681ea Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Mon, 8 Dec 2025 09:07:38 +0100 Subject: [PATCH 03/10] rename to webcrypto.kdl --- inputfiles/patches/{crypto.kdl => webcrypto.kdl} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename inputfiles/patches/{crypto.kdl => webcrypto.kdl} (100%) diff --git a/inputfiles/patches/crypto.kdl b/inputfiles/patches/webcrypto.kdl similarity index 100% rename from inputfiles/patches/crypto.kdl rename to inputfiles/patches/webcrypto.kdl From aad388687ed84472859d22e381b85c0233306368 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Mon, 8 Dec 2025 10:23:26 +0200 Subject: [PATCH 04/10] update --- inputfiles/patches/media-capabilities.kdl | 5 +++++ inputfiles/patches/webauthn.kdl | 23 +++++++++++++++++++++++ inputfiles/patches/webcrypto.kdl | 15 --------------- 3 files changed, 28 insertions(+), 15 deletions(-) create mode 100644 inputfiles/patches/media-capabilities.kdl diff --git a/inputfiles/patches/media-capabilities.kdl b/inputfiles/patches/media-capabilities.kdl new file mode 100644 index 000000000..4e52f4c6f --- /dev/null +++ b/inputfiles/patches/media-capabilities.kdl @@ -0,0 +1,5 @@ +removals { + dictionary KeySystemTrackConfiguration { + member encryptionScheme // Gecko only as of 2025-05 + } +} diff --git a/inputfiles/patches/webauthn.kdl b/inputfiles/patches/webauthn.kdl index 81e5fcf47..16364ef4c 100644 --- a/inputfiles/patches/webauthn.kdl +++ b/inputfiles/patches/webauthn.kdl @@ -21,4 +21,27 @@ removals { member hmacGetSecret // No implementation as of 2025-05 member payment // Blink only as of 2025-06 } + dictionary PublicKeyCredentialCreationOptions { + member attestationFormats // Blink only as of 2024-08 + member hints // Blink only as of 2024-08 + } + + dictionary PublicKeyCredentialCreationOptionsJSON { + member attestationFormats // Gecko only as of 2024-08 + } + + dictionary PublicKeyCredentialRequestOptions { + member hints // Blink only as of 2024-08 + } + dictionary CredentialRequestOptions { + // Only `mediation`, `publicKey`, `signal` are implemented by 2+ engines, everything else is currently Blink only. + // https://searchfox.org/mozilla-central/source/dom/webidl/CredentialManagement.webidl + // https://searchfox.org/wubkat/source/Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl + // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/credential_request_options.idl + member digital // Behind a flag in WebKit and Blink as of 2024-03 + member federated + member identity + member otp + member password + } } diff --git a/inputfiles/patches/webcrypto.kdl b/inputfiles/patches/webcrypto.kdl index 74efcf154..78fba47e9 100644 --- a/inputfiles/patches/webcrypto.kdl +++ b/inputfiles/patches/webcrypto.kdl @@ -28,21 +28,6 @@ removals { encapsulateKey // No implementation as of 2025-09 } - dictionary KeySystemTrackConfiguration { - member encryptionScheme // Gecko only as of 2025-05 - } - - dictionary CredentialRequestOptions { - // Only `mediation`, `publicKey`, `signal` are implemented by 2+ engines, everything else is currently Blink only. - // https://searchfox.org/mozilla-central/source/dom/webidl/CredentialManagement.webidl - // https://searchfox.org/wubkat/source/Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl - // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/credential_request_options.idl - member digital // Behind a flag in WebKit and Blink as of 2024-03 - member federated - member identity - member otp - member password - } dictionary JsonWebKey { member priv // No implementation as of 2025-09 From 0c5779bbe0b74f0057e4ea7fc9e5ac693c24aa04 Mon Sep 17 00:00:00 2001 From: Bashamega Date: Mon, 8 Dec 2025 10:24:13 +0200 Subject: [PATCH 05/10] - --- inputfiles/patches/crypto-public.kdl | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 inputfiles/patches/crypto-public.kdl diff --git a/inputfiles/patches/crypto-public.kdl b/inputfiles/patches/crypto-public.kdl deleted file mode 100644 index 94d188e99..000000000 --- a/inputfiles/patches/crypto-public.kdl +++ /dev/null @@ -1,14 +0,0 @@ -removals { - dictionary PublicKeyCredentialCreationOptions { - member attestationFormats // Blink only as of 2024-08 - member hints // Blink only as of 2024-08 - } - - dictionary PublicKeyCredentialCreationOptionsJSON { - member attestationFormats // Gecko only as of 2024-08 - } - - dictionary PublicKeyCredentialRequestOptions { - member hints // Blink only as of 2024-08 - } -} From 7fc7cb6c05b2b10aee9111009e3e73ed4465946f Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Mon, 8 Dec 2025 09:40:44 +0100 Subject: [PATCH 06/10] 2-space --- inputfiles/patches/webauthn.kdl | 90 ++++++++++++++++----------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/inputfiles/patches/webauthn.kdl b/inputfiles/patches/webauthn.kdl index 16364ef4c..6fdb3da91 100644 --- a/inputfiles/patches/webauthn.kdl +++ b/inputfiles/patches/webauthn.kdl @@ -1,47 +1,47 @@ removals { - enum AuthenticatorTransport { - smart-card // WebKit only as of 2023-05 - } - dictionary AuthenticationExtensionsClientInputs { - // https://searchfox.org/mozilla-central/source/dom/webidl/WebAuthentication.webidl - // https://searchfox.org/wubkat/source/Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.idl - // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl - member appidExclude - member credBlob - member getCredBlob - member hmacGetSecret // No implementation as of 2025-05 - member payment - } - dictionary AuthenticationExtensionsClientInputsJSON { - member appidExclude - } - dictionary AuthenticationExtensionsClientOutputs { - // (same as *Inputs) - member appidExclude // No implementation as of 2025-05 - member hmacGetSecret // No implementation as of 2025-05 - member payment // Blink only as of 2025-06 - } - dictionary PublicKeyCredentialCreationOptions { - member attestationFormats // Blink only as of 2024-08 - member hints // Blink only as of 2024-08 - } - - dictionary PublicKeyCredentialCreationOptionsJSON { - member attestationFormats // Gecko only as of 2024-08 - } - - dictionary PublicKeyCredentialRequestOptions { - member hints // Blink only as of 2024-08 - } - dictionary CredentialRequestOptions { - // Only `mediation`, `publicKey`, `signal` are implemented by 2+ engines, everything else is currently Blink only. - // https://searchfox.org/mozilla-central/source/dom/webidl/CredentialManagement.webidl - // https://searchfox.org/wubkat/source/Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl - // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/credential_request_options.idl - member digital // Behind a flag in WebKit and Blink as of 2024-03 - member federated - member identity - member otp - member password - } + enum AuthenticatorTransport { + smart-card // WebKit only as of 2023-05 + } + dictionary AuthenticationExtensionsClientInputs { + // https://searchfox.org/mozilla-central/source/dom/webidl/WebAuthentication.webidl + // https://searchfox.org/wubkat/source/Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.idl + // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/authentication_extensions_client_inputs.idl + member appidExclude + member credBlob + member getCredBlob + member hmacGetSecret // No implementation as of 2025-05 + member payment + } + dictionary AuthenticationExtensionsClientInputsJSON { + member appidExclude + } + dictionary AuthenticationExtensionsClientOutputs { + // (same as *Inputs) + member appidExclude // No implementation as of 2025-05 + member hmacGetSecret // No implementation as of 2025-05 + member payment // Blink only as of 2025-06 + } + dictionary PublicKeyCredentialCreationOptions { + member attestationFormats // Blink only as of 2024-08 + member hints // Blink only as of 2024-08 + } + + dictionary PublicKeyCredentialCreationOptionsJSON { + member attestationFormats // Gecko only as of 2024-08 + } + + dictionary PublicKeyCredentialRequestOptions { + member hints // Blink only as of 2024-08 + } + dictionary CredentialRequestOptions { + // Only `mediation`, `publicKey`, `signal` are implemented by 2+ engines, everything else is currently Blink only. + // https://searchfox.org/mozilla-central/source/dom/webidl/CredentialManagement.webidl + // https://searchfox.org/wubkat/source/Source/WebCore/Modules/credentialmanagement/CredentialRequestOptions.idl + // https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/credentialmanagement/credential_request_options.idl + member digital // Behind a flag in WebKit and Blink as of 2024-03 + member federated + member identity + member otp + member password + } } From e91786041623ac48b00247069e26bb26f3c465ec Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Mon, 8 Dec 2025 09:41:18 +0100 Subject: [PATCH 07/10] 2-space --- inputfiles/patches/media-capabilities.kdl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/inputfiles/patches/media-capabilities.kdl b/inputfiles/patches/media-capabilities.kdl index 4e52f4c6f..8cd1d223e 100644 --- a/inputfiles/patches/media-capabilities.kdl +++ b/inputfiles/patches/media-capabilities.kdl @@ -1,5 +1,5 @@ removals { - dictionary KeySystemTrackConfiguration { - member encryptionScheme // Gecko only as of 2025-05 - } + dictionary KeySystemTrackConfiguration { + member encryptionScheme // Gecko only as of 2025-05 + } } From 25525f2c9335f5a99426ec07bd17db6def1eaa78 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Mon, 8 Dec 2025 09:41:55 +0100 Subject: [PATCH 08/10] 2-space --- inputfiles/patches/webcrypto.kdl | 46 ++++++++++++++++---------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/inputfiles/patches/webcrypto.kdl b/inputfiles/patches/webcrypto.kdl index 78fba47e9..07be9c9dd 100644 --- a/inputfiles/patches/webcrypto.kdl +++ b/inputfiles/patches/webcrypto.kdl @@ -1,36 +1,36 @@ // https://github.com/microsoft/TypeScript/issues/46036 dictionary CryptoKeyPair { - member privateKey required=#true - member publicKey required=#true + member privateKey required=#true + member publicKey required=#true } interface CryptoKey { - property algorithm type=KeyAlgorithm - property usages { - type sequence { - type KeyUsage - } + property algorithm type=KeyAlgorithm + property usages { + type sequence { + type KeyUsage } + } } removals { - enum KeyFormat { - raw-private // No implementation as of 2025-09 - raw-public // No implementation as of 2025-09 - raw-secret // No implementation as of 2025-09 - raw-seed // No implementation as of 2025-09 - } + enum KeyFormat { + raw-private // No implementation as of 2025-09 + raw-public // No implementation as of 2025-09 + raw-secret // No implementation as of 2025-09 + raw-seed // No implementation as of 2025-09 + } - enum KeyUsage { - decapsulateBits // No implementation as of 2025-09 - decapsulateKey // No implementation as of 2025-09 - encapsulateBits // No implementation as of 2025-09 - encapsulateKey // No implementation as of 2025-09 - } + enum KeyUsage { + decapsulateBits // No implementation as of 2025-09 + decapsulateKey // No implementation as of 2025-09 + encapsulateBits // No implementation as of 2025-09 + encapsulateKey // No implementation as of 2025-09 + } - dictionary JsonWebKey { - member priv // No implementation as of 2025-09 - member pub // No implementation as of 2025-09 - } + dictionary JsonWebKey { + member priv // No implementation as of 2025-09 + member pub // No implementation as of 2025-09 + } } From f76bc3963aebd4a22585e71b748ff687bef3efcb Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Mon, 8 Dec 2025 09:42:50 +0100 Subject: [PATCH 09/10] newlines between items (unless they are closely related to each other) --- inputfiles/patches/webauthn.kdl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/inputfiles/patches/webauthn.kdl b/inputfiles/patches/webauthn.kdl index 6fdb3da91..f2f166e3d 100644 --- a/inputfiles/patches/webauthn.kdl +++ b/inputfiles/patches/webauthn.kdl @@ -2,6 +2,7 @@ removals { enum AuthenticatorTransport { smart-card // WebKit only as of 2023-05 } + dictionary AuthenticationExtensionsClientInputs { // https://searchfox.org/mozilla-central/source/dom/webidl/WebAuthentication.webidl // https://searchfox.org/wubkat/source/Source/WebCore/Modules/webauthn/AuthenticationExtensionsClientInputs.idl @@ -12,15 +13,18 @@ removals { member hmacGetSecret // No implementation as of 2025-05 member payment } + dictionary AuthenticationExtensionsClientInputsJSON { member appidExclude } + dictionary AuthenticationExtensionsClientOutputs { // (same as *Inputs) member appidExclude // No implementation as of 2025-05 member hmacGetSecret // No implementation as of 2025-05 member payment // Blink only as of 2025-06 } + dictionary PublicKeyCredentialCreationOptions { member attestationFormats // Blink only as of 2024-08 member hints // Blink only as of 2024-08 @@ -33,6 +37,7 @@ removals { dictionary PublicKeyCredentialRequestOptions { member hints // Blink only as of 2024-08 } + dictionary CredentialRequestOptions { // Only `mediation`, `publicKey`, `signal` are implemented by 2+ engines, everything else is currently Blink only. // https://searchfox.org/mozilla-central/source/dom/webidl/CredentialManagement.webidl From e64239645a0160585f7fdfa1c085b124ac6079f0 Mon Sep 17 00:00:00 2001 From: Kagami Sascha Rosylight Date: Mon, 8 Dec 2025 09:43:12 +0100 Subject: [PATCH 10/10] Remove redundant newline in webcrypto.kdl Removed an empty line before the JsonWebKey dictionary. --- inputfiles/patches/webcrypto.kdl | 1 - 1 file changed, 1 deletion(-) diff --git a/inputfiles/patches/webcrypto.kdl b/inputfiles/patches/webcrypto.kdl index 07be9c9dd..db6844f2a 100644 --- a/inputfiles/patches/webcrypto.kdl +++ b/inputfiles/patches/webcrypto.kdl @@ -28,7 +28,6 @@ removals { encapsulateKey // No implementation as of 2025-09 } - dictionary JsonWebKey { member priv // No implementation as of 2025-09 member pub // No implementation as of 2025-09