Backed out 2 changesets (bug 1943998) for causing wd failures @ phases.py CLOSED...
[gecko.git] / tools / @types / lib.gecko.tweaks.d.ts
blob5ecb5b747c099d9fc3dd497b35da49a9a877793c
1 /**
2  * Gecko generic/specialized adjustments for xpcom and webidl types.
3  */
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 {
16   isChromeWindow: true;
19 interface Document {
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>;
50   }
53 interface ComponentsExceptionOptions {
54   result?: number,
55   stack?: nsIStackFrame,
56   data?: object,
59 interface nsIException extends ExceptionMembers {}
61 interface nsIXPCComponents_Exception {
62   (
63     message?: string,
64     resultOrOptions?: number | ComponentsExceptionOptions,
65     stack?: nsIStackFrame,
66     data?: object
67   ): nsIException;
70 interface nsIXPCComponents_ID {
71   (uuid: string): nsID
74 interface nsIXPCComponents_utils_Sandbox {
75   (principal: nsIPrincipal | nsIPrincipal[], options: object): typeof globalThis;
78 interface nsXPCComponents_Classes {
79   [cid: string]: {
80     createInstance<T>(aID: T): nsQIResult<T>;
81     getService<T>(aID?: T): unknown extends T ? nsISupports : nsQIResult<T>;
82   }
85 // Generic overloads.
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 {
96   withResolvers<T>(): {
97     promise: Promise<T>;
98     resolve: (value: T | PromiseLike<T>) => void;
99     reject: (reason?: any) => void;
100   };
103 // Hand-crafted artisanal types.
104 interface XULBrowserElement extends XULFrameElement, FrameLoader {
105   currentURI: nsIURI;
106   docShellIsActive: boolean;
107   isRemoteBrowser: boolean;
108   remoteType: string;
111 // https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1736
112 interface Localization {
113   formatValuesSync(aKeys: L10nKey[]): (string | null)[];