Skip to content

Commit 6f47ced

Browse files
authored
Merge pull request #524 from saschanaz/webappapi-partial
Add HTML webappapi types
2 parents 3a56a56 + 8bb9587 commit 6f47ced

10 files changed

+495
-527
lines changed

baselines/dom.generated.d.ts

Lines changed: 247 additions & 444 deletions
Large diffs are not rendered by default.

baselines/webworker.generated.d.ts

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -827,12 +827,11 @@ interface ErrorEvent extends Event {
827827
readonly filename: string;
828828
readonly lineno: number;
829829
readonly message: string;
830-
initErrorEvent(typeArg: string, canBubbleArg: boolean, cancelableArg: boolean, messageArg: string, filenameArg: string, linenoArg: number): void;
831830
}
832831

833832
declare var ErrorEvent: {
834833
prototype: ErrorEvent;
835-
new(typeArg: string, eventInitDict?: ErrorEventInit): ErrorEvent;
834+
new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent;
836835
};
837836

838837
interface Event {
@@ -2404,6 +2403,21 @@ interface WindowConsole {
24042403
readonly console: Console;
24052404
}
24062405

2406+
interface WindowOrWorkerGlobalScope {
2407+
readonly caches: CacheStorage;
2408+
readonly indexedDB: IDBFactory;
2409+
readonly origin: string;
2410+
readonly performance: Performance;
2411+
atob(data: string): string;
2412+
btoa(data: string): string;
2413+
clearInterval(handle?: number): void;
2414+
clearTimeout(handle?: number): void;
2415+
createImageBitmap(image: ImageBitmapSource): Promise<ImageBitmap>;
2416+
createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number): Promise<ImageBitmap>;
2417+
setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
2418+
setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
2419+
}
2420+
24072421
interface WorkerEventMap extends AbstractWorkerEventMap {
24082422
"message": MessageEvent;
24092423
}
@@ -2427,15 +2441,13 @@ interface WorkerGlobalScopeEventMap {
24272441
"error": ErrorEvent;
24282442
}
24292443

2430-
interface WorkerGlobalScope extends EventTarget, WorkerUtils, WindowConsole, GlobalFetch {
2444+
interface WorkerGlobalScope extends EventTarget, WorkerUtils, WindowConsole, GlobalFetch, WindowOrWorkerGlobalScope {
24312445
readonly caches: CacheStorage;
24322446
readonly isSecureContext: boolean;
24332447
readonly location: WorkerLocation;
24342448
onerror: ((this: WorkerGlobalScope, ev: ErrorEvent) => any) | null;
24352449
readonly performance: Performance;
24362450
readonly self: WorkerGlobalScope;
2437-
createImageBitmap(image: ImageBitmap | ImageData | Blob, options?: ImageBitmapOptions): Promise<ImageBitmap>;
2438-
createImageBitmap(image: ImageBitmap | ImageData | Blob, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
24392451
msWriteProfilerMark(profilerMarkName: string): void;
24402452
addEventListener<K extends keyof WorkerGlobalScopeEventMap>(type: K, listener: (this: WorkerGlobalScope, ev: WorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
24412453
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
@@ -2479,13 +2491,7 @@ interface WorkerUtils extends WindowBase64 {
24792491
readonly indexedDB: IDBFactory;
24802492
readonly msIndexedDB: IDBFactory;
24812493
readonly navigator: WorkerNavigator;
2482-
clearImmediate(handle: number): void;
2483-
clearInterval(handle: number): void;
2484-
clearTimeout(handle: number): void;
24852494
importScripts(...urls: string[]): void;
2486-
setImmediate(handler: any, ...args: any[]): number;
2487-
setInterval(handler: any, timeout?: any, ...args: any[]): number;
2488-
setTimeout(handler: any, timeout?: any, ...args: any[]): number;
24892495
}
24902496

24912497
interface XMLHttpRequestEventMap extends XMLHttpRequestEventTargetEventMap {
@@ -2659,24 +2665,28 @@ declare var location: WorkerLocation;
26592665
declare var onerror: ((this: DedicatedWorkerGlobalScope, ev: ErrorEvent) => any) | null;
26602666
declare var performance: Performance;
26612667
declare var self: WorkerGlobalScope;
2662-
declare function createImageBitmap(image: ImageBitmap | ImageData | Blob, options?: ImageBitmapOptions): Promise<ImageBitmap>;
2663-
declare function createImageBitmap(image: ImageBitmap | ImageData | Blob, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
26642668
declare function msWriteProfilerMark(profilerMarkName: string): void;
26652669
declare function dispatchEvent(evt: Event): boolean;
26662670
declare var indexedDB: IDBFactory;
26672671
declare var msIndexedDB: IDBFactory;
26682672
declare var navigator: WorkerNavigator;
2669-
declare function clearImmediate(handle: number): void;
2670-
declare function clearInterval(handle: number): void;
2671-
declare function clearTimeout(handle: number): void;
26722673
declare function importScripts(...urls: string[]): void;
2673-
declare function setImmediate(handler: any, ...args: any[]): number;
2674-
declare function setInterval(handler: any, timeout?: any, ...args: any[]): number;
2675-
declare function setTimeout(handler: any, timeout?: any, ...args: any[]): number;
26762674
declare function atob(encodedString: string): string;
26772675
declare function btoa(rawString: string): string;
26782676
declare var console: Console;
26792677
declare function fetch(input?: Request | string, init?: RequestInit): Promise<Response>;
2678+
declare var caches: CacheStorage;
2679+
declare var indexedDB: IDBFactory;
2680+
declare var origin: string;
2681+
declare var performance: Performance;
2682+
declare function atob(data: string): string;
2683+
declare function btoa(data: string): string;
2684+
declare function clearInterval(handle?: number): void;
2685+
declare function clearTimeout(handle?: number): void;
2686+
declare function createImageBitmap(image: ImageBitmapSource): Promise<ImageBitmap>;
2687+
declare function createImageBitmap(image: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number): Promise<ImageBitmap>;
2688+
declare function setInterval(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
2689+
declare function setTimeout(handler: TimerHandler, timeout?: number, ...arguments: any[]): number;
26802690
declare function addEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
26812691
declare function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
26822692
declare function removeEventListener<K extends keyof DedicatedWorkerGlobalScopeEventMap>(type: K, listener: (this: DedicatedWorkerGlobalScope, ev: DedicatedWorkerGlobalScopeEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
@@ -2686,7 +2696,10 @@ type HeadersInit = Headers | string[][] | Record<string, string>;
26862696
type BodyInit = Blob | BufferSource | FormData | URLSearchParams | ReadableStream | string;
26872697
type RequestInfo = Request | string;
26882698
type DOMHighResTimeStamp = number;
2699+
type CanvasImageSource = ImageBitmap;
26892700
type MessageEventSource = MessagePort | ServiceWorker;
2701+
type ImageBitmapSource = CanvasImageSource | Blob | ImageData;
2702+
type TimerHandler = string | Function;
26902703
type PerformanceEntryList = PerformanceEntry[];
26912704
type PushMessageDataInit = BufferSource | string;
26922705
type VibratePattern = number | number[];

inputfiles/addedTypes.json

Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
{
22
"mixins": {
33
"mixin": {
4+
"GlobalEventHandlers": {
5+
"events": {
6+
"event": [
7+
{
8+
"name": "cancel",
9+
"type": "Event"
10+
}
11+
]
12+
}
13+
},
414
"HTMLHyperlinkElementUtils": {
515
"name": "HTMLHyperlinkElementUtils",
616
"properties": {
@@ -334,17 +344,6 @@
334344
},
335345
"Window": {
336346
"name": "Window",
337-
"methods": {
338-
"method": {
339-
"createImageBitmap": {
340-
"name": "createImageBitmap",
341-
"override-signatures": [
342-
"createImageBitmap(image: HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | ImageData | Blob, options?: ImageBitmapOptions): Promise<ImageBitmap>",
343-
"createImageBitmap(image: HTMLImageElement | SVGImageElement | HTMLVideoElement | HTMLCanvasElement | ImageBitmap | ImageData | Blob, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>"
344-
]
345-
}
346-
}
347-
},
348347
"properties": {
349348
"property": {
350349
"URL": {
@@ -369,20 +368,6 @@
369368
}
370369
}
371370
},
372-
"WorkerGlobalScope": {
373-
"name": "WorkerGlobalScope",
374-
"methods": {
375-
"method": {
376-
"createImageBitmap": {
377-
"name": "createImageBitmap",
378-
"override-signatures": [
379-
"createImageBitmap(image: ImageBitmap | ImageData | Blob, options?: ImageBitmapOptions): Promise<ImageBitmap>",
380-
"createImageBitmap(image: ImageBitmap | ImageData | Blob, sx: number, sy: number, sw: number, sh: number, options?: ImageBitmapOptions): Promise<ImageBitmap>"
381-
]
382-
}
383-
}
384-
}
385-
},
386371
"URLSearchParams": {
387372
"name": "URLSearchParams",
388373
"constructor": {
@@ -1091,6 +1076,9 @@
10911076
},
10921077
"no-interface-object": "1"
10931078
},
1079+
"SVGElement": {
1080+
"implements": ["GlobalEventHandlers", "DocumentAndElementEventHandlers"]
1081+
},
10941082
"Text": {
10951083
"name": "Text",
10961084
"properties": {
@@ -1832,6 +1820,9 @@
18321820
},
18331821
"no-interface-object": "1"
18341822
},
1823+
"HTMLElement": {
1824+
"implements": ["GlobalEventHandlers", "DocumentAndElementEventHandlers"]
1825+
},
18351826
"HTMLAnchorElement": {
18361827
"element": [
18371828
{
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"origin": "Returns the global object's origin, serialized as string.",
3+
"btoa": "Takes the input data, in the form of a Unicode string containing only characters in the range\nU+0000 to U+00FF, each representing a binary byte with values 0x00 to 0xFF respectively, and\nconverts it to its base64 representation, which it returns.\nThrows an \"InvalidCharacterError\" DOMException\nexception if the input string contains any out-of-range characters.",
4+
"atob": "Takes the input data, in the form of a Unicode string containing base64-encoded binary data,\ndecodes it, and returns a string consisting of characters in the range U+0000 to U+00FF, each\nrepresenting a binary byte with values 0x00 to 0xFF respectively, corresponding to that binary\ndata.\nThrows an \"InvalidCharacterError\" DOMException if the\ninput string is not valid base64 data."
5+
}
Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
[Constructor(DOMString type, optional ErrorEventInit eventInitDict), Exposed=(Window,Worker)]
2+
interface ErrorEvent : Event {
3+
readonly attribute DOMString message;
4+
readonly attribute USVString filename;
5+
readonly attribute unsigned long lineno;
6+
readonly attribute unsigned long colno;
7+
readonly attribute any error;
8+
};
9+
10+
dictionary ErrorEventInit : EventInit {
11+
DOMString message = "";
12+
USVString filename = "";
13+
unsigned long lineno = 0;
14+
unsigned long colno = 0;
15+
any error = null;
16+
};
17+
18+
[Constructor(DOMString type, PromiseRejectionEventInit eventInitDict), Exposed=(Window,Worker)]
19+
interface PromiseRejectionEvent : Event {
20+
readonly attribute Promise<any> promise;
21+
readonly attribute any reason;
22+
};
23+
24+
dictionary PromiseRejectionEventInit : EventInit {
25+
required Promise<any> promise;
26+
any reason;
27+
};
28+
29+
[TreatNonObjectAsNull]
30+
callback EventHandlerNonNull = any (Event event);
31+
typedef EventHandlerNonNull? EventHandler;
32+
33+
[TreatNonObjectAsNull]
34+
callback OnErrorEventHandlerNonNull = any ((Event or DOMString) event, optional DOMString source, optional unsigned long lineno, optional unsigned long colno, optional any error);
35+
typedef OnErrorEventHandlerNonNull? OnErrorEventHandler;
36+
37+
[TreatNonObjectAsNull]
38+
callback OnBeforeUnloadEventHandlerNonNull = DOMString? (Event event);
39+
typedef OnBeforeUnloadEventHandlerNonNull? OnBeforeUnloadEventHandler;
40+
41+
interface mixin GlobalEventHandlers {
42+
attribute EventHandler onabort;
43+
attribute EventHandler onauxclick;
44+
attribute EventHandler onblur;
45+
attribute EventHandler oncancel;
46+
attribute EventHandler oncanplay;
47+
attribute EventHandler oncanplaythrough;
48+
attribute EventHandler onchange;
49+
attribute EventHandler onclick;
50+
attribute EventHandler onclose;
51+
attribute EventHandler oncontextmenu;
52+
attribute EventHandler oncuechange;
53+
attribute EventHandler ondblclick;
54+
attribute EventHandler ondrag;
55+
attribute EventHandler ondragend;
56+
attribute EventHandler ondragenter;
57+
attribute EventHandler ondragexit;
58+
attribute EventHandler ondragleave;
59+
attribute EventHandler ondragover;
60+
attribute EventHandler ondragstart;
61+
attribute EventHandler ondrop;
62+
attribute EventHandler ondurationchange;
63+
attribute EventHandler onemptied;
64+
attribute EventHandler onended;
65+
attribute OnErrorEventHandler onerror;
66+
attribute EventHandler onfocus;
67+
attribute EventHandler oninput;
68+
attribute EventHandler oninvalid;
69+
attribute EventHandler onkeydown;
70+
attribute EventHandler onkeypress;
71+
attribute EventHandler onkeyup;
72+
attribute EventHandler onload;
73+
attribute EventHandler onloadeddata;
74+
attribute EventHandler onloadedmetadata;
75+
attribute EventHandler onloadend;
76+
attribute EventHandler onloadstart;
77+
attribute EventHandler onmousedown;
78+
[LenientThis] attribute EventHandler onmouseenter;
79+
[LenientThis] attribute EventHandler onmouseleave;
80+
attribute EventHandler onmousemove;
81+
attribute EventHandler onmouseout;
82+
attribute EventHandler onmouseover;
83+
attribute EventHandler onmouseup;
84+
attribute EventHandler onwheel;
85+
attribute EventHandler onpause;
86+
attribute EventHandler onplay;
87+
attribute EventHandler onplaying;
88+
attribute EventHandler onprogress;
89+
attribute EventHandler onratechange;
90+
attribute EventHandler onreset;
91+
attribute EventHandler onresize;
92+
attribute EventHandler onscroll;
93+
attribute EventHandler onsecuritypolicyviolation;
94+
attribute EventHandler onseeked;
95+
attribute EventHandler onseeking;
96+
attribute EventHandler onselect;
97+
attribute EventHandler onstalled;
98+
attribute EventHandler onsubmit;
99+
attribute EventHandler onsuspend;
100+
attribute EventHandler ontimeupdate;
101+
attribute EventHandler ontoggle;
102+
attribute EventHandler onvolumechange;
103+
attribute EventHandler onwaiting;
104+
};
105+
106+
interface mixin WindowEventHandlers {
107+
attribute EventHandler onafterprint;
108+
attribute EventHandler onbeforeprint;
109+
attribute OnBeforeUnloadEventHandler onbeforeunload;
110+
attribute EventHandler onhashchange;
111+
attribute EventHandler onlanguagechange;
112+
attribute EventHandler onmessage;
113+
attribute EventHandler onmessageerror;
114+
attribute EventHandler onoffline;
115+
attribute EventHandler ononline;
116+
attribute EventHandler onpagehide;
117+
attribute EventHandler onpageshow;
118+
attribute EventHandler onpopstate;
119+
attribute EventHandler onrejectionhandled;
120+
attribute EventHandler onstorage;
121+
attribute EventHandler onunhandledrejection;
122+
attribute EventHandler onunload;
123+
};
124+
125+
interface mixin DocumentAndElementEventHandlers {
126+
attribute EventHandler oncopy;
127+
attribute EventHandler oncut;
128+
attribute EventHandler onpaste;
129+
};
130+
131+
typedef (DOMString or Function) TimerHandler;
132+
133+
interface mixin WindowOrWorkerGlobalScope {
134+
[Replaceable] readonly attribute USVString origin;
135+
136+
// base64 utility methods
137+
DOMString btoa(DOMString data);
138+
ByteString atob(DOMString data);
139+
140+
// timers
141+
long setTimeout(TimerHandler handler, optional long timeout = 0, any... arguments);
142+
void clearTimeout(optional long handle = 0);
143+
long setInterval(TimerHandler handler, optional long timeout = 0, any... arguments);
144+
void clearInterval(optional long handle = 0);
145+
146+
// ImageBitmap
147+
Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, optional ImageBitmapOptions options);
148+
Promise<ImageBitmap> createImageBitmap(ImageBitmapSource image, long sx, long sy, long sw, long sh, optional ImageBitmapOptions options);
149+
};
150+
Window includes WindowOrWorkerGlobalScope;
151+
WorkerGlobalScope includes WindowOrWorkerGlobalScope;

inputfiles/idlSources.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,10 @@
134134
"url": "https://html.spec.whatwg.org/multipage/input.html",
135135
"title": "HTML - The input element"
136136
},
137+
{
138+
"url": "https://html.spec.whatwg.org/multipage/webappapis.html",
139+
"title": "HTML - Web application APIs"
140+
},
137141
{
138142
"url": "https://html.spec.whatwg.org/multipage/webstorage.html",
139143
"title": "HTML - Web storage"

0 commit comments

Comments
 (0)