Skip to content

Commit ca7bf6b

Browse files
authored
Merge branch 'microsoft:main' into IntersectionObserverEntry
2 parents c91c7a4 + d3657d7 commit ca7bf6b

File tree

10 files changed

+59
-109
lines changed

10 files changed

+59
-109
lines changed

inputfiles/addedTypes.jsonc

Lines changed: 1 addition & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -66,35 +66,7 @@
6666
"name": "Window",
6767
"overrideIndexSignatures": [
6868
"[index: number]: Window"
69-
],
70-
"events": {
71-
"event": [
72-
{
73-
"name": "devicemotion",
74-
"type": "DeviceMotionEvent"
75-
},
76-
{
77-
"name": "deviceorientation",
78-
"type": "DeviceOrientationEvent"
79-
},
80-
{
81-
"name": "deviceorientationabsolute",
82-
"type": "DeviceOrientationEvent"
83-
},
84-
{
85-
"name": "gamepadconnected",
86-
"type": "GamepadEvent"
87-
},
88-
{
89-
"name": "gamepaddisconnected",
90-
"type": "GamepadEvent"
91-
},
92-
{
93-
"name": "DOMContentLoaded",
94-
"type": "Event"
95-
}
96-
]
97-
}
69+
]
9870
},
9971
"NodeListOf": {
10072
"name": "NodeListOf",
@@ -342,19 +314,6 @@
342314
}
343315
}
344316
},
345-
"Navigator": {
346-
"name": "Navigator",
347-
"properties": {
348-
"property": {
349-
"doNotTrack": {
350-
"name": "doNotTrack",
351-
"readonly": true,
352-
"nullable": true,
353-
"type": "DOMString"
354-
}
355-
}
356-
}
357-
},
358317
"HTMLIFrameElement": {
359318
"name": "HTMLIFrameElement",
360319
"properties": {

inputfiles/knownTypes.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
"RTCStatsIceCandidatePairState",
6262
"RTCStatsType",
6363
"RTCTransportStats",
64-
"Transferable",
6564
"ValueTypeMap",
6665
"VideoFacingModeEnum"
6766
],
@@ -91,12 +90,10 @@
9190
"RsaKeyGenParams",
9291
"RsaOaepParams",
9392
"RsaPssParams",
94-
"Transferable",
9593
"ValueTypeMap"
9694
],
9795
"Worklet": [
9896
"EventListenerOrEventListenerObject",
99-
"Transferable",
10097
"ValueTypeMap"
10198
]
10299
}

inputfiles/overridingTypes.jsonc

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -453,33 +453,6 @@
453453
},
454454
"overrideIndexSignatures": []
455455
},
456-
"WebTransport": {
457-
"methods": {
458-
"method": {
459-
"createUnidirectionalStream": {
460-
"signature": {
461-
"0": {
462-
"subtype": {
463-
"type": "WritableStream"
464-
}
465-
}
466-
}
467-
}
468-
}
469-
}
470-
},
471-
"WebTransportBidirectionalStream": {
472-
"properties": {
473-
"property": {
474-
"readable": {
475-
"type": "ReadableStream"
476-
},
477-
"writable": {
478-
"type": "WritableStream"
479-
}
480-
}
481-
}
482-
},
483456
"Document": {
484457
"methods": {
485458
"method": {
@@ -1695,19 +1668,6 @@
16951668
]
16961669
}
16971670
},
1698-
"WebTransportDatagramDuplexStream": {
1699-
"properties": {
1700-
"property": {
1701-
// https://github.com/w3c/webtransport/pull/638 removed this but browsers still has this
1702-
"writable": {
1703-
"name": "writable",
1704-
"type": "WritableStream",
1705-
"readonly": true,
1706-
"mdnUrl": "https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/writable"
1707-
}
1708-
}
1709-
}
1710-
},
17111671
"HTMLTableRowElement": {
17121672
"properties": {
17131673
"property": {
@@ -3319,15 +3279,6 @@
33193279
},
33203280
"dictionaries": {
33213281
"dictionary": {
3322-
"StructuredSerializeOptions": {
3323-
"members": {
3324-
"member": {
3325-
"transfer": {
3326-
"overrideType": "Transferable[]"
3327-
}
3328-
}
3329-
}
3330-
},
33313282
"MessageEventInit": {
33323283
"members": {
33333284
"member": {

inputfiles/patches/events.kdl

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,9 @@ interface-mixin WindowEventHandlers {
102102
interface HTMLMediaElement {
103103
event encrypted type=MediaEncryptedEvent
104104
}
105+
106+
interface Window {
107+
event gamepadconnected type=GamepadEvent
108+
event gamepaddisconnected type=GamepadEvent
109+
event DOMContentLoaded type=Event
110+
}

inputfiles/patches/html.kdl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,14 @@ interface HTMLImageElement {
2020
property loading overrideType=#""eager" | "lazy""#
2121
}
2222

23+
dictionary StructuredSerializeOptions {
24+
member transfer {
25+
type {
26+
type Transferable
27+
}
28+
}
29+
}
30+
2331
removals {
2432
dictionary CanvasRenderingContext2DSettings {
2533
member colorType // Blink-only as of 2025-12, being tested in WebKit
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
interface-mixin PushManagerAttribute {
2-
// Windows support only on WebKit as of 2025-10
3-
property pushManager exposed=ServiceWorker
4-
}
1+
interface-mixin PushManagerAttribute {
2+
// Windows support only on WebKit as of 2025-10
3+
property pushManager exposed=ServiceWorker
4+
}
5+
6+
removals {
7+
dictionary PushEventInit {
8+
member notification // WebKit only as of 2025-12
9+
}
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
interface Navigator {
2+
property doNotTrack readonly=#true {
3+
type DOMString nullable=#true
4+
}
5+
}

inputfiles/patches/webtransport.kdl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,23 @@ removals {
1111
member waitUntilAvailable // No implementation as of 2025-12.
1212
}
1313
}
14+
15+
interface WebTransport {
16+
// Only Gecko implements the return type as SendStream as of 2025-12
17+
method createUnidirectionalStream signatureIndex=0 {
18+
type {
19+
type WritableStream
20+
}
21+
}
22+
}
23+
24+
interface WebTransportBidirectionalStream {
25+
// Only Gecko implements readable/writable as Receive/SendStream as of 2025-12
26+
property readable type=ReadableStream
27+
property writable type=WritableStream
28+
}
29+
30+
interface WebTransportDatagramDuplexStream {
31+
// https://github.com/w3c/webtransport/pull/638 removed this but browsers still have this
32+
property writable type=WritableStream readonly=#true mdnUrl="https://developer.mozilla.org/docs/Web/API/WebTransportDatagramDuplexStream/writable"
33+
}

inputfiles/removedTypes.jsonc

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -202,13 +202,6 @@
202202
}
203203
}
204204
},
205-
"PushEventInit": {
206-
"members": {
207-
"member": {
208-
"notification": null // WebKit only as of 2025-08
209-
}
210-
}
211-
},
212205
"ReadableStreamReadResult": null,
213206
"RequestInit": {
214207
"members": {

src/build/patches.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,10 @@ function convertKDLNodes(nodes: Node[]): DeepPartial<WebIdl> {
135135
);
136136
break;
137137
case "interface":
138-
interfaces[name] = handleMixinAndInterfaces(node, "interface");
138+
interfaces[name] = merge(
139+
interfaces[name],
140+
handleMixinAndInterfaces(node, "interface"),
141+
);
139142
break;
140143
case "dictionary":
141144
dictionary[name] = merge(dictionary[name], handleDictionary(node));
@@ -291,6 +294,7 @@ function handleProperty(child: Node): DeepPartial<Property> {
291294
...handleTyped(typeNodes, child.properties?.type),
292295
...optionalMember("readonly", "boolean", child.properties?.readonly),
293296
...optionalMember("deprecated", "string", child.properties?.deprecated),
297+
...optionalMember("mdnUrl", "string", child.properties?.mdnUrl),
294298
};
295299
}
296300

@@ -383,7 +387,7 @@ function handleMethodAndConstructor(
383387
*/
384388
function handleDictionary(child: Node): DeepPartial<Dictionary> {
385389
const name = string(child.values[0]);
386-
const member: Record<string, Partial<Member>> = {};
390+
const member: Record<string, DeepPartial<Member>> = {};
387391
let typeParameters = {};
388392

389393
for (const c of child.children) {
@@ -420,11 +424,12 @@ function handleDictionary(child: Node): DeepPartial<Dictionary> {
420424
* Handles dictionary member nodes
421425
* @param c The member node to handle.
422426
*/
423-
function handleMember(c: Node): Partial<Member> {
427+
function handleMember(c: Node): DeepPartial<Member> {
424428
const name = string(c.values[0]);
429+
const typeNodes = c.children.filter((c) => c.name === "type");
425430
return {
426431
name,
427-
...optionalMember("type", "string", c.properties?.type),
432+
...handleTyped(typeNodes, c.properties?.type),
428433
...optionalMember("required", "boolean", c.properties?.required),
429434
...optionalMember("deprecated", "string", c.properties?.deprecated),
430435
...optionalMember("overrideType", "string", c.properties?.overrideType),

0 commit comments

Comments
 (0)