2 * Gecko generic/specialized adjustments for xpcom and webidl types.
5 // More specific types for parent process browsing contexts.
6 interface CanonicalBrowsingContext extends LoadContextMixin {
7 embedderElement: XULBrowserElement;
8 currentWindowContext: WindowGlobalParent;
9 parent: CanonicalBrowsingContext;
10 parentWindowContext: WindowGlobalParent;
11 top: CanonicalBrowsingContext;
12 topWindowContext: WindowGlobalParent;
15 interface ChromeWindow extends Window {
20 createXULElement(name: "browser"): XULBrowserElement;
23 interface MessageListenerManagerMixin {
24 // Overloads that define `data` arg as required, since it's ~always expected.
25 addMessageListener(msg: string, listener: { receiveMessage(_: ReceiveMessageArgument & { data })});
26 removeMessageListener(msg: string, listener: { receiveMessage(_: ReceiveMessageArgument & { data })});
29 interface MozQueryInterface {
30 <T>(iid: T): nsQIResult<T>;
33 interface nsICryptoHash extends nsISupports {
34 // Accepts a TypedArray.
35 update(aData: ArrayLike<number>, aLen: number): void;
38 interface nsIDOMWindow extends Window {}
40 interface nsISimpleEnumerator extends Iterable<any> {}
42 interface nsISupports {
43 wrappedJSObject?: object;
46 interface nsIXPCComponents_Constructor {
47 <const T, IIDs = nsIXPCComponents_Interfaces>(cid, id: T, init?): {
48 new (...any): nsQIResult<T extends keyof IIDs ? IIDs[T] : T>;
49 (...any): nsQIResult<T extends keyof IIDs ? IIDs[T] : T>;
53 interface ComponentsExceptionOptions {
55 stack?: nsIStackFrame,
59 interface nsIException extends ExceptionMembers {}
61 interface nsIXPCComponents_Exception {
64 resultOrOptions?: number | ComponentsExceptionOptions,
65 stack?: nsIStackFrame,
70 interface nsIXPCComponents_ID {
74 interface nsIXPCComponents_utils_Sandbox {
75 (principal: nsIPrincipal | nsIPrincipal[], options: object): typeof globalThis;
78 interface nsXPCComponents_Classes {
80 createInstance<T>(aID: T): nsQIResult<T>;
81 getService<T>(aID?: T): unknown extends T ? nsISupports : nsQIResult<T>;
86 interface nsXPCComponents_Utils {
87 cloneInto<T>(value: T, ...any): T;
88 createObjectIn<T = object>(_, object?: T): T;
89 exportFunction<T>(func: T, ...any): T;
90 getWeakReference<T>(value: T): { get(): T };
91 waiveXrays<T>(object: T): T;
94 // TODO: remove after next TS update.
95 interface PromiseConstructor {
98 resolve: (value: T | PromiseLike<T>) => void;
99 reject: (reason?: any) => void;
103 // Hand-crafted artisanal types.
104 interface XULBrowserElement extends XULFrameElement, FrameLoader {
106 docShellIsActive: boolean;
107 isRemoteBrowser: boolean;
111 // https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1736
112 interface Localization {
113 formatValuesSync(aKeys: L10nKey[]): (string | null)[];